vendor: 28,082 bytes, lines 1-9
1function YS(a,n){for(var o=0;o<n.length;o++){const i=n[o];if(typeof i!="string"&&!Array.isArray(i)){for(const l in i)if(l!=="default"&&!(l in a)){const d=Object.getOwnPropertyDescriptor(i,l);d&&Object.defineProperty(a,l,d.get?d:{enumerable:!0,get:()=>i[l]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))i(l);new MutationObserver(l=>{for(const d of l)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&i(m)}).observe(document,{childList:!0,subtree:!0});function o(l){const d={};return l.integrity&&(d.integrity=l.integrity),l.referrerPolicy&&(d.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?d.credentials="include":l.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function i(l){if(l.ep)return;l.ep=!0;const d=o(l);fetch(l.href,d)}})();function Tb(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var _m={exports:{}},vi={};/** 2 * @license React 3 * react-jsx-runtime.production.js 4 * 5 * Copyright (c) Meta Platforms, Inc. and affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var Hy;function KS(){if(Hy)return vi;Hy=1;var a=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function o(i,l,d){var m=null;if(d!==void 0&&(m=""+d),l.key!==void 0&&(m=""+l.key),"key"in l){d={};for(var h in l)h!=="key"&&(d[h]=l[h])}else d=l;return l=d.ref,{$$typeof:a,type:i,key:m,ref:l!==void 0?l:null,props:d}}return vi.Fragment=n,vi.jsx=o,vi.jsxs=o,vi}var Uy;function JS(){return Uy||(Uy=1,_m.exports=KS()),_m.exports}var e=JS(),ar=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(a){return this.listeners.add(a),this.onSubscribe(),()=>{this.listeners.delete(a),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},WS={setTimeout:(a,n)=>setTimeout(a,n),clearTimeout:a=>clearTimeout(a),setInterval:(a,n)=>setInterval(a,n),clearInterval:a=>clearInterval(a)},$S=class{#t=WS;#e=!1;setTimeoutProvider(a){this.#t=a}setTimeout(a,n){return this.#t.setTimeout(a,n)}clearTimeout(a){this.#t.clearTimeout(a)}setInterval(a,n){return this.#t.setInterval(a,n)}clearInterval(a){this.#t.clearInterval(a)}},Wn=new $S;function XS(a){setTimeout(a,0)}var Xn=typeof window>"u"||"Deno"in globalThis;function Dt(){}function ZS(a,n){return typeof a=="function"?a(n):a}function xp(a){return typeof a=="number"&&a>=0&&a!==1/0}function Db(a,n){return Math.max(a+(n||0)-Date.now(),0)}function gn(a,n){return typeof a=="function"?a(n):a}function Ra(a,n){return typeof a=="function"?a(n):a}function Vy(a,n){const{type:o="all",exact:i,fetchStatus:l,predicate:d,queryKey:m,stale:h}=a;if(m){if(i){if(n.queryHash!==sh(m,n.options))return!1}else if(!Pi(n.queryKey,m))return!1}if(o!=="all"){const g=n.isActive();if(o==="active"&&!g||o==="inactive"&&g)return!1}return!(typeof h=="boolean"&&n.isStale()!==h||l&&l!==n.state.fetchStatus||d&&!d(n))}function Fy(a,n){const{exact:o,status:i,predicate:l,mutationKey:d}=a;if(d){if(!n.options.mutationKey)return!1;if(o){if(fn(n.options.mutationKey)!==fn(d))return!1}else if(!Pi(n.options.mutationKey,d))return!1}return!(i&&n.state.status!==i||l&&!l(n))}function sh(a,n){return(n?.queryKeyHashFn||fn)(a)}function fn(a){return JSON.stringify(a,(n,o)=>yp(o)?Object.keys(o).sort().reduce((i,l)=>(i[l]=o[l],i),{}):o)}function Pi(a,n){return a===n?!0:typeof a!=typeof n?!1:a&&n&&typeof a=="object"&&typeof n=="object"?Object.keys(n).every(o=>Pi(a[o],n[o])):!1}var e2=Object.prototype.hasOwnProperty;function nh(a,n){if(a===n)return a;const o=Qy(a)&&Qy(n);if(!o&&!(yp(a)&&yp(n)))return n;const l=(o?a:Object.keys(a)).length,d=o?n:Object.keys(n),m=d.length,h=o?new Array(m):{};let g=0;for(let f=0;f<m;f++){const y=o?f:d[f],x=a[y],j=n[y];if(x===j){h[y]=x,(o?f<l:e2.call(a,y))&&g++;continue}if(x===null||j===null||typeof x!="object"||typeof j!="object"){h[y]=j;continue}const C=nh(x,j);h[y]=C,C===x&&g++}return l===m&&g===l?a:h}function Oi(a,n){if(!n||Object.keys(a).length!==Object.keys(n).length)return!1;for(const o in a)if(a[o]!==n[o])return!1;return!0}function Qy(a){return Array.isArray(a)&&a.length===Object.keys(a).length}function yp(a){if(!Gy(a))return!1;const n=a.constructor;if(n===void 0)return!0;const o=n.prototype;return!(!Gy(o)||!o.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(a)!==Object.prototype)}function Gy(a){return Object.prototype.toString.call(a)==="[object Object]"}function t2(a){return new Promise(n=>{Wn.setTimeout(n,a)})}function vp(a,n,o){return typeof o.structuralSharing=="function"?o.structuralSharing(a,n):o.structuralSharing!==!1?nh(a,n):n}function a2(a,n,o=0){const i=[...a,n];return o&&i.length>o?i.slice(1):i}function s2(a,n,o=0){const i=[n,...a];return o&&i.length>o?i.slice(0,-1):i}var ha=Symbol();function Lb(a,n){return!a.queryFn&&n?.initialPromise?()=>n.initialPromise:!a.queryFn||a.queryFn===ha?()=>Promise.reject(new Error(`Missing queryFn: '${a.queryHash}'`)):a.queryFn}function Ib(a,n){return typeof a=="function"?a(...n):!!a}var n2=class extends ar{#t;#e;#a;constructor(){super(),this.#a=a=>{if(!Xn&&window.addEventListener){const n=()=>a();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}}}onSubscribe(){this.#e||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(a){this.#a=a,this.#e?.(),this.#e=a(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()})}setFocused(a){this.#t!==a&&(this.#t=a,this.onFocus())}onFocus(){const a=this.isFocused();this.listeners.forEach(n=>{n(a)})}isFocused(){return typeof this.#t=="boolean"?this.#t:globalThis.document?.visibilityState!=="hidden"}},rh=new n2;function bp(){let a,n;const o=new Promise((l,d)=>{a=l,n=d});o.status="pending",o.catch(()=>{});function i(l){Object.assign(o,l),delete o.resolve,delete o.reject}return o.resolve=l=>{i({status:"fulfilled",value:l}),a(l)},o.reject=l=>{i({status:"rejected",reason:l}),n(l)},o}var r2=XS;function o2(){let a=[],n=0,o=h=>{h()},i=h=>{h()},l=r2;const d=h=>{n?a.push(h):l(()=>{o(h)})},m=()=>{const h=a;a=[],h.length&&l(()=>{i(()=>{h.forEach(g=>{o(g)})})})};return{batch:h=>{let g;n++;try{g=h()}finally{n--,n||m()}return g},batchCalls:h=>(...g)=>{d(()=>{h(...g)})},schedule:d,setNotifyFunction:h=>{o=h},setBatchNotifyFunction:h=>{i=h},setScheduler:h=>{l=h}}}var lt=o2(),i2=class extends ar{#t=!0;#e;#a;constructor(){super(),this.#a=a=>{if(!Xn&&window.addEventListener){const n=()=>a(!0),o=()=>a(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",o,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",o)}}}}onSubscribe(){this.#e||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(a){this.#a=a,this.#e?.(),this.#e=a(this.setOnline.bind(this))}setOnline(a){this.#t!==a&&(this.#t=a,this.listeners.forEach(o=>{o(a)}))}isOnline(){return this.#t}},Il=new i2;function c2(a){return Math.min(1e3*2**a,3e4)}function _b(a){return(a??"online")==="online"?Il.isOnline():!0}var jp=class extends Error{constructor(a){super("CancelledError"),this.revert=a?.revert,this.silent=a?.silent}};function zb(a){let n=!1,o=0,i;const l=bp(),d=()=>l.status!=="pending",m=w=>{if(!d()){const E=new jp(w);j(E),a.onCancel?.(E)}},h=()=>{n=!0},g=()=>{n=!1},f=()=>rh.isFocused()&&(a.networkMode==="always"||Il.isOnline())&&a.canRun(),y=()=>_b(a.networkMode)&&a.canRun(),x=w=>{d()||(i?.(),l.resolve(w))},j=w=>{d()||(i?.(),l.reject(w))},C=()=>new Promise(w=>{i=E=>{(d()||f())&&w(E)},a.onPause?.()}).then(()=>{i=void 0,d()||a.onContinue?.()}),R=()=>{if(d())return;let w;const E=o===0?a.initialPromise:void 0;try{w=E??a.fn()}catch(k){w=Promise.reject(k)}Promise.resolve(w).then(x).catch(k=>{if(d())return;const D=a.retry??(Xn?0:3),q=a.retryDelay??c2,K=typeof q=="function"?q(o,k):q,N=D===!0||typeof D=="number"&&o<D||typeof D=="function"&&D(o,k);if(n||!N){j(k);return}o++,a.onFail?.(o,k),t2(K).then(()=>f()?void 0:C()).then(()=>{n?j(k):R()})})};return{promise:l,status:()=>l.status,cancel:m,continue:()=>(i?.(),l),cancelRetry:h,continueRetry:g,canStart:y,start:()=>(y()?R():C().then(R),l)}}var qb=class{#t;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),xp(this.gcTime)&&(this.#t=Wn.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(a){this.gcTime=Math.max(this.gcTime||0,a??(Xn?1/0:300*1e3))}clearGcTimeout(){this.#t&&(Wn.clearTimeout(this.#t),this.#t=void 0)}},l2=class extends qb{#t;#e;#a;#n;#s;#r;#i;constructor(a){super(),this.#i=!1,this.#r=a.defaultOptions,this.setOptions(a.options),this.observers=[],this.#n=a.client,this.#a=this.#n.getQueryCache(),this.queryKey=a.queryKey,this.queryHash=a.queryHash,this.#t=Yy(this.options),this.state=a.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#s?.promise}setOptions(a){if(this.options={...this.#r,...a},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=Yy(this.options);n.data!==void 0&&(this.setData(n.data,{updatedAt:n.dataUpdatedAt,manual:!0}),this.#t=n)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#a.remove(this)}setData(a,n){const o=vp(this.state.data,a,this.options);return this.#o({data:o,type:"success",dataUpdatedAt:n?.updatedAt,manual:n?.manual}),o}setState(a,n){this.#o({type:"setState",state:a,setStateOptions:n})}cancel(a){const n=this.#s?.promise;return this.#s?.cancel(a),n?n.then(Dt).catch(Dt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#t)}isActive(){return this.observers.some(a=>Ra(a.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ha||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(a=>gn(a.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(a=>a.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(a=0){return this.state.data===void 0?!0:a==="static"?!1:this.state.isInvalidated?!0:!Db(this.state.dataUpdatedAt,a)}onFocus(){this.observers.find(n=>n.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#s?.continue()}onOnline(){this.observers.find(n=>n.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#s?.continue()}addObserver(a){this.observers.includes(a)||(this.observers.push(a),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",query:this,observer:a}))}removeObserver(a){this.observers.includes(a)&&(this.observers=this.observers.filter(n=>n!==a),this.observers.length||(this.#s&&(this.#i?this.#s.cancel({revert:!0}):this.#s.cancelRetry()),this.scheduleGc()),this.#a.notify({type:"observerRemoved",query:this,observer:a}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}async fetch(a,n){if(this.state.fetchStatus!=="idle"&&this.#s?.status()!=="rejected"){if(this.state.data!==void 0&&n?.cancelRefetch)this.cancel({silent:!0});else if(this.#s)return this.#s.continueRetry(),this.#s.promise}if(a&&this.setOptions(a),!this.options.queryFn){const h=this.observers.find(g=>g.options.queryFn);h&&this.setOptions(h.options)}const o=new AbortController,i=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(this.#i=!0,o.signal)})},l=()=>{const h=Lb(this.options,n),f=(()=>{const y={client:this.#n,queryKey:this.queryKey,meta:this.meta};return i(y),y})();return this.#i=!1,this.options.persister?this.options.persister(h,f,this):h(f)},m=(()=>{const h={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:this.#n,state:this.state,fetchFn:l};return i(h),h})();this.options.behavior?.onFetch(m,this),this.#e=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==m.fetchOptions?.meta)&&this.#o({type:"fetch",meta:m.fetchOptions?.meta}),this.#s=zb({initialPromise:n?.initialPromise,fn:m.fetchFn,onCancel:h=>{h instanceof jp&&h.revert&&this.setState({...this.#e,fetchStatus:"idle"}),o.abort()},onFail:(h,g)=>{this.#o({type:"failed",failureCount:h,error:g})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:m.options.retry,retryDelay:m.options.retryDelay,networkMode:m.options.networkMode,canRun:()=>!0});try{const h=await this.#s.start();if(h===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(h),this.#a.config.onSuccess?.(h,this),this.#a.config.onSettled?.(h,this.state.error,this),h}catch(h){if(h instanceof jp){if(h.silent)return this.#s.promise;if(h.revert){if(this.state.data===void 0)throw h;return this.state.data}}throw this.#o({type:"error",error:h}),this.#a.config.onError?.(h,this),this.#a.config.onSettled?.(this.state.data,h,this),h}finally{this.scheduleGc()}}#o(a){const n=o=>{switch(a.type){case"failed":return{...o,fetchFailureCount:a.failureCount,fetchFailureReason:a.error};case"pause":return{...o,fetchStatus:"paused"};case"continue":return{...o,fetchStatus:"fetching"};case"fetch":return{...o,...Bb(o.data,this.options),fetchMeta:a.meta??null};case"success":const i={...o,data:a.data,dataUpdateCount:o.dataUpdateCount+1,dataUpdatedAt:a.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!a.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#e=a.manual?i:void 0,i;case"error":const l=a.error;return{...o,error:l,errorUpdateCount:o.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:o.fetchFailureCount+1,fetchFailureReason:l,fetchStatus:"idle",status:"error"};case"invalidate":return{...o,isInvalidated:!0};case"setState":return{...o,...a.state}}};this.state=n(this.state),lt.batch(()=>{this.observers.forEach(o=>{o.onQueryUpdate()}),this.#a.notify({query:this,type:"updated",action:a})})}};function Bb(a,n){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:_b(n.networkMode)?"fetching":"paused",...a===void 0&&{error:null,status:"pending"}}}function Yy(a){const n=typeof a.initialData=="function"?a.initialData():a.initialData,o=n!==void 0,i=o?typeof a.initialDataUpdatedAt=="function"?a.initialDataUpdatedAt():a.initialDataUpdatedAt:0;return{data:n,dataUpdateCount:0,dataUpdatedAt:o?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:o?"success":"pending",fetchStatus:"idle"}}var Hi=class extends ar{constructor(a,n){super(),this.options=n,this.#t=a,this.#o=null,this.#i=bp(),this.bindMethods(),this.setOptions(n)}#t;#e=void 0;#a=void 0;#n=void 0;#s;#r;#i;#o;#p;#u;#m;#l;#d;#c;#g=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#e.addObserver(this),Ky(this.#e,this.options)?this.#h():this.updateResult(),this.#v())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return wp(this.#e,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return wp(this.#e,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#j(),this.#e.removeObserver(this)}setOptions(a){const n=this.options,o=this.#e;if(this.options=this.#t.defaultQueryOptions(a),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Ra(this.options.enabled,this.#e)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#w(),this.#e.setOptions(this.options),n._defaulted&&!Oi(this.options,n)&&this.#t.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#e,observer:this});const i=this.hasListeners();i&&Jy(this.#e,o,this.options,n)&&this.#h(),this.updateResult(),i&&(this.#e!==o||Ra(this.options.enabled,this.#e)!==Ra(n.enabled,this.#e)||gn(this.options.staleTime,this.#e)!==gn(n.staleTime,this.#e))&&this.#f();const l=this.#x();i&&(this.#e!==o||Ra(this.options.enabled,this.#e)!==Ra(n.enabled,this.#e)||l!==this.#c)&&this.#y(l)}getOptimisticResult(a){const n=this.#t.getQueryCache().build(this.#t,a),o=this.createResult(n,a);return u2(this,o)&&(this.#n=o,this.#r=this.options,this.#s=this.#e.state),o}getCurrentResult(){return this.#n}trackResult(a,n){return new Proxy(a,{get:(o,i)=>(this.trackProp(i),n?.(i),i==="promise"&&!this.options.experimental_prefetchInRender&&this.#i.status==="pending"&&this.#i.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(o,i))})}trackProp(a){this.#g.add(a)}getCurrentQuery(){return this.#e}refetch({...a}={}){return this.fetch({...a})}fetchOptimistic(a){const n=this.#t.defaultQueryOptions(a),o=this.#t.getQueryCache().build(this.#t,n);return o.fetch().then(()=>this.createResult(o,n))}fetch(a){return this.#h({...a,cancelRefetch:a.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#n))}#h(a){this.#w();let n=this.#e.fetch(this.options,a);return a?.throwOnError||(n=n.catch(Dt)),n}#f(){this.#b();const a=gn(this.options.staleTime,this.#e);if(Xn||this.#n.isStale||!xp(a))return;const o=Db(this.#n.dataUpdatedAt,a)+1;this.#l=Wn.setTimeout(()=>{this.#n.isStale||this.updateResult()},o)}#x(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#e):this.options.refetchInterval)??!1}#y(a){this.#j(),this.#c=a,!(Xn||Ra(this.options.enabled,this.#e)===!1||!xp(this.#c)||this.#c===0)&&(this.#d=Wn.setInterval(()=>{(this.options.refetchIntervalInBackground||rh.isFocused())&&this.#h()},this.#c))}#v(){this.#f(),this.#y(this.#x())}#b(){this.#l&&(Wn.clearTimeout(this.#l),this.#l=void 0)}#j(){this.#d&&(Wn.clearInterval(this.#d),this.#d=void 0)}createResult(a,n){const o=this.#e,i=this.options,l=this.#n,d=this.#s,m=this.#r,g=a!==o?a.state:this.#a,{state:f}=a;let y={...f},x=!1,j;if(n._optimisticResults){const I=this.hasListeners(),Z=!I&&Ky(a,n),ae=I&&Jy(a,o,n,i);(Z||ae)&&(y={...y,...Bb(f.data,a.options)}),n._optimisticResults==="isRestoring"&&(y.fetchStatus="idle")}let{error:C,errorUpdatedAt:R,status:w}=y;j=y.data;let E=!1;if(n.placeholderData!==void 0&&j===void 0&&w==="pending"){let I;l?.isPlaceholderData&&n.placeholderData===m?.placeholderData?(I=l.data,E=!0):I=typeof n.placeholderData=="function"?n.placeholderData(this.#m?.state.data,this.#m):n.placeholderData,I!==void 0&&(w="success",j=vp(l?.data,I,n),x=!0)}if(n.select&&j!==void 0&&!E)if(l&&j===d?.data&&n.select===this.#p)j=this.#u;else try{this.#p=n.select,j=n.select(j),j=vp(l?.data,j,n),this.#u=j,this.#o=null}catch(I){this.#o=I}this.#o&&(C=this.#o,j=this.#u,R=Date.now(),w="error");const k=y.fetchStatus==="fetching",D=w==="pending",q=w==="error",K=D&&k,N=j!==void 0,M={status:w,fetchStatus:y.fetchStatus,isPending:D,isSuccess:w==="success",isError:q,isInitialLoading:K,isLoading:K,data:j,dataUpdatedAt:y.dataUpdatedAt,error:C,errorUpdatedAt:R,failureCount:y.fetchFailureCount,failureReason:y.fetchFailureReason,errorUpdateCount:y.errorUpdateCount,isFetched:y.dataUpdateCount>0||y.errorUpdateCount>0,isFetchedAfterMount:y.dataUpdateCount>g.dataUpdateCount||y.errorUpdateCount>g.errorUpdateCount,isFetching:k,isRefetching:k&&!D,isLoadingError:q&&!N,isPaused:y.fetchStatus==="paused",isPlaceholderData:x,isRefetchError:q&&N,isStale:oh(a,n),refetch:this.refetch,promise:this.#i,isEnabled:Ra(n.enabled,a)!==!1};if(this.options.experimental_prefetchInRender){const I=le=>{M.status==="error"?le.reject(M.error):M.data!==void 0&&le.resolve(M.data)},Z=()=>{const le=this.#i=M.promise=bp();I(le)},ae=this.#i;switch(ae.status){case"pending":a.queryHash===o.queryHash&&I(ae);break;case"fulfilled":(M.status==="error"||M.data!==ae.value)&&Z();break;case"rejected":(M.status!=="error"||M.error!==ae.reason)&&Z();break}}return M}updateResult(){const a=this.#n,n=this.createResult(this.#e,this.options);if(this.#s=this.#e.state,this.#r=this.options,this.#s.data!==void 0&&(this.#m=this.#e),Oi(n,a))return;this.#n=n;const o=()=>{if(!a)return!0;const{notifyOnChangeProps:i}=this.options,l=typeof i=="function"?i():i;if(l==="all"||!l&&!this.#g.size)return!0;const d=new Set(l??this.#g);return this.options.throwOnError&&d.add("error"),Object.keys(this.#n).some(m=>{const h=m;return this.#n[h]!==a[h]&&d.has(h)})};this.#C({listeners:o()})}#w(){const a=this.#t.getQueryCache().build(this.#t,this.options);if(a===this.#e)return;const n=this.#e;this.#e=a,this.#a=a.state,this.hasListeners()&&(n?.removeObserver(this),a.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#v()}#C(a){lt.batch(()=>{a.listeners&&this.listeners.forEach(n=>{n(this.#n)}),this.#t.getQueryCache().notify({query:this.#e,type:"observerResultsUpdated"})})}};function d2(a,n){return Ra(n.enabled,a)!==!1&&a.state.data===void 0&&!(a.state.status==="error"&&n.retryOnMount===!1)}function Ky(a,n){return d2(a,n)||a.state.data!==void 0&&wp(a,n,n.refetchOnMount)}function wp(a,n,o){if(Ra(n.enabled,a)!==!1&&gn(n.staleTime,a)!=="static"){const i=typeof o=="function"?o(a):o;return i==="always"||i!==!1&&oh(a,n)}return!1}function Jy(a,n,o,i){return(a!==n||Ra(i.enabled,a)===!1)&&(!o.suspense||a.state.status!=="error")&&oh(a,o)}function oh(a,n){return Ra(n.enabled,a)!==!1&&a.isStaleByTime(gn(n.staleTime,a))}function u2(a,n){return!Oi(a.getCurrentResult(),n)}function _l(a){return{onFetch:(n,o)=>{const i=n.options,l=n.fetchOptions?.meta?.fetchMore?.direction,d=n.state.data?.pages||[],m=n.state.data?.pageParams||[];let h={pages:[],pageParams:[]},g=0;const f=async()=>{let y=!1;const x=R=>{Object.defineProperty(R,"signal",{enumerable:!0,get:()=>(n.signal.aborted?y=!0:n.signal.addEventListener("abort",()=>{y=!0}),n.signal)})},j=Lb(n.options,n.fetchOptions),C=async(R,w,E)=>{if(y)return Promise.reject();if(w==null&&R.pages.length)return Promise.resolve(R);const D=(()=>{const U={client:n.client,queryKey:n.queryKey,pageParam:w,direction:E?"backward":"forward",meta:n.options.meta};return x(U),U})(),q=await j(D),{maxPages:K}=n.options,N=E?s2:a2;return{pages:N(R.pages,q,K),pageParams:N(R.pageParams,w,K)}};if(l&&d.length){const R=l==="backward",w=R?Hb:Cp,E={pages:d,pageParams:m},k=w(i,E);h=await C(E,k,R)}else{const R=a??d.length;do{const w=g===0?m[0]??i.initialPageParam:Cp(i,h);if(g>0&&w==null)break;h=await C(h,w),g++}while(g<R)}return h};n.options.persister?n.fetchFn=()=>n.options.persister?.(f,{client:n.client,queryKey:n.queryKey,meta:n.options.meta,signal:n.signal},o):n.fetchFn=f}}}function Cp(a,{pages:n,pageParams:o}){const i=n.length-1;return n.length>0?a.getNextPageParam(n[i],n,o[i],o):void 0}function Hb(a,{pages:n,pageParams:o}){return n.length>0?a.getPreviousPageParam?.(n[0],n,o[0],o):void 0}function m2(a,n){return n?Cp(a,n)!=null:!1}function p2(a,n){return!n||!a.getPreviousPageParam?!1:Hb(a,n)!=null}var Ub=class extends Hi{constructor(a,n){super(a,n)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(a){super.setOptions({...a,behavior:_l()})}getOptimisticResult(a){return a.behavior=_l(),super.getOptimisticResult(a)}fetchNextPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"backward"}}})}createResult(a,n){const{state:o}=a,i=super.createResult(a,n),{isFetching:l,isRefetching:d,isError:m,isRefetchError:h}=i,g=o.fetchMeta?.fetchMore?.direction,f=m&&g==="forward",y=l&&g==="forward",x=m&&g==="backward",j=l&&g==="backward";return{...i,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:m2(n,o.data),hasPreviousPage:p2(n,o.data),isFetchNextPageError:f,isFetchingNextPage:y,isFetchPreviousPageError:x,isFetchingPreviousPage:j,isRefetchError:h&&!f&&!x,isRefetching:d&&!y&&!j}}},h2=class extends qb{#t;#e;#a;#n;constructor(a){super(),this.#t=a.client,this.mutationId=a.mutationId,this.#a=a.mutationCache,this.#e=[],this.state=a.state||Vb(),this.setOptions(a.options),this.scheduleGc()}setOptions(a){this.options=a,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(a){this.#e.includes(a)||(this.#e.push(a),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",mutation:this,observer:a}))}removeObserver(a){this.#e=this.#e.filter(n=>n!==a),this.scheduleGc(),this.#a.notify({type:"observerRemoved",mutation:this,observer:a})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#a.remove(this))}continue(){return this.#n?.continue()??this.execute(this.state.variables)}async execute(a){const n=()=>{this.#s({type:"continue"})},o={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#n=zb({fn:()=>this.options.mutationFn?this.options.mutationFn(a,o):Promise.reject(new Error("No mutationFn found")),onFail:(d,m)=>{this.#s({type:"failed",failureCount:d,error:m})},onPause:()=>{this.#s({type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#a.canRun(this)});const i=this.state.status==="pending",l=!this.#n.canStart();try{if(i)n();else{this.#s({type:"pending",variables:a,isPaused:l}),await this.#a.config.onMutate?.(a,this,o);const m=await this.options.onMutate?.(a,o);m!==this.state.context&&this.#s({type:"pending",context:m,variables:a,isPaused:l})}const d=await this.#n.start();return await this.#a.config.onSuccess?.(d,a,this.state.context,this,o),await this.options.onSuccess?.(d,a,this.state.context,o),await this.#a.config.onSettled?.(d,null,this.state.variables,this.state.context,this,o),await this.options.onSettled?.(d,null,a,this.state.context,o),this.#s({type:"success",data:d}),d}catch(d){try{throw await this.#a.config.onError?.(d,a,this.state.context,this,o),await this.options.onError?.(d,a,this.state.context,o),await this.#a.config.onSettled?.(void 0,d,this.state.variables,this.state.context,this,o),await this.options.onSettled?.(void 0,d,a,this.state.context,o),d}finally{this.#s({type:"error",error:d})}}finally{this.#a.runNext(this)}}#s(a){const n=o=>{switch(a.type){case"failed":return{...o,failureCount:a.failureCount,failureReason:a.error};case"pause":return{...o,isPaused:!0};case"continue":return{...o,isPaused:!1};case"pending":return{...o,context:a.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:a.isPaused,status:"pending",variables:a.variables,submittedAt:Date.now()};case"success":return{...o,data:a.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...o,data:void 0,error:a.error,failureCount:o.failureCount+1,failureReason:a.error,isPaused:!1,status:"error"}}};this.state=n(this.state),lt.batch(()=>{this.#e.forEach(o=>{o.onMutationUpdate(a)}),this.#a.notify({mutation:this,type:"updated",action:a})})}};function Vb(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var g2=class extends ar{constructor(a={}){super(),this.config=a,this.#t=new Set,this.#e=new Map,this.#a=0}#t;#e;#a;build(a,n,o){const i=new h2({client:a,mutationCache:this,mutationId:++this.#a,options:a.defaultMutationOptions(n),state:o});return this.add(i),i}add(a){this.#t.add(a);const n=ml(a);if(typeof n=="string"){const o=this.#e.get(n);o?o.push(a):this.#e.set(n,[a])}this.notify({type:"added",mutation:a})}remove(a){if(this.#t.delete(a)){const n=ml(a);if(typeof n=="string"){const o=this.#e.get(n);if(o)if(o.length>1){const i=o.indexOf(a);i!==-1&&o.splice(i,1)}else o[0]===a&&this.#e.delete(n)}}this.notify({type:"removed",mutation:a})}canRun(a){const n=ml(a);if(typeof n=="string"){const i=this.#e.get(n)?.find(l=>l.state.status==="pending");return!i||i===a}else return!0}runNext(a){const n=ml(a);return typeof n=="string"?this.#e.get(n)?.find(i=>
9i!==a&&i.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){lt.batch(()=>{this.#t.forEach(a=>{this.notify({type:"removed",mutation:a})}),this.#t.clear(),this.#e.clear()})}getAll(){return Array.from(this.#t)}find(a){const n={exact:!0,...a};return this.getAll().find(o=>Fy(n,o))}findAll(a={}){return this.getAll().filter(n=>Fy(a,n))}notify(a){lt.batch(()=>{this.listeners.forEach(n=>{n(a)})})}resumePausedMutations(){const a=this.getAll().filter(n=>n.state.isPaused);return lt.batch(()=>Promise.all(a.map(n=>n.continue().catch(Dt))))}};function ml(a){return a.options.scope?.id}var f2=class extends ar{#t;#e=void 0;#a;#n;constructor(n,o){super(),this.#t=n,this.setOptions(o),this.bindMethods(),this.#s()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){const o=this.options;this.options=this.#t.defaultMutationOptions(n),Oi(this.options,o)||this.#t.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#a,observer:this}),o?.mutationKey&&this.options.mutationKey&&fn(o.mutationKey)!==fn(this.options.mutationKey)?this.reset():this.#a?.state.status==="pending"&&this.#a.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#a?.removeObserver(this)}onMutationUpdate(n){this.#s(),this.#r(n)}getCurrentResult(){return this.#e}reset(){this.#a?.removeObserver(this),this.#a=void 0,this.#s(),this.#r()}mutate(n,o){return this.#n=o,this.#a?.removeObserver(this),this.#a=this.#t.getMutationCache().build(this.#t,this.options),this.#a.addObserver(this),this.#a.execute(n)}#s(){const n=this.#a?.state??Vb();this.#e={...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset}}#r(n){lt.batch(()=>{if(this.#n&&this.hasListeners()){const o=this.#e.variables,i=this.#e.context,l={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};n?.type==="success"?(this.#n.onSuccess?.(n.data,o,i,l),this.#n.onSettled?.(n.data,null,o,i,l)):n?.type==="error"&&(this.#n.onError?.(n.error,o,i,l),this.#n.onSettled?.(void 0,n.error,o,i,l))}this.listeners.forEach(o=>{o(this.#e)})})}};function Wy(a,n){const o=new Set(n);return a.filter(i=>!o.has(i))}function x2(a,n,o){const i=a.slice(0);return i[n]=o,i}var y2=class extends ar{#t;#e;#a;#n;#s;#r;#i;#o;#p=[];constructor(a,n,o){super(),this.#t=a,this.#n=o,this.#a=[],this.#s=[],this.#e=[],this.setQueries(n)}onSubscribe(){this.listeners.size===1&&this.#s.forEach(a=>{a.subscribe(n=>{this.#d(a,n)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#s.forEach(a=>{a.destroy()})}setQueries(a,n){this.#a=a,this.#n=n,lt.batch(()=>{const o=this.#s,i=this.#l(this.#a);this.#p=i,i.forEach(y=>y.observer.setOptions(y.defaultedQueryOptions));const l=i.map(y=>y.observer),d=l.map(y=>y.getCurrentResult()),m=o.length!==l.length,h=l.some((y,x)=>y!==o[x]),g=m||h,f=g?!0:d.some((y,x)=>{const j=this.#e[x];return!j||!Oi(y,j)});!g&&!f||(g&&(this.#s=l),this.#e=d,this.hasListeners()&&(g&&(Wy(o,l).forEach(y=>{y.destroy()}
vendor: 5,363 bytes, line 9
9),Wy(l,o).forEach(y=>{y.subscribe(x=>{this.#d(y,x)})})),this.#c()))})}getCurrentResult(){return this.#e}getQueries(){return this.#s.map(a=>a.getCurrentQuery())}getObservers(){return this.#s}getOptimisticResult(a,n){const o=this.#l(a),i=o.map(l=>l.observer.getOptimisticResult(l.defaultedQueryOptions));return[i,l=>this.#m(l??i,n),()=>this.#u(i,o)]}#u(a,n){return n.map((o,i)=>{const l=a[i];return o.defaultedQueryOptions.notifyOnChangeProps?l:o.observer.trackResult(l,d=>{n.forEach(m=>{m.observer.trackProp(d)})})})}#m(a,n){return n?((!this.#r||this.#e!==this.#o||n!==this.#i)&&(this.#i=n,this.#o=this.#e,this.#r=nh(this.#r,n(a))),this.#r):a}#l(a){const n=new Map(this.#s.map(i=>[i.options.queryHash,i])),o=[];return a.forEach(i=>{const l=this.#t.defaultQueryOptions(i),d=n.get(l.queryHash);d?o.push({defaultedQueryOptions:l,observer:d}):o.push({defaultedQueryOptions:l,observer:new Hi(this.#t,l)})}),o}#d(a,n){const o=this.#s.indexOf(a);o!==-1&&(this.#e=x2(this.#e,o,n),this.#c())}#c(){if(this.hasListeners()){const a=this.#r,n=this.#u(this.#e,this.#p),o=this.#m(n,this.#n?.combine);a!==o&<.batch(()=>{this.listeners.forEach(i=>{i(this.#e)})})}}},v2=class extends ar{constructor(a={}){super(),this.config=a,this.#t=new Map}#t;build(a,n,o){const i=n.queryKey,l=n.queryHash??sh(i,n);let d=this.get(l);return d||(d=new l2({client:a,queryKey:i,queryHash:l,options:a.defaultQueryOptions(n),state:o,defaultOptions:a.getQueryDefaults(i)}),this.add(d)),d}add(a){this.#t.has(a.queryHash)||(this.#t.set(a.queryHash,a),this.notify({type:"added",query:a}))}remove(a){const n=this.#t.get(a.queryHash);n&&(a.destroy(),n===a&&this.#t.delete(a.queryHash),this.notify({type:"removed",query:a}))}clear(){lt.batch(()=>{this.getAll().forEach(a=>{this.remove(a)})})}get(a){return this.#t.get(a)}getAll(){return[...this.#t.values()]}find(a){const n={exact:!0,...a};return this.getAll().find(o=>Vy(n,o))}findAll(a={}){const n=this.getAll();return Object.keys(a).length>0?n.filter(o=>Vy(a,o)):n}notify(a){lt.batch(()=>{this.listeners.forEach(n=>{n(a)})})}onFocus(){lt.batch(()=>{this.getAll().forEach(a=>{a.onFocus()})})}onOnline(){lt.batch(()=>{this.getAll().forEach(a=>{a.onOnline()})})}},b2=class{#t;#e;#a;#n;#s;#r;#i;#o;constructor(a={}){this.#t=a.queryCache||new v2,this.#e=a.mutationCache||new g2,this.#a=a.defaultOptions||{},this.#n=new Map,this.#s=new Map,this.#r=0}mount(){this.#r++,this.#r===1&&(this.#i=rh.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#t.onFocus())}),this.#o=Il.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#t.onOnline())}))}unmount(){this.#r--,this.#r===0&&(this.#i?.(),this.#i=void 0,this.#o?.(),this.#o=void 0)}isFetching(a){return this.#t.findAll({...a,fetchStatus:"fetching"}).length}isMutating(a){return this.#e.findAll({...a,status:"pending"}).length}getQueryData(a){const n=this.defaultQueryOptions({queryKey:a});return this.#t.get(n.queryHash)?.state.data}ensureQueryData(a){const n=this.defaultQueryOptions(a),o=this.#t.build(this,n),i=o.state.data;return i===void 0?this.fetchQuery(a):(a.revalidateIfStale&&o.isStaleByTime(gn(n.staleTime,o))&&this.prefetchQuery(n),Promise.resolve(i))}getQueriesData(a){return this.#t.findAll(a).map(({queryKey:n,state:o})=>{const i=o.data;return[n,i]})}setQueryData(a,n,o){const i=this.defaultQueryOptions({queryKey:a}),d=this.#t.get(i.queryHash)?.state.data,m=ZS(n,d);if(m!==void 0)return this.#t.build(this,i).setData(m,{...o,manual:!0})}setQueriesData(a,n,o){return lt.batch(()=>this.#t.findAll(a).map(({queryKey:i})=>[i,this.setQueryData(i,n,o)]))}getQueryState(a){const n=this.defaultQueryOptions({queryKey:a});return this.#t.get(n.queryHash)?.state}removeQueries(a){const n=this.#t;lt.batch(()=>{n.findAll(a).forEach(o=>{n.remove(o)})})}resetQueries(a,n){const o=this.#t;return lt.batch(()=>(o.findAll(a).forEach(i=>{i.reset()}),this.refetchQueries({type:"active",...a},n)))}cancelQueries(a,n={}){const o={revert:!0,...n},i=lt.batch(()=>this.#t.findAll(a).map(l=>l.cancel(o)));return Promise.all(i).then(Dt).catch(Dt)}invalidateQueries(a,n={}){return lt.batch(()=>(this.#t.findAll(a).forEach(o=>{o.invalidate()}),a?.refetchType==="none"?Promise.resolve():this.refetchQueries({...a,type:a?.refetchType??a?.type??"active"},n)))}refetchQueries(a,n={}){const o={...n,cancelRefetch:n.cancelRefetch??!0},i=lt.batch(()=>this.#t.findAll(a).filter(l=>!l.isDisabled()&&!l.isStatic()).map(l=>{let d=l.fetch(void 0,o);return o.throwOnError||(d=d.catch(Dt)),l.state.fetchStatus==="paused"?Promise.resolve():d}));return Promise.all(i).then(Dt)}fetchQuery(a){const n=this.defaultQueryOptions(a);n.retry===void 0&&(n.retry=!1);const o=this.#t.build(this,n);return o.isStaleByTime(gn(n.staleTime,o))?o.fetch(n):Promise.resolve(o.state.data)}prefetchQuery(a){return this.fetchQuery(a).then(Dt).catch(Dt)}fetchInfiniteQuery(a){return a.behavior=_l(a.pages),this.fetchQuery(a)}prefetchInfiniteQuery(a){return this.fetchInfiniteQuery(a).then(Dt).catch(Dt)}ensureInfiniteQueryData(a){return a.behavior=_l(a.pages),this.ensureQueryData(a)}resumePausedMutations(){return Il.isOnline()?this.#e.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#t}getMutationCache(){return this.#e}getDefaultOptions(){return this.#a}setDefaultOptions(a){this.#a=a}setQueryDefaults(a,n){this.#n.set(fn(a),{queryKey:a,defaultOptions:n})}getQueryDefaults(a){const n=[...this.#n.values()],o={};
vendor: 9,010 bytes, lines 9-17
9return n.forEach(i=>{Pi(a,i.queryKey)&&Object.assign(o,i.defaultOptions)}),o}setMutationDefaults(a,n){this.#s.set(fn(a),{mutationKey:a,defaultOptions:n})}getMutationDefaults(a){const n=[...this.#s.values()],o={};return n.forEach(i=>{Pi(a,i.mutationKey)&&Object.assign(o,i.defaultOptions)}),o}defaultQueryOptions(a){if(a._defaulted)return a;const n={...this.#a.queries,...this.getQueryDefaults(a.queryKey),...a,_defaulted:!0};return n.queryHash||(n.queryHash=sh(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.queryFn===ha&&(n.enabled=!1),n}defaultMutationOptions(a){return a?._defaulted?a:{...this.#a.mutations,...a?.mutationKey&&this.getMutationDefaults(a.mutationKey),...a,_defaulted:!0}}clear(){this.#t.clear(),this.#e.clear()}},zm={exports:{}},Ne={};/** 10 * @license React 11 * react.production.js 12 * 13 * Copyright (c) Meta Platforms, Inc. and affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var $y;function j2(){if($y)return Ne;$y=1;var a=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),m=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),j=Symbol.iterator;function C(P){return P===null||typeof P!="object"?null:(P=j&&P[j]||P["@@iterator"],typeof P=="function"?P:null)}var R={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,E={};function k(P,W,F){this.props=P,this.context=W,this.refs=E,this.updater=F||R}k.prototype.isReactComponent={},k.prototype.setState=function(P,W){if(typeof P!="object"&&typeof P!="function"&&P!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,P,W,"setState")},k.prototype.forceUpdate=function(P){this.updater.enqueueForceUpdate(this,P,"forceUpdate")};function D(){}D.prototype=k.prototype;function q(P,W,F){this.props=P,this.context=W,this.refs=E,this.updater=F||R}var K=q.prototype=new D;K.constructor=q,w(K,k.prototype),K.isPureReactComponent=!0;var N=Array.isArray;function U(){}var M={H:null,A:null,T:null,S:null},I=Object.prototype.hasOwnProperty;function Z(P,W,F){var $=F.ref;return{$$typeof:a,type:P,key:W,ref:$!==void 0?$:null,props:F}}function ae(P,W){return Z(P.type,W,P.props)}function le(P){return typeof P=="object"&&P!==null&&P.$$typeof===a}function ie(P){var W={"=":"=0",":":"=2"};return"$"+P.replace(/[=:]/g,function(F){return W[F]})}var he=/\/+/g;function pe(P,W){return typeof P=="object"&&P!==null&&P.key!=null?ie(""+P.key):W.toString(36)}function ge(P){switch(P.status){case"fulfilled":return P.value;case"rejected":throw P.reason;default:switch(typeof P.status=="string"?P.then(U,U):(P.status="pending",P.then(function(W){P.status==="pending"&&(P.status="fulfilled",P.value=W)},function(W){P.status==="pending"&&(P.status="rejected",P.reason=W)})),P.status){case"fulfilled":return P.value;case"rejected":throw P.reason}}throw P}function A(P,W,F,$,O){var oe=typeof P;(oe==="undefined"||oe==="boolean")&&(P=null);var ce=!1;if(P===null)ce=!0;else switch(oe){case"bigint":case"string":case"number":ce=!0;break;case"object":switch(P.$$typeof){case a:case n:ce=!0;break;case y:return ce=P._init,A(ce(P._payload),W,F,$,O)}}if(ce)return O=O(P),ce=$===""?"."+pe(P,0):$,N(O)?(F="",ce!=null&&(F=ce.replace(he,"$&/")+"/"),A(O,W,F,"",function(dt){return dt})):O!=null&&(le(O)&&(O=ae(O,F+(O.key==null||P&&P.key===O.key?"":(""+O.key).replace(he,"$&/")+"/")+ce)),W.push(O)),1;ce=0;var we=$===""?".":$+":";if(N(P))for(var Me=0;Me<P.length;Me++)$=P[Me],oe=we+pe($,Me),ce+=A($,W,F,oe,O);else if(Me=C(P),typeof Me=="function")for(P=Me.call(P),Me=0;!($=P.next()).done;)$=$.value,oe=we+pe($,Me++),ce+=A($,W,F,oe,O);else if(oe==="object"){if(typeof P.then=="function")return A(ge(P),W,F,$,O);throw W=String(P),Error("Objects are not valid as a React child (found: "+(W==="[object Object]"?"object with keys {"+Object.keys(P).join(", ")+"}":W)+"). If you meant to render a collection of children, use an array instead.")}return ce}function _(P,W,F){if(P==null)return P;var $=[],O=0;return A(P,$,"","",function(oe){return W.call(F,oe,O++)}),$}function z(P){if(P._status===-1){var W=P._result;W=W(),W.then(function(F){(P._status===0||P._status===-1)&&(P._status=1,P._result=F)},function(F){(P._status===0||P._status===-1)&&(P._status=2,P._result=F)}),P._status===-1&&(P._status=0,P._result=W)}if(P._status===1)return P._result.default;throw P._result}var ee=typeof reportError=="function"?reportError:function(P){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var W=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof P=="object"&&P!==null&&typeof P.message=="string"?String(P.message):String(P),error:P});if(!window.dispatchEvent(W))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",P);return}console.error(P)},de={map:_,forEach:function(P,W,F){_(P,function(){W.apply(this,arguments)},F)},count:function(P){var W=0;return _(P,function(){W++}),W},toArray:function(P){return _(P,function(W){return W})||[]},only:function(P){if(!le(P))throw Error("React.Children.only expected to receive a single React element child.");return P}};return Ne.Activity=x,Ne.Children=de,Ne.Component=k,Ne.Fragment=o,Ne.Profiler=l,Ne.PureComponent=q,Ne.StrictMode=i,Ne.Suspense=g,Ne.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=M,Ne.__COMPILER_RUNTIME={__proto__:null,c:function(P){return M.H.useMemoCache(P)}},Ne.cache=function(P){return function(){return P.apply(null,arguments)}},Ne.cacheSignal=function(){return null},Ne.cloneElement=function(P,W,F){if(P==null)throw Error("The argument must be a React element, but you passed "+P+".");var $=w({},P.props),O=P.key;if(W!=null)for(oe in W.key!==void 0&&(O=""+W.key),W)!I.call(W,oe)||oe==="key"||oe==="__self"||oe==="__source"||oe==="ref"&&W.ref===void 0||($[oe]=W[oe]);var oe=arguments.length-2;if(oe===1)$.children=F;else if(1<oe){for(var ce=Array(oe),we=0;we<oe;we++)ce[we]=arguments[we+2];$.children=ce}return Z(P.type,O,$)},Ne.createContext=function(P){return P={$$typeof:m,_currentValue:P,_currentValue2:P,_threadCount:0,Provider:null,Consumer:null},P.Provider=P,P.Consumer={$$typeof:d,_context:P},P},Ne.createElement=function(P,W,F){var $,O={},oe=null;if(W!=null)for($ in W.key!==void 0&&(oe=""+W.key),W)I.call(W,$)&&$!=="key"&&$!=="__self"&&$!=="__source"&&(O[$]=W[$]);var ce=arguments.length-2;if(ce===1)O.children=F;else if(1<ce){for(var we=Array(ce),Me=0;Me<ce;Me++)we[Me]=arguments[Me+2];O.children=we}if(P&&P.defaultProps)for($ in ce=P.defaultProps,ce)O[$]===void 0&&(O[$]=ce[$]);return Z(P,oe,O)},Ne.createRef=function(){return{current:null}},Ne.forwardRef=function(P){return{$$typeof:h,render:P}},Ne.isValidElement=le,Ne.lazy=function(P){return{$$typeof:y,_payload:{_status:-1,_result:P},_init:z}},Ne.memo=function(P,W){return{$$typeof:f,type:P,compare:W===void 0?null:W}},Ne.startTransition=function(P){var W=M.T,F={};M.T=F;try{var $=P(),O=M.S;O!==null&&O(F,$),typeof $=="object"&&$!==null&&typeof $.then=="function"&&$.then(U,ee)}catch(oe){ee(oe)}finally{W!==null&&F.types!==null&&(W.types=F.types),M.T=W}},Ne.unstable_useCacheRefresh=function(){return M.H.useCacheRefresh()},Ne.use=function(P){return M.H.use(P)},Ne.useActionState=function(P,W,F){return M.H.useActionState(P,W,F)},Ne.useCallback=function(P,W){return M.H.useCallback(P,W)},Ne.useContext=function(P){return M.H.useContext(P)},Ne.useDebugValue=function(){},Ne.useDeferredValue=function(P,W){return M.H.useDeferredValue(P,W)},Ne.useEffect=function(P,W){return M.H.useEffect(P,W)},Ne.useEffectEvent=function(P){return M.H.useEffectEvent(P)},Ne.useId=function(){return M.H.useId()},Ne.useImperativeHandle=function(P,W,F){return M.H.useImperativeHandle(P,W,F)},Ne.useInsertionEffect=function(P,W){return M.H.useInsertionEffect(P,W)},Ne.useLayoutEffect=function(P,W){return M.H.useLayoutEffect(P,W)},Ne.useMemo=function(P,W){return M.H.useMemo(P,W)},Ne.useOptimistic=function(P,W){return M.H.useOptimistic(P,W)},Ne.useReducer=function(P,W,F){return M.H.useReducer(P,W,F)},Ne.useRef=function(P){return M.H.useRef(P)},Ne.useState=function(P){return M.H.useState(P)},Ne.useSyncExternalStore=function(P,W,F){return M.H.useSyncExternalStore(P,W,F)},Ne.useTransition=function(){return M.H.useTransition()},Ne.version="19.2.1",Ne}var Xy;function $l(){return Xy||(Xy=1,zm.exports=j2()),zm.exports}var b=$l();const ue=Tb(b),Xl=YS({__proto__:null,default:ue},[b]);var Fb=b.createContext(void 0),Ui=a=>{const n=b.useContext(Fb);if(a)return a;
17if(!n)throw new Error("No QueryClient set, use QueryClientProvider to set one");return n},w2=({client:a,children:n})=>(b.useEffect(()=>(a.mount(),()=>{a.unmount()}),[a]),e.jsx(Fb.Provider,{value:a,children:n})),Qb=b.createContext(!1),Gb=()=>b.useContext(Qb);Qb.Provider;function C2(){let a=!1;return{clearReset:()=>{a=!1},reset:()=>{a=!0},isReset:()=>a}}var S2=b.createContext(C2()),Yb=()=>b.useContext(S2),Kb=(a,n)=>{(a.suspense||a.throwOnError||a.experimental_prefetchInRender)&&(n.isReset()||(a.retryOnMount=!1))},Jb=a=>{b.useEffect(()=>{a.clearReset()},[a])},Wb=({result:a,errorResetBoundary:n,throwOnError:o,query:i,suspense:l})=>a.isError&&!n.isReset()&&!a.isFetching&&i&&(l&&a.data===void 0||Ib(o,[a.error,i])),ih=(a,n)=>n.state.data===void 0,$b=a=>{if(a.suspense){const o=l=>l==="static"?l:Math.max(l??1e3,1e3),i=a.staleTime;a.staleTime=typeof i=="function"?(...l)=>o(i(...l)):o(i),typeof a.gcTime=="number"&&(a.gcTime=Math.max(a.gcTime,1e3))}},Xb=(a,n)=>a.isLoading&&a.isFetching&&!n,Sp=(a,n)=>a?.suspense&&n.isPending,zl=(a,n,o)=>n.fetchOptimistic(a).catch(()=>{o.clearReset()});function Zb({queries:a,...n},o){const i=Ui(o),l=Gb(),d=Yb(),m=b.useMemo(()=>a.map(w=>{const E=i.defaultQueryOptions(w);return E._optimisticResults=l?"isRestoring":"optimistic",E}),[a,i,l]);m.forEach(w=>{$b(w),Kb(w,d)}),Jb(d);const[h]=b.useState(()=>new y2(i,m,n)),[g,f,y]=h.getOptimisticResult(m,n.combine),x=!l&&n.subscribed!==!1;b.useSyncExternalStore(b.useCallback(w=>x?h.subscribe(lt.batchCalls(w)):Dt,[h,x]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),b.useEffect(()=>{h.setQueries(m,n)},[m,n,h]);const C=g.some((w,E)=>Sp(m[E],w))?g.flatMap((w,E)=>{const k=m[E];if(k){const D=new Hi(i,k);if(Sp(k,w))return zl(k,D,d);Xb(w,l)&&zl(k,D,d)}return[]}):[];if(C.length>0)throw Promise.all(C);const R=g.find((w,E)=>{const k=m[E];return k&&Wb({result:w,errorResetBoundary:d,throwOnError:k.throwOnError,query:i.getQueryCache().get(k.queryHash),suspense:k.suspense})});if(R?.error)throw R.error;return f(y())}function Zl(a,n,o){const i=Gb(),l=Yb(),d=Ui(o),m=d.defaultQueryOptions(a);d.getDefaultOptions().queries?._experimental_beforeQuery?.(m),m._optimisticResults=i?"isRestoring":"optimistic",$b(m),Kb(m,l),Jb(l);const h=!d.getQueryCache().get(m.queryHash),[g]=b.useState(()=>new n(d,m)),f=g.getOptimisticResult(m),y=!i&&a.subscribed!==!1;if(b.useSyncExternalStore(b.useCallback(x=>{const j=y?g.subscribe(lt.batchCalls(x)):Dt;return g.updateResult(),j},[g,y]),()=>g.getCurrentResult(),()=>g.getCurrentResult()),b.useEffect(()=>{g.setOptions(m)},[m,g]),Sp(m,f))throw zl(m,g,l);if(Wb({result:f,errorResetBoundary:l,throwOnError:m.throwOnError,query:d.getQueryCache().get(m.queryHash),suspense:m.suspense}))throw f.error;return d.getDefaultOptions().queries?._experimental_afterQuery?.(m,f),m.experimental_prefetchInRender&&!Xn&&Xb(f,i)&&(h?zl(m,g,l):d.getQueryCache().get(m.queryHash)?.promise)?.catch(Dt).finally(()=>{g.updateResult()}),m.notifyOnChangeProps?f:g.trackResult(f)}function A2(a,n){return Zl(a,Hi,n)}function R2(a,n){return Zl({...a,enabled:!0,suspense:!0,throwOnError:ih,placeholderData:void 0},Hi,n)}function E2(a,n){return Zl({...a,enabled:!0,suspense:!0,throwOnError:ih},Ub,n)}function N2(a,n){return Zb({...a,queries:a.queries.map(o=>({...o,suspense:!0,throwOnError:ih,enabled:!0,placeholderData:void 0}))},n)}function P2(a,n){const o=Ui(n);o.getQueryState(a.queryKey)||o.prefetchQuery(a)}function O2(a,n){const o=Ui(n);o.getQueryState(a.queryKey)||o.prefetchInfiniteQuery(a)}function k2(a,n){const o=Ui(n),[i]=b.useState(()=>new f2(o,a));b.useEffect(()=>{i.setOptions(a)},[i,a]);const l=b.useSyncExternalStore(b.useCallback(m=>i.subscribe(lt.batchCalls(m)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),d=b.useCallback((m,h)=>{i.mutate(m,h).catch(Dt)},[i]);if(l.error&&Ib(i.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:d,mutateAsync:l.mutate}}function M2(a,n){return Zl(a,Ub,n)}function Zn(a){return!!a&&!Array.isArray(a)&&typeof a=="object"}const T2=typeof Symbol=="function"&&!!Symbol.asyncIterator;function e1(a){return T2&&Zn(a)&&Symbol.asyncIterator in a}var D2=Object.create,t1=Object.defineProperty,L2=Object.getOwnPropertyDescriptor,a1=Object.getOwnPropertyNames,I2=Object.getPrototypeOf,_2=Object.prototype.hasOwnProperty,Vi=(a,n)=>function(){return n||(0,a[a1(a)[0]])((n={exports:{}}).exports,n),n.exports},z2=(a,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(var l=a1(n),d=0,m=l.length,h;d<m;d++)h=l[d],!_2.call(a,h)&&h!==o&&t1(a,h,{get:(g=>n[g]).bind(null,h),enumerable:!(i=L2(n,h))||i.enumerable});return a},ed=(a,n,o)=>(o=a!=null?D2(I2(a)):{},z2(t1(o,"default",{value:a,enumerable:!0}),a));const s1=()=>{},Zy=a=>{Object.freeze&&Object.freeze(a)};function n1(a,n,o){var i;const l=n.join(".");return(i=o[l])!==null&&i!==void 0||(o[l]=new Proxy(s1,{get(d,m){if(!(typeof m!="string"||m==="then"))return n1(a,[...n,m],o)},apply(d,m,h){const g=n[n.length-1];let f={args:h,path:n};return g==="call"?f={args:h.length>=2?[h[1]]:[],path:n.slice(0,-1)}:g==="apply"&&(f={args:h.length>=2?h[1]:[],path:n.slice(0,-1)}),Zy(f.args),Zy(f.path),a(f)}})),o[l]}const td=a=>n1(a,[],Object.create(null)),ch=a=>new Proxy(s1,{get(n,o){if(o!=="then")return a(o)}});var r1=Vi({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(a,n){function o(i){"@babel/helpers - typeof";return n.exports=o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},n.exports.__esModule=!0,n.exports.default=n.exports,o(i)}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),q2=Vi({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(a,n){var o=r1().default;function i(l,d){if(o(l)!="object"||!l)return l;var m=l[Symbol.toPrimitive];if(m!==void 0){var h=m.call(l,d||"default");if(o(h)!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}
17return(d==="string"?String:Number)(l)}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),B2=Vi({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(a,n){var o=r1().default,i=q2();function l(d){var m=i(d,"string");return o(m)=="symbol"?m:m+""}n.exports=l,n.exports.__esModule=!0,n.exports.default=n.exports}}),o1=Vi({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(a,n){var o=B2();function i(l,d,m){return(d=o(d))in l?Object.defineProperty(l,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):l[d]=m,l}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),lh=Vi({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(a,n){var o=o1();function i(d,m){var h=Object.keys(d);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(d);m&&(g=g.filter(function(f){return Object.getOwnPropertyDescriptor(d,f).enumerable})),h.push.apply(h,g)}return h}function l(d){for(var m=1;m<arguments.length;m++){var h=arguments[m]!=null?arguments[m]:{};m%2?i(Object(h),!0).forEach(function(g){o(d,g,h[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(h)):i(Object(h)).forEach(function(g){Object.defineProperty(d,g,Object.getOwnPropertyDescriptor(h,g))})}return d}n.exports=l,n.exports.__esModule=!0,n.exports.default=n.exports}});ed(lh());ed(o1());var pl=ed(lh());function H2(a,n){if("error"in a){const i=n.deserialize(a.error);return{ok:!1,error:(0,pl.default)((0,pl.default)({},a),{},{error:i})}}return{ok:!0,result:(0,pl.default)((0,pl.default)({},a.result),(!a.result.type||a.result.type==="data")&&{type:"data",data:n.deserialize(a.result.data)})}}var qm=class extends Error{constructor(){super("Unable to transform response from server")}};function U2(a,n){let o;try{o=H2(a,n)}catch{throw new qm}if(!o.ok&&(!Zn(o.error.error)||typeof o.error.error.code!="number"))throw new qm;if(o.ok&&!Zn(o.result))throw new qm;return o}ed(lh());function ad(a){const n={subscribe(o){let i=null,l=!1,d=!1,m=!1;function h(){if(i===null){m=!0;return}d||(d=!0,typeof i=="function"?i():i&&i.unsubscribe())}return i=a({next(g){var f;l||(f=o.next)===null||f===void 0||f.call(o,g)},error(g){var f;l||(l=!0,(f=o.error)===null||f===void 0||f.call(o,g),h())},complete(){var g;l||(l=!0,(g=o.complete)===null||g===void 0||g.call(o),h())}}),m&&h(),{unsubscribe:h}},pipe(...o){return o.reduce(V2,n)}};return n}function V2(a,n){return n(a)}function F2(a){const n=new AbortController;return new Promise((i,l)=>{let d=!1;function m(){d||(d=!0,h.unsubscribe())}n.signal.addEventListener("abort",()=>{l(n.signal.reason)});const h=a.subscribe({next(g){d=!0,i(g),m()},error(g){l(g)},complete(){n.abort(),m()}})})}var Q2=Object.create,i1=Object.defineProperty,G2=Object.getOwnPropertyDescriptor,c1=Object.getOwnPropertyNames,Y2=Object.getPrototypeOf,K2=Object.prototype.hasOwnProperty,bn=(a,n)=>function(){return n||(0,a[c1(a)[0]])((n={exports:{}}).exports,n),n.exports},J2=(a,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(var l=c1(n),d=0,m=l.length,h;d<m;d++)h=l[d],!K2.call(a,h)&&h!==o&&i1(a,h,{get:(g=>n[g]).bind(null,h),enumerable:!(i=G2(n,h))||i.enumerable});return a},sr=(a,n,o)=>(o=a!=null?Q2(Y2(a)):{},J2(n||!a||!a.__esModule?i1(o,"default",{value:a,enumerable:!0}):o,a)),W2=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js"(a,n){function o(i,l){if(i==null)return{};var d={};for(var m in i)if({}.hasOwnProperty.call(i,m)){if(l.includes(m))continue;d[m]=i[m]}return d}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),$2=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js"(a,n){var o=W2();function i(l,d){if(l==null)return{};var m,h,g=o(l,d);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(l);for(h=0;h<f.length;h++)m=f[h],d.includes(m)||{}.propertyIsEnumerable.call(l,m)&&(g[m]=l[m])}return g}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),l1=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(a,n){function o(i){"@babel/helpers - typeof";return n.exports=o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},n.exports.__esModule=!0,n.exports.default=n.exports,o(i)}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),X2=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(a,n){var o=l1().default;function i(l,d){if(o(l)!="object"||!l)return l;var m=l[Symbol.toPrimitive];if(m!==void 0){var h=m.call(l,d||"default");if(o(h)!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}
17return(d==="string"?String:Number)(l)}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),Z2=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(a,n){var o=l1().default,i=X2();function l(d){var m=i(d,"string");return o(m)=="symbol"?m:m+""}n.exports=l,n.exports.__esModule=!0,n.exports.default=n.exports}}),eA=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(a,n){var o=Z2();function i(l,d,m){return(d=o(d))in l?Object.defineProperty(l,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):l[d]=m,l}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),Fi=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(a,n){var o=eA();function i(d,m){var h=Object.keys(d);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(d);m&&(g=g.filter(function(f){return Object.getOwnPropertyDescriptor(d,f).enumerable})),h.push.apply(h,g)}return h}function l(d){for(var m=1;m<arguments.length;m++){var h=arguments[m]!=null?arguments[m]:{};m%2?i(Object(h),!0).forEach(function(g){o(d,g,h[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(h)):i(Object(h)).forEach(function(g){Object.defineProperty(d,g,Object.getOwnPropertyDescriptor(h,g))})}return d}n.exports=l,n.exports.__esModule=!0,n.exports.default=n.exports}}),tA=sr($2(),1),ev=sr(Fi(),1);const aA=["cursor","direction"];function $a(a,n,o){const i=a.flatMap(l=>l.split("."));if(!n&&(!o||o==="any"))return i.length?[i]:[];if(o==="infinite"&&Zn(n)&&("direction"in n||"cursor"in n)){const{cursor:l,direction:d}=n,m=(0,tA.default)(n,aA);return[i,{input:m,type:"infinite"}]}return[i,(0,ev.default)((0,ev.default)({},typeof n<"u"&&n!==ha&&{input:n}),o&&o!=="any"&&{type:o})]}function Ol(a){return $a(a,void 0,"any")}var sA=Object.create,d1=Object.defineProperty,nA=Object.getOwnPropertyDescriptor,u1=Object.getOwnPropertyNames,rA=Object.getPrototypeOf,oA=Object.prototype.hasOwnProperty,ns=(a,n)=>function(){return n||(0,a[u1(a)[0]])((n={exports:{}}).exports,n),n.exports},iA=(a,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(var l=u1(n),d=0,m=l.length,h;d<m;d++)h=l[d],!oA.call(a,h)&&h!==o&&d1(a,h,{get:(g=>n[g]).bind(null,h),enumerable:!(i=nA(n,h))||i.enumerable});return a},pt=(a,n,o)=>(o=a!=null?sA(rA(a)):{},iA(n||!a||!a.__esModule?d1(o,"default",{value:a,enumerable:!0}):o,a)),m1=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(a,n){function o(i){"@babel/helpers - typeof";return n.exports=o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},n.exports.__esModule=!0,n.exports.default=n.exports,o(i)}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),cA=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(a,n){var o=m1().default;function i(l,d){if(o(l)!="object"||!l)return l;var m=l[Symbol.toPrimitive];if(m!==void 0){var h=m.call(l,d||"default");if(o(h)!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(d==="string"?String:Number)(l)}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),lA=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(a,n){var o=m1().default,i=cA();function l(d){var m=i(d,"string");return o(m)=="symbol"?m:m+""}n.exports=l,n.exports.__esModule=!0,n.exports.default=n.exports}}),nr=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(a,n){var o=lA();function i(l,d,m){return(d=o(d))in l?Object.defineProperty(l,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):l[d]=m,l}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),qa=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(a,n){var o=nr();function i(d,m){var h=Object.keys(d);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(d);m&&(g=g.filter(function(f){return Object.getOwnPropertyDescriptor(d,f).enumerable})),h.push.apply(h,g)}return h}function l(d){for(var m=1;m<arguments.length;m++){var h=arguments[m]!=null?arguments[m]:{};
17m%2?i(Object(h),!0).forEach(function(g){o(d,g,h[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(h)):i(Object(h)).forEach(function(g){Object.defineProperty(d,g,Object.getOwnPropertyDescriptor(h,g))})}return d}n.exports=l,n.exports.__esModule=!0,n.exports.default=n.exports}});function dA(a){return n=>{let o=0,i=null;const l=[];function d(){i||(i=n.subscribe({next(h){for(const f of l){var g;(g=f.next)===null||g===void 0||g.call(f,h)}},error(h){for(const f of l){var g;(g=f.error)===null||g===void 0||g.call(f,h)}},complete(){for(const g of l){var h;(h=g.complete)===null||h===void 0||h.call(g)}}}))}function m(){if(o===0&&i){const h=i;i=null,h.unsubscribe()}}return ad(h=>(o++,l.push(h),d(),{unsubscribe(){o--,m();const g=l.findIndex(f=>f===h);g>-1&&l.splice(g,1)}}))}}function uA(a){let n=a;const o=[],i=m=>{n!==void 0&&m.next(n),o.push(m)},l=m=>{o.splice(o.indexOf(m),1)},d=ad(m=>(i(m),()=>{l(m)}));return d.next=m=>{if(n!==m){n=m;for(const h of o)h.next(m)}},d.get=()=>n,d}function mA(a){return ad(n=>{function o(l=0,d=a.op){const m=a.links[l];if(!m)throw new Error("No more links to execute - did you forget to add an ending link?");return m({op:d,next(g){return o(l+1,g)}})}return o().subscribe(n)})}var hl=pt(nr(),1),Xr=pt(qa(),1);function pA(a){return a instanceof po}function hA(a){return Zn(a)&&Zn(a.error)&&typeof a.error.code=="number"&&typeof a.error.message=="string"}function gA(a,n){return typeof a=="string"?a:Zn(a)&&typeof a.message=="string"?a.message:n}var po=class kl extends Error{constructor(n,o){var i,l;const d=o?.cause;super(n,{cause:d}),(0,hl.default)(this,"cause",void 0),(0,hl.default)(this,"shape",void 0),(0,hl.default)(this,"data",void 0),(0,hl.default)(this,"meta",void 0),this.meta=o?.meta,this.cause=d,this.shape=o==null||(i=o.result)===null||i===void 0?void 0:i.error,this.data=o==null||(l=o.result)===null||l===void 0?void 0:l.error.data,this.name="TRPCClientError",Object.setPrototypeOf(this,kl.prototype)}static from(n,o={}){const i=n;return pA(i)?(o.meta&&(i.meta=(0,Xr.default)((0,Xr.default)({},i.meta),o.meta)),i):hA(i)?new kl(i.error.message,(0,Xr.default)((0,Xr.default)({},o),{},{result:i})):new kl(gA(i,"Unknown error"),(0,Xr.default)((0,Xr.default)({},o),{},{cause:i}))}};function fA(a){const n=a;return n?"input"in n?n:{input:n,output:n}:{input:{serialize:o=>o,deserialize:o=>o},output:{serialize:o=>o,deserialize:o=>o}}}const tv=a=>typeof a=="function";function xA(a){if(a)return a;if(typeof window<"u"&&tv(window.fetch))return window.fetch;if(typeof globalThis<"u"&&tv(globalThis.fetch))return globalThis.fetch;throw new Error("No fetch implementation found")}var Ri=pt(qa());function yA(a){return{url:a.url.toString(),fetch:a.fetch,transformer:fA(a.transformer),methodOverride:a.methodOverride}}function vA(a){const n={};for(let o=0;o<a.length;o++){const i=a[o];n[o]=i}return n}const bA={query:"GET",mutation:"POST",subscription:"PATCH"};function p1(a){return"input"in a?a.transformer.input.serialize(a.input):vA(a.inputs.map(n=>a.transformer.input.serialize(n)))}const h1=a=>{const n=a.url.split("?");let i=n[0].replace(/\/$/,"")+"/"+a.path;const l=[];if(n[1]&&l.push(n[1]),"inputs"in a&&l.push("batch=1"),a.type==="query"||a.type==="subscription"){const d=p1(a);d!==void 0&&a.methodOverride!=="POST"&&l.push(`input=${encodeURIComponent(JSON.stringify(d))}`)}return l.length&&(i+="?"+l.join("&")),i},jA=a=>{if(a.type==="query"&&a.methodOverride!=="POST")return;const n=p1(a);return n!==void 0?JSON.stringify(n):void 0},wA=a=>RA((0,Ri.default)((0,Ri.default)({},a),{},{contentTypeHeader:"application/json",getUrl:h1,getBody:jA}));var CA=class extends Error{constructor(){const a="AbortError";super(a),this.name=a,this.message=a}};const SA=a=>{var n;if(a?.aborted)throw(n=a.throwIfAborted)===null||n===void 0||n.call(a),typeof DOMException<"u"?new DOMException("AbortError","AbortError"):new CA};async function AA(a){var n;SA(a.signal);const o=a.getUrl(a),i=a.getBody(a),l=(n=a.methodOverride)!==null&&n!==void 0?n:bA[a.type],d=await(async()=>{const h=await a.headers();return Symbol.iterator in h?Object.fromEntries(h):h})(),m=(0,Ri.default)((0,Ri.default)((0,Ri.default)({},a.contentTypeHeader&&l!=="GET"?{"content-type":a.contentTypeHeader}:{}),a.trpcAcceptHeader?{"trpc-accept":a.trpcAcceptHeader}:void 0),d);return xA(a.fetch)(o,{method:l,signal:a.signal,body:i,headers:m})}async function RA(a){const n={},o=await AA(a);n.response=o;const i=await o.json();return n.responseJSON=i,{json:i,meta:n}}pt(qa(),1);const av=()=>{throw new Error("Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new")};function sv(a){let n=null,o=null;const i=()=>{clearTimeout(o),o=null,n=null};function l(h){const g=[[]];let f=0;for(;;){const j=h[f];if(!j)break;const C=g[g.length-1];if(j.aborted){var y;(y=j.reject)===null||y===void 0||y.call(j,new Error("Aborted")),f++;continue}if(a.validate(C.concat(j).map(w=>w.key))){C.push(j),f++;continue}if(C.length===0){var x;(x=j.reject)===null||x===void 0||x.call(j,new Error("Input is too big for a single dispatch")),f++;continue}g.push([])}return g}function d(){const h=l(n);i();for(const g of h){if(!g.length)continue;const f={items:g};for(const x of g)x.batch=f;a.fetch(f.items.map(x=>x.key)).then(async x=>{await Promise.all(x.map(async(C,R)=>{const w=f.items[R];try{var E;const D=await Promise.resolve(C);(E=w.resolve)===null||E===void 0||E.call(w,D)}catch(D){var k;(k=w.reject)===null||k===void 0||k.call(w,D)}w.batch=null,w.reject=null,w.resolve=null}));for(const C of f.items){var j;(j=C.reject)===null||j===void 0||j.call(C,new Error("Missing result")),C.batch=null}}).catch(x=>{for(const C of f.items){var j;(j=C.reject)===null||j===void 0||j.call(C,x),C.batch=null}})}}function m(h){var g;const f={aborted:!1,key:h,batch:null,resolve:av,reject:av},y=new Promise((x,j)=>{var C;f.reject=j,f.resolve=x,(C=n)!==null&&C!==void 0||(n=[]),n.push(f)});return(g=o)!==null&&g!==void 0||(o=setTimeout(d)),y}return{load:m}}function EA(...a){const n=new AbortController,o=a.length;let i=0;const l=()=>{++i===o&&n.abort()};for(const d of a)d?.aborted?l():d?.addEventListener("abort",l,{once:!0});return n.signal}var gl=pt(qa(),1);function NA(a){var n,o;const i=yA(a),l=(n=a.maxURLLength)!==null&&n!==void 0?n:1/0,d=(o=a.maxItems)!==null&&o!==void 0?o:1/0;return()=>{const m=y=>({validate(x){if(l===1/0&&d===1/0)return!0;
17if(x.length>d)return!1;const j=x.map(w=>w.path).join(","),C=x.map(w=>w.input);return h1((0,gl.default)((0,gl.default)({},i),{},{type:y,path:j,inputs:C,signal:null})).length<=l},async fetch(x){const j=x.map(D=>D.path).join(","),C=x.map(D=>D.input),R=EA(...x.map(D=>D.signal)),w=await wA((0,gl.default)((0,gl.default)({},i),{},{path:j,inputs:C,type:y,headers(){return a.headers?typeof a.headers=="function"?a.headers({opList:x}):a.headers:{}},signal:R}));return(Array.isArray(w.json)?w.json:x.map(()=>w.json)).map(D=>({meta:w.meta,json:D}))}}),h=sv(m("query")),g=sv(m("mutation")),f={query:h,mutation:g};return({op:y})=>ad(x=>{/* istanbul ignore if -- @preserve */if(y.type==="subscription")throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");const C=f[y.type].load(y);let R;return C.then(w=>{R=w;const E=U2(w.json,i.transformer.output);if(!E.ok){x.error(po.from(E.error,{meta:w.meta}));return}x.next({context:w.meta,result:E.result}),x.complete()}).catch(w=>{x.error(po.from(w,{meta:R?.meta}))}),()=>{}})}}pt(qa(),1);const g1=(a,...n)=>typeof a=="function"?a(...n):a;pt(nr(),1);function PA(){let a,n;return{promise:new Promise((i,l)=>{a=i,n=l}),resolve:a,reject:n}}async function OA(a){const n=await g1(a.url);if(!a.connectionParams)return n;const i=`${n.includes("?")?"&":"?"}connectionParams=1`;return n+i}async function kA(a){const n={method:"connectionParams",data:await g1(a)};return JSON.stringify(n)}pt(nr(),1);var Kn=pt(nr(),1);function MA(a){const{promise:n,resolve:o,reject:i}=PA();return a.addEventListener("open",()=>{a.removeEventListener("error",i),o()}),a.addEventListener("error",i),n}function TA(a,{intervalMs:n,pongTimeoutMs:o}){let i,l;function d(){i=setTimeout(()=>{a.send("PING"),l=setTimeout(()=>{a.close()},o)},n)}function m(){clearTimeout(i),d()}function h(){clearTimeout(l),m()}a.addEventListener("open",d),a.addEventListener("message",({data:g})=>{clearTimeout(i),d(),g==="PONG"&&h()}),a.addEventListener("close",()=>{clearTimeout(i),clearTimeout(l)})}var DA=class Ap{constructor(n){var o;if((0,Kn.default)(this,"id",++Ap.connectCount),(0,Kn.default)(this,"WebSocketPonyfill",void 0),(0,Kn.default)(this,"urlOptions",void 0),(0,Kn.default)(this,"keepAliveOpts",void 0),(0,Kn.default)(this,"wsObservable",uA(null)),(0,Kn.default)(this,"openPromise",null),this.WebSocketPonyfill=(o=n.WebSocketPonyfill)!==null&&o!==void 0?o:WebSocket,!this.WebSocketPonyfill)throw new Error("No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill");this.urlOptions=n.urlOptions,this.keepAliveOpts=n.keepAlive}get ws(){return this.wsObservable.get()}set ws(n){this.wsObservable.next(n)}isOpen(){return!!this.ws&&this.ws.readyState===this.WebSocketPonyfill.OPEN&&!this.openPromise}isClosed(){return!!this.ws&&(this.ws.readyState===this.WebSocketPonyfill.CLOSING||this.ws.readyState===this.WebSocketPonyfill.CLOSED)}async open(){var n=this;if(n.openPromise)return n.openPromise;n.id=++Ap.connectCount;const o=OA(n.urlOptions).then(i=>new n.WebSocketPonyfill(i));n.openPromise=o.then(async i=>{n.ws=i,i.addEventListener("message",function({data:l}){l==="PING"&&this.send("PONG")}),n.keepAliveOpts.enabled&&TA(i,n.keepAliveOpts),i.addEventListener("close",()=>{n.ws===i&&(n.ws=null)}),await MA(i),n.urlOptions.connectionParams&&i.send(await kA(n.urlOptions.connectionParams))});try{await n.openPromise}finally{n.openPromise=null}}async close(){var n=this;try{await n.openPromise}finally{var o;(o=n.ws)===null||o===void 0||o.close()}}};(0,Kn.default)(DA,"connectCount",0);pt(nr(),1);pt(qa(),1);var Bm=pt(nr(),1),nv=pt(qa(),1),sd=class{constructor(a){(0,Bm.default)(this,"links",void 0),(0,Bm.default)(this,"runtime",void 0),(0,Bm.default)(this,"requestId",void 0),this.requestId=0,this.runtime={},this.links=a.links.map(n=>n(this.runtime))}$request(a){var n;return mA({links:this.links,op:(0,nv.default)((0,nv.default)({},a),{},{context:(n=a.context)!==null&&n!==void 0?n:{},id:++this.requestId})}).pipe(dA())}async requestAsPromise(a){var n=this;try{const o=n.$request(a);return(await F2(o)).result.data}catch(o){throw po.from(o)}}query(a,n,o){return this.requestAsPromise({type:"query",path:a,input:n,context:o?.context,signal:o?.signal})}mutation(a,n,o){return this.requestAsPromise({type:"mutation",path:a,input:n,context:o?.context,signal:o?.signal})}subscription(a,n,o){return this.$request({type:"subscription",path:a,input:n,context:o.context,signal:o.signal}).subscribe({next(l){switch(l.result.type){case"state":{var d;(d=o.onConnectionStateChange)===null||d===void 0||d.call(o,l.result);break}case"started":{var m;(m=o.onStarted)===null||m===void 0||m.call(o,{context:l.context});break}case"stopped":{var h;(h=o.onStopped)===null||h===void 0||h.call(o);break}case"data":case void 0:{var g;(g=o.onData)===null||g===void 0||g.call(o,l.result.data);break}}},error(l){var d;(d=o.onError)===null||d===void 0||d.call(o,l)},complete(){var l;(l=o.onComplete)===null||l===void 0||l.call(o)}})}};const f1=Symbol.for("trpc_untypedClient"),LA={query:"query",mutate:"mutation",subscribe:"subscription"}
17,IA=a=>LA[a];function x1(a){const n=td(({path:o,args:i})=>{const l=[...o],d=IA(l.pop()),m=l.join(".");return a[d](m,...i)});return ch(o=>o===f1?a:n[o])}function _A(a){const n=new sd(a);return x1(n)}function dh(a){return a[f1]}pt(qa(),1);pt(qa(),1);var zA=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(a,n){function o(l){var d,m,h,g=2;for(typeof Symbol<"u"&&(m=Symbol.asyncIterator,h=Symbol.iterator);g--;){if(m&&(d=l[m])!=null)return d.call(l);if(h&&(d=l[h])!=null)return new i(d.call(l));m="@@asyncIterator",h="@@iterator"}throw new TypeError("Object is not async iterable")}function i(l){function d(m){if(Object(m)!==m)return Promise.reject(new TypeError(m+" is not an object."));var h=m.done;return Promise.resolve(m.value).then(function(g){return{value:g,done:h}})}return i=function(h){this.s=h,this.n=h.next},i.prototype={s:null,n:null,next:function(){return d(this.n.apply(this.s,arguments))},return:function(h){var g=this.s.return;return g===void 0?Promise.resolve({value:h,done:!0}):d(g.apply(this.s,arguments))},throw:function(h){var g=this.s.return;return g===void 0?Promise.reject(h):d(g.apply(this.s,arguments))}},new i(l)}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}});pt(zA(),1);pt(qa(),1);var qA=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(a,n){function o(){var i=typeof SuppressedError=="function"?SuppressedError:function(h,g){var f=Error();return f.name="SuppressedError",f.error=h,f.suppressed=g,f},l={},d=[];function m(h,g){if(g!=null){if(Object(g)!==g)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(h)var f=g[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(f===void 0&&(f=g[Symbol.dispose||Symbol.for("Symbol.dispose")],h))var y=f;if(typeof f!="function")throw new TypeError("Object is not disposable.");y&&(f=function(){try{y.call(g)}catch(j){return Promise.reject(j)}}),d.push({v:g,d:f,a:h})}else h&&d.push({d:g,a:h});return g}return{e:l,u:m.bind(null,!1),a:m.bind(null,!0),d:function(){var g,f=this.e,y=0;function x(){for(;g=d.pop();)try{if(!g.a&&y===1)return y=0,d.push(g),Promise.resolve().then(x);if(g.d){var C=g.d.call(g.v);if(g.a)return y|=2,Promise.resolve(C).then(x,j)}else y|=1}catch(R){return j(R)}if(y===1)return f!==l?Promise.reject(f):Promise.resolve();if(f!==l)throw f}function j(C){return f=f!==l?new i(C,f):C,x()}return x()}}}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),y1=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(a,n){function o(i,l){this.v=i,this.k=l}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),BA=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(a,n){var o=y1();function i(l){return new o(l,0)}n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}}),HA=ns({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(a,n){var o=y1();function i(d){return function(){return new l(d.apply(this,arguments))}}function l(d){var m,h;function g(y,x){try{var j=d[y](x),C=j.value,R=C instanceof o;Promise.resolve(R?C.v:C).then(function(w){if(R){var E=y==="return"?"return":"next";if(!C.k||w.done)return g(E,w);w=d[E](w).value}f(j.done?"return":"normal",w)},function(w){g("throw",w)})}catch(w){f("throw",w)}}function f(y,x){switch(y){case"return":m.resolve({value:x,done:!0});break;case"throw":m.reject(x);break;default:m.resolve({value:x,done:!1})}(m=m.next)?g(m.key,m.arg):h=null}this._invoke=function(y,x){return new Promise(function(j,C){var R={key:y,arg:x,resolve:j,reject:C,next:null};h?h=h.next=R:(m=h=R,g(y,x))})},typeof d.return!="function"&&(this.return=void 0)}l.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},l.prototype.next=function(d){return this._invoke("next",d)},l.prototype.throw=function(d){return this._invoke("throw",d)},l.prototype.return=function(d){return this._invoke("return",d)},n.exports=i,n.exports.__esModule=!0,n.exports.default=n.exports}});pt(qA(),1);pt(BA(),1);pt(HA(),1);pt(qa(),1);function UA(a){return td(({path:n,args:o})=>{var i;const l=[...n],d=l.pop();if(d==="useMutation")return a[d](l,...o);if(d==="_def")return{path:l};const[m,...h]=o,g=(i=h[0])!==null&&i!==void 0?i:{};return a[d](l,m,g)})}var Hm;const VA=["client","ssrContext","ssrState","abortOnUnmount"],FA=(Hm=b.createContext)===null||Hm===void 0?void 0:Hm.call(Xl,null),QA=a=>{switch(a){case"queryOptions":case"fetch":case"ensureData":case"prefetch":case"getData":case"setData":case"setQueriesData":return"query";case"infiniteQueryOptions":case"fetchInfinite":case"prefetchInfinite":case"getInfiniteData":case"setInfiniteData":return"infinite";case"setMutationDefaults":case"getMutationDefaults":case"isMutating":case"cancel":case"invali
17date":case"refetch":case"reset":return"any"}};function GA(a){return td(n=>{const o=[...n.path],i=o.pop(),l=[...n.args],d=l.shift(),m=QA(i),h=$a(o,d,m);return{infiniteQueryOptions:()=>a.infiniteQueryOptions(o,h,l[0]),queryOptions:()=>a.queryOptions(o,h,...l),fetch:()=>a.fetchQuery(h,...l),fetchInfinite:()=>a.fetchInfiniteQuery(h,l[0]),prefetch:()=>a.prefetchQuery(h,...l),prefetchInfinite:()=>a.prefetchInfiniteQuery(h,l[0]),ensureData:()=>a.ensureQueryData(h,...l),invalidate:()=>a.invalidateQueries(h,...l),reset:()=>a.resetQueries(h,...l),refetch:()=>a.refetchQueries(h,...l),cancel:()=>a.cancelQuery(h,...l),setData:()=>{a.setQueryData(h,l[0],l[1])},setQueriesData:()=>a.setQueriesData(h,l[0],l[1],l[2]),setInfiniteData:()=>{a.setInfiniteQueryData(h,l[0],l[1])},getData:()=>a.getQueryData(h),getInfiniteData:()=>a.getInfiniteQueryData(h),setMutationDefaults:()=>a.setMutationDefaults(Ol(o),d),getMutationDefaults:()=>a.getMutationDefaults(Ol(o)),isMutating:()=>a.isMutating({mutationKey:Ol(o)})}[i]()})}function YA(a){const n=x1(a.client),o=GA(a);return ch(i=>{const l=i;return l==="client"?n:VA.includes(l)?a[l]:o[i]})}var KA=sr(Fi(),1);function rv(a){const n=a instanceof sd?a:dh(a);return td(o=>{const i=o.path,l=i.join("."),[d,m]=o.args;return(0,KA.default)({queryKey:$a(i,d,"query"),queryFn:()=>n.query(l,d,m?.trpc)},m)})}var Um=sr(Fi(),1);function Ut(a,n,o){var i;const l=a[0];let d=(i=a[1])===null||i===void 0?void 0:i.input;if(o){var m;d=(0,Um.default)((0,Um.default)((0,Um.default)({},(m=d)!==null&&m!==void 0?m:{}),o.pageParam?{cursor:o.pageParam}:{}),{},{direction:o.direction})}return[l.join("."),d,n?.trpc]}var JA=bn({"../../node_modules/.pnpm/@[email protected]/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(a,n){function o(l){var d,m,h,g=2;for(typeof Symbol<"u"&&(m=Symbol.asyncIterator,h=Symbol.iterator);g--;){if(m&&(d=l[m])!=null)return d.call(l);if(h&&(d=l[h])!=null)return new i(d.call(l));m="@@asyncIterator",h="@@iterator"}throw new TypeError("Object is not async iterable")}function i(l){function d(m){if(Object(m)!==m)return Promise.reject(new TypeError(m+" is not an object."));var h=m.done;return Promise.resolve(m.value).then(function(g){return{value:g,done:h}})}return i=function(h){this.s=h,this.n=h.next},i.prototype={s:null,n:null,next:function(){return d(this.n.apply(this.s,arguments))},return:function(h){var g=this.s.return;return g===void 0?Promise.resolve({value:h,done:!0}):d(g.apply(this.s,arguments))},throw:function(h){var g=this.s.return;return g===void 0?Promise.reject(h):d(g.apply(this.s,arguments))}},new i(l)}n.exports=o,n.exports.__esModule=!0,n.exports.default=n.exports}}),WA=sr(JA(),1);function Rp(a){return{path:a.path.join(".")}}function bi(a){const n=Rp(a);return b.useMemo(()=>n,[n])}async function v1(a,n,o){const l=n.getQueryCache().build(n,{queryKey:o});l.setState({data:[],status:"success"});const d=[];var m=!1,h=!1,g;try{for(var f=(0,WA.default)(a),y;m=!(y=await f.next()).done;m=!1){const x=y.value;d.push(x),l.setState({data:[...d]})}}catch(x){h=!0,g=x}finally{try{m&&f.return!=null&&await f.return()}finally{if(h)throw g}}return d}var Ue=sr(Fi(),1);function $A(a){const{client:n,queryClient:o}=a,i=n instanceof sd?n:dh(n);return{infiniteQueryOptions:(l,d,m)=>{var h,g;const f=((h=d[1])===null||h===void 0?void 0:h.input)===ha,y=async x=>{var j;const C=(0,Ue.default)((0,Ue.default)({},m),{},{trpc:(0,Ue.default)((0,Ue.default)({},m?.trpc),!(m==null||(j=m.trpc)===null||j===void 0)&&j.abortOnUnmount?{signal:x.signal}:{signal:null})});return await i.query(...Ut(d,C,{direction:x.direction,pageParam:x.pageParam}))};return Object.assign((0,Ue.default)((0,Ue.default)({},m),{},{initialData:m?.initialData,queryKey:d,queryFn:f?ha:y,initialPageParam:(g=m?.initialCursor)!==null&&g!==void 0?g:null}),{trpc:Rp({path:l})})},queryOptions:(l,d,m)=>{var h;const g=((h=d[1])===null||h===void 0?void 0:h.input)===ha,f=async y=>{var x;const j=(0,Ue.default)((0,Ue.default)({},m),{},{trpc:(0,Ue.default)((0,Ue.default)({},m?.trpc),!(m==null||(x=m.trpc)===null||x===void 0)&&x.abortOnUnmount?{signal:y.signal}:{signal:null})}),C=await i.query(...Ut(d,j));return e1(C)?v1(C,o,d):C};return Object.assign((0,Ue.default)((0,Ue.default)({},m),{},{initialData:m?.initialData,queryKey:d,queryFn:g?ha:f}),{trpc:Rp({path:l})})},fetchQuery:(l,d)=>o.fetchQuery((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l,queryFn:()=>i.query(...Ut(l,d))})),fetchInfiniteQuery:(l,d)=>{var m;return o.fetchInfiniteQuery((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l,queryFn:({pageParam:h,direction:g})=>i.query(...Ut(l,d,{pageParam:h,direction:g})),initialPageParam:(m=d?.initialCursor)!==null&&m!==void 0?m:null}))},prefetchQuery:(l,d)=>o.prefetchQuery((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l,queryFn:()=>i.query(...Ut(l,d))})),prefetchInfiniteQuery:(l,d)=>{var m;return o.prefetchInfiniteQuery((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l,queryFn:({pageParam:h,direction:g})=>i.query(...Ut(l,d,{pageParam:h,direction:g})),initialPageParam:(m=d?.initialCursor)!==null&&m!==void 0?m:null}))},ensureQueryData:(l,d)=>o.ensureQueryData((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l,queryFn:()=>i.query(...Ut(l,d))})),invalidateQueries:(l,d,m)=>o.invalidateQueries((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l}),m),resetQueries:(l,d,m)=>o.resetQueries((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l}),m),refetchQueries:(l,d,m)=>o.refetchQueries((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l}),m),cancelQuery:(l,d)=>o.cancelQueries({queryKey:l},d),setQueryData:(l,d,m)=>o.setQueryData(l,d,m),setQueriesData:(l,d,m,h)=>o.setQueriesData((0,Ue.default)((0,Ue.default)({},d),{},{queryKey:l}),m,h),getQueryData:l=>o.getQueryData(l),setInfiniteQueryData:(l,d,m)=>o.setQueryData(l,d,m),getInfiniteQueryData:l=>o.getQueryData(l),setMutationDefaults:(l,d)=>{const m=l[0],h=g=>i.mutation(...Ut([m,{input:g}],a));return o.setMutationDefaults(l,typeof d=="function"?d({canonicalMutationFn:h}):d)},getMutationDefaults:l=>o.getMutationDefaults(l),isMutating:l=>o.isMutating((0,Ue.default)((0,Ue.default)({},l),{},{exact:!0}))}}var fe=sr(Fi());const ov=(a,n)=>new Proxy(a,{get(i,l){return n(l),i[l]}});function XA(a){var n,o;const i=(n=void 0)!==null&&n!==void 0?n:N=>N.originalFn(),l=(o=void 0)!==null&&o!==void 0?o:FA,d=_A,m=N=>{var U;const{abortOnUnmount:M=!1,queryClient:I,ssrContext:Z}=N,[ae,le]=b.useState((U=N.ssrState)!==null&&U!==void 0?U:!1),ie=N.client instanceof sd?N.client:dh(N.client),he=b.useMemo(()=>$A({client:ie,queryClient:I}),[ie,I]),pe=b.useMemo(()=>(0,fe.default)({abortOnUnmount:M,queryClient:I,client:ie,ssrContext:Z??null,ssrState:ae},he),[M,ie,he,I,Z,ae]);return b.useEffect(()=>{le(ge=>ge?"mounted":!1)},[]),e.jsx(l.Provider,{value:pe,children:N.children})};function h(){const N=b.useContext(l);if(!N)throw new Error("Unable to find tRPC Context. Did you forget to wrap your Ap
17p inside `withTRPC` HoC?");return N}function g(N,U){var M;const{queryClient:I,ssrState:Z}=h();return Z&&Z!=="mounted"&&((M=I.getQueryCache().find({queryKey:N}))===null||M===void 0?void 0:M.state.status)==="error"?(0,fe.default)({retryOnMount:!1},U):U}function f(N,U,M){var I,Z,ae,le,ie;const he=h(),{abortOnUnmount:pe,client:ge,ssrState:A,queryClient:_,prefetchQuery:z}=he,ee=$a(N,U,"query"),de=_.getQueryDefaults(ee),P=U===ha;typeof window>"u"&&A==="prepass"&&(M==null||(I=M.trpc)===null||I===void 0?void 0:I.ssr)!==!1&&((Z=M?.enabled)!==null&&Z!==void 0?Z:de?.enabled)!==!1&&!P&&!_.getQueryCache().find({queryKey:ee})&&z(ee,M);const W=g(ee,(0,fe.default)((0,fe.default)({},de),M)),F=(ae=(le=M==null||(ie=M.trpc)===null||ie===void 0?void 0:ie.abortOnUnmount)!==null&&le!==void 0?le:void 0)!==null&&ae!==void 0?ae:pe,$=A2((0,fe.default)((0,fe.default)({},W),{},{queryKey:ee,queryFn:P?U:async O=>{const oe=(0,fe.default)((0,fe.default)({},W),{},{trpc:(0,fe.default)((0,fe.default)({},W?.trpc),F?{signal:O.signal}:{signal:null})}),ce=await ge.query(...Ut(ee,oe));return e1(ce)?v1(ce,_,ee):ce}}),_);return $.trpc=bi({path:N}),$}function y(N,U,M){var I,Z,ae;const le=h(),ie=$a(N,U,"query"),he=U===ha,pe=(I=(Z=M==null||(ae=M.trpc)===null||ae===void 0?void 0:ae.abortOnUnmount)!==null&&Z!==void 0?Z:void 0)!==null&&I!==void 0?I:le.abortOnUnmount;P2((0,fe.default)((0,fe.default)({},M),{},{queryKey:ie,queryFn:he?U:ge=>{const A={trpc:(0,fe.default)((0,fe.default)({},M?.trpc),pe?{signal:ge.signal}:{})};return le.client.query(...Ut(ie,A))}}))}function x(N,U,M){var I,Z,ae;const le=h(),ie=$a(N,U,"query"),he=(I=(Z=M==null||(ae=M.trpc)===null||ae===void 0?void 0:ae.abortOnUnmount)!==null&&Z!==void 0?Z:void 0)!==null&&I!==void 0?I:le.abortOnUnmount,pe=R2((0,fe.default)((0,fe.default)({},M),{},{queryKey:ie,queryFn:ge=>{const A=(0,fe.default)((0,fe.default)({},M),{},{trpc:(0,fe.default)((0,fe.default)({},M?.trpc),he?{signal:ge.signal}:{signal:null})});return le.client.query(...Ut(ie,A))}}),le.queryClient);return pe.trpc=bi({path:N}),[pe.data,pe]}function j(N,U){const{client:M,queryClient:I}=h(),Z=Ol(N),ae=I.defaultMutationOptions(I.getMutationDefaults(Z)),le=k2((0,fe.default)((0,fe.default)({},U),{},{mutationKey:Z,mutationFn:ie=>M.mutation(...Ut([N,{input:ie}],U)),onSuccess(...ie){var he,pe;return i({originalFn:()=>{var A,_,z;return(A=U==null||(_=U.onSuccess)===null||_===void 0?void 0:_.call(U,...ie))!==null&&A!==void 0?A:ae==null||(z=ae.onSuccess)===null||z===void 0?void 0:z.call(ae,...ie)},queryClient:I,meta:(he=(pe=U?.meta)!==null&&pe!==void 0?pe:ae?.meta)!==null&&he!==void 0?he:{}})}}),I);return le.trpc=bi({path:N}),le}const C={data:void 0,error:null,status:"idle"},R={data:void 0,error:null,status:"connecting"};/* istanbul ignore next -- @preserve */function w(N,U,M){var I;const Z=(I=M?.enabled)!==null&&I!==void 0?I:U!==ha,ae=fn($a(N,U,"any")),{client:le}=h(),ie=b.useRef(M);b.useEffect(()=>{ie.current=M});const[he]=b.useState(new Set([])),pe=b.useCallback(P=>{he.add(P)},[he]),ge=b.useRef(null),A=b.useCallback(P=>{const W=z.current,F=z.current=P(W);let $=!1;for(const O of he)if(W[O]!==F[O]){$=!0;break}$&&de(ov(F,pe))},[pe,he]),_=b.useCallback(()=>{var P;if((P=ge.current)===null||P===void 0||P.unsubscribe(),!Z){A(()=>(0,fe.default)((0,fe.default)({},C),{},{reset:_}));return}A(()=>(0,fe.default)((0,fe.default)({},R),{},{reset:_}));const W=le.subscription(N.join("."),U??void 0,{onStarted:()=>{var F,$;(F=($=ie.current).onStarted)===null||F===void 0||F.call($),A(O=>(0,fe.default)((0,fe.default)({},O),{},{status:"pending",error:null}))},onData:F=>{var $,O;($=(O=ie.current).onData)===null||$===void 0||$.call(O,F),A(oe=>(0,fe.default)((0,fe.default)({},oe),{},{status:"pending",data:F,error:null}))},onError:F=>{var $,O;($=(O=ie.current).onError)===null||$===void 0||$.call(O,F),A(oe=>(0,fe.default)((0,fe.default)({},oe),{},{status:"error",error:F}))},onConnectionStateChange:F=>{A($=>{switch(F.state){case"idle":return(0,fe.default)((0,fe.default)({},$),{},{status:F.state,error:null,data:void 0});case"connecting":return(0,fe.default)((0,fe.default)({},$),{},{error:F.error,status:F.state});
17case"pending":return $}})},onComplete:()=>{var F,$;(F=($=ie.current).onComplete)===null||F===void 0||F.call($),A(O=>(0,fe.default)((0,fe.default)({},O),{},{status:"idle",error:null,data:void 0}))}});ge.current=W},[le,ae,Z,A]);b.useEffect(()=>(_(),()=>{var P;(P=ge.current)===null||P===void 0||P.unsubscribe()}),[_]);const z=b.useRef(Z?(0,fe.default)((0,fe.default)({},R),{},{reset:_}):(0,fe.default)((0,fe.default)({},C),{},{reset:_})),[ee,de]=b.useState(ov(z.current,pe));return ee}function E(N,U,M){var I,Z,ae,le,ie;const{client:he,ssrState:pe,prefetchInfiniteQuery:ge,queryClient:A,abortOnUnmount:_}=h(),z=$a(N,U,"infinite"),ee=A.getQueryDefaults(z),de=U===ha;typeof window>"u"&&pe==="prepass"&&(M==null||(I=M.trpc)===null||I===void 0?void 0:I.ssr)!==!1&&((Z=M?.enabled)!==null&&Z!==void 0?Z:ee?.enabled)!==!1&&!de&&!A.getQueryCache().find({queryKey:z})&&ge(z,(0,fe.default)((0,fe.default)({},ee),M));const P=g(z,(0,fe.default)((0,fe.default)({},ee),M)),W=(ae=M==null||(le=M.trpc)===null||le===void 0?void 0:le.abortOnUnmount)!==null&&ae!==void 0?ae:_,F=M2((0,fe.default)((0,fe.default)({},P),{},{initialPageParam:(ie=M.initialCursor)!==null&&ie!==void 0?ie:null,persister:M.persister,queryKey:z,queryFn:de?U:$=>{var O;const oe=(0,fe.default)((0,fe.default)({},P),{},{trpc:(0,fe.default)((0,fe.default)({},P?.trpc),W?{signal:$.signal}:{signal:null})});return he.query(...Ut(z,oe,{pageParam:(O=$.pageParam)!==null&&O!==void 0?O:M.initialCursor,direction:$.direction}))}}),A);return F.trpc=bi({path:N}),F}function k(N,U,M){var I,Z,ae;const le=h(),ie=$a(N,U,"infinite"),he=le.queryClient.getQueryDefaults(ie),pe=U===ha,ge=g(ie,(0,fe.default)((0,fe.default)({},he),M)),A=(I=M==null||(Z=M.trpc)===null||Z===void 0?void 0:Z.abortOnUnmount)!==null&&I!==void 0?I:le.abortOnUnmount;O2((0,fe.default)((0,fe.default)({},M),{},{initialPageParam:(ae=M.initialCursor)!==null&&ae!==void 0?ae:null,queryKey:ie,queryFn:pe?U:_=>{var z;const ee=(0,fe.default)((0,fe.default)({},ge),{},{trpc:(0,fe.default)((0,fe.default)({},ge?.trpc),A?{signal:_.signal}:{})});return le.client.query(...Ut(ie,ee,{pageParam:(z=_.pageParam)!==null&&z!==void 0?z:M.initialCursor,direction:_.direction}))}}))}function D(N,U,M){var I,Z,ae;const le=h(),ie=$a(N,U,"infinite"),he=le.queryClient.getQueryDefaults(ie),pe=g(ie,(0,fe.default)((0,fe.default)({},he),M)),ge=(I=M==null||(Z=M.trpc)===null||Z===void 0?void 0:Z.abortOnUnmount)!==null&&I!==void 0?I:le.abortOnUnmount,A=E2((0,fe.default)((0,fe.default)({},M),{},{initialPageParam:(ae=M.initialCursor)!==null&&ae!==void 0?ae:null,queryKey:ie,queryFn:_=>{var z;const ee=(0,fe.default)((0,fe.default)({},pe),{},{trpc:(0,fe.default)((0,fe.default)({},pe?.trpc),ge?{signal:_.signal}:{})});return le.client.query(...Ut(ie,ee,{pageParam:(z=_.pageParam)!==null&&z!==void 0?z:M.initialCursor,direction:_.direction}))}}),le.queryClient);return A.trpc=bi({path:N}),[A.data,A]}return{Provider:m,createClient:d,useContext:h,useUtils:h,useQuery:f,usePrefetchQuery:y,useSuspenseQuery:x,useQueries:(N,U)=>{const{ssrState:M,queryClient:I,prefetchQuery:Z,client:ae}=h(),le=rv(ae),ie=N(le);if(typeof window>"u"&&M==="prepass")for(const pe of ie){var he;const ge=pe;((he=ge.trpc)===null||he===void 0?void 0:he.ssr)!==!1&&!I.getQueryCache().find({queryKey:ge.queryKey})&&Z(ge.queryKey,ge)}return Zb({queries:ie.map(pe=>(0,fe.default)((0,fe.default)({},pe),{},{queryKey:pe.queryKey})),combine:U?.combine},I)},useSuspenseQueries:N=>{const{queryClient:U,client:M}=h(),I=rv(M),Z=N(I),ae=N2({queries:Z.map(le=>(0,fe.default)((0,fe.default)({},le),{},{queryFn:le.queryFn,queryKey:le.queryKey}))},U);return[ae.map(le=>le.data),ae]},useMutation:j,useSubscription:w,useInfiniteQuery:E,usePrefetchInfiniteQuery:k,useSuspenseInfiniteQuery:D}}function ZA(a){const n=UA(a);return ch(o=>o==="useContext"||o==="useUtils"?()=>{const i=a.useUtils();return b.useMemo(()=>YA(i),[i])}:a.hasOwnProperty(o)?a[o]:n[o])}function eR(a){const n=XA();return ZA(n)}const Ke=eR(),tR="app_session_id",aR="Please login (10001)",sR="__Host-oauth_state",nR=a=>btoa(JSON.stringify(a));var Vm={exports:{}},ji={},Fm={exports:{}},Qm={};/** 18 * @license React 19 * scheduler.production.js 20 * 21 * Copyright (c) Meta Platforms, Inc. and affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */var iv;function rR(){return iv||(iv=1,(function(a){function n(A,_){var z=A.length;A.push(_);e:for(;0<z;){var ee=z-1>>>1,de=A[ee];if(0<l(de,_))A[ee]=_,A[z]=de,z=ee;else break e}}function o(A){return A.length===0?null:A[0]}function i(A){if(A.length===0)return null;var _=A[0],z=A.pop();if(z!==_){A[0]=z;e:for(var ee=0,de=A.length,P=de>>>1;ee<P;){var W=2*(ee+1)-1,F=A[W],$=W+1,O=A[$];if(0>l(F,z))$<de&&0>l(O,F)?(A[ee]=O,A[$]=z,ee=$):(A[ee]=F,A[W]=z,ee=W);else if($<de&&0>l(O,z))A[ee]=O,A[$]=z,ee=$;else break e}}return _}function l(A,_){var z=A.sortIndex-_.sortIndex;return z!==0?z:A.id-_.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;a.unstable_now=function(){return d.now()}}else{var m=Date,h=m.now();a.unstable_now=function(){return m.now()-h}}var g=[],f=[],y=1,x=null,j=3,C=!1,R=!1,w=!1,E=!1,k=typeof setTimeout=="function"?setTimeout:null,D=typeof clearTimeout=="function"?clearTimeout:null,q=typeof setImmediate<"u"?setImmediate:null;function K(A){for(var _=o(f);_!==null;){if(_.callback===null)i(f);else if(_.startTime<=A)i(f),_.sortIndex=_.expirationTime,n(g,_);else break;_=o(f)}}function N(A){if(w=!1,K(A),!R)if(o(g)!==null)R=!0,U||(U=!0,ie());else{var _=o(f);_!==null&&ge(N,_.startTime-A)}}var U=!1,M=-1,I=5,Z=-1;function ae(){return E?!0:!(a.unstable_now()-Z<I)}function le(){if(E=!1,U){var A=a.unstable_now();Z=A;var _=!0;try{e:{R=!1,w&&(w=!1,D(M),M=-1),C=!0;var z=j;try{t:{for(K(A),x=o(g);x!==null&&!(x.expirationTime>A&&ae());){var ee=x.callback;if(typeof ee=="function"){x.callback=null,j=x.priorityLevel;var de=ee(x.expirationTime<=A);if(A=a.unstable_now(),typeof de=="function"){x.callback=de,K(A),_=!0;break t}x===o(g)&&i(g),K(A)}else i(g);x=o(g)}if(x!==null)_=!0;else{var P=o(f);P!==null&&ge(N,P.startTime-A),_=!1}}break e}finally{x=null,j=z,C=!1}_=void 0}}finally{_?ie():U=!1}
vendor: 6,945 bytes, lines 25-41
25}}var ie;if(typeof q=="function")ie=function(){q(le)};else if(typeof MessageChannel<"u"){var he=new MessageChannel,pe=he.port2;he.port1.onmessage=le,ie=function(){pe.postMessage(null)}}else ie=function(){k(le,0)};function ge(A,_){M=k(function(){A(a.unstable_now())},_)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(A){A.callback=null},a.unstable_forceFrameRate=function(A){0>A||125<A?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):I=0<A?Math.floor(1e3/A):5},a.unstable_getCurrentPriorityLevel=function(){return j},a.unstable_next=function(A){switch(j){case 1:case 2:case 3:var _=3;break;default:_=j}var z=j;j=_;try{return A()}finally{j=z}},a.unstable_requestPaint=function(){E=!0},a.unstable_runWithPriority=function(A,_){switch(A){case 1:case 2:case 3:case 4:case 5:break;default:A=3}var z=j;j=A;try{return _()}finally{j=z}},a.unstable_scheduleCallback=function(A,_,z){var ee=a.unstable_now();switch(typeof z=="object"&&z!==null?(z=z.delay,z=typeof z=="number"&&0<z?ee+z:ee):z=ee,A){case 1:var de=-1;break;case 2:de=250;break;case 5:de=1073741823;break;case 4:de=1e4;break;default:de=5e3}return de=z+de,A={id:y++,callback:_,priorityLevel:A,startTime:z,expirationTime:de,sortIndex:-1},z>ee?(A.sortIndex=z,n(f,A),o(g)===null&&A===o(f)&&(w?(D(M),M=-1):w=!0,ge(N,z-ee))):(A.sortIndex=de,n(g,A),R||C||(R=!0,U||(U=!0,ie()))),A},a.unstable_shouldYield=ae,a.unstable_wrapCallback=function(A){var _=j;return function(){var z=j;j=_;try{return A.apply(this,arguments)}finally{j=z}}}})(Qm)),Qm}var cv;function oR(){return cv||(cv=1,Fm.exports=rR()),Fm.exports}var Gm={exports:{}},Tt={};/** 26 * @license React 27 * react-dom.production.js 28 * 29 * Copyright (c) Meta Platforms, Inc. and affiliates. 30 * 31 * This source code is licensed under the MIT license found in the 32 * LICENSE file in the root directory of this source tree. 33 */var lv;function iR(){if(lv)return Tt;lv=1;var a=$l();function n(g){var f="https://react.dev/errors/"+g;if(1<arguments.length){f+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)f+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+g+"; visit "+f+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var i={d:{f:o,r:function(){throw Error(n(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},l=Symbol.for("react.portal");function d(g,f,y){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:l,key:x==null?null:""+x,children:g,containerInfo:f,implementation:y}}var m=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function h(g,f){if(g==="font")return"";if(typeof f=="string")return f==="use-credentials"?f:""}return Tt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,Tt.createPortal=function(g,f){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!f||f.nodeType!==1&&f.nodeType!==9&&f.nodeType!==11)throw Error(n(299));return d(g,f,null,y)},Tt.flushSync=function(g){var f=m.T,y=i.p;try{if(m.T=null,i.p=2,g)return g()}finally{m.T=f,i.p=y,i.d.f()}},Tt.preconnect=function(g,f){typeof g=="string"&&(f?(f=f.crossOrigin,f=typeof f=="string"?f==="use-credentials"?f:"":void 0):f=null,i.d.C(g,f))},Tt.prefetchDNS=function(g){typeof g=="string"&&i.d.D(g)},Tt.preinit=function(g,f){if(typeof g=="string"&&f&&typeof f.as=="string"){var y=f.as,x=h(y,f.crossOrigin),j=typeof f.integrity=="string"?f.integrity:void 0,C=typeof f.fetchPriority=="string"?f.fetchPriority:void 0;y==="style"?i.d.S(g,typeof f.precedence=="string"?f.precedence:void 0,{crossOrigin:x,integrity:j,fetchPriority:C}):y==="script"&&i.d.X(g,{crossOrigin:x,integrity:j,fetchPriority:C,nonce:typeof f.nonce=="string"?f.nonce:void 0})}},Tt.preinitModule=function(g,f){if(typeof g=="string")if(typeof f=="object"&&f!==null){if(f.as==null||f.as==="script"){var y=h(f.as,f.crossOrigin);i.d.M(g,{crossOrigin:y,integrity:typeof f.integrity=="string"?f.integrity:void 0,nonce:typeof f.nonce=="string"?f.nonce:void 0})}}else f==null&&i.d.M(g)},Tt.preload=function(g,f){if(typeof g=="string"&&typeof f=="object"&&f!==null&&typeof f.as=="string"){var y=f.as,x=h(y,f.crossOrigin);i.d.L(g,y,{crossOrigin:x,integrity:typeof f.integrity=="string"?f.integrity:void 0,nonce:typeof f.nonce=="string"?f.nonce:void 0,type:typeof f.type=="string"?f.type:void 0,fetchPriority:typeof f.fetchPriority=="string"?f.fetchPriority:void 0,referrerPolicy:typeof f.referrerPolicy=="string"?f.referrerPolicy:void 0,imageSrcSet:typeof f.imageSrcSet=="string"?f.imageSrcSet:void 0,imageSizes:typeof f.imageSizes=="string"?f.imageSizes:void 0,media:typeof f.media=="string"?f.media:void 0})}},Tt.preloadModule=function(g,f){if(typeof g=="string")if(f){var y=h(f.as,f.crossOrigin);i.d.m(g,{as:typeof f.as=="string"&&f.as!=="script"?f.as:void 0,crossOrigin:y,integrity:typeof f.integrity=="string"?f.integrity:void 0})}else i.d.m(g)},Tt.requestFormReset=function(g){i.d.r(g)},Tt.unstable_batchedUpdates=function(g,f){return g(f)},Tt.useFormState=function(g,f,y){return m.H.useFormState(g,f,y)},Tt.useFormStatus=function(){return m.H.useHostTransitionStatus()},Tt.version="19.2.1",Tt}var dv;function b1(){if(dv)return Gm.exports;dv=1;function a(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(n){console.error(n)}}return a(),Gm.exports=iR(),Gm.exports}/** 34 * @license React 35 * react-dom-client.production.js 36 * 37 * Copyright (c) Meta Platforms, Inc. and affiliates. 38 * 39 * This source code is licensed under the MIT license found in the 40 * LICENSE file in the root directory of this source tree. 41 */var uv;function cR(){if(uv)return ji;uv=1;var a=oR(),n=$l(),o=b1();function i(t){var s="https://react.dev/errors/"+t;if(1<arguments.length){s+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)s+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+t+"; visit "+s+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function d(t){var s=t,r=t;if(t.alternate)for(;s.return;)s=s.return;else{t=s;do s=t,(s.flags&4098)!==0&&(r=s.return),t=s.return;while(t)}return s.tag===3?r:null}function m(t){if(t.tag===13){var s=t.memoizedState;if(s===null&&(t=t.alternate,t!==null&&(s=t.memoizedState)),s!==null)return s.dehydrated}return null}function h(t){if(t.tag===31){var s=t.memoizedState;if(s===null&&(t=t.alternate,t!==null&&(s=t.memoizedState)),s!==null)return s.dehydrated}return null}function g(t){if(d(t)!==t)throw Error(i(188))}function f(t){var s=t.alternate;
vendor: 14,491 bytes, lines 41-48
41if(!s){if(s=d(t),s===null)throw Error(i(188));return s!==t?null:t}for(var r=t,c=s;;){var u=r.return;if(u===null)break;var p=u.alternate;if(p===null){if(c=u.return,c!==null){r=c;continue}break}if(u.child===p.child){for(p=u.child;p;){if(p===r)return g(u),t;if(p===c)return g(u),s;p=p.sibling}throw Error(i(188))}if(r.return!==c.return)r=u,c=p;else{for(var v=!1,S=u.child;S;){if(S===r){v=!0,r=u,c=p;break}if(S===c){v=!0,c=u,r=p;break}S=S.sibling}if(!v){for(S=p.child;S;){if(S===r){v=!0,r=p,c=u;break}if(S===c){v=!0,c=p,r=u;break}S=S.sibling}if(!v)throw Error(i(189))}}if(r.alternate!==c)throw Error(i(190))}if(r.tag!==3)throw Error(i(188));return r.stateNode.current===r?t:s}function y(t){var s=t.tag;if(s===5||s===26||s===27||s===6)return t;for(t=t.child;t!==null;){if(s=y(t),s!==null)return s;t=t.sibling}return null}var x=Object.assign,j=Symbol.for("react.element"),C=Symbol.for("react.transitional.element"),R=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),D=Symbol.for("react.consumer"),q=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),U=Symbol.for("react.suspense_list"),M=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),Z=Symbol.for("react.activity"),ae=Symbol.for("react.memo_cache_sentinel"),le=Symbol.iterator;function ie(t){return t===null||typeof t!="object"?null:(t=le&&t[le]||t["@@iterator"],typeof t=="function"?t:null)}var he=Symbol.for("react.client.reference");function pe(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===he?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case w:return"Fragment";case k:return"Profiler";case E:return"StrictMode";case N:return"Suspense";case U:return"SuspenseList";case Z:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case R:return"Portal";case q:return t.displayName||"Context";case D:return(t._context.displayName||"Context")+".Consumer";case K:var s=t.render;return t=t.displayName,t||(t=s.displayName||s.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case M:return s=t.displayName||null,s!==null?s:pe(t.type)||"Memo";case I:s=t._payload,t=t._init;try{return pe(t(s))}catch{}}return null}var ge=Array.isArray,A=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z={pending:!1,data:null,method:null,action:null},ee=[],de=-1;function P(t){return{current:t}}function W(t){0>de||(t.current=ee[de],ee[de]=null,de--)}function F(t,s){de++,ee[de]=t.current,t.current=s}var $=P(null),O=P(null),oe=P(null),ce=P(null);function we(t,s){switch(F(oe,s),F(O,t),F($,null),s.nodeType){case 9:case 11:t=(t=s.documentElement)&&(t=t.namespaceURI)?dy(t):0;break;default:if(t=s.tagName,s=s.namespaceURI)s=dy(s),t=uy(s,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}W($),F($,t)}function Me(){W($),W(O),W(oe)}function dt(t){t.memoizedState!==null&&F(ce,t);var s=$.current,r=uy(s,t.type);s!==r&&(F(O,t),F($,r))}function wt(t){O.current===t&&(W($),W(O)),ce.current===t&&(W(ce),gi._currentValue=z)}var yt,H;function Se(t){if(yt===void 0)try{throw Error()}catch(r){var s=r.stack.trim().match(/\n( *(at )?)/);yt=s&&s[1]||"",H=-1<r.stack.indexOf(` 42 at`)?" (<anonymous>)":-1<r.stack.indexOf("@")?"@unknown:0:0":""}return` 43`+yt+t+H}var rt=!1;function Lt(t,s){if(!t||rt)return"";rt=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var c={DetermineComponentFrameRoot:function(){try{if(s){var ne=function(){throw Error()};if(Object.defineProperty(ne.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ne,[])}catch(X){var J=X}Reflect.construct(t,[],ne)}else{try{ne.call()}catch(X){J=X}t.call(ne.prototype)}}else{try{throw Error()}catch(X){J=X}(ne=t())&&typeof ne.catch=="function"&&ne.catch(function(){})}}catch(X){if(X&&J&&typeof X.stack=="string")return[X.stack,J.stack]}return[null,null]}};c.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(c.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(c.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var p=c.DetermineComponentFrameRoot(),v=p[0],S=p[1];if(v&&S){var T=v.split(` 44`),G=S.split(` 45`);for(u=c=0;c<T.length&&!T[c].includes("DetermineComponentFrameRoot");)c++;for(;u<G.length&&!G[u].includes("DetermineComponentFrameRoot");)u++;if(c===T.length||u===G.length)for(c=T.length-1,u=G.length-1;1<=c&&0<=u&&T[c]!==G[u];)u--;for(;1<=c&&0<=u;c--,u--)if(T[c]!==G[u]){if(c!==1||u!==1)do if(c--,u--,0>u||T[c]!==G[u]){var te=` 46`+T[c].replace(" at new "," at ");return t.displayName&&te.includes("<anonymous>")&&(te=te.replace("<anonymous>",t.displayName)),te}while(1<=c&&0<=u);break}}}finally{rt=!1,Error.prepareStackTrace=r}return(r=t?t.displayName||t.name:"")?Se(r):""}function It(t,s){switch(t.tag){case 26:case 27:case 5:return Se(t.type);case 16:return Se("Lazy");case 13:return t.child!==s&&s!==null?Se("Suspense Fallback"):Se("Suspense");case 19:return Se("SuspenseList");case 0:case 15:return Lt(t.type,!1);case 11:return Lt(t.type.render,!1);case 1:return Lt(t.type,!0);case 31:return Se("Activity");default:return""}}function Ao(t){try{var s="",r=null;do s+=It(t,r),r=t,t=t.return;while(t);return s}catch(c){return` 47Error generating stack: `+c.message+` 48`+c.stack}}var aa=Object.prototype.hasOwnProperty,Ro=a.unstable_scheduleCallback,Eo=a.unstable_cancelCallback,_t=a.unstable_shouldYield,Is=a.unstable_requestPaint,zt=a.unstable_now,Ad=a.unstable_getCurrentPriorityLevel,An=a.unstable_ImmediatePriority,Xi=a.unstable_UserBlockingPriority,Rn=a.unstable_NormalPriority,No=a.unstable_LowPriority,is=a.unstable_IdlePriority,Zi=a.log,_s=a.unstable_setDisableYieldValue,En=null,qt=null;function Oa(t){if(typeof Zi=="function"&&_s(t),qt&&typeof qt.setStrictMode=="function")try{qt.setStrictMode(En,t)}catch{}}var kt=Math.clz32?Math.clz32:Ua,Rd=Math.log,Po=Math.LN2;function Ua(t){return t>>>=0,t===0?32:31-(Rd(t)/Po|0)|0}var ur=256,mr=262144,Nn=4194304;function Va(t){var s=t&42;if(s!==0)return s;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Ae(t,s,r){var c=t.pendingLanes;if(c===0)return 0;var u=0,p=t.suspendedLanes,v=t.pingedLanes;t=t.warmLanes;var S=c&134217727;return S!==0?(c=S&~p,c!==0?u=Va(c):(v&=S,v!==0?u=Va(v):r||(r=S&~t,r!==0&&(u=Va(r))))):(S=c&~p,S!==0?u=Va(S):v!==0?u=Va(v):r||(r=c&~t,r!==0&&(u=Va(r)))),u===0?0:s!==0&&s!==u&&(s&p)===0&&(p=u&-u,r=s&-s,p>=r||p===32&&(r&4194048)!==0)?s:u}function at(t,s){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&s)===0}function Ct(t,s){switch(t){case 1:case 2:case 4:case 8:case 64:return s+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Mt(){var t=Nn;return Nn<<=1,(Nn&62914560)===0&&(Nn=4194304),t}function zs(t){for(var s=[],r=0;31>r;r++)s.push(t);return s}function ot(t,s){t.pendingLanes|=s,s!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Ft(t,s,r,c,u,p){var v=t.pendingLanes;t.pendingLanes=r,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=r,t.entangledLanes&=r,t.errorRecoveryDisabledLanes&=r,t.shellSuspendCounter=0;var S=t.entanglements,T=t.expirationTimes,G=t.hiddenUpdates;for(r=v&~r;0<r;){var te=31-kt(r),ne=1<<te;S[te]=0,T[te]=-1;var J=G[te];if(J!==null)for(G[te]=null,te=0;te<J.length;te++){var X=J[te];X!==null&&(X.lane&=-536870913)}r&=~ne}c!==0&&Pn(t,c,0),p!==0&&u===0&&t.tag!==0&&(t.suspendedLanes|=p&~(v&~s))}function Pn(t,s,r){t.pendingLanes|=s,t.suspendedLanes&=~s;var c=31-kt(s);t.entangledLanes|=s,t.entanglements[c]=t.entanglements[c]|1073741824|r&261930}function Qt(t,s){var r=t.entangledLanes|=s;for(t=t.entanglements;r;){var c=31-kt(r),u=1<<c;u&s|t[c]&s&&(t[c]|=s),r&=~u}}function Gt(t,s){var r=s&-s;return r=(r&42)!==0?1:pr(r),(r&(t.suspendedLanes|s))!==0?0:r}function pr(t){switch(t){case 2:t=1;break;case 8:t=4;break;case 32:t=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t=128;break;case 268435456:t=134217728;break;default:t=0}return t}function ka(t){return t&=-t,2<t?8<t?(t&134217727)!==0?32:268435456:8:2}function Ed(){var t=_.p;return t!==0?t:(t=window.event,t===void 0?32:Dy(t.type))}function Jh(t,s){var r=_.p;try{return _.p=t,s()}finally{_.p=r}}var qs=Math.random().toString(36).slice(2),Rt="__reactFiber$"+qs,Yt="__reactProps$"+qs,hr="__reactContainer$"+qs,Nd="__reactEvents$"+qs,Iw="__reactListeners$"+qs,_w="__reactHandles$"+qs,Wh="__reactResources$"+qs,Oo="__reactMarker$"+qs;function Pd(t){delete t[Rt],delete t[Yt],delete t[Nd],delete t[Iw],delete t[_w]}function gr(t){var s=t[Rt];if(s)return s;for(var r=t.parentNode;r;){if(s=r[hr]||r[Rt]){if(r=s.alternate,s.child!==null||r!==null&&r.child!==null)for(t=yy(t);t!==null;){if(r=t[Rt])return r;t=yy(t)}return s}t=r,r=t.parentNode}return null}function fr(t){if(t=t[Rt]||t[hr]){var s=t.tag;if(s===5||s===6||s===13||s===31||s===26||s===27||s===3)return t}return null}function ko(t){var s=t.tag;if(s===5||s===26||s===27||s===6)return t.stateNode;throw Error(i(33))}function xr(t){var s=t[Wh];return s||(s=t[Wh]={hoistableStyles:new Map,hoistableScripts:new Map}),s}function St(t){t[Oo]=!0}var $h=new Set,Xh={};function On(t,s){yr(t,s),yr(t+"Capture",s)}function yr(t,s){for(Xh[t]=s,t=0;t<s.length;t++)$h.add(s[t])}var zw=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Zh={},eg={};function qw(t){return aa.call(eg,t)?!0:aa.call(Zh,t)?!1:zw.test(t)?eg[t]=!0:(Zh[t]=!0,!1)}function ec(t,s,r){if(qw(s))if(r===null)t.removeAttribute(s);else{switch(typeof r){case"undefined":case"function":case"symbol":t.removeAttribute(s);return;case"boolean":var c=s.toLowerCase().slice(0,5);if(c!=="data-"&&c!=="aria-"){t.removeAttribute(s);return}}t.setAttribute(s,""+r)}}function tc(t,s,r){if(r===null)t.removeAttribute(s);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(s);return}t.setAttribute(s,""+r)}}function cs(t,s,r,c){if(c===null)t.removeAttribute(r);else{switch(typeof c){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(r);return}t.setAttributeNS(s,r,""+c)}}function fa(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function tg(t){var s=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(s==="checkbox"||s==="radio")}function Bw(t,s,r){var c=Object.getOwnPropertyDescriptor(t.constructor.prototype,s);if(!t.hasOwnProperty(s)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var u=c.get,p=c.set;return Object.defineProperty(t,s,{configurable:!0,get:function(){return u.call(this)},set:function(v){r=""+v,p.call(this,v)}}),Object.defineProperty(t,s,{enumerable:c.enumerable}),{getValue:function(){return r},setValue:function(v){r=""+v},stopTracking:function(){t._valueTracker=null,delete t[s]}}}}function Od(t){if(!t._valueTracker){var s=tg(t)?"checked":"value";t._valueTracker=Bw(t,s,""+t[s])}}function ag(t){if(!t)return!1;var s=t._valueTracker;if(!s)return!0;var r=s.getValue(),c="";return t&&(c=tg(t)?t.checked?"true":"false":t.value),t=c,t!==r?(s.setValue(t),!0):!1}function ac(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Hw=/[\n"\\]/g;function xa(t){return t.replace(Hw,function(s){return"\\"+s.charCodeAt(0).toString(16)+" "})}function kd(t,s,r,c,u,p,v,S){t.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?t.type=v:t.removeAttribute("type"),s!=null?v==="number"?(s===0&&t.value===""||t.value!=s)&&(t.value=""+fa(s)):t.value!==""+fa(s)&&(t.value=""+fa(s)):v!=="submit"&&v!=="reset"||t.removeAttribute("value"),s!=null?Md(t,v,fa(s)):r!=null?Md(t,v,fa(r)):c!=null&&t.removeAttribute("value"),u==null&&p!=null&&(t.defaultChecked=!!p),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?t.name=""+fa(S):t.removeAttribute("name")}function sg(t,s,r,c,u,p,v,S){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(t.type=p),s!=null||r!=null){if(!(p!=="submit"&&p!=="reset"||s!=null)){Od(t);return}r=r!=null?""+fa(r):"",s=s!=null?""+fa(s):r,S||s===t.value||(t.value=s),t.defaultValue=s}c=c??u,c=typeof c!="function"&&typeof c!="symbol"&&!!c,t.checked=S?t.checked:!!c,t.defaultChecked=!!c,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(t.name=v),Od(t)}function Md(t,s,r){s==="number"&&ac(t.ownerDocument)===t||t.defaultValue===""+r||(t.defaultValue=""+r)}function vr(t,s,r,c){if(t=t.options,s){s={};for(var u=0;u<r.length;u++)s["$"+r[u]]=!0;for(r=0;r<t.length;r++)u=s.hasOwnProperty("$"+t[r].value),t[r].selected!==u&&(t[r].selected=u),u&&c&&(t[r].defaultSelected=!0)}else{for(r=""+fa(r),s=null,u=0;u<t.length;u++){if(t[u].value===r){t[u].selected=!0,c&&(t[u].defaultSelected=!0);return}s!==null||t[u].disabled||(s=t[u])}s!==null&&(s.selected=!0)}}function ng(t,s,r){if(s!=null&&(s=""+fa(s),s!==t.value&&(t.value=s),r==null)){t.defaultValue!==s&&(t.defaultValue=s);return}t.defaultValue=r!=null?""+fa(r):""}
vendor: 4,415 bytes, line 48
48function rg(t,s,r,c){if(s==null){if(c!=null){if(r!=null)throw Error(i(92));if(ge(c)){if(1<c.length)throw Error(i(93));c=c[0]}r=c}r==null&&(r=""),s=r}r=fa(s),t.defaultValue=r,c=t.textContent,c===r&&c!==""&&c!==null&&(t.value=c),Od(t)}function br(t,s){if(s){var r=t.firstChild;if(r&&r===t.lastChild&&r.nodeType===3){r.nodeValue=s;return}}t.textContent=s}var Uw=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function og(t,s,r){var c=s.indexOf("--")===0;r==null||typeof r=="boolean"||r===""?c?t.setProperty(s,""):s==="float"?t.cssFloat="":t[s]="":c?t.setProperty(s,r):typeof r!="number"||r===0||Uw.has(s)?s==="float"?t.cssFloat=r:t[s]=(""+r).trim():t[s]=r+"px"}function ig(t,s,r){if(s!=null&&typeof s!="object")throw Error(i(62));if(t=t.style,r!=null){for(var c in r)!r.hasOwnProperty(c)||s!=null&&s.hasOwnProperty(c)||(c.indexOf("--")===0?t.setProperty(c,""):c==="float"?t.cssFloat="":t[c]="");for(var u in s)c=s[u],s.hasOwnProperty(u)&&r[u]!==c&&og(t,u,c)}else for(var p in s)s.hasOwnProperty(p)&&og(t,p,s[p])}function Td(t){if(t.indexOf("-")===-1)return!1;switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vw=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode
48-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Fw=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function sc(t){return Fw.test(""+t)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":t}function ls(){}var Dd=null;function Ld(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var jr=null,wr=null;function cg(t){var s=fr(t);if(s&&(t=s.stateNode)){var r=t[Yt]||null;e:switch(t=s.stateNode,s.type){case"input":if(kd(t,r.value,r.defaultValue,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name),s=r.name,r.type==="radio"&&s!=null){for(r=t;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll('input[name="'+xa(""+s)+'"][type="radio"]'),s=0;s<r.length;s++){var c=r[s];if(c!==t&&c.form===t.form){var u=c[Yt]||null;if(!u)throw Error(i(90));kd(c,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name)}}for(s=0;s<r.length;s++)c=r[s],c.form===t.form&&ag(c)}break e;case"textarea":ng(t,r.value,r.defaultValue);break e;case"select":s=r.value,s!=null&&vr(t,!!r.multiple,s,!1)}}}var Id=!1;function lg(t,s,r){if(Id)return t(s,r);Id=!0;try{var c=t(s);return c}finally{if(Id=!1,(jr!==null||wr!==null)&&(Fc(),jr&&(s=jr,t=wr,wr=jr=null,cg(s),t)))for(s=0;s<t.length;s++)cg(t[s])}}function Mo(t,s){var r=t.stateNode;if(r===null)return null;var c=r[Yt]||null;if(c===null)return null;r=c[s];e:switch(s){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(c=!c.disabled)||(t=t.type,c=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!c;break e;default:t=!1}if(t)return null;if(r&&typeof r!="function")throw Error(i(231,s,typeof r));return r}var ds=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_d=!1;if(ds)try{var To={};Object.defineProperty(To,"passive",{get:function(){_d=!0}}),window.addEventListener("test",To,To),window.removeEventListener("test",To,To)}catch{_d=!1}var Bs=null,zd=null,nc=null;function dg(){if(nc)return nc;var t,s=zd,r=s.length,c,u="value"in Bs?Bs.value:Bs.textContent,p=u.length;for(t=0;t<r&&s[t]===u[t];t++);var v=r-t;for(c=1;c<=v&&s[r-c]===u[p-c];c++);return nc=u.slice(t,1<c?1-c:void 0)}function rc(t){var s=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&s===13&&(t=13)):t=s,t===10&&(t=13),32<=t||t===13?t:0}function oc(){return!0}function ug(){return!1}function Kt(t){function s(r,c,u,p,v){this._reactName=r,this._targetInst=u,this.type=c,this.nativeEvent=p,this.target=v,this.currentTarget=null;for(var S in t)t.hasOwnProperty(S)&&(r=t[S],this[S]=r?r(p):p[S]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?oc:ug,this.isPropagationStopped=ug,this}return x(s.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=oc)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=oc)},persist:function(){},isPersistent:oc}),s}var kn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ic=Kt(kn),Do=x({},kn,{view:0,detail:0}),Qw=Kt(Do),qd,Bd,Lo,cc=x({},Do,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ud,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==Lo&&(Lo&&t.type==="mousemove"?(qd=t.screenX-Lo.screenX,Bd=t.screenY-Lo.screenY):Bd=qd=0,Lo=t),qd)},movementY:function(t){return"movementY"in t?t.movementY:Bd}}),mg=Kt(cc),Gw=x({},cc,{dataTransfer:0}),Yw=Kt(Gw),Kw=x({},Do,{relatedTarget:0}),Hd=Kt(Kw),Jw=x({},kn,{animationName:0,elapsedTime:0,pseudoElement:0}),Ww=Kt(Jw),$w=x({},kn,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),Xw=Kt($w),Zw=x({},kn,{data:0}),pg=Kt(Zw),eC={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},tC={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},aC={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function sC(t){var s=this.nativeEvent;return s.getModifierState?s.getModifierState(t):(t=aC[t])?!!s[t]:!1}function Ud(){return sC}var nC=x({},Do,{key:function(t){if(t.key){var s=eC[t.key]||t.key;if(s!=="Unidentified")return s}
vendor: 5,186 bytes, line 48
48return t.type==="keypress"?(t=rc(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?tC[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ud,charCode:function(t){return t.type==="keypress"?rc(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?rc(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),rC=Kt(nC),oC=x({},cc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),hg=Kt(oC),iC=x({},Do,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ud}),cC=Kt(iC),lC=x({},kn,{propertyName:0,elapsedTime:0,pseudoElement:0}),dC=Kt(lC),uC=x({},cc,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),mC=Kt(uC),pC=x({},kn,{newState:0,oldState:0}),hC=Kt(pC),gC=[9,13,27,32],Vd=ds&&"CompositionEvent"in window,Io=null;ds&&"documentMode"in document&&(Io=document.documentMode);var fC=ds&&"TextEvent"in window&&!Io,gg=ds&&(!Vd||Io&&8<Io&&11>=Io),fg=" ",xg=!1;function yg(t,s){switch(t){case"keyup":return gC.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function vg(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Cr=!1;function xC(t,s){switch(t){case"compositionend":return vg(s);case"keypress":return s.which!==32?null:(xg=!0,fg);case"textInput":return t=s.data,t===fg&&xg?null:t;default:return null}}function yC(t,s){if(Cr)return t==="compositionend"||!Vd&&yg(t,s)?(t=dg(),nc=zd=Bs=null,Cr=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1<s.char.length)return s.char;if(s.which)return String.fromCharCode(s.which)}return null;case"compositionend":return gg&&s.locale!=="ko"?null:s.data;default:return null}}var vC={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function bg(t){var s=t&&t.nodeName&&t.nodeName.toLowerCase();return s==="input"?!!vC[t.type]:s==="textarea"}function jg(t,s,r,c){jr?wr?wr.push(c):wr=[c]:jr=c,s=$c(s,"onChange"),0<s.length&&(r=new ic("onChange","change",null,r,c),t.push({event:r,listeners:s}))}var _o=null,zo=null;function bC(t){ny(t,0)}function lc(t){var s=ko(t);if(ag(s))return t}function wg(t,s){if(t==="change")return s}var Cg=!1;if(ds){var Fd;if(ds){var Qd="oninput"in document;if(!Qd){var Sg=document.createElement("div");Sg.setAttribute("oninput","return;"),Qd=typeof Sg.oninput=="function"}Fd=Qd}else Fd=!1;Cg=Fd&&(!document.documentMode||9<document.documentMode)}function Ag(){_o&&(_o.detachEvent("onpropertychange",Rg),zo=_o=null)}function Rg(t){if(t.propertyName==="value"&&lc(zo)){var s=[];jg(s,zo,t,Ld(t)),lg(bC,s)}}function jC(t,s,r){t==="focusin"?(Ag(),_o=s,zo=r,_o.attachEvent("onpropertychange",Rg)):t==="focusout"&&Ag()}function wC(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return lc(zo)}function CC(t,s){if(t==="click")return lc(s)}function SC(t,s){if(t==="input"||t==="change")return lc(s)}function AC(t,s){return t===s&&(t!==0||1/t===1/s)||t!==t&&s!==s}var sa=typeof Object.is=="function"?Object.is:AC;function qo(t,s){if(sa(t,s))return!0;if(typeof t!="object"||t===null||typeof s!="object"||s===null)return!1;var r=Object.keys(t),c=Object.keys(s);if(r.length!==c.length)return!1;for(c=0;c<r.length;c++){var u=r[c];if(!aa.call(s,u)||!sa(t[u],s[u]))return!1}return!0}function Eg(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function Ng(t,s){var r=Eg(t);t=0;for(var c;r;){if(r.nodeType===3){if(c=t+r.textContent.length,t<=s&&c>=s)return{node:r,offset:s-t};t=c}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Eg(r)}}function Pg(t,s){return t&&s?t===s?!0:t&&t.nodeType===3?!1:s&&s.nodeType===3?Pg(t,s.parentNode):"contains"in t?t.contains(s):t.compareDocumentPosition?!!(t.compareDocumentPosition(s)&16):!1:!1}function Og(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var s=ac(t.document);s instanceof t.HTMLIFrameElement;){try{var r=typeof s.contentWindow.location.href=="string"}catch{r=!1}if(r)t=s.contentWindow;else break;s=ac(t.document)}return s}function Gd(t){var s=t&&t.nodeName&&t.nodeName.toLowerCase();return s&&(s==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||s==="textarea"||t.contentEditable==="true")}var RC=ds&&"documentMode"in document&&11>=document.documentMode,Sr=null,Yd=null,Bo=null,Kd=!1;function kg(t,s,r){var c=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Kd||Sr==null||Sr!==ac(c)||(c=Sr,"selectionStart"in c&&Gd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focu
vendor: 20,242 bytes, line 48
48sNode:c.focusNode,focusOffset:c.focusOffset}),Bo&&qo(Bo,c)||(Bo=c,c=$c(Yd,"onSelect"),0<c.length&&(s=new ic("onSelect","select",null,s,r),t.push({event:s,listeners:c}),s.target=Sr)))}function Mn(t,s){var r={};return r[t.toLowerCase()]=s.toLowerCase(),r["Webkit"+t]="webkit"+s,r["Moz"+t]="moz"+s,r}var Ar={animationend:Mn("Animation","AnimationEnd"),animationiteration:Mn("Animation","AnimationIteration"),animationstart:Mn("Animation","AnimationStart"),transitionrun:Mn("Transition","TransitionRun"),transitionstart:Mn("Transition","TransitionStart"),transitioncancel:Mn("Transition","TransitionCancel"),transitionend:Mn("Transition","TransitionEnd")},Jd={},Mg={};ds&&(Mg=document.createElement("div").style,"AnimationEvent"in window||(delete Ar.animationend.animation,delete Ar.animationiteration.animation,delete Ar.animationstart.animation),"TransitionEvent"in window||delete Ar.transitionend.transition);function Tn(t){if(Jd[t])return Jd[t];if(!Ar[t])return t;var s=Ar[t],r;for(r in s)if(s.hasOwnProperty(r)&&r in Mg)return Jd[t]=s[r];return t}var Tg=Tn("animationend"),Dg=Tn("animationiteration"),Lg=Tn("animationstart"),EC=Tn("transitionrun"),NC=Tn("transitionstart"),PC=Tn("transitioncancel"),Ig=Tn("transitionend"),_g=new Map,Wd="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Wd.push("scrollEnd");function Ma(t,s){_g.set(t,s),On(s,[t])}var dc=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var s=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(s))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},ya=[],Rr=0,$d=0;function uc(){for(var t=Rr,s=$d=Rr=0;s<t;){var r=ya[s];ya[s++]=null;var c=ya[s];ya[s++]=null;var u=ya[s];ya[s++]=null;var p=ya[s];if(ya[s++]=null,c!==null&&u!==null){var v=c.pending;v===null?u.next=u:(u.next=v.next,v.next=u),c.pending=u}p!==0&&zg(r,u,p)}}function mc(t,s,r,c){ya[Rr++]=t,ya[Rr++]=s,ya[Rr++]=r,ya[Rr++]=c,$d|=c,t.lanes|=c,t=t.alternate,t!==null&&(t.lanes|=c)}function Xd(t,s,r,c){return mc(t,s,r,c),pc(t)}function Dn(t,s){return mc(t,null,null,s),pc(t)}function zg(t,s,r){t.lanes|=r;var c=t.alternate;c!==null&&(c.lanes|=r);for(var u=!1,p=t.return;p!==null;)p.childLanes|=r,c=p.alternate,c!==null&&(c.childLanes|=r),p.tag===22&&(t=p.stateNode,t===null||t._visibility&1||(u=!0)),t=p,p=p.return;return t.tag===3?(p=t.stateNode,u&&s!==null&&(u=31-kt(r),t=p.hiddenUpdates,c=t[u],c===null?t[u]=[s]:c.push(s),s.lane=r|536870912),p):null}function pc(t){if(50<ci)throw ci=0,im=null,Error(i(185));for(var s=t.return;s!==null;)t=s,s=t.return;return t.tag===3?t.stateNode:null}var Er={};function OC(t,s,r,c){this.tag=t,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=s,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function na(t,s,r,c){return new OC(t,s,r,c)}function Zd(t){return t=t.prototype,!(!t||!t.isReactComponent)}function us(t,s){var r=t.alternate;return r===null?(r=na(t.tag,s,t.key,t.mode),r.elementType=t.elementType,r.type=t.type,r.stateNode=t.stateNode,r.alternate=t,t.alternate=r):(r.pendingProps=s,r.type=t.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=t.flags&65011712,r.childLanes=t.childLanes,r.lanes=t.lanes,r.child=t.child,r.memoizedProps=t.memoizedProps,r.memoizedState=t.memoizedState,r.updateQueue=t.updateQueue,s=t.dependencies,r.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext},r.sibling=t.sibling,r.index=t.index,r.ref=t.ref,r.refCleanup=t.refCleanup,r}function qg(t,s){t.flags&=65011714;var r=t.alternate;return r===null?(t.childLanes=0,t.lanes=s,t.child=null,t.subtreeFlags=0,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null,t.stateNode=null):(t.childLanes=r.childLanes,t.lanes=r.lanes,t.child=r.child,t.subtreeFlags=0,t.deletions=null,t.memoizedProps=r.memoizedProps,t.memoizedState=r.memoizedState,t.updateQueue=r.updateQueue,t.type=r.type,s=r.dependencies,t.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext}),t}function hc(t,s,r,c,u,p){var v=0;if(c=t,typeof t=="function")Zd(t)&&(v=1);else if(typeof t=="string")v=LS(t,r,$.current)?26:t==="html"||t==="head"||t==="body"?27:5;else e:switch(t){case Z:return t=na(31,r,s,u),t.elementType=Z,t.lanes=p,t;case w:return Ln(r.children,u,p,s);case E:v=8,u|=24;break;case k:return t=na(12,r,s,u|2),t.elementType=k,t.lanes=p,t;case N:return t=na(13,r,s,u),t.elementType=N,t.lanes=p,t;case U:return t=na(19,r,s,u),t.elementType=U,t.lanes=p,t;default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case q:v=10;break e;case D:v=9;break e;case K:v=11;break e;case M:v=14;break e;case I:v=16,c=null;break e}v=29,r=Error(i(130,t===null?"null":typeof t,"")),c=null}return s=na(v,r,s,u),s.elementType=t,s.type=c,s.lanes=p,s}function Ln(t,s,r,c){return t=na(7,t,c,s),t.lanes=r,t}function eu(t,s,r){return t=na(6,t,null,s),t.lanes=r,t}function Bg(t){var s=na(18,null,null,0);return s.stateNode=t,s}function tu(t,s,r){return s=na(4,t.children!==null?t.children:[],t.key,s),s.lanes=r,s.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},s}var Hg=new WeakMap;function va(t,s){if(typeof t=="object"&&t!==null){var r=Hg.get(t);return r!==void 0?r:(s={value:t,source:s,stack:Ao(s)},Hg.set(t,s),s)}return{value:t,source:s,stack:Ao(s)}}var Nr=[],Pr=0,gc=null,Ho=0,ba=[],ja=0,Hs=null,Fa=1,Qa="";function ms(t,s){Nr[Pr++]=Ho,Nr[Pr++]=gc,gc=t,Ho=s}function Ug(t,s,r){ba[ja++]=Fa,ba[ja++]=Qa,ba[ja++]=Hs,Hs=t;var c=Fa;t=Qa;var u=32-kt(c)-1;c&=~(1<<u),r+=1;var p=32-kt(s)+u;if(30<p){var v=u-u%5;p=(c&(1<<v)-1).toString(32),c>>=v,u-=v,Fa=1<<32-kt(s)+u|r<<u|c,Qa=p+t}else Fa=1<<p|r<<u|c,Qa=t}function au(t){t.return!==null&&(ms(t,1),Ug(t,1,0))}function su(t){for(;t===gc;)gc=Nr[--Pr],Nr[Pr]=null,Ho=Nr[--Pr],Nr[Pr]=null;for(;t===Hs;)Hs=ba[--ja],ba[ja]=null,Qa=ba[--ja],ba[ja]=null,Fa=ba[--ja],ba[ja]=null}function Vg(t,s){ba[ja++]=Fa,ba[ja++]=Qa,ba[ja++]=Hs,Fa=s.id,Qa=s.overflow,Hs=t}var Et=null,Ze=null,qe=!1,Us=null,wa=!1,nu=Error(i(519));function Vs(t){var s=Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Uo(va(s,t)),nu}function Fg(t){var s=t.stateNode,r=t.type,c=t.memoizedProps;switch(s[Rt]=t,s[Yt]=c,r){case"dialog":Ie("cancel",s),Ie("close",s);break;case"iframe":case"object":case"embed":Ie("load",s);break;case"video":case"audio":for(r=0;r<di.length;r++)Ie(di[r],s);break;case"source":Ie("error",s);break;case"img":case"image":case"link":Ie("error",s),Ie("load",s);break;case"details":Ie("toggle",s);break;case"input":Ie("invalid",s),sg(s,c.value,c.defaultValue,c.checked,c.defaultChecked,c.type,c.name,!0);break;case"select":Ie("invalid",s);break;case"textarea":Ie("invalid",s),rg(s,c.value,c.defaultValue,c.children)}r=c.children,typeof r!="string"&&typeof r!="number"&&typeof r!="bigint"||s.textContent===""+r||c.suppressHydrationWarning===!0||cy(s.textContent,r)?(c.popover!=null&&(Ie("beforetoggle",s),Ie("toggle",s)),c.onScroll!=null&&Ie("scroll",s),c.onScrollEnd!=null&&Ie("scrollend",s),c.onClick!=null&&(s.onclick=ls),s=!0):s=!1,s||Vs(t,!0)}function Qg(t){for(Et=t.return;Et;)switch(Et.tag){case 5:case 31:case 13:wa=!1;return;case 27:case 3:wa=!0;return;default:Et=Et.return}}function Or(t){if(t!==Et)return!1;if(!qe)return Qg(t),qe=!0,!1;var s=t.tag,r;if((r=s!==3&&s!==27)&&((r=s===5)&&(r=t.type,r=!(r!=="form"&&r!=="button")||wm(t.type,t.memoizedProps)),r=!r),r&&Ze&&Vs(t),Qg(t),s===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(i(317));Ze=xy(t)}else if(s===31){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(i(317));Ze=xy(t)}else s===27?(s=Ze,sn(t.type)?(t=Em,Em=null,Ze=t):Ze=s):Ze=Et?Sa(t.stateNode.nextSibling):null;return!0}function In(){Ze=Et=null,qe=!1}function ru(){var t=Us;return t!==null&&(Xt===null?Xt=t:Xt.push.apply(Xt,t),Us=null),t}function Uo(t){Us===null?Us=[t]:Us.push(t)}var ou=P(null),_n=null,ps=null;function Fs(t,s,r){F(ou,s._currentValue),s._currentValue=r}function hs(t){t._currentValue=ou.current,W(ou)}function iu(t,s,r){for(;t!==null;){var c=t.alternate;if((t.childLanes&s)!==s?(t.childLanes|=s,c!==null&&(c.childLanes|=s)):c!==null&&(c.childLanes&s)!==s&&(c.childLanes|=s),t===r)break;t=t.return}}function cu(t,s,r,c){var u=t.child;for(u!==null&&(u.return=t);u!==null;){var p=u.dependencies;if(p!==null){var v=u.child;p=p.firstContext;e:for(;p!==null;){var S=p;p=u;for(var T=0;T<s.length;T++)if(S.context===s[T]){p.lanes|=r,S=p.alternate,S!==null&&(S.lanes|=r),iu(p.return,r,t),c||(v=null);break e}p=S.next}}else if(u.tag===18){if(v=u.return,v===null)throw Error(i(341));v.lanes|=r,p=v.alternate,p!==null&&(p.lanes|=r),iu(v,r,t),v=null}else v=u.child;if(v!==null)v.return=u;else for(v=u;v!==null;){if(v===t){v=null;break}if(u=v.sibling,u!==null){u.return=v.return,v=u;break}v=v.return}u=v}}function kr(t,s,r,c){t=null;for(var u=s,p=!1;u!==null;){if(!p){if((u.flags&524288)!==0)p=!0;else if((u.flags&262144)!==0)break}if(u.tag===10){var v=u.alternate;if(v===null)throw Error(i(387));if(v=v.memoizedProps,v!==null){var S=u.type;sa(u.pendingProps.value,v.value)||(t!==null?t.push(S):t=[S])}}else if(u===ce.current){if(v=u.alternate,v===null)throw Error(i(387));v.memoizedState.memoizedState!==u.memoizedState.memoizedState&&(t!==null?t.push(gi):t=[gi])}u=u.return}t!==null&&cu(s,t,r,c),s.flags|=262144}function fc(t){for(t=t.firstContext;t!==null;){if(!sa(t.context._currentValue,t.memoizedValue))return!0;t=t.next}return!1}function zn(t){_n=t,ps=null,t=t.dependencies,t!==null&&(t.firstContext=null)}function Nt(t){return Gg(_n,t)}function xc(t,s){return _n===null&&zn(t),Gg(t,s)}function Gg(t,s){var r=s._currentValue;if(s={context:s,memoizedValue:r,next:null},ps===null){if(t===null)throw Error(i(308));ps=s,t.dependencies={lanes:0,firstContext:s},t.flags|=524288}else ps=ps.next=s;return r}var kC=typeof AbortController<"u"?AbortController:function(){var t=[],s=this.signal={aborted:!1,addEventListener:function(r,c){t.push(c)}};this.abort=function(){s.aborted=!0,t.forEach(function(r){return r()})}},MC=a.unstable_scheduleCallback,TC=a.unstable_NormalPriority,ht={$$typeof:q,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function lu(){return{controller:new kC,data:new Map,refCount:0}}function Vo(t){t.refCount--,t.refCount===0&&MC(TC,function(){t.controller.abort()})}var Fo=null,du=0,Mr=0,Tr=null;function DC(t,s){if(Fo===null){var r=Fo=[];du=0,Mr=pm(),Tr={status:"pending",value:void 0,then:function(c){r.push(c)}}}return du++,s.then(Yg,Yg),s}function Yg(){if(--du===0&&Fo!==null){Tr!==null&&(Tr.status="fulfilled");var t=Fo;Fo=null,Mr=0,Tr=null;for(var s=0;s<t.length;s++)(0,t[s])()}}function LC(t,s){var r=[],c={status:"pending",value:null,reason:null,then:function(u){r.push(u)}};return t.then(function(){c.status="fulfilled",c.value=s;for(var u=0;u<r.length;u++)(0,r[u])(s)},function(u){for(c.status="rejected",c.reason=u,u=0;u<r.length;u++)(0,r[u])(void 0)}),c}var Kg=A.S;A.S=function(t,s){Mx=zt(),typeof s=="object"&&s!==null&&typeof s.then=="function"&&DC(t,s),Kg!==null&&Kg(t,s)};var qn=P(null);function uu(){var t=qn.current;return t!==null?t:Xe.pooledCache}function yc(t,s){s===null?F(qn,qn.current):F(qn,s.pool)}function Jg(){var t=uu();return t===null?null:{parent:ht._currentValue,pool:t}}var Dr=Error(i(460)),mu=Error(i(474)),vc=Error(i(542)),bc={then:function(){}};function Wg(t){return t=t.status,t==="fulfilled"||t==="rejected"}function $g(t,s,r){switch(r=t[r],r===void 0?t.push(s):r!==s&&(s.then(ls,ls),s=r),s.status){case"fulfilled":return s.value;case"rejected":throw t=s.reason,Zg(t),t;default:if(typeof s.status=="string")s.then(ls,ls);else{if(t=Xe,t!==null&&100<t.shellSuspendCounter)throw Error(i(482));t=s,t.status="pending",t.then(function(c){if(s.status==="pending"){var u=s;u.status="fulfilled",u.value=c}},function(c){if(s.status==="pending"){var u=s;u.status="rejected",u.reason=c}})}switch(s.status){case"fulfilled":return s.value;case"rejected":throw t=s.reason,Zg(t),t}throw Hn=s,Dr}}function Bn(t){try{var s=t._init;return s(t._payload)}catch(r){throw r!==null&&typeof r=="object"&&typeof r.then=="function"?(Hn=r,Dr):r}}var Hn=null;function Xg(){if(Hn===null)throw Error(i(459));var t=Hn;return Hn=null,t}function Zg(t){if(t===Dr||t===vc)throw Error(i(483))}var Lr=null,Qo=0;function jc(t){var s=Qo;return Qo+=1,Lr===null&&(Lr=[]),$g(Lr,t,s)}function Go(t,s){s=s.props.ref,t.ref=s!==void 0?s:null}function wc(t,s){throw s.$$typeof===j?Error(i(525)):(t=Object.prototype.toString.call(s),Error(i(31,t==="[object Object]"?"object with keys {"+Object.keys(s).join(", ")+"}":t)))}function ef(t){function s(B,L){if(t){var Q=B.deletions;Q===null?(B.deletions=[L],B.flags|=16):Q.push(L)}}function r(B,L){if(!t)return null;for(;L!==null;)s(B,L),L=L.sibling;return null}function c(B){for(var L=new Map;B!==null;)B.key!==null?L.set(B.key,B):L.set(B.index,B),B=B.sibling;return L}function u(B,L){return B=us(B,L),B.index=0,B.sibling=null,B}function p(B,L,Q){return B.index=Q,t?(Q=B.alternate,Q!==null?(Q=Q.index,Q<L?(B.flags|=67108866,L):Q):(B.flags|=67108866,L)):(B.flags|=1048576,L)}function v(B){return t&&B.alternate===null&&(B.flags|=67108866),B}function S(B,L,Q,se){return L===null||L.tag!==6?(L=eu(Q,B.mode,se),L.return=B,L):(L=u(L,Q),L.return=B,L)}function T(B,L,Q,se){var je=Q.type;return je===w?te(B,L,Q.props.children,se,Q.key):L!==null&&(L.elementType===je||typeof je=="object"&&je!==null&&je.$$typeof===I&&Bn(je)===L.type)?(L=u(L,Q.props),Go(L,Q),L.return=B,L):(L=hc(Q.type,Q.key,Q.props,null,B.mode,se),Go(L,Q),L.return=B,L)}function G(B,L,Q,se){return L===null||L.tag!==4||L.stateNode.containerInfo!==Q.containerInfo||L.stateNode.implementation!==Q.implementation?(L=tu(Q,B.mode,se),L.return=B,L):(L=u(L,Q.children||[]),L.return=B,L)}function te(B,L,Q,se,je){return L===null||L.tag!==7?(L=Ln(Q,B.mode,se,je),L.return=B,L):(L=u(L,Q),L.return=B,L)}function ne(B,L,Q){if(typeof L=="string"&&L!==""||typeof L=="number"||typeof L=="bigint")return L=eu(""+L,B.mode,Q),L.return=B,L;if(typeof L=="object"&&L!==null){switch(L.$$typeof){case C:return Q=hc(L.type,L.key,L.props,null,B.mode,Q),Go(Q,L),Q.return=B,Q;case R:return L=tu(L,B.mode,Q),L.return=B,L;case I:return L=Bn(L),ne(B,L,Q)}if(ge(L)||ie(L))return L=Ln(L,B.mode,Q,null),L.return=B,L;if(typeof L.then=="function")return ne(B,jc(L),Q);if(L.$$typeof===q)return ne(B,xc(B,L),Q);wc(B,L)}return null}function J(B,L,Q,se){var je=L!==null?L.key:null;if(typeof Q=="string"&&Q!==""||typeof Q=="number"||typeof Q=="bigint")return je!==null?null:S(B,L,""+Q,se);if(typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case C:return Q.key===je?T(B,L,Q,se):null;case R:return Q.key===je?G(B,L,Q,se):null;case I:return Q=Bn(Q),J(B,L,Q,se)}if(ge(Q)||ie(Q))return je!==null?null:te(B,L,Q,se,null);if(typeof Q.then=="function")return J(B,L,jc(Q),se);if(Q.$$typeof===q)return J(B,L,xc(B,Q),se);wc(B,Q)}return null}function X(B,L,Q,se,je){if(typeof se=="string"&&se!==""||typeof se=="number"||typeof se=="bigint")return B=B.get(Q)||null,S(L,B,""+se,je);if(typeof se=="object"&&se!==null){switch(se.$$typeof){case C:return B=B.get(se.key===null?Q:se.key)||null,T(L,B,se,je);case R:return B=B.get(se.key===null?Q:se.key)||null,G(L,B,se,je);case I:return se=Bn(se),X(B,L,Q,se,je)}if(ge(se)||ie(se))return B=B.get(Q)||null,te(L,B,se,je,null);if(typeof se.then=="function")return X(B,L,Q,jc(se),je);if(se.$$typeof===q)return X(B,L,Q,xc(L,se),je);wc(L,se)}return null}function xe(B,L,Q,se){for(var je=null,Be=null,be=L,ke=L=0,ze=null;be!==null&&ke<Q.length;ke++){be.index>ke?(ze=be,be=null):ze=be.sibling;var He=J(B,be,Q[ke],se);if(He===null){be===null&&(be=ze);break}t&&be&&He.alternate===null&&s(B,be),L=p(He,L,ke),Be===null?je=He:Be.sibling=He,Be=He,be=ze}if(ke===Q.length)return r(B,be),qe&&ms(B,ke),je;if(be===null){for(;ke<Q.length;ke++)be=ne(B,Q[ke],se),be!==null&&(L=p(be,L,ke),Be===null?je=be:Be.sibling=be,Be=be);return qe&&ms(B,ke),je}for(be=c(be);ke<Q.length;ke++)ze=X(be,B,ke,Q[ke],se),ze!==null&&(t&&ze.alternate!==null&&be.delete(ze.key===null?ke:ze.key),L=p(ze,L,ke),Be===null?je=ze:Be.sibling=ze,Be=ze);return t&&be.forEach(function(ln){return s(B,ln)}),qe&&ms(B,ke),je}function Ce(B,L,Q,se){if(Q==null)throw Error(i(151));for(var je=null,Be=null,be=L,ke=L=0,ze=null,He=Q.next();be!==null&&!He.done;ke++,He=Q.next()){be.index>ke?(ze=be,be=null):ze=be.sibling;var ln=J(B,be,He.value,se);if(ln===null){be===null&&(be=ze);break}t&&be&&ln.alternate===null&&s(B,be),L=p(ln,L,ke),Be===null?je=ln:Be.sibling=ln,Be=ln,be=ze}if(He.done)return r(B,be),qe&&ms(B,ke),je;if(be===null){for(;!He.done;ke++,He=Q.next())He=ne(B,He.value,se),He!==null&&(L=p(He,L,ke),Be===null?je=He:Be.sibling=He,Be=He);return qe&&ms(B,ke),je}for(be=c(be);!He.done;ke++,He=Q.next())He=X(be,B,ke,He.value,se),He!==null&&(t&&He.alternate!==null&&be.delete(He.key===null?ke:He.key),L=p(He,L,ke),Be===null?je=He:Be.sibling=He,Be=He);return t&&be.forEach(function(GS){return s(B,GS)}),qe&&ms(B,ke),je}function $e(B,L,Q,se){if(typeof Q=="object"&&Q!==null&&Q.type===w&&Q.key===null&&(Q=Q.props.children),typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case C:e:{for(var je=Q.key;L!==null;){if(L.key===je){if(je=Q.type,je===w){if(L.tag===7){r(B,L.sibling),se=u(L,Q.props.children),se.return=B,B=se;break e}}else if(L.elementType===je||typeof je=="object"&&je!==null&&je.$$typeof===I&&Bn(je)===L.type){r(B,L.sibling),se=u(L,Q.props),Go(se,Q),se.return=B,B=se;break e}r(B,L);break}else s(B,L);L=L.sibling}Q.type===w?(se=Ln(Q.props.children,B.mode,se,Q.key),se.return=B,B=se):(se=hc(Q.type,Q.key,Q.props,null,B.mode,se),Go(se,Q),se.return=B,B=se)}return v(B);case R:e:{for(je=Q.key;L!==null;){if(L.key===je)if(L.tag===4&&L.stateNode.containerInfo===Q.containerInfo&&L.stateNode.implementation===Q.implementation){r(B,L.sibling),se=u(L,Q.children||[]),se.return=B,B=se;break e}else{r(B,L);break}else s(B,L);L=L.sibling}se=tu(Q,B.mode,se),se.return=B,B=se}return v(B);case I:return Q=Bn(Q),$e(B,L,Q,se)}if(ge(Q))return xe(B,L,Q,se);if(ie(Q)){if(je=ie(Q),typeof je!="function")throw Error(i(150));return Q=je.call(Q),Ce(B,L,Q,se)}if(typeof Q.then=="function")return $e(B,L,jc(Q),se);if(Q.$$typeof===q)return $e(B,L,xc(B,Q),se);wc(B,Q)}return typeof Q=="string"&&Q!==""||typeof Q=="number"||typeof Q=="bigint"?(Q=""+Q,L!==null&&L.tag===6?(r(B,L.sibling),se=u(L,Q),se.return=B,B=se):(r(B,L),se=eu(Q,B.mode,se),se.return=B,B=se),v(B)):r(B,L)}return function(B,L,Q,se){try{Qo=0;var je=$e(B,L,Q,se);return Lr=null,je}catch(be){if(be===Dr||be===vc)throw be;var Be=na(29,be,null,B.mode);return Be.lanes=se,Be.return=B,Be}finally{}}}var Un=ef(!0),tf=ef(!1),Qs=!1;function pu(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function hu(t,s){t=t.updateQueue,s.updateQueue===t&&(s.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Gs(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Ys(t,s,r){var c=t.updateQueue;if(c===null)return null;if(c=c.shared,(Fe&2)!==0){var u=c.pending;return u===null?s.next=s:(s.next=u.next,u.next=s),c.pending=s,s=pc(t),zg(t,null,r),s}return mc(t,c,s,r),pc(t)}function Yo(t,s,r){if(s=s.updateQueue,s!==null&&(s=s.shared,(r&4194048)!==0)){var c=s.lanes;
vendor: 4,690 bytes, line 48
48c&=t.pendingLanes,r|=c,s.lanes=r,Qt(t,r)}}function gu(t,s){var r=t.updateQueue,c=t.alternate;if(c!==null&&(c=c.updateQueue,r===c)){var u=null,p=null;if(r=r.firstBaseUpdate,r!==null){do{var v={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};p===null?u=p=v:p=p.next=v,r=r.next}while(r!==null);p===null?u=p=s:p=p.next=s}else u=p=s;r={baseState:c.baseState,firstBaseUpdate:u,lastBaseUpdate:p,shared:c.shared,callbacks:c.callbacks},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=s:t.next=s,r.lastBaseUpdate=s}var fu=!1;function Ko(){if(fu){var t=Tr;if(t!==null)throw t}}function Jo(t,s,r,c){fu=!1;var u=t.updateQueue;Qs=!1;var p=u.firstBaseUpdate,v=u.lastBaseUpdate,S=u.shared.pending;if(S!==null){u.shared.pending=null;var T=S,G=T.next;T.next=null,v===null?p=G:v.next=G,v=T;var te=t.alternate;te!==null&&(te=te.updateQueue,S=te.lastBaseUpdate,S!==v&&(S===null?te.firstBaseUpdate=G:S.next=G,te.lastBaseUpdate=T))}if(p!==null){var ne=u.baseState;v=0,te=G=T=null,S=p;do{var J=S.lane&-536870913,X=J!==S.lane;if(X?(_e&J)===J:(c&J)===J){J!==0&&J===Mr&&(fu=!0),te!==null&&(te=te.next={lane:0,tag:S.tag,payload:S.payload,callback:null,next:null});e:{var xe=t,Ce=S;J=s;var $e=r;switch(Ce.tag){case 1:if(xe=Ce.payload,typeof xe=="function"){ne=xe.call($e,ne,J);break e}ne=xe;break e;case 3:xe.flags=xe.flags&-65537|128;case 0:if(xe=Ce.payload,J=typeof xe=="function"?xe.call($e,ne,J):xe,J==null)break e;ne=x({},ne,J);break e;case 2:Qs=!0}}J=S.callback,J!==null&&(t.flags|=64,X&&(t.flags|=8192),X=u.callbacks,X===null?u.callbacks=[J]:X.push(J))}else X={lane:J,tag:S.tag,payload:S.payload,callback:S.callback,next:null},te===null?(G=te=X,T=ne):te=te.next=X,v|=J;if(S=S.next,S===null){if(S=u.shared.pending,S===null)break;X=S,S=X.next,X.next=null,u.lastBaseUpdate=X,u.shared.pending=null}}while(!0);te===null&&(T=ne),u.baseState=T,u.firstBaseUpdate=G,u.lastBaseUpdate=te,p===null&&(u.shared.lanes=0),Xs|=v,t.lanes=v,t.memoizedState=ne}}function af(t,s){if(typeof t!="function")throw Error(i(191,t));t.call(s)}function sf(t,s){var r=t.callbacks;if(r!==null)for(t.callbacks=null,t=0;t<r.length;t++)af(r[t],s)}var Ir=P(null),Cc=P(0);function nf(t,s){t=Cs,F(Cc,t),F(Ir,s),Cs=t|s.baseLanes}function xu(){F(Cc,Cs),F(Ir,Ir.current)}function yu(){Cs=Cc.current,W(Ir),W(Cc)}var ra=P(null),Ca=null;function Ks(t){var s=t.alternate;F(ut,ut.current&1),F(ra,t),Ca===null&&(s===null||Ir.current!==null||s.memoizedState!==null)&&(Ca=t)}function vu(t){F(ut,ut.current),F(ra,t),Ca===null&&(Ca=t)}function rf(t){t.tag===22?(F(ut,ut.current),F(ra,t),Ca===null&&(Ca=t)):Js()}function Js(){F(ut,ut.current),F(ra,ra.current)}function oa(t){W(ra),Ca===t&&(Ca=null),W(ut)}var ut=P(0);function Sc(t){for(var s=t;s!==null;){if(s.tag===13){var r=s.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||Am(r)||Rm(r)))return s}else if(s.tag===19&&(s.memoizedProps.revealOrder==="forwards"||s.memoizedProps.revealOrder==="backwards"||s.memoizedProps.revealOrder==="unstable_legacy-backwards"||s.memoizedProps.revealOrder==="together")){if((s.flags&128)!==0)return s}else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break;for(;s.sibling===null;){if(s.return===null||s.return===t)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}var gs=0,Oe=null,Je=null,gt=null,Ac=!1,_r=!1,Vn=!1,Rc=0,Wo=0,zr=null,IC=0;function it(){throw Error(i(321))}function bu(t,s){if(s===null)return!1;for(var r=0;r<s.length&&r<t.length;r++)if(!sa(t[r],s[r]))return!1;return!0}function ju(t,s,r,c,u,p){return gs=p,Oe=s,s.memoizedState=null,s.updateQueue=null,s.lanes=0,A.H=t===null||t.memoizedState===null?Vf:Iu,Vn=!1,p=r(c,u),Vn=!1,_r&&(p=cf(s,r,c,u)),of(t),p}function of(t){A.H=Zo;var s=Je!==null&&Je.next!==null;if(gs=0,gt=Je=Oe=null,Ac=!1,Wo=0,zr=null,s)throw Error(i(300));t===null||ft||(t=t.dependencies,t!==null&&fc(t)&&(ft=!0))}function cf(t,s,r,c){Oe=t;var u=0;do{if(_r&&(zr=null),Wo=0,_r=!1,25<=u)throw Error(i(301));if(u+=1,gt=Je=null,t.updateQueue!=null){var p=t.updateQueue;p.lastEffect=null,p.events=null,p.stores=null,p.memoCache!=null&&(p.memoCache.index=0)}A.H=Ff,p=s(r,c)}while(_r);return p}function _C(){var t=A.H,s=t.useState()[0];return s=typeof s.then=="function"?$o(s):s,t=t.useState()[0],(Je!==null?Je.memoizedState:null)!==t&&(Oe.flags|=1024),s}function wu(){var t=Rc!==0;return Rc=0,t}function Cu(t,s,r){s.updateQueue=t.updateQueue,s.flags&=-2053,t.lanes&=~r}function Su(t){if(Ac){for(t=t.memoizedState;t!==null;){var s=t.queue;s!==null&&(s.pending=null),t=t.next}Ac=!1}gs=0,gt=Je=Oe=null,_r=!1,Wo=Rc=0,zr=null}function Bt(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return gt===null?Oe.memoizedState=gt=t:gt=gt.next=t,gt}
vendor: 18,184 bytes, line 48
48function mt(){if(Je===null){var t=Oe.alternate;t=t!==null?t.memoizedState:null}else t=Je.next;var s=gt===null?Oe.memoizedState:gt.next;if(s!==null)gt=s,Je=t;else{if(t===null)throw Oe.alternate===null?Error(i(467)):Error(i(310));Je=t,t={memoizedState:Je.memoizedState,baseState:Je.baseState,baseQueue:Je.baseQueue,queue:Je.queue,next:null},gt===null?Oe.memoizedState=gt=t:gt=gt.next=t}return gt}function Ec(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function $o(t){var s=Wo;return Wo+=1,zr===null&&(zr=[]),t=$g(zr,t,s),s=Oe,(gt===null?s.memoizedState:gt.next)===null&&(s=s.alternate,A.H=s===null||s.memoizedState===null?Vf:Iu),t}function Nc(t){if(t!==null&&typeof t=="object"){if(typeof t.then=="function")return $o(t);if(t.$$typeof===q)return Nt(t)}throw Error(i(438,String(t)))}function Au(t){var s=null,r=Oe.updateQueue;if(r!==null&&(s=r.memoCache),s==null){var c=Oe.alternate;c!==null&&(c=c.updateQueue,c!==null&&(c=c.memoCache,c!=null&&(s={data:c.data.map(function(u){return u.slice()}),index:0})))}if(s==null&&(s={data:[],index:0}),r===null&&(r=Ec(),Oe.updateQueue=r),r.memoCache=s,r=s.data[s.index],r===void 0)for(r=s.data[s.index]=Array(t),c=0;c<t;c++)r[c]=ae;return s.index++,r}function fs(t,s){return typeof s=="function"?s(t):s}function Pc(t){var s=mt();return Ru(s,Je,t)}function Ru(t,s,r){var c=t.queue;if(c===null)throw Error(i(311));c.lastRenderedReducer=r;var u=t.baseQueue,p=c.pending;if(p!==null){if(u!==null){var v=u.next;u.next=p.next,p.next=v}s.baseQueue=u=p,c.pending=null}if(p=t.baseState,u===null)t.memoizedState=p;else{s=u.next;var S=v=null,T=null,G=s,te=!1;do{var ne=G.lane&-536870913;if(ne!==G.lane?(_e&ne)===ne:(gs&ne)===ne){var J=G.revertLane;if(J===0)T!==null&&(T=T.next={lane:0,revertLane:0,gesture:null,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null}),ne===Mr&&(te=!0);else if((gs&J)===J){G=G.next,J===Mr&&(te=!0);continue}else ne={lane:0,revertLane:G.revertLane,gesture:null,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null},T===null?(S=T=ne,v=p):T=T.next=ne,Oe.lanes|=J,Xs|=J;ne=G.action,Vn&&r(p,ne),p=G.hasEagerState?G.eagerState:r(p,ne)}else J={lane:ne,revertLane:G.revertLane,gesture:G.gesture,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null},T===null?(S=T=J,v=p):T=T.next=J,Oe.lanes|=ne,Xs|=ne;G=G.next}while(G!==null&&G!==s);if(T===null?v=p:T.next=S,!sa(p,t.memoizedState)&&(ft=!0,te&&(r=Tr,r!==null)))throw r;t.memoizedState=p,t.baseState=v,t.baseQueue=T,c.lastRenderedState=p}return u===null&&(c.lanes=0),[t.memoizedState,c.dispatch]}function Eu(t){var s=mt(),r=s.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=t;var c=r.dispatch,u=r.pending,p=s.memoizedState;if(u!==null){r.pending=null;var v=u=u.next;do p=t(p,v.action),v=v.next;while(v!==u);sa(p,s.memoizedState)||(ft=!0),s.memoizedState=p,s.baseQueue===null&&(s.baseState=p),r.lastRenderedState=p}return[p,c]}function lf(t,s,r){var c=Oe,u=mt(),p=qe;if(p){if(r===void 0)throw Error(i(407));r=r()}else r=s();var v=!sa((Je||u).memoizedState,r);if(v&&(u.memoizedState=r,ft=!0),u=u.queue,Ou(mf.bind(null,c,u,t),[t]),u.getSnapshot!==s||v||gt!==null&>.memoizedState.tag&1){if(c.flags|=2048,qr(9,{destroy:void 0},uf.bind(null,c,u,r,s),null),Xe===null)throw Error(i(349));p||(gs&127)!==0||df(c,s,r)}return r}function df(t,s,r){t.flags|=16384,t={getSnapshot:s,value:r},s=Oe.updateQueue,s===null?(s=Ec(),Oe.updateQueue=s,s.stores=[t]):(r=s.stores,r===null?s.stores=[t]:r.push(t))}function uf(t,s,r,c){s.value=r,s.getSnapshot=c,pf(s)&&hf(t)}function mf(t,s,r){return r(function(){pf(s)&&hf(t)})}function pf(t){var s=t.getSnapshot;t=t.value;try{var r=s();return!sa(t,r)}catch{return!0}}function hf(t){var s=Dn(t,2);s!==null&&Zt(s,t,2)}function Nu(t){var s=Bt();if(typeof t=="function"){var r=t;if(t=r(),Vn){Oa(!0);try{r()}finally{Oa(!1)}}}return s.memoizedState=s.baseState=t,s.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:t},s}function gf(t,s,r,c){return t.baseState=r,Ru(t,Je,typeof c=="function"?c:fs)}function zC(t,s,r,c,u){if(Mc(t))throw Error(i(485));if(t=s.action,t!==null){var p={payload:u,action:t,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){p.listeners.push(v)}};A.T!==null?r(!0):p.isTransition=!1,c(p),r=s.pending,r===null?(p.next=s.pending=p,ff(s,p)):(p.next=r.next,s.pending=r.next=p)}}function ff(t,s){var r=s.action,c=s.payload,u=t.state;if(s.isTransition){var p=A.T,v={};A.T=v;try{var S=r(u,c),T=A.S;T!==null&&T(v,S),xf(t,s,S)}catch(G){Pu(t,s,G)}finally{p!==null&&v.types!==null&&(p.types=v.types),A.T=p}}else try{p=r(u,c),xf(t,s,p)}catch(G){Pu(t,s,G)}}function xf(t,s,r){r!==null&&typeof r=="object"&&typeof r.then=="function"?r.then(function(c){yf(t,s,c)},function(c){return Pu(t,s,c)}):yf(t,s,r)}function yf(t,s,r){s.status="fulfilled",s.value=r,vf(s),t.state=r,s=t.pending,s!==null&&(r=s.next,r===s?t.pending=null:(r=r.next,s.next=r,ff(t,r)))}function Pu(t,s,r){var c=t.pending;if(t.pending=null,c!==null){c=c.next;do s.status="rejected",s.reason=r,vf(s),s=s.next;while(s!==c)}t.action=null}function vf(t){t=t.listeners;for(var s=0;s<t.length;s++)(0,t[s])()}function bf(t,s){return s}function jf(t,s){if(qe){var r=Xe.formState;if(r!==null){e:{var c=Oe;if(qe){if(Ze){t:{for(var u=Ze,p=wa;u.nodeType!==8;){if(!p){u=null;break t}if(u=Sa(u.nextSibling),u===null){u=null;break t}}p=u.data,u=p==="F!"||p==="F"?u:null}if(u){Ze=Sa(u.nextSibling),c=u.data==="F!";break e}}Vs(c)}c=!1}c&&(s=r[0])}}return r=Bt(),r.memoizedState=r.baseState=s,c={pending:null,lanes:0,dispatch:null,lastRenderedReducer:bf,lastRenderedState:s},r.queue=c,r=Bf.bind(null,Oe,c),c.dispatch=r,c=Nu(!1),p=Lu.bind(null,Oe,!1,c.queue),c=Bt(),u={state:s,dispatch:null,action:t,pending:null},c.queue=u,r=zC.bind(null,Oe,u,p,r),u.dispatch=r,c.memoizedState=t,[s,r,!1]}function wf(t){var s=mt();return Cf(s,Je,t)}function Cf(t,s,r){if(s=Ru(t,s,bf)[0],t=Pc(fs)[0],typeof s=="object"&&s!==null&&typeof s.then=="function")try{var c=$o(s)}catch(v){throw v===Dr?vc:v}else c=s;s=mt();var u=s.queue,p=u.dispatch;return r!==s.memoizedState&&(Oe.flags|=2048,qr(9,{destroy:void 0},qC.bind(null,u,r),null)),[c,p,t]}function qC(t,s){t.action=s}function Sf(t){var s=mt(),r=Je;if(r!==null)return Cf(s,r,t);mt(),s=s.memoizedState,r=mt();var c=r.queue.dispatch;return r.memoizedState=t,[s,c,!1]}function qr(t,s,r,c){return t={tag:t,create:r,deps:c,inst:s,next:null},s=Oe.updateQueue,s===null&&(s=Ec(),Oe.updateQueue=s),r=s.lastEffect,r===null?s.lastEffect=t.next=t:(c=r.next,r.next=t,t.next=c,s.lastEffect=t),t}function Af(){return mt().memoizedState}function Oc(t,s,r,c){var u=Bt();Oe.flags|=t,u.memoizedState=qr(1|s,{destroy:void 0},r,c===void 0?null:c)}function kc(t,s,r,c){var u=mt();c=c===void 0?null:c;var p=u.memoizedState.inst;Je!==null&&c!==null&&bu(c,Je.memoizedState.deps)?u.memoizedState=qr(s,p,r,c):(Oe.flags|=t,u.memoizedState=qr(1|s,p,r,c))}function Rf(t,s){Oc(8390656,8,t,s)}function Ou(t,s){kc(2048,8,t,s)}function BC(t){Oe.flags|=4;var s=Oe.updateQueue;if(s===null)s=Ec(),Oe.updateQueue=s,s.events=[t];else{var r=s.events;r===null?s.events=[t]:r.push(t)}}function Ef(t){var s=mt().memoizedState;return BC({ref:s,nextImpl:t}),function(){if((Fe&2)!==0)throw Error(i(440));return s.impl.apply(void 0,arguments)}}function Nf(t,s){return kc(4,2,t,s)}function Pf(t,s){return kc(4,4,t,s)}function Of(t,s){if(typeof s=="function"){t=t();var r=s(t);return function(){typeof r=="function"?r():s(null)}}if(s!=null)return t=t(),s.current=t,function(){s.current=null}}function kf(t,s,r){r=r!=null?r.concat([t]):null,kc(4,4,Of.bind(null,s,t),r)}function ku(){}function Mf(t,s){var r=mt();s=s===void 0?null:s;var c=r.memoizedState;return s!==null&&bu(s,c[1])?c[0]:(r.memoizedState=[t,s],t)}function Tf(t,s){var r=mt();s=s===void 0?null:s;var c=r.memoizedState;if(s!==null&&bu(s,c[1]))return c[0];if(c=t(),Vn){Oa(!0);try{t()}finally{Oa(!1)}}return r.memoizedState=[c,s],c}function Mu(t,s,r){return r===void 0||(gs&1073741824)!==0&&(_e&261930)===0?t.memoizedState=s:(t.memoizedState=r,t=Dx(),Oe.lanes|=t,Xs|=t,r)}function Df(t,s,r,c){return sa(r,s)?r:Ir.current!==null?(t=Mu(t,r,c),sa(t,s)||(ft=!0),t):(gs&42)===0||(gs&1073741824)!==0&&(_e&261930)===0?(ft=!0,t.memoizedState=r):(t=Dx(),Oe.lanes|=t,Xs|=t,s)}function Lf(t,s,r,c,u){var p=_.p;_.p=p!==0&&8>p?p:8;var v=A.T,S={};A.T=S,Lu(t,!1,s,r);try{var T=u(),G=A.S;if(G!==null&&G(S,T),T!==null&&typeof T=="object"&&typeof T.then=="function"){var te=LC(T,c);Xo(t,s,te,la(t))}else Xo(t,s,c,la(t))}catch(ne){Xo(t,s,{then:function(){},status:"rejected",reason:ne},la())}finally{_.p=p,v!==null&&S.types!==null&&(v.types=S.types),A.T=v}}function HC(){}function Tu(t,s,r,c){if(t.tag!==5)throw Error(i(476));var u=If(t).queue;Lf(t,u,s,z,r===null?HC:function(){return _f(t),r(c)})}function If(t){var s=t.memoizedState;if(s!==null)return s;s={memoizedState:z,baseState:z,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:z},next:null};var r={};return s.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:r},next:null},t.memoizedState=s,t=t.alternate,t!==null&&(t.memoizedState=s),s}function _f(t){var s=If(t);s.next===null&&(s=t.alternate.memoizedState),Xo(t,s.next.queue,{},la())}function Du(){return Nt(gi)}function zf(){return mt().memoizedState}function qf(){return mt().memoizedState}function UC(t){for(var s=t.return;s!==null;){switch(s.tag){case 24:case 3:var r=la();t=Gs(r);var c=Ys(s,t,r);c!==null&&(Zt(c,s,r),Yo(c,s,r)),s={cache:lu()},t.payload=s;return}s=s.return}}function VC(t,s,r){var c=la();r={lane:c,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Mc(t)?Hf(s,r):(r=Xd(t,s,r,c),r!==null&&(Zt(r,t,c),Uf(r,s,c)))}function Bf(t,s,r){var c=la();Xo(t,s,r,c)}function Xo(t,s,r,c){var u={lane:c,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(Mc(t))Hf(s,u);else{var p=t.alternate;if(t.lanes===0&&(p===null||p.lanes===0)&&(p=s.lastRenderedReducer,p!==null))try{var v=s.lastRenderedState,S=p(v,r);if(u.hasEagerState=!0,u.eagerState=S,sa(S,v))return mc(t,s,u,0),Xe===null&&uc(),!1}catch{}finally{}if(r=Xd(t,s,u,c),r!==null)return Zt(r,t,c),Uf(r,s,c),!0}return!1}function Lu(t,s,r,c){if(c={lane:2,revertLane:pm(),gesture:null,action:c,hasEagerState:!1,eagerState:null,next:null},Mc(t)){if(s)throw Error(i(479))}else s=Xd(t,r,c,2),s!==null&&Zt(s,t,2)}function Mc(t){var s=t.alternate;return t===Oe||s!==null&&s===Oe}function Hf(t,s){_r=Ac=!0;var r=t.pending;r===null?s.next=s:(s.next=r.next,r.next=s),t.pending=s}function Uf(t,s,r){if((r&4194048)!==0){var c=s.lanes;c&=t.pendingLanes,r|=c,s.lanes=r,Qt(t,r)}}var Zo={readContext:Nt,use:Nc,useCallback:it,useContext:it,useEffect:it,useImperativeHandle:it,useLayoutEffect:it,useInsertionEffect:it,useMemo:it,useReducer:it,useRef:it,useState:it,useDebugValue:it,useDeferredValue:it,useTransition:it,useSyncExternalStore:it,useId:it,useHostTransitionStatus:it,useFormState:it,useActionState:it,useOptimistic:it,useMemoCache:it,useCacheRefresh:it};Zo.useEffectEvent=it;var Vf={readContext:Nt,use:Nc,useCallback:function(t,s){return Bt().memoizedState=[t,s===void 0?null:s],t},useContext:Nt,useEffect:Rf,useImperativeHandle:function(t,s,r){r=r!=null?r.concat([t]):null,Oc(4194308,4,Of.bind(null,s,t),r)},useLayoutEffect:function(t,s){return Oc(4194308,4,t,s)},useInsertionEffect:function(t,s){Oc(4,2,t,s)},useMemo:function(t,s){var r=Bt();s=s===void 0?null:s;var c=t();if(Vn){Oa(!0);try{t()}finally{Oa(!1)}}return r.memoizedState=[c,s],c},useReducer:function(t,s,r){var c=Bt();if(r!==void 0){var u=r(s);if(Vn){Oa(!0);try{r(s)}finally{Oa(!1)}}}else u=s;return c.memoizedState=c.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},c.queue=t,t=t.dispatch=VC.bind(null,Oe,t),[c.memoizedState,t]},useRef:function(t){var s=Bt();return t={current:t},s.memoizedState=t},useState:function(t){t=Nu(t);var s=t.queue,r=Bf.bind(null,Oe,s);return s.dispatch=r,[t.memoizedState,r]},useDebugValue:ku,useDeferredValue:function(t,s){var r=Bt();return Mu(r,t,s)},useTransition:function(){var t=Nu(!1);return t=Lf.bind(null,Oe,t.queue,!0,!1),Bt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,s,r){var c=Oe,u=Bt();if(qe){if(r===void 0)throw Error(i(407));r=r()}else{if(r=s(),Xe===null)throw Error(i(349));(_e&127)!==0||df(c,s,r)}u.memoizedState=r;var p={value:r,getSnapshot:s};return u.queue=p,Rf(mf.bind(null,c,p,t),[t]),c.flags|=2048,qr(9,{destroy:void 0},uf.bind(null,c,p,r,s),null),r},useId:function(){var t=Bt(),s=Xe.identifierPrefix;if(qe){var r=Qa,c=Fa;r=(c&~(1<<32-kt(c)-1)).toString(32)+r,s="_"+s+"R_"+r,r=Rc++,0<r&&(s+="H"+r.toString(32)),s+="_"}else r=IC++,s="_"+s+"r_"+r.toString(32)+"_";return t.memoizedState=s},useHostTransitionStatus:Du,useFormState:jf,useActionState:jf,useOptimistic:function(t){var s=Bt();s.memoizedState=s.baseState=t;var r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return s.queue=r,s=Lu.bind(null,Oe,!0,r),r.dispatch=s,[t,s]},useMemoCache:Au,useCacheRefresh:function(){return Bt().memoizedState=UC.bind(null,Oe)},useEffectEvent:function(t){var s=Bt(),r={impl:t};return s.memoizedState=r,function(){if((Fe&2)!==0)throw Error(i(440));return r.impl.apply(void 0,arguments)}}},Iu={readContext:Nt,use:Nc,useCallback:Mf,useContext:Nt,useEffect:Ou,useImperativeHandle:kf,useInsertionEffect:Nf,useLayoutEffect:Pf,useMemo:Tf,useReducer:Pc,useRef:Af,useState:function(){return Pc(fs)},useDebugValue:ku,useDeferredValue:function(t,s){var r=mt();return Df(r,Je.memoizedState,t,s)},useTransition:function(){var t=Pc(fs)[0],s=mt().memoizedState;return[typeof t=="boolean"?t:$o(t),s]},useSyncExternalStore:lf,useId:zf,useHostTransitionStatus:Du,useFormState:wf,useActionState:wf,useOptimistic:function(t,s){var r=mt();return gf(r,Je,t,s)},useMemoCache:Au,useCacheRefresh:qf};Iu.useEffectEvent=Ef;var Ff={readContext:Nt,use:Nc,useCallback:Mf,useContext:Nt,useEffect:Ou,useImperativeHandle:kf,useInsertionEffect:Nf,useLayoutEffect:Pf,useMemo:Tf,useReducer:Eu,useRef:Af,useState:function(){return Eu(fs)},useDebugValue:ku,useDeferredValue:function(t,s){var r=mt();return Je===null?Mu(r,t,s):Df(r,Je.memoizedState,t,s)},useTransition:function(){var t=Eu(fs)[0],s=mt().memoizedState;return[typeof t=="boolean"?t:$o(t),s]},useSyncExternalStore:lf,useId:zf,useHostTransitionStatus:Du,useFormState:Sf,useActionState:Sf,useOptimistic:function(t,s){var r=mt();return Je!==null?gf(r,Je,t,s):(r.baseState=t,[t,r.queue.dispatch])},useMemoCache:Au,useCacheRefresh:qf};Ff.useEffectEvent=Ef;function _u(t,s,r,c){s=t.memoizedState,r=r(c,s),r=r==null?s:x({},s,r),t.memoizedState=r,t.lanes===0&&(t.updateQueue.baseState=r)}var zu={enqueueSetState:function(t,s,r){t=t._reactInternals;var c=la(),u=Gs(c);u.payload=s,r!=null&&(u.callback=r),s=Ys(t,u,c),s!==null&&(Zt(s,t,c),Yo(s,t,c))},enqueueReplaceState:function(t,s,r){t=t._reactInternals;var c=la(),u=Gs(c);u.tag=1,u.payload=s,r!=null&&(u.callback=r),s=Ys(t,u,c),s!==null&&(Zt(s,t,c),Yo(s,t,c))},enqueueForceUpdate:function(t,s){t=t._reactInternals;var r=la(),c=Gs(r);c.tag=2,s!=null&&(c.callback=s),s=Ys(t,c,r),s!==null&&(Zt(s,t,r),Yo(s,t,r))}};function Qf(t,s,r,c,u,p,v){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(c,p,v):s.prototype&&s.prototype.isPureReactComponent?!qo(r,c)||!qo(u,p):!0}function Gf(t,s,r,c){t=s.state,typeof s.componentWillReceiveProps=="function"&&s.componentWillReceiveProps(r,c),typeof s.UNSAFE_componentWillReceiveProps=="function"&&s.UNSAFE_componentWillReceiveProps(r,c),s.state!==t&&zu.enqueueReplaceState(s,s.state,null)}function Fn(t,s){var r=s;if("ref"in s){r={};for(var c in s)c!=="ref"&&(r[c]=s[c])}if(t=t.defaultProps){r===s&&(r=x({},r));for(var u in t)r[u]===void 0&&(r[u]=t[u])}return r}function Yf(t){dc(t)}function Kf(t){console.error(t)}function Jf(t){dc(t)}function Tc(t,s){try{var r=t.onUncaughtError;r(s.value,{componentStack:s.stack})}catch(c){setTimeout(function(){throw c})}}function Wf(t,s,r){try{var c=t.onCaughtError;c(r.value,{componentStack:r.stack,errorBoundary:s.tag===1?s.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function qu(t,s,r){return r=Gs(r),r.tag=3,r.payload={element:null},r.callback=function(){Tc(t,s)},r}function $f(t){return t=Gs(t),t.tag=3,t}function Xf(t,s,r,c){var u=r.type.getDerivedStateFromError;if(typeof u=="function"){var p=c.value;t.payload=function(){return u(p)},t.callback=function(){Wf(s,r,c)}}var v=r.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(t.callback=function(){Wf(s,r,c),typeof u!="function"&&(Zs===null?Zs=new Set([this]):Zs.add(this));var S=c.stack;this.componentDidCatch(c.value,{componentStack:S!==null?S:""})})}function FC(t,s,r,c,u){if(r.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){if(s=r.alternate,s!==null&&kr(s,r,u,!0),r=ra.current,r!==null){switch(r.tag){case 31:case 13:return Ca===null?Qc():r.alternate===null&&ct===0&&(ct=3),r.flags&=-257,r.flags|=65536,r.lanes=u,c===bc?r.flags|=16384:(s=r.updateQueue,s===null?r.updateQueue=new Set([c]):s.add(c),dm(t,c,u)),!1;case 22:return r.flags|=65536,c===bc?r.flags|=16384:(s=r.updateQueue,s===null?(s={transitions:null,markerInstances:null,retryQueue:new Set([c])},r.updateQueue=s):(r=s.retryQueue,r===null?s.retryQueue=new Set([c]):r.add(c)),dm(t,c,u)),!1}throw Error(i(435,r.tag))}return dm(t,c,u),Qc(),!1}if(qe)return s=ra.current,s!==null?((s.flags&65536)===0&&(s.flags|=256),s.flags|=65536,s.lanes=u,c!==nu&&(t=Error(i(422),{cause:c}),Uo(va(t,r)))):(c!==nu&&(s=Error(i(423),{cause:c}),Uo(va(s,r))),t=t.current.alternate,t.flags|=65536,u&=-u,t.lanes|=u,c=va(c,r),u=qu(t.stateNode,c,u),gu(t,u),ct!==4&&(ct=2)),!1;var p=Error(i(520),{cause:c});if(p=va(p,r),ii===null?ii=[p]:ii.push(p),ct!==4&&(ct=2),s===null)return!0;c=va(c,r),r=s;do{switch(r.tag){case 3:return r.flags|=65536,t=u&-u,r.lanes|=t,t=qu(r.stateNode,c,t),gu(r,t),!1;case 1:if(s=r.type,p=r.stateNode,(r.flags&128)===0&&(typeof s.getDerivedStateFromError=="function"||p!==null&&typeof p.componentDidCatch=="function"&&(Zs===null||!Zs.has(p))))return r.flags|=65536,u&=-u,r.lanes|=u,u=$f(u),Xf(u,t,r,c),gu
vendor: 19,845 bytes, line 48
48(r,u),!1}r=r.return}while(r!==null);return!1}var Bu=Error(i(461)),ft=!1;function Pt(t,s,r,c){s.child=t===null?tf(s,null,r,c):Un(s,t.child,r,c)}function Zf(t,s,r,c,u){r=r.render;var p=s.ref;if("ref"in c){var v={};for(var S in c)S!=="ref"&&(v[S]=c[S])}else v=c;return zn(s),c=ju(t,s,r,v,p,u),S=wu(),t!==null&&!ft?(Cu(t,s,u),xs(t,s,u)):(qe&&S&&au(s),s.flags|=1,Pt(t,s,c,u),s.child)}function ex(t,s,r,c,u){if(t===null){var p=r.type;return typeof p=="function"&&!Zd(p)&&p.defaultProps===void 0&&r.compare===null?(s.tag=15,s.type=p,tx(t,s,p,c,u)):(t=hc(r.type,null,c,s,s.mode,u),t.ref=s.ref,t.return=s,s.child=t)}if(p=t.child,!Ku(t,u)){var v=p.memoizedProps;if(r=r.compare,r=r!==null?r:qo,r(v,c)&&t.ref===s.ref)return xs(t,s,u)}return s.flags|=1,t=us(p,c),t.ref=s.ref,t.return=s,s.child=t}function tx(t,s,r,c,u){if(t!==null){var p=t.memoizedProps;if(qo(p,c)&&t.ref===s.ref)if(ft=!1,s.pendingProps=c=p,Ku(t,u))(t.flags&131072)!==0&&(ft=!0);else return s.lanes=t.lanes,xs(t,s,u)}return Hu(t,s,r,c,u)}function ax(t,s,r,c){var u=c.children,p=t!==null?t.memoizedState:null;if(t===null&&s.stateNode===null&&(s.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),c.mode==="hidden"){if((s.flags&128)!==0){if(p=p!==null?p.baseLanes|r:r,t!==null){for(c=s.child=t.child,u=0;c!==null;)u=u|c.lanes|c.childLanes,c=c.sibling;c=u&~p}else c=0,s.child=null;return sx(t,s,p,r,c)}if((r&536870912)!==0)s.memoizedState={baseLanes:0,cachePool:null},t!==null&&yc(s,p!==null?p.cachePool:null),p!==null?nf(s,p):xu(),rf(s);else return c=s.lanes=536870912,sx(t,s,p!==null?p.baseLanes|r:r,r,c)}else p!==null?(yc(s,p.cachePool),nf(s,p),Js(),s.memoizedState=null):(t!==null&&yc(s,null),xu(),Js());return Pt(t,s,u,r),s.child}function ei(t,s){return t!==null&&t.tag===22||s.stateNode!==null||(s.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),s.sibling}function sx(t,s,r,c,u){var p=uu();return p=p===null?null:{parent:ht._currentValue,pool:p},s.memoizedState={baseLanes:r,cachePool:p},t!==null&&yc(s,null),xu(),rf(s),t!==null&&kr(t,s,c,!0),s.childLanes=u,null}function Dc(t,s){return s=Ic({mode:s.mode,children:s.children},t.mode),s.ref=t.ref,t.child=s,s.return=t,s}function nx(t,s,r){return Un(s,t.child,null,r),t=Dc(s,s.pendingProps),t.flags|=2,oa(s),s.memoizedState=null,t}function QC(t,s,r){var c=s.pendingProps,u=(s.flags&128)!==0;if(s.flags&=-129,t===null){if(qe){if(c.mode==="hidden")return t=Dc(s,c),s.lanes=536870912,ei(null,t);if(vu(s),(t=Ze)?(t=fy(t,wa),t=t!==null&&t.data==="&"?t:null,t!==null&&(s.memoizedState={dehydrated:t,treeContext:Hs!==null?{id:Fa,overflow:Qa}:null,retryLane:536870912,hydrationErrors:null},r=Bg(t),r.return=s,s.child=r,Et=s,Ze=null)):t=null,t===null)throw Vs(s);return s.lanes=536870912,null}return Dc(s,c)}var p=t.memoizedState;if(p!==null){var v=p.dehydrated;if(vu(s),u)if(s.flags&256)s.flags&=-257,s=nx(t,s,r);else if(s.memoizedState!==null)s.child=t.child,s.flags|=128,s=null;else throw Error(i(558));else if(ft||kr(t,s,r,!1),u=(r&t.childLanes)!==0,ft||u){if(c=Xe,c!==null&&(v=Gt(c,r),v!==0&&v!==p.retryLane))throw p.retryLane=v,Dn(t,v),Zt(c,t,v),Bu;Qc(),s=nx(t,s,r)}else t=p.treeContext,Ze=Sa(v.nextSibling),Et=s,qe=!0,Us=null,wa=!1,t!==null&&Vg(s,t),s=Dc(s,c),s.flags|=4096;return s}return t=us(t.child,{mode:c.mode,children:c.children}),t.ref=s.ref,s.child=t,t.return=s,t}function Lc(t,s){var r=s.ref;if(r===null)t!==null&&t.ref!==null&&(s.flags|=4194816);else{if(typeof r!="function"&&typeof r!="object")throw Error(i(284));(t===null||t.ref!==r)&&(s.flags|=4194816)}}function Hu(t,s,r,c,u){return zn(s),r=ju(t,s,r,c,void 0,u),c=wu(),t!==null&&!ft?(Cu(t,s,u),xs(t,s,u)):(qe&&c&&au(s),s.flags|=1,Pt(t,s,r,u),s.child)}function rx(t,s,r,c,u,p){return zn(s),s.updateQueue=null,r=cf(s,c,r,u),of(t),c=wu(),t!==null&&!ft?(Cu(t,s,p),xs(t,s,p)):(qe&&c&&au(s),s.flags|=1,Pt(t,s,r,p),s.child)}function ox(t,s,r,c,u){if(zn(s),s.stateNode===null){var p=Er,v=r.contextType;typeof v=="object"&&v!==null&&(p=Nt(v)),p=new r(c,p),s.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,p.updater=zu,s.stateNode=p,p._reactInternals=s,p=s.stateNode,p.props=c,p.state=s.memoizedState,p.refs={},pu(s),v=r.contextType,p.context=typeof v=="object"&&v!==null?Nt(v):Er,p.state=s.memoizedState,v=r.getDerivedStateFromProps,typeof v=="function"&&(_u(s,r,v,c),p.state=s.memoizedState),typeof r.getDerivedStateFromProps=="function"||typeof p.getSnapshotBeforeUpdate=="function"||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(v=p.state,typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount(),v!==p.state&&zu.enqueueReplaceState(p,p.state,null),Jo(s,c,p,u),Ko(),p.state=s.memoizedState),typeof p.componentDidMount=="function"&&(s.flags|=4194308),c=!0}else if(t===null){p=s.stateNode;var S=s.memoizedProps,T=Fn(r,S);p.props=T;var G=p.context,te=r.contextType;v=Er,typeof te=="object"&&te!==null&&(v=Nt(te));var ne=r.getDerivedStateFromProps;te=typeof ne=="function"||typeof p.getSnapshotBeforeUpdate=="function",S=s.pendingProps!==S,te||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(S||G!==v)&&Gf(s,p,c,v),Qs=!1;var J=s.memoizedState;p.state=J,Jo(s,c,p,u),Ko(),G=s.memoizedState,S||J!==G||Qs?(typeof ne=="function"&&(_u(s,r,ne,c),G=s.memoizedState),(T=Qs||Qf(s,r,T,c,J,G,v))?(te||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount()),typeof p.componentDidMount=="function"&&(s.flags|=4194308)):(typeof p.componentDidMount=="function"&&(s.flags|=4194308),s.memoizedProps=c,s.memoizedState=G),p.props=c,p.state=G,p.context=v,c=T):(typeof p.componentDidMount=="function"&&(s.flags|=4194308),c=!1)}else{p=s.stateNode,hu(t,s),v=s.memoizedProps,te=Fn(r,v),p.props=te,ne=s.pendingProps,J=p.context,G=r.contextType,T=Er,typeof G=="object"&&G!==null&&(T=Nt(G)),S=r.getDerivedStateFromProps,(G=typeof S=="function"||typeof p.getSnapshotBeforeUpdate=="function")||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(v!==ne||J!==T)&&Gf(s,p,c,T),Qs=!1,J=s.memoizedState,p.state=J,Jo(s,c,p,u),Ko();var X=s.memoizedState;v!==ne||J!==X||Qs||t!==null&&t.dependencies!==null&&fc(t.dependencies)?(typeof S=="function"&&(_u(s,r,S,c),X=s.memoizedState),(te=Qs||Qf(s,r,te,c,J,X,T)||t!==null&&t.dependencies!==null&&fc(t.dependencies))?(G||typeof p.UNSAFE_componentWillUpdate!="function"&&typeof p.componentWillUpdate!="function"||(typeof p.componentWillUpdate=="function"&&p.componentWillUpdate(c,X,T),typeof p.UNSAFE_componentWillUpdate=="function"&&p.UNSAFE_componentWillUpdate(c,X,T)),typeof p.componentDidUpdate=="function"&&(s.flags|=4),typeof p.getSnapshotBeforeUpdate=="function"&&(s.flags|=1024)):(typeof p.componentDidUpdate!="function"||v===t.memoizedProps&&J===t.memoizedState||(s.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||v===t.memoizedProps&&J===t.memoizedState||(s.flags|=1024),s.memoizedProps=c,s.memoizedState=X),p.props=c,p.state=X,p.context=T,c=te):(typeof p.componentDidUpdate!="function"||v===t.memoizedProps&&J===t.memoizedState||(s.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||v===t.memoizedProps&&J===t.memoizedState||(s.flags|=1024),c=!1)}return p=c,Lc(t,s),c=(s.flags&128)!==0,p||c?(p=s.stateNode,r=c&&typeof r.getDerivedStateFromError!="function"?null:p.render(),s.flags|=1,t!==null&&c?(s.child=Un(s,t.child,null,u),s.child=Un(s,null,r,u)):Pt(t,s,r,u),s.memoizedState=p.state,t=s.child):t=xs(t,s,u),t}function ix(t,s,r,c){return In(),s.flags|=256,Pt(t,s,r,c),s.child}var Uu={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Vu(t){return{baseLanes:t,cachePool:Jg()}}function Fu(t,s,r){return t=t!==null?t.childLanes&~r:0,s&&(t|=ca),t}function cx(t,s,r){var c=s.pendingProps,u=!1,p=(s.flags&128)!==0,v;if((v=p)||(v=t!==null&&t.memoizedState===null?!1:(ut.current&2)!==0),v&&(u=!0,s.flags&=-129),v=(s.flags&32)!==0,s.flags&=-33,t===null){if(qe){if(u?Ks(s):Js(),(t=Ze)?(t=fy(t,wa),t=t!==null&&t.data!=="&"?t:null,t!==null&&(s.memoizedState={dehydrated:t,treeContext:Hs!==null?{id:Fa,overflow:Qa}:null,retryLane:536870912,hydrationErrors:null},r=Bg(t),r.return=s,s.child=r,Et=s,Ze=null)):t=null,t===null)throw Vs(s);return Rm(t)?s.lanes=32:s.lanes=536870912,null}var S=c.children;return c=c.fallback,u?(Js(),u=s.mode,S=Ic({mode:"hidden",children:S},u),c=Ln(c,u,r,null),S.return=s,c.return=s,S.sibling=c,s.child=S,c=s.child,c.memoizedState=Vu(r),c.childLanes=Fu(t,v,r),s.memoizedState=Uu,ei(null,c)):(Ks(s),Qu(s,S))}var T=t.memoizedState;if(T!==null&&(S=T.dehydrated,S!==null)){if(p)s.flags&256?(Ks(s),s.flags&=-257,s=Gu(t,s,r)):s.memoizedState!==null?(Js(),s.child=t.child,s.flags|=128,s=null):(Js(),S=c.fallback,u=s.mode,c=Ic({mode:"visible",children:c.children},u),S=Ln(S,u,r,null),S.flags|=2,c.return=s,S.return=s,c.sibling=S,s.child=c,Un(s,t.child,null,r),c=s.child,c.memoizedState=Vu(r),c.childLanes=Fu(t,v,r),s.memoizedState=Uu,s=ei(null,c));else if(Ks(s),Rm(S)){if(v=S.nextSibling&&S.nextSibling.dataset,v)var G=v.dgst;v=G,c=Error(i(419)),c.stack="",c.digest=v,Uo({value:c,source:null,stack:null}),s=Gu(t,s,r)}else if(ft||kr(t,s,r,!1),v=(r&t.childLanes)!==0,ft||v){if(v=Xe,v!==null&&(c=Gt(v,r),c!==0&&c!==T.retryLane))throw T.retryLane=c,Dn(t,c),Zt(v,t,c),Bu;Am(S)||Qc(),s=Gu(t,s,r)}else Am(S)?(s.flags|=192,s.child=t.child,s=null):(t=T.treeContext,Ze=Sa(S.nextSibling),Et=s,qe=!0,Us=null,wa=!1,t!==null&&Vg(s,t),s=Qu(s,c.children),s.flags|=4096);return s}return u?(Js(),S=c.fallback,u=s.mode,T=t.child,G=T.sibling,c=us(T,{mode:"hidden",children:c.children}),c.subtreeFlags=T.subtreeFlags&65011712,G!==null?S=us(G,S):(S=Ln(S,u,r,null),S.flags|=2),S.return=s,c.return=s,c.sibling=S,s.child=c,ei(null,c),c=s.child,S=t.child.memoizedState,S===null?S=Vu(r):(u=S.cachePool,u!==null?(T=ht._currentValue,u=u.parent!==T?{parent:T,pool:T}:u):u=Jg(),S={baseLanes:S.baseLanes|r,cachePool:u}),c.memoizedState=S,c.childLanes=Fu(t,v,r),s.memoizedState=Uu,ei(t.child,c)):(Ks(s),r=t.child,t=r.sibling,r=us(r,{mode:"visible",children:c.children}),r.return=s,r.sibling=null,t!==null&&(v=s.deletions,v===null?(s.deletions=[t],s.flags|=16):v.push(t)),s.child=r,s.memoizedState=null,r)}function Qu(t,s){return s=Ic({mode:"visible",children:s},t.mode),s.return=t,t.child=s}function Ic(t,s){return t=na(22,t,null,s),t.lanes=0,t}function Gu(t,s,r){return Un(s,t.child,null,r),t=Qu(s,s.pendingProps.children),t.flags|=2,s.memoizedState=null,t}function lx(t,s,r){t.lanes|=s;var c=t.alternate;c!==null&&(c.lanes|=s),iu(t.return,s,r)}function Yu(t,s,r,c,u,p){var v=t.memoizedState;v===null?t.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:c,tail:r,tailMode:u,treeForkCount:p}:(v.isBackwards=s,v.rendering=null,v.renderingStartTime=0,v.last=c,v.tail=r,v.tailMode=u,v.treeForkCount=p)}function dx(t,s,r){var c=s.pendingProps,u=c.revealOrder,p=c.tail;c=c.children;var v=ut.current,S=(v&2)!==0;if(S?(v=v&1|2,s.flags|=128):v&=1,F(ut,v),Pt(t,s,c,r),c=qe?Ho:0,!S&&t!==null&&(t.flags&128)!==0)e:for(t=s.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&lx(t,r,s);else if(t.tag===19)lx(t,r,s);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===s)break e;for(;t.sibling===null;){if(t.return===null||t.return===s)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}switch(u){case"forwards":for(r=s.child,u=null;r!==null;)t=r.alternate,t!==null&&Sc(t)===null&&(u=r),r=r.sibling;r=u,r===null?(u=s.child,s.child=null):(u=r.sibling,r.sibling=null),Yu(s,!1,u,r,p,c);break;case"backwards":case"unstable_legacy-backwards":for(r=null,u=s.child,s.child=null;u!==null;){if(t=u.alternate,t!==null&&Sc(t)===null){s.child=u;break}t=u.sibling,u.sibling=r,r=u,u=t}Yu(s,!0,r,null,p,c);break;case"together":Yu(s,!1,null,null,void 0,c);break;default:s.memoizedState=null}return s.child}function xs(t,s,r){if(t!==null&&(s.dependencies=t.dependencies),Xs|=s.lanes,(r&s.childLanes)===0)if(t!==null){if(kr(t,s,r,!1),(r&s.childLanes)===0)return null}else return null;if(t!==null&&s.child!==t.child)throw Error(i(153));if(s.child!==null){for(t=s.child,r=us(t,t.pendingProps),s.child=r,r.return=s;t.sibling!==null;)t=t.sibling,r=r.sibling=us(t,t.pendingProps),r.return=s;r.sibling=null}return s.child}function Ku(t,s){return(t.lanes&s)!==0?!0:(t=t.dependencies,!!(t!==null&&fc(t)))}function GC(t,s,r){switch(s.tag){case 3:we(s,s.stateNode.containerInfo),Fs(s,ht,t.memoizedState.cache),In();break;case 27:case 5:dt(s);break;case 4:we(s,s.stateNode.containerInfo);break;case 10:Fs(s,s.type,s.memoizedProps.value);break;case 31:if(s.memoizedState!==null)return s.flags|=128,vu(s),null;break;case 13:var c=s.memoizedState;if(c!==null)return c.dehydrated!==null?(Ks(s),s.flags|=128,null):(r&s.child.childLanes)!==0?cx(t,s,r):(Ks(s),t=xs(t,s,r),t!==null?t.sibling:null);Ks(s);break;case 19:var u=(t.flags&128)!==0;if(c=(r&s.childLanes)!==0,c||(kr(t,s,r,!1),c=(r&s.childLanes)!==0),u){if(c)return dx(t,s,r);s.flags|=128}if(u=s.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),F(ut,ut.current),c)break;return null;case 22:return s.lanes=0,ax(t,s,r,s.pendingProps);case 24:Fs(s,ht,t.memoizedState.cache)}return xs(t,s,r)}function ux(t,s,r){if(t!==null)if(t.memoizedProps!==s.pendingProps)ft=!0;else{if(!Ku(t,r)&&(s.flags&128)===0)return ft=!1,GC(t,s,r);ft=(t.flags&131072)!==0}else ft=!1,qe&&(s.flags&1048576)!==0&&Ug(s,Ho,s.index);switch(s.lanes=0,s.tag){case 16:e:{var c=s.pendingProps;if(t=Bn(s.elementType),s.type=t,typeof t=="function")Zd(t)?(c=Fn(t,c),s.tag=1,s=ox(null,s,t,c,r)):(s.tag=0,s=Hu(null,s,t,c,r));else{if(t!=null){var u=t.$$typeof;if(u===K){s.tag=11,s=Zf(null,s,t,c,r);break e}else if(u===M){s.tag=14,s=ex(null,s,t,c,r);break e}}throw s=pe(t)||t,Error(i(306,s,""))}}return s;case 0:return Hu(t,s,s.type,s.pendingProps,r);case 1:return c=s.type,u=Fn(c,s.pendingProps),ox(t,s,c,u,r);case 3:e:{if(we(s,s.stateNode.containerInfo),t===null)throw Error(i(387));c=s.pendingProps;var p=s.memoizedState;u=p.element,hu(t,s),Jo(s,c,null,r);var v=s.memoizedState;if(c=v.cache,Fs(s,ht,c),c!==p.cache&&cu(s,[ht],r,!0),Ko(),c=v.element,p.isDehydrated)if(p={element:c,isDehydrated:!1,cache:v.cache},s.updateQueue.baseState=p,s.memoizedState=p,s.flags&256){s=ix(t,s,c,r);break e}else if(c!==u){u=va(Error(i(424)),s),Uo(u),s=ix(t,s,c,r);break e}else{switch(t=s.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(Ze=Sa(t.firstChild),Et=s,qe=!0,Us=null,wa=!0,r=tf(s,null,c,r),s.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling}else{if(In(),c===u){s=xs(t,s,r);break e}Pt(t,s,c,r)}s=s.child}return s;case 26:return Lc(t,s),t===null?(r=wy(s.type,null,s.pendingProps,null))?s.memoizedState=r:qe||(r=s.type,t=s.pendingProps,c=Xc(oe.current).createElement(r),c[Rt]=s,c[Yt]=t,Ot(c,r,t),St(c),s.stateNode=c):s.memoizedState=wy(s.type,t.memoizedProps,s.pendingProps,t.memoizedState),null;case 27:return dt(s),t===null&&qe&&(c=s.stateNode=vy(s.type,s.pendingProps,oe.current),Et=s,wa=!0,u=Ze,sn(s.type)?(Em=u,Ze=Sa(c.firstChild)):Ze=u),Pt(t,s,s.pendingProps.children,r),Lc(t,s),t===null&&(s.flags|=4194304),s.child;case 5:return t===null&&qe&&((u=c=Ze)&&(c=wS(c,s.type,s.pendingProps,wa),c!==null?(s.stateNode=c,Et=s,Ze=Sa(c.firstChild),wa=!1,u=!0):u=!1),u||Vs(s)),dt(s),u=s.type,p=s.pendingProps,v=t!==null?t.memoizedProps:null,c=p.children,wm(u,p)?c=null:v!==null&&wm(u,v)&&(s.flags|=32),s.memoizedState!==null&&(u=ju(t,s,_C,null,null,r),gi._currentValue=u),Lc(t,s),Pt(t,s,c,r),s.child;case 6:return t===null&&qe&&((t=r=Ze)&&(r=CS(r,s.pendingProps,wa),r!==null?(s.stateNode=r,Et=s,Ze=null,t=!0):t=!1),t||Vs(s)),null;case 13:return cx(t,s,r);case 4:return we(s,s.stateNode.containerInfo),c=s.pendingProps,t===null?s.child=Un(s,null,c,r):Pt(t,s,c,r),s.child;case 11:return Zf(t,s,s.type,s.pendingProps,r);case 7:return Pt(t,s,s.pendingProps,r),s.child;case 8:return Pt(t,s,s.pendingProps.children,r),s.child;case 12:return Pt(t,s,s.pendingProps.children,r),s.child;case 10:return c=s.pendingProps,Fs(s,s.type,c.value),Pt(t,s,c.children,r),s.child;case 9:return u=s.type._context,c=s.pendingProps.children,zn(s),u=Nt(u),c=c(u),s.flags|=1,Pt(t,s,c,r),s.child;case 14:return ex(t,s,s.type,s.pendingProps,r);case 15:return tx(t,s,s.type,s.pendingProps,r);case 19:return dx(t,s,r);case 31:return QC(t,s,r);case 22:return ax(t,s,r,s.pendingProps);case 24:return zn(s),c=Nt(ht),t===null?(u=uu(),u===null&&(u=Xe,p=lu(),u.pooledCache=p,p.refCount++,p!==null&&(u.pooledCacheLanes|=r),u=p),s.memoizedState={parent:c,cache:u},pu(s),Fs(s,ht,u)):((t.lanes&r)!==0&&(hu(t,s),Jo(s,null,null,r),Ko()),u=t.memoizedState,p=s.memoizedState,u.parent!==c?(u={parent:c,cache:c},s.memoizedState=u,s.lanes===0&&(s.memoizedState=s.updateQueue.baseState=u),Fs(s,ht,c)):(c=p.cache,Fs(s,ht,c),c!==u.cache&&cu(s,[ht],r,!0))),Pt(t,s,s.pendingProps.children,r),s.child;case 29:throw s.pendingProps}throw Error(i(156,s.tag))}function ys(t){t.flags|=4}function Ju(t,s,r,c,u){if((s=(t.mode&32)!==0)&&(s=!1),s){if(t.flags|=16777216,(u&335544128)===u)if(t.stateNode.complete)t.flags|=8192;else if(zx())t.flags|=8192;else throw Hn=bc,mu}else t.flags&=-16777217}function mx(t,s){if(s.type!=="stylesheet"||(s.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!Ey(s))if(zx())t.flags|=8192;else throw Hn=bc,mu}function _c(t,s){s!==null&&(t.flags|=4),t.flags&16384&&(s=t.tag!==22?Mt():536870912,t.lanes|=s,Vr|=s)}function ti(t,s){if(!qe)switch(t.tailMode){case"hidden":s=t.tail;for(var r=null;s!==null;)s.alternate!==null&&(r=s),s=s.sibling;r===null?t.tail=null:r.sibling=null;break;case"collapsed":r=t.tail;for(var c=null;r!==null;)r.alternate!==null&&(c=r),r=r.sibling;c===null?s||t.tail===null?t.tail=null:t.tail.sibling=null:c.sibling=null}}function et(t){var s=t.alternate!==null&&t.alternate.child===t.child,r=0,c=0;if(s)for(var u=t.child;u!==null;)r|=u.lanes|u.childLanes,c|=u.subtreeFlags&65011712,c|=u.flags&65011712,u.return=t,u=u.sibling;else for(u=t.child;u!==null;)r|=u.lanes|u.childLanes,c|=u.subtreeFlags,c|=u.flags,u.return=t,u=u.sibling;return t.subtreeFlags|=c,t.childLanes=r,s}function YC(t,s,r){var c=s.pendingProps;switch(su(s),s.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return et(s),null;case 1:return et(s),null;case 3:return r=s.stateNode,c=null,t!==null&&(c=t.memoizedState.cache),s.memoizedState.cache!==c&&(s.flags|=2048),hs(ht),Me(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(t===null||t.child===null)&&(Or(s)?ys(s):t===null||t.memoizedState.isDehydrated&&(s.flags&256)===0||(s.flags|=1024,ru())),et(s),null;case 26:var u=s.type,p=s.memoizedState;return t===null?(ys(s),p!==null?(et(s),mx(s,p)):(et(s),Ju(s,u,null,c,r))):p?p!==t.memoizedState?(ys(s),et(s),mx(s,p)):(et(s),s.flags&=-16777217):(t=t.memoizedProps,t!==c&&ys(s),et(s),Ju(s,u,t,c,r)),null;case 27:if(wt(s),r=oe.current,u=s.type,t!==null&&s.stateNode!=null)t.memoizedProps!==c&&ys(s);else{if(!c){if(s.stateNode===null)throw Error(i(166));return et(s),null}t=$.current,Or(s)?Fg(s):(t=vy(u,c,r),s.stateNode=t,ys(s))}return et(s),null;case 5:if(wt(s),u=s.type,t!==null&&s.stateNode!=null)t.memoizedProps!==c&&ys(s);else{if(!c){if(s.stateNode===null)throw Error(i(166));return et(s),null}if(p=$.current,Or(s))Fg(s);else{var v=Xc(oe.current);switch(p){case 1:p=v.createElementNS("http://www.w3.org/2000/svg",u);break;case 2:p=v.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;default:switch(u){case"svg":p=v.createElementNS("http://www.w3.org/2000/svg",u);break;case"math":p=v.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;case"script":p=v.createElement("div"),p.innerHTML="<script><\/script>",p=p.removeChild(p.firstChild);break;
vendor: 12,725 bytes, line 48
48case"select":p=typeof c.is=="string"?v.createElement("select",{is:c.is}):v.createElement("select"),c.multiple?p.multiple=!0:c.size&&(p.size=c.size);break;default:p=typeof c.is=="string"?v.createElement(u,{is:c.is}):v.createElement(u)}}p[Rt]=s,p[Yt]=c;e:for(v=s.child;v!==null;){if(v.tag===5||v.tag===6)p.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===s)break e;for(;v.sibling===null;){if(v.return===null||v.return===s)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}s.stateNode=p;e:switch(Ot(p,u,c),u){case"button":case"input":case"select":case"textarea":c=!!c.autoFocus;break e;case"img":c=!0;break e;default:c=!1}c&&ys(s)}}return et(s),Ju(s,s.type,t===null?null:t.memoizedProps,s.pendingProps,r),null;case 6:if(t&&s.stateNode!=null)t.memoizedProps!==c&&ys(s);else{if(typeof c!="string"&&s.stateNode===null)throw Error(i(166));if(t=oe.current,Or(s)){if(t=s.stateNode,r=s.memoizedProps,c=null,u=Et,u!==null)switch(u.tag){case 27:case 5:c=u.memoizedProps}t[Rt]=s,t=!!(t.nodeValue===r||c!==null&&c.suppressHydrationWarning===!0||cy(t.nodeValue,r)),t||Vs(s,!0)}else t=Xc(t).createTextNode(c),t[Rt]=s,s.stateNode=t}return et(s),null;case 31:if(r=s.memoizedState,t===null||t.memoizedState!==null){if(c=Or(s),r!==null){if(t===null){if(!c)throw Error(i(318));if(t=s.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(i(557));t[Rt]=s}else In(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;et(s),t=!1}else r=ru(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=r),t=!0;if(!t)return s.flags&256?(oa(s),s):(oa(s),null);if((s.flags&128)!==0)throw Error(i(558))}return et(s),null;case 13:if(c=s.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(u=Or(s),c!==null&&c.dehydrated!==null){if(t===null){if(!u)throw Error(i(318));if(u=s.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[Rt]=s}else In(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;et(s),u=!1}else u=ru(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=u),u=!0;if(!u)return s.flags&256?(oa(s),s):(oa(s),null)}return oa(s),(s.flags&128)!==0?(s.lanes=r,s):(r=c!==null,t=t!==null&&t.memoizedState!==null,r&&(c=s.child,u=null,c.alternate!==null&&c.alternate.memoizedState!==null&&c.alternate.memoizedState.cachePool!==null&&(u=c.alternate.memoizedState.cachePool.pool),p=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(p=c.memoizedState.cachePool.pool),p!==u&&(c.flags|=2048)),r!==t&&r&&(s.child.flags|=8192),_c(s,s.updateQueue),et(s),null);case 4:return Me(),t===null&&xm(s.stateNode.containerInfo),et(s),null;case 10:return hs(s.type),et(s),null;case 19:if(W(ut),c=s.memoizedState,c===null)return et(s),null;if(u=(s.flags&128)!==0,p=c.rendering,p===null)if(u)ti(c,!1);else{if(ct!==0||t!==null&&(t.flags&128)!==0)for(t=s.child;t!==null;){if(p=Sc(t),p!==null){for(s.flags|=128,ti(c,!1),t=p.updateQueue,s.updateQueue=t,_c(s,t),s.subtreeFlags=0,t=r,r=s.child;r!==null;)qg(r,t),r=r.sibling;return F(ut,ut.current&1|2),qe&&ms(s,c.treeForkCount),s.child}t=t.sibling}c.tail!==null&&zt()>Uc&&(s.flags|=128,u=!0,ti(c,!1),s.lanes=4194304)}else{if(!u)if(t=Sc(p),t!==null){if(s.flags|=128,u=!0,t=t.updateQueue,s.updateQueue=t,_c(s,t),ti(c,!0),c.tail===null&&c.tailMode==="hidden"&&!p.alternate&&!qe)return et(s),null}else 2*zt()-c.renderingStartTime>Uc&&r!==536870912&&(s.flags|=128,u=!0,ti(c,!1),s.lanes=4194304);c.isBackwards?(p.sibling=s.child,s.child=p):(t=c.last,t!==null?t.sibling=p:s.child=p,c.last=p)}return c.tail!==null?(t=c.tail,c.rendering=t,c.tail=t.sibling,c.renderingStartTime=zt(),t.sibling=null,r=ut.current,F(ut,u?r&1|2:r&1),qe&&ms(s,c.treeForkCount),t):(et(s),null);case 22:case 23:return oa(s),yu(),c=s.memoizedState!==null,t!==null?t.memoizedState!==null!==c&&(s.flags|=8192):c&&(s.flags|=8192),c?(r&536870912)!==0&&(s.flags&128)===0&&(et(s),s.subtreeFlags&6&&(s.flags|=8192)):et(s),r=s.updateQueue,r!==null&&_c(s,r.retryQueue),r=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),c=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(c=s.memoizedState.cachePool.pool),c!==r&&(s.flags|=2048),t!==null&&W(qn),null;case 24:return r=null,t!==null&&(r=t.memoizedState.cache),s.memoizedState.cache!==r&&(s.flags|=2048),hs(ht),et(s),null;case 25:return null;case 30:return null}throw Error(i(156,s.tag))}function KC(t,s){switch(su(s),s.tag){case 1:return t=s.flags,t&65536?(s.flags=t&-65537|128,s):null;case 3:return hs(ht),Me(),t=s.flags,(t&65536)!==0&&(t&128)===0?(s.flags=t&-65537|128,s):null;case 26:case 27:case 5:return wt(s),null;case 31:if(s.memoizedState!==null){if(oa(s),s.alternate===null)throw Error(i(340));In()}return t=s.flags,t&65536?(s.flags=t&-65537|128,s):null;case 13:if(oa(s),t=s.memoizedState,t!==null&&t.dehydrated!==null){if(s.alternate===null)throw Error(i(340));In()}return t=s.flags,t&65536?(s.flags=t&-65537|128,s):null;case 19:return W(ut),null;case 4:return Me(),null;case 10:return hs(s.type),null;case 22:case 23:return oa(s),yu(),t!==null&&W(qn),t=s.flags,t&65536?(s.flags=t&-65537|128,s):null;case 24:return hs(ht),null;case 25:return null;default:return null}}function px(t,s){switch(su(s),s.tag){case 3:hs(ht),Me();break;case 26:case 27:case 5:wt(s);break;case 4:Me();break;case 31:s.memoizedState!==null&&oa(s);break;case 13:oa(s);break;case 19:W(ut);break;case 10:hs(s.type);break;case 22:case 23:oa(s),yu(),t!==null&&W(qn);break;case 24:hs(ht)}}function ai(t,s){try{var r=s.updateQueue,c=r!==null?r.lastEffect:null;if(c!==null){var u=c.next;r=u;do{if((r.tag&t)===t){c=void 0;var p=r.create,v=r.inst;c=p(),v.destroy=c}r=r.next}while(r!==u)}}catch(S){Ye(s,s.return,S)}}function Ws(t,s,r){try{var c=s.updateQueue,u=c!==null?c.lastEffect:null;if(u!==null){var p=u.next;c=p;do{if((c.tag&t)===t){var v=c.inst,S=v.destroy;if(S!==void 0){v.destroy=void 0,u=s;var T=r,G=S;try{G()}catch(te){Ye(u,T,te)}}}c=c.next}while(c!==p)}}catch(te){Ye(s,s.return,te)}}function hx(t){var s=t.updateQueue;if(s!==null){var r=t.stateNode;try{sf(s,r)}catch(c){Ye(t,t.return,c)}}}function gx(t,s,r){r.props=Fn(t.type,t.memoizedProps),r.state=t.memoizedState;try{r.componentWillUnmount()}catch(c){Ye(t,s,c)}}function si(t,s){try{var r=t.ref;if(r!==null){switch(t.tag){case 26:case 27:case 5:var c=t.stateNode;break;case 30:c=t.stateNode;break;default:c=t.stateNode}typeof r=="function"?t.refCleanup=r(c):r.current=c}}catch(u){Ye(t,s,u)}}function Ga(t,s){var r=t.ref,c=t.refCleanup;if(r!==null)if(typeof c=="function")try{c()}catch(u){Ye(t,s,u)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(u){Ye(t,s,u)}else r.current=null}function fx(t){var s=t.type,r=t.memoizedProps,c=t.stateNode;try{e:switch(s){case"button":case"input":case"select":case"textarea":r.autoFocus&&c.focus();break e;case"img":r.src?c.src=r.src:r.srcSet&&(c.srcset=r.srcSet)}}catch(u){Ye(t,t.return,u)}}function Wu(t,s,r){try{var c=t.stateNode;fS(c,t.type,r,s),c[Yt]=s}catch(u){Ye(t,t.return,u)}}function xx(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&sn(t.type)||t.tag===4}function $u(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||xx(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&sn(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Xu(t,s,r){var c=t.tag;if(c===5||c===6)t=t.stateNode,s?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(t,s):(s=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,s.appendChild(t),r=r._reactRootContainer,r!=null||s.onclick!==null||(s.onclick=ls));else if(c!==4&&(c===27&&sn(t.type)&&(r=t.stateNode,s=null),t=t.child,t!==null))for(Xu(t,s,r),t=t.sibling;t!==null;)Xu(t,s,r),t=t.sibling}function zc(t,s,r){var c=t.tag;if(c===5||c===6)t=t.stateNode,s?r.insertBefore(t,s):r.appendChild(t);else if(c!==4&&(c===27&&sn(t.type)&&(r=t.stateNode),t=t.child,t!==null))for(zc(t,s,r),t=t.sibling;t!==null;)zc(t,s,r),t=t.sibling}function yx(t){var s=t.stateNode,r=t.memoizedProps;try{for(var c=t.type,u=s.attributes;u.length;)s.removeAttributeNode(u[0]);Ot(s,c,r),s[Rt]=t,s[Yt]=r}catch(p){Ye(t,t.return,p)}}var vs=!1,xt=!1,Zu=!1,vx=typeof WeakSet=="function"?WeakSet:Set,At=null;function JC(t,s){if(t=t.containerInfo,bm=rl,t=Og(t),Gd(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var c=r.getSelection&&r.getSelection();if(c&&c.rangeCount!==0){r=c.anchorNode;var u=c.anchorOffset,p=c.focusNode;c=c.focusOffset;try{r.nodeType,p.nodeType}catch{r=null;break e}var v=0,S=-1,T=-1,G=0,te=0,ne=t,J=null;t:for(;;){for(var X;ne!==r||u!==0&&ne.nodeType!==3||(S=v+u),ne!==p||c!==0&&ne.nodeType!==3||(T=v+c),ne.nodeType===3&&(v+=ne.nodeValue.length),(X=ne.firstChild)!==null;)J=ne,ne=X;for(;;){if(ne===t)break t;if(J===r&&++G===u&&(S=v),J===p&&++te===c&&(T=v),(X=ne.nextSibling)!==null)break;ne=J,J=ne.parentNode}ne=X}r=S===-1||T===-1?null:{start:S,end:T}}else r=null}r=r||{start:0,end:0}}else r=null;for(jm={focusedElem:t,selectionRange:r},rl=!1,At=s;At!==null;)if(s=At,t=s.child,(s.subtreeFlags&1028)!==0&&t!==null)t.return=s,At=t;else for(;At!==null;){switch(s=At,p=s.alternate,t=s.flags,s.tag){case 0:if((t&4)!==0&&(t=s.updateQueue,t=t!==null?t.events:null,t!==null))for(r=0;r<t.length;r++)u=t[r],u.ref.impl=u.nextImpl;break;case 11:case 15:break;case 1:if((t&1024)!==0&&p!==null){t=void 0,r=s,u=p.memoizedProps,p=p.memoizedState,c=r.stateNode;try{var xe=Fn(r.type,u);t=c.getSnapshotBeforeUpdate(xe,p),c.__reactInternalSnapshotBeforeUpdate=t}catch(Ce){Ye(r,r.return,Ce)}}break;case 3:if((t&1024)!==0){if(t=s.stateNode.containerInfo,r=t.nodeType,r===9)Sm(t);else if(r===1)switch(t.nodeName){case"HEAD":case"HTML":case"BODY":Sm(t);break;default:t.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((t&1024)!==0)throw Error(i(163))}if(t=s.sibling,t!==null){t.return=s.return,At=t;break}At=s.return}}function bx(t,s,r){var c=r.flags;switch(r.tag){case 0:case 11:case 15:js(t,r),c&4&&ai(5,r);break;case 1:if(js(t,r),c&4)if(t=r.stateNode,s===null)try{t.componentDidMount()}catch(v){Ye(r,r.return,v)}else{var u=Fn(r.type,s.memoizedProps);s=s.memoizedState;try{t.componentDidUpdate(u,s,t.__reactInternalSnapshotBeforeUpdate)}catch(v){Ye(r,r.return,v)}}c&64&&hx(r),c&512&&si(r,r.return);break;case 3:if(js(t,r),c&64&&(t=r.updateQueue,t!==null)){if(s=null,r.child!==null)switch(r.child.tag){case 27:case 5:s=r.child.stateNode;break;case 1:s=r.child.stateNode}try{sf(t,s)}catch(v){Ye(r,r.return,v)}}break;case 27:s===null&&c&4&&yx(r);case 26:case 5:js(t,r),s===null&&c&4&&fx(r),c&512&&si(r,r.return);break;case 12:js(t,r);break;case 31:js(t,r),c&4&&Cx(t,r);break;case 13:js(t,r),c&4&&Sx(t,r),c&64&&(t=r.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&(r=nS.bind(null,r),SS(t,r))));break;case 22:if(c=r.memoizedState!==null||vs,!c){s=s!==null&&s.memoizedState!==null||xt,u=vs;var p=xt;vs=c,(xt=s)&&!p?ws(t,r,(r.subtreeFlags&8772)!==0):js(t,r),vs=u,xt=p}break;case 30:break;default:js(t,r)}}function jx(t){var s=t.alternate;s!==null&&(t.alternate=null,jx(s)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(s=t.stateNode,s!==null&&Pd(s)),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}var st=null,Jt=!1;function bs(t,s,r){for(r=r.child;r!==null;)wx(t,s,r),r=r.sibling}function wx(t,s,r){if(qt&&typeof qt.onCommitFiberUnmount=="function")try{qt.onCommitFiberUnmount(En,r)}catch{}switch(r.tag){case 26:xt||Ga(r,s),bs(t,s,r),r.memoizedState?r.memoizedState.count--:r.stateNode&&(r=r.stateNode,r.parentNode.removeChild(r));break;case 27:xt||Ga(r,s);var c=st,u=Jt;sn(r.type)&&(st=r.stateNode,Jt=!1),bs(t,s,r),mi(r.stateNode),st=c,Jt=u;break;case 5:xt||Ga(r,s);case 6:if(c=st,u=Jt,st=null,bs(t,s,r),st=c,Jt=u,st!==null)if(Jt)try{(st.nodeType===9?st.body:st.nodeName==="HTML"?st.ownerDocument.body:st).removeChild(r.stateNode)}catch(p){Ye(r,s,p)}else try{st.removeChild(r.stateNode)}catch(p){Ye(r,s,p)}break;case 18:st!==null&&(Jt?(t=st,hy(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,r.stateNode),$r(t)):hy(st,r.stateNode));break;case 4:c=st,u=Jt,st=r.stateNode.containerInfo,Jt=!0,bs(t,s,r),st=c,Jt=u;break;case 0:case 11:case 14:case 15:Ws(2,r,s),xt||Ws(4,r,s),bs(t,s,r);break;case 1:xt||(Ga(r,s),c=r.stateNode,typeof c.componentWillUnmount=="function"&&gx(r,s,c)),bs(t,s,r);break;case 21:bs(t,s,r);break;case 22:xt=(c=xt)||r.memoizedState!==null,bs(t,s,r),xt=c;break;default:bs(t,s,r)}}
vendor: 1,524 bytes, line 48
48function Cx(t,s){if(s.memoizedState===null&&(t=s.alternate,t!==null&&(t=t.memoizedState,t!==null))){t=t.dehydrated;try{$r(t)}catch(r){Ye(s,s.return,r)}}}function Sx(t,s){if(s.memoizedState===null&&(t=s.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null))))try{$r(t)}catch(r){Ye(s,s.return,r)}}function WC(t){switch(t.tag){case 31:case 13:case 19:var s=t.stateNode;return s===null&&(s=t.stateNode=new vx),s;case 22:return t=t.stateNode,s=t._retryCache,s===null&&(s=t._retryCache=new vx),s;default:throw Error(i(435,t.tag))}}function qc(t,s){var r=WC(t);s.forEach(function(c){if(!r.has(c)){r.add(c);var u=rS.bind(null,t,c);c.then(u,u)}})}function Wt(t,s){var r=s.deletions;if(r!==null)for(var c=0;c<r.length;c++){var u=r[c],p=t,v=s,S=v;e:for(;S!==null;){switch(S.tag){case 27:if(sn(S.type)){st=S.stateNode,Jt=!1;break e}break;case 5:st=S.stateNode,Jt=!1;break e;case 3:case 4:st=S.stateNode.containerInfo,Jt=!0;break e}S=S.return}if(st===null)throw Error(i(160));wx(p,v,u),st=null,Jt=!1,p=u.alternate,p!==null&&(p.return=null),u.return=null}if(s.subtreeFlags&13886)for(s=s.child;s!==null;)Ax(s,t),s=s.sibling}var Ta=null;function Ax(t,s){var r=t.alternate,c=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:Wt(s,t),$t(t),c&4&&(Ws(3,t,t.return),ai(3,t),Ws(5,t,t.return));break;case 1:Wt(s,t),$t(t),c&512&&(xt||r===null||Ga(r,r.return)),c&64&&vs&&(t=t.updateQueue,t!==null&&(c=t.callbacks,c!==null&&(r=t.shared.hiddenCallbacks,t.shared.hiddenCallbacks=r===null?c:r.concat(c))));break;case 26:var u=Ta;
vendor: 10,268 bytes, line 48
48if(Wt(s,t),$t(t),c&512&&(xt||r===null||Ga(r,r.return)),c&4){var p=r!==null?r.memoizedState:null;if(c=t.memoizedState,r===null)if(c===null)if(t.stateNode===null){e:{c=t.type,r=t.memoizedProps,u=u.ownerDocument||u;t:switch(c){case"title":p=u.getElementsByTagName("title")[0],(!p||p[Oo]||p[Rt]||p.namespaceURI==="http://www.w3.org/2000/svg"||p.hasAttribute("itemprop"))&&(p=u.createElement(c),u.head.insertBefore(p,u.querySelector("head > title"))),Ot(p,c,r),p[Rt]=t,St(p),c=p;break e;case"link":var v=Ay("link","href",u).get(c+(r.href||""));if(v){for(var S=0;S<v.length;S++)if(p=v[S],p.getAttribute("href")===(r.href==null||r.href===""?null:r.href)&&p.getAttribute("rel")===(r.rel==null?null:r.rel)&&p.getAttribute("title")===(r.title==null?null:r.title)&&p.getAttribute("crossorigin")===(r.crossOrigin==null?null:r.crossOrigin)){v.splice(S,1);break t}}p=u.createElement(c),Ot(p,c,r),u.head.appendChild(p);break;case"meta":if(v=Ay("meta","content",u).get(c+(r.content||""))){for(S=0;S<v.length;S++)if(p=v[S],p.getAttribute("content")===(r.content==null?null:""+r.content)&&p.getAttribute("name")===(r.name==null?null:r.name)&&p.getAttribute("property")===(r.property==null?null:r.property)&&p.getAttribute("http-equiv")===(r.httpEquiv==null?null:r.httpEquiv)&&p.getAttribute("charset")===(r.charSet==null?null:r.charSet)){v.splice(S,1);break t}}p=u.createElement(c),Ot(p,c,r),u.head.appendChild(p);break;default:throw Error(i(468,c))}p[Rt]=t,St(p),c=p}t.stateNode=c}else Ry(u,t.type,t.stateNode);else t.stateNode=Sy(u,c,t.memoizedProps);else p!==c?(p===null?r.stateNode!==null&&(r=r.stateNode,r.parentNode.removeChild(r)):p.count--,c===null?Ry(u,t.type,t.stateNode):Sy(u,c,t.memoizedProps)):c===null&&t.stateNode!==null&&Wu(t,t.memoizedProps,r.memoizedProps)}break;case 27:Wt(s,t),$t(t),c&512&&(xt||r===null||Ga(r,r.return)),r!==null&&c&4&&Wu(t,t.memoizedProps,r.memoizedProps);break;case 5:if(Wt(s,t),$t(t),c&512&&(xt||r===null||Ga(r,r.return)),t.flags&32){u=t.stateNode;try{br(u,"")}catch(xe){Ye(t,t.return,xe)}}c&4&&t.stateNode!=null&&(u=t.memoizedProps,Wu(t,u,r!==null?r.memoizedProps:u)),c&1024&&(Zu=!0);break;case 6:if(Wt(s,t),$t(t),c&4){if(t.stateNode===null)throw Error(i(162));c=t.memoizedProps,r=t.stateNode;try{r.nodeValue=c}catch(xe){Ye(t,t.return,xe)}}break;case 3:if(tl=null,u=Ta,Ta=Zc(s.containerInfo),Wt(s,t),Ta=u,$t(t),c&4&&r!==null&&r.memoizedState.isDehydrated)try{$r(s.containerInfo)}catch(xe){Ye(t,t.return,xe)}Zu&&(Zu=!1,Rx(t));break;case 4:c=Ta,Ta=Zc(t.stateNode.containerInfo),Wt(s,t),$t(t),Ta=c;break;case 12:Wt(s,t),$t(t);break;case 31:Wt(s,t),$t(t),c&4&&(c=t.updateQueue,c!==null&&(t.updateQueue=null,qc(t,c)));break;case 13:Wt(s,t),$t(t),t.child.flags&8192&&t.memoizedState!==null!=(r!==null&&r.memoizedState!==null)&&(Hc=zt()),c&4&&(c=t.updateQueue,c!==null&&(t.updateQueue=null,qc(t,c)));break;case 22:u=t.memoizedState!==null;var T=r!==null&&r.memoizedState!==null,G=vs,te=xt;if(vs=G||u,xt=te||T,Wt(s,t),xt=te,vs=G,$t(t),c&8192)e:for(s=t.stateNode,s._visibility=u?s._visibility&-2:s._visibility|1,u&&(r===null||T||vs||xt||Qn(t)),r=null,s=t;;){if(s.tag===5||s.tag===26){if(r===null){T=r=s;try{if(p=T.stateNode,u)v=p.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{S=T.stateNode;var ne=T.memoizedProps.style,J=ne!=null&&ne.hasOwnProperty("display")?ne.display:null;S.style.display=J==null||typeof J=="boolean"?"":(""+J).trim()}}catch(xe){Ye(T,T.return,xe)}}}else if(s.tag===6){if(r===null){T=s;try{T.stateNode.nodeValue=u?"":T.memoizedProps}catch(xe){Ye(T,T.return,xe)}}}else if(s.tag===18){if(r===null){T=s;try{var X=T.stateNode;u?gy(X,!0):gy(T.stateNode,!1)}catch(xe){Ye(T,T.return,xe)}}}else if((s.tag!==22&&s.tag!==23||s.memoizedState===null||s===t)&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break e;for(;s.sibling===null;){if(s.return===null||s.return===t)break e;r===s&&(r=null),s=s.return}r===s&&(r=null),s.sibling.return=s.return,s=s.sibling}c&4&&(c=t.updateQueue,c!==null&&(r=c.retryQueue,r!==null&&(c.retryQueue=null,qc(t,r))));break;case 19:Wt(s,t),$t(t),c&4&&(c=t.updateQueue,c!==null&&(t.updateQueue=null,qc(t,c)));break;case 30:break;case 21:break;default:Wt(s,t),$t(t)}}function $t(t){var s=t.flags;if(s&2){try{for(var r,c=t.return;c!==null;){if(xx(c)){r=c;break}c=c.return}if(r==null)throw Error(i(160));switch(r.tag){case 27:var u=r.stateNode,p=$u(t);zc(t,p,u);break;case 5:var v=r.stateNode;r.flags&32&&(br(v,""),r.flags&=-33);var S=$u(t);zc(t,S,v);break;case 3:case 4:var T=r.stateNode.containerInfo,G=$u(t);Xu(t,G,T);break;default:throw Error(i(161))}}catch(te){Ye(t,t.return,te)}t.flags&=-3}s&4096&&(t.flags&=-4097)}function Rx(t){if(t.subtreeFlags&1024)for(t=t.child;t!==null;){var s=t;Rx(s),s.tag===5&&s.flags&1024&&s.stateNode.reset(),t=t.sibling}}function js(t,s){if(s.subtreeFlags&8772)for(s=s.child;s!==null;)bx(t,s.alternate,s),s=s.sibling}function Qn(t){for(t=t.child;t!==null;){var s=t;switch(s.tag){case 0:case 11:case 14:case 15:Ws(4,s,s.return),Qn(s);break;case 1:Ga(s,s.return);var r=s.stateNode;typeof r.componentWillUnmount=="function"&&gx(s,s.return,r),Qn(s);break;case 27:mi(s.stateNode);case 26:case 5:Ga(s,s.return),Qn(s);break;case 22:s.memoizedState===null&&Qn(s);break;case 30:Qn(s);break;default:Qn(s)}t=t.sibling}}function ws(t,s,r){for(r=r&&(s.subtreeFlags&8772)!==0,s=s.child;s!==null;){var c=s.alternate,u=t,p=s,v=p.flags;switch(p.tag){case 0:case 11:case 15:ws(u,p,r),ai(4,p);break;case 1:if(ws(u,p,r),c=p,u=c.stateNode,typeof u.componentDidMount=="function")try{u.componentDidMount()}catch(G){Ye(c,c.return,G)}if(c=p,u=c.updateQueue,u!==null){var S=c.stateNode;try{var T=u.shared.hiddenCallbacks;if(T!==null)for(u.shared.hiddenCallbacks=null,u=0;u<T.length;u++)af(T[u],S)}catch(G){Ye(c,c.return,G)}}r&&v&64&&hx(p),si(p,p.return);break;case 27:yx(p);case 26:case 5:ws(u,p,r),r&&c===null&&v&4&&fx(p),si(p,p.return);break;case 12:ws(u,p,r);break;case 31:ws(u,p,r),r&&v&4&&Cx(u,p);break;case 13:ws(u,p,r),r&&v&4&&Sx(u,p);break;case 22:p.memoizedState===null&&ws(u,p,r),si(p,p.return);break;case 30:break;default:ws(u,p,r)}s=s.sibling}}function em(t,s){var r=null;t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),t=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(t=s.memoizedState.cachePool.pool),t!==r&&(t!=null&&t.refCount++,r!=null&&Vo(r))}function tm(t,s){t=null,s.alternate!==null&&(t=s.alternate.memoizedState.cache),s=s.memoizedState.cache,s!==t&&(s.refCount++,t!=null&&Vo(t))}function Da(t,s,r,c){if(s.subtreeFlags&10256)for(s=s.child;s!==null;)Ex(t,s,r,c),s=s.sibling}function Ex(t,s,r,c){var u=s.flags;switch(s.tag){case 0:case 11:case 15:Da(t,s,r,c),u&2048&&ai(9,s);break;case 1:Da(t,s,r,c);break;case 3:Da(t,s,r,c),u&2048&&(t=null,s.alternate!==null&&(t=s.alternate.memoizedState.cache),s=s.memoizedState.cache,s!==t&&(s.refCount++,t!=null&&Vo(t)));break;case 12:if(u&2048){Da(t,s,r,c),t=s.stateNode;try{var p=s.memoizedProps,v=p.id,S=p.onPostCommit;typeof S=="function"&&S(v,s.alternate===null?"mount":"update",t.passiveEffectDuration,-0)}catch(T){Ye(s,s.return,T)}}else Da(t,s,r,c);break;case 31:Da(t,s,r,c);break;case 13:Da(t,s,r,c);break;case 23:break;case 22:p=s.stateNode,v=s.alternate,s.memoizedState!==null?p._visibility&2?Da(t,s,r,c):ni(t,s):p._visibility&2?Da(t,s,r,c):(p._visibility|=2,Br(t,s,r,c,(s.subtreeFlags&10256)!==0||!1)),u&2048&&em(v,s);break;case 24:Da(t,s,r,c),u&2048&&tm(s.alternate,s);break;default:Da(t,s,r,c)}}function Br(t,s,r,c,u){for(u=u&&((s.subtreeFlags&10256)!==0||!1),s=s.child;s!==null;){var p=t,v=s,S=r,T=c,G=v.flags;switch(v.tag){case 0:case 11:case 15:Br(p,v,S,T,u),ai(8,v);break;case 23:break;case 22:var te=v.stateNode;v.memoizedState!==null?te._visibility&2?Br(p,v,S,T,u):ni(p,v):(te._visibility|=2,Br(p,v,S,T,u)),u&&G&2048&&em(v.alternate,v);break;case 24:Br(p,v,S,T,u),u&&G&2048&&tm(v.alternate,v);break;default:Br(p,v,S,T,u)}s=s.sibling}}function ni(t,s){if(s.subtreeFlags&10256)for(s=s.child;s!==null;){var r=t,c=s,u=c.flags;switch(c.tag){case 22:ni(r,c),u&2048&&em(c.alternate,c);break;case 24:ni(r,c),u&2048&&tm(c.alternate,c);break;default:ni(r,c)}s=s.sibling}}var ri=8192;function Hr(t,s,r){if(t.subtreeFlags&ri)for(t=t.child;t!==null;)Nx(t,s,r),t=t.sibling}function Nx(t,s,r){switch(t.tag){case 26:Hr(t,s,r),t.flags&ri&&t.memoizedState!==null&&IS(r,Ta,t.memoizedState,t.memoizedProps);break;case 5:Hr(t,s,r);break;case 3:case 4:var c=Ta;Ta=Zc(t.stateNode.containerInfo),Hr(t,s,r),Ta=c;break;case 22:t.memoizedState===null&&(c=t.alternate,c!==null&&c.memoizedState!==null?(c=ri,ri=16777216,Hr(t,s,r),ri=c):Hr(t,s,r));break;default:Hr(t,s,r)}}function Px(t){var s=t.alternate;if(s!==null&&(t=s.child,t!==null)){s.child=null;do s=t.sibling,t.sibling=null,t=s;while(t!==null)}}function oi(t){var s=t.deletions;if((t.flags&16)!==0){if(s!==null)for(var r=0;r<s.length;r++){var c=s[r];At=c,kx(c,t)}Px(t)}if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Ox(t),t=t.sibling}function Ox(t){switch(t.tag){case 0:case 11:case 15:oi(t),t.flags&2048&&Ws(9,t,t.return);break;case 3:oi(t);break;case 12:oi(t);break;case 22:var s=t.stateNode;t.memoizedState!==null&&s._visibility&2&&(t.return===null||t.return.tag!==13)?(s._visibility&=-3,Bc(t)):oi(t);break;default:oi(t)}}function Bc(t){var s=t.deletions;if((t.flags&16)!==0){if(s!==null)for(var r=0;r<s.length;r++){var c=s[r];At=c,kx(c,t)}Px(t)}for(t=t.child;t!==null;){switch(s=t,s.tag){case 0:case 11:case 15:Ws(8,s,s.return),Bc(s);break;case 22:r=s.stateNode,r._visibility&2&&(r._visibility&=-3,Bc(s));break;default:Bc(s)}t=t.sibling}}function kx(t,s){for(;At!==null;){var r=At;switch(r.tag){case 0:case 11:case 15:Ws(8,r,s);break;case 23:case 22:if(r.memoizedState!==null&&r.memoizedState.cachePool!==null){var c=r.memoizedState.cachePool.pool;c!=null&&c.refCount++}break;case 24:Vo(r.memoizedState.cache)}if(c=r.child,c!==null)c.return=r,At=c;else e:for(r=t;At!==null;){c=At;var u=c.sibling,p=c.return;if(jx(c),c===r){At=null;break e}if(u!==null){u.return=p,At=u;break e}At=p}}}var $C={getCacheForType:function(t){var s=Nt(ht),r=s.data.get(t);return r===void 0&&(r=t(),s.data.set(t,r)),r},cacheSignal:function(){return Nt(ht).controller.signal}},XC=typeof WeakMap=="function"?WeakMap:Map,Fe=0,Xe=null,Le=null,_e=0,Ge=0,ia=null,$s=!1,Ur=!1,am=!1,Cs=0,
vendor: 14,763 bytes, line 48
48ct=0,Xs=0,Gn=0,sm=0,ca=0,Vr=0,ii=null,Xt=null,nm=!1,Hc=0,Mx=0,Uc=1/0,Vc=null,Zs=null,vt=0,en=null,Fr=null,Ss=0,rm=0,om=null,Tx=null,ci=0,im=null;function la(){return(Fe&2)!==0&&_e!==0?_e&-_e:A.T!==null?pm():Ed()}function Dx(){if(ca===0)if((_e&536870912)===0||qe){var t=mr;mr<<=1,(mr&3932160)===0&&(mr=262144),ca=t}else ca=536870912;return t=ra.current,t!==null&&(t.flags|=32),ca}function Zt(t,s,r){(t===Xe&&(Ge===2||Ge===9)||t.cancelPendingCommit!==null)&&(Qr(t,0),tn(t,_e,ca,!1)),ot(t,r),((Fe&2)===0||t!==Xe)&&(t===Xe&&((Fe&2)===0&&(Gn|=r),ct===4&&tn(t,_e,ca,!1)),Ya(t))}function Lx(t,s,r){if((Fe&6)!==0)throw Error(i(327));var c=!r&&(s&127)===0&&(s&t.expiredLanes)===0||at(t,s),u=c?tS(t,s):lm(t,s,!0),p=c;do{if(u===0){Ur&&!c&&tn(t,s,0,!1);break}else{if(r=t.current.alternate,p&&!ZC(r)){u=lm(t,s,!1),p=!1;continue}if(u===2){if(p=s,t.errorRecoveryDisabledLanes&p)var v=0;else v=t.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){s=v;e:{var S=t;u=ii;var T=S.current.memoizedState.isDehydrated;if(T&&(Qr(S,v).flags|=256),v=lm(S,v,!1),v!==2){if(am&&!T){S.errorRecoveryDisabledLanes|=p,Gn|=p,u=4;break e}p=Xt,Xt=u,p!==null&&(Xt===null?Xt=p:Xt.push.apply(Xt,p))}u=v}if(p=!1,u!==2)continue}}if(u===1){Qr(t,0),tn(t,s,0,!0);break}e:{switch(c=t,p=u,p){case 0:case 1:throw Error(i(345));case 4:if((s&4194048)!==s)break;case 6:tn(c,s,ca,!$s);break e;case 2:Xt=null;break;case 3:case 5:break;default:throw Error(i(329))}if((s&62914560)===s&&(u=Hc+300-zt(),10<u)){if(tn(c,s,ca,!$s),Ae(c,0,!0)!==0)break e;Ss=s,c.timeoutHandle=my(Ix.bind(null,c,r,Xt,Vc,nm,s,ca,Gn,Vr,$s,p,"Throttled",-0,0),u);break e}Ix(c,r,Xt,Vc,nm,s,ca,Gn,Vr,$s,p,null,-0,0)}}break}while(!0);Ya(t)}function Ix(t,s,r,c,u,p,v,S,T,G,te,ne,J,X){if(t.timeoutHandle=-1,ne=s.subtreeFlags,ne&8192||(ne&16785408)===16785408){ne={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ls},Nx(s,p,ne);var xe=(p&62914560)===p?Hc-zt():(p&4194048)===p?Mx-zt():0;if(xe=_S(ne,xe),xe!==null){Ss=p,t.cancelPendingCommit=xe(Fx.bind(null,t,s,p,r,c,u,v,S,T,te,ne,null,J,X)),tn(t,p,v,!G);return}}Fx(t,s,p,r,c,u,v,S,T)}function ZC(t){for(var s=t;;){var r=s.tag;if((r===0||r===11||r===15)&&s.flags&16384&&(r=s.updateQueue,r!==null&&(r=r.stores,r!==null)))for(var c=0;c<r.length;c++){var u=r[c],p=u.getSnapshot;u=u.value;try{if(!sa(p(),u))return!1}catch{return!1}}if(r=s.child,s.subtreeFlags&16384&&r!==null)r.return=s,s=r;else{if(s===t)break;for(;s.sibling===null;){if(s.return===null||s.return===t)return!0;s=s.return}s.sibling.return=s.return,s=s.sibling}}return!0}function tn(t,s,r,c){s&=~sm,s&=~Gn,t.suspendedLanes|=s,t.pingedLanes&=~s,c&&(t.warmLanes|=s),c=t.expirationTimes;for(var u=s;0<u;){var p=31-kt(u),v=1<<p;c[p]=-1,u&=~v}r!==0&&Pn(t,r,s)}function Fc(){return(Fe&6)===0?(li(0),!1):!0}function cm(){if(Le!==null){if(Ge===0)var t=Le.return;else t=Le,ps=_n=null,Su(t),Lr=null,Qo=0,t=Le;for(;t!==null;)px(t.alternate,t),t=t.return;Le=null}}function Qr(t,s){var r=t.timeoutHandle;r!==-1&&(t.timeoutHandle=-1,vS(r)),r=t.cancelPendingCommit,r!==null&&(t.cancelPendingCommit=null,r()),Ss=0,cm(),Xe=t,Le=r=us(t.current,null),_e=s,Ge=0,ia=null,$s=!1,Ur=at(t,s),am=!1,Vr=ca=sm=Gn=Xs=ct=0,Xt=ii=null,nm=!1,(s&8)!==0&&(s|=s&32);var c=t.entangledLanes;if(c!==0)for(t=t.entanglements,c&=s;0<c;){var u=31-kt(c),p=1<<u;s|=t[u],c&=~p}return Cs=s,uc(),r}function _x(t,s){Oe=null,A.H=Zo,s===Dr||s===vc?(s=Xg(),Ge=3):s===mu?(s=Xg(),Ge=4):Ge=s===Bu?8:s!==null&&typeof s=="object"&&typeof s.then=="function"?6:1,ia=s,Le===null&&(ct=1,Tc(t,va(s,t.current)))}function zx(){var t=ra.current;return t===null?!0:(_e&4194048)===_e?Ca===null:(_e&62914560)===_e||(_e&536870912)!==0?t===Ca:!1}function qx(){var t=A.H;return A.H=Zo,t===null?Zo:t}function Bx(){var t=A.A;return A.A=$C,t}function Qc(){ct=4,$s||(_e&4194048)!==_e&&ra.current!==null||(Ur=!0),(Xs&134217727)===0&&(Gn&134217727)===0||Xe===null||tn(Xe,_e,ca,!1)}function lm(t,s,r){var c=Fe;Fe|=2;var u=qx(),p=Bx();(Xe!==t||_e!==s)&&(Vc=null,Qr(t,s)),s=!1;var v=ct;e:do try{if(Ge!==0&&Le!==null){var S=Le,T=ia;switch(Ge){case 8:cm(),v=6;break e;case 3:case 2:case 9:case 6:ra.current===null&&(s=!0);var G=Ge;if(Ge=0,ia=null,Gr(t,S,T,G),r&&Ur){v=0;break e}break;default:G=Ge,Ge=0,ia=null,Gr(t,S,T,G)}}eS(),v=ct;break}catch(te){_x(t,te)}while(!0);return s&&t.shellSuspendCounter++,ps=_n=null,Fe=c,A.H=u,A.A=p,Le===null&&(Xe=null,_e=0,uc()),v}function eS(){for(;Le!==null;)Hx(Le)}function tS(t,s){var r=Fe;Fe|=2;var c=qx(),u=Bx();Xe!==t||_e!==s?(Vc=null,Uc=zt()+500,Qr(t,s)):Ur=at(t,s);e:do try{if(Ge!==0&&Le!==null){s=Le;var p=ia;t:switch(Ge){case 1:Ge=0,ia=null,Gr(t,s,p,1);break;case 2:case 9:if(Wg(p)){Ge=0,ia=null,Ux(s);break}s=function(){Ge!==2&&Ge!==9||Xe!==t||(Ge=7),Ya(t)},p.then(s,s);break e;case 3:Ge=7;break e;case 4:Ge=5;break e;case 7:Wg(p)?(Ge=0,ia=null,Ux(s)):(Ge=0,ia=null,Gr(t,s,p,7));break;case 5:var v=null;switch(Le.tag){case 26:v=Le.memoizedState;case 5:case 27:var S=Le;if(v?Ey(v):S.stateNode.complete){Ge=0,ia=null;var T=S.sibling;if(T!==null)Le=T;else{var G=S.return;G!==null?(Le=G,Gc(G)):Le=null}break t}}Ge=0,ia=null,Gr(t,s,p,5);break;case 6:Ge=0,ia=null,Gr(t,s,p,6);break;case 8:cm(),ct=6;break e;default:throw Error(i(462))}}aS();break}catch(te){_x(t,te)}while(!0);return ps=_n=null,A.H=c,A.A=u,Fe=r,Le!==null?0:(Xe=null,_e=0,uc(),ct)}function aS(){for(;Le!==null&&!_t();)Hx(Le)}function Hx(t){var s=ux(t.alternate,t,Cs);t.memoizedProps=t.pendingProps,s===null?Gc(t):Le=s}function Ux(t){var s=t,r=s.alternate;switch(s.tag){case 15:case 0:s=rx(r,s,s.pendingProps,s.type,void 0,_e);break;case 11:s=rx(r,s,s.pendingProps,s.type.render,s.ref,_e);break;case 5:Su(s);default:px(r,s),s=Le=qg(s,Cs),s=ux(r,s,Cs)}t.memoizedProps=t.pendingProps,s===null?Gc(t):Le=s}function Gr(t,s,r,c){ps=_n=null,Su(s),Lr=null,Qo=0;var u=s.return;try{if(FC(t,u,s,r,_e)){ct=1,Tc(t,va(r,t.current)),Le=null;return}}catch(p){if(u!==null)throw Le=u,p;ct=1,Tc(t,va(r,t.current)),Le=null;return}s.flags&32768?(qe||c===1?t=!0:Ur||(_e&536870912)!==0?t=!1:($s=t=!0,(c===2||c===9||c===3||c===6)&&(c=ra.current,c!==null&&c.tag===13&&(c.flags|=16384))),Vx(s,t)):Gc(s)}function Gc(t){var s=t;do{if((s.flags&32768)!==0){Vx(s,$s);return}t=s.return;var r=YC(s.alternate,s,Cs);if(r!==null){Le=r;return}if(s=s.sibling,s!==null){Le=s;return}Le=s=t}while(s!==null);ct===0&&(ct=5)}function Vx(t,s){do{var r=KC(t.alternate,t);if(r!==null){r.flags&=32767,Le=r;return}if(r=t.return,r!==null&&(r.flags|=32768,r.subtreeFlags=0,r.deletions=null),!s&&(t=t.sibling,t!==null)){Le=t;return}Le=t=r}while(t!==null);ct=6,Le=null}function Fx(t,s,r,c,u,p,v,S,T){t.cancelPendingCommit=null;do Yc();while(vt!==0);if((Fe&6)!==0)throw Error(i(327));if(s!==null){if(s===t.current)throw Error(i(177));if(p=s.lanes|s.childLanes,p|=$d,Ft(t,r,p,v,S,T),t===Xe&&(Le=Xe=null,_e=0),Fr=s,en=t,Ss=r,rm=p,om=u,Tx=c,(s.subtreeFlags&10256)!==0||(s.flags&10256)!==0?(t.callbackNode=null,t.callbackPriority=0,oS(Rn,function(){return Jx(),null})):(t.callbackNode=null,t.callbackPriority=0),c=(s.flags&13878)!==0,(s.subtreeFlags&13878)!==0||c){c=A.T,A.T=null,u=_.p,_.p=2,v=Fe,Fe|=4;try{JC(t,s,r)}finally{Fe=v,_.p=u,A.T=c}}vt=1,Qx(),Gx(),Yx()}}function Qx(){if(vt===1){vt=0;var t=en,s=Fr,r=(s.flags&13878)!==0;if((s.subtreeFlags&13878)!==0||r){r=A.T,A.T=null;var c=_.p;_.p=2;var u=Fe;Fe|=4;try{Ax(s,t);var p=jm,v=Og(t.containerInfo),S=p.focusedElem,T=p.selectionRange;if(v!==S&&S&&S.ownerDocument&&Pg(S.ownerDocument.documentElement,S)){if(T!==null&&Gd(S)){var G=T.start,te=T.end;if(te===void 0&&(te=G),"selectionStart"in S)S.selectionStart=G,S.selectionEnd=Math.min(te,S.value.length);else{var ne=S.ownerDocument||document,J=ne&&ne.defaultView||window;if(J.getSelection){var X=J.getSelection(),xe=S.textContent.length,Ce=Math.min(T.start,xe),$e=T.end===void 0?Ce:Math.min(T.end,xe);!X.extend&&Ce>$e&&(v=$e,$e=Ce,Ce=v);var B=Ng(S,Ce),L=Ng(S,$e);if(B&&L&&(X.rangeCount!==1||X.anchorNode!==B.node||X.anchorOffset!==B.offset||X.focusNode!==L.node||X.focusOffset!==L.offset)){var Q=ne.createRange();Q.setStart(B.node,B.offset),X.removeAllRanges(),Ce>$e?(X.addRange(Q),X.extend(L.node,L.offset)):(Q.setEnd(L.node,L.offset),X.addRange(Q))}}}}for(ne=[],X=S;X=X.parentNode;)X.nodeType===1&&ne.push({element:X,left:X.scrollLeft,top:X.scrollTop});for(typeof S.focus=="function"&&S.focus(),S=0;S<ne.length;S++){var se=ne[S];se.element.scrollLeft=se.left,se.element.scrollTop=se.top}}rl=!!bm,jm=bm=null}finally{Fe=u,_.p=c,A.T=r}}t.current=s,vt=2}}function Gx(){if(vt===2){vt=0;var t=en,s=Fr,r=(s.flags&8772)!==0;if((s.subtreeFlags&8772)!==0||r){r=A.T,A.T=null;var c=_.p;_.p=2;var u=Fe;Fe|=4;try{bx(t,s.alternate,s)}finally{Fe=u,_.p=c,A.T=r}}vt=3}}function Yx(){if(vt===4||vt===3){vt=0,Is();var t=en,s=Fr,r=Ss,c=Tx;(s.subtreeFlags&10256)!==0||(s.flags&10256)!==0?vt=5:(vt=0,Fr=en=null,Kx(t,t.pendingLanes));var u=t.pendingLanes;if(u===0&&(Zs=null),ka(r),s=s.stateNode,qt&&typeof qt.onCommitFiberRoot=="function")try{qt.onCommitFiberRoot(En,s,void 0,(s.current.flags&128)===128)}catch{}if(c!==null){s=A.T,u=_.p,_.p=2,A.T=null;try{for(var p=t.onRecoverableError,v=0;v<c.length;v++){var S=c[v];p(S.value,{componentStack:S.stack})}}finally{A.T=s,_.p=u}}(Ss&3)!==0&&Yc(),Ya(t),u=t.pendingLanes,(r&261930)!==0&&(u&42)!==0?t===im?ci++:(ci=0,im=t):ci=0,li(0)}}function Kx(t,s){(t.pooledCacheLanes&=s)===0&&(s=t.pooledCache,s!=null&&(t.pooledCache=null,Vo(s)))}function Yc(){return Qx(),Gx(),Yx(),Jx()}function Jx(){if(vt!==5)return!1;var t=en,s=rm;rm=0;var r=ka(Ss),c=A.T,u=_.p;try{_.p=32>r?32:r,A.T=null,r=om,om=null;var p=en,v=Ss;if(vt=0,Fr=en=null,Ss=0,(Fe&6)!==0)throw Error(i(331));var S=Fe;if(Fe|=4,Ox(p.current),Ex(p,p.current,v,r),Fe=S,li(0,!1),qt&&typeof qt.onPostCommitFiberRoot=="function")try{qt.onPostCommitFiberRoot(En,p)}catch{}return!0}finally{_.p=u,A.T=c,Kx(t,s)}}function Wx(t,s,r){s=va(r,s),s=qu(t.stateNode,s,2),t=Ys(t,s,2),t!==null&&(ot(t,2),Ya(t))}function Ye(t,s,r){if(t.tag===3)Wx(t,t,r);else for(;s!==null;){if(s.tag===3){Wx(s,t,r);break}else if(s.tag===1){var c=s.stateNode;if(typeof s.type.getDerivedStateFromError=="function"||typeof c.componentDidCatch=="function"&&(Zs===null||!Zs.has(c))){t=va(r,t),r=$f(2),c=Ys(s,r,2),c!==null&&(Xf(r,c,s,t),ot(c,2),Ya(c));break}}s=s.return}}function dm(t,s,r){var c=t.pingCache;if(c===null){c=t.pingCache=new XC;var u=new Set;c.set(s,u)}else u=c.get(s),u===void 0&&(u=new Set,c.set(s,u));u.has(r)||(am=!0,u.add(r),t=sS.bind(null,t,s,r),s.then(t,t))}function sS(t,s,r){var c=t.pingCache;c!==null&&c.delete(s),t.pingedLanes|=t.suspendedLanes&r,t.warmLanes&=~r,Xe===t&&(_e&r)===r&&(ct===4||ct===3&&(_e&62914560)===_e&&300>zt()-Hc?(Fe&2)===0&&Qr(t,0):sm|=r,Vr===_e&&(Vr=0)),Ya(t)}function $x(t,s){s===0&&(s=Mt()),t=Dn(t,s),t!==null&&(ot(t,s),Ya(t))}function nS(t){var s=t.memoizedState,r=0;s!==null&&(r=s.retryLane),$x(t,r)}function rS(t,s){var r=0;switch(t.tag){case 31:case 13:var c=t.stateNode,u=t.memoizedState;u!==null&&(r=u.retryLane);break;case 19:c=t.stateNode;break;case 22:c=t.stateNode._retryCache;break;default:throw Error(i(314))}c!==null&&c.delete(s),$x(t,r)}function oS(t,s){return Ro(t,s)}var Kc=null,Yr=null,um=!1,Jc=!1,mm=!1,an=0;function Ya(t){t!==Yr&&t.next===null&&(Yr===null?Kc=Yr=t:Yr=Yr.next=t),Jc=!0,um||(um=!0,cS())}function li(t,s){if(!mm&&Jc){mm=!0;do for(var r=!1,c=Kc;c!==null;){if(t!==0){var u=c.pendingLanes;if(u===0)var p=0;else{var v=c.suspendedLanes,S=c.pingedLanes;p=(1<<31-kt(42|t)+1)-1,p&=u&~(v&~S),p=p&201326741?p&201326741|1:p?p|2:0}p!==0&&(r=!0,ty(c,p))}else p=_e,p=Ae(c,c===Xe?p:0,c.cancelPendingCommit!==null||c.timeoutHandle!==-1),(p&3)===0||at(c,p)||(r=!0,ty(c,p));c=c.next}while(r);mm=!1}}function iS(){Xx()}function Xx(){Jc=um=!1;var t=0;an!==0&&yS()&&(t=an);for(var s=zt(),r=null,c=Kc;c!==null;){var u=c.next,p=Zx(c,s);p===0?(c.next=null,r===null?Kc=u:r.next=u,u===null&&(Yr=r)):(r=c,(t!==0||(p&3)!==0)&&(Jc=!0)),c=u}vt!==0&&vt!==5||li(t),an!==0&&(an=0)}function Zx(t,s){for(var r=t.suspendedLanes,c=t.pingedLanes,u=t.expirationTimes,p=t.pendingLanes&-62914561;0<p;){var v=31-kt(p),S=1<<v,T=u[v];T===-1?((S&r)===0||(S&c)!==0)&&(u[v]=Ct(S,s)):T<=s&&(t.expiredLanes|=S),p&=~S}if(s=Xe,r=_e,r=Ae(t,t===s?r:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),c=t.callbackNode,r===0||t===s&&(Ge===2||Ge===9)||t.cancelPendingCommit!==null)return c!==null&&c!==null&&Eo(c),t.callbackNode=null,t.callbackPriority=0;if((r&3)===0||at(t,r)){if(s=r&-r,s===t.callbackPriority)return s;switch(c!==null&&Eo(c),ka(r)){case 2:case 8:r=Xi;break;case 32:r=Rn;break;case 268435456:r=is;break;default:r=Rn}return c=ey.bind(null,t),r=Ro(r,c),t.callbackPriority=s,t.callbackNode=r,s}return c!==null&&c!==null&&Eo(c),t.callbackPriority=2,t.callbackNode=null,2}function ey(t,s){if(vt!==0&&vt!==5)return t.callbackNode=null,t.callbackPriority=0,null;var r=t.callbackNode;if(Yc()&&t.callbackNode!==r)return null;var c=_e;return c=Ae(t,t===Xe?c:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),c===0?null:(Lx(t,c,s),Zx(t,zt()),t.callbackNode!=null&&t.callbackNode===r?ey.bind(null,t):null)}function ty(t,s){if(Yc())return null;Lx(t,s,!0)}function cS(){bS(function(){(Fe&6)!==0?Ro(An,iS):Xx()})}function pm(){if(an===0){var t=Mr;t===0&&(t=ur,ur<<=1,(ur&261888)===0&&(ur=256)),an=t}return an}function ay(t){return t==null||typeof t=="symbol"||typeof t=="boolean"?null:typeof t=="function"?t:sc(""+t)}function sy(t,s){var r=s.ownerDocument.createElement("input");return r.name=s.name,r.value=s.value,t.id&&r.setAttribute("form",t.id),s.parentNode.insertBefore(r,s),t=new FormData(t),r.parentNode.removeChild(r),t}function lS(t,s,r,c,u){if(s==="submit"&&r&&r.stateNode===u){var p=ay((u[Yt]||null).action),v=c.submitter;v&&(s=(s=v[Yt]||null)?ay(s.formAction):v.getAttribute("formAction"),s!==null&&(p=s,v=null));var S=new ic("action","action",null,c,u);t.push({event:S,listeners:[{instance:null,listener:function(){if(c.defaultPrevented){if(an!==0){var T=v?sy(u,v):new FormData(u);Tu(r,{pending:!0,data:T,method:u.method,action:p},null,T)}}else typeof p=="function"&&(S.preventDefault(),T=v?sy(u,v):new FormData(u),Tu(r,{pending:!0,data:T,method:u.method,action:p},p,T))},currentTarget:u}]})}}for(var hm=0;hm<Wd.length;hm++){var gm=Wd[hm],dS=gm.toLowerCase(),uS=gm[0].toUpperCase()+gm.slice(1);Ma(dS,"on"+uS)}Ma(Tg,"onAnimationEnd"),Ma(Dg,"onAnimationIteration"),Ma(Lg,"onAnimationStart"),Ma("dblclick","onDoubleClick"),Ma("focusin","onFocus"),Ma("focusout","onBlur"),Ma(EC,"onTransitionRun"),Ma(NC,"onTransitionStart"),Ma(PC,"onTransitionCancel"),Ma(Ig,"onTransitionEnd"),yr("onMouseEnter",["mouseout","mouseover"]),yr("onMouseLeave",["mouseout","mouseover"]),yr("onPointerEnter",["pointerout","pointerover"]),yr("onPointerLeave",["pointerout","pointerover"]),On("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),On("onSelect","focusout contextmenu dragend focu
48sin keydown keyup mousedown mouseup selectionchange".split(" ")),On("onBeforeInput",["compositionend","keypress","textInput","paste"]),On("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),On("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),On("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var di="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),mS=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(di));function ny(t,s){s=(s&4)!==0;for(var r=0;r<t.length;r++){var c=t[r],u=c.event;c=c.listeners;e:{var p=void 0;if(s)for(var v=c.length-1;0<=v;v--){var S=c[v],T=S.instance,G=S.currentTarget;if(S=S.listener,T!==p&&u.isPropagationStopped())break e;p=S,u.currentTarget=G;try{p(u)}catch(te){dc(te)}u.currentTarget=null,p=T}else for(v=0;v<c.length;v++){if(S=c[v],T=S.instance,G=S.currentTarget,S=S.listener,T!==p&&u.isPropagationStopped())break e;p=S,u.currentTarget=G;try{p(u)}catch(te){dc(te)}u.currentTarget=null,p=T}}}}function Ie(t,s){var r=s[Nd];r===void 0&&(r=s[Nd]=new Set);var c=t+"__bubble";r.has(c)||(ry(s,t,2,!1),r.add(c))}function fm(t,s,r){var c=0;s&&(c|=4),ry(r,t,c,s)}var Wc="_reactListening"+Math.random().toString(36).slice(2);function xm(t){if(!t[Wc]){t[Wc]=!0,$h.forEach(function(r){r!=="selectionchange"&&(mS.has(r)||fm(r,!1,t),fm(r,!0,t))});var s=t.nodeType===9?t:t.ownerDocument;s===null||s[Wc]||(s[Wc]=!0,fm("selectionchange",!1,s))}}function ry(t,s,r,c){switch(Dy(s)){case 2:var u=BS;break;case 8:u=HS;break;default:u=Mm}r=u.bind(null,s,r,t),u=void 0,!_d||s!=="touchstart"&&s!=="touchmove"&&s!=="wheel"||(u=!0),c?u!==void 0?t.addEventListener(s,r,{capture:!0,passive:u}):t.addEventListener(s,r,!0):u!==void 0?t.addEventListener(s,r,{passive:u}):t.addEventListener(s,r,!1)}function ym(t,s,r,c,u){var p=c;if((s&1)===0&&(s&2)===0&&c!==null)e:for(;;){if(c===null)return;var v=c.tag;if(v===3||v===4){var S=c.stateNode.containerInfo;if(S===u)break;if(v===4)for(v=c.return;v!==null;){var T=v.tag;if((T===3||T===4)&&v.stateNode.containerInfo===u)return;v=v.return}for(;S!==null;){if(v=gr(S),v===null)return;if(T=v.tag,T===5||T===6||T===26||T===27){c=p=v;continue e}S=S.parentNode}}c=c.return}lg(function(){var G=p,te=Ld(r),ne=[];e:{var J=_g.get(t);if(J!==void 0){var X=ic,xe=t;switch(t){case"keypress":if(rc(r)===0)break e;case"keydown":case"keyup":X=rC;break;case"focusin":xe="focus",X=Hd;break;case"focusout":xe="blur",X=Hd;break;case"beforeblur":case"afterblur":X=Hd;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":X=mg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":X=Yw;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":X=cC;break;case Tg:case Dg:case Lg:X=Ww;break;case Ig:X=dC;break;case"scroll":case"scrollend":X=Qw;break;case"wheel":X=mC;break;case"copy":case"cut":case"paste":X=Xw;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":X=hg;break;case"toggle":case"beforetoggle":X=hC}var Ce=(s&4)!==0,$e=!Ce&&(t==="scroll"||t==="scrollend"),B=Ce?J!==null?J+"Capture":null:J;Ce=[];for(var L=G,Q;L!==null;){var se=L;if(Q=se.stateNode,se=se.tag,se!==5&&se!==26&&se!==27||Q===null||B===null||(se=Mo(L,B),se!=null&&Ce.push(ui(L,se,Q))),$e)break;L=L.return}0<Ce.length&&(J=new X(J,xe,null,r,te),ne.push({event:J,listeners:Ce}))}}if((s&7)===0){e:{if(J=t==="mouseover"||t==="pointerover",X=t==="mouseout"||t==="pointerout",J&&r!==Dd&&(xe=r.relatedTarget||r.fromElement)&&(gr(xe)||xe[hr]))break e;if((X||J)&&(J=te.window===te?te:(J=te.ownerDocument)?J.defaultView||J.parentWindow:window,X?(xe=r.relatedTarget||r.toElement,X=G,xe=xe?gr(xe):null,xe!==null&&($e=d(xe),Ce=xe.tag,xe!==$e||Ce!==5&&Ce!==27&&Ce!==6)&&(xe=null)):(X=null,xe=G),X!==xe)){if(Ce=mg,se="onMouseLeave",B="onMouseEnter",L="mouse",(t==="pointerout"||t==="pointerover")&&(Ce=hg,se="onPointerLeave",B="onPointerEnter",L="pointer"),$e=X==null?J:ko(X),Q=xe==null?J:ko(xe),J=new Ce(se,L+"leave",X,r,te),J.target=$e,J.relatedTarget=Q,se=null,gr(te)===G&&(Ce=new Ce(B,L+"enter",xe,r,te),Ce.target=Q,Ce.relatedTarget=$e,se=Ce),$e=se,X&&xe)t:{for(Ce=pS,B=X,L=xe,Q=0,se=B;se;se=Ce(se))Q++;se=0;for(var je=L;je;je=Ce(je))se++;for(;0<Q-se;)B=Ce(B),Q--;for(;0<se-Q;)L=Ce(L),se--;for(;Q--;){if(B===L||L!==null&&B===L.alternate){Ce=B;break t}B=Ce(B),L=Ce(L)}Ce=null}else Ce=null;X!==null&&oy(ne,J,X,Ce,!1),xe!==null&&$e!==null&&oy(ne,$e,xe,Ce,!0)}}
vendor: 5,203 bytes, lines 48-49
48e:{if(J=G?ko(G):window,X=J.nodeName&&J.nodeName.toLowerCase(),X==="select"||X==="input"&&J.type==="file")var Be=wg;else if(bg(J))if(Cg)Be=SC;else{Be=wC;var be=jC}else X=J.nodeName,!X||X.toLowerCase()!=="input"||J.type!=="checkbox"&&J.type!=="radio"?G&&Td(G.elementType)&&(Be=wg):Be=CC;if(Be&&(Be=Be(t,G))){jg(ne,Be,r,te);break e}be&&be(t,J,G),t==="focusout"&&G&&J.type==="number"&&G.memoizedProps.value!=null&&Md(J,"number",J.value)}switch(be=G?ko(G):window,t){case"focusin":(bg(be)||be.contentEditable==="true")&&(Sr=be,Yd=G,Bo=null);break;case"focusout":Bo=Yd=Sr=null;break;case"mousedown":Kd=!0;break;case"contextmenu":case"mouseup":case"dragend":Kd=!1,kg(ne,r,te);break;case"selectionchange":if(RC)break;case"keydown":case"keyup":kg(ne,r,te)}var ke;if(Vd)e:{switch(t){case"compositionstart":var ze="onCompositionStart";break e;case"compositionend":ze="onCompositionEnd";break e;case"compositionupdate":ze="onCompositionUpdate";break e}ze=void 0}else Cr?yg(t,r)&&(ze="onCompositionEnd"):t==="keydown"&&r.keyCode===229&&(ze="onCompositionStart");ze&&(gg&&r.locale!=="ko"&&(Cr||ze!=="onCompositionStart"?ze==="onCompositionEnd"&&Cr&&(ke=dg()):(Bs=te,zd="value"in Bs?Bs.value:Bs.textContent,Cr=!0)),be=$c(G,ze),0<be.length&&(ze=new pg(ze,t,null,r,te),ne.push({event:ze,listeners:be}),ke?ze.data=ke:(ke=vg(r),ke!==null&&(ze.data=ke)))),(ke=fC?xC(t,r):yC(t,r))&&(ze=$c(G,"onBeforeInput"),0<ze.length&&(be=new pg("onBeforeInput","beforeinput",null,r,te),ne.push({event:be,listeners:ze}),be.data=ke)),lS(ne,t,G,r,te)}ny(ne,s)})}function ui(t,s,r){return{instance:t,listener:s,currentTarget:r}}function $c(t,s){for(var r=s+"Capture",c=[];t!==null;){var u=t,p=u.stateNode;if(u=u.tag,u!==5&&u!==26&&u!==27||p===null||(u=Mo(t,r),u!=null&&c.unshift(ui(t,u,p)),u=Mo(t,s),u!=null&&c.push(ui(t,u,p))),t.tag===3)return c;t=t.return}return[]}function pS(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5&&t.tag!==27);return t||null}function oy(t,s,r,c,u){for(var p=s._reactName,v=[];r!==null&&r!==c;){var S=r,T=S.alternate,G=S.stateNode;if(S=S.tag,T!==null&&T===c)break;S!==5&&S!==26&&S!==27||G===null||(T=G,u?(G=Mo(r,p),G!=null&&v.unshift(ui(r,G,T))):u||(G=Mo(r,p),G!=null&&v.push(ui(r,G,T)))),r=r.return}v.length!==0&&t.push({event:s,listeners:v})}var hS=/\r\n?/g,gS=/\u0000|\uFFFD/g;function iy(t){return(typeof t=="string"?t:""+t).replace(hS,` 49`).replace(gS,"")}function cy(t,s){return s=iy(s),iy(t)===s}function We(t,s,r,c,u,p){switch(r){case"children":typeof c=="string"?s==="body"||s==="textarea"&&c===""||br(t,c):(typeof c=="number"||typeof c=="bigint")&&s!=="body"&&br(t,""+c);break;case"className":tc(t,"class",c);break;case"tabIndex":tc(t,"tabindex",c);break;case"dir":case"role":case"viewBox":case"width":case"height":tc(t,r,c);break;case"style":ig(t,c,p);break;case"data":if(s!=="object"){tc(t,"data",c);break}case"src":case"href":if(c===""&&(s!=="a"||r!=="href")){t.removeAttribute(r);break}if(c==null||typeof c=="function"||typeof c=="symbol"||typeof c=="boolean"){t.removeAttribute(r);break}c=sc(""+c),t.setAttribute(r,c);break;case"action":case"formAction":if(typeof c=="function"){t.setAttribute(r,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof p=="function"&&(r==="formAction"?(s!=="input"&&We(t,s,"name",u.name,u,null),We(t,s,"formEncType",u.formEncType,u,null),We(t,s,"formMethod",u.formMethod,u,null),We(t,s,"formTarget",u.formTarget,u,null)):(We(t,s,"encType",u.encType,u,null),We(t,s,"method",u.method,u,null),We(t,s,"target",u.target,u,null)));if(c==null||typeof c=="symbol"||typeof c=="boolean"){t.removeAttribute(r);break}c=sc(""+c),t.setAttribute(r,c);break;case"onClick":c!=null&&(t.onclick=ls);break;case"onScroll":c!=null&&Ie("scroll",t);break;case"onScrollEnd":c!=null&&Ie("scrollend",t);break;case"dangerouslySetInnerHTML":if(c!=null){if(typeof c!="object"||!("__html"in c))throw Error(i(61));if(r=c.__html,r!=null){if(u.children!=null)throw Error(i(60));t.innerHTML=r}}break;case"multiple":t.multiple=c&&typeof c!="function"&&typeof c!="symbol";break;case"muted":t.muted=c&&typeof c!="function"&&typeof c!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(c==null||typeof c=="function"||typeof c=="boolean"||typeof c=="symbol"){t.removeAttribute("xlink:href");break}r=sc(""+c),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":c!=null&&typeof c!="function"&&typeof c!="symbol"?t.setAttribute(r,""+c):t.removeAttribute(r);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInl
49ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":c&&typeof c!="function"&&typeof c!="symbol"?t.setAttribute(r,""):t.removeAttribute(r);break;case"capture":case"download":c===!0?t.setAttribute(r,""):c!==!1&&c!=null&&typeof c!="function"&&typeof c!="symbol"?t.setAttribute(r,c):t.removeAttribute(r);break;case"cols":case"rows":case"size":case"span":c!=null&&typeof c!="function"&&typeof c!="symbol"&&!isNaN(c)&&1<=c?t.setAttribute(r,c):t.removeAttribute(r);break;case"rowSpan":case"start":c==null||typeof c=="function"||typeof c=="symbol"||isNaN(c)?t.removeAttribute(r):t.setAttribute(r,c);break;case"popover":Ie("beforetoggle",t),Ie("toggle",t),ec(t,"popover",c);break;case"xlinkActuate":cs(t,"http://www.w3.org/1999/xlink","xlink:actuate",c);break;case"xlinkArcrole":cs(t,"http://www.w3.org/1999/xlink","xlink:arcrole",c);break;case"xlinkRole":cs(t,"http://www.w3.org/1999/xlink","xlink:role",c);break;case"xlinkShow":cs(t,"http://www.w3.org/1999/xlink","xlink:show",c);break;case"xlinkTitle":cs(t,"http://www.w3.org/1999/xlink","xlink:title",c);break;case"xlinkType":cs(t,"http://www.w3.org/1999/xlink","xlink:type",c);break;case"xmlBase":cs(t,"http://www.w3.org/XML/1998/namespace","xml:base",c);break;case"xmlLang":cs(t,"http://www.w3.org/XML/1998/namespace","xml:lang",c);break;case"xmlSpace":cs(t,"http://www.w3.org/XML/1998/namespace","xml:space",c);break;case"is":ec(t,"is",c);break;case"innerText":case"textContent":break;default:(!(2<r.length)||r[0]!=="o"&&r[0]!=="O"||r[1]!=="n"&&r[1]!=="N")&&(r=Vw.get(r)||r,ec(t,r,c))}}function vm(t,s,r,c,u,p){switch(r){case"style":ig(t,c,p);break;case"dangerouslySetInnerHTML":if(c!=null){if(typeof c!="object"||!("__html"in c))throw Error(i(61));if(r=c.__html,r!=null){if(u.children!=null)throw Error(i(60));t.innerHTML=r}}break;case"children":typeof c=="string"?br(t,c):(typeof c=="number"||typeof c=="bigint")&&br(t,""+c);break;case"onScroll":c!=null&&Ie("scroll",t);break;case"onScrollEnd":c!=null&&Ie("scrollend",t);break;case"onClick":c!=null&&(t.onclick=ls);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Xh.hasOwnProperty(r))e:{if(r[0]==="o"&&r[1]==="n"&&(u=r.endsWith("Capture"),s=r.slice(2,u?r.length-7:void 0),p=t[Yt]||null,p=p!=null?p[r]:null,typeof p=="function"&&t.removeEventListener(s,p,u),typeof c=="function")){typeof p!="function"&&p!==null&&(r in t?t[r]=null:t.hasAttribute(r)&&t.removeAttribute(r)),t.addEventListener(s,c,u);break e}r in t?t[r]=c:c===!0?t.setAttribute(r,""):ec(t,r,c)}}}function Ot(t,s,r){switch(s){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ie("error",t),Ie("load",t);var c=!1,u=!1,p;for(p in r)if(r.hasOwnProperty(p)){var v=r[p];if(v!=null)switch(p){case"src":c=!0;break;case"srcSet":u=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,s));default:We(t,s,p,v,r,null)}}u&&We(t,s,"srcSet",r.srcSet,r,null),c&&We(t,s,"src",r.src,r,null);return;case"input":Ie("invalid",t);var S=p=v=u=null,T=null,G=null;for(c in r)if(r.hasOwnProperty(c)){var te=r[c];if(te!=null)switch(c){case"name":u=te;break;case"type":v=te;break;case"checked":T=te;break;case"defaultChecked":G=te;break;case"value":p=te;break;case"defaultValue":S=te;break;case"children":case"dangerouslySetInnerHTML":if(te!=null)throw Error(i(137,s));break;default:We(t,s,c,te,r,null)}}sg(t,p,S,T,G,v,u,!1);return;case"select":Ie("invalid",t),c=v=p=null;for(u in r)if(r.hasOwnProperty(u)&&(S=r[u],S!=null))switch(u){case"value":p=S;break;case"defaultValue":v=S;break;case"multiple":c=S;default:We(t,s,u,S,r,null)}s=p,r=v,t.multiple=!!c,s!=null?vr(t,!!c,s,!1):r!=null&&vr(t,!!c,r,!0);return;case"textarea":Ie("invalid",t),p=u=c=null;for(v in r)if(r.hasOwnProperty(v)&&(S=r[v],S!=null))switch(v){case"value":c=S;break;case"defaultValue":u=S;break;case"children":p=S;break;case"dangerouslySetInnerHTML":if(S!=null)throw Error(i(91));break;default:We(t,s,v,S,r,null)}rg(t,c,u,p);return;case"option":for(T in r)if(r.hasOwnProperty(T)&&(c=r[T],c!=null))switch(T){case"selected":t.selected=c&&typeof c!="function"&&typeof c!="symbol";break;default:We(t,s,T,c,r,null)}return;case"dialog":Ie("beforetoggle",t),Ie("toggle",t),Ie("cancel",t),Ie("close",t);break;case"iframe":case"object":Ie("load",t);break;case"video":case"audio":for(c=0;c<di.length;c++)Ie(di[c],t);break;case"image":Ie("error",t),Ie("load",t);break;case"details":Ie("toggle",t);break;case"embed":case"source":case"link":Ie("error",t),Ie("load",t);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(G in r)if(r.hasOwnProperty(G)&&(c=r[G],c!=null))switch(G){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,s));default:We(t,s,G,c,r,null)}return;default:if(Td(s)){for(te in r)r.hasOwnProperty(te)&&(c=r[te],c!==void 0&&vm(t,s,te,c,r,void 0));return}}for(S in r)r.hasOwnProperty(S)&&(c=r[S],c!=null&&We(t,s,S,c,r,null))}function fS(t,s,r,c){switch(s){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var u=null,p=null,v=null,S=null,T=null,G=null,te=null;for(X in r){var ne=r[X];if(r.hasOwnProperty(X)&&ne!=null)switch(X){case"checked":break;case"value":break;case"defaultValue":T=ne;default:c.hasOwnProperty(X)||We(t,s,X,null,c,ne)}}for(var J in c){var X=c[J];if(ne=r[J],c.hasOwnProperty(J)&&(X!=null||ne!=null))switch(J){case"type":p=X;break;case"name":u=X;break;case"checked":G=X;break;case"defaultChecked":te=X;break;case"value":v=X;break;case"defaultValue":S=X;break;case"children":case"dangerouslySetInnerHTML":if(X!=null)throw Error(i(137,s));break;default:X!==ne&&We(t,s,J,X,c,ne)}}kd(t,v,S,T,G,te,p,u);return;case"select":X=v=S=J=null;for(p in r)if(T=r[p],r.hasOwnProperty(p)&&T!=null)switch(p){case"value":break;case"multiple":X=T;default:c.hasOwnProperty(p)||We(t,s,p,null,c,T)}for(u in c)if(p=c[u],T=r[u],c.hasOwnProperty(u)&&(p!=null||T!=null))switch(u){case"value":J=p;break;case"defaultValue":S=p;break;case"multiple":v=p;default:p!==T&&We(t,s,u,p,c,T)}s=S,r=v,c=X,J!=null?vr(t,!!r,J,!1):!!c!=!!r&&(s!=null?vr(t,!!r,s,!0):vr(t,!!r,r?[]:"",!1));return;case"textarea":X=J=null;for(S in r)if(u=r[S],r.hasOwnProperty(S)&&u!=null&&!c.hasOwnProperty(S))switch(S){case"value":break;case"children":break;default:We(t,s,S,null,c,u)}for(v in c)if(u=c[v],p=r[v],c.hasOwnProperty(v)&&(u!=null||p!=null))switch(v){case"value":J=u;break;case"defaultValue":X=u;break;case"children":break;case"dangerouslySetInnerHTML":if(u!=null)throw Error(i(91));break;default:u!==p&&We(t,s,v,u,c,p)}ng(t,J,X);return;case"option":for(var xe in r)if(J=r[xe],r.hasOwnProperty(xe)&&J!=null&&!c.hasOwnProperty(xe))switch(xe){case"selected":t.selected=!1;break;default:We(t,s,xe,null,c,J)}for(T in c)if(J=c[T],X=r[T],c.hasOwnProperty(T)&&J!==X&&(J!=null||X!=null))switch(T){case"selected":t.selected=J&&typeof J!="function"&&typeof J!="symbol";break;default:We(t,s,T,J,c,X)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Ce in r)J=r[Ce],r.hasOwnProperty(Ce)&&J!=null&&!c.hasOwnProperty(Ce)&&We(t,s,Ce,null,c,J);for(G in c)if(J=c[G],X=r[G],c.hasOwnProperty(G)&&J!==X&&(J!=null||X!=null))switch(G){case"children":case"dangerouslySetInnerHTML":if(J!=null)throw Error(i(137,s));break;default:We(t,s,G,J,c,X)}return;default:if(Td(s)){for(var $e in r)J=r[$e],r.hasOwnProperty($e)&&J!==void 0&&!c.hasOwnProperty($e)&&vm(t,s,$e,void 0,c,J);for(te in c)J=c[te],X=r[te],!c.hasOwnProperty(te)||J===X||J===void 0&&X===void 0||vm(t,s,te,J,c,X);return}}for(var B in r)J=r[B],r.hasOwnProperty(B)&&J!=null&&!c.hasOwnProperty(B)&&We(t,s,B,null,c,J);for(ne in c)J=c[ne],X=r[ne],!c.hasOwnProperty(ne)||J===X||J==null&&X==null||We(t,s,ne,J,c,X)}function ly(t){switch(t){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function xS(){if(typeof performance.getEntriesByType=="function"){for(var t=0,s=0,r=performance.getEntriesByType("resource"),c=0;c<r.length;c++){var u=r[c],p=u.transferSize,v=u.initiatorType,S=u.duration;if(p&&S&&ly(v)){for(v=0,S=u.responseEnd,c+=1;c<r.length;c++){var T=r[c],G=T.startTime;if(G>S)break;var te=T.transferSize,ne=T.initiatorType;te&&ly(ne)&&(T=T.responseEnd,v+=te*(T<S?1:(S-G)/(T-G)))}if(--c,s+=8*(p+v)/(u.duration/1e3),t++,10<t)break}}if(0<t)return s/t/1e6}return navigator.connection&&(t=navigator.connection.downlink,typeof t=="number")?t:5}var bm=null,jm=null;function Xc(t){return t.nodeType===9?t:t.ownerDocument}function dy(t){switch(t){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function uy(t,s){if(t===0)switch(s){case"svg":return 1;case"math":return 2;default:return 0}return t===1&&s==="foreignObject"?0:t}function wm(t,s){return t==="textarea"||t==="noscript"||typeof s.children=="string"||typeof s.children=="number"||typeof s.children=="bigint"||typeof s.dangerouslySetInnerHTML=="object"&&s.dangerouslySetInnerHTML!==null&&s.dangerouslySetInnerHTML.__html!=null}var Cm=null;function yS(){var t=window.event;return t&&t.type==="popstate"?t===Cm?!1:(Cm=t,!0):(Cm=null,!1)}var my=typeof setTimeout=="function"?setTimeout:void 0,vS=typeof clearTimeout=="function"?clearTimeout:void 0,py=typeof Promise=="function"?Promise:void 0,bS=typeof queueMicrotask=="function"?queueMicrotask:typeof py<"u"?function(t){return py.resolve(null).then(t).cat
vendor: 13,730 bytes, line 49
49ch(jS)}:my;function jS(t){setTimeout(function(){throw t})}function sn(t){return t==="head"}function hy(t,s){var r=s,c=0;do{var u=r.nextSibling;if(t.removeChild(r),u&&u.nodeType===8)if(r=u.data,r==="/$"||r==="/&"){if(c===0){t.removeChild(u),$r(s);return}c--}else if(r==="$"||r==="$?"||r==="$~"||r==="$!"||r==="&")c++;else if(r==="html")mi(t.ownerDocument.documentElement);else if(r==="head"){r=t.ownerDocument.head,mi(r);for(var p=r.firstChild;p;){var v=p.nextSibling,S=p.nodeName;p[Oo]||S==="SCRIPT"||S==="STYLE"||S==="LINK"&&p.rel.toLowerCase()==="stylesheet"||r.removeChild(p),p=v}}else r==="body"&&mi(t.ownerDocument.body);r=u}while(r);$r(s)}function gy(t,s){var r=t;t=0;do{var c=r.nextSibling;if(r.nodeType===1?s?(r._stashedDisplay=r.style.display,r.style.display="none"):(r.style.display=r._stashedDisplay||"",r.getAttribute("style")===""&&r.removeAttribute("style")):r.nodeType===3&&(s?(r._stashedText=r.nodeValue,r.nodeValue=""):r.nodeValue=r._stashedText||""),c&&c.nodeType===8)if(r=c.data,r==="/$"){if(t===0)break;t--}else r!=="$"&&r!=="$?"&&r!=="$~"&&r!=="$!"||t++;r=c}while(r)}function Sm(t){var s=t.firstChild;for(s&&s.nodeType===10&&(s=s.nextSibling);s;){var r=s;switch(s=s.nextSibling,r.nodeName){case"HTML":case"HEAD":case"BODY":Sm(r),Pd(r);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(r.rel.toLowerCase()==="stylesheet")continue}t.removeChild(r)}}function wS(t,s,r,c){for(;t.nodeType===1;){var u=r;if(t.nodeName.toLowerCase()!==s.toLowerCase()){if(!c&&(t.nodeName!=="INPUT"||t.type!=="hidden"))break}else if(c){if(!t[Oo])switch(s){case"meta":if(!t.hasAttribute("itemprop"))break;return t;case"link":if(p=t.getAttribute("rel"),p==="stylesheet"&&t.hasAttribute("data-precedence"))break;if(p!==u.rel||t.getAttribute("href")!==(u.href==null||u.href===""?null:u.href)||t.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin)||t.getAttribute("title")!==(u.title==null?null:u.title))break;return t;case"style":if(t.hasAttribute("data-precedence"))break;return t;case"script":if(p=t.getAttribute("src"),(p!==(u.src==null?null:u.src)||t.getAttribute("type")!==(u.type==null?null:u.type)||t.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin))&&p&&t.hasAttribute("async")&&!t.hasAttribute("itemprop"))break;return t;default:return t}}else if(s==="input"&&t.type==="hidden"){var p=u.name==null?null:""+u.name;if(u.type==="hidden"&&t.getAttribute("name")===p)return t}else return t;if(t=Sa(t.nextSibling),t===null)break}return null}function CS(t,s,r){if(s==="")return null;for(;t.nodeType!==3;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!r||(t=Sa(t.nextSibling),t===null))return null;return t}function fy(t,s){for(;t.nodeType!==8;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!s||(t=Sa(t.nextSibling),t===null))return null;return t}function Am(t){return t.data==="$?"||t.data==="$~"}function Rm(t){return t.data==="$!"||t.data==="$?"&&t.ownerDocument.readyState!=="loading"}function SS(t,s){var r=t.ownerDocument;if(t.data==="$~")t._reactRetry=s;else if(t.data!=="$?"||r.readyState!=="loading")s();else{var c=function(){s(),r.removeEventListener("DOMContentLoaded",c)};r.addEventListener("DOMContentLoaded",c),t._reactRetry=c}}function Sa(t){for(;t!=null;t=t.nextSibling){var s=t.nodeType;if(s===1||s===3)break;if(s===8){if(s=t.data,s==="$"||s==="$!"||s==="$?"||s==="$~"||s==="&"||s==="F!"||s==="F")break;if(s==="/$"||s==="/&")return null}}return t}var Em=null;function xy(t){t=t.nextSibling;for(var s=0;t;){if(t.nodeType===8){var r=t.data;if(r==="/$"||r==="/&"){if(s===0)return Sa(t.nextSibling);s--}else r!=="$"&&r!=="$!"&&r!=="$?"&&r!=="$~"&&r!=="&"||s++}t=t.nextSibling}return null}function yy(t){t=t.previousSibling;for(var s=0;t;){if(t.nodeType===8){var r=t.data;if(r==="$"||r==="$!"||r==="$?"||r==="$~"||r==="&"){if(s===0)return t;s--}else r!=="/$"&&r!=="/&"||s++}t=t.previousSibling}return null}function vy(t,s,r){switch(s=Xc(r),t){case"html":if(t=s.documentElement,!t)throw Error(i(452));return t;case"head":if(t=s.head,!t)throw Error(i(453));return t;case"body":if(t=s.body,!t)throw Error(i(454));return t;default:throw Error(i(451))}}function mi(t){for(var s=t.attributes;s.length;)t.removeAttributeNode(s[0]);Pd(t)}var Aa=new Map,by=new Set;function Zc(t){return typeof t.getRootNode=="function"?t.getRootNode():t.nodeType===9?t:t.ownerDocument}var As=_.d;_.d={f:AS,r:RS,D:ES,C:NS,L:PS,m:OS,X:MS,S:kS,M:TS};function AS(){var t=As.f(),s=Fc();return t||s}function RS(t){var s=fr(t);s!==null&&s.tag===5&&s.type==="form"?_f(s):As.r(t)}var Kr=typeof document>"u"?null:document;function jy(t,s,r){var c=Kr;if(c&&typeof s=="string"&&s){var u=xa(s);u='link[rel="'+t+'"][href="'+u+'"]',typeof r=="string"&&(u+='[crossorigin="'+r+'"]'),by.has(u)||(by.add(u),t={rel:t,crossOrigin:r,href:s},c.querySelector(u)===null&&(s=c.createElement("link"),Ot(s,"link",t),St(s),c.head.appendChild(s)))}}function ES(t){As.D(t),jy("dns-prefetch",t,null)}function NS(t,s){As.C(t,s),jy("preconnect",t,s)}function PS(t,s,r){As.L(t,s,r);var c=Kr;if(c&&t&&s){var u='link[rel="preload"][as="'+xa(s)+'"]';s==="image"&&r&&r.imageSrcSet?(u+='[imagesrcset="'+xa(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(u+='[imagesizes="'+xa(r.imageSizes)+'"]')):u+='[href="'+xa(t)+'"]';var p=u;switch(s){case"style":p=Jr(t);break;case"script":p=Wr(t)}Aa.has(p)||(t=x({rel:"preload",href:s==="image"&&r&&r.imageSrcSet?void 0:t,as:s},r),Aa.set(p,t),c.querySelector(u)!==null||s==="style"&&c.querySelector(pi(p))||s==="script"&&c.querySelector(hi(p))||(s=c.createElement("link"),Ot(s,"link",t),St(s),c.head.appendChild(s)))}}function OS(t,s){As.m(t,s);var r=Kr;if(r&&t){var c=s&&typeof s.as=="string"?s.as:"script",u='link[rel="modulepreload"][as="'+xa(c)+'"][href="'+xa(t)+'"]',p=u;switch(c){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":p=Wr(t)}if(!Aa.has(p)&&(t=x({rel:"modulepreload",href:t},s),Aa.set(p,t),r.querySelector(u)===null)){switch(c){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(hi(p)))return}c=r.createElement("link"),Ot(c,"link",t),St(c),r.head.appendChild(c)}}}function kS(t,s,r){As.S(t,s,r);var c=Kr;if(c&&t){var u=xr(c).hoistableStyles,p=Jr(t);s=s||"default";var v=u.get(p);if(!v){var S={loading:0,preload:null};if(v=c.querySelector(pi(p)))S.loading=5;else{t=x({rel:"stylesheet",href:t,"data-precedence":s},r),(r=Aa.get(p))&&Nm(t,r);var T=v=c.createElement("link");St(T),Ot(T,"link",t),T._p=new Promise(function(G,te){T.onload=G,T.onerror=te}),T.addEventListener("load",function(){S.loading|=1}),T.addEventListener("error",function(){S.loading|=2}),S.loading|=4,el(v,s,c)}v={type:"stylesheet",instance:v,count:1,state:S},u.set(p,v)}}}function MS(t,s){As.X(t,s);var r=Kr;if(r&&t){var c=xr(r).hoistableScripts,u=Wr(t),p=c.get(u);p||(p=r.querySelector(hi(u)),p||(t=x({src:t,async:!0},s),(s=Aa.get(u))&&Pm(t,s),p=r.createElement("script"),St(p),Ot(p,"link",t),r.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},c.set(u,p))}}function TS(t,s){As.M(t,s);var r=Kr;if(r&&t){var c=xr(r).hoistableScripts,u=Wr(t),p=c.get(u);p||(p=r.querySelector(hi(u)),p||(t=x({src:t,async:!0,type:"module"},s),(s=Aa.get(u))&&Pm(t,s),p=r.createElement("script"),St(p),Ot(p,"link",t),r.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},c.set(u,p))}}function wy(t,s,r,c){var u=(u=oe.current)?Zc(u):null;if(!u)throw Error(i(446));switch(t){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(s=Jr(r.href),r=xr(u).hoistableStyles,c=r.get(s),c||(c={type:"style",instance:null,count:0,state:null},r.set(s,c)),c):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){t=Jr(r.href);var p=xr(u).hoistableStyles,v=p.get(t);if(v||(u=u.ownerDocument||u,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},p.set(t,v),(p=u.querySelector(pi(t)))&&!p._p&&(v.instance=p,v.state.loading=5),Aa.has(t)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},Aa.set(t,r),p||DS(u,t,r,v.state))),s&&c===null)throw Error(i(528,""));return v}if(s&&c!==null)throw Error(i(529,""));return null;case"script":return s=r.async,r=r.src,typeof r=="string"&&s&&typeof s!="function"&&typeof s!="symbol"?(s=Wr(r),r=xr(u).hoistableScripts,c=r.get(s),c||(c={type:"script",instance:null,count:0,state:null},r.set(s,c)),c):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,t))}}function Jr(t){return'href="'+xa(t)+'"'}function pi(t){return'link[rel="stylesheet"]['+t+"]"}function Cy(t){return x({},t,{"data-precedence":t.precedence,precedence:null})}function DS(t,s,r,c){t.querySelector('link[rel="preload"][as="style"]['+s+"]")?c.loading=1:(s=t.createElement("link"),c.preload=s,s.addEventListener("load",function(){return c.loading|=1}),s.addEventListener("error",function(){return c.loading|=2}),Ot(s,"link",r),St(s),t.head.appendChild(s))}function Wr(t){return'[src="'+xa(t)+'"]'}function hi(t){return"script[async]"+t}function Sy(t,s,r){if(s.count++,s.instance===null)switch(s.type){case"style":var c=t.querySelector('style[data-href~="'+xa(r.href)+'"]');if(c)return s.instance=c,St(c),c;var u=x({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return c=(t.ownerDocument||t).createElement("style"),St(c),Ot(c,"style",u),el(c,r.precedence,t),s.instance=c;case"stylesheet":u=Jr(r.href);var p=t.querySelector(pi(u));if(p)return s.state.loading|=4,s.instance=p,St(p),p;c=Cy(r),(u=Aa.get(u))&&Nm(c,u),p=(t.ownerDocument||t).createElement("link"),St(p);var v=p;return v._p=new Promise(function(S,T){v.onload=S,v.onerror=T}),Ot(p,"link",c),s.state.loading|=4,el(p,r.precedence,t),s.instance=p;case"script":return p=Wr(r.src),(u=t.querySelector(hi(p)))?(s.instance=u,St(u),u):(c=r,(u=Aa.get(p))&&(c=x({},r),Pm(c,u)),t=t.ownerDocument||t,u=t.createElement("script"),St(u),Ot(u,"link",c),t.head.appendChild(u),s.instance=u);case"void":return null;default:throw Error(i(443,s.type))}else s.type==="stylesheet"&&(s.state.loading&4)===0&&(c=s.instance,s.state.loading|=4,el(c,r.precedence,t));return s.instance}function el(t,s,r){for(var c=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=c.length?c[c.length-1]:null,p=u,v=0;v<c.length;v++){var S=c[v];if(S.dataset.precedence===s)p=S;else if(p!==u)break}p?p.parentNode.insertBefore(t,p.nextSibling):(s=r.nodeType===9?r.head:r,s.insertBefore(t,s.firstChild))}function Nm(t,s){t.crossOrigin==null&&(t.crossOrigin=s.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=s.referrerPolicy),t.title==null&&(t.title=s.title)}function Pm(t,s){t.crossOrigin==null&&(t.crossOrigin=s.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=s.referrerPolicy),t.integrity==null&&(t.integrity=s.integrity)}var tl=null;function Ay(t,s,r){if(tl===null){var c=new Map,u=tl=new Map;u.set(r,c)}else u=tl,c=u.get(r),c||(c=new Map,u.set(r,c));if(c.has(t))return c;for(c.set(t,null),r=r.getElementsByTagName(t),u=0;u<r.length;u++){var p=r[u];if(!(p[Oo]||p[Rt]||t==="link"&&p.getAttribute("rel")==="stylesheet")&&p.namespaceURI!=="http://www.w3.org/2000/svg"){var v=p.getAttribute(s)||"";v=t+v;var S=c.get(v);S?S.push(p):c.set(v,[p])}}return c}function Ry(t,s,r){t=t.ownerDocument||t,t.head.insertBefore(r,s==="title"?t.querySelector("head > title"):null)}function LS(t,s,r){if(r===1||s.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof s.precedence!="string"||typeof s.href!="string"||s.href==="")break;return!0;case"link":if(typeof s.rel!="string"||typeof s.href!="string"||s.href===""||s.onLoad||s.onError)break;switch(s.rel){case"stylesheet":return t=s.disabled,typeof s.precedence=="string"&&t==null;default:return!0}case"script":if(s.async&&typeof s.async!="function"&&typeof s.async!="symbol"&&!s.onLoad&&!s.onError&&s.src&&typeof s.src=="string")return!0}return!1}function Ey(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function IS(t,s,r,c){if(r.type==="stylesheet"&&(typeof c.media!="string"||matchMedia(c.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var u=Jr(c.href),p=s.querySelector(pi(u));if(p){s=p._p,s!==null&&typeof s=="object"&&typeof s.then=="function"&&(t.count++,t=al.bind(t),s.then(t,t)),r.state.loading|=4,r.instance=p,St(p);return}p=s.ownerDocument||s,c=Cy(c),(u=Aa.get(u))&&Nm(c,u),p=p.createElement("link"),St(p);var v=p;v._p=new Promise(function(S,T){v.onload=S,v.onerror=T}),Ot(p,"link",c),r.instance=p}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(r,s),(s=r.state.preload)&&(r.state.loading&3)===0&&(t.count++,r=al.bind(t),s.addEventListener("load",r),s.addEventListener("error",r))}}var Om=0;function _S(t,s){return t.stylesheets&&t.count===0&&nl(t,t.stylesheets),0<t.count||0<t.imgCount?function(r){var c=setTimeout(function(){if(t.stylesheets&&nl(t,t.stylesheets),t.unsuspend){var p=t.unsuspend;t.unsuspend=null,p()}},6e4+s);0<t.imgBytes&&Om===0&&(Om=62500*xS());var u=setTimeout(function(){if(t.waitingForImages=!1,t.count===0&&(t.stylesheets&&nl(t,t.stylesheets),t.unsuspend)){var p=t.unsuspend;t.unsuspend=null,p()}},(t.imgBytes>Om?50:800)+s);return t.unsuspend=r,function(){t.unsuspend=null,clearTimeout(c),clearTimeout(u)}}:null}function al(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)nl(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var sl=null;function nl(t,s){t.stylesheets=null,t.unsuspend!==null&&(t.count++,sl=new Map,s.forEac
vendor: 12,077 bytes, line 49
49h(zS,t),sl=null,al.call(t))}function zS(t,s){if(!(s.state.loading&4)){var r=sl.get(t);if(r)var c=r.get(null);else{r=new Map,sl.set(t,r);for(var u=t.querySelectorAll("link[data-precedence],style[data-precedence]"),p=0;p<u.length;p++){var v=u[p];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(r.set(v.dataset.precedence,v),c=v)}c&&r.set(null,c)}u=s.instance,v=u.getAttribute("data-precedence"),p=r.get(v)||c,p===c&&r.set(null,u),r.set(v,u),this.count++,c=al.bind(this),u.addEventListener("load",c),u.addEventListener("error",c),p?p.parentNode.insertBefore(u,p.nextSibling):(t=t.nodeType===9?t.head:t,t.insertBefore(u,t.firstChild)),s.state.loading|=4}}var gi={$$typeof:q,Provider:null,Consumer:null,_currentValue:z,_currentValue2:z,_threadCount:0};function qS(t,s,r,c,u,p,v,S,T){this.tag=1,this.containerInfo=t,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=zs(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zs(0),this.hiddenUpdates=zs(null),this.identifierPrefix=c,this.onUncaughtError=u,this.onCaughtError=p,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=T,this.incompleteTransitions=new Map}function Ny(t,s,r,c,u,p,v,S,T,G,te,ne){return t=new qS(t,s,r,v,T,G,te,ne,S),s=1,p===!0&&(s|=24),p=na(3,null,null,s),t.current=p,p.stateNode=t,s=lu(),s.refCount++,t.pooledCache=s,s.refCount++,p.memoizedState={element:c,isDehydrated:r,cache:s},pu(p),t}function Py(t){return t?(t=Er,t):Er}function Oy(t,s,r,c,u,p){u=Py(u),c.context===null?c.context=u:c.pendingContext=u,c=Gs(s),c.payload={element:r},p=p===void 0?null:p,p!==null&&(c.callback=p),r=Ys(t,c,s),r!==null&&(Zt(r,t,s),Yo(r,t,s))}function ky(t,s){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var r=t.retryLane;t.retryLane=r!==0&&r<s?r:s}}function km(t,s){ky(t,s),(t=t.alternate)&&ky(t,s)}function My(t){if(t.tag===13||t.tag===31){var s=Dn(t,67108864);s!==null&&Zt(s,t,67108864),km(t,67108864)}}function Ty(t){if(t.tag===13||t.tag===31){var s=la();s=pr(s);var r=Dn(t,s);r!==null&&Zt(r,t,s),km(t,s)}}var rl=!0;function BS(t,s,r,c){var u=A.T;A.T=null;var p=_.p;try{_.p=2,Mm(t,s,r,c)}finally{_.p=p,A.T=u}}function HS(t,s,r,c){var u=A.T;A.T=null;var p=_.p;try{_.p=8,Mm(t,s,r,c)}finally{_.p=p,A.T=u}}function Mm(t,s,r,c){if(rl){var u=Tm(c);if(u===null)ym(t,s,c,ol,r),Ly(t,c);else if(VS(u,t,s,r,c))c.stopPropagation();else if(Ly(t,c),s&4&&-1<US.indexOf(t)){for(;u!==null;){var p=fr(u);if(p!==null)switch(p.tag){case 3:if(p=p.stateNode,p.current.memoizedState.isDehydrated){var v=Va(p.pendingLanes);if(v!==0){var S=p;for(S.pendingLanes|=2,S.entangledLanes|=2;v;){var T=1<<31-kt(v);S.entanglements[1]|=T,v&=~T}Ya(p),(Fe&6)===0&&(Uc=zt()+500,li(0))}}break;case 31:case 13:S=Dn(p,2),S!==null&&Zt(S,p,2),Fc(),km(p,2)}if(p=Tm(c),p===null&&ym(t,s,c,ol,r),p===u)break;u=p}u!==null&&c.stopPropagation()}else ym(t,s,c,null,r)}}function Tm(t){return t=Ld(t),Dm(t)}var ol=null;function Dm(t){if(ol=null,t=gr(t),t!==null){var s=d(t);if(s===null)t=null;else{var r=s.tag;if(r===13){if(t=m(s),t!==null)return t;t=null}else if(r===31){if(t=h(s),t!==null)return t;t=null}else if(r===3){if(s.stateNode.current.memoizedState.isDehydrated)return s.tag===3?s.stateNode.containerInfo:null;t=null}else s!==t&&(t=null)}}return ol=t,null}function Dy(t){switch(t){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Ad()){case An:return 2;case Xi:return 8;case Rn:case No:return 32;case is:return 268435456;default:return 32}default:return 32}}var Lm=!1,nn=null,rn=null,on=null,fi=new Map,xi=new Map,cn=[],US="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Ly(t,s){switch(t){case"focusin":case"focusout":nn=null;break;case"dragenter":case"dragleave":rn=null;break;case"mouseover":case"mouseout":on=null;break;case"pointerover":case"pointerout":fi.delete(s.pointerId);break;case"gotpointercapture":case"lostpointercapture":xi.delete(s.pointerId)}}function yi(t,s,r,c,u,p){return t===null||t.nativeEvent!==p?(t={blockedOn:s,domEventName:r,eventSystemFlags:c,nativeEvent:p,targetContainers:[u]},s!==null&&(s=fr(s),s!==null&&My(s)),t):(t.eventSystemFlags|=c,s=t.targetContainers,u!==null&&s.indexOf(u)===-1&&s.push(u),t)}function VS(t,s,r,c,u){switch(s){case"focusin":return nn=yi(nn,t,s,r,c,u),!0;case"dragenter":return rn=yi(rn,t,s,r,c,u),!0;case"mouseover":return on=yi(on,t,s,r,c,u),!0;case"pointerover":var p=u.pointerId;return fi.set(p,yi(fi.get(p)||null,t,s,r,c,u)),!0;case"gotpointercapture":return p=u.pointerId,xi.set(p,yi(xi.get(p)||null,t,s,r,c,u)),!0}return!1}function Iy(t){var s=gr(t.target);if(s!==null){var r=d(s);if(r!==null){if(s=r.tag,s===13){if(s=m(r),s!==null){t.blockedOn=s,Jh(t.priority,function(){Ty(r)});return}}else if(s===31){if(s=h(r),s!==null){t.blockedOn=s,Jh(t.priority,function(){Ty(r)});return}}else if(s===3&&r.stateNode.current.memoizedState.isDehydrated){t.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}t.blockedOn=null}function il(t){if(t.blockedOn!==null)return!1;for(var s=t.targetContainers;0<s.length;){var r=Tm(t.nativeEvent);if(r===null){r=t.nativeEvent;var c=new r.constructor(r.type,r);Dd=c,r.target.dispatchEvent(c),Dd=null}else return s=fr(r),s!==null&&My(s),t.blockedOn=r,!1;s.shift()}return!0}function _y(t,s,r){il(t)&&r.delete(s)}function FS(){Lm=!1,nn!==null&&il(nn)&&(nn=null),rn!==null&&il(rn)&&(rn=null),on!==null&&il(on)&&(on=null),fi.forEach(_y),xi.forEach(_y)}function cl(t,s){t.blockedOn===s&&(t.blockedOn=null,Lm||(Lm=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,FS)))}var ll=null;function zy(t){ll!==t&&(ll=t,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){ll===t&&(ll=null);for(var s=0;s<t.length;s+=3){var r=t[s],c=t[s+1],u=t[s+2];if(typeof c!="function"){if(Dm(c||r)===null)continue;break}var p=fr(r);p!==null&&(t.splice(s,3),s-=3,Tu(p,{pending:!0,data:u,method:r.method,action:c},c,u))}}))}function $r(t){function s(T){return cl(T,t)}nn!==null&&cl(nn,t),rn!==null&&cl(rn,t),on!==null&&cl(on,t),fi.forEach(s),xi.forEach(s);for(var r=0;r<cn.length;r++){var c=cn[r];c.blockedOn===t&&(c.blockedOn=null)}for(;0<cn.length&&(r=cn[0],r.blockedOn===null);)Iy(r),r.blockedOn===null&&cn.shift();if(r=(t.ownerDocument||t).$$reactFormReplay,r!=null)for(c=0;c<r.length;c+=3){var u=r[c],p=r[c+1],v=u[Yt]||null;if(typeof p=="function")v||zy(r);else if(v){var S=null;if(p&&p.hasAttribute("formAction")){if(u=p,v=p[Yt]||null)S=v.formAction;else if(Dm(u)!==null)continue}else S=v.action;typeof S=="function"?r[c+1]=S:(r.splice(c,3),c-=3),zy(r)}}}function qy(){function t(p){p.canIntercept&&p.info==="react-transition"&&p.intercept({handler:function(){return new Promise(function(v){return u=v})},focusReset:"manual",scroll:"manual"})}function s(){u!==null&&(u(),u=null),c||setTimeout(r,20)}function r(){if(!c&&!navigation.transition){var p=navigation.currentEntry;p&&p.url!=null&&navigation.navigate(p.url,{state:p.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var c=!1,u=null;return navigation.addEventListener("navigate",t),navigation.addEventListener("navigatesuccess",s),navigation.addEventListener("navigateerror",s),setTimeout(r,100),function(){c=!0,navigation.removeEventListener("navigate",t),navigation.removeEventListener("navigatesuccess",s),navigation.removeEventListener("navigateerror",s),u!==null&&(u(),u=null)}}}function Im(t){this._internalRoot=t}dl.prototype.render=Im.prototype.render=function(t){var s=this._internalRoot;if(s===null)throw Error(i(409));var r=s.current,c=la();Oy(r,c,t,s,null,null)},dl.prototype.unmount=Im.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var s=t.containerInfo;Oy(t.current,2,null,t,null,null),Fc(),s[hr]=null}};function dl(t){this._internalRoot=t}dl.prototype.unstable_scheduleHydration=function(t){if(t){var s=Ed();t={blockedOn:null,target:t,priority:s};for(var r=0;r<cn.length&&s!==0&&s<cn[r].priority;r++);cn.splice(r,0,t),r===0&&Iy(t)}};var By=n.version;if(By!=="19.2.1")throw Error(i(527,By,"19.2.1"));_.findDOMNode=function(t){var s=t._reactInternals;if(s===void 0)throw typeof t.render=="function"?Error(i(188)):(t=Object.keys(t).join(","),Error(i(268,t)));return t=f(s),t=t!==null?y(t):null,t=t===null?null:t.stateNode,t};var QS={bundleType:0,version:"19.2.1",rendererPackageName:"react-dom",currentDispatcherRef:A,reconcilerVersion:"19.2.1"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ul.isDisabled&&ul.supportsFiber)try{En=ul.inject(QS),qt=ul}catch{}}return ji.createRoot=function(t,s){if(!l(t))throw Error(i(299));var r=!1,c="",u=Yf,p=Kf,v=Jf;return s!=null&&(s.unstable_strictMode===!0&&(r=!0),s.identifierPrefix!==void 0&&(c=s.identifierPrefix),s.onUncaughtError!==void 0&&(u=s.onUncaughtError),s.onCaughtError!==void 0&&(p=s.onCaughtError),s.onRecoverableError!==void 0&&(v=s.onRecoverableError)),s=Ny(t,1,!1,null,null,r,c,null,u,p,v,qy),t[hr]=s.current,xm(t),new Im(s)},ji.hydrateRoot=function(t,s,r){if(!l(t))throw Error(i(299));var c=!1,u="",p=Yf,v=Kf,S=Jf,T=null;return r!=null&&(r.unstable_strictMode===!0&&(c=!0),r.identifierPrefix!==void 0&&(u=r.identifierPrefix),r.onUncaughtError!==void 0&&(p=r.onUncaughtError),r.onCaughtError!==void 0&&(v=r.onCaughtError),r.onRecoverableError!==void 0&&(S=r.onRecoverableError),r.formState!==void 0&&(T=r.formState)),s=Ny(t,1,!0,s,r??null,c,u,T,p,v,S,qy),s.context=Py(null),r=s.current,c=la(),c=pr(c),u=Gs(c),u.callback=null,Ys(r,u,c),r=c,s.current.lanes=r,ot(s,r),Ya(s),t[hr]=s.current,xm(t),new dl(s)},ji.version="19.2.1",ji}var mv;function lR(){if(mv)return Vm.exports;mv=1;function a(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(n){console.error(n)}}return a(),Vm.exports=cR(),Vm.exports}var dR=lR(),uR=(function(){function a(){this.keyToValue=new Map,this.valueToKey=new Map}return a.prototype.set=function(n,o){this.keyToValue.set(n,o),this.valueToKey.set(o,n)},a.prototype.getByKey=function(n){return this.keyToValue.get(n)},a.prototype.getByValue=function(n){return this.valueToKey.get(n)},a.prototype.clear=function(){this.keyToValue.clear(),this.valueToKey.clear()},a})(),j1=(function(){function a(n){this.generateIdentifier=n,this.kv=new uR}return a.prototype.register=function(n,o){this.kv.getByValue(n)||(o||(o=this.generateIdentifier(n)),this.kv.set(o,n))},a.prototype.clear=function(){this.kv.clear()},a.prototype.getIdentifier=function(n){return this.kv.getByValue(n)},a.prototype.getValue=function(n){return this.kv.getByKey(n)},a}
49)(),mR=(function(){var a=function(n,o){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,l){i.__proto__=l}||function(i,l){for(var d in l)Object.prototype.hasOwnProperty.call(l,d)&&(i[d]=l[d])},a(n,o)};return function(n,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");a(n,o);function i(){this.constructor=n}n.prototype=o===null?Object.create(o):(i.prototype=o.prototype,new i)}})(),pR=(function(a){mR(n,a);function n(){var o=a.call(this,function(i){return i.name})||this;return o.classToAllowedProps=new Map,o}return n.prototype.register=function(o,i){typeof i=="object"?(i.allowProps&&this.classToAllowedProps.set(o,i.allowProps),a.prototype.register.call(this,o,i.identifier)):a.prototype.register.call(this,o,i)},n.prototype.getAllowedProps=function(o){return this.classToAllowedProps.get(o)},n})(j1),hR=function(a,n){var o=typeof Symbol=="function"&&a[Symbol.iterator];if(!o)return a;var i=o.call(a),l,d=[],m;try{for(;(n===void 0||n-- >0)&&!(l=i.next()).done;)d.push(l.value)}catch(h){m={error:h}}finally{try{l&&!l.done&&(o=i.return)&&o.call(i)}finally{if(m)throw m.error}}return d};function gR(a){if("values"in Object)return Object.values(a);var n=[];for(var o in a)a.hasOwnProperty(o)&&n.push(a[o]);return n}function fR(a,n){var o=gR(a);if("find"in o)return o.find(n);for(var i=o,l=0;l<i.length;l++){var d=i[l];if(n(d))return d}}function ho(a,n){Object.entries(a).forEach(function(o){var i=hR(o,2),l=i[0],d=i[1];return n(d,l)})}function Ml(a,n){return a.indexOf(n)!==-1}function pv(a,n){for(var o=0;o<a.length;o++){var i=a[o];if(n(i))return i}}var xR=(function(){function a(){this.transfomers={}}return a.prototype.register=function(n){this.transfomers[n.name]=n},a.prototype.findApplicable=function(n){return fR(this.transfomers,function(o){return o.isApplicable(n)})},a.prototype.findByName=function(n){return this.transfomers[n]},a})(),yR=function(a){return Object.prototype.toString.call(a).slice(8,-1)},w1=function(a){return typeof a>"u"},vR=function(a){return a===null},ki=function(a){return typeof a!="object"||a===null||a===Object.prototype?!1:Object.getPrototypeOf(a)===null?!0:Object.getPrototypeOf(a)===Object.prototype},Ep=function(a){return ki(a)&&Object.keys(a).length===0},xn=function(a){return Array.isArray(a)},bR=function(a){return typeof a=="string"},jR=function(a){return typeof a=="number"&&!isNaN(a)},wR=function(a){return typeof a=="boolean"},CR=function(a){return a instanceof RegExp},Mi=function(a){return a instanceof Map},Ti=function(a){return a instanceof Set},C1=function(a){return yR(a)==="Symbol"},SR=function(a){return a instanceof Date&&!isNaN(a.valueOf())},AR=function(a){return a instanceof Error},hv=function(a){return typeof a=="number"&&isNaN(a)},RR=function(a){return wR(a)||vR(a)||w1(a)||jR(a)||bR(a)||C1(a)},ER=function(a){return typeof a=="bigint"},NR=function(a){return a===1/0||a===-1/0},PR=function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},OR=function(a){return a instanceof URL},S1=function(a){return a.replace(/\./g,"\\.")},Ym=function(a){return a.map(String).map(S1).join(".")},Ei=function(a){for(var n=[],o="",i=0;i<a.length;i++){var l=a.charAt(i),d=l==="\\"&&a.charAt(i+1)===".";if(d){o+=".",i++;continue}var m=l===".";if(m){n.push(o),o="";continue}o+=l}var h=o;return n.push(h),n},Np=function(){return Np=Object.assign||function(a){for(var n,o=1,i=arguments.length;o<i;o++){n=arguments[o];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(a[l]=n[l])}return a},Np.apply(this,arguments)},Pp=function(a,n){var o=typeof Symbol=="function"&&a[Symbol.iterator];if(!o)return a;var i=o.call(a),l,d=[],m;try{for(;(n===void 0||n-- >0)&&!(l=i.next()).done;)d.push(l.value)}catch(h){m={error:h}}finally{try{l&&!l.done&&(o=i.return)&&o.call(i)}finally{if(m)throw m.error}}return d},Op=function(a,n){for(var o=0,i=n.length,l=a.length;o<i;o++,l++)a[l]=n[o];return a};function Ka(a,n,o,i){return{isApplicable:a,annotation:n,transform:o,untransform:i}}var A1=[Ka(w1,"undefined",function(){return null},function(){}),Ka(ER,"bigint",function(a){return a.toString()},function(a){return typeof BigInt<"u"?BigInt(a):(console.error("Please add a BigInt polyfill."),a)}),Ka(SR,"Date",function(a){return a.toISOString()},function(a){return new Date(a)}),Ka(AR,"Error",function(a,n){var o={name:a.name,message:a.message};return n.allowedErrorProps.forEach(function(i){o[i]=a[i]}),o},function(a,n){var o=new Error(a.message);return o.name=a.name,o.stack=a.stack,n.allowedErrorProps.forEach(function(i){o[i]=a[i]}),o}),Ka(CR,"regexp",function(a){return""+a},function(a){var n=a.slice(1,a.lastIndexOf("/")),o=a.slice(a.lastIndexOf("/")+1);return new RegExp(n,o)}
49),Ka(Ti,"set",function(a){return Op([],Pp(a.values()))},function(a){return new Set(a)}),Ka(Mi,"map",function(a){return Op([],Pp(a.entries()))},function(a){return new Map(a)}),Ka(function(a){return hv(a)||NR(a)},"number",function(a){return hv(a)?"NaN":a>0?"Infinity":"-Infinity"},Number),Ka(function(a){return a===0&&1/a===-1/0},"number",function(){return"-0"},Number),Ka(OR,"URL",function(a){return a.toString()},function(a){return new URL(a)})];function nd(a,n,o,i){return{isApplicable:a,annotation:n,transform:o,untransform:i}}var R1=nd(function(a,n){if(C1(a)){var o=!!n.symbolRegistry.getIdentifier(a);return o}return!1},function(a,n){var o=n.symbolRegistry.getIdentifier(a);return["symbol",o]},function(a){return a.description},function(a,n,o){var i=o.symbolRegistry.getValue(n[1]);if(!i)throw new Error("Trying to deserialize unknown symbol");return i}),kR=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce(function(a,n){return a[n.name]=n,a},{}),E1=nd(PR,function(a){return["typed-array",a.constructor.name]},function(a){return Op([],Pp(a))},function(a,n){var o=kR[n[1]];if(!o)throw new Error("Trying to deserialize unknown typed array");return new o(a)});function N1(a,n){if(a?.constructor){var o=!!n.classRegistry.getIdentifier(a.constructor);return o}return!1}var P1=nd(N1,function(a,n){var o=n.classRegistry.getIdentifier(a.constructor);return["class",o]},function(a,n){var o=n.classRegistry.getAllowedProps(a.constructor);if(!o)return Np({},a);var i={};return o.forEach(function(l){i[l]=a[l]}),i},function(a,n,o){var i=o.classRegistry.getValue(n[1]);if(!i)throw new Error("Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564");return Object.assign(Object.create(i.prototype),a)}),O1=nd(function(a,n){return!!n.customTransformerRegistry.findApplicable(a)},function(a,n){var o=n.customTransformerRegistry.findApplicable(a);return["custom",o.name]},function(a,n){var o=n.customTransformerRegistry.findApplicable(a);return o.serialize(a)},function(a,n,o){var i=o.customTransformerRegistry.findByName(n[1]);if(!i)throw new Error("Trying to deserialize unknown custom value");return i.deserialize(a)}),MR=[P1,R1,O1,E1],gv=function(a,n){var o=pv(MR,function(l){return l.isApplicable(a,n)});if(o)return{value:o.transform(a,n),type:o.annotation(a,n)};var i=pv(A1,function(l){return l.isApplicable(a,n)});if(i)return{value:i.transform(a,n),type:i.annotation}},k1={};A1.forEach(function(a){k1[a.annotation]=a});var TR=function(a,n,o){if(xn(n))switch(n[0]){case"symbol":return R1.untransform(a,n,o);case"class":return P1.untransform(a,n,o);case"custom":return O1.untransform(a,n,o);case"typed-array":return E1.untransform(a,n,o);default:throw new Error("Unknown transformation: "+n)}else{var i=k1[n];if(!i)throw new Error("Unknown transformation: "+n);return i.untransform(a,o)}},co=function(a,n){for(var o=a.keys();n>0;)o.next(),n--;return o.next().value};function M1(a){if(Ml(a,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(Ml(a,"prototype"))throw new Error("prototype is not allowed as a property");if(Ml(a,"constructor"))throw new Error("constructor is not allowed as a property")}var DR=function(a,n){M1(n);for(var o=0;o<n.length;o++){var i=n[o];if(Ti(a))a=co(a,+i);else if(Mi(a)){var l=+i,d=+n[++o]==0?"key":"value",m=co(a,l);switch(d){case"key":a=m;break;case"value":a=a.get(m);break}}else a=a[i]}return a},kp=function(a,n,o){if(M1(n),n.length===0)return o(a);for(var i=a,l=0;l<n.length-1;l++){var d=n[l];if(xn(i)){var m=+d;i=i[m]}else if(ki(i))i=i[d];else if(Ti(i)){var h=+d;i=co(i,h)}else if(Mi(i)){var g=l===n.length-2;if(g)break;var h=+d,f=+n[++l]==0?"key":"value",y=co(i,h);switch(f){case"key":i=y;break;case"value":i=i.get(y);break}}}var x=n[n.length-1];if(xn(i)?i[+x]=o(i[+x]):ki(i)&&(i[x]=o(i[x])),Ti(i)){var j=co(i,+x),C=o(j);j!==C&&(i.delete(j),i.add(C))}if(Mi(i)){var h=+n[n.length-2],R=co(i,h),f=+x==0?"key":"value";switch(f){case"key":{var w=o(R);i.set(w,i.get(R)),w!==R&&i.delete(R);break}case"value":{i.set(R,o(i.get(R)));break}}}return a},Ps=function(a,n){var o=typeof Symbol=="function"&&a[Symbol.iterator];if(!o)return a;var i=o.call(a),l,d=[],m;
49try{for(;(n===void 0||n-- >0)&&!(l=i.next()).done;)d.push(l.value)}catch(h){m={error:h}}finally{try{l&&!l.done&&(o=i.return)&&o.call(i)}finally{if(m)throw m.error}}return d},hn=function(a,n){for(var o=0,i=n.length,l=a.length;o<i;o++,l++)a[l]=n[o];return a};function Mp(a,n,o){if(o===void 0&&(o=[]),!!a){if(!xn(a)){ho(a,function(m,h){return Mp(m,n,hn(hn([],Ps(o)),Ps(Ei(h))))});return}var i=Ps(a,2),l=i[0],d=i[1];d&&ho(d,function(m,h){Mp(m,n,hn(hn([],Ps(o)),Ps(Ei(h))))}),n(l,o)}}function LR(a,n,o){return Mp(n,function(i,l){a=kp(a,l,function(d){return TR(d,i,o)})}),a}function IR(a,n){function o(m,h){var g=DR(a,Ei(h));m.map(Ei).forEach(function(f){a=kp(a,f,function(){return g})})}if(xn(n)){var i=Ps(n,2),l=i[0],d=i[1];l.forEach(function(m){a=kp(a,Ei(m),function(){return a})}),d&&ho(d,o)}else ho(n,o);return a}var _R=function(a,n){return ki(a)||xn(a)||Mi(a)||Ti(a)||N1(a,n)};function zR(a,n,o){var i=o.get(a);i?i.push(n):o.set(a,[n])}function qR(a,n){var o={},i=void 0;return a.forEach(function(l){if(!(l.length<=1)){n||(l=l.map(function(g){return g.map(String)}).sort(function(g,f){return g.length-f.length}));var d=Ps(l),m=d[0],h=d.slice(1);m.length===0?i=h.map(Ym):o[Ym(m)]=h.map(Ym)}}),i?Ep(o)?[i]:[i,o]:Ep(o)?void 0:o}var T1=function(a,n,o,i,l,d,m){var h;l===void 0&&(l=[]),d===void 0&&(d=[]),m===void 0&&(m=new Map);var g=RR(a);if(!g){zR(a,l,n);var f=m.get(a);if(f)return i?{transformedValue:null}:f}if(!_R(a,o)){var y=gv(a,o),x=y?{transformedValue:y.value,annotations:[y.type]}:{transformedValue:a};return g||m.set(a,x),x}if(Ml(d,a))return{transformedValue:null};var j=gv(a,o),C=(h=j?.value)!==null&&h!==void 0?h:a,R=xn(C)?[]:{},w={};ho(C,function(k,D){var q=T1(k,n,o,i,hn(hn([],Ps(l)),[D]),hn(hn([],Ps(d)),[a]),m);R[D]=q.transformedValue,xn(q.annotations)?w[D]=q.annotations:ki(q.annotations)&&ho(q.annotations,function(K,N){w[S1(D)+"."+N]=K})});var E=Ep(w)?{transformedValue:R,annotations:j?[j.type]:void 0}:{transformedValue:R,annotations:j?[j.type,w]:w};return g||m.set(a,E),E};function D1(a){return Object.prototype.toString.call(a).slice(8,-1)}function fv(a){return D1(a)==="Array"}function BR(a){if(D1(a)!=="Object")return!1;const n=Object.getPrototypeOf(a);return!!n&&n.constructor===Object&&n===Object.prototype}function HR(a,n,o,i,l){const d={}.propertyIsEnumerable.call(i,n)?"enumerable":"nonenumerable";d==="enumerable"&&(a[n]=o),l&&d==="nonenumerable"&&Object.defineProperty(a,n,{value:o,enumerable:!1,writable:!0,configurable:!0})}function Tp(a,n={}){if(fv(a))return a.map(l=>Tp(l,n));if(!BR(a))return a;const o=Object.getOwnPropertyNames(a),i=Object.getOwnPropertySymbols(a);return[...o,...i].reduce((l,d)=>{if(fv(n.props)&&!n.props.includes(d))return l;const m=a[d],h=Tp(m,n);return HR(l,d,h,a,n.nonenumerable),l},{})}var Jn=function(){return Jn=Object.assign||function(a){for(var n,o=1,i=arguments.length;o<i;o++){n=arguments[o];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(a[l]=n[l])}return a},Jn.apply(this,arguments)},UR=function(a,n){var o=typeof Symbol=="function"&&a[Symbol.iterator];if(!o)return a;var i=o.call(a),l,d=[],m;try{for(;(n===void 0||n-- >0)&&!(l=i.next()).done;)d.push(l.value)}catch(h){m={error:h}}finally{try{l&&!l.done&&(o=i.return)&&o.call(i)}finally{if(m)throw m.error}}return d},VR=function(a,n){for(var o=0,i=n.length,l=a.length;o<i;o++,l++)a[l]=n[o];return a},Ds=(function(){function a(n){var o=n===void 0?{}:n,i=o.dedupe,l=i===void 0?!1:i;this.classRegistry=new pR,this.symbolRegistry=new j1(function(d){var m;return(m=d.description)!==null&&m!==void 0?m:""}),this.customTransformerRegistry=new xR,this.allowedErrorProps=[],this.dedupe=l}return a.prototype.serialize=function(n){var o=new Map,i=T1(n,o,this,this.dedupe),l={json:i.transformedValue};i.annotations&&(l.meta=Jn(Jn({},l.meta),{values:i.annotations}));var d=qR(o,this.dedupe);return d&&(l.meta=Jn(Jn({},l.meta),{referentialEqualities:d})),l},a.prototype.deserialize=function(n){var o=n.json,i=n.meta,l=Tp(o);return i?.values&&(l=LR(l,i.values,this)),i?.referentialEqualities&&(l=IR(l,i.referentialEqualities)),l},a.prototype.stringify=function(n){return JSON.stringify(this.serialize(n))},a.prototype.parse=function(n){return this.deserialize(JSON.parse(n))},a.prototype.registerClass=function(n,o){this.classRegistry.register(n,o)},a.prototype.registerSymbol=function(n,o){this.symbolRegistry.register(n,o)},a.prototype.registerCustom=function(n,o){this.customTransformerRegistry.register(Jn({name:o}
vendor: 4,784 bytes, line 49
49,n))},a.prototype.allowErrorProps=function(){for(var n,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];(n=this.allowedErrorProps).push.apply(n,VR([],UR(o)))},a.defaultInstance=new a,a.serialize=a.defaultInstance.serialize.bind(a.defaultInstance),a.deserialize=a.defaultInstance.deserialize.bind(a.defaultInstance),a.stringify=a.defaultInstance.stringify.bind(a.defaultInstance),a.parse=a.defaultInstance.parse.bind(a.defaultInstance),a.registerClass=a.defaultInstance.registerClass.bind(a.defaultInstance),a.registerSymbol=a.defaultInstance.registerSymbol.bind(a.defaultInstance),a.registerCustom=a.defaultInstance.registerCustom.bind(a.defaultInstance),a.allowErrorProps=a.defaultInstance.allowErrorProps.bind(a.defaultInstance),a})();Ds.serialize;Ds.deserialize;Ds.stringify;Ds.parse;Ds.registerClass;Ds.registerCustom;Ds.registerSymbol;Ds.allowErrorProps;var FR=(a,n,o,i,l,d,m,h)=>{let g=document.documentElement,f=["light","dark"];function y(C){(Array.isArray(a)?a:[a]).forEach(R=>{let w=R==="class",E=w&&d?l.map(k=>d[k]||k):l;w?(g.classList.remove(...E),g.classList.add(d&&d[C]?d[C]:C)):g.setAttribute(R,C)}),x(C)}function x(C){h&&f.includes(C)&&(g.style.colorScheme=C)}function j(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(i)y(i);else try{let C=localStorage.getItem(n)||o,R=m&&C==="system"?j():C;y(R)}catch{}},QR=b.createContext(void 0),GR={setTheme:a=>{},themes:[]},YR=()=>{var a;return(a=b.useContext(QR))!=null?a:GR};b.memo(({forcedTheme:a,storageKey:n,attribute:o,enableSystem:i,enableColorScheme:l,defaultTheme:d,value:m,themes:h,nonce:g,scriptProps:f})=>{let y=JSON.stringify([o,n,d,a,h,m,i,l]).slice(1,-1);return b.createElement("script",{...f,suppressHydrationWarning:!0,nonce:typeof window>"u"?g:"",dangerouslySetInnerHTML:{__html:`(${FR.toString()})(${y})`}})});var uh=b1();const L1=Tb(uh);function KR(a){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",n.appendChild(o),o.styleSheet?o.styleSheet.cssText=a:o.appendChild(document.createTextNode(a))}const JR=a=>{switch(a){case"success":return XR;case"info":return eE;case"warning":return ZR;case"error":return tE;default:return null}},WR=Array(12).fill(0),$R=({visible:a,className:n})=>ue.createElement("div",{className:["sonner-loading-wrapper",n].filter(Boolean).join(" "),"data-visible":a},ue.createElement("div",{className:"sonner-spinner"},WR.map((o,i)=>ue.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${i}`})))),XR=ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ue.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ZR=ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},ue.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),eE=ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ue.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),tE=ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ue.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),aE=ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},ue.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),ue.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),sE=()=>{const[a,n]=ue.useState(document.hidden);return ue.useEffect(()=>{const o=()=>{n(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),a};let Dp=1;class nE{constructor(){this.subscribe=n=>(this.subscribers.push(n),()=>{const o=this.subscribers.indexOf(n);this.subscribers.splice(o,1)}),this.publish=n=>
vendor: 3,614 bytes, line 49
49{this.subscribers.forEach(o=>o(n))},this.addToast=n=>{this.publish(n),this.toasts=[...this.toasts,n]},this.create=n=>{var o;const{message:i,...l}=n,d=typeof n?.id=="number"||((o=n.id)==null?void 0:o.length)>0?n.id:Dp++,m=this.toasts.find(g=>g.id===d),h=n.dismissible===void 0?!0:n.dismissible;return this.dismissedToasts.has(d)&&this.dismissedToasts.delete(d),m?this.toasts=this.toasts.map(g=>g.id===d?(this.publish({...g,...n,id:d,title:i}),{...g,...n,id:d,dismissible:h,title:i}):g):this.addToast({title:i,...l,dismissible:h,id:d}),d},this.dismiss=n=>(n?(this.dismissedToasts.add(n),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:n,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(i=>i({id:o.id,dismiss:!0}))}),n),this.message=(n,o)=>this.create({...o,message:n}),this.error=(n,o)=>this.create({...o,message:n,type:"error"}),this.success=(n,o)=>this.create({...o,type:"success",message:n}),this.info=(n,o)=>this.create({...o,type:"info",message:n}),this.warning=(n,o)=>this.create({...o,type:"warning",message:n}),this.loading=(n,o)=>this.create({...o,type:"loading",message:n}),this.promise=(n,o)=>{if(!o)return;let i;o.loading!==void 0&&(i=this.create({...o,promise:n,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const l=Promise.resolve(n instanceof Function?n():n);let d=i!==void 0,m;const h=l.then(async f=>{if(m=["resolve",f],ue.isValidElement(f))d=!1,this.create({id:i,type:"default",message:f});else if(oE(f)&&!f.ok){d=!1;const x=typeof o.error=="function"?await o.error(`HTTP error! status: ${f.status}`):o.error,j=typeof o.description=="function"?await o.description(`HTTP error! status: ${f.status}`):o.description,R=typeof x=="object"&&!ue.isValidElement(x)?x:{message:x};this.create({id:i,type:"error",description:j,...R})}else if(f instanceof Error){d=!1;const x=typeof o.error=="function"?await o.error(f):o.error,j=typeof o.description=="function"?await o.description(f):o.description,R=typeof x=="object"&&!ue.isValidElement(x)?x:{message:x};this.create({id:i,type:"error",description:j,...R})}else if(o.success!==void 0){d=!1;const x=typeof o.success=="function"?await o.success(f):o.success,j=typeof o.description=="function"?await o.description(f):o.description,R=typeof x=="object"&&!ue.isValidElement(x)?x:{message:x};this.create({id:i,type:"success",description:j,...R})}}).catch(async f=>{if(m=["reject",f],o.error!==void 0){d=!1;const y=typeof o.error=="function"?await o.error(f):o.error,x=typeof o.description=="function"?await o.description(f):o.description,C=typeof y=="object"&&!ue.isValidElement(y)?y:{message:y};this.create({id:i,type:"error",description:x,...C})}}).finally(()=>{d&&(this.dismiss(i),i=void 0),o.finally==null||o.finally.call(o)}),g=()=>new Promise((f,y)=>h.then(()=>m[0]==="reject"?y(m[1]):f(m[1])).catch(y));return typeof i!="string"&&typeof i!="number"?{unwrap:g}:Object.assign(i,{unwrap:g})},this.custom=(n,o)=>{const i=o?.id||Dp++;return this.create({jsx:n(i),id:i,...o}),i},this.getActiveToasts=()=>this.toasts.filter(n=>!this.dismissedToasts.has(n.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const ea=new nE,rE=(a,n)=>{const o=n?.id||Dp++;return ea.addToast({title:a,...n,id:o}),o},oE=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",iE=rE,cE=()=>ea.toasts,lE=()=>ea.getActiveToasts();Object.assign(iE,{success:ea.success,info:ea.info,warning:ea.warning,error:ea.error,custom:ea.custom,message:ea.message,promise:ea.promise,dismiss:ea.dismiss,loading:ea.loading},{getHistory:cE,getToasts:lE});KR
vendor: 14,873 bytes, line 49
49("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function
49fl(a){return a.label!==void 0}const dE=3,uE="24px",mE="16px",xv=4e3,pE=356,hE=14,gE=45,fE=200;
vendor: 5,304 bytes, line 49
49function Ja(...a){return a.filter(Boolean).join(" ")}function xE(a){const[n,o]=a.split("-"),i=[];return n&&i.push(n),o&&i.push(o),i}const yE=a=>{var n,o,i,l,d,m,h,g,f;const{invert:y,toast:x,unstyled:j,interacting:C,setHeights:R,visibleToasts:w,heights:E,index:k,toasts:D,expanded:q,removeToast:K,defaultRichColors:N,closeButton:U,style:M,cancelButtonStyle:I,actionButtonStyle:Z,className:ae="",descriptionClassName:le="",duration:ie,position:he,gap:pe,expandByDefault:ge,classNames:A,icons:_,closeButtonAriaLabel:z="Close toast"}=a,[ee,de]=ue.useState(null),[P,W]=ue.useState(null),[F,$]=ue.useState(!1),[O,oe]=ue.useState(!1),[ce,we]=ue.useState(!1),[Me,dt]=ue.useState(!1),[wt,yt]=ue.useState(!1),[H,Se]=ue.useState(0),[rt,Lt]=ue.useState(0),It=ue.useRef(x.duration||ie||xv),Ao=ue.useRef(null),aa=ue.useRef(null),Ro=k===0,Eo=k+1<=w,_t=x.type,Is=x.dismissible!==!1,zt=x.className||"",Ad=x.descriptionClassName||"",An=ue.useMemo(()=>E.findIndex(Ae=>Ae.toastId===x.id)||0,[E,x.id]),Xi=ue.useMemo(()=>{var Ae;return(Ae=x.closeButton)!=null?Ae:U},[x.closeButton,U]),Rn=ue.useMemo(()=>x.duration||ie||xv,[x.duration,ie]),No=ue.useRef(0),is=ue.useRef(0),Zi=ue.useRef(0),_s=ue.useRef(null),[En,qt]=he.split("-"),Oa=ue.useMemo(()=>E.reduce((Ae,at,Ct)=>Ct>=An?Ae:Ae+at.height,0),[E,An]),kt=sE(),Rd=x.invert||y,Po=_t==="loading";is.current=ue.useMemo(()=>An*pe+Oa,[An,Oa]),ue.useEffect(()=>{It.current=Rn},[Rn]),ue.useEffect(()=>{$(!0)},[]),ue.useEffect(()=>{const Ae=aa.current;if(Ae){const at=Ae.getBoundingClientRect().height;return Lt(at),R(Ct=>[{toastId:x.id,height:at,position:x.position},...Ct]),()=>R(Ct=>Ct.filter(Mt=>Mt.toastId!==x.id))}},[R,x.id]),ue.useLayoutEffect(()=>{if(!F)return;const Ae=aa.current,at=Ae.style.height;Ae.style.height="auto";const Ct=Ae.getBoundingClientRect().height;Ae.style.height=at,Lt(Ct),R(Mt=>Mt.find(ot=>ot.toastId===x.id)?Mt.map(ot=>ot.toastId===x.id?{...ot,height:Ct}:ot):[{toastId:x.id,height:Ct,position:x.position},...Mt])},[F,x.title,x.description,R,x.id,x.jsx,x.action,x.cancel]);const Ua=ue.useCallback(()=>{oe(!0),Se(is.current),R(Ae=>Ae.filter(at=>at.toastId!==x.id)),setTimeout(()=>{K(x)},fE)},[x,K,R,is]);ue.useEffect(()=>{if(x.promise&&_t==="loading"||x.duration===1/0||x.type==="loading")return;let Ae;return q||C||kt?(()=>{if(Zi.current<No.current){const Mt=new Date().getTime()-No.current;It.current=It.current-Mt}Zi.current=new Date().getTime()})():(()=>{It.current!==1/0&&(No.current=new Date().getTime(),Ae=setTimeout(()=>{x.onAutoClose==null||x.onAutoClose.call(x,x),Ua()},It.current))})(),()=>clearTimeout(Ae)},[q,C,x,_t,kt,Ua]),ue.useEffect(()=>{x.delete&&(Ua(),x.onDismiss==null||x.onDismiss.call(x,x))},[Ua,x.delete]);function ur(){var Ae;if(_?.loading){var at;return ue.createElement("div",{className:Ja(A?.loader,x==null||(at=x.classNames)==null?void 0:at.loader,"sonner-loader"),"data-visible":_t==="loading"},_.loading)}return ue.createElement($R,{className:Ja(A?.loader,x==null||(Ae=x.classNames)==null?void 0:Ae.loader),visible:_t==="loading"})}const mr=x.icon||_?.[_t]||JR(_t);var Nn,Va;return ue.createElement("li",{tabIndex:0,ref:aa,className:Ja(ae,zt,A?.toast,x==null||(n=x.classNames)==null?void 0:n.toast,A?.default,A?.[_t],x==null||(o=x.classNames)==null?void 0:o[_t]),"data-sonner-toast":"","data-rich-colors":(Nn=x.richColors)!=null?Nn:N,"data-styled":!(x.jsx||x.unstyled||j),"data-mounted":F,"data-promise":!!x.promise,"data-swiped":wt,"data-removed":O,"data-visible":Eo,"data-y-position":En,"data-x-position":qt,"data-index":k,"data-front":Ro,"data-swiping":ce,"data-dismissible":Is,"data-type":_t,"data-invert":Rd,"data-swipe-out":Me,"data-swipe-direction":P,"data-expanded":!!(q||ge&&F),"data-testid":x.testId,style:{"--index":k,"--toasts-before":k,"--z-index":D.length-k,"--offset":`${O?H:is.current}px`,"--initial-height":ge?"auto":`${rt}px`,...M,...x.style},onDragEnd:()=>{we(!1),de(null),_s.current=null},onPointerDown:Ae=>{Ae.button!==2&&(Po||!Is||(Ao.current=new Date,Se(is.current),Ae.target.setPointerCapture(Ae.pointerId),Ae.target.tagName!=="BUTTON"&&(we(!0),_s.current={x:Ae.clientX,y:Ae.clientY})))},onPointerUp:()=>{var Ae,at,Ct;if(Me||!Is)return;_s.current=null;const Mt=Number(((Ae=aa.current)==null?void 0:Ae.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),zs=Number(((at=aa.current)==null?void 0:at.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),ot=new Date().getTime()-((Ct=Ao.current)==null?void 0:Ct.getTime()),Ft=ee==="x"?Mt:zs,Pn=Math.abs(Ft)/ot;if(Math.abs(Ft)>=gE||Pn>.11){Se(is.current),x.onDismiss==null||x.onDismiss.call(x,x),W(ee==="x"?Mt>0?"right":"left":zs>0?"down":"up"),Ua(),dt(!0);return}else{var Qt,Gt;(Qt=aa.current)==null||Qt.style.setProperty("--swipe-amount-x","0px"),(Gt=aa.current)==null||Gt.style.setProperty("--swipe-amount-y","0px")}yt(!1),we(!1),de(null)},onPointerMove:Ae=>{var at,Ct,Mt;if(!_s.current||!Is||((at=window.getSelection())==null?void 0:at.toString().length)>0)return;const ot=Ae.clientY-_s.current.y,Ft=Ae.clientX-_s.current.x;var Pn;const Qt=(Pn=a.swipeDirections)!=null?Pn:xE(he);!ee&&(Math.abs(Ft)>1||Math.abs(ot)>1)&&de(Math.abs(Ft)>Math.abs(ot)?"x":"y");let Gt={x:0,y:0};const pr=ka=>1/(1.5+Math.abs(ka)/20);if(ee==="y"){if(Qt.includes("top")||Qt.includes("bottom"))if(Qt.includes("top")&&ot<0||Qt.includes("bottom")&&ot>0)Gt.y=ot;
vendor: 7,019 bytes, line 49
49else{const ka=ot*pr(ot);Gt.y=Math.abs(ka)<Math.abs(ot)?ka:ot}}else if(ee==="x"&&(Qt.includes("left")||Qt.includes("right")))if(Qt.includes("left")&&Ft<0||Qt.includes("right")&&Ft>0)Gt.x=Ft;else{const ka=Ft*pr(Ft);Gt.x=Math.abs(ka)<Math.abs(Ft)?ka:Ft}(Math.abs(Gt.x)>0||Math.abs(Gt.y)>0)&&yt(!0),(Ct=aa.current)==null||Ct.style.setProperty("--swipe-amount-x",`${Gt.x}px`),(Mt=aa.current)==null||Mt.style.setProperty("--swipe-amount-y",`${Gt.y}px`)}},Xi&&!x.jsx&&_t!=="loading"?ue.createElement("button",{"aria-label":z,"data-disabled":Po,"data-close-button":!0,onClick:Po||!Is?()=>{}:()=>{Ua(),x.onDismiss==null||x.onDismiss.call(x,x)},className:Ja(A?.closeButton,x==null||(i=x.classNames)==null?void 0:i.closeButton)},(Va=_?.close)!=null?Va:aE):null,(_t||x.icon||x.promise)&&x.icon!==null&&(_?.[_t]!==null||x.icon)?ue.createElement("div",{"data-icon":"",className:Ja(A?.icon,x==null||(l=x.classNames)==null?void 0:l.icon)},x.promise||x.type==="loading"&&!x.icon?x.icon||ur():null,x.type!=="loading"?mr:null):null,ue.createElement("div",{"data-content":"",className:Ja(A?.content,x==null||(d=x.classNames)==null?void 0:d.content)},ue.createElement("div",{"data-title":"",className:Ja(A?.title,x==null||(m=x.classNames)==null?void 0:m.title)},x.jsx?x.jsx:typeof x.title=="function"?x.title():x.title),x.description?ue.createElement("div",{"data-description":"",className:Ja(le,Ad,A?.description,x==null||(h=x.classNames)==null?void 0:h.description)},typeof x.description=="function"?x.description():x.description):null),ue.isValidElement(x.cancel)?x.cancel:x.cancel&&fl(x.cancel)?ue.createElement("button",{"data-button":!0,"data-cancel":!0,style:x.cancelButtonStyle||I,onClick:Ae=>{fl(x.cancel)&&Is&&(x.cancel.onClick==null||x.cancel.onClick.call(x.cancel,Ae),Ua())},className:Ja(A?.cancelButton,x==null||(g=x.classNames)==null?void 0:g.cancelButton)},x.cancel.label):null,ue.isValidElement(x.action)?x.action:x.action&&fl(x.action)?ue.createElement("button",{"data-button":!0,"data-action":!0,style:x.actionButtonStyle||Z,onClick:Ae=>{fl(x.action)&&(x.action.onClick==null||x.action.onClick.call(x.action,Ae),!Ae.defaultPrevented&&Ua())},className:Ja(A?.actionButton,x==null||(f=x.classNames)==null?void 0:f.actionButton)},x.action.label):null)};function yv(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function vE(a,n){const o={};return[a,n].forEach((i,l)=>{const d=l===1,m=d?"--mobile-offset":"--offset",h=d?mE:uE;function g(f){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof f=="number"?`${f}px`:f})}typeof i=="number"||typeof i=="string"?g(i):typeof i=="object"?["top","right","bottom","left"].forEach(f=>{i[f]===void 0?o[`${m}-${f}`]=h:o[`${m}-${f}`]=typeof i[f]=="number"?`${i[f]}px`:i[f]}):g(h)}),o}const bE=ue.forwardRef(function(n,o){const{id:i,invert:l,position:d="bottom-right",hotkey:m=["altKey","KeyT"],expand:h,closeButton:g,className:f,offset:y,mobileOffset:x,theme:j="light",richColors:C,duration:R,style:w,visibleToasts:E=dE,toastOptions:k,dir:D=yv(),gap:q=hE,icons:K,containerAriaLabel:N="Notifications"}=n,[U,M]=ue.useState([]),I=ue.useMemo(()=>i?U.filter(F=>F.toasterId===i):U.filter(F=>!F.toasterId),[U,i]),Z=ue.useMemo(()=>Array.from(new Set([d].concat(I.filter(F=>F.position).map(F=>F.position)))),[I,d]),[ae,le]=ue.useState([]),[ie,he]=ue.useState(!1),[pe,ge]=ue.useState(!1),[A,_]=ue.useState(j!=="system"?j:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),z=ue.useRef(null),ee=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),de=ue.useRef(null),P=ue.useRef(!1),W=ue.useCallback(F=>{M($=>{var O;return(O=$.find(oe=>oe.id===F.id))!=null&&O.delete||ea.dismiss(F.id),$.filter(({id:oe})=>oe!==F.id)})},[]);return ue.useEffect(()=>ea.subscribe(F=>{if(F.dismiss){requestAnimationFrame(()=>{M($=>$.map(O=>O.id===F.id?{...O,delete:!0}:O))});return}setTimeout(()=>{L1.flushSync(()=>{M($=>{const O=$.findIndex(oe=>oe.id===F.id);return O!==-1?[...$.slice(0,O),{...$[O],...F},...$.slice(O+1)]:[F,...$]})})})}),[U]),ue.useEffect(()=>{if(j!=="system"){_(j);return}if(j==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?_("dark"):_("light")),typeof window>"u")return;const F=window.matchMedia("(prefers-color-scheme: dark)");try{F.addEventListener("change",({matches:$})=>{_($?"dark":"light")})}catch{F.addListener(({matches:O})=>{try{_(O?"dark":"light")}catch(oe){console.error(oe)}})}},[j]),ue.useEffect(()=>{U.length<=1&&he(!1)},[U]),ue.useEffect(()=>{const F=$=>{var O;if(m.every(we=>$[we]||$.code===we)){var ce;he(!0),(ce=z.current)==null||ce.focus()}$.code==="Escape"&&(document.activeElement===z.current||(O=z.current)!=null&&O.contains(document.activeElement))&&he(!1)};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[m]),ue.useEffect(()=>{if(z.current)return()=>{de.current&&(de.current.focus({preventScroll:!0}),de.current=null,P.current=!1)}},[z.current]),ue.createElement("section",{ref:o,"aria-label":`${N} ${ee}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Z.map((F,$)=>{var O;const[oe,ce]=F.split("-");return I.length?ue.createElement("ol",{key:F,dir:D==="auto"?yv():D,tabIndex:-1,ref:z,className:f,"data-sonner-toaster":!0,"data-sonner-theme":A,"data-y-position":oe,"data-x-position":ce,style:{"--front-toast-height":`${((O=ae[0])==null?void 0:O.height)||0}px`,"--width":`${pE}px`,"--gap":`${q}px`,...w,...vE(y,x)},onBlur:we=>{P.current&&!we.currentTarget.contains(we.relatedTarget)&&(P.current=!1,de.current&&(de.current.focus({preventScroll:!0}),de.current=null))},onFocus:we=>{we.target instanceof HTMLElement&&we.target.dataset.dismissible==="false"||P.current||(P.current=!0,de.current=we.relatedTarget)},onMouseEnter:()=>he(!0),onMouseMove:()=>he(!0),onMouseLeave:()=>{pe||he(!1)},onDragEnd:()=>he(!1),onPointerDown:we=>{we.target instanceof HTMLElement&&we.target.dataset.dismissible==="false"||ge(!0)},onPointerUp:()=>ge(!1)},I.filter(we=>!we.position&&$===0||we.position===F).map((we,Me)=>{var dt,wt;return ue.createElement(yE,{key:we.id,icons:K,index:Me,toast:we,defaultRichColors:C,duration:(dt=k?.duration)!=null?dt:R,className:k?.className,descriptionClassName:k?.descriptionClassName,invert:l,visibleToasts:E,closeButton:(wt=k?.closeButton)!=null?wt:g,interacting:pe,position:F,style:k?.style,unstyled:k?.unstyled,classNames:k?.classNames,cancelButtonStyle:k?.cancelButtonStyle,actionButtonStyle:k?.actionButtonStyle,closeButtonAriaLabel:k?.closeButtonAriaLabel,removeToast:W,toasts:I.filter(yt=>yt.position==we.position),heights:ae.filter(yt=>yt.position==we.position),setHeights:le,expandByDefault:h,gap:q,expanded:ie,swipeDirections:n.swipeDirections})})):null}))}),jE=({...a})=>{const{theme:n="system"}=YR();return e.jsx(bE,{"data-loc":"client/src/components/ui/sonner.tsx:8",theme:n,
vendor: 9,118 bytes, line 49
49className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...a})};function Ee(a,n,{checkForDefaultPrevented:o=!0}={}){return function(l){if(a?.(l),o===!1||!l.defaultPrevented)return n?.(l)}}function vv(a,n){if(typeof a=="function")return a(n);a!=null&&(a.current=n)}function rd(...a){return n=>{let o=!1;const i=a.map(l=>{const d=vv(l,n);return!o&&typeof d=="function"&&(o=!0),d});if(o)return()=>{for(let l=0;l<i.length;l++){const d=i[l];typeof d=="function"?d():vv(a[l],null)}}}}function jt(...a){return b.useCallback(rd(...a),a)}function wE(a,n){const o=b.createContext(n),i=d=>{const{children:m,...h}=d,g=b.useMemo(()=>h,Object.values(h));return e.jsx(o.Provider,{value:g,children:m})};i.displayName=a+"Provider";function l(d){const m=b.useContext(o);if(m)return m;if(n!==void 0)return n;throw new Error(`\`${d}\` must be used within \`${a}\``)}return[i,l]}function jn(a,n=[]){let o=[];function i(d,m){const h=b.createContext(m),g=o.length;o=[...o,m];const f=x=>{const{scope:j,children:C,...R}=x,w=j?.[a]?.[g]||h,E=b.useMemo(()=>R,Object.values(R));return e.jsx(w.Provider,{value:E,children:C})};f.displayName=d+"Provider";function y(x,j){const C=j?.[a]?.[g]||h,R=b.useContext(C);if(R)return R;if(m!==void 0)return m;throw new Error(`\`${x}\` must be used within \`${d}\``)}return[f,y]}const l=()=>{const d=o.map(m=>b.createContext(m));return function(h){const g=h?.[a]||d;return b.useMemo(()=>({[`__scope${a}`]:{...h,[a]:g}}),[h,g])}};return l.scopeName=a,[i,CE(l,...n)]}function CE(...a){const n=a[0];if(a.length===1)return n;const o=()=>{const i=a.map(l=>({useScope:l(),scopeName:l.scopeName}));return function(d){const m=i.reduce((h,{useScope:g,scopeName:f})=>{const x=g(d)[`__scope${f}`];return{...h,...x}},{});return b.useMemo(()=>({[`__scope${n.scopeName}`]:m}),[m])}};return o.scopeName=n.scopeName,o}function go(a){const n=SE(a),o=b.forwardRef((i,l)=>{const{children:d,...m}=i,h=b.Children.toArray(d),g=h.find(RE);if(g){const f=g.props.children,y=h.map(x=>x===g?b.Children.count(f)>1?b.Children.only(null):b.isValidElement(f)?f.props.children:null:x);return e.jsx(n,{...m,ref:l,children:b.isValidElement(f)?b.cloneElement(f,void 0,y):null})}return e.jsx(n,{...m,ref:l,children:d})});return o.displayName=`${a}.Slot`,o}var I1=go("Slot");function SE(a){const n=b.forwardRef((o,i)=>{const{children:l,...d}=o;if(b.isValidElement(l)){const m=NE(l),h=EE(d,l.props);return l.type!==b.Fragment&&(h.ref=i?rd(i,m):m),b.cloneElement(l,h)}return b.Children.count(l)>1?b.Children.only(null):null});return n.displayName=`${a}.SlotClone`,n}var _1=Symbol("radix.slottable");function AE(a){const n=({children:o})=>e.jsx(e.Fragment,{children:o});return n.displayName=`${a}.Slottable`,n.__radixId=_1,n}function RE(a){return b.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===_1}function EE(a,n){const o={...n};for(const i in n){const l=a[i],d=n[i];/^on[A-Z]/.test(i)?l&&d?o[i]=(...h)=>{const g=d(...h);return l(...h),g}:l&&(o[i]=l):i==="style"?o[i]={...l,...d}:i==="className"&&(o[i]=[l,d].filter(Boolean).join(" "))}return{...a,...o}}function NE(a){let n=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,o=n&&"isReactWarning"in n&&n.isReactWarning;return o?a.ref:(n=Object.getOwnPropertyDescriptor(a,"ref")?.get,o=n&&"isReactWarning"in n&&n.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var PE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],tt=PE.reduce((a,n)=>{const o=go(`Primitive.${n}`),i=b.forwardRef((l,d)=>{const{asChild:m,...h}=l,g=m?o:n;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(g,{...h,ref:d})});return i.displayName=`Primitive.${n}`,{...a,[n]:i}},{});function z1(a,n){a&&uh.flushSync(()=>a.dispatchEvent(n))}function as(a){const n=b.useRef(a);return b.useEffect(()=>{n.current=a}),b.useMemo(()=>(...o)=>n.current?.(...o),[])}function OE(a,n=globalThis?.document){const o=as(a);b.useEffect(()=>{const i=l=>{l.key==="Escape"&&o(l)};return n.addEventListener("keydown",i,{capture:!0}),()=>n.removeEventListener("keydown",i,{capture:!0})},[o,n])}var kE="DismissableLayer",Lp="dismissableLayer.update",ME="dismissableLayer.pointerDownOutside",TE="dismissableLayer.focusOutside",bv,q1=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),od=b.forwardRef((a,n)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:d,onInteractOutside:m,onDismiss:h,...g}=a,f=b.useContext(q1),[y,x]=b.useState(null),j=y?.ownerDocument??globalThis?.document,[,C]=b.useState({}),R=jt(n,M=>x(M)),w=Array.from(f.layers),[E]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),k=w.indexOf(E),D=y?w.indexOf(y):-1,q=f.layersWithOutsidePointerEventsDisabled.size>0,K=D>=k,N=IE(M=>{const I=M.target,Z=[...f.branches].some(ae=>ae.contains(I));!K||Z||(l?.(M),m?.(M),M.defaultPrevented||h?.())},j),U=_E(M=>{const I=M.target;[...f.branches].some(ae=>ae.contains(I))||(d?.(M),m?.(M),M.defaultPrevented||h?.())},j);return OE(M=>{D===f.layers.size-1&&(i?.(M),!M.defaultPrevented&&h&&(M.preventDefault(),h()))},j),b.useEffect(()=>{if(y)return o&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(bv=j.body.style.pointerEvents,j.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(y)),f.layers.add(y),jv(),()=>{o&&f.layersWithOutsidePointerEventsDisabled.size===1&&(j.body.style.pointerEvents=bv)}},[y,j,o,f]),b.useEffect(()=>()=>{y&&(f.layers.delete(y),f.layersWithOutsidePointerEventsDisabled.delete(y),jv())},[y,f]),b.useEffect(()=>{const M=()=>C({});return document.addEventListener(Lp,M),()=>document.removeEventListener(Lp,M)},[]),e.jsx(tt.div,{...g,ref:R,style:{pointerEvents:q?K?"auto":"none":void 0,...a.style},onFocusCapture:Ee(a.onFocusCapture,U.onFocusCapture),onBlurCapture:Ee(a.onBlurCapture,U.onBlurCapture),onPointerDownCapture:Ee(a.onPointerDownCapture,N.onPointerDownCapture)})});od.displayName=kE;var DE="DismissableLayerBranch",LE=b.forwardRef((a,n)=>{const o=b.useContext(q1),i=b.useRef(null),l=jt(n,i);return b.useEffect(()=>{const d=i.current;if(d)return o.branches.add(d),()=>{o.branches.delete(d)}},[o.branches]),e.jsx(tt.div,{...a,ref:l})});LE.displayName=DE;function IE(a,n=globalThis?.document){const o=as(a),i=b.useRef(!1),l=b.useRef(()=>{});return b.useEffect(()=>{const d=h=>{if(h.target&&!i.current){let g=function(){B1(ME,o,f,{discrete:!0})};const f={originalEvent:h};h.pointerType==="touch"?(n.removeEventListener("click",l.current),l.current=g,n.addEventListener("click",l.current,{once:!0})):g()}else n.removeEventListener("click",l.current);i.current=!1},m=window.setTimeout(()=>{n.addEventListener("pointerdown",d)},0);return()=>{window.clearTimeout(m),n.removeEventListener("pointerdown",d),n.removeEventListener("click",l.current)}},[n,o]),{onPointerDownCapture:()=>i.current=!0}}function _E(a,n=globalThis?.document){const o=as(a),i=b.useRef(!1);return b.useEffect(()=>{const l=d=>{d.target&&!i.current&&B1(TE,o,{originalEvent:d},{discrete:!1})};return n.addEventListener("focusin",l),()=>n.removeEventListener("focusin",l)},[n,o]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}function jv(){const a=new CustomEvent(Lp);document.dispatchEvent(a)}function B1(a,n,o,{discrete:i}){const l=o.originalEvent.target,d=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:o});n&&l.addEventListener(a,n,{once:!0}),i?z1(l,d):l.dispatchEvent(d)}var Ia=globalThis?.document?b.useLayoutEffect:()=>{},zE=Xl[" useId ".trim().toString()]||(()=>{}),qE=0;function $n(a){const[n,o]=b.useState(zE());return Ia(()=>{o(i=>i??String(qE++))},[a]),a||(n?`radix-${n}`:"")}const BE=["top","right","bottom","left"],yn=Math.min,pa=Math.max,ql=Math.round,xl=Math.floor,ts=a=>({x:a,y:a}),HE={left:"right",right:"left",bottom:"top",top:"bottom"},UE={start:"end",end:"start"};function Ip(a,n,o){return pa(a,yn(n,o))}function ks(a,n){return typeof a=="function"?a(n):a}function Ms(a){return a.split("-")[0]}function yo(a){return a.split("-")[1]}function mh(a){return a==="x"?"y":"x"}function ph(a){return a==="y"?"height":"width"}const VE=new Set(["top","bottom"]);function es(a){return VE.has(Ms(a))?"y":"x"}function hh(a){return mh(es(a))}function FE(a,n,o){o===void 0&&(o=!1);const i=yo(a),l=hh(a),d=ph(l);let m=l==="x"?i===(o?"end":"start")?"right":"left":i==="start"?"bottom":"top";return n.reference[d]>n.floating[d]&&(m=Bl(m)),[m,Bl(m)]}function QE(a){const n=Bl(a);return[_p(a),n,_p(n)]}function _p(a){return a.replace(/start|end/g,n=>UE[n])}const wv=["left","right"],Cv=["right","left"],GE=["top","bottom"],YE=["bottom","top"];function KE(a,n,o){switch(a){case"top":case"bottom":return o?n?Cv:wv:n?wv:Cv;case"left":case"right":return n?GE:YE;default:return[]}}function JE(a,n,o,i){const l=yo(a);let d=KE(Ms(a),o==="start",i);return l&&(d=d.map(m=>m+"-"+l),n&&(d=d.concat(d.map(_p)))),d}function Bl(a){return a.replace(/left|right|bottom|top/g,n=>HE[n])}function WE(a){return{top:0,right:0,bottom:0,left:0,...a}}function H1(a){return typeof a!="number"?WE(a):{top:a,right:a,bottom:a,left
vendor: 17,416 bytes, line 49
49:a}}function Hl(a){const{x:n,y:o,width:i,height:l}=a;return{width:i,height:l,top:o,left:n,right:n+i,bottom:o+l,x:n,y:o}}function Sv(a,n,o){let{reference:i,floating:l}=a;const d=es(n),m=hh(n),h=ph(m),g=Ms(n),f=d==="y",y=i.x+i.width/2-l.width/2,x=i.y+i.height/2-l.height/2,j=i[h]/2-l[h]/2;let C;switch(g){case"top":C={x:y,y:i.y-l.height};break;case"bottom":C={x:y,y:i.y+i.height};break;case"right":C={x:i.x+i.width,y:x};break;case"left":C={x:i.x-l.width,y:x};break;default:C={x:i.x,y:i.y}}switch(yo(n)){case"start":C[m]-=j*(o&&f?-1:1);break;case"end":C[m]+=j*(o&&f?-1:1);break}return C}const $E=async(a,n,o)=>{const{placement:i="bottom",strategy:l="absolute",middleware:d=[],platform:m}=o,h=d.filter(Boolean),g=await(m.isRTL==null?void 0:m.isRTL(n));let f=await m.getElementRects({reference:a,floating:n,strategy:l}),{x:y,y:x}=Sv(f,i,g),j=i,C={},R=0;for(let w=0;w<h.length;w++){const{name:E,fn:k}=h[w],{x:D,y:q,data:K,reset:N}=await k({x:y,y:x,initialPlacement:i,placement:j,strategy:l,middlewareData:C,rects:f,platform:m,elements:{reference:a,floating:n}});y=D??y,x=q??x,C={...C,[E]:{...C[E],...K}},N&&R<=50&&(R++,typeof N=="object"&&(N.placement&&(j=N.placement),N.rects&&(f=N.rects===!0?await m.getElementRects({reference:a,floating:n,strategy:l}):N.rects),{x:y,y:x}=Sv(f,j,g)),w=-1)}return{x:y,y:x,placement:j,strategy:l,middlewareData:C}};async function Di(a,n){var o;n===void 0&&(n={});const{x:i,y:l,platform:d,rects:m,elements:h,strategy:g}=a,{boundary:f="clippingAncestors",rootBoundary:y="viewport",elementContext:x="floating",altBoundary:j=!1,padding:C=0}=ks(n,a),R=H1(C),E=h[j?x==="floating"?"reference":"floating":x],k=Hl(await d.getClippingRect({element:(o=await(d.isElement==null?void 0:d.isElement(E)))==null||o?E:E.contextElement||await(d.getDocumentElement==null?void 0:d.getDocumentElement(h.floating)),boundary:f,rootBoundary:y,strategy:g})),D=x==="floating"?{x:i,y:l,width:m.floating.width,height:m.floating.height}:m.reference,q=await(d.getOffsetParent==null?void 0:d.getOffsetParent(h.floating)),K=await(d.isElement==null?void 0:d.isElement(q))?await(d.getScale==null?void 0:d.getScale(q))||{x:1,y:1}:{x:1,y:1},N=Hl(d.convertOffsetParentRelativeRectToViewportRelativeRect?await d.convertOffsetParentRelativeRectToViewportRelativeRect({elements:h,rect:D,offsetParent:q,strategy:g}):D);return{top:(k.top-N.top+R.top)/K.y,bottom:(N.bottom-k.bottom+R.bottom)/K.y,left:(k.left-N.left+R.left)/K.x,right:(N.right-k.right+R.right)/K.x}}const XE=a=>({name:"arrow",options:a,async fn(n){const{x:o,y:i,placement:l,rects:d,platform:m,elements:h,middlewareData:g}=n,{element:f,padding:y=0}=ks(a,n)||{};if(f==null)return{};const x=H1(y),j={x:o,y:i},C=hh(l),R=ph(C),w=await m.getDimensions(f),E=C==="y",k=E?"top":"left",D=E?"bottom":"right",q=E?"clientHeight":"clientWidth",K=d.reference[R]+d.reference[C]-j[C]-d.floating[R],N=j[C]-d.reference[C],U=await(m.getOffsetParent==null?void 0:m.getOffsetParent(f));let M=U?U[q]:0;(!M||!await(m.isElement==null?void 0:m.isElement(U)))&&(M=h.floating[q]||d.floating[R]);const I=K/2-N/2,Z=M/2-w[R]/2-1,ae=yn(x[k],Z),le=yn(x[D],Z),ie=ae,he=M-w[R]-le,pe=M/2-w[R]/2+I,ge=Ip(ie,pe,he),A=!g.arrow&&yo(l)!=null&&pe!==ge&&d.reference[R]/2-(pe<ie?ae:le)-w[R]/2<0,_=A?pe<ie?pe-ie:pe-he:0;return{[C]:j[C]+_,data:{[C]:ge,centerOffset:pe-ge-_,...A&&{alignmentOffset:_}},reset:A}}}),ZE=function(a){return a===void 0&&(a={}),{name:"flip",options:a,async fn(n){var o,i;const{placement:l,middlewareData:d,rects:m,initialPlacement:h,platform:g,elements:f}=n,{mainAxis:y=!0,crossAxis:x=!0,fallbackPlacements:j,fallbackStrategy:C="bestFit",fallbackAxisSideDirection:R="none",flipAlignment:w=!0,...E}=ks(a,n);if((o=d.arrow)!=null&&o.alignmentOffset)return{};const k=Ms(l),D=es(h),q=Ms(h)===h,K=await(g.isRTL==null?void 0:g.isRTL(f.floating)),N=j||(q||!w?[Bl(h)]:QE(h)),U=R!=="none";!j&&U&&N.push(...JE(h,w,R,K));const M=[h,...N],I=await Di(n,E),Z=[];let ae=((i=d.flip)==null?void 0:i.overflows)||[];if(y&&Z.push(I[k]),x){const pe=FE(l,m,K);Z.push(I[pe[0]],I[pe[1]])}if(ae=[...ae,{placement:l,overflows:Z}],!Z.every(pe=>pe<=0)){var le,ie;const pe=(((le=d.flip)==null?void 0:le.index)||0)+1,ge=M[pe];if(ge&&(!(x==="alignment"?D!==es(ge):!1)||ae.every(z=>es(z.placement)===D?z.overflows[0]>0:!0)))return{data:{index:pe,overflows:ae},reset:{placement:ge}};let A=(ie=ae.filter(_=>_.overflows[0]<=0).sort((_,z)=>_.overflows[1]-z.overflows[1])[0])==null?void 0:ie.placement;if(!A)switch(C){case"bestFit":{var he;const _=(he=ae.filter(z=>{if(U){const ee=es(z.placement);return ee===D||ee==="y"}return!0}).map(z=>[z.placement,z.overflows.filter(ee=>ee>0).reduce((ee,de)=>ee+de,0)]).sort((z,ee)=>z[1]-ee[1])[0])==null?void 0:he[0];_&&(A=_);break}case"initialPlacement":A=h;break}if(l!==A)return{reset:{placement:A}}}return{}}}};function Av(a,n){return{top:a.top-n.height,right:a.right-n.width,bottom:a.bottom-n.height,left:a.left-n.width}}function Rv(a){return BE.some(n=>a[n]>=0)}const eN=function(a){return a===void 0&&(a={}),{name:"hide",options:a,async fn(n){const{rects:o}=n,{strategy:i="referenceHidden",...l}=ks(a,n);switch(i){case"referenceHidden":{const d=await Di(n,{...l,elementContext:"reference"}),m=Av(d,o.reference);return{data:{referenceHiddenOffsets:m,referenceHidden:Rv(m)}}}case"escaped":{const d=await Di(n,{...l,altBoundary:!0}),m=Av(d,o.floating);return{data:{escapedOffsets:m,escaped:Rv(m)}}}default:return{}}}}},U1=new Set(["left","top"]);async function tN(a,n){const{placement:o,platform:i,elements:l}=a,d=await(i.isRTL==null?void 0:i.isRTL(l.floating)),m=Ms(o),h=yo(o),g=es(o)==="y",f=U1.has(m)?-1:1,y=d&&g?-1:1,x=ks(n,a);let{mainAxis:j,crossAxis:C,alignmentAxis:R}=typeof x=="number"?{mainAxis:x,crossAxis:0,alignmentAxis:null}:{mainAxis:x.mainAxis||0,crossAxis:x.crossAxis||0,alignmentAxis:x.alignmentAxis};return h&&typeof R=="number"&&(C=h==="end"?R*-1:R),g?{x:C*y,y:j*f}:{x:j*f,y:C*y}}const aN=function(a){return a===void 0&&(a=0),{name:"offset",options:a,async fn(n){var o,i;const{x:l,y:d,placement:m,middlewareData:h}=n,g=await tN(n,a);return m===((o=h.offset)==null?void 0:o.placement)&&(i=h.arrow)!=null&&i.alignmentOffset?{}:{x:l+g.x,y:d+g.y,data:{...g,placement:m}}}}},sN=function(a){return a===void 0&&(a={}),{name:"shift",options:a,async fn(n){const{x:o,y:i,placement:l}=n,{mainAxis:d=!0,crossAxis:m=!1,limiter:h={fn:E=>{let{x:k,y:D}=E;return{x:k,y:D}}},...g}=ks(a,n),f={x:o,y:i},y=await Di(n,g),x=es(Ms(l)),j=mh(x);let C=f[j],R=f[x];if(d){const E=j==="y"?"top":"left",k=j==="y"?"bottom":"right",D=C+y[E],q=C-y[k];C=Ip(D,C,q)}if(m){const E=x==="y"?"top":"left",k=x==="y"?"bottom":"right",D=R+y[E],q=R-y[k];R=Ip(D,R,q)}const w=h.fn({...n,[j]:C,[x]:R});return{...w,data:{x:w.x-o,y:w.y-i,enabled:{[j]:d,[x]:m}}}}}},nN=function(a){return a===void 0&&(a={}),{options:a,fn(n){const{x:o,y:i,placement:l,rects:d,middlewareData:m}=n,{offset:h=0,mainAxis:g=!0,crossAxis:f=!0}=ks(a,n),y={x:o,y:i},x=es(l),j=mh(x);let C=y[j],R=y[x];const w=ks(h,n),E=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(g){const q=j==="y"?"height":"width",K=d.reference[j]-d.floating[q]+E.mainAxis,N=d.reference[j]+d.reference[q]-E.mainAxis;C<K?C=K:C>N&&(C=N)}if(f){var k,D;const q=j==="y"?"width":"height",K=U1.has(Ms(l)),N=d.reference[x]-d.floating[q]+(K&&((k=m.offset)==null?void 0:k[x])||0)+(K?0:E.crossAxis),U=d.reference[x]+d.reference[q]+(K?0:((D=m.offset)==null?void 0:D[x])||0)-(K?E.crossAxis:0);R<N?R=N:R>U&&(R=U)}return{[j]:C,[x]:R}}}},rN=function(a){return a===void 0&&(a={}),{name:"size",options:a,async fn(n){var o,i;const{placement:l,rects:d,platform:m,elements:h}=n,{apply:g=()=>{},...f}=ks(a,n),y=await Di(n,f),x=Ms(l),j=yo(l),C=es(l)==="y",{width:R,height:w}=d.floating;let E,k;x==="top"||x==="bottom"?(E=x,k=j===(await(m.isRTL==null?void 0:m.isRTL(h.floating))?"start":"end")?"left":"right"):(k=x,E=j==="end"?"top":"bottom");const D=w-y.top-y.bottom,q=R-y.left-y.right,K=yn(w-y[E],D),N=yn(R-y[k],q),U=!n.middlewareData.shift;let M=K,I=N;if((o=n.middlewareData.shift)!=null&&o.enabled.x&&(I=q),(i=n.middlewareData.shift)!=null&&i.enabled.y&&(M=D),U&&!j){const ae=pa(y.left,0),le=pa(y.right,0),ie=pa(y.top,0),he=pa(y.bottom,0);C?I=R-2*(ae!==0||le!==0?ae+le:pa(y.left,y.right)):M=w-2*(ie!==0||he!==0?ie+he:pa(y.top,y.bottom))}await g({...n,availableWidth:I,availableHeight:M});const Z=await m.getDimensions(h.floating);return R!==Z.width||w!==Z.height?{reset:{rects:!0}}:{}}}};function id(){return typeof window<"u"}function vo(a){return V1(a)?(a.nodeName||"").toLowerCase():"#document"}function ga(a){var n;return(a==null||(n=a.ownerDocument)==null?void 0:n.defaultView)||window}function rs(a){var n;return(n=(V1(a)?a.ownerDocument:a.document)||window.document)==null?void 0:n.documentElement}function V1(a){return id()?a instanceof Node||a instanceof ga(a).Node:!1}function _a(a){return id()?a instanceof Element||a instanceof ga(a).Element:!1}function ss(a){return id()?a instanceof HTMLElement||a instanceof ga(a).HTMLElement:!1}function Ev(a){return!id()||typeof ShadowRoot>"u"?!1:a instanceof ShadowRoot||a instanceof ga(a).ShadowRoot}const oN=new Set(["inline","contents"]);function Qi(a){const{overflow:n,overflowX:o,overflowY:i,display:l}=za(a);return/auto|scroll|overlay|hidden|clip/.test(n+i+o)&&!oN.has(l)}const iN=new Set(["table","td","th"]);function cN(a){return iN.has(vo(a))}const lN=[":popover-open",":modal"];function cd(a){return lN.some(n=>{try{return a.matches(n)}catch{return!1}})}const dN=["transform","translate","scale","rotate","perspective"],uN=["transform","translate","scale","rotate","perspective","filter"],mN=["paint","layout","strict","content"];function gh(a){const n=fh(),o=_a(a)?za(a):a;return dN.some(i=>o[i]?o[i]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!n&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!n&&(o.filter?o.filter!=="none":!1)||uN.some(i=>(o.willChange||"").includes(i))||mN.some(i=>(o.contain||"").includes(i))}function pN(a){let n=vn(a);for(;ss(n)&&!fo(n);){if(gh(n))return n;if(cd(n))return null;n=vn(n)}return null}function fh(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const hN=new Set(["html","body","#document"]);function fo(a){return hN.has(vo(a))}function za(a){return ga(a).getComputedStyle(a)}function ld(a){return _a(a)?{scrollLeft:a.scrollLeft,scrollTop:a.scrollTop}:{scrollLeft:a.scrollX,scrollTop:a.scrollY}}function vn(a){if(vo(a)==="html")return a;const n=a.assignedSlot||a.parentNode||Ev(a)&&a.host||rs(a);return Ev(n)?n.host:n}function F1(a){const n=vn(a);return fo(n)?a.ownerDocument?a.ownerDocument.body:a.body:ss(n)&&Qi(n)?n:F1(n)}function Li(a,n,o){var i;n===void 0&&(n=[]),o===void 0&&(o=!0);const l=F1(a),d=l===((i=a.ownerDocument)==null?void 0:i.body),m=ga(l);if(d){const h=zp(m);return n.concat(m,m.visualViewport||[],Qi(l)?l:[],h&&o?Li(h):[])}return n.concat(l,Li(l,[],o))}function zp(a){return a.parent&&Object.getPrototypeOf(a.parent)?a.frameElement:null}function Q1(a){const n=za(a);let o=parseFloat(n.width)||0,i=parseFloat(n.height)||0;const l=ss(a),d=l?a.offsetWidth:o,m=l?a.offsetHeight:i,h=ql(o)!==d||ql(i)!==m;return h&&(o=d,i=m),{width:o,height:i,$:h}}function xh(a){return _a(a)?a:a.contextElement}function uo(a){const n=xh(a);if(!ss(n))return ts(1);const o=n.getBoundingClientRect(),{width:i,height:l,$:d}=Q1(n);let m=(d?ql(o.width):o.width)/i,h=(d?ql(o.height):o.height)/l;return(!m||!Number.isFinite(m))&&(m=1),(!h||!Number.isFinite(h))&&(h=1),{x:m,y:h}}const gN=ts(0);function G1(a){const n=ga(a);return!fh()||!n.visualViewport?gN:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function fN(a,n,o){return n===void 0&&(n=!1),!o||n&&o!==ga(a)?!1:n}function er(a,n,o,i){n===void 0&&(n=!1),o===void 0&&(o=!1);const l=a.getBoundingClientRect(),d=xh(a);let m=ts(1);n&&(i?_a(i)&&(m=uo(i)):m=uo(a));const h=fN(d,o,i)?G1(d):ts(0);let g=(l.left+h.x)/m.x,f=(l.top+h.y)/m.y,y=l.width/m.x,x=l.height/m.y;if(d){const j=ga(d),C=i&&_a(i)?ga(i):i;let R=j,w=zp(R);for(;w&&i&&C!==R;){const E=uo(w),k=w.getBoundingClientRect(),D=za(w),q=k.left+(w.clientLeft+parseFloat(D.paddingLeft))*E.x,K=k.top+(w.clientTop+parseFloat(D.paddingTop))*E.y;g*=E.x,f*=E.y,y*=E.x,x*=E.y,g+=q,f+=K,R=ga(w),w=zp(R)}}return Hl({width:y,height:x,x:g,y:f})}function dd(a,n){const o=ld(a).scrollLeft;return n?n.left+o:er(rs(a)).left+o}function Y1(a,n){const o=a.getBoundingClientRect(),i=o.left+n.scrollLeft-dd(a,o),l=o.top+n.scrollTop;return{x:i,y:l}}function xN(a){let{elements:n,rect:o,offsetParent:i,strategy:l}=a;const d=l==="fixed",m=rs(i),h=n?cd(n.floating):!1;if(i===m||h&&d)return o;let g={scrollLeft:0,scrollTop:0},f=ts(1);const y=ts(0),x=ss(i);if((x||!x&&!d)&&((vo(i)!=="body"||Qi(m))&&(g=ld(i)),ss(i))){const C=er(i);f=uo(i),y.x=C.x+i.clientLeft,y.y=C.y+i.clientTop}const j=m&&!x&&!d?Y1(m,g):ts(0);return{width:o.width*f.x,height:o.height*f.y,x:o.x*f.x-g.scrollLeft*f.x+y.x+j.x,y:o.y*f.y-g.scrollTop*f.y+y.y+j.y}}function yN(a){return Array.from(a.getClientRects())}function vN(a){const n=rs(a),o=ld(a),i=a.ownerDocument.body,l=pa(n.scrollWidth,n.clientWidth,i.scrollWidth,i.clientWidth),d=pa(n.scrollHeight,n.clientHeight,i.scrollHeight,i.clientHeight);let m=-o.scrollLeft+dd(a);const h=-o.scrollTop;return za(i).direction==="rtl"&&(m+=pa(n.clientWidth,i.clientWidth)-l),{width:l,height:d,x:m,y:h}}const Nv=25;function bN(a,n){const o=ga(a),i=rs(a),l=o.visualViewport;let d=i.clientWidth,m=i.clientHeight,h=0,g=0;if(l){d=l.width,m=l.height;const y=fh();(!y||y&&n==="fixed")&&(h=l.offsetLeft,g=l.offsetTop)}const f=dd(i);if(f<=0){const y=i.ownerDocument,x=y.body,j=getComputedStyle(x),C=y.compatMode==="CSS1Compat"&&parseFloat(j.marginLeft)+parseFloat(j.marginRight)||0,R=Math.abs(i.clientWidth-x.clientWidth-C);R<=Nv&&(d-=R)}else f<=Nv&&(d+=f);return{width:d,height:m,x:h,y:g}}const jN=new Set(["absolute","fixed"]);function wN(a,n){const o=er(a,!0,n==="fixed"),i=o.top+a.clientTop,l=o.left+a.clientLeft,d=ss(a)?uo(a):ts(1),m=a.clientWidth*d.x,h=a.clientHeight*d.y,g=l*d.x,f=i*d.y;return{width:m,height:h,x:g,y:f}}function Pv(a,n,o){let i;if(n==="viewport")i=bN(a,o);else if(n==="document")i=vN(rs(a));else if(_a(n))i=wN(n,o);else{const l=G1(a);i={x:n.x-l.x,y:n.y-l.y,width:n.width,height:n.height}}return Hl(i)}function K1(a,n){const o=vn(a);return o===n||!_a(o)||fo(o)?!1:za(o).position==="fixed"||K1(o,n)}function CN(a,n){const o=n.get(a);if(o)return o;let i=Li(a,[],!1).filter(h=>_a(h)&&vo(h)!=="body"),l=null;const d=za(a).position==="fixed";let m=d?vn(a):a;for(;_a(m)&&!fo(m);){const h=za(m),g=gh(m);!g&&h.position==="fixed"&&(l=null),(d?!g&&!l:!g&&h.position==="static"&&!!l&&jN.has(l.position)||Qi(m)&&!g&&K1(a,m))?i=i.filter(y=>y!==m):l=h,m=vn(m)}return n.set(a,i),i}function SN(a){let{element:n,boundary:o,rootBoundary:i,strategy:l}=a;const m=[...o==="clippingAncestors"?cd(n)?[]:CN(n,this._c):[].concat(o),i],h=m[0],g=m.reduce((f,y)=>{const x=Pv(n,y,l);return f.top=pa(x.top,f.top),f.right=yn(x.right,f.right),f.bottom=yn(x.bottom,f.bottom),f.left=pa(x.left,f.left),f},Pv(n,h,l));return{width:g.right-g.left,height:g.bottom-g.top,x:g.left,y:g.top}}function AN(a){const{width:n,height:o}=Q1(a);return{width:n,height:o}}function RN(a,n,o){const i=ss(n),l=rs(n),d=o==="fixed",m=er(a,!0,d,n);let h={scrollLeft:0,scrollTop:0};const g=ts(0);function f(){g.x=dd(l)}if(i||!i&&!d)if((vo(n)!=="body"||Qi(l))&&(h=ld(n)),i){const C=er(n,!0,d,n);g.x=C.x+n.clientLeft,g.y=C.y+n.clientTop}else l&&f();d&&!i&&l&&f();const y=l&&!i&&!d?Y1(l,h):ts(0),x=m.left+h.scrollLeft-g.x-y.x,j=m.top+h.scrollTop-g.y-y.y;return{x,y:j,width:m.width,height:m.height}}function Km(a){return za(a).position==="static"}function Ov(a,n){if(!ss(a)||za(a).position==="fixed")return null;if(n)return n(a);let o=a.offsetParent;return rs(a)===o&&(o=o.ownerDocument.body),o}function J1(a,n){const o=ga(a);if(cd(a))return o;if(!ss(a)){let l=vn(a);for(;l&&!fo(l);){if(_a(l)&&!Km(l))return l;l=vn(l)}return o}let i=Ov(a,n);for(;i&&cN(i)&&Km(i);)i=Ov(i,n);return i&&fo(i)&&Km(i)&&!gh(i)?o:i||pN(a)||o}const EN=async function(a){const n=this.getOffsetParent||J1,o=this.getDimensions,i=await o(a.floating);return{reference:RN(a.reference,await n(a.floating),a.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function NN(a){return za(a).direction==="rtl"}const PN={convertOffsetParentRelativeRectToViewportRelativeRect:xN,getDocumentElement:rs,getClippingRect:SN,getOffsetParent:J1,getElementRects:EN,getClientRects:yN,getDimensions:AN,getScale:uo,isElement:_a,isRTL:NN};function W1(a,n){return a.x===n.x&&a.y===n.y&&a.width===n.width&&a.height===n.height}function ON(a,n){let o=null,i;const l=rs(a);function d(){var h;clearTimeout(i),(h=o)==null||h.disconnect(),o=null}function m(h,g){h===void 0&&(h=!1),g===void 0&&(g=1),d();const f=a.getBoundingClientRect(),{left:y,top:x,width:j,height:C}=f;if(h||n(),!j||!C)return;const R=xl(x),w=xl(l.clientWidth-(y+j)),E=xl(l.clientHeight-(x+C)),k=xl(y),q={rootMargin:-R+"px "+-w+"px "+-E+"px "+-k+"px",threshold:pa(0,yn(1,g))||1};let K=!0;function N(U){const M=U[0].intersectionRatio;if(M!==g){if(!K)return m();M?m(!1,M):i=setTimeout(()=>{m(!1,1e-7)},1e3)}M===1&&!W1(f,a.getBoundingClientRect())&&m(),K=!1}try{o=new IntersectionObserver(N,{...q,root:l.ownerDocument})}catch{o=new IntersectionObserver(N,q)}o.observe(a)}return m(!0),d}function kN(a,n,o,i){i===void 0&&(i={});const{ancestorScroll:l=!0,ancestorResize:d=!0,elementResize:m=typeof ResizeObserver=="function",layoutShift:h=typeof IntersectionObserver=="function",animationFrame:g=!1}=i,f=xh(a),y=l||d?[...f?Li(f):[],...Li(n)]:[];
vendor: 8,677 bytes, line 49
49y.forEach(k=>{l&&k.addEventListener("scroll",o,{passive:!0}),d&&k.addEventListener("resize",o)});const x=f&&h?ON(f,o):null;let j=-1,C=null;m&&(C=new ResizeObserver(k=>{let[D]=k;D&&D.target===f&&C&&(C.unobserve(n),cancelAnimationFrame(j),j=requestAnimationFrame(()=>{var q;(q=C)==null||q.observe(n)})),o()}),f&&!g&&C.observe(f),C.observe(n));let R,w=g?er(a):null;g&&E();function E(){const k=er(a);w&&!W1(w,k)&&o(),w=k,R=requestAnimationFrame(E)}return o(),()=>{var k;y.forEach(D=>{l&&D.removeEventListener("scroll",o),d&&D.removeEventListener("resize",o)}),x?.(),(k=C)==null||k.disconnect(),C=null,g&&cancelAnimationFrame(R)}}const MN=aN,TN=sN,DN=ZE,LN=rN,IN=eN,kv=XE,_N=nN,zN=(a,n,o)=>{const i=new Map,l={platform:PN,...o},d={...l.platform,_c:i};return $E(a,n,{...l,platform:d})};var qN=typeof document<"u",BN=function(){},Tl=qN?b.useLayoutEffect:BN;function Ul(a,n){if(a===n)return!0;if(typeof a!=typeof n)return!1;if(typeof a=="function"&&a.toString()===n.toString())return!0;let o,i,l;if(a&&n&&typeof a=="object"){if(Array.isArray(a)){if(o=a.length,o!==n.length)return!1;for(i=o;i--!==0;)if(!Ul(a[i],n[i]))return!1;return!0}if(l=Object.keys(a),o=l.length,o!==Object.keys(n).length)return!1;for(i=o;i--!==0;)if(!{}.hasOwnProperty.call(n,l[i]))return!1;for(i=o;i--!==0;){const d=l[i];if(!(d==="_owner"&&a.$$typeof)&&!Ul(a[d],n[d]))return!1}return!0}return a!==a&&n!==n}function $1(a){return typeof window>"u"?1:(a.ownerDocument.defaultView||window).devicePixelRatio||1}function Mv(a,n){const o=$1(a);return Math.round(n*o)/o}function Jm(a){const n=b.useRef(a);return Tl(()=>{n.current=a}),n}function HN(a){a===void 0&&(a={});const{placement:n="bottom",strategy:o="absolute",middleware:i=[],platform:l,elements:{reference:d,floating:m}={},transform:h=!0,whileElementsMounted:g,open:f}=a,[y,x]=b.useState({x:0,y:0,strategy:o,placement:n,middlewareData:{},isPositioned:!1}),[j,C]=b.useState(i);Ul(j,i)||C(i);const[R,w]=b.useState(null),[E,k]=b.useState(null),D=b.useCallback(z=>{z!==U.current&&(U.current=z,w(z))},[]),q=b.useCallback(z=>{z!==M.current&&(M.current=z,k(z))},[]),K=d||R,N=m||E,U=b.useRef(null),M=b.useRef(null),I=b.useRef(y),Z=g!=null,ae=Jm(g),le=Jm(l),ie=Jm(f),he=b.useCallback(()=>{if(!U.current||!M.current)return;const z={placement:n,strategy:o,middleware:j};le.current&&(z.platform=le.current),zN(U.current,M.current,z).then(ee=>{const de={...ee,isPositioned:ie.current!==!1};pe.current&&!Ul(I.current,de)&&(I.current=de,uh.flushSync(()=>{x(de)}))})},[j,n,o,le,ie]);Tl(()=>{f===!1&&I.current.isPositioned&&(I.current.isPositioned=!1,x(z=>({...z,isPositioned:!1})))},[f]);const pe=b.useRef(!1);Tl(()=>(pe.current=!0,()=>{pe.current=!1}),[]),Tl(()=>{if(K&&(U.current=K),N&&(M.current=N),K&&N){if(ae.current)return ae.current(K,N,he);he()}},[K,N,he,ae,Z]);const ge=b.useMemo(()=>({reference:U,floating:M,setReference:D,setFloating:q}),[D,q]),A=b.useMemo(()=>({reference:K,floating:N}),[K,N]),_=b.useMemo(()=>{const z={position:o,left:0,top:0};if(!A.floating)return z;const ee=Mv(A.floating,y.x),de=Mv(A.floating,y.y);return h?{...z,transform:"translate("+ee+"px, "+de+"px)",...$1(A.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:ee,top:de}},[o,h,A.floating,y.x,y.y]);return b.useMemo(()=>({...y,update:he,refs:ge,elements:A,floatingStyles:_}),[y,he,ge,A,_])}const UN=a=>{function n(o){return{}.hasOwnProperty.call(o,"current")}return{name:"arrow",options:a,fn(o){const{element:i,padding:l}=typeof a=="function"?a(o):a;return i&&n(i)?i.current!=null?kv({element:i.current,padding:l}).fn(o):{}:i?kv({element:i,padding:l}).fn(o):{}}}},VN=(a,n)=>({...MN(a),options:[a,n]}),FN=(a,n)=>({...TN(a),options:[a,n]}),QN=(a,n)=>({..._N(a),options:[a,n]}),GN=(a,n)=>({...DN(a),options:[a,n]}),YN=(a,n)=>({...LN(a),options:[a,n]}),KN=(a,n)=>({...IN(a),options:[a,n]}),JN=(a,n)=>({...UN(a),options:[a,n]});var WN="Arrow",X1=b.forwardRef((a,n)=>{const{children:o,width:i=10,height:l=5,...d}=a;return e.jsx(tt.svg,{...d,ref:n,width:i,height:l,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:a.asChild?o:e.jsx("polygon",{points:"0,0 30,0 15,10"})})});X1.displayName=WN;var $N=X1;function XN(a){const[n,o]=b.useState(void 0);return Ia(()=>{if(a){o({width:a.offsetWidth,height:a.offsetHeight});const i=new ResizeObserver(l=>{if(!Array.isArray(l)||!l.length)return;const d=l[0];let m,h;if("borderBoxSize"in d){const g=d.borderBoxSize,f=Array.isArray(g)?g[0]:g;m=f.inlineSize,h=f.blockSize}else m=a.offsetWidth,h=a.offsetHeight;o({width:m,height:h})});return i.observe(a,{box:"border-box"}),()=>i.unobserve(a)}else o(void 0)},[a]),n}var yh="Popper",[Z1,ud]=jn(yh),[ZN,ej]=Z1(yh),tj=a=>{const{__scopePopper:n,children:o}=a,[i,l]=b.useState(null);return e.jsx(ZN,{scope:n,anchor:i,onAnchorChange:l,children:o})};tj.displayName=yh;var aj="PopperAnchor",sj=b.forwardRef((a,n)=>{const{__scopePopper:o,virtualRef:i,...l}=a,d=ej(aj,o),m=b.useRef(null),h=jt(n,m),g=b.useRef(null);return b.useEffect(()=>{const f=g.current;g.current=i?.current||m.current,f!==g.current&&d.onAnchorChange(g.current)}),i?null:e.jsx(tt.div,{...l,ref:h})});sj.displayName=aj;var vh="PopperContent",[eP,tP]=Z1(vh),nj=b.forwardRef((a,n)=>{const{__scopePopper:o,side:i="bottom",sideOffset:l=0,align:d="center",alignOffset:m=0,arrowPadding:h=0,avoidCollisions:g=!0,collisionBoundary:f=[],collisionPadding:y=0,sticky:x="partial",hideWhenDetached:j=!1,updatePositionStrategy:C="optimized",onPlaced:R,...w}=a,E=ej(vh,o),[k,D]=b.useState(null),q=jt(n,ce=>D(ce)),[K,N]=b.useState(null),U=XN(K),M=U?.width??0,I=U?.height??0,Z=i+(d!=="center"?"-"+d:""),ae=typeof y=="number"?y:{top:0,right:0,bottom:0,left:0,...y},le=Array.isArray(f)?f:[f],ie=le.length>0,he={padding:ae,boundary:le.filter(sP),altBoundary:ie},{refs:pe,floatingStyles:ge,placement:A,isPositioned:_,middlewareData:z}=HN({strategy:"fixed",placement:Z,whileElementsMounted:(...ce)=>kN(...ce,{animationFrame:C==="always"}),elements:{reference:E.anchor},middleware:[VN({mainAxis:l+I,alignmentAxis:m}),g&&FN({mainAxis:!0,crossAxis:!1,limiter:x==="partial"?QN():void 0,...he}),g&&GN({...he}),YN({...he,apply:({elements:ce,rects:we,availableWidth:Me,availableHeight:dt})=>{const{width:wt,height:yt}=we.reference,H=ce.floating.style;H.setProperty("--radix-popper-available-width",`${Me}px`),H.setProperty("--radix-popper-available-height",`${dt}px`),H.setProperty("--radix-popper-anchor-width",`${wt}px`),H.setProperty("--radix-popper-anchor-height",`${yt}px`)}}),K&&JN({element:K,padding:h}),nP({arrowWidth:M,arrowHeight:I}),j&&KN({strategy:"referenceHidden",...he})]}),[ee,de]=ij(A),P=as(R);Ia(()=>{_&&P?.()},[_,P]);const W=z.arrow?.x,F=z.arrow?.y,$=z.arrow?.centerOffset!==0,[O,oe]=b.useState();return Ia(()=>{k&&oe(window.getComputedStyle(k).zIndex)},[k]),e.jsx("div",{ref:pe.setFloating,"data-radix-popper-content-wrapper":"",style:{...ge,transform:_?ge.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:O,"--radix-popper-transform-origin":[z.transformOrigin?.x,z.transformOrigin?.y].join(" "),...z.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:a.dir,children:e.jsx(eP,{scope:o,placedSide:ee,onArrowChange:N,arrowX:W,arrowY:F,shouldHideArrow:$,children:e.jsx(tt.div,{"data-side":ee,"data-align":de,...w,ref:q,style:{...w.style,animation:_?void 0:"none"}})})})});nj.displayName=vh;var rj="PopperArrow",aP={top:"bottom",right:"left",bottom:"top",left:"right"},oj=b.forwardRef(function(n,o){const{__scopePopper:i,...l}=n,d=tP(rj,i),m=aP[d.placedSide];return e.jsx("span",{ref:d.onArrowChange,style:{position:"absolute",left:d.arrowX,top:d.arrowY,[m]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[d.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[d.placedSide],visibility:d.shouldHideArrow?"hidden":void 0},children:e.jsx($N,{...l,ref:o,style:{...l.style,display:"block"}})})});oj.displayName=rj;function sP(a){return a!==null}var nP=a=>({name:"transformOrigin",options:a,fn(n){const{placement:o,rects:i,middlewareData:l}=n,m=l.arrow?.centerOffset!==0,h=m?0:a.arrowWidth,g=m?0:a.arrowHeight,[f,y]=ij(o),x={start:"0%",center:"50%",end:"100%"}[y],j=(l.arrow?.x??0)+h/2,C=(l.arrow?.y??0)+g/2;let R="",w="";return f==="bottom"?(R=m?x:`${j}px`,w=`${-g}px`):f==="top"?(R=m?x:`${j}px`,w=`${i.floating.height+g}px`):f==="right"?(R=`${-g}px`,w=m?x:`${C}px`):f==="left"&&(R=`${i.floating.width+g}px`,w=m?x:`${C}px`),{data:{x:R,y:w}}}});function ij(a){const[n,o="center"]=a.split("-");return[n,o]}var cj=tj,lj=sj,dj=nj,uj=oj,rP="Portal",md=b.forwardRef((a,n)=>{const{container:o,...i}=a,[l,d]=b.useState(!1);Ia(()=>d(!0),[]);const m=o||l&&globalThis?.document?.body;
vendor: 6,967 bytes, line 49
49return m?L1.createPortal(e.jsx(tt.div,{...i,ref:n}),m):null});md.displayName=rP;function oP(a,n){return b.useReducer((o,i)=>n[o][i]??o,a)}var os=a=>{const{present:n,children:o}=a,i=iP(n),l=typeof o=="function"?o({present:i.isPresent}):b.Children.only(o),d=jt(i.ref,cP(l));return typeof o=="function"||i.isPresent?b.cloneElement(l,{ref:d}):null};os.displayName="Presence";function iP(a){const[n,o]=b.useState(),i=b.useRef(null),l=b.useRef(a),d=b.useRef("none"),m=a?"mounted":"unmounted",[h,g]=oP(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const f=yl(i.current);d.current=h==="mounted"?f:"none"},[h]),Ia(()=>{const f=i.current,y=l.current;if(y!==a){const j=d.current,C=yl(f);a?g("MOUNT"):C==="none"||f?.display==="none"?g("UNMOUNT"):g(y&&j!==C?"ANIMATION_OUT":"UNMOUNT"),l.current=a}},[a,g]),Ia(()=>{if(n){let f;const y=n.ownerDocument.defaultView??window,x=C=>{const w=yl(i.current).includes(CSS.escape(C.animationName));if(C.target===n&&w&&(g("ANIMATION_END"),!l.current)){const E=n.style.animationFillMode;n.style.animationFillMode="forwards",f=y.setTimeout(()=>{n.style.animationFillMode==="forwards"&&(n.style.animationFillMode=E)})}},j=C=>{C.target===n&&(d.current=yl(i.current))};return n.addEventListener("animationstart",j),n.addEventListener("animationcancel",x),n.addEventListener("animationend",x),()=>{y.clearTimeout(f),n.removeEventListener("animationstart",j),n.removeEventListener("animationcancel",x),n.removeEventListener("animationend",x)}}else g("ANIMATION_END")},[n,g]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:b.useCallback(f=>{i.current=f?getComputedStyle(f):null,o(f)},[])}}function yl(a){return a?.animationName||"none"}function cP(a){let n=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,o=n&&"isReactWarning"in n&&n.isReactWarning;return o?a.ref:(n=Object.getOwnPropertyDescriptor(a,"ref")?.get,o=n&&"isReactWarning"in n&&n.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var lP=Xl[" useInsertionEffect ".trim().toString()]||Ia;function pd({prop:a,defaultProp:n,onChange:o=()=>{},caller:i}){const[l,d,m]=dP({defaultProp:n,onChange:o}),h=a!==void 0,g=h?a:l;{const y=b.useRef(a!==void 0);b.useEffect(()=>{const x=y.current;x!==h&&console.warn(`${i} is changing from ${x?"controlled":"uncontrolled"} to ${h?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=h},[h,i])}const f=b.useCallback(y=>{if(h){const x=uP(y)?y(a):y;x!==a&&m.current?.(x)}else d(y)},[h,a,d,m]);return[g,f]}function dP({defaultProp:a,onChange:n}){const[o,i]=b.useState(a),l=b.useRef(o),d=b.useRef(n);return lP(()=>{d.current=n},[n]),b.useEffect(()=>{l.current!==o&&(d.current?.(o),l.current=o)},[o,l]),[o,i,d]}function uP(a){return typeof a=="function"}var mP=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),pP="VisuallyHidden",mj=b.forwardRef((a,n)=>e.jsx(tt.span,{...a,ref:n,style:{...mP,...a.style}}));mj.displayName=pP;var hP=mj,[hd]=jn("Tooltip",[ud]),gd=ud(),pj="TooltipProvider",gP=700,qp="tooltip.open",[fP,bh]=hd(pj),hj=a=>{const{__scopeTooltip:n,delayDuration:o=gP,skipDelayDuration:i=300,disableHoverableContent:l=!1,children:d}=a,m=b.useRef(!0),h=b.useRef(!1),g=b.useRef(0);return b.useEffect(()=>{const f=g.current;return()=>window.clearTimeout(f)},[]),e.jsx(fP,{scope:n,isOpenDelayedRef:m,delayDuration:o,onOpen:b.useCallback(()=>{window.clearTimeout(g.current),m.current=!1},[]),onClose:b.useCallback(()=>{window.clearTimeout(g.current),g.current=window.setTimeout(()=>m.current=!0,i)},[i]),isPointerInTransitRef:h,onPointerInTransitChange:b.useCallback(f=>{h.current=f},[]),disableHoverableContent:l,children:d})};hj.displayName=pj;var Ii="Tooltip",[xP,Gi]=hd(Ii),gj=a=>{const{__scopeTooltip:n,children:o,open:i,defaultOpen:l,onOpenChange:d,disableHoverableContent:m,delayDuration:h}=a,g=bh(Ii,a.__scopeTooltip),f=gd(n),[y,x]=b.useState(null),j=$n(),C=b.useRef(0),R=m??g.disableHoverableContent,w=h??g.delayDuration,E=b.useRef(!1),[k,D]=pd({prop:i,defaultProp:l??!1,onChange:M=>{M?(g.onOpen(),document.dispatchEvent(new CustomEvent(qp))):g.onClose(),d?.(M)},caller:Ii}),q=b.useMemo(()=>k?E.current?"delayed-open":"instant-open":"closed",[k]),K=b.useCallback(()=>{window.clearTimeout(C.current),C.current=0,E.current=!1,D(!0)},[D]),N=b.useCallback(()=>{window.clearTimeout(C.current),C.current=0,D(!1)},[D]),U=b.useCallback(()=>{window.clearTimeout(C.current),C.current=window.setTimeout(()=>{E.current=!0,D(!0),C.current=0},w)},[w,D]);return b.useEffect(()=>()=>{C.current&&(window.clearTimeout(C.current),C.current=0)},[]),e.jsx(cj,{...f,children:e.jsx(xP,{scope:n,contentId:j,open:k,stateAttribute:q,trigger:y,onTriggerChange:x,onTriggerEnter:b.useCallback(()=>{g.isOpenDelayedRef.current?U():K()},[g.isOpenDelayedRef,U,K]),onTriggerLeave:b.useCallback(()=>{R?N():(window.clearTimeout(C.current),C.current=0)},[N,R]),onOpen:K,onClose:N,disableHoverableContent:R,children:o})})};gj.displayName=Ii;var Bp="TooltipTrigger",fj=b.forwardRef((a,n)=>{const{__scopeTooltip:o,...i}=a,l=Gi(Bp,o),d=bh(Bp,o),m=gd(o),h=b.useRef(null),g=jt(n,h,l.onTriggerChange),f=b.useRef(!1),y=b.useRef(!1),x=b.useCallback(()=>f.current=!1,[]);return b.useEffect(()=>()=>document.removeEventListener("pointerup",x),[x]),e.jsx(lj,{asChild:!0,...m,children:e.jsx(tt.button,{"aria-describedby":l.open?l.contentId:void 0,"data-state":l.stateAttribute,...i,ref:g,onPointerMove:Ee(a.onPointerMove,j=>{j.pointerType!=="touch"&&!y.current&&!d.isPointerInTransitRef.current&&(l.onTriggerEnter(),y.current=!0)}),onPointerLeave:Ee(a.onPointerLeave,()=>{l.onTriggerLeave(),y.current=!1}),onPointerDown:Ee(a.onPointerDown,()=>{l.open&&l.onClose(),f.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:Ee(a.onFocus,()=>{f.current||l.onOpen()}),onBlur:Ee(a.onBlur,l.onClose),onClick:Ee(a.onClick,l.onClose)})})});fj.displayName=Bp;var jh="TooltipPortal",[yP,vP]=hd(jh,{forceMount:void 0}),xj=a=>{const{__scopeTooltip:n,forceMount:o,children:i,container:l}=a,d=Gi(jh,n);return e.jsx(yP,{scope:n,forceMount:o,children:e.jsx(os,{present:o||d.open,children:e.jsx(md,{asChild:!0,container:l,children:i})})})};xj.displayName=jh;var xo="TooltipContent",yj=b.forwardRef((a,n)=>{const o=vP(xo,a.__scopeTooltip),{forceMount:i=o.forceMount,side:l="top",...d}=a,m=Gi(xo,a.__scopeTooltip);return e.jsx(os,{present:i||m.open,children:m.disableHoverableContent?e.jsx(vj,{side:l,...d,ref:n}):e.jsx(bP,{side:l,...d,ref:n})})}),bP=b.forwardRef((a,n)=>{const o=Gi(xo,a.__scopeTooltip),i=bh(xo,a.__scopeTooltip),l=b.useRef(null),d=jt(n,l),[m,h]=b.useState(null),{trigger:g,onClose:f}=o,y=l.current,{onPointerInTransitChange:x}=i,j=b.useCallback(()=>{h(null),x(!1)}
vendor: 4,710 bytes, line 49
49,[x]),C=b.useCallback((R,w)=>{const E=R.currentTarget,k={x:R.clientX,y:R.clientY},D=SP(k,E.getBoundingClientRect()),q=AP(k,D),K=RP(w.getBoundingClientRect()),N=NP([...q,...K]);h(N),x(!0)},[x]);return b.useEffect(()=>()=>j(),[j]),b.useEffect(()=>{if(g&&y){const R=E=>C(E,y),w=E=>C(E,g);return g.addEventListener("pointerleave",R),y.addEventListener("pointerleave",w),()=>{g.removeEventListener("pointerleave",R),y.removeEventListener("pointerleave",w)}}},[g,y,C,j]),b.useEffect(()=>{if(m){const R=w=>{const E=w.target,k={x:w.clientX,y:w.clientY},D=g?.contains(E)||y?.contains(E),q=!EP(k,m);D?j():q&&(j(),f())};return document.addEventListener("pointermove",R),()=>document.removeEventListener("pointermove",R)}},[g,y,m,f,j]),e.jsx(vj,{...a,ref:d})}),[jP,wP]=hd(Ii,{isInside:!1}),CP=AE("TooltipContent"),vj=b.forwardRef((a,n)=>{const{__scopeTooltip:o,children:i,"aria-label":l,onEscapeKeyDown:d,onPointerDownOutside:m,...h}=a,g=Gi(xo,o),f=gd(o),{onClose:y}=g;return b.useEffect(()=>(document.addEventListener(qp,y),()=>document.removeEventListener(qp,y)),[y]),b.useEffect(()=>{if(g.trigger){const x=j=>{j.target?.contains(g.trigger)&&y()};return window.addEventListener("scroll",x,{capture:!0}),()=>window.removeEventListener("scroll",x,{capture:!0})}},[g.trigger,y]),e.jsx(od,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:x=>x.preventDefault(),onDismiss:y,children:e.jsxs(dj,{"data-state":g.stateAttribute,...f,...h,ref:n,style:{...h.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(CP,{children:i}),e.jsx(jP,{scope:o,isInside:!0,children:e.jsx(hP,{id:g.contentId,role:"tooltip",children:l||i})})]})})});yj.displayName=xo;var bj="TooltipArrow",jj=b.forwardRef((a,n)=>{const{__scopeTooltip:o,...i}=a,l=gd(o);return wP(bj,o).isInside?null:e.jsx(uj,{...l,...i,ref:n})});jj.displayName=bj;function SP(a,n){const o=Math.abs(n.top-a.y),i=Math.abs(n.bottom-a.y),l=Math.abs(n.right-a.x),d=Math.abs(n.left-a.x);switch(Math.min(o,i,l,d)){case d:return"left";case l:return"right";case o:return"top";case i:return"bottom";default:throw new Error("unreachable")}}function AP(a,n,o=5){const i=[];switch(n){case"top":i.push({x:a.x-o,y:a.y+o},{x:a.x+o,y:a.y+o});break;case"bottom":i.push({x:a.x-o,y:a.y-o},{x:a.x+o,y:a.y-o});break;case"left":i.push({x:a.x+o,y:a.y-o},{x:a.x+o,y:a.y+o});break;case"right":i.push({x:a.x-o,y:a.y-o},{x:a.x-o,y:a.y+o});break}return i}function RP(a){const{top:n,right:o,bottom:i,left:l}=a;return[{x:l,y:n},{x:o,y:n},{x:o,y:i},{x:l,y:i}]}function EP(a,n){const{x:o,y:i}=a;let l=!1;for(let d=0,m=n.length-1;d<n.length;m=d++){const h=n[d],g=n[m],f=h.x,y=h.y,x=g.x,j=g.y;y>i!=j>i&&o<(x-f)*(i-y)/(j-y)+f&&(l=!l)}return l}function NP(a){const n=a.slice();return n.sort((o,i)=>o.x<i.x?-1:o.x>i.x?1:o.y<i.y?-1:o.y>i.y?1:0),PP(n)}function PP(a){if(a.length<=1)return a.slice();const n=[];for(let i=0;i<a.length;i++){const l=a[i];for(;n.length>=2;){const d=n[n.length-1],m=n[n.length-2];if((d.x-m.x)*(l.y-m.y)>=(d.y-m.y)*(l.x-m.x))n.pop();else break}n.push(l)}n.pop();const o=[];for(let i=a.length-1;i>=0;i--){const l=a[i];for(;o.length>=2;){const d=o[o.length-1],m=o[o.length-2];if((d.x-m.x)*(l.y-m.y)>=(d.y-m.y)*(l.x-m.x))o.pop();else break}o.push(l)}return o.pop(),n.length===1&&o.length===1&&n[0].x===o[0].x&&n[0].y===o[0].y?n:n.concat(o)}var OP=hj,kP=gj,MP=fj,TP=xj,DP=yj,LP=jj;function wj(a){var n,o,i="";if(typeof a=="string"||typeof a=="number")i+=a;else if(typeof a=="object")if(Array.isArray(a)){var l=a.length;for(n=0;n<l;n++)a[n]&&(o=wj(a[n]))&&(i&&(i+=" "),i+=o)}else for(o in a)a[o]&&(i&&(i+=" "),i+=o);return i}function Cj(){for(var a,n,o=0,i="",l=arguments.length;o<l;o++)(a=arguments[o])&&(n=wj(a))&&(i&&(i+=" "),i+=n);return i}const wh="-",IP=a=>{const n=zP(a),{conflictingClassGroups:o,conflictingClassGroupModifiers:i}=a;return{getClassGroupId:m=>{const h=m.split(wh);return h[0]===""&&h.length!==1&&h.shift(),Sj(h,n)||_P(m)},getConflictingClassGroupIds:(m,h)=>{const g=o[m]||[];return h&&i[m]?[...g,...i[m]]:g}}},Sj=(a,n)=>{if(a.length===0)return n.classGroupId;const o=a[0],i=n.nextPart.get(o),l=i?Sj(a.slice(1),i):void 0;if(l)return l;if(n.validators.length===0)return;const d=a.join(wh);return n.validators.find(({validator:m})=>m(d))?.classGroupId},Tv=/^\[(.+)\]$/,_P=a=>{if(Tv.test(a)){const n=Tv.exec(a)[1],o=n?.substring(0,n.indexOf(":"));if(o)return"arbitrary.."+o}},zP=a=>
vendor: 3,837 bytes, line 49
49{const{theme:n,classGroups:o}=a,i={nextPart:new Map,validators:[]};for(const l in o)Hp(o[l],i,l,n);return i},Hp=(a,n,o,i)=>{a.forEach(l=>{if(typeof l=="string"){const d=l===""?n:Dv(n,l);d.classGroupId=o;return}if(typeof l=="function"){if(qP(l)){Hp(l(i),n,o,i);return}n.validators.push({validator:l,classGroupId:o});return}Object.entries(l).forEach(([d,m])=>{Hp(m,Dv(n,d),o,i)})})},Dv=(a,n)=>{let o=a;return n.split(wh).forEach(i=>{o.nextPart.has(i)||o.nextPart.set(i,{nextPart:new Map,validators:[]}),o=o.nextPart.get(i)}),o},qP=a=>a.isThemeGetter,BP=a=>{if(a<1)return{get:()=>{},set:()=>{}};let n=0,o=new Map,i=new Map;const l=(d,m)=>{o.set(d,m),n++,n>a&&(n=0,i=o,o=new Map)};return{get(d){let m=o.get(d);if(m!==void 0)return m;if((m=i.get(d))!==void 0)return l(d,m),m},set(d,m){o.has(d)?o.set(d,m):l(d,m)}}},Up="!",Vp=":",HP=Vp.length,UP=a=>{const{prefix:n,experimentalParseClassName:o}=a;let i=l=>{const d=[];let m=0,h=0,g=0,f;for(let R=0;R<l.length;R++){let w=l[R];if(m===0&&h===0){if(w===Vp){d.push(l.slice(g,R)),g=R+HP;continue}if(w==="/"){f=R;continue}}w==="["?m++:w==="]"?m--:w==="("?h++:w===")"&&h--}const y=d.length===0?l:l.substring(g),x=VP(y),j=x!==y,C=f&&f>g?f-g:void 0;return{modifiers:d,hasImportantModifier:j,baseClassName:x,maybePostfixModifierPosition:C}};if(n){const l=n+Vp,d=i;i=m=>m.startsWith(l)?d(m.substring(l.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:m,maybePostfixModifierPosition:void 0}}if(o){const l=i;i=d=>o({className:d,parseClassName:l})}return i},VP=a=>a.endsWith(Up)?a.substring(0,a.length-1):a.startsWith(Up)?a.substring(1):a,FP=a=>{const n=Object.fromEntries(a.orderSensitiveModifiers.map(i=>[i,!0]));return i=>{if(i.length<=1)return i;const l=[];let d=[];return i.forEach(m=>{m[0]==="["||n[m]?(l.push(...d.sort(),m),d=[]):d.push(m)}),l.push(...d.sort()),l}},QP=a=>({cache:BP(a.cacheSize),parseClassName:UP(a),sortModifiers:FP(a),...IP(a)}),GP=/\s+/,YP=(a,n)=>{const{parseClassName:o,getClassGroupId:i,getConflictingClassGroupIds:l,sortModifiers:d}=n,m=[],h=a.trim().split(GP);let g="";for(let f=h.length-1;f>=0;f-=1){const y=h[f],{isExternal:x,modifiers:j,hasImportantModifier:C,baseClassName:R,maybePostfixModifierPosition:w}=o(y);if(x){g=y+(g.length>0?" "+g:g);continue}let E=!!w,k=i(E?R.substring(0,w):R);if(!k){if(!E){g=y+(g.length>0?" "+g:g);continue}if(k=i(R),!k){g=y+(g.length>0?" "+g:g);continue}E=!1}const D=d(j).join(":"),q=C?D+Up:D,K=q+k;if(m.includes(K))continue;m.push(K);const N=l(k,E);for(let U=0;U<N.length;++U){const M=N[U];m.push(q+M)}g=y+(g.length>0?" "+g:g)}return g};function KP(){let a=0,n,o,i="";for(;a<arguments.length;)(n=arguments[a++])&&(o=Aj(n))&&(i&&(i+=" "),i+=o);return i}const Aj=a=>{if(typeof a=="string")return a;let n,o="";for(let i=0;i<a.length;i++)a[i]&&(n=Aj(a[i]))&&(o&&(o+=" "),o+=n);return o};function JP(a,...n){let o,i,l,d=m;function m(g){const f=n.reduce((y,x)=>x(y),a());return o=QP(f),i=o.cache.get,l=o.cache.set,d=h,h(g)}function h(g){const f=i(g);if(f)return f;const y=YP(g,o);return l(g,y),y}return function(){return d(KP.apply(null,arguments))}}const bt=a=>{const n=o=>o[a]||[];return n.isThemeGetter=!0,n},Rj=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ej=/^\((?:(\w[\w-]*):)?(.+)\)$/i,WP=/^\d+\/\d+$/,$P=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XP=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eO=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,tO=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Zr=a=>WP.test(a),Te=a=>!!a&&!Number.isNaN(Number(a)),dn=a=>!!a&&Number.isInteger(Number(a)),Wm=a=>a.endsWith("%")&&Te(a.slice(0,-1)),Rs=a=>$P.test(a),aO=()=>!0,sO=a=>XP.test(a)&&!ZP.test(a),Nj=()=>!1,nO=a=>eO.test(a),rO=a=>tO.test(a),oO=a=>
vendor: 4,212 bytes, line 49
49!ye(a)&&!ve(a),iO=a=>bo(a,kj,Nj),ye=a=>Rj.test(a),Yn=a=>bo(a,Mj,sO),$m=a=>bo(a,mO,Te),Lv=a=>bo(a,Pj,Nj),cO=a=>bo(a,Oj,rO),vl=a=>bo(a,Tj,nO),ve=a=>Ej.test(a),wi=a=>jo(a,Mj),lO=a=>jo(a,pO),Iv=a=>jo(a,Pj),dO=a=>jo(a,kj),uO=a=>jo(a,Oj),bl=a=>jo(a,Tj,!0),bo=(a,n,o)=>{const i=Rj.exec(a);return i?i[1]?n(i[1]):o(i[2]):!1},jo=(a,n,o=!1)=>{const i=Ej.exec(a);return i?i[1]?n(i[1]):o:!1},Pj=a=>a==="position"||a==="percentage",Oj=a=>a==="image"||a==="url",kj=a=>a==="length"||a==="size"||a==="bg-size",Mj=a=>a==="length",mO=a=>a==="number",pO=a=>a==="family-name",Tj=a=>a==="shadow",hO=()=>{const a=bt("color"),n=bt("font"),o=bt("text"),i=bt("font-weight"),l=bt("tracking"),d=bt("leading"),m=bt("breakpoint"),h=bt("container"),g=bt("spacing"),f=bt("radius"),y=bt("shadow"),x=bt("inset-shadow"),j=bt("text-shadow"),C=bt("drop-shadow"),R=bt("blur"),w=bt("perspective"),E=bt("aspect"),k=bt("ease"),D=bt("animate"),q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],K=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],N=()=>[...K(),ve,ye],U=()=>["auto","hidden","clip","visible","scroll"],M=()=>["auto","contain","none"],I=()=>[ve,ye,g],Z=()=>[Zr,"full","auto",...I()],ae=()=>[dn,"none","subgrid",ve,ye],le=()=>["auto",{span:["full",dn,ve,ye]},dn,ve,ye],ie=()=>[dn,"auto",ve,ye],he=()=>["auto","min","max","fr",ve,ye],pe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ge=()=>["start","end","center","stretch","center-safe","end-safe"],A=()=>["auto",...I()],_=()=>[Zr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...I()],z=()=>[a,ve,ye],ee=()=>[...K(),Iv,Lv,{position:[ve,ye]}],de=()=>["no-repeat",{repeat:["","x","y","space","round"]}],P=()=>["auto","cover","contain",dO,iO,{size:[ve,ye]}],W=()=>[Wm,wi,Yn],F=()=>["","none","full",f,ve,ye],$=()=>["",Te,wi,Yn],O=()=>["solid","dashed","dotted","double"],oe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ce=()=>[Te,Wm,Iv,Lv],we=()=>["","none",R,ve,ye],Me=()=>["none",Te,ve,ye],dt=()=>["none",Te,ve,ye],wt=()=>[Te,ve,ye],yt=()=>[Zr,"full",...I()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Rs],breakpoint:[Rs],color:[aO],container:[Rs],"drop-shadow":[Rs],ease:["in","out","in-out"],font:[oO],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Rs],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Rs],shadow:[Rs],spacing:["px",Te],text:[Rs],"text-shadow":[Rs],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Zr,ye,ve,E]}],container:["container"],columns:[{columns:[Te,ye,ve,h]}],"break-after":[{"break-after":q()}],"break-before":[{"break-before":q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:N()}],overflow:[{overflow:U()}],"overflow-x":[{"overflow-x":U()}],"overflow-y":[{"overflow-y":U()}],overscroll:[{overscroll:M()}],"overscroll-x":[{"overscroll-x":M()}],"overscroll-y":[{"overscroll-y":M()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Z()}],"inset-x":[{"inset-x":Z()}],"inset-y":[{"inset-y":Z()}],start:[{start:Z()}],end:[{end:Z()}],top:[{top:Z()}
vendor: 11,103 bytes, line 49
49],right:[{right:Z()}],bottom:[{bottom:Z()}],left:[{left:Z()}],visibility:["visible","invisible","collapse"],z:[{z:[dn,"auto",ve,ye]}],basis:[{basis:[Zr,"full","auto",h,...I()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Te,Zr,"auto","initial","none",ye]}],grow:[{grow:["",Te,ve,ye]}],shrink:[{shrink:["",Te,ve,ye]}],order:[{order:[dn,"first","last","none",ve,ye]}],"grid-cols":[{"grid-cols":ae()}],"col-start-end":[{col:le()}],"col-start":[{"col-start":ie()}],"col-end":[{"col-end":ie()}],"grid-rows":[{"grid-rows":ae()}],"row-start-end":[{row:le()}],"row-start":[{"row-start":ie()}],"row-end":[{"row-end":ie()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":he()}],"auto-rows":[{"auto-rows":he()}],gap:[{gap:I()}],"gap-x":[{"gap-x":I()}],"gap-y":[{"gap-y":I()}],"justify-content":[{justify:[...pe(),"normal"]}],"justify-items":[{"justify-items":[...ge(),"normal"]}],"justify-self":[{"justify-self":["auto",...ge()]}],"align-content":[{content:["normal",...pe()]}],"align-items":[{items:[...ge(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ge(),{baseline:["","last"]}]}],"place-content":[{"place-content":pe()}],"place-items":[{"place-items":[...ge(),"baseline"]}],"place-self":[{"place-self":["auto",...ge()]}],p:[{p:I()}],px:[{px:I()}],py:[{py:I()}],ps:[{ps:I()}],pe:[{pe:I()}],pt:[{pt:I()}],pr:[{pr:I()}],pb:[{pb:I()}],pl:[{pl:I()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":I()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":I()}],"space-y-reverse":["space-y-reverse"],size:[{size:_()}],w:[{w:[h,"screen",..._()]}],"min-w":[{"min-w":[h,"screen","none",..._()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[m]},..._()]}],h:[{h:["screen","lh",..._()]}],"min-h":[{"min-h":["screen","lh","none",..._()]}],"max-h":[{"max-h":["screen","lh",..._()]}],"font-size":[{text:["base",o,wi,Yn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,ve,$m]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Wm,ye]}],"font-family":[{font:[lO,ye,n]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,ve,ye]}],"line-clamp":[{"line-clamp":[Te,"none",ve,$m]}],leading:[{leading:[d,...I()]}],"list-image":[{"list-image":["none",ve,ye]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ve,ye]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:z()}],"text-color":[{text:z()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...O(),"wavy"]}],"text-decoration-thickness":[{decoration:[Te,"from-font","auto",ve,Yn]}],"text-decoration-color":[{decoration:z()}],"underline-offset":[{"underline-offset":[Te,"auto",ve,ye]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:I()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ve,ye]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ve,ye]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ee()}],"bg-repeat":[{bg:de()}],"bg-size":[{bg:P()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},dn,ve,ye],radial:["",ve,ye],conic:[dn,ve,ye]},uO,cO]}],"bg-color":[{bg:z()}],"gradient-from-pos":[{from:W()}],"gradient-via-pos":[{via:W()}],"gradient-to-pos":[{to:W()}],"gradient-from":[{from:z()}],"gradient-via":[{via:z()}],"gradient-to":[{to:z()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:$()}],"border-w-x":[{"border-x":$()}],"border-w-y":[{"border-y":$()}],"border-w-s":[{"border-s":$()}],"border-w-e":[{"border-e":$()}],"border-w-t":[{"border-t":$()}],"border-w-r":[{"border-r":$()}],"border-w-b":[{"border-b":$()}],"border-w-l":[{"border-l":$()}],"divide-x":[{"divide-x":$()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":$()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...O(),"hidden","none"]}],"divide-style":[{divide:[...O(),"hidden","none"]}],"border-color":[{border:z()}],"border-color-x":[{"border-x":z()}],"border-color-y":[{"border-y":z()}],"border-color-s":[{"border-s":z()}],"border-color-e":[{"border-e":z()}],"border-color-t":[{"border-t":z()}],"border-color-r":[{"border-r":z()}],"border-color-b":[{"border-b":z()}],"border-color-l":[{"border-l":z()}],"divide-color":[{divide:z()}],"outline-style":[{outline:[...O(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Te,ve,ye]}],"outline-w":[{outline:["",Te,wi,Yn]}],"outline-color":[{outline:z()}],shadow:[{shadow:["","none",y,bl,vl]}],"shadow-color":[{shadow:z()}],"inset-shadow":[{"inset-shadow":["none",x,bl,vl]}],"inset-shadow-color":[{"inset-shadow":z()}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:z()}],"ring-offset-w":[{"ring-offset":[Te,Yn]}],"ring-offset-color":[{"ring-offset":z()}],"inset-ring-w":[{"inset-ring":$()}],"inset-ring-color":[{"inset-ring":z()}],"text-shadow":[{"text-shadow":["none",j,bl,vl]}],"text-shadow-color":[{"text-shadow":z()}],opacity:[{opacity:[Te,ve,ye]}],"mix-blend":[{"mix-blend":[...oe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":oe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Te]}],"mask-image-linear-from-pos":[{"mask-linear-from":ce()}],"mask-image-linear-to-pos":[{"mask-linear-to":ce()}],"mask-image-linear-from-color":[{"mask-linear-from":z()}],"mask-image-linear-to-color":[{"mask-linear-to":z()}],"mask-image-t-from-pos":[{"mask-t-from":ce()}],"mask-image-t-to-pos":[{"mask-t-to":ce()}],"mask-image-t-from-color":[{"mask-t-from":z()}],"mask-image-t-to-color":[{"mask-t-to":z()}],"mask-image-r-from-pos":[{"mask-r-from":ce()}],"mask-image-r-to-pos":[{"mask-r-to":ce()}],"mask-image-r-from-color":[{"mask-r-from":z()}],"mask-image-r-to-color":[{"mask-r-to":z()}],"mask-image-b-from-pos":[{"mask-b-from":ce()}],"mask-image-b-to-pos":[{"mask-b-to":ce()}],"mask-image-b-from-color":[{"mask-b-from":z()}],"mask-image-b-to-color":[{"mask-b-to":z()}],"mask-image-l-from-pos":[{"mask-l-from":ce()}],"mask-image-l-to-pos":[{"mask-l-to":ce()}],"mask-image-l-from-color":[{"mask-l-from":z()}],"mask-image-l-to-color":[{"mask-l-to":z()}],"mask-image-x-from-pos":[{"mask-x-from":ce()}],"mask-image-x-to-pos":[{"mask-x-to":ce()}],"mask-image-x-from-color":[{"mask-x-from":z()}],"mask-image-x-to-color":[{"mask-x-to":z()}],"mask-image-y-from-pos":[{"mask-y-from":ce()}],"mask-image-y-to-pos":[{"mask-y-to":ce()}],"mask-image-y-from-color":[{"mask-y-from":z()}],"mask-image-y-to-color":[{"mask-y-to":z()}],"mask-image-radial":[{"mask-radial":[ve,ye]}],"mask-image-radial-from-pos":[{"mask-radial-from":ce()}],"mask-image-radial-to-pos":[{"mask-radial-to":ce()}],"mask-image-radial-from-color":[{"mask-radial-from":z()}],"mask-image-radial-to-color":[{"mask-radial-to":z()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":K()}],"mask-image-conic-pos":[{"mask-conic":[Te]}],"mask-image-conic-from-pos":[{"mask-conic-from":ce()}],"mask-image-conic-to-pos":[{"mask-conic-to":ce()}],"mask-image-conic-from-color":[{"mask-conic-from":z()}],"mask-image-conic-to-color":[{"mask-conic-to":z()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ee()}],"mask-repeat":[{mask:de()}],"mask-size":[{mask:P()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ve,ye]}],filter:[{filter:["","none",ve,ye]}],blur:[{blur:we()}],brightness:[{brightness:[Te,ve,ye]}],contrast:[{contrast:[Te,ve,ye]}],"drop-shadow":[{"drop-shadow":["","none",C,bl,vl]}],"drop-shadow-color":[{"drop-shadow":z()}],grayscale:[{grayscale:["",Te,ve,ye]}],"hue-rotate":[{"hue-rotate":[Te,ve,ye]}],invert:[{invert:["",Te,ve,ye]}],saturate:[{saturate:[Te,ve,ye]}],sepia:[{sepia:["",Te,ve,ye]}],"backdrop-filter":[{"backdrop-filter":["","none",ve,ye]}],"backdrop-blur":[{"backdrop-blur":we()}],"backdrop-brightness":[{"backdrop-brightness":[Te,ve,ye]}],"backdrop-contrast":[{"backdrop-contrast":[Te,ve,ye]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Te,ve,ye]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Te,ve,ye]}],"backdrop-invert":[{"backdrop-invert":["",Te,ve,ye]}],"backdrop-opacity":[{"backdrop-opacity":[Te,ve,ye]}],"backdrop-saturate":[{"backdrop-saturate":[Te,ve,ye]}],"backdrop-sepia":[{"backdrop-sepia":["",Te,ve,ye]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":I()}],"border-spacing-x":[{"border-spacing-x":I()}],"border-spacing-y":[{"border-spacing-y":I()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ve,ye]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Te,"initial",ve,ye]}],ease:[{ease:["linear","initial",k,ve,ye]}],delay:[{delay:[Te,ve,ye]}],animate:[{animate:["none",D,ve,ye]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,ve,ye]}],"perspective-origin":[{"perspective-origin":N()}],rotate:[{rotate:Me()}],"rotate-x":[{"rotate-x":Me()}],"rotate-y":[{"rotate-y":Me()}],"rotate-z":[{"rotate-z":Me()}],scale:[{scale:dt()}],"scale-x":[{"scale-x":dt()}],"scale-y":[{"scale-y":dt()}],"scale-z":[{"scale-z":dt()}
vendor: 5,965 bytes, line 49
49],"scale-3d":["scale-3d"],skew:[{skew:wt()}],"skew-x":[{"skew-x":wt()}],"skew-y":[{"skew-y":wt()}],transform:[{transform:[ve,ye,"","none","gpu","cpu"]}],"transform-origin":[{origin:N()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:yt()}],"translate-x":[{"translate-x":yt()}],"translate-y":[{"translate-y":yt()}],"translate-z":[{"translate-z":yt()}],"translate-none":["translate-none"],accent:[{accent:z()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:z()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ve,ye]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":I()}],"scroll-mx":[{"scroll-mx":I()}],"scroll-my":[{"scroll-my":I()}],"scroll-ms":[{"scroll-ms":I()}],"scroll-me":[{"scroll-me":I()}],"scroll-mt":[{"scroll-mt":I()}],"scroll-mr":[{"scroll-mr":I()}],"scroll-mb":[{"scroll-mb":I()}],"scroll-ml":[{"scroll-ml":I()}],"scroll-p":[{"scroll-p":I()}],"scroll-px":[{"scroll-px":I()}],"scroll-py":[{"scroll-py":I()}],"scroll-ps":[{"scroll-ps":I()}],"scroll-pe":[{"scroll-pe":I()}],"scroll-pt":[{"scroll-pt":I()}],"scroll-pr":[{"scroll-pr":I()}],"scroll-pb":[{"scroll-pb":I()}],"scroll-pl":[{"scroll-pl":I()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ve,ye]}],fill:[{fill:["none",...z()]}],"stroke-w":[{stroke:[Te,wi,Yn,$m]}],stroke:[{stroke:["none",...z()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},gO=JP(hO);function Qe(...a){return gO(Cj(a))}function Ch({delayDuration:a=0,...n}){return e.jsx(OP,{"data-loc":"client/src/components/ui/tooltip.tsx:11","data-slot":"tooltip-provider",delayDuration:a,...n})}function fO({...a}){return e.jsx(Ch,{"data-loc":"client/src/components/ui/tooltip.tsx:23",children:e.jsx(kP,{"data-loc":"client/src/components/ui/tooltip.tsx:24","data-slot":"tooltip",...a})})}function xO({...a}){return e.jsx(MP,{"data-loc":"client/src/components/ui/tooltip.tsx:32","data-slot":"tooltip-trigger",...a})}function yO({className:a,sideOffset:n=0,children:o,...i}){return e.jsx(TP,{"data-loc":"client/src/components/ui/tooltip.tsx:42",children:e.jsxs(DP,{"data-loc":"client/src/components/ui/tooltip.tsx:43","data-slot":"tooltip-content",sideOffset:n,className:Qe("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
49de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",a),...i,children:[o,e.jsx(LP,{"data-loc":"client/src/components/ui/tooltip.tsx:53",className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}const _v=a=>typeof a=="boolean"?`${a}`:a===0?"0":a,zv=Cj,Dj=(a,n)=>o=>{var i;if(n?.variants==null)return zv(a,o?.class,o?.className);const{variants:l,defaultVariants:d}=n,m=Object.keys(l).map(f=>{const y=o?.[f],x=d?.[f];if(y===null)return null;const j=_v(y)||_v(x);return l[f][j]}),h=o&&Object.entries(o).reduce((f,y)=>{let[x,j]=y;return j===void 0||(f[x]=j),f},{}),g=n==null||(i=n.compoundVariants)===null||i===void 0?void 0:i.reduce((f,y)=>{let{class:x,className:j,...C}=y;return Object.entries(C).every(R=>{let[w,E]=R;return Array.isArray(E)?E.includes({...d,...h}[w]):{...d,...h}[w]===E})?[...f,x,j]:f},[]);return zv(a,m,g,o?.class,o?.className)},vO=Dj("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-transparent shadow-xs hover:bg-accent dark:bg-transparent dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function Sh({className:a,variant:n,size:o,asChild:i=!1,...l}){const d=i?I1:"button";return e.jsx(d,{"data-loc":"client/src/components/ui/button.tsx:52","data-slot":"button",className:Qe(vO({variant:n,size:o,className:a})),...l})}function bO({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/card.tsx:7","data-slot":"card",className:Qe("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...n})}function jO({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/card.tsx:66","data-slot":"card-content",className:Qe("px-6",a),...n})}/** 50 * @license lucide-react v0.453.0 - ISC 51 * 52 * This source code is licensed under the ISC license. 53 * See the LICENSE file in the root directory of this source tree. 54 */const wO=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Lj=(...a)=>a.filter((n,o,i)=>!!n&&i.indexOf(n)===o).join(" ");/** 55 * @license lucide-react v0.453.0 - ISC 56 * 57 * This source code is licensed under the ISC license. 58 * See the LICENSE file in the root directory of this source tree. 59 */var CO={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 60 * @license lucide-react v0.453.0 - ISC 61 * 62 * This source code is licensed under the ISC license. 63 * See the LICENSE file in the root directory of this source tree. 64 */const SO=b.forwardRef(({color:a="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:l="",children:d,iconNode:m,...h},g)=>b.createElement("svg",{ref:g,...CO,width:n,height:n,stroke:a,strokeWidth:i?Number(o)*24/Number(n):o,className:Lj("lucide",l),...h},[...m.map(([f,y])=>b.createElement(f,y)),...Array.isArray(d)?d:[d]]));/** 65 * @license lucide-react v0.453.0 - ISC 66 * 67 * This source code is licensed under the ISC license. 68 * See the LICENSE file in the root directory of this source tree. 69 */const me=(a,n)=>{const o=b.forwardRef(({className:i,...l},d)=>b.createElement(SO,{ref:d,iconNode:n,className:Lj(`lucide-${wO(a)}`,i),...l}));return o.displayName=`${a}`,o};/** 70 * @license lucide-react v0.453.0 - ISC 71 * 72 * This source code is licensed under the ISC license. 73 * See the LICENSE file in the root directory of this source tree. 74 */const AO=me("ArrowDownRight",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]);/** 75 * @license lucide-react v0.453.0 - ISC 76 * 77 * This source code is licensed under the ISC license. 78 * See the LICENSE file in the root directory of this source tree. 79 */const Ts=me("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** 80 * @license lucide-react v0.453.0 - ISC 81 * 82 * This source code is licensed under the ISC license. 83 * See the LICENSE file in the root directory of this source tree. 84 */const Y=me("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 85 * @license lucide-react v0.453.0 - ISC 86 * 87 * This source code is licensed under the ISC license. 88 * See the LICENSE file in the root directory of this source tree.
89 */const Os=me("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/** 90 * @license lucide-react v0.453.0 - ISC 91 * 92 * This source code is licensed under the ISC license. 93 * See the LICENSE file in the root directory of this source tree. 94 */const RO=me("BadgeCheck",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 95 * @license lucide-react v0.453.0 - ISC 96 * 97 * This source code is licensed under the ISC license. 98 * See the LICENSE file in the root directory of this source tree. 99 */const EO=me("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** 100 * @license lucide-react v0.453.0 - ISC 101 * 102 * This source code is licensed under the ISC license. 103 * See the LICENSE file in the root directory of this source tree. 104 */const NO=me("BrainCircuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);/** 105 * @license lucide-react v0.453.0 - ISC 106 * 107 * This source code is licensed under the ISC license. 108 * See the LICENSE file in the root directory of this source tree. 109 */const PO=me("BriefcaseBusiness",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/** 110 * @license lucide-react v0.453.0 - ISC 111 * 112 * This source code is licensed under the ISC license. 113 * See the LICENSE file in the root directory of this source tree. 114 */const OO=me("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** 115 * @license lucide-react v0.453.0 - ISC 116 * 117 * This source code is licensed under the ISC license. 118 * See the LICENSE file in the root directory of this source tree. 119 */const Ij=me("Calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]);/** 120 * @license lucide-react v0.453.0 - ISC 121 * 122 * This source code is licensed under the ISC license. 123 * See the LICENSE file in the root directory of this source tree. 124 */const rr=me("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** 125 * @license lucide-react v0.453.0 - ISC 126 * 127 * This source code is licensed under the ISC license. 128 * See the LICENSE file in the root directory of this source tree. 129 */const kO=me("ChartLine",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** 130 * @license lucide-react v0.453.0 - ISC 131 * 132 * This source code is licensed under the ISC license. 133 * See the LICENSE file in the root directory of this source tree. 134 */const Ea=me("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 135 * @license lucide-react v0.453.0 - ISC 136 * 137 * This source code is licensed under the ISC license. 138 * See the LICENSE file in the root directory of this source tree. 139 */const qv=me("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 140 * @license lucide-react v0.453.0 - ISC 141 * 142 * This source code is licensed under the ISC license. 143 * See the LICENSE file in the root directory of this source tree. 144 */const Ah=me("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** 145 * @license lucide-react v0.453.0 - ISC 146 * 147 * This source code is licensed under the ISC license. 148 * See the LICENSE file in the root directory of this source tree. 149 */const fd=me("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** 150 * @license lucide-react v0.453.0 - ISC 151 * 152 * This source code is licensed under the ISC license. 153 * See the LICENSE file in the root directory of this source tree. 154 */const nt=me("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 155 * @license lucide-react v0.453.0 - ISC 156 * 157 * This source code is licensed under the ISC license. 158 * See the LICENSE file in the root directory of this source tree. 159 */const Ls=me("CircleDollarSign",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]);/** 160 * @license lucide-react v0.453.0 - ISC 161 * 162 * This source code is licensed under the ISC license. 163 * See the LICENSE file in the root directory of this source tree. 164 */const MO=me("CircleGauge",[["path",{d:"M15.6 2.7a10 10 0 1 0 5.7 5.7",key:"1e0p6d"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M13.4 10.6 19 5",key:"1kr7tw"}]]);/** 165 * @license lucide-react v0.453.0 - ISC 166 * 167 * This source code is licensed under the ISC license. 168 * See the LICENSE file in the root directory of this source tree. 169 */const Vl=me("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** 170 * @license lucide-react v0.453.0 - ISC 171 * 172 * This source code is licensed under the ISC license. 173 * See the LICENSE file in the root directory of this source tree. 174 */const _j=me("CirclePause",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]]);/** 175 * @license lucide-react v0.453.0 - ISC 176 * 177 * This source code is licensed under the ISC license. 178 * See the LICENSE file in the root directory of this source tree. 179 */const TO=me("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** 180 * @license lucide-react v0.453.0 - ISC 181 * 182 * This source code is licensed under the ISC license. 183 * See the LICENSE file in the root directory of this source tree.
184 */const Fp=me("ClipboardCheck",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);/** 185 * @license lucide-react v0.453.0 - ISC 186 * 187 * This source code is licensed under the ISC license. 188 * See the LICENSE file in the root directory of this source tree. 189 */const DO=me("ClipboardList",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);/** 190 * @license lucide-react v0.453.0 - ISC 191 * 192 * This source code is licensed under the ISC license. 193 * See the LICENSE file in the root directory of this source tree. 194 */const LO=me("ClipboardPlus",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M9 14h6",key:"159ibu"}],["path",{d:"M12 17v-6",key:"1y8rbf"}]]);/** 195 * @license lucide-react v0.453.0 - ISC 196 * 197 * This source code is licensed under the ISC license. 198 * See the LICENSE file in the root directory of this source tree. 199 */const IO=me("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/** 200 * @license lucide-react v0.453.0 - ISC 201 * 202 * This source code is licensed under the ISC license. 203 * See the LICENSE file in the root directory of this source tree. 204 */const zj=me("Compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 205 * @license lucide-react v0.453.0 - ISC 206 * 207 * This source code is licensed under the ISC license. 208 * See the LICENSE file in the root directory of this source tree. 209 */const _O=me("CornerDownLeft",[["polyline",{points:"9 10 4 15 9 20",key:"r3jprv"}],["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}]]);/** 210 * @license lucide-react v0.453.0 - ISC 211 * 212 * This source code is licensed under the ISC license. 213 * See the LICENSE file in the root directory of this source tree. 214 */const Rh=me("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** 215 * @license lucide-react v0.453.0 - ISC 216 * 217 * This source code is licensed under the ISC license. 218 * See the LICENSE file in the root directory of this source tree. 219 */const zO=me("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** 220 * @license lucide-react v0.453.0 - ISC 221 * 222 * This source code is licensed under the ISC license. 223 * See the LICENSE file in the root directory of this source tree. 224 */const qO=me("Earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 225 * @license lucide-react v0.453.0 - ISC 226 * 227 * This source code is licensed under the ISC license. 228 * See the LICENSE file in the root directory of this source tree. 229 */const BO=me("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** 230 * @license lucide-react v0.453.0 - ISC 231 * 232 * This source code is licensed under the ISC license. 233 * See the LICENSE file in the root directory of this source tree. 234 */const qj=me("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** 235 * @license lucide-react v0.453.0 - ISC 236 * 237 * This source code is licensed under the ISC license. 238 * See the LICENSE file in the root directory of this source tree. 239 */const HO=me("FileCheck2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m3 15 2 2 4-4",key:"1lhrkk"}]]);/** 240 * @license lucide-react v0.453.0 - ISC 241 * 242 * This source code is licensed under the ISC license. 243 * See the LICENSE file in the root directory of this source tree. 244 */const UO=me("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]);/** 245 * @license lucide-react v0.453.0 - ISC 246 * 247 * This source code is licensed under the ISC license. 248 * See the LICENSE file in the root directory of this source tree. 249 */const Bj=me("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** 250 * @license lucide-react v0.453.0 - ISC 251 * 252 * This source code is licensed under the ISC license. 253 * See the LICENSE file in the root directory of this source tree. 254 */const wo=me("Gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);/** 255 * @license lucide-react v0.453.0 - ISC 256 * 257 * This source code is licensed under the ISC license. 258 * See the LICENSE file in the root directory of this source tree. 259 */const VO=me("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** 260 * @license lucide-react v0.453.0 - ISC 261 * 262 * This source code is licensed under the ISC license. 263 * See the LICENSE file in the root directory of this source tree. 264 */const FO=me("Handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]);/** 265 * @license lucide-react v0.453.0 - ISC 266 * 267 * This source code is licensed under the ISC license. 268 * See the LICENSE file in the root directory of this source tree. 269 */const QO=me("HeartHandshake",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66",key:"4oyue0"}],["path",{d:"m18 15-2-2",key:"60u0ii"}],["path",{d:"m15 18-2-2",key:"6p76be"}]]);/** 270 * @license lucide-react v0.453.0 - ISC 271 * 272 * This source code is licensed under the ISC license. 273 * See the LICENSE file in the root directory of this source tree. 274 */const GO=me("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** 275 * @license lucide-react v0.453.0 - ISC 276 * 277 * This source code is licensed under the ISC license. 278 * See the LICENSE file in the root directory of this source tree. 279 */const Yi=me("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** 280 * @license lucide-react v0.453.0 - ISC 281 * 282 * This source code is licensed under the ISC license. 283 * See the LICENSE file in the root directory of this source tree. 284 */const Ki=me("Layers3",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m6.08 9.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59",key:"1e5n1m"}],["path",{d:"m6.08 14.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59",key:"1iwflc"}]]);/** 285 * @license lucide-react v0.453.0 - ISC 286 * 287 * This source code is licensed under the ISC license. 288 * See the LICENSE file in the root directory of this source tree. 289 */const YO=me("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** 290 * @license lucide-react v0.453.0 - ISC 291 * 292 * This source code is licensed under the ISC license. 293 * See the LICENSE file in the root directory of this source tree.
294 */const KO=me("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/** 295 * @license lucide-react v0.453.0 - ISC 296 * 297 * This source code is licensed under the ISC license. 298 * See the LICENSE file in the root directory of this source tree. 299 */const Pa=me("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** 300 * @license lucide-react v0.453.0 - ISC 301 * 302 * This source code is licensed under the ISC license. 303 * See the LICENSE file in the root directory of this source tree. 304 */const JO=me("LockKeyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);/** 305 * @license lucide-react v0.453.0 - ISC 306 * 307 * This source code is licensed under the ISC license. 308 * See the LICENSE file in the root directory of this source tree. 309 */const WO=me("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** 310 * @license lucide-react v0.453.0 - ISC 311 * 312 * This source code is licensed under the ISC license. 313 * See the LICENSE file in the root directory of this source tree. 314 */const $O=me("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);/** 315 * @license lucide-react v0.453.0 - ISC 316 * 317 * This source code is licensed under the ISC license. 318 * See the LICENSE file in the root directory of this source tree. 319 */const XO=me("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 320 * @license lucide-react v0.453.0 - ISC 321 * 322 * This source code is licensed under the ISC license. 323 * See the LICENSE file in the root directory of this source tree. 324 */const ZO=me("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** 325 * @license lucide-react v0.453.0 - ISC 326 * 327 * This source code is licensed under the ISC license. 328 * See the LICENSE file in the root directory of this source tree. 329 */const ek=me("MousePointer2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]);/** 330 * @license lucide-react v0.453.0 - ISC 331 * 332 * This source code is licensed under the ISC license. 333 * See the LICENSE file in the root directory of this source tree. 334 */const Hj=me("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** 335 * @license lucide-react v0.453.0 - ISC 336 * 337 * This source code is licensed under the ISC license. 338 * See the LICENSE file in the root directory of this source tree. 339 */const tk=me("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/** 340 * @license lucide-react v0.453.0 - ISC 341 * 342 * This source code is licensed under the ISC license. 343 * See the LICENSE file in the root directory of this source tree. 344 */const Uj=me("PanelLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);/** 345 * @license lucide-react v0.453.0 - ISC 346 * 347 * This source code is licensed under the ISC license. 348 * See the LICENSE file in the root directory of this source tree. 349 */const ak=me("PanelTop",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}]]);/** 350 * @license lucide-react v0.453.0 - ISC 351 * 352 * This source code is licensed under the ISC license. 353 * See the LICENSE file in the root directory of this source tree. 354 */const sk=me("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** 355 * @license lucide-react v0.453.0 - ISC 356 * 357 * This source code is licensed under the ISC license. 358 * See the LICENSE file in the root directory of this source tree. 359 */const nk=me("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** 360 * @license lucide-react v0.453.0 - ISC 361 * 362 * This source code is licensed under the ISC license. 363 * See the LICENSE file in the root directory of this source tree. 364 */const Vj=me("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** 365 * @license lucide-react v0.453.0 - ISC 366 * 367 * This source code is licensed under the ISC license. 368 * See the LICENSE file in the root directory of this source tree. 369 */const xd=me("ReceiptText",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M14 8H8",key:"1l3xfs"}],["path",{d:"M16 12H8",key:"1fr5h0"}
369],["path",{d:"M13 16H8",key:"wsln4y"}]]);/** 370 * @license lucide-react v0.453.0 - ISC 371 * 372 * This source code is licensed under the ISC license. 373 * See the LICENSE file in the root directory of this source tree. 374 */const rk=me("Repeat2",[["path",{d:"m2 9 3-3 3 3",key:"1ltn5i"}],["path",{d:"M13 18H7a2 2 0 0 1-2-2V6",key:"1r6tfw"}],["path",{d:"m22 15-3 3-3-3",key:"4rnwn2"}],["path",{d:"M11 6h6a2 2 0 0 1 2 2v10",key:"2f72bc"}]]);/** 375 * @license lucide-react v0.453.0 - ISC 376 * 377 * This source code is licensed under the ISC license. 378 * See the LICENSE file in the root directory of this source tree. 379 */const Co=me("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** 380 * @license lucide-react v0.453.0 - ISC 381 * 382 * This source code is licensed under the ISC license. 383 * See the LICENSE file in the root directory of this source tree. 384 */const ok=me("Route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);/** 385 * @license lucide-react v0.453.0 - ISC 386 * 387 * This source code is licensed under the ISC license. 388 * See the LICENSE file in the root directory of this source tree. 389 */const Bv=me("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** 390 * @license lucide-react v0.453.0 - ISC 391 * 392 * This source code is licensed under the ISC license. 393 * See the LICENSE file in the root directory of this source tree. 394 */const ik=me("Scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]);/** 395 * @license lucide-react v0.453.0 - ISC 396 * 397 * This source code is licensed under the ISC license. 398 * See the LICENSE file in the root directory of this source tree. 399 */const ck=me("ScanLine",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]);/** 400 * @license lucide-react v0.453.0 - ISC 401 * 402 * This source code is licensed under the ISC license. 403 * See the LICENSE file in the root directory of this source tree. 404 */const Fj=me("SearchCheck",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** 405 * @license lucide-react v0.453.0 - ISC 406 * 407 * This source code is licensed under the ISC license. 408 * See the LICENSE file in the root directory of this source tree. 409 */const Qp=me("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** 410 * @license lucide-react v0.453.0 - ISC 411 * 412 * This source code is licensed under the ISC license. 413 * See the LICENSE file in the root directory of this source tree. 414 */const Qj=me("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** 415 * @license lucide-react v0.453.0 - ISC 416 * 417 * This source code is licensed under the ISC license. 418 * See the LICENSE file in the root directory of this source tree. 419 */const lk=me("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);/** 420 * @license lucide-react v0.453.0 - ISC 421 * 422 * This source code is licensed under the ISC license. 423 * See the LICENSE file in the root directory of this source tree. 424 */const Eh=me("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
424y:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** 425 * @license lucide-react v0.453.0 - ISC 426 * 427 * This source code is licensed under the ISC license. 428 * See the LICENSE file in the root directory of this source tree. 429 */const Ba=me("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 430 * @license lucide-react v0.453.0 - ISC 431 * 432 * This source code is licensed under the ISC license. 433 * See the LICENSE file in the root directory of this source tree. 434 */const dk=me("ShoppingBag",[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]]);/** 435 * @license lucide-react v0.453.0 - ISC 436 * 437 * This source code is licensed under the ISC license. 438 * See the LICENSE file in the root directory of this source tree. 439 */const uk=me("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** 440 * @license lucide-react v0.453.0 - ISC 441 * 442 * This source code is licensed under the ISC license. 443 * See the LICENSE file in the root directory of this source tree. 444 */const Nh=me("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** 445 * @license lucide-react v0.453.0 - ISC 446 * 447 * This source code is licensed under the ISC license. 448 * See the LICENSE file in the root directory of this source tree. 449 */const wn=me("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** 450 * @license lucide-react v0.453.0 - ISC 451 * 452 * This source code is licensed under the ISC license. 453 * See the LICENSE file in the root directory of this source tree. 454 */const mk=me("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);/** 455 * @license lucide-react v0.453.0 - ISC 456 * 457 * This source code is licensed under the ISC license. 458 * See the LICENSE file in the root directory of this source tree. 459 */const Gj=me("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** 460 * @license lucide-react v0.453.0 - ISC 461 * 462 * This source code is licensed under the ISC license. 463 * See the LICENSE file in the root directory of this source tree. 464 */const pk=me("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** 465 * @license lucide-react v0.453.0 - ISC 466 * 467 * This source code is licensed under the ISC license. 468 * See the LICENSE file in the root directory of this source tree. 469 */const Yj=me("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** 470 * @license lucide-react v0.453.0 - ISC 471 * 472 * This source code is licensed under the ISC license. 473 * See the LICENSE file in the root directory of this source tree. 474 */const hk=me("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** 475 * @license lucide-react v0.453.0 - ISC 476 * 477 * This source code is licensed under the ISC license. 478 * See the LICENSE file in the root directory of this source tree. 479 */const gk=me("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** 480 * @license lucide-react v0.453.0 - ISC 481 * 482 * This source code is licensed under the ISC license. 483 * See the LICENSE file in the root directory of this source tree. 484 */const or=me("UsersRound",[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]]);/** 485 * @license lucide-react v0.453.0 - ISC 486 * 487 * This source code is licensed under the ISC license. 488 * See the LICENSE file in the root directory of this source tree. 489 */const Ph=me("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** 490 * @license lucide-react v0.453.0 - ISC 491 * 492 * This source code is licensed under the ISC license. 493 * See the LICENSE file in the root directory of this source tree. 494 */const fk=me("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);/** 495 * @license lucide-react v0.453.0 - ISC 496 * 497 * This source code is licensed under the ISC license. 498 * See the LICENSE file in the root directory of this source tree.
499 */const Kj=me("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** 500 * @license lucide-react v0.453.0 - ISC 501 * 502 * This source code is licensed under the ISC license. 503 * See the LICENSE file in the root directory of this source tree. 504 */const La=me("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function xk(a,n){if(a instanceof RegExp)return{keys:!1,pattern:a};var o,i,l,d,m=[],h="",g=a.split("/");for(g[0]||g.shift();l=g.shift();)o=l[0],o==="*"?(m.push(o),h+=l[1]==="?"?"(?:/(.*))?":"/(.*)"):o===":"?(i=l.indexOf("?",1),d=l.indexOf(".",1),m.push(l.substring(1,~i?i:~d?d:l.length)),h+=~i&&!~d?"(?:/([^/]+?))?":"/([^/]+?)",~d&&(h+=(~i?"?":"")+"\\"+l.substring(d))):h+="/"+l;return{keys:m,pattern:new RegExp("^"+h+(n?"(?=$|/)":"/?$"),"i")}}var Xm={exports:{}},Zm={};/** 505 * @license React 506 * use-sync-external-store-shim.production.js 507 * 508 * Copyright (c) Meta Platforms, Inc. and affiliates. 509 * 510 * This source code is licensed under the MIT license found in the 511 * LICENSE file in the root directory of this source tree. 512 */var Hv;function yk(){if(Hv)return Zm;Hv=1;var a=$l();function n(x,j){return x===j&&(x!==0||1/x===1/j)||x!==x&&j!==j}var o=typeof Object.is=="function"?Object.is:n,i=a.useState,l=a.useEffect,d=a.useLayoutEffect,m=a.useDebugValue;function h(x,j){var C=j(),R=i({inst:{value:C,getSnapshot:j}}),w=R[0].inst,E=R[1];return d(function(){w.value=C,w.getSnapshot=j,g(w)&&E({inst:w})},[x,C,j]),l(function(){return g(w)&&E({inst:w}),x(function(){g(w)&&E({inst:w})})},[x]),m(C),C}function g(x){var j=x.getSnapshot;x=x.value;try{var C=j();return!o(x,C)}catch{return!0}}function f(x,j){return j()}var y=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:h;return Zm.useSyncExternalStore=a.useSyncExternalStore!==void 0?a.useSyncExternalStore:y,Zm}var Uv;function vk(){return Uv||(Uv=1,Xm.exports=yk()),Xm.exports}var Jj=vk();const bk=Xl.useInsertionEffect,jk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",wk=jk?b.useLayoutEffect:b.useEffect,Ck=bk||wk,Wj=a=>{const n=b.useRef([a,(...o)=>n[0](...o)]).current;return Ck(()=>{n[0]=a}),n[1]},Sk="popstate",Oh="pushState",kh="replaceState",Ak="hashchange",Vv=[Sk,Oh,kh,Ak],Rk=a=>{for(const n of Vv)addEventListener(n,a);return()=>{for(const n of Vv)removeEventListener(n,a)}},$j=(a,n)=>Jj.useSyncExternalStore(Rk,a,n),Ek=()=>location.search,Nk=({ssrSearch:a=""}={})=>$j(Ek,()=>a),Fv=()=>location.pathname,Pk=({ssrPath:a}={})=>$j(Fv,a?()=>a:Fv),Ok=(a,{replace:n=!1,state:o=null}={})=>history[n?kh:Oh](o,"",a),kk=(a={})=>[Pk(a),Ok],Qv=Symbol.for("wouter_v3");if(typeof history<"u"&&typeof window[Qv]>"u"){for(const a of[Oh,kh]){const n=history[a];history[a]=function(){const o=n.apply(this,arguments),i=new Event(a);return i.arguments=arguments,dispatchEvent(i),o}}Object.defineProperty(window,Qv,{value:!0})}const Mk=(a,n)=>n.toLowerCase().indexOf(a.toLowerCase())?"~"+n:n.slice(a.length)||"/",Xj=(a="")=>a==="/"?"":a,Tk=(a,n)=>a[0]==="~"?a.slice(1):Xj(n)+a,Dk=(a="",n)=>Mk(Gv(Xj(a)),Gv(n)),Gv=a=>{try{return decodeURI(a)}catch{return a}},Zj={hook:kk,searchHook:Nk,parser:xk,base:"",ssrPath:void 0,ssrSearch:void 0,ssrContext:void 0,hrefs:a=>a},e0=b.createContext(Zj),So=()=>b.useContext(e0),t0={},a0=b.createContext(t0),Lk=()=>b.useContext(a0),yd=a=>{const[n,o]=a.hook(a);return[Dk(a.base,n),Wj((i,l)=>o(Tk(i,a.base),l))]},ir=()=>yd(So()),Mh=(a,n,o,i)=>{const{pattern:l,keys:d}=n instanceof RegExp?{keys:!1,pattern:n}:a(n||"*",i),m=l.exec(o)||[],[h,...g]=m;return h!==void 0?[!0,(()=>{const f=d!==!1?Object.fromEntries(d.map((x,j)=>[x,g[j]])):m.groups;let y={...g};return f&&Object.assign(y,f),y})(),...i?[h]:[]]:[!1,null]},Cn=a=>Mh(So().parser,a,ir()[0]),Ik=({children:a,...n})=>{const o=So(),i=n.hook?Zj:o;let l=i;const[d,m]=n.ssrPath?.split("?")??[];m&&(n.ssrSearch=m,n.ssrPath=d),n.hrefs=n.hrefs??n.hook?.hrefs;let h=b.useRef({}),g=h.current,f=g;for(let y in i){const x=y==="base"?i[y]+(n[y]||""):n[y]||i[y];g===f&&x!==f[y]&&(h.current=f={...f}),f[y]=x,(x!==i[y]||x!==l[y])&&(l=f)}return b.createElement(e0.Provider,{value:l,children:a})},Yv=({children:a,component:n},o)=>n?b.createElement(n,{params:o}):typeof a=="function"?a(o):a,_k=a=>{let n=b.useRef(t0);const o=n.current;return n.current=Object.keys(a).length!==Object.keys(o).length||Object.entries(a).some(([i,l])=>l!==o[i])?a:o},Re=({path:a,nest:n,match:o,...i})=>{const l=So(),[d]=yd(l),[m,h,g]=o??Mh(l.parser,a,d,n),f=_k({...Lk(),...h});if(!m)return null;const y=g?b.createElement(Ik,{base:g},Yv(i,f)):Yv(i,f);return b.createElement(a0.Provider,{value:f,children:y})},V=b.forwardRef((a,n)=>{const o=So(),[i,l]=yd(o),{to:d="",href:m=d,onClick:h,asChild:g,children:f,className:y,replace:x,state:j,...C}=a,R=Wj(E=>{E.ctrlKey||E.metaKey||E.altKey||E.shiftKey||E.button!==0||(h?.(E),E.defaultPrevented||(E.preventDefault(),l(m,a)))}),w=o.hrefs(m[0]==="~"?m.slice(1):o.base+m,o);return g&&b.isValidElement(f)?b.cloneElement(f,{onClick:R,href:w}):b.createElement("a",{...C,onClick:R,href:w,className:y?.call?y(i===m):y,children:f,ref:n})}),Gp=a=>Array.isArray(a)?a.flatMap(n=>Gp(n&&n.type===b.Fragment?n.props.children:n)):[a],zk=({children:a,location:n})=>{const o=So(),[i]=yd(o);typeof window<"u"&&(window.__WOUTER_ROUTES__||(window.__WOUTER_ROUTES__=[]),Gp(a).forEac
512h(d=>{if(b.isValidElement(d)&&d.props.path){const m=d.props.path;window.__WOUTER_ROUTES__.includes(m)||window.__WOUTER_ROUTES__.push(m)}}));for(const l of Gp(a)){let d=0;if(b.isValidElement(l)&&(d=Mh(o.parser,l.props.path,n||i,l.props.nest))[0])return b.cloneElement(l,{match:d})}return null};function Kv(){const[,a]=ir(),n=()=>{a("/")};return e.jsx("div",{"data-loc":"client/src/pages/NotFound.tsx:14",className:"min-h-screen w-full flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100",children:e.jsx(bO,{"data-loc":"client/src/pages/NotFound.tsx:15",className:"w-full max-w-lg mx-4 shadow-lg border-0 bg-white/80 backdrop-blur-sm",children:e.jsxs(jO,{"data-loc":"client/src/pages/NotFound.tsx:16",className:"pt-8 pb-8 text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/NotFound.tsx:17",className:"flex justify-center mb-6",children:e.jsxs("div",{"data-loc":"client/src/pages/NotFound.tsx:18",className:"relative",children:[e.jsx("div",{"data-loc":"client/src/pages/NotFound.tsx:19",className:"absolute inset-0 bg-red-100 rounded-full animate-pulse"}),e.jsx(fd,{"data-loc":"client/src/pages/NotFound.tsx:20",className:"relative h-16 w-16 text-red-500"})]})}),e.jsx("h1",{"data-loc":"client/src/pages/NotFound.tsx:24",className:"text-4xl font-bold text-slate-900 mb-2",children:"404"}),e.jsx("h2",{"data-loc":"client/src/pages/NotFound.tsx:26",className:"text-xl font-semibold text-slate-700 mb-4",children:"Page Not Found"}),e.jsxs("p",{"data-loc":"client/src/pages/NotFound.tsx:30",className:"text-slate-600 mb-8 leading-relaxed",children:["Sorry, the page you are looking for doesn't exist.",e.jsx("br",{"data-loc":"client/src/pages/NotFound.tsx:32"}),"It may have been moved or deleted."]}),e.jsx("div",{"data-loc":"client/src/pages/NotFound.tsx:36",id:"not-found-button-group",className:"flex flex-col sm:flex-row gap-3 justify-center",children:e.jsxs(Sh,{"data-loc":"client/src/pages/NotFound.tsx:40",onClick:n,className:"bg-blue-600 hover:bg-blue-700 text-white px-6 py-2.5 rounded-lg transition-all duration-200 shadow-md hover:shadow-lg",children:[e.jsx(GO,{"data-loc":"client/src/pages/NotFound.tsx:44",className:"w-4 h-4 mr-2"}),"Go Home"]})})]})})})}class qk extends b.Component{constructor(n){super(n),this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}render(){return this.state.hasError?e.jsx("div",{"data-loc":"client/src/components/ErrorBoundary.tsx:27",className:"flex items-center justify-center min-h-screen p-8 bg-background",children:e.jsxs("div",{"data-loc":"client/src/components/ErrorBoundary.tsx:28",className:"flex flex-col items-center w-full max-w-2xl p-8",children:[e.jsx(hk,{"data-loc":"client/src/components/ErrorBoundary.tsx:29",size:48,className:"text-destructive mb-6 flex-shrink-0"}),e.jsx("h2",{"data-loc":"client/src/components/ErrorBoundary.tsx:34",className:"text-xl mb-4",children:"An unexpected error occurred."}),e.jsx("div",{"data-loc":"client/src/components/ErrorBoundary.tsx:36",className:"p-4 w-full rounded bg-muted overflow-auto mb-6",children:e.jsx("pre",{"data-loc":"client/src/components/ErrorBoundary.tsx:37",className:"text-sm text-muted-foreground whitespace-break-spaces",children:this.state.error?.stack})}),e.jsxs("button",{"data-loc":"client/src/components/ErrorBoundary.tsx:42",onClick:()=>window.location.reload(),className:Qe("flex items-center gap-2 px-4 py-2 rounded-lg","bg-primary text-primary-foreground","hover:opacity-90 cursor-pointer"),children:[e.jsx(Co,{"data-loc":"client/src/components/ErrorBoundary.tsx:50",size:16}),"Reload Page"]})]})}):this.props.children}}function Bk(a){if(!a||a==="#")return null;try{return decodeURIComponent(a.replace(/^#/,""))}catch{return a.replace(/^#/,"")}}function Hk(){const[a]=ir();return b.useEffect(()=>{"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual");const n=window.requestAnimationFrame(()=>{const o=Bk(window.location.hash);if(!o){window.scrollTo({top:0,left:0,behavior:"auto"});return}const i=document.getElementById(o);i?i.scrollIntoView({block:"start",behavior:"auto"}):window.scrollTo({top:0,left:0,behavior:"auto"})});return()=>window.cancelAnimationFrame(n)},[a]),null}const Uk=b.createContext(void 0);function Vk({children:a,defaultTheme:n="light",switchable:o=!1}){const[i,l]=b.useState(()=>o&&localStorage.getItem("theme")||n);b.useEffect(()=>
vendor: 9,643 bytes, lines 512-527
512{const m=document.documentElement;i==="dark"?m.classList.add("dark"):m.classList.remove("dark"),o&&localStorage.setItem("theme",i)},[i,o]);const d=o?()=>{l(m=>m==="light"?"dark":"light")}:void 0;return e.jsx(Uk.Provider,{"data-loc":"client/src/contexts/ThemeContext.tsx:52",value:{theme:i,toggleTheme:d,switchable:o},children:a})}var ep="focusScope.autoFocusOnMount",tp="focusScope.autoFocusOnUnmount",Jv={bubbles:!1,cancelable:!0},Fk="FocusScope",Th=b.forwardRef((a,n)=>{const{loop:o=!1,trapped:i=!1,onMountAutoFocus:l,onUnmountAutoFocus:d,...m}=a,[h,g]=b.useState(null),f=as(l),y=as(d),x=b.useRef(null),j=jt(n,w=>g(w)),C=b.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;b.useEffect(()=>{if(i){let w=function(q){if(C.paused||!h)return;const K=q.target;h.contains(K)?x.current=K:mn(x.current,{select:!0})},E=function(q){if(C.paused||!h)return;const K=q.relatedTarget;K!==null&&(h.contains(K)||mn(x.current,{select:!0}))},k=function(q){if(document.activeElement===document.body)for(const N of q)N.removedNodes.length>0&&mn(h)};document.addEventListener("focusin",w),document.addEventListener("focusout",E);const D=new MutationObserver(k);return h&&D.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",E),D.disconnect()}}},[i,h,C.paused]),b.useEffect(()=>{if(h){$v.add(C);const w=document.activeElement;if(!h.contains(w)){const k=new CustomEvent(ep,Jv);h.addEventListener(ep,f),h.dispatchEvent(k),k.defaultPrevented||(Qk(Wk(s0(h)),{select:!0}),document.activeElement===w&&mn(h))}return()=>{h.removeEventListener(ep,f),setTimeout(()=>{const k=new CustomEvent(tp,Jv);h.addEventListener(tp,y),h.dispatchEvent(k),k.defaultPrevented||mn(w??document.body,{select:!0}),h.removeEventListener(tp,y),$v.remove(C)},0)}}},[h,f,y,C]);const R=b.useCallback(w=>{if(!o&&!i||C.paused)return;const E=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,k=document.activeElement;if(E&&k){const D=w.currentTarget,[q,K]=Gk(D);q&&K?!w.shiftKey&&k===K?(w.preventDefault(),o&&mn(q,{select:!0})):w.shiftKey&&k===q&&(w.preventDefault(),o&&mn(K,{select:!0})):k===D&&w.preventDefault()}},[o,i,C.paused]);return e.jsx(tt.div,{tabIndex:-1,...m,ref:j,onKeyDown:R})});Th.displayName=Fk;function Qk(a,{select:n=!1}={}){const o=document.activeElement;for(const i of a)if(mn(i,{select:n}),document.activeElement!==o)return}function Gk(a){const n=s0(a),o=Wv(n,a),i=Wv(n.reverse(),a);return[o,i]}function s0(a){const n=[],o=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const l=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||l?NodeFilter.FILTER_SKIP:i.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)n.push(o.currentNode);return n}function Wv(a,n){for(const o of a)if(!Yk(o,{upTo:n}))return o}function Yk(a,{upTo:n}){if(getComputedStyle(a).visibility==="hidden")return!0;for(;a;){if(n!==void 0&&a===n)return!1;if(getComputedStyle(a).display==="none")return!0;a=a.parentElement}return!1}function Kk(a){return a instanceof HTMLInputElement&&"select"in a}function mn(a,{select:n=!1}={}){if(a&&a.focus){const o=document.activeElement;a.focus({preventScroll:!0}),a!==o&&Kk(a)&&n&&a.select()}}var $v=Jk();function Jk(){let a=[];return{add(n){const o=a[0];n!==o&&o?.pause(),a=Xv(a,n),a.unshift(n)},remove(n){a=Xv(a,n),a[0]?.resume()}}}function Xv(a,n){const o=[...a],i=o.indexOf(n);return i!==-1&&o.splice(i,1),o}function Wk(a){return a.filter(n=>n.tagName!=="A")}var ap=0;function n0(){b.useEffect(()=>{const a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??Zv()),document.body.insertAdjacentElement("beforeend",a[1]??Zv()),ap++,()=>{ap===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),ap--}},[])}function Zv(){const a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var Xa=function(){return Xa=Object.assign||function(n){for(var o,i=1,l=arguments.length;i<l;i++){o=arguments[i];for(var d in o)Object.prototype.hasOwnProperty.call(o,d)&&(n[d]=o[d])}return n},Xa.apply(this,arguments)};function r0(a,n){var o={};for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&n.indexOf(i)<0&&(o[i]=a[i]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function")for(var l=0,i=Object.getOwnPropertySymbols(a);l<i.length;l++)n.indexOf(i[l])<0&&Object.prototype.propertyIsEnumerable.call(a,i[l])&&(o[i[l]]=a[i[l]]);return o}function $k(a,n,o){if(o||arguments.length===2)for(var i=0,l=n.length,d;i<l;i++)(d||!(i in n))&&(d||(d=Array.prototype.slice.call(n,0,i)),d[i]=n[i]);return a.concat(d||Array.prototype.slice.call(n))}var Dl="right-scroll-bar-position",Ll="width-before-scroll-bar",Xk="with-scroll-bars-hidden",Zk="--removed-body-scroll-bar-size";function sp(a,n){return typeof a=="function"?a(n):a&&(a.current=n),a}function e3(a,n){var o=b.useState(function(){return{value:a,callback:n,facade:{get current(){return o.value},set current(i){var l=o.value;l!==i&&(o.value=i,o.callback(i,l))}}}})[0];return o.callback=n,o.facade}var t3=typeof window<"u"?b.useLayoutEffect:b.useEffect,eb=new WeakMap;function a3(a,n){var o=e3(null,function(i){return a.forEach(function(l){return sp(l,i)})});return t3(function(){var i=eb.get(o);if(i){var l=new Set(i),d=new Set(a),m=o.current;l.forEach(function(h){d.has(h)||sp(h,null)}),d.forEach(function(h){l.has(h)||sp(h,m)})}eb.set(o,a)},[a]),o}function s3(a){return a}function n3(a,n){n===void 0&&(n=s3);var o=[],i=!1,l={read:function(){if(i)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return o.length?o[o.length-1]:a},useMedium:function(d){var m=n(d,i);return o.push(m),function(){o=o.filter(function(h){return h!==m})}},assignSyncMedium:function(d){for(i=!0;o.length;){var m=o;o=[],m.forEach(d)}o={push:function(h){return d(h)},filter:function(){return o}}},assignMedium:function(d){i=!0;var m=[];if(o.length){var h=o;o=[],h.forEach(d),m=o}var g=function(){var y=m;m=[],y.forEach(d)},f=function(){return Promise.resolve().then(g)};f(),o={push:function(y){m.push(y),f()},filter:function(y){return m=m.filter(y),o}}}};return l}function r3(a){a===void 0&&(a={});var n=n3(null);return n.options=Xa({async:!0,ssr:!1},a),n}var o0=function(a){var n=a.sideCar,o=r0(a,["sideCar"]);if(!n)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var i=n.read();if(!i)throw new Error("Sidecar medium not found");return b.createElement(i,Xa({},o))};o0.isSideCarExport=!0;function o3(a,n){return a.useMedium(n),o0}var i0=r3(),np=function(){},vd=b.forwardRef(function(a,n){var o=b.useRef(null),i=b.useState({onScrollCapture:np,onWheelCapture:np,onTouchMoveCapture:np}),l=i[0],d=i[1],m=a.forwardProps,h=a.children,g=a.className,f=a.removeScrollBar,y=a.enabled,x=a.shards,j=a.sideCar,C=a.noRelative,R=a.noIsolation,w=a.inert,E=a.allowPinchZoom,k=a.as,D=k===void 0?"div":k,q=a.gapMode,K=r0(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),N=j,U=a3([o,n]),M=Xa(Xa({},K),l);return b.createElement(b.Fragment,null,y&&b.createElement(N,{sideCar:i0,removeScrollBar:f,shards:x,noRelative:C,noIsolation:R,inert:w,setCallbacks:d,allowPinchZoom:!!E,lockRef:o,gapMode:q}),m?b.cloneElement(b.Children.only(h),Xa(Xa({},M),{ref:U})):b.createElement(D,Xa({},M,{className:g,ref:U}),h))});vd.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};vd.classNames={fullWidth:Ll,zeroRight:Dl};var i3=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function c3(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var n=i3();return n&&a.setAttribute("nonce",n),a}function l3(a,n){a.styleSheet?a.styleSheet.cssText=n:a.appendChild(document.createTextNode(n))}function d3(a){var n=document.head||document.getElementsByTagName("head")[0];n.appendChild(a)}var u3=function(){var a=0,n=null;return{add:function(o){a==0&&(n=c3())&&(l3(n,o),d3(n)),a++},remove:function(){a--,!a&&n&&(n.parentNode&&n.parentNode.removeChild(n),n=null)}}},m3=function(){var a=u3();return function(n,o){b.useEffect(function(){return a.add(n),function(){a.remove()}},[n&&o])}},c0=function(){var a=m3(),n=function(o){var i=o.styles,l=o.dynamic;return a(i,l),null};return n},p3={left:0,top:0,right:0,gap:0},rp=function(a){return parseInt(a||"",10)||0},h3=function(a){var n=window.getComputedStyle(document.body),o=n[a==="padding"?"paddingLeft":"marginLeft"],i=n[a==="padding"?"paddingTop":"marginTop"],l=n[a==="padding"?"paddingRight":"marginRight"];return[rp(o),rp(i),rp(l)]},g3=function(a){if(a===void 0&&(a="margin"),typeof window>"u")return p3;var n=h3(a),o=document.documentElement.clientWidth,i=window.innerWidth;return{left:n[0],top:n[1],right:n[2],gap:Math.max(0,i-o+n[2]-n[0])}},f3=c0(),mo="data-scroll-locked",x3=function(a,n,o,i){var l=a.left,d=a.top,m=a.right,h=a.gap;return o===void 0&&(o="margin"),` 513 .`.concat(Xk,` { 514 overflow: hidden `).concat(i,`; 515 padding-right: `).concat(h,"px ").concat(i,`; 516 } 517 body[`).concat(mo,`] { 518 overflow: hidden `).concat(i,`; 519 overscroll-behavior: contain; 520 `).concat([n&&"position: relative ".concat(i,";"),o==="margin"&&` 521 padding-left: `.concat(l,`px; 522 padding-top: `).concat(d,`px; 523 padding-right: `).concat(m,`px; 524 margin-left:0; 525 margin-top:0; 526 margin-right: `).concat(h,"px ").concat(i,`; 527 `),o==="padding"&&"padding-right: ".concat(h,"px ").concat(i,";
527")].filter(Boolean).join(""),` 528 } 529 530 .`).concat(Dl,` { 531 right: `).concat(h,"px ").concat(i,`; 532 } 533 534 .`).concat(Ll,` { 535 margin-right: `).concat(h,"px ").concat(i,`; 536 } 537 538 .`).concat(Dl," .").concat(Dl,` { 539 right: 0 `).concat(i,`; 540 } 541 542 .`).concat(Ll," .").concat(Ll,` { 543 margin-right: 0 `).concat(i,`; 544 } 545 546 body[`).concat(mo,`] { 547 `).concat(Zk,": ").concat(h,`px; 548 } 549`)},tb=function(){var a=parseInt(document.body.getAttribute(mo)||"0",10);return isFinite(a)?a:0},y3=function(){b.useEffect(function(){return document.body.setAttribute(mo,(tb()+1).toString()),function(){var a=tb()-1;a<=0?document.body.removeAttribute(mo):document.body.setAttribute(mo,a.toString())}},[])},v3=function(a){var n=a.noRelative,o=a.noImportant,i=a.gapMode,l=i===void 0?"margin":i;y3();var d=b.useMemo(function(){return g3(l)},[l]);return b.createElement(f3,{styles:x3(d,!n,l,o?"":"!important")})},Yp=!1;if(typeof window<"u")try{var jl=Object.defineProperty({},"passive",{get:function(){return Yp=!0,!0}});window.addEventListener("test",jl,jl),window.removeEventListener("test",jl,jl)}catch{Yp=!1}var eo=Yp?{passive:!1}:!1,b3=function(a){return a.tagName==="TEXTAREA"},l0=function(a,n){if(!(a instanceof Element))return!1;var o=window.getComputedStyle(a);return o[n]!=="hidden"&&!(o.overflowY===o.overflowX&&!b3(a)&&o[n]==="visible")},j3=function(a){return l0(a,"overflowY")},w3=function(a){return l0(a,"overflowX")},ab=function(a,n){var o=n.ownerDocument,i=n;do{typeof ShadowRoot<"u"&&i instanceof ShadowRoot&&(i=i.host);var l=d0(a,i);if(l){var d=u0(a,i),m=d[1],h=d[2];if(m>h)return!0}i=i.parentNode}while(i&&i!==o.body);return!1},C3=function(a){var n=a.scrollTop,o=a.scrollHeight,i=a.clientHeight;return[n,o,i]},S3=function(a){var n=a.scrollLeft,o=a.scrollWidth,i=a.clientWidth;return[n,o,i]},d0=function(a,n){return a==="v"?j3(n):w3(n)},u0=function(a,n){return a==="v"?C3(n):S3(n)},A3=function(a,n){return a==="h"&&n==="rtl"?-1:1},R3=function(a,n,o,i,l){var d=A3(a,window.getComputedStyle(n).direction),m=d*i,h=o.target,g=n.contains(h),f=!1,y=m>0,x=0,j=0;do{if(!h)break;var C=u0(a,h),R=C[0],w=C[1],E=C[2],k=w-E-d*R;(R||k)&&d0(a,h)&&(x+=k,j+=R);var D=h.parentNode;h=D&&D.nodeType===Node.DOCUMENT_FRAGMENT_NODE?D.host:D}while(!g&&h!==document.body||g&&(n.contains(h)||n===h));return(y&&Math.abs(x)<1||!y&&Math.abs(j)<1)&&(f=!0),f},wl=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},sb=function(a){return[a.deltaX,a.deltaY]},nb=function(a){return a&&"current"in a?a.current:a},E3=function(a,n){return a[0]===n[0]&&a[1]===n[1]},N3=function(a){return` 550 .block-interactivity-`.concat(a,` {pointer-events: none;} 551 .allow-interactivity-`).concat(a,` {pointer-events: all;} 552`)},P3=0,to=[];function O3(a){var n=b.useRef([]),o=b.useRef([0,0]),i=b.useRef(),l=b.useState(P3++)[0],d=b.useState(c0)[0],m=b.useRef(a);b.useEffect(function(){m.current=a},[a]),b.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(l));var w=$k([a.lockRef.current],(a.shards||[]).map(nb),!0).filter(Boolean);return w.forEach(function(E){return E.classList.add("allow-interactivity-".concat(l))}),function(){document.body.classList.remove("block-interactivity-".concat(l)),w.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(l))})}}},[a.inert,a.lockRef.current,a.shards]);var h=b.useCallback(function(w,E){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!m.current.allowPinchZoom;var k=wl(w),D=o.current,q="deltaX"in w?w.deltaX:D[0]-k[0],K="deltaY"in w?w.deltaY:D[1]-k[1],N,U=w.target,M=Math.abs(q)>Math.abs(K)?"h":"v";if("touches"in w&&M==="h"&&U.type==="range")return!1;var I=ab(M,U);if(!I)return!0;if(I?N=M:(N=M==="v"?"h":"v",I=ab(M,U)),!I)return!1;if(!i.current&&"changedTouches"in w&&(q||K)&&(i.current=N),!N)return!0;var Z=i.current||N;return R3(Z,E,w,Z==="h"?q:K)},[]),g=b.useCallback(function(w){var E=w;if(!(!to.length||to[to.length-1]!==d)){var k="deltaY"in E?sb(E):wl(E),D=n.current.filter(function(N){return N.name===E.type&&(N.target===E.target||E.target===N.shadowParent)&&E3(N.delta,k)})[0];
vendor: 9,872 bytes, lines 552-556
552if(D&&D.should){E.cancelable&&E.preventDefault();return}if(!D){var q=(m.current.shards||[]).map(nb).filter(Boolean).filter(function(N){return N.contains(E.target)}),K=q.length>0?h(E,q[0]):!m.current.noIsolation;K&&E.cancelable&&E.preventDefault()}}},[]),f=b.useCallback(function(w,E,k,D){var q={name:w,delta:E,target:k,should:D,shadowParent:k3(k)};n.current.push(q),setTimeout(function(){n.current=n.current.filter(function(K){return K!==q})},1)},[]),y=b.useCallback(function(w){o.current=wl(w),i.current=void 0},[]),x=b.useCallback(function(w){f(w.type,sb(w),w.target,h(w,a.lockRef.current))},[]),j=b.useCallback(function(w){f(w.type,wl(w),w.target,h(w,a.lockRef.current))},[]);b.useEffect(function(){return to.push(d),a.setCallbacks({onScrollCapture:x,onWheelCapture:x,onTouchMoveCapture:j}),document.addEventListener("wheel",g,eo),document.addEventListener("touchmove",g,eo),document.addEventListener("touchstart",y,eo),function(){to=to.filter(function(w){return w!==d}),document.removeEventListener("wheel",g,eo),document.removeEventListener("touchmove",g,eo),document.removeEventListener("touchstart",y,eo)}},[]);var C=a.removeScrollBar,R=a.inert;return b.createElement(b.Fragment,null,R?b.createElement(d,{styles:N3(l)}):null,C?b.createElement(v3,{noRelative:a.noRelative,gapMode:a.gapMode}):null)}function k3(a){for(var n=null;a!==null;)a instanceof ShadowRoot&&(n=a.host,a=a.host),a=a.parentNode;return n}const M3=o3(i0,O3);var Dh=b.forwardRef(function(a,n){return b.createElement(vd,Xa({},a,{ref:n,sideCar:M3}))});Dh.classNames=vd.classNames;var T3=function(a){if(typeof document>"u")return null;var n=Array.isArray(a)?a[0]:a;return n.ownerDocument.body},ao=new WeakMap,Cl=new WeakMap,Sl={},op=0,m0=function(a){return a&&(a.host||m0(a.parentNode))},D3=function(a,n){return n.map(function(o){if(a.contains(o))return o;var i=m0(o);return i&&a.contains(i)?i:(console.error("aria-hidden",o,"in not contained inside",a,". Doing nothing"),null)}).filter(function(o){return!!o})},L3=function(a,n,o,i){var l=D3(n,Array.isArray(a)?a:[a]);Sl[o]||(Sl[o]=new WeakMap);var d=Sl[o],m=[],h=new Set,g=new Set(l),f=function(x){!x||h.has(x)||(h.add(x),f(x.parentNode))};l.forEach(f);var y=function(x){!x||g.has(x)||Array.prototype.forEach.call(x.children,function(j){if(h.has(j))y(j);else try{var C=j.getAttribute(i),R=C!==null&&C!=="false",w=(ao.get(j)||0)+1,E=(d.get(j)||0)+1;ao.set(j,w),d.set(j,E),m.push(j),w===1&&R&&Cl.set(j,!0),E===1&&j.setAttribute(o,"true"),R||j.setAttribute(i,"true")}catch(k){console.error("aria-hidden: cannot operate on ",j,k)}})};return y(n),h.clear(),op++,function(){m.forEach(function(x){var j=ao.get(x)-1,C=d.get(x)-1;ao.set(x,j),d.set(x,C),j||(Cl.has(x)||x.removeAttribute(i),Cl.delete(x)),C||x.removeAttribute(o)}),op--,op||(ao=new WeakMap,ao=new WeakMap,Cl=new WeakMap,Sl={})}},p0=function(a,n,o){o===void 0&&(o="data-aria-hidden");var i=Array.from(Array.isArray(a)?a:[a]),l=T3(a);return l?(i.push.apply(i,Array.from(l.querySelectorAll("[aria-live], script"))),L3(i,l,o,"aria-hidden")):function(){return null}},bd="Dialog",[h0]=jn(bd),[I3,Ha]=h0(bd),g0=a=>{const{__scopeDialog:n,children:o,open:i,defaultOpen:l,onOpenChange:d,modal:m=!0}=a,h=b.useRef(null),g=b.useRef(null),[f,y]=pd({prop:i,defaultProp:l??!1,onChange:d,caller:bd});return e.jsx(I3,{scope:n,triggerRef:h,contentRef:g,contentId:$n(),titleId:$n(),descriptionId:$n(),open:f,onOpenChange:y,onOpenToggle:b.useCallback(()=>y(x=>!x),[y]),modal:m,children:o})};g0.displayName=bd;var f0="DialogTrigger",_3=b.forwardRef((a,n)=>{const{__scopeDialog:o,...i}=a,l=Ha(f0,o),d=jt(n,l.triggerRef);return e.jsx(tt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":_h(l.open),...i,ref:d,onClick:Ee(a.onClick,l.onOpenToggle)})});_3.displayName=f0;var Lh="DialogPortal",[z3,x0]=h0(Lh,{forceMount:void 0}),y0=a=>{const{__scopeDialog:n,forceMount:o,children:i,container:l}=a,d=Ha(Lh,n);return e.jsx(z3,{scope:n,forceMount:o,children:b.Children.map(i,m=>e.jsx(os,{present:o||d.open,children:e.jsx(md,{asChild:!0,container:l,children:m})}))})};y0.displayName=Lh;var Fl="DialogOverlay",v0=b.forwardRef((a,n)=>{const o=x0(Fl,a.__scopeDialog),{forceMount:i=o.forceMount,...l}=a,d=Ha(Fl,a.__scopeDialog);return d.modal?e.jsx(os,{present:i||d.open,children:e.jsx(B3,{...l,ref:n})}):null});v0.displayName=Fl;var q3=go("DialogOverlay.RemoveScroll"),B3=b.forwardRef((a,n)=>{const{__scopeDialog:o,...i}=a,l=Ha(Fl,o);return e.jsx(Dh,{as:q3,allowPinchZoom:!0,shards:[l.contentRef],children:e.jsx(tt.div,{"data-state":_h(l.open),...i,ref:n,style:{pointerEvents:"auto",...i.style}})})}),tr="DialogContent",b0=b.forwardRef((a,n)=>{const o=x0(tr,a.__scopeDialog),{forceMount:i=o.forceMount,...l}=a,d=Ha(tr,a.__scopeDialog);return e.jsx(os,{present:i||d.open,children:d.modal?e.jsx(H3,{...l,ref:n}):e.jsx(U3,{...l,ref:n})})});b0.displayName=tr;var H3=b.forwardRef((a,n)=>{const o=Ha(tr,a.__scopeDialog),i=b.useRef(null),l=jt(n,o.contentRef,i);return b.useEffect(()=>{const d=i.current;if(d)return p0(d)},[]),e.jsx(j0,{...a,ref:l,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ee(a.onCloseAutoFocus,d=>{d.preventDefault(),o.triggerRef.current?.focus()}),onPointerDownOutside:Ee(a.onPointerDownOutside,d=>{const m=d.detail.originalEvent,h=m.button===0&&m.ctrlKey===!0;(m.button===2||h)&&d.preventDefault()}),onFocusOutside:Ee(a.onFocusOutside,d=>d.preventDefault())})}),U3=b.forwardRef((a,n)=>{const o=Ha(tr,a.__scopeDialog),i=b.useRef(!1),l=b.useRef(!1);return e.jsx(j0,{...a,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:d=>{a.onCloseAutoFocus?.(d),d.defaultPrevented||(i.current||o.triggerRef.current?.focus(),d.preventDefault()),i.current=!1,l.current=!1},onInteractOutside:d=>{a.onInteractOutside?.(d),d.defaultPrevented||(i.current=!0,d.detail.originalEvent.type==="pointerdown"&&(l.current=!0));const m=d.target;o.triggerRef.current?.contains(m)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&l.current&&d.preventDefault()}})}),j0=b.forwardRef((a,n)=>{const{__scopeDialog:o,trapFocus:i,onOpenAutoFocus:l,onCloseAutoFocus:d,...m}=a,h=Ha(tr,o),g=b.useRef(null),f=jt(n,g);return n0(),e.jsxs(e.Fragment,{children:[e.jsx(Th,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:l,onUnmountAutoFocus:d,children:e.jsx(od,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":_h(h.open),...m,ref:f,onDismiss:()=>h.onOpenChange(!1)})}),e.jsxs(e.Fragment,{children:[e.jsx(V3,{titleId:h.titleId}),e.jsx(Q3,{contentRef:g,descriptionId:h.descriptionId})]})]})}),Ih="DialogTitle",w0=b.forwardRef((a,n)=>{const{__scopeDialog:o,...i}=a,l=Ha(Ih,o);return e.jsx(tt.h2,{id:l.titleId,...i,ref:n})});w0.displayName=Ih;var C0="DialogDescription",S0=b.forwardRef((a,n)=>{const{__scopeDialog:o,...i}=a,l=Ha(C0,o);return e.jsx(tt.p,{id:l.descriptionId,...i,ref:n})});S0.displayName=C0;var A0="DialogClose",R0=b.forwardRef((a,n)=>{const{__scopeDialog:o,...i}=a,l=Ha(A0,o);return e.jsx(tt.button,{type:"button",...i,ref:n,onClick:Ee(a.onClick,()=>l.onOpenChange(!1))})});R0.displayName=A0;function _h(a){return a?"open":"closed"}var E0="DialogTitleWarning",[a6,N0]=wE(E0,{contentName:tr,titleName:Ih,docsSlug:"dialog"}),V3=({titleId:a})=>{const n=N0(E0),o=`\`${n.contentName}\` requires a \`${n.titleName}\` for the component to be accessible for screen reader users. 553 554If you want to hide the \`${n.titleName}\`, you can wrap it with our VisuallyHidden component. 555 556For more information, see https://radix-ui.com/primitives/docs/components/${n.docsSlug}`;return b.useEffect(()=>{a&&(document.getElementById(a)||console.error(o))},[o,a]),null},F3="DialogDescriptionWarning",Q3=({contentRef:a,descriptionId:n})=>{const i=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${N0(F3).contentName}}.`;return b.useEffect(()=>{const l=a.current?.getAttribute("aria-describedby");n&&l&&(document.getElementById(n)||console.warn(i))},[i,a,n]),null},P0=g0,O0=y0,k0=v0,M0=b0,T0=w0,D0=S0,L0=R0;const I0=b.createContext({isComposing:()=>!1,setComposing:()=>{},justEndedComposing:()=>!1,markCompositionEnd:()=>{}}),G3=()=>b.useContext(I0);function Y3({...a}){const n=b.useRef(!1),o=b.useRef(!1),i=b.useRef(null),l=b.useMemo(()=>({isComposing:()=>n.current,setComposing:d=>{n.current=d},justEndedComposing:()=>o.current,markCompositionEnd:()=>{o.current=!0,i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{o.current=!1},150)}}),[]);return e.jsx(I0.Provider,{"data-loc":"client/src/components/ui/dialog.tsx:50",value:l,children:e.jsx(P0,{"data-loc":"client/src/components/ui/dialog.tsx:51","data-slot":"dialog",...a})})}function K3({...a}){return e.jsx(O0,{"data-loc":"client/src/components/ui/dialog.tsx:65","data-slot":"dialog-portal",...a})}function _0({className:a,...n}){return e.jsx(k0,{"data-loc":"client/src/components/ui/dialog.tsx:79","data-slot":"dialog-overlay",className:Qe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...n})}_0.displayName="DialogOverlay";function J3({className:a,children:n,showCloseButton:o=!0,onEscapeKeyDown:i,...l}){const{isComposing:d}=G3(),m=b.useCallback(h=>{if(h.isComposing||d()){h.preventDefault();return}i?.(h)},[d,i]);return e.jsxs(K3,{"data-loc":"client/src/components/ui/dialog.tsx:122","data-slot":"dialog-portal",children:[e.jsx(_0,{"data-loc":"client/src/components/ui/dialog.tsx:123"}),e.jsxs(M0,{"data-loc":"client/src/components/ui/dialog.tsx:124","data-slot":"dialog-content",className:Qe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 roun
556ded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),onEscapeKeyDown:m,...l,children:[n,o&&e.jsxs(L0,{"data-loc":"client/src/components/ui/dialog.tsx:135","data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[e.jsx(La,{"data-loc":"client/src/components/ui/dialog.tsx:139"}),e.jsx("span",{"data-loc":"client/src/components/ui/dialog.tsx:140",className:"sr-only",children:"Close"})]})]})]})}function W3({className:a,...n}){return e.jsx(T0,{"data-loc":"client/src/components/ui/dialog.tsx:176","data-slot":"dialog-title",className:Qe("text-lg leading-none font-semibold",a),...n})}function $3({className:a,...n}){return e.jsx(D0,{"data-loc":"client/src/components/ui/dialog.tsx:189","data-slot":"dialog-description",className:Qe("text-muted-foreground text-sm",a),...n})}const _i=[{slug:"building-supply-manufacturers",eyebrow:"Alma for building-supply manufacturers",name:"Building-supply manufacturers",headline:"Make contractor preference and distributor demand",emphasis:"visible and repeatable.",copy:"Turn qualifying project, trade, distributor, and purchase moments into a measured relationshipâwithout assuming the manufacturer owns every transaction or every data source.",reality:"Your buyer journey can cross contractors, distributors, merchants, projects, and reorder cycles. A generic consumer-points program rarely captures the proof or economics that matter.",outcome:"A controlled trade-value system built around verified activity, useful professional benefits, and evidence that can support the next commercial decision.",primaryTool:{label:"Model the trade opportunity",href:"/opportunity-estimator"},secondaryTool:{label:"Test the financial case",href:"/roi-calculator"},lenses:[{label:"Product",title:"Professional value",copy:"Define the benefits, access, training, support, or earned recognition that matter to trade buyers."},{label:"Service",title:"Channel-aware operations",copy:"Map what distributors, merchants, field teams, and contractors need to do to support the relationship."},{label:"Financial",title:"Contribution before funding",copy:"Test reorder
556contribution, eligible reward cost, channel economics, and operational effort before program approval."},{label:"Technical",title:"Evidence across channels",copy:"Scope invoice, receipt, distributor, ecommerce, or account data sources before assigning loyalty value."}],verification:[{label:"Trade purchase occurs",detail:"A contractor, buyer, or account completes a qualifying purchase through an approved channel.",signal:"Project, account, channel, and product context"},{label:"Evidence is collected",detail:"An invoice, receipt, partner feed, or approved transaction record is submitted or connected.",signal:"Source, date, eligible products, and claimant"},{label:"Eligibility is checked",detail:"Rules confirm the action qualifies and exceptions are held for review before value is issued.",signal:"Validated trade action, not assumed volume"},{label:"Value and insight follow",detail:"The approved action can earn a benefit and contribute to the account, channel, and financial review.",signal:"Reorder, activity, and contribution evidence"}]},{slug:"contractors-trade-suppliers",eyebrow:"Alma for contractors and trade suppliers",name:"Contractors & trade suppliers",headline:"Recognize qualified trade activity without",emphasis:"giving away the margin.",copy:"Build a trade relationship around earned access, useful support, verified purchase, and account-aware valueânot an uncontrolled discount habit.",reality:"Professional buying has different proof, usage, margin, and ordering rhythms than consumer loyalty. The program has to respect roles, eligibility, and commercial boundaries.",outcome:"A practical trade-member experience that connects verified activity to a benefit structure your operations and finance teams can defend.",primaryTool:{label:"Map the trade member path",href:"/program-matcher"},secondaryTool:{label:"Check your opportunity",href:"/opportunity-estimator"},lenses:[{label:"Product",title:"Earned trade utility",copy:"Prioritize professional access, training, recognition, service, and approved rewards over blanket price cuts."},{label:"Service",title:"Account roles and support",copy:"Clarify who joins, who approves, who receives value, and how field or branch teams handle exceptions."},{label:"Financial",title:"Margin guardrails",copy:"Set benefit caps, funding rules, expected participation, and contribution hurdles before launch."},{label:"Technical",title:"Proof before value",copy:"Use the appropriate invoice, receipt, account, partner, or purchase evidence for each qualifying activity."}],verification:[{label:"Qualified work or order",detail:"A trade member completes an eligible purchase, training, specification, or account action.",signal:"Member role and qualifying moment"},{label:"Business evidence",detail:"The action is supported by transaction, project, invoice, or approved account data.",signal:"Source and eligibility context"},{label:"Commercial control",detail:"Limits, exclusions, and review conditions determine whether the action can earn value.",signal:"Funding and fraud-control status"},{label:"Next useful behavior",detail:"Approved value supports the next reorder, project, learning, or relationship action.",signal:"Trade activity with measurable context"}]},{slug:"multi-location-retail",eyebrow:"Alma for multi-location retail",name:"Multi-location retail brands",headline:"Give customers one relationship across",emphasis:"every store and screen.",copy:"Create a member experience that carries across store visits, ecommerce, approved partner moments, and communicationsâwhile keeping the economics visible at every location.",reality:"Locations, channels, and teams can fragment the customer experience. A program only helps when identity, value, operations, and measurement hold together.",outcome:"A channel-aware loyalty model built around repeat visits, basket quality, member recognition, and location-level evidence.",primaryTool:{label:"Simulate the retail journey",href:"/program-matcher"},secondaryTool:{label:"Build a first-pass ROI case",href:"/roi-calculator"},lenses:[{label:"Product",title:"One member promise",copy:"Make progress, recognition, useful rewards, and member value clear whether a customer shops in person or online."},{label:"Service",title:"Location-ready delivery",copy:"Equip stores and support teams to explain, resolve, and deliver the program consistently."},{label:"Financial",title:"Store-level accountability",copy:"Separate modeled visit, basket, funding, and operating assumptions so local performance can be reviewed responsibly."},{label:"Technical",title:"Identity and event continuity",copy:"Assess POS, ecommerce, CRM, app, receipt, and partner signals before declaring an omnichannel experience."}],verification:[{label:"Member moment",detail:"A customer identifies, shops, scans, or completes an approved online or in-store action.",signal:"Member and channel context"},{label:"Transaction or proof",detail:"POS, ecommerce, receipt, or partner evidence supplies the relevant purchase record.",signal:"Order, receipt, store, or retailer data"}
556,{label:"Rule and funding check",detail:"The program checks eligibility, caps, exclusions, and reward availability before issuing value.",signal:"Controlled recognition or reward"},{label:"Location learning",detail:"The resulting data can be reviewed for member activity, basket quality, and channel performance.",signal:"Evidence for local improvement"}]},{slug:"ecommerce-dtc-brands",eyebrow:"Alma for ecommerce and DTC brands",name:"Ecommerce & DTC brands",headline:"Turn first-order momentum into the",emphasis:"next valuable relationship.",copy:"Build customer value that can motivate a second purchase, a more useful basket, a referral, a review, or deeper participationâthen test whether the economics support it.",reality:"A first order can look like growth while the cost to acquire, reward, and serve the relationship remains hidden. The critical question is what changes after the first purchase.",outcome:"A behavior-led member journey that connects ecommerce events, useful value, and financial assumptions in one accountable model.",primaryTool:{label:"Model repeat-order ROI",href:"/roi-calculator"},secondaryTool:{label:"Design the right program",href:"/program-matcher"},lenses:[{label:"Product",title:"Value worth returning for",copy:"Use progress, access, discovery, recognition, and earned benefits to create a meaningful next action."},{label:"Service",title:"Lifecycle relevance",copy:"Connect post-purchase, replenishment, review, referral, and reactivation moments to a coherent member promise."},{label:"Financial",title:"Second-order discipline",copy:"Test contribution, redemption, fulfillment, platform, and operating costs against the behavior you expect to earn."},{label:"Technical",title:"Event-led commerce",copy:"Map commerce, identity, review, referral, messaging, and customer data events before automating a journey."}],verification:[{label:"Commerce event",detail:"A first order, repeat order, review, referral, or other approved customer action occurs.",signal:"Customer, order, and event source"},{label:"Rule is evaluated",detail:"The action is checked against timing, product, audience, channel, and existing-value conditions.",signal:"Eligible behavior and budget context"},{label:"Member value is issued",detail:"The customer sees clear progress, access, recognition, or an approved benefit.",signal:"A useful reason for the next action"},{label:"Contribution is reviewed",detail:"The program observes activity and cost signals rather than assuming a lift occurred.",signal:"Evidence for the next decision"}]},{slug:"b2b-channel-brands",eyebrow:"Alma for B2B and channel brands",name:"B2B & channel brands",headline:"Coordinate accounts, buyers, and partners around",emphasis:"verified repeat demand.",copy:"Create an intentional value exchange across accounts, individual buyers, distributors, and partner activity without treating every transaction as owned or automatically eligible.",reality:"B2B value can sit across account hierarchy, relationship roles, indirect purchase, sell-through, education, and reorder behavior. The program needs real governance.",outcome:"A controlled channel program that links eligible evidence to account-level insight, buyer value, and financial accountability.",primaryTool:{label:"Model the channel case",href:"/opportunity-estimator"},secondaryTool:{label:"Review program health",href:"/program-health"},lenses:[{label:"Product",title:"Account-aware value",copy:"Design rewards, recognition, training, and access around the role and behavior that matter in the channel."},{label:"Service",title:"Partner operating model",copy:"Define handoffs, support, approvals, exception handling, and the partner responsibilities required to operate well."},{label:"Financial",title:"Evidence-backed funding",copy:"Model eligible activity, funding exposure, account contribution, and operating cost before program commitments."},{label:"Technical",title:"Hierarchy and proof",copy:"Scope account, buyer, distributor, invoice, sell-through, and partner-data signals for each program rule."}],verification:[{label:"Account or partner event",detail:"An eligible buyer, account, distributor, or partner action occurs.",signal:"Role, account, and channel context"}
556,{label:"Evidence arrives",detail:"A partner feed, invoice, transaction, approved upload, or account record supports the action.",signal:"Traceable source and date"},{label:"Program rules apply",detail:"Eligibility, account rules, limits, and approval conditions are evaluated before value is assigned.",signal:"Governed member or account value"},{label:"Commercial review",detail:"Activity is reviewed against the intended reorder, engagement, or account-quality signal.",signal:"Decision evidence, not a guarantee"}]},{slug:"hospitality-membership",eyebrow:"Alma for hospitality and membership brands",name:"Hospitality & membership brands",headline:"Make every return feel earnedânot",emphasis:"discounted by default.",copy:"Create a relationship around recognition, progress, access, and the next meaningful visit, then keep the funding and service model visible as the program evolves.",reality:"A visit or stay is an experience, not simply a transaction. Generic offers can dilute the experience and hide the service, availability, and reward cost behind them.",outcome:"A member program that supports recognition and return motivation while preserving clear operational and financial guardrails.",primaryTool:{label:"Map the member experience",href:"/program-matcher"},secondaryTool:{label:"Test the return model",href:"/roi-calculator"},lenses:[{label:"Product",title:"Recognition people feel",copy:"Prioritize status, access, member moments, and approved experiences over an automatic price reduction."},{label:"Service",title:"Experience-ready execution",copy:"Give teams clear service standards, availability rules, and recovery paths for member recognition."},{label:"Financial",title:"Capacity-aware economics",copy:"Review reward unit cost, availability, labor, fulfillment, participation, and contribution as one model."},{label:"Technical",title:"Visit and preference context",copy:"Assess booking, POS, app, CRM, guest, and communication signals needed to recognize the right moment."}],verification:[{label:"Member visit or milestone",detail:"A qualifying stay, visit, booking, activity, or approved engagement moment occurs.",signal:"Member and occasion context"},{label:"Experience evidence",detail:"Booking, POS, app, event, or other agreed source confirms the member moment.",signal:"Eligible visit or activity"},{label:"Access is controlled",detail:"The program checks tier, availability, timing, and operating rules before making a benefit available.",signal:"Sustainable member recognition"},{label:"Return signal is reviewed",detail:"The team can examine cadence, engagement, and service impact without confusing activity with guaranteed ROI.",signal:"Evidence for continual improvement"}]}];function X3(a){return _i.find(n=>n.slug===a)??_i[0]}const Ql=[{slug:"member-experience",number:"01",icon:or,eyebrow:"Member experience",title:"Give people a relationship",emphasis:"they can actually use.",summary:"Create the account, progress, wallet, benefits, recognition, and communication moments that make the programme feel valuable before you ask it to change behavior.",outcome:"A clear member proposition that can travel across the approved customer moments and channels.",features:[{title:"Member identity",copy:"A clear account and recognition model for the people or buyers who should participate."},{title:"Progress and status",copy:"Visible movement, earned access, tiers, and milestones with conditions customers can understand."},{title:"Wallet and benefits",copy:"A place for approved currencies, rewards, access, and member-ready choices."},{title:"Lifecycle moments",copy:"Onboarding, return, celebration, reactivation, and service moments tied to the customer journey."}],controls:["Consent and identity design","Availability and fulfillment rules","Channel and customer-service responsibilities"],primary:{label:"Map the member journey",href:"/program-matcher"},secondary:{label:"Explore audiences",href:"/audiences"}},{slug:"loyalty-operations",number:"02",icon:Ki,eyebrow:"Loyalty operations",title:"Run rules, currency, and status",emphasis:"with commercial control.",summary:"Configure the program logic behind earning, redemption, tiers, pending periods, expirations, and exceptions around the actions your business wants to recognize.",outcome:"A controlled loyalty rulebook that connects member value to clear operational decisions.",features:[{title:"Earn rules",copy:"Define which approved customer, buyer, account, or partner actions can earn value."},{title:"Reward logic",copy:"Configure catalog, access, experience, or other approved redemption choices."},{title:"Tiers and status",copy:"Set progress and recognition conditions that make sense for the member relationship."}
556,{title:"Lifecycle controls",copy:"Use pending, expiration, caps, and exception policies to keep the system sustainable."}],controls:["Funding and margin guardrails","Eligibility and exception policies","Operations ownership and review cadence"],primary:{label:"Build your program blueprint",href:"/program-matcher"},secondary:{label:"See programme cost planning",href:"/tools"}},{slug:"incentive-orchestration",number:"03",icon:Qj,eyebrow:"Incentive orchestration",title:"Coordinate the next",emphasis:"valuable action.",summary:"Shape event-led incentives, promotions, referrals, challenges, bundles, and campaigns around the behavior that mattersâwithout treating every incentive as an automatic discount.",outcome:"A governed incentive layer that can respond to member context, rules, limits, and the programmeâs financial case.",features:[{title:"Event-led rules",copy:"Connect approved customer or business events to the right earning, benefit, or message logic."},{title:"Campaign composition",copy:"Coordinate challenges, referral, bundle, milestone, and member-only moments in one operating model."},{title:"Audience and timing",copy:"Use segments, eligibility, frequency, and timing rules to decide who sees what and when."},{title:"Value governance",copy:"Apply limits, budgets, exclusions, approvals, and campaign controls before a benefit is issued."}],controls:["Audience and eligibility criteria","Reward budget and campaign caps","Offer, promotion, and policy review"],primary:{label:"Cho
556ose the behavior to change",href:"/tools"},secondary:{label:"Explore loyalty strategy",href:"/strategy"}},{slug:"verified-purchase",number:"04",icon:xd,eyebrow:"Verified purchase",title:"Make value follow",emphasis:"real evidence.",summary:"Scope receipt, invoice, POS, ecommerce, partner, or distributor evidence so eligible off-platform purchases and actions can be checked before loyalty value is issued.",outcome:"A traceable evidence path from qualifying activity through eligibility control to approved member or account value.",features:[{title:"Evidence intake",copy:"Support the agreed receipt, invoice, transaction, partner, distributor, or commerce source."},{title:"Eligibility checks",copy:"Confirm product, date, channel, claimant, threshold, and business-rule conditions."},{title:"Fraud and duplicate controls",copy:"Hold exceptions for review and avoid treating every submitted claim as automatically valid."},{title:"Purchase intelligence",copy:"Use approved purchase context to inform member, channel, and programme review."}],controls:["Evidence-source and product configuration","Claimant, duplicate, and exception rules","Manual review and privacy operating model"],primary:{label:"Explore verified action paths",href:"/audiences/building-supply-manufacturers"},secondary:{label:"Map your technical fit",href:"/integrations"}},{slug:"omnichannel-integrations",number:"05",icon:KO,eyebrow:"Omnichannel integrations",title:"Connect the systems that",emphasis:"carry customer value.",summary:"Fit loyalty to the commerce, POS, mobile, web, CRM, messaging, data, rewards, and partner systems that already create the real customer relationship.",outcome:"A scoped integration architecture that makes the loyalty layer useful where customer, transaction, and service moments actually happen.",features:[{title:"Commerce and POS",copy:"Connect eligible transactions, identity, earn, redeem, and promotion moments."},{title:"Web and mobile",copy:"Bring wallet, progress, rewards, benef
556its, and member actions into owned experiences."},{title:"Customer data and CRM",copy:"Use approved profiles and events to shape segmentation, lifecycle, and next actions."},{title:"Partners and fulfillment",copy:"Coordinate approved rewards, partner activity, or channel evidence with clear operational boundaries."}],controls:["Data-source and security review","Event reliability and latency requirements","Support, ownership, and fallback paths"],primary:{label:"Map your ecosystem",href:"/integrations"},secondary:{label:"Check technical fit",href:"/opportunity-estimator"}},{slug:"insights-measurement",number:"06",icon:rr,eyebrow:"Insights and measurement",title:"Turn activity into",emphasis:"the next better decision.",summary:"Bring program, member, campaign, channel, and operating signals into a review model that helps a team see where to improve without confusing activity with guaranteed impact.",outcome:"A practical performance review system that connects member behavior, funding, and commercial evidence.",features:[{title:"Member health",copy:"Review participation, activity, progress, and relationship signals over time."},{title:"Campaign evidence",copy:"Inspect responses, participation, reward use, and next-action signals in context."},{title:"Channel context",copy:"Compare approved store, ecommerce, partner, and account evidence where sources exist."},{title:"Decision reviews",copy:"Use scheduled performance reviews to adjust the rules, value, operations, or investment case."}],controls:["Clear KPI definitions","Evidence and comparison requirements","Review cadence and decision ownership"],primary:{label:"Run a program health check",href:"/program-health"},secondary:{label:"Learn the ROI method",href:"/roi-explainer"}},{slug:"financial-controls",number:"07",icon:Ls,eyebrow:"Financial controls",title:"Keep the funding case",emphasis:"visible as you grow.",summary:"Model and monitor the programâs reward funding, cost, contribution, participation, and sensitivity so loyalty can be designed against a business case instead of a feature promise.",outcome:"A decision-ready financial view that makes assumptions, costs, evidence gaps, and improvement choices visible.",features:[{title:"Funding model",copy:"Separate reward funding, platform, implementation, labor, fulfillment, and operating cost assumptions."},{title:"Contribution case",copy:"Model the customer behavior and contribution assumptions required to support the programme."},{title:"Scenario controls",copy:"Compare conservative, expected, and upside planning cases without presenting forecasts as guarantees."},{title:"Executive review",copy:"Give leadership a clear record of the inputs, decision threshold, and next action."}],controls:["Editable audited assumptions","Cost coverage and owner review","No-guarantee planning disclosures"],primary:{label:"Build a first-pass ROI case",href:"/roi-calculator"},secondary:{label:"Audit the business case",href:"/solutions/roi-audit"}},{slug:"programme-services",number:"08",icon:wo,eyebrow:"Programme services",title:"Move from a system to",emphasis:"a programme that works.",summary:"Alma combines the relevant product layers with design, technical fit, implementation, activation, governance, and continuous improvement so the operating model is not left behind after launch.",outcome:"One accountable delivery path from opportunity and scope through launch and evidence-led improvement.",features:[{title:"Strategy and design",copy:"Define the audience, behavior, member proposition, mechanics, reward approach, and financial guardrails."},{title:"Technical fit",copy:"Scope product layers, integrations, data requirements, security, responsibilities, and delivery sequence."},{title:"Launch and activation",copy:"Prepare the pilot, internal teams, member communications, operations, and measurement baseline."},{title:"Operate and improve",copy:"Review evidence, customer value, funding, campaign performance, and the next decision after launch."}],controls:["Scoped deliverables and accountabilities","Implementation timeline and dependencies","Post-launch review and optimization routine"],primary:{label:"See how Alma works",href:"/#process"},secondary:{label:"Check your loyalty opportunity",href:"/opportunity-estimator"}}];function Z3(a){return Ql.find(n=>n.slug===a)??Ql[0]}const eM=Ql.map(a=>({title:a.eyebrow,category:"Product",description:`${a.title} ${a.emphasis}`,href:`/products/${a.slug}`,keywords:[a.slug,a.summary,a.outcome,...a.controls,...a.features.flatMap(n=>[n.title,n.copy])],priority:a.slug==="verified-purchase"?3:0})),tM=_i.map(a=>({title:a.name,category:"Audience",description:`${a.headline} ${a.emphasis}
556`,href:`/audiences/${a.slug}`,keywords:[a.slug,a.eyebrow,a.copy,a.reality,a.outcome,...a.lenses.flatMap(n=>[n.title,n.copy])]})),rb=[{title:"Check Your Loyalty Opportunity",category:"Tool",description:"Assess commercial, channel, and programme fit before selecting software.",href:"/opportunity-estimator",keywords:["opportunity","fit","qualify","business case","assessment"]},{title:"Loyalty ROI Calculator",category:"Tool",description:"Build a five-year directional model with visible assumptions and cost coverage.",href:"/roi-calculator",keywords:["roi","return","revenue","calculator","financial case","cost"]},{title:"Program Health Check",category:"Tool",description:"Review an existing programmeâs economics, evidence, operating model, and next decision.",href:"/program-health",keywords:["health","audit","review","existing program","programme"]},{title:"Loyalty Intelligence",category:"Intelligence",description:"Connect ROI modeling, directional opportunity context, market monitoring, and human governance.",href:"/alma-ai-os",keywords:["intelligence","market","monitoring","data","governance","insights"]},{title:"ROI Audit",category:"Solution",description:"Pressure-test the programme case before funding a technology or reward commitment.",href:"/solutions/roi-audit",keywords:["audit","roi","finance","funding","economic"]},{title:"Benchmarking",category:"Solution",description:"Benchmark the programme you need, not a copied feature list.",href:"/solutions/benchmarking",keywords:["benchmark","comparison","design","competitive"]},{title:"Audience Strategy",category:"Solution",description:"Match programme value, mechanics, and proof to the customer or buyer relationship.",href:"/solutions/audience-strategy",keywords:["audience","segment","customer","buyer","strategy"]},{title:"Commerce & Digital",category:"Solution",description:"Fit loyalty to ecommerce, apps, owned digital experiences, and customer data moments.",href:"/solutions/ecommerce",keywords:["ecommerce","digital","commerce","app","online"]},{title:"B2B & Partner Channels",category:"Solution",description:"Build a controlled account and partner programme around eligible proof and repeat demand.",href:"/solutions/b2b-channel",keywords:["b2b","channel","partner","distributor","account"]},{title:"Free Tools Hub",category:"Tool",description:"Explore financial fit, behaviour design, cost planning, and decision tools.",href:"/tools",keywords:["tools","financial fit","behaviour","cost planner","free"]},{title:"Loyalty Strategy",category:"Resource",description:"Explore active membership, purchase frequency, average order value, and retention decisions.",href:"/strategy",keywords:["strategy","aov","frequency","retention","membership"]},{title:"How Loyalty ROI Works",category:"Resource",description:"Read the methodology for visible assumptions, contribution, cost, and evidence.",href:"/roi-explainer",keywords:["roi","methodology","evidence","contribution","return"]},{title:"Resources Library",category:"Resource",description:"Browse operator guides for programme economics, tier strategy, referrals, and member health.",href:"/resources",keywords:["resources","guide","library","operator","learning"]},...eM,...tM];function aM(a){const n=a.trim().toLowerCase().split(/\s+/).filter(Boolean),o=i=>{const l=i.title.toLowerCase(),d=[i.description,i.category,...i.keywords].join(" ").toLowerCase();return n.reduce((m,h)=>m+(l.includes(h)?4:0)+(d.includes(h)?1+(i.priority??0):0),0)};return n.length?rb.map(i=>({entry:i,score:o(i)})).filter(({score:i})=>i>0).sort((i,l)=>l.score-i.score||i.entry.title.localeCompare(l.entry.title)).slice(0,8).map(({entry:i})=>i):rb.slice(0,8)}function ob({compact:a=!1}){const[,n]=ir(),[o,i]=b.useState(!1),[l,d]=b.useState(""),[m,h]=b.useState(0),g=b.useRef(null),f=b.useMemo(()=>aM(l),[l]);b.useEffect(()=>{const j=C=>{const R=C.target,w=R?.tagName==="INPUT"||R?.tagName==="TEXTAREA"||R?.isContentEditable;(C.metaKey||C.ctrlKey)&&C.key.toLowerCase()==="k"&&(C.preventDefault(),i(!0)),C.key==="/"&&!w&&(C.preventDefault(),i(!0))};return window.addEventListener("keydown",j),()=>window.removeEventListener("keydown",j)},[]),b.useEffect(()=>{h(0),o&&window.setTimeout(()=>
556g.current?.focus(),0)},[o,l]);const y=j=>{i(!1),d(""),n(j)},x=j=>{f.length&&(j.key==="ArrowDown"&&(j.preventDefault(),h(C=>(C+1)%f.length)),j.key==="ArrowUp"&&(j.preventDefault(),h(C=>(C-1+f.length)%f.length)),j.key==="Enter"&&(j.preventDefault(),y(f[m].href)))};return e.jsxs(e.Fragment,{children:[e.jsxs("button",{"data-loc":"client/src/components/SiteSearch.tsx:61",type:"button",className:`site-search-trigger ${a?"site-search-trigger-compact":""}`,onClick:()=>i(!0),"aria-label":"Search Alma Loyalty",children:[e.jsx(Qp,{"data-loc":"client/src/components/SiteSearch.tsx:62",size:16}),e.jsx("span",{"data-loc":"client/src/components/SiteSearch.tsx:62",children:a?"":"Search"}),!a&&e.jsx("kbd",{"data-loc":"client/src/components/SiteSearch.tsx:62",children:"âK"})]}),e.jsx(Y3,{"data-loc":"client/src/components/SiteSearch.tsx:64",open:o,onOpenChange:i,children:e.jsxs(J3,{"data-loc":"client/src/components/SiteSearch.tsx:65",className:"site-search-dialog",showCloseButton:!1,"aria-describedby":"site-search-description",children:[e.jsx(W3,{"data-loc":"client/src/components/SiteSearch.tsx:66",children:"Find the right Alma path"}),e.jsx($3,{"data-loc":"client/src/components/SiteSearch.tsx:67",id:"site-search-description",children:"Search products, solutions, audience paths, tools, and resources."}),e.jsxs("div",{"data-loc":"client/src/components/SiteSearch.tsx:68",className:"site-search-input-wrap",children:[e.jsx(Qp,{"data-loc":"client/src/components/SiteSearch.tsx:68",size:18}),e.jsx("input",{"data-loc":"client/src/components/SiteSearch.tsx:68",ref:g,value:l,onChange:j=>d(j.target.value),onKeyDown:x,placeholder:"Try âreceiptâ, âROIâ, or âbuilding supplyâ","aria-label":"Search Alma Loyalty"}),e.jsx("kbd",{"data-loc":"client/src/components/SiteSearch.tsx:68",children:"Esc"})]}),e.jsx("div",{"data-loc":"client/src/components/SiteSearch.tsx:69",className:"site-search-results",role:"listbox","aria-label":"Search results",children:f.length?f.map((j,C)=>e.jsxs("button",{"data-loc":"client/src/components/SiteSearch.tsx:70",type:"button",role:"option","aria-selected":C===m,className:C===m?"site-search-result-active":"",onMouseEnter:()=>h(C),onClick:()=>y(j.href),children:[e.jsx("span",{"data-loc":"client/src/components/SiteSearch.tsx:71",className:"site-search-category",children:j.category}),e.jsxs("span",{"data-loc":"client/src/components/SiteSearch.tsx:71",className:"site-search-result-copy",children:[e.jsx("b",{"data-loc":"client/src/components/SiteSearch.tsx:71",children:j.title}),e.jsx("small",{"data-loc":"client/src/components/SiteSearch.tsx:71",children:j.description})]}),e.jsx(Os,{"data-loc":"client/src/components/SiteSearch.tsx:71",size:15})]},j.href)):e.jsx("div",{"data-loc":"client/src/components/SiteSearch.tsx:72",className:"site-search-empty",children:"No direct match. Try a product, audience, tool, or commercial question."})}),e.jsxs("div",{"data-loc":"client/src/components/SiteSearch.tsx:74",className:"site-search-help",children:[e.jsxs("span",{"data-loc":"client/src/components/SiteSearch.tsx:74",children:["Use ",e.jsx("b",{"data-loc":"client/src/components/SiteSearch.tsx:74",children:"â â"})," to choose"]}),e.jsxs("span",{"data-loc":"client/src/components/SiteSearch.tsx:74",children:[e.jsx(_O,{"data-loc":"client/src/components/SiteSearch.tsx:74",size:13})," to open"]}),e.jsxs("span",{"data-loc":"client/src/components/SiteSearch.tsx:74",children:[e.jsx("b",{"data-loc":"client/src/components/SiteSearch.tsx:74",children:"/"})," to search"]})]})]})})]})}const sM=[{label:"Products",href:"/products"},{label:"Audiences",href:"/audiences"},{label:"ROI Tools",href:"/tools"},{label:"Integrations",href:"/integrations"},{label:"About",href:"/about"}],nM=[{title:"Evaluate the case",links:[["ROI Calculators","/solutions/roi-calculators"],["ROI Audit","/solutions/roi-audit"],["Program Health Check","/program-health"],["Benchmarking","/solutions/benchmarking"]]},{title:"Design the programme",links:[["Audience strategy","/solutions/audience-strategy"],["Loyalty Intelligence","/alma-ai-os"],["Consulting & custom modelling","/solutions/consulting"]]},{title:"Fit the channel",links:[["Commerce & digital","/solutions/ecommerce"],["Stores & hospital
556ity","/solutions/retail"],["B2B & partner channels","/solutions/b2b-channel"]]}],rM=[{title:"Strategy & economics",links:[["Loyalty strategy","/strategy"],["How loyalty ROI works","/roi-explainer"],["Qualification standard","/qualification-standard"]]},{title:"For programme teams",links:[["Program Health","/resources/program-health"],["Program economics","/resources/program-economics"],["Member experience","/resources/member-experience"]]},{title:"Reference",links:[["Calculator library","/resources/calculator-library"],["Glossary","/resources/glossary"],["Frequently asked questions","/resources/faq"]]}];function ib({id:a,groups:n,kind:o,onNavigate:i}){const l=o==="solutions",d=l?{label:"Alma solutions",title:"Choose the decision in front of you.",copy:"Start with the business question, then bring the relevant financial, programme, and channel evidence together.",href:"/opportunity-estimator",action:"Check your opportunity"}:{label:"Alma resources",title:"Useful context for better programme decisions.",copy:"Practical guides for teams evaluating, operating, and improving a loyalty programme.",href:"/resources",action:"Browse the library"};return e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:36",id:a,className:"nav-flyout professional-flyout","data-kind":o,role:"menu",children:[e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:37",className:"professional-flyout-intro",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:38",children:d.label}),e.jsx("h2",{"data-loc":"client/src/components/MarketingLayout.tsx:39",children:d.title}),e.jsx("p",{"data-loc":"client/src/components/MarketingLayout.tsx:40",children:d.copy}),e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:41",href:d.href,className:"professional-flyout-action",onClick:i,children:[d.action,e.jsx(Os,{"data-loc":"client/src/components/MarketingLayout.tsx:41",size:14})]})]}),e.jsx("div",{"data-loc":"client/src/components/MarketingLayout.tsx:43",className:"professional-flyout-links",children:n.map(m=>e.jsxs("section",{"data-loc":"client/src/components/MarketingLayout.tsx:44",className:"professional-flyout-group",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:45",children:m.title}),m.links.map(([h,g])=>e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:46",href:g,role:"menuitem",onClick:i,children:[h,e.jsx(Os,{"data-loc":"client/src/components/MarketingLayout.tsx:46",size:13})]},g))]},m.title))}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:49",className:"professional-flyout-footer",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:50",children:l?"Evidence before recommendation":"Customer value before tactics"}),e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:51",href:l?"/roi-calculator":"/roi-explainer",onClick:i,children:[l?"Build a first-pass ROI case":"How loyalty ROI works",e.jsx(Os,{"data-loc":"client/src/components/MarketingLayout.tsx:51",size:13})]})]})]})}function cb({light:a=!1}){return e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:57",href:"/",className:`wordmark ${a?"wordmark-light":""}`,"aria-label":"Alma Loyalty home",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:57",className:"wordmark-mark",children:"A"}),e.jsxs("span",{"data-loc":"client/src/components/MarketingLayout.tsx:57",children:["ALMA",e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:57",className:"wordmark-accent",children:"LOYALTY"})]})]})}function De({children:a}){const[n,o]=b.useState(!1),[i,l]=b.useState(null),[d]=ir(),m=b.useRef(null),h=()=>{o(!1),l(null)};b.useEffect(()=>{const f=x=>{m.current&&!m.current.contains(x.target)&&l(null)},y=x=>{x.key==="Escape"&&h()};return document.addEventListener("mousedown",f),document.addEventListener("keydown",y),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",y)}},[]);const g=[{section:"Explore",links:[["How It Works","/#process"],["Products","/products"],["Audience paths","/audiences"],["Solutions","/solutions"],["Program Health Check","/program-health"]]},{section:"Tools & learning",links:[["ROI Tools","/tools"],["Resources","/resources"],["Loyalty Intelligence","/alma-ai-os"],["Integrations","/integrations"]]}
556,{section:"Account",links:[["Customer Portal","/portal/customer"],["About Alma","/about"]]}];return e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:81",className:"site-shell",children:[e.jsxs("header",{"data-loc":"client/src/components/MarketingLayout.tsx:82",className:`topbar professional-topbar ${n?"mobile-open":""}`,ref:m,children:[e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:83",className:"site-container nav-inner professional-nav-inner",children:[e.jsx(cb,{"data-loc":"client/src/components/MarketingLayout.tsx:84"}),e.jsxs("nav",{"data-loc":"client/src/components/MarketingLayout.tsx:85",className:"desktop-nav professional-desktop-nav","aria-label":"Primary navigation",children:[e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:86",className:"nav-group",children:[e.jsxs("button",{"data-loc":"client/src/components/MarketingLayout.tsx:86",className:`professional-nav-trigger ${i==="solutions"?"professional-nav-trigger-active":""}`,type:"button","aria-expanded":i==="solutions","aria-controls":"solutions-menu",onClick:()=>l(i==="solutions"?null:"solutions"),children:["Solutions ",e.jsx(qv,{"data-loc":"client/src/components/MarketingLayout.tsx:86",size:14})]}),i==="solutions"&&e.jsx(ib,{"data-loc":"client/src/components/MarketingLayout.tsx:86",id:"solutions-menu",kind:"solutions",groups:nM,onNavigate:h})]}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:87",className:"nav-group",children:[e.jsxs("button",{"data-loc":"client/src/components/MarketingLayout.tsx:87",className:`professional-nav-trigger ${i==="resources"?"professional-nav-trigger-active":""}`,type:"button","aria-expanded":i==="resources","aria-controls":"resources-menu",onClick:()=>l(i==="resources"?null:"resources"),children:["Resources ",e.jsx(qv,{"data-loc":"client/src/components/MarketingLayout.tsx:87",size:14})]}),i==="resources"&&e.jsx(ib,{"data-loc":"client/src/components/MarketingLayout.tsx:87",id:"resources-menu",kind:"resources",groups:rM,onNavigate:h})]}),sM.map(f=>e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:88",href:f.href,className:`professional-nav-link ${d===f.href?"professional-nav-active":""}`,children:f.label},f.href))]}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:90",className:"nav-actions professional-nav-actions",children:[e.jsx(ob,{"data-loc":"client/src/components/MarketingLayout.tsx:90"}),e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:90",href:"/opportunity-estimator",className:"button professional-nav-cta",children:["Check Your Loyalty Opportunity ",e.jsx(Os,{"data-loc":"client/src/components/MarketingLayout.tsx:90",size:15})]})]}),e.jsx("div",{"data-loc":"client/src/components/MarketingLayout.tsx:91",className:"professional-mobile-search",children:e.jsx(ob,{"data-loc":"client/src/components/MarketingLayout.tsx:91",compact:!0})}),e.jsx("button",{"data-loc":"client/src/components/MarketingLayout.tsx:92",className:"mobile-menu-button professional-menu-button",onClick:()=>{o(!n),l(null)},"aria-expanded":n,"aria-label":"Toggle navigation",children:n?e.jsx(La,{"data-loc":"client/src/components/MarketingLayout.tsx:92",size:20}):e.jsx(XO,{"data-loc":"client/src/components/MarketingLayout.tsx:92",size:20})})]}),n&&e.jsxs("nav",{"data-loc":"client/src/components/MarketingLayout.tsx:94",className:"mobile-nav professional-mobile-nav","aria-label":"Mobile primary navigation",children:[e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:94",className:"professional-mobile-head",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:94",children:"ALMA LOYALTY"}),e.jsx("p",{"data-loc":"client/src/components/MarketingLayout.tsx:94",children:"Choose the path that fits your programme."})]}),g.map(f=>e.jsxs("section",{"data-loc":"client/src/components/MarketingLayout.tsx:94",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:94",children:f.section}),f.links.map(([y,x])=>e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:94",href:x,onClick:h,children:[y,e.jsx(Os,{"data-loc":"client/src/components/MarketingLayout.tsx:94",size:14})]},x))]},f.section)),e.jsxs(V,{"data-loc":"client/src/components/MarketingLayout.tsx:94",href:"/opportunity-estimator",className:"button button-orange professional-mobile-cta",onClick:h,children:["Check Your Loyalty Opportunity ",e.jsx(Os,{"data-loc":"client/src/components/MarketingLayout.tsx:94",size:15})]})]})]}),a,e.jsxs("footer",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer",children:[e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"site-container footer-grid",children:[e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:97",children:[e.jsx(cb,{"data-loc":"client/src/components/MarketingLayout.tsx:97",light:!0}),e.jsx("p",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-intro",children:"Loyalty systems designed around the revenue caseânot a feature checklist."})]}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-column",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-label",children:"Explore"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/#process",children:"How It Works"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/products",children:"Products"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/audiences",children:"Audience paths"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/solutions",children:"Solutions"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/program-health",children:"Program Health Check"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/alma-ai-os",children:"Loyalty Intelligence"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/integrations",children:"Integrations"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/industries",children:"Industries"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/tools",children:"ROI Tools"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/strategy",children:"Loyalty Strategy"})]}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-column",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-label",children:"Learn"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/resources",children:"Resources"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/roi-explainer",children:"ROI Explained"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/buyer-intelligence",children:"Buyer Intelligence"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/about",children:"About Alma"})]}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-column",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"footer-label",children:"Start here"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/opportunity-estimator",children:"Check Your Loyalty Opportunity"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/roi-calculator",children:"Build a First-Pass ROI Case"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/portal/cu
556stomer",children:"Customer Portal"}),e.jsx(V,{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"/contact",children:"Contact"}),e.jsx("a",{"data-loc":"client/src/components/MarketingLayout.tsx:97",href:"mailto:[email protected]",children:"[email protected]"})]})]}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:97",className:"site-container footer-bottom",children:[e.jsxs("span",{"data-loc":"client/src/components/MarketingLayout.tsx:97",children:["© ",new Date().getFullYear()," Alma Loyalty"]}),e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:97",children:"Built for better customer economics."})]})]})]})}function re({children:a}){return e.jsxs("p",{"data-loc":"client/src/components/MarketingLayout.tsx:101",className:"eyebrow",children:[e.jsx("span",{"data-loc":"client/src/components/MarketingLayout.tsx:101"}),a]})}function Ve({eyebrow:a,title:n,copy:o,action:i}){return e.jsx("section",{"data-loc":"client/src/components/MarketingLayout.tsx:104",className:"page-hero",children:e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:104",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/components/MarketingLayout.tsx:104",children:a}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:104",className:"page-hero-grid",children:[e.jsx("h1",{"data-loc":"client/src/components/MarketingLayout.tsx:104",children:n}),e.jsxs("div",{"data-loc":"client/src/components/MarketingLayout.tsx:104",children:[e.jsx("p",{"data-loc":"client/src/components/MarketingLayout.tsx:104",children:o}),i]})]})]})})}const Al=60,oM="/manus-storage/alma-loyalty-system-hero-60s_686d43d3.mp4",lo=[{duration:6,number:"01",label:"Member value",caption:"Make the reason to join obvious: progress, access, recognition, and value worth using.",core:"JOIN",signal:"VALUE"},{duration:8,number:"02",label:"Programme structure",caption:"Set the member, common currency, levels, rules, channels, and guardrails before value moves.",core:"FRAME",signal:"RULES"},{duration:9,number:"03",label:"Ways to earn",caption:"Eligible actionsâfrom purchases to referralsâcreate a pending points event.",core:"+ PTS",signal:"EARN"},{duration:8,number:"04",label:"Verify the action",caption:"Receipt, invoice, POS, ecommerce, partner, and distributor signals pass eligibility checks first.",core:"CHECK",signal:"PROVE"},{duration:8,number:"05",label:"Make points visible",caption:"Confirmed activity becomes a balance and a progress signal the member can understand.",core:"420",signal:"POINTS"},{duration:8,number:"06",label:"Ways to reward",caption:"Offer access, recognition, limited collections, experiences, and approved redemption choices.",core:"UNLOCK",signal:"REWARD"},{duration:7,number:"07",label:"Campaign with context",caption:"Use member state, channel, timing, and eligibility to send the next relevant invitation.",core:"NEXT",signal:"CAMPAIGN"},{duration:6,number:"08",label:"Improve the loop",caption:"Connect member value, verified behavior, and financial evidence before scaling what works.",core:"LOOP",signal:"IMPROVE"}],lb=["MEMBER","EARN","VERIFY","POINTS","REWARD","RETURN"];function iM(a){let n=0;for(let o=0;o<lo.length;o+=1)if(n+=lo[o].duration,a<n)return o;return 0}function cM(){const a=b.useRef(null),[n,o]=b.useState(0),[i,l]=b.useState(!0),[d,m]=b.useState(!1),[h,g]=b.useState(!1),[f,y]=b.useState(!1),x=!h||f,j=b.useMemo(()=>iM(n),[n]),C=lo[j];b.useEffect(()=>{const D=window.matchMedia("(prefers-reduced-motion: reduce)"),q=()=>{m(D.matches),D.matches&&(l(!1),a.current?.pause())};return q(),D.addEventListener("change",q),()=>D.removeEventListener("change",q)},[]),b.useEffect(()=>{if(!x||!i||d)return;const D=window.setInterval(()=>{o(q=>{const K=Number((q+.1).toFixed(1));return K>=Al?0:K})},100);return()=>window.clearInterval(D)},[i,d,x]);const R=D=>{const q=a.current;return!q||f?!1:(typeof D=="number"&&(q.currentTime=D),q.play().catch(()=>l(!1)),!0)},w=()=>{const D=a.current;if(!x&&D&&!f){D.paused?D.play().catch(()=>l(!1)):D.pause();return}l(q=>!q)},E=D=>{const q=lo.slice(0,D).reduce((K,N)=>K+N.duration,0);o(q),d||R(q)||l(!0)},k=()=>{o(0),d||R(0)||l(!0)};return e.jsxs("aside",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:99",id:"loyalty-system-video",className:`loyalty-hero-video ${i?"is-playing":"is-paused"}`,"aria-label":"One-minute loyalty system video",children:[e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:100",className:"loyalty-video-topline",children:[e.jsx("span",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:100",children:"ALMA / LOYALTY SYSTEM"}),e.jsxs("span",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:100",children:[e.jsx("i",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:100"})," 60 SEC BUILD"]})]}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:101",className:"loyalty-video-screen","aria-label":"Alma Loyalty system animation",children:[e.jsx("video",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:102",ref:a,className:"loyalty-video-render",src:oM,muted:!0,loop:!0,playsInl
556ine:!0,preload:"metadata",autoPlay:!d,"aria-label":"A one-minute visual explanation of how an Alma loyalty system connects member value, verified actions, rewards, campaigns, and repeat behaviour.",onCanPlay:()=>g(!0),onError:()=>y(!0),onPlay:()=>l(!0),onPause:()=>l(!1),onTimeUpdate:D=>o(Number(D.currentTarget.currentTime.toFixed(1)))}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:118",className:`loyalty-video-fallback ${x?"is-visible":""}`,"aria-hidden":!x,children:[e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:119",className:"loyalty-video-grid"}),e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:120",className:"loyalty-video-orbit loyalty-video-orbit-a"}),e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:121",className:"loyalty-video-orbit loyalty-video-orbit-b"}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:122",className:"loyalty-video-core",children:[e.jsx("small",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:122",children:C.signal}),e.jsx("b",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:122",children:C.core}),e.jsx(wn,{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:122",size:15})]}),e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:123",className:"loyalty-video-path"}),e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:124",className:"loyalty-video-nodes",children:lb.map((D,q)=>e.jsx("span",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:124",className:q<=j%lb.length?"is-active":"",children:D},D))}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:125",className:"loyalty-video-caption",children:[e.jsx("span",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:125",children:C.number}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:125",children:[e.jsx("b",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:125",children:C.label}),e.jsx("p",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:125",children:C.caption})]})]}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:126",className:"loyalty-video-proof",children:[e.jsx(nt,{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:126",size:14})," Configuration requires approved rules, evidence, and operating ownership."]})]})]}),e.jsxs("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:129",className:"loyalty-video-controls",children:[e.jsx("button",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:130",type:"button",onClick:w,"aria-label":i?"Pause loyalty system video":"Play loyalty system video",children:i?e.jsx(sk,{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:130",size:15}):e.jsx(nk,{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:130",size:15})}),e.jsx("button",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:131",type:"button",onClick:k,"aria-label":"Replay loyalty system video",children:e.jsx(Co,{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:131",size:14})}),e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:132",className:"loyalty-video-progress","aria-label":`Video progress: ${Math.round(n/Al*100)} percent`,role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n/Al*100),children:e.jsx("i",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:132",style:{width:`${n/Al*100}%`}})}),e.jsxs("span",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:133",children:[String(j+1).padStart(2,"0")," / ",String(lo.length).padStart(2,"0")]})]}),e.jsx("div",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:135",className:"loyalty-video-scene-list","aria-label":"Choose a loyalty system video scene",children:lo.map((D,q)=>e.jsxs("button",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:135",type:"button",className:q===j?"is-current":"",onClick:()=>E(q),"aria-current":q===j?"step":void 0,children:[e.jsx("span",{"data-loc":"client/src/components/LoyaltySystemHeroVideo.tsx:135",children:D.number}),D.label]},D.number))})]})}const lM=[{number:"01",title:"Prove it",summary:"Get clear on the behavior, fit, and financial case before choosing software.",steps:[{number:"01",title:"Define the outcome",copy:"Choose the customer behavior and financial result the program must improve.",deliverable:"Outcome brief and success measures."},{number:"02",title:"Confirm the fit",copy:"Assess customer frequency, margins, channels, data, team, budget, and timing.",deliverable:"Green / Yellow / Red fit assessment."},{number:"03",title:"Prove the financial case",copy:"Model incremental revenue and contribution against every material program cost.",deliverable:"Decision-ready ROI model with conservative, expected, and upside cases."}]},{number:"02",title:"Build it",summary:"Turn the approved opportunity into a member experience, technology plan, and tested launch.",steps:[{number:"04",title:"Design the program",copy:"Create a member proposition, earning logic, rewards, journeys, rules, and communications customers will understand.",deliverable:"Complete loyalty blueprint and financial guardrails."},{number:"05",title:"Fit the technology",copy:"Match the program to the platform, integrations, data, security, and operating requirements.",deliverable:"Technology recommendation, integration map, scope, schedule, and cost."},{number:"06",title:"Pilot and launch",copy:"Test the experience, economics, data, and operations before scaling.",deliverable:"Working pilot, trained team, launch plan, and live dashboard."}]},{number:"03",title:"Grow it",summary:"Use the live program and its financial evidence to improve what matters next.",steps:[{number:"07",title:"Measure and improve",copy:"Track active members, profitable behavior change, incremental contribution, and ROIâthen improve what works.",deliverable:"Ongoing optimization plan and executive performance reviews."}]}],dM=[["Build now","The opportunity, economics, technology, team, and timing are ready."],["Pilot first","The case is promising, but the most important assumptions should be tested before a full launch."],["Fix gaps first","Loyalty could work after improving data, margins, customer identification, operations, or internal ownership."],["Do not build","The expected behavior change cannot justify the full cost. Alma would rather give you the right answer than sell you the wrong program."]];function db(a,n){let o=document.querySelector(`meta[name="${a}"]`);o||(o=document.createElement("meta"),o.name=a,document.head.appendChild(o)),o.content=n}function uM(){return b.useEffect(()=>{document.title="Alma Loyalty | Loyalty ROI & Program Strategy",db("description","Build loyalty programs customers value, designed to encourage more frequent, higher-value purchases with auditable economics and clear decisions."),db("keywords","loyalty ROI, loyalty program strategy, loyalty technology, customer retention, loyalty consulting")},[]),e.jsx(De,{"data-loc":"client/src/pages/Home.tsx:46",children:e.jsxs("main",{"data-loc":"client/src/pages/Home.tsx:46",className:"buyer-home",children:[e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:47",className:"buyer-hero",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:47",className:"site-container buyer-hero-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:48",className:"buyer-hero-copy",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:48",children:"LOYALTY PEOPLE WANT TO USE"}),e.jsxs("h1",{"data-loc":"client/src/pages/Home.tsx:48",children:["Build a loyalty program customers ",e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:48",children:"loveâ"}),e.jsx("br",{"data-loc":"client/src/pages/Home.tsx:48"}),"with incentives to engage more, buy more, and buy more often."]}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:48",children:"Alma builds member value worth using, then puts every revenue, cost, and operating assumption under pressure. If the program cannot create more contribution than it consumes, we say stop before you buy software."}),e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:48",className:"hero-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/Home.tsx:48",href:"/opportunity-estimator",className:"button button-orange",children:["Check Your Loyalty Opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/Home.tsx:48",size:17})]}),e.jsxs("a",{"data-loc":"client/src/pages/Home.tsx:48",href:"#process",className:"text-link text-link-strong",children:["See the 7-Step Process ",e.jsx(AO,{"data-loc":"client/src/pages/Home.tsx:48",size:16})]})]}),e.jsxs("p",{"data-loc":"client/src/pages/Home.tsx:48",className:"buyer-trust-line",children:["Customer value ",e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:48",children:"·"})," Behavior design ",e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:48",children:"·"})," ROI modeling ",e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:48",children:"·"}
556)," Technology fit ",e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:48",children:"·"})," Ongoing optimization"]})]}),e.jsx(cM,{"data-loc":"client/src/pages/Home.tsx:49"})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:52",className:"buyer-problem",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:52",className:"site-container buyer-problem-grid",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:52",children:"THE BETTER STARTING POINT"}),e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:52",children:[e.jsx("h2",{"data-loc":"client/src/pages/Home.tsx:52",children:"Points do not rescue a bad commercial case. Start with the value customers will useâand the behavior it can earn."}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:52",children:"A loyalty program earns its place when customers have a reason to participate, return, trade up, refer, or stay engagedâand when that action creates more contribution than the full cost of the programme."}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:52",children:"If the behavior cannot fund the rewards, technology, operations, and delivery, it is programme expenseânot growth. That is why Alma starts with the member value and business case, then ends with measurable improvementânot a platform handoff."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:54",className:"home-audience-entry",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:54",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:54",className:"home-audience-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:54",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:54",children:"WHO ARE YOU BUILDING FOR?"}),e.jsxs("h2",{"data-loc":"client/src/pages/Home.tsx:54",children:["Stop forcing one loyalty program",e.jsx("br",{"data-loc":"client/src/pages/Home.tsx:54"}),e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:54",children:"onto every business."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:54",children:"Different channels, margins, purchase routes, evidence sources, and operating teams require different loyalty designs. Start with the path that looks most like your business, then test the behavior and economics that belong there."})]}),e.jsx("div",{"data-loc":"client/src/pages/Home.tsx:54",className:"home-audience-grid",children:_i.map((a,n)=>e.jsxs(V,{"data-loc":"client/src/pages/Home.tsx:54",href:`/audiences/${a.slug}`,children:[e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:54",children:String(n+1).padStart(2,"0")}),e.jsx("b",{"data-loc":"client/src/pages/Home.tsx:54",children:a.name}),e.jsx("small",{"data-loc":"client/src/pages/Home.tsx:54",children:a.outcome}),e.jsx(Os,{"data-loc":"client/src/pages/Home.tsx:54",size:16})]},a.slug))}),e.jsxs(V,{"data-loc":"client/src/pages/Home.tsx:54",href:"/audiences",className:"text-link text-link-strong home-audience-all",children:["Find your business path ",e.jsx(Y,{"data-loc":"client/src/pages/Home.tsx:54",size:15})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:56",id:"process",className:"buyer-process",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:56",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:56",className:"buyer-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:56",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:56",children:"THE ALMA LOYALTY PROCESS"}),e.jsxs("h2",{"data-loc":"client/src/pages/Home.tsx:56",children:["Prove it. ",e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:56",children:"Build it."})," Grow it."]})]}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:56",children:"One clear path takes you from the first business question to a launched, measurable loyalty program."})]}),e.jsx("div",{"data-loc":"client/src/pages/Home.tsx:56",className:"buyer-phase-stack",children:lM.map(a=>e.jsxs("section",{"data-loc":"client/src/pages/Home.tsx:56",className:`buyer-phase buyer-phase-${a.number}`,children:[e.jsxs("header",{"data-loc":"client/src/pages/Home.tsx:56",className:"buyer-phase-heading",children:[e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:56",children:a.number}),e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:56",children:[e.jsx("h3",{"data-loc":"client/src/pages/Home.tsx:56",children:a.title}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:56",children:a.summary})]})]}),e.jsx("div",{"data-loc":"client/src/pages/Home.tsx:56",className:"buyer-step-grid",children:a.steps.map(n=>e.jsxs("article",{"data-loc":"client/src/pages/Home.tsx:56",className:"buyer-process-step",children:[e.jsx("span",{"data-loc":"client/src/pages/Home.tsx:56",className:"buyer-step-count",children:n.number}),e.jsx("h4",{"data-loc":"client/src/pages/Home.tsx:56",children:n.title}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:56",children:n.copy}),e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:56",children:[e.jsx("b",{"data-loc":"client/src/pages/Home.tsx:56",children:"You receive:"})," ",n.deliverable]})]},n.number))})]},a.number))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:58",className:"buyer-decision-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:58",className:"site-container buyer-decision-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:58",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:58",children:"HONEST OUTCOMES"}),e.jsxs("h2",{"data-loc":"client/src/pages/Home.tsx:58",children:["Every assessment ends with a clear ",e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:58",children:"recommendation."})]}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:58",children:"We do not force every business into a program. The right decision depends on the evidence, the economics, and what it will take to operate well."})]}),e.jsx("div",{"data-loc":"client/src/pages/Home.tsx:58",className:"buyer-decisions",children:dM.map(([a,n],o)=>e.jsxs("article",{"data-loc":"client/src/pages/Home.tsx:58",children:[e.jsxs("span",{"data-loc":"client/src/pages/Home.tsx:58",children:["0",o+1]}),e.jsx("h3",{"data-loc":"client/src/pages/Home.tsx:58",children:a}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:58",children:n})]},a))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:60",className:"buyer-why",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:60",className:"site-container buyer-why-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:60",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:60",children:"WHY ALMA"}),e.jsxs("h2",{"data-loc":"client/src/pages/Home.tsx:60",children:["One accountable partner from the business case through ",e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:60",children:"growth."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:60",children:[e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:60",children:"Feature lists do not protect a budget. Tactics do not prove a return. And a strategy deck does not operate a programme. Alma connects the financial case, programme design, technology, implementation, and ongoing operation in one accountable process."}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:60",className:"buyer-repeat-line",children:"Alma proves the business case, designs the right loyalty program, fits the right technology, and stays accountable after launch."})]}),e.jsx("ul",{"data-loc":"client/src/pages/Home.tsx:60",className:"buyer-why-list",children:["ROI before recommendation","Omnichannel and integration expertise","Platform-independent fit assessment","Full-service implementation","Continuous financial and program optimization"].map(a=>e.jsxs("li",{"data-loc":"client/src/pages/Home.tsx:60",children:[e.jsx(Ea,{"data-loc":"client/src/pages/Home.tsx:60",size:17}),a]},a))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:62",className:"buyer-industries",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:62",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:62",children:"MORE INDUSTRY CONTEXT"}),e.jsxs("h2",{"data-loc":"client/src/pages/Home.tsx:62",children:["Explore the category-specific",e.
556jsx("br",{"data-loc":"client/src/pages/Home.tsx:62"}),e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:62",children:"customer behavior that matters."})]}),e.jsx("div",{"data-loc":"client/src/pages/Home.tsx:62",children:["Restaurants & hospitality","Retail & multi-location","E-commerce & subscription","CPG & consumer brands","B2B, partner & channel"].map((a,n)=>e.jsxs(V,{"data-loc":"client/src/pages/Home.tsx:62",href:"/industries",className:"buyer-industry-link",children:[e.jsxs("span",{"data-loc":"client/src/pages/Home.tsx:62",children:["0",n+1]}),a,e.jsx(Os,{"data-loc":"client/src/pages/Home.tsx:62",size:16})]},a))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Home.tsx:64",className:"final-cta buyer-final-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:64",className:"site-container final-cta-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:64",children:[e.jsx(re,{"data-loc":"client/src/pages/Home.tsx:64",children:"START WITH THE OPPORTUNITY"}),e.jsxs("h2",{"data-loc":"client/src/pages/Home.tsx:64",children:["Start with the opportunityâ",e.jsx("br",{"data-loc":"client/src/pages/Home.tsx:64"}),e.jsx("em",{"data-loc":"client/src/pages/Home.tsx:64",children:"not the software."})]}),e.jsx("p",{"data-loc":"client/src/pages/Home.tsx:64",children:"In one working session, identify the behavior worth changing, the financial inputs that matter, and the fastest responsible next step. If the evidence is not there, do not force the programme."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Home.tsx:64",className:"buyer-final-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/Home.tsx:64",href:"/opportunity-estimator",className:"button button-orange button-large",children:["Test Your Loyalty Opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/Home.tsx:64",size:20})]}),e.jsxs(V,{"data-loc":"client/src/pages/Home.tsx:64",href:"/roi-calculator",className:"text-link text-link-strong",children:["Build a First-Pass ROI Case ",e.jsx(wn,{"data-loc":"client/src/pages/Home.tsx:64",size:16})]})]})]})})]})})}const Gl=[{slug:"roi-calculators",kind:"Core solution",eyebrow:"ROI calculators",title:["Show the financial case","before the platform discussion."],copy:"Alma ROI calculators make the revenue channels, active-member assumptions, reward cost, delivery cost, and sensitivity visible in one auditable model.",outcome:"A finance-facing view of how loyalty may earn its place in the P&L.",principles:[{title:"Behavior first",copy:"Model the actions that generate incremental value, not generic uplift."},{title:"Costs shown",copy:"Reward cost, operating cost, and implementation cost stay visible."},{title:"Sensitivity included",copy:"Test conservative and stretch assumptions without hiding the difference."}],model:[{label:"01 / Baseline",copy:"Revenue, contribution, customer behavior, and existing addressability."},{label:"02 / Change",copy:"Active-member participation and modeled behavior movement."},{label:"03 / Economics",copy:"Incremental contribution against reward and delivery cost."}],next:{label:"Open the full ROI calculator",href:"/roi-calculator"}},{slug:"roi-audit",kind:"Core solution",eyebrow:"ROI audit",title:["Pressure-test the","business case before you fund it."],copy:"The ROI audit identifies the assumptions a commercial, finance, or executive stakeholder will challenge before a loyalty programme moves forward.",outcome:"A clear list of inputs that are evidence-backed, directional, or still unvalidated.",principles:[{title:"Assumption ledger",copy:"Every number has a source, owner, confidence level, and decision impact."},{title:"Cost architecture",copy:"Separate reward liability, delivery, integration, and operating cost."},{title:"Evidence plan",copy:"Define what must be learned at launch and how it will be measured."}],model:[{label:"01 / Read",copy:"Review the business inputs and channel structure."},{label:"02 / Challenge",copy:"Test the important assumptions and dependency risks."},{label:"03 / Decide",copy:"Translate the findings into a staged programme case."}],next:{label:"Start with the opportunity estimator",href:"/opportunity-estimator"}},{slug:"benchmarking",kind:"Core solution",eyebrow:"Benchmarking",title:["Benchmark the programme","you needân
556ot the one someone else built."],copy:"Alma benchmarks the design questions that matter: behavior, activation, reward economics, data readiness, operating cadence, and the measurement standard.",outcome:"A relevant decision frame rather than a generic feature checklist.",principles:[{title:"Comparable behavior",copy:"Compare customer cadence and motivationânot just industry labels."},{title:"Relevant economics",copy:"Use contribution, reward cost, and operational reality as the benchmark lens."},{title:"Maturity-aware",copy:"The right programme is different for an unaddressable base than an advanced CRM operation."}],model:[{label:"01 / Context",copy:"Map the business model, channels, margin, and customer identity."},{label:"02 / Standards",copy:"Select the few metrics and capabilities that actually affect the case."},{label:"03 / Priorities",copy:"Decide what must work at launch and what can evolve later."}],next:{label:"Explore the KPI playbook",href:"/kpi"}},{slug:"audience-strategy",kind:"Core solution",eyebrow:"Audience strategy",title:["Make the value exchange","specific to the customer you want to move."],copy:"Audience strategy connects a customer segment, an observable behavior, an incentive, and a measurement plan so loyalty does not become broad, expensive messaging.",outcome:"A clearer value exchange for the audiences with the most meaningful growth potential.",principles:[{title:"Customer job",copy:"Start with what customers are trying to accomplish in the moment."},{title:"Behavior target",copy:"Choose the purchase, engagement, or advocacy action that matters commercially."},{title:"Value exchange",copy:"Offer the right value at the right timeâwithout defaulting to blanket discounts."}],model:[{label:"01 / Segment",copy:"Identify the audience and the behavior signal that defines it."},{label:"02 / Design",copy:"Match the offer, message, mechanic, and timing to the customer job."},{label:"03 / Learn",copy:"Measure response against a relevant baseline and improve the next cycle."}],next:{label:"Find your strategy path",href:"/program-matcher"}},{slug:"loyalty-games",kind:"Core solution",eyebrow:"Loyalty games",title:["Make progress feel","worth coming back for."],copy:"Gamified mechanics create a reason to return when they make progress understandable, the reward valuable, and the next action achievable.",outcome:"Engagement mechanics that support a defined commercial behavior rather than superficial activity.",principles:[{title:"Clear progress",copy:"Members should understand where they are and what the next milestone unlocks."},{title:"Earned value",copy:"Use a value exchange that feels credible for the behavior being asked of them."},{title:"Measured impact",copy:"Tie challenges, streaks, tiers, and surprises to observable behavior change."}],model:[{label:"01 / Trigger",copy:"A timely reason to participate."},{label:"02 / Progress",copy:"Visible movement toward a meaningful milestone."},{label:"03 / Reinforce",copy:"Recognition or reward that creates another reason to return."}],next:{label:"Model active membership",href:"/strategy/active-members"}},{slug:"consulting",kind:"Core solution",eyebrow:"Loyalty consulting",title:["Turn the loyalty idea","into an operating model."],copy:"Alma works from commercial context to programme mechanics, channel integration, launch planning, and evidence-led iteration.",outcome:"A loyalty programme designed to be run, measured, and improvedânot simply launched.",principles:[{title:"Commercial case",copy:"Make the behavior and contribution logic explicit before delivery begins."},{title:"Operating design",copy:"Define the people, decisions, content, and data flows that keep the programme useful."},{title:"Learning loop",copy:"Build a practical test-and-improve rhythm into the programme from day one."}],model:[{label:"01 / Discover",copy:"Clarify the opportunity, barriers, audiences, and existing systems."},{label:"02 / Design",copy:"Create the mechanics, value exchange, metrics, and implementation path."},{label:"03 / Activate",copy:"Launch, learn, and evolve with a visible commercial scorecard."}],next:{label:"Book a strategy call",href:"/demo-request"}},{slug:"ecommerce",kind:"By channel",eyebrow:"E-commerce loyalty",title:["Make every digital order","a better reason to return."],copy:"E-commerce loyalty brings identity, on-site value exchange, cart behavior, lifecycle messaging, and rewards into one connected customer experience.",outcome:"A loyalty layer that supports margin-protected repeat purchase and fuller baskets.",principles:[{title:"On-site value",copy:"Make programme value clear at browse, basket, and post-purchase moments."},{title:"Cart economics",copy:"Use thresholds and reward logic that protect contribution."}
556,{title:"Lifecycle connection",copy:"Carry earned value and customer context into relevant follow-up."}],model:[{label:"01 / Identify",copy:"Recognize customer intent across acquisition and repeat touchpoints."},{label:"02 / Motivate",copy:"Use value exchange to guide purchase and engagement decisions."},{label:"03 / Re-engage",copy:"Bring customers back with their own progress and relevant value."}],next:{label:"Model average order value",href:"/strategy/average-order-value"}},{slug:"retail",kind:"By channel",eyebrow:"Retail loyalty",title:["Connect the store visit","to a relationship you can grow."],copy:"Retail loyalty helps identify the customer behind the transaction and uses points, offers, receipt-linked value, and service moments to create a reason to come back.",outcome:"More addressable store behavior and a stronger repeat-visit proposition.",principles:[{title:"Transaction identity",copy:"Make it simple for the customer to be recognized at every eligible visit."},{title:"Visit cadence",copy:"Use rewards that make a next visit feel timely and valuable."},{title:"Store-ready delivery",copy:"Design for the associate, POS, and customer experience in the real world."}],model:[{label:"01 / Recognize",copy:"Connect a visit to a customer relationship."},{label:"02 / Reward",copy:"Deliver a clear, usable value exchange at the right moment."},{label:"03 / Return",copy:"Create a compelling reason for a profitable next visit."}],next:{label:"Model purchase frequency",href:"/strategy/purchase-frequency"}},{slug:"omnichannel",kind:"By channel",eyebrow:"Omnichannel loyalty",title:["Make the programme","feel continuous across channels."],copy:"Omnichannel loyalty turns retail, e-commerce, mobile, customer service, and campaign signals into a coherent member experience and a single measurement conversation.",outcome:"One programme logic across the places customers choose to interact.",principles:[{title:"Connected identity",copy:"Recognize the relationship across permitted channels and systems."},{title:"Consistent value",copy:"Keep rewards, balance, tiers, and messages understandable everywhere."},{title:"Shared measurement",copy:"Read channel contribution without fragmenting the loyalty case."}],model:[{label:"01 / Connect",copy:"Map the customer and transaction signals available today."},{label:"02 / Coordinate",copy:"Use common programme rules across relevant experiences."},{label:"03 / Optimize",copy:"Test which channels create the highest-quality active behavior."}],next:{label:"Explore integration architecture",href:"/integrations"}},{slug:"hospitality",kind:"By channel",eyebrow:"Restaurant & hospitality loyalty",title:["Make each visit feel","more personally worth repeating."],copy:"Hospitality loyalty combines recognition, visit cadence, experience-led rewards, and timely offers to earn a place in a guestâs routine.",outcome:"A more valuable repeat-visit relationship without relying solely on discounts.",principles:[{title:"Guest recognition",copy:"Make the programme feel useful before, during, and after the visit."},{title:"Experience value",copy:"Balance transactional rewards with access, surprise, and recognition."},{title:"Cadence insight",copy:"Understand visit patterns and create relevance without message fatigue."}],model:[{label:"01 / Welcome",copy:"Create an effortless enrollment and first-value moment."},{label:"02 / Reward",copy:"Give guests credible value for behavior that benefits both sides."},{label:"03 / Return",copy:"Use earned progress and relevance to prompt the next visit."}],next:{label:"Model purchase frequency",href:"/strategy/purchase-frequency"}},{slug:"subscription",kind:"By channel",eyebrow:"Subscription & paid loyalty",title:["Make recurring value","more visible than recurring cost."],copy:"Subscription and paid loyalty programmes need a clear ongoing value exchange, a renewal reason, and a way to distinguish real retention from discount dependency.",outcome:"A more explicit value proposition for paying members and a better view of retention economics.",principles:[{title:"Ongoing value",copy:"Give members reasons to use and feel the benefit between payment moments."},{title:"Renewal logic",copy:"Make the decision to renew about value deliveredânot only price conceded."},{title:"Churn insight",copy:"Use behavior and cohort signals to understand when a member needs intervention."}],model:[{label:"01 / Join",copy:"Frame the paid value exchange clearly."},{label:"02 / Use",copy:"Create repeat moments that prove the programme is working for the member."}
556,{label:"03 / Renew",copy:"Bring earned value and future benefits into the renewal decision."}],next:{label:"Model retention & CLV",href:"/strategy/retention-clv"}},{slug:"b2b-channel",kind:"By channel",eyebrow:"B2B, partner & channel loyalty",title:["Motivate the people","who create demand beyond the invoice."],copy:"B2B and channel programmes recognize that the buyer, seller, influencer, installer, or partner may be different peopleâeach with different actions worth motivating.",outcome:"A practical incentive system for behavior across a B2B or distributed commercial network.",principles:[{title:"Role-aware design",copy:"Match incentives to the person whose behavior creates commercial value."},{title:"Rules & governance",copy:"Make eligibility, value, approval, and fulfilment clear at scale."},{title:"Distributed insight",copy:"Bring programme activity into a view of partner and customer contribution."}],model:[{label:"01 / Map",copy:"Identify the roles, behaviours, and transaction signals in the commercial chain."},{label:"02 / Motivate",copy:"Build relevant incentive paths with clear governance."},{label:"03 / Measure",copy:"Read incremental influence and programme economics across the network."}],next:{label:"Discuss a channel programme",href:"/contact"}}],mM=a=>Gl.find(n=>n.slug===a)??Gl[0],pM=[{number:"01",title:"Financial fit",copy:"Test whether contribution can fund the full loyalty model before you approve a product or service scope.",href:"/solutions/roi-calculators",action:"Model the case"},{number:"02",title:"Behavior design",copy:"Choose the customer action, member value, mechanics, and program structure worth earning.",href:"/program-matcher",action:"Design the behavior path"},{number:"03",title:"Technical fit",copy:"Match product layers, integrations, purchase evidence, data, and operating controls to the real stack.",href:"/products",action:"Explore products"},{number:"04",title:"Operating improvement",copy:"Review member health, funding, performance, campaigns, and the next accountable improvement.",href:"/program-health",action:"Run a health check"}];function hM(){const a=Gl.filter(o=>o.kind==="Core solution"),n=Gl.filter(o=>o.kind==="By channel");return e.jsx(De,{"data-loc":"client/src/pages/Solutions.tsx:15",children:e.jsxs("main",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"collection-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Solutions.tsx:15",eyebrow:"Solutions",title:e.jsxs(e.Fragment,{children:["A loyalty system should make",e.jsx("br",{"data-loc":"client/src/pages/Solutions.tsx:15"}),e.jsx("em",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"commercial behavior more valuable."})]}),copy:"Start with the business question you need to answerâfinancial, behavior, technical, or operatingâthen connect the product, services, evidence, and next simulation that belong there.",action:e.jsxs(V,{"data-loc":"client/src/pages/Solutions.tsx:15",href:"/program-matcher",className:"button button-orange",children:["Find your strategy path ",e.jsx(Y,{"data-loc":"client/src/pages/Solutions.tsx:15",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"solution-decision-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[e.jsx(re,{"data-loc":"client/src/pages/Solutions.tsx:15",children:"START WITH THE QUESTION"}),e.jsxs("h2",{"data-loc":"client/src/pages/Solutions.tsx:15",children:["Four routes through",e.jsx("br",{"data-loc":"client/src/pages/Solutions.tsx:15"}),e.jsx("em",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"the complete system."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"Solutions are not a vendor menu. Each path gives a brand or manufacturer a clear route from its business problem to the relevant product layers, services, evidence, and next decision."})]}),e.jsx("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"solution-decision-grid",children:pM.map(o=>e.jsxs(V,{"data-loc":"client/src/pages/Solutions.tsx:15",href:o.href,children:[e.jsx("span",{"data-loc":"client/src/pages/Solutions.tsx:15",children:o.number}),e.jsx("h3",{"data-loc":"client/src/pages/Solutions.tsx:15",children:o.title}),e.jsx("p",{"data-loc":"client/src/pages/Solutions.tsx:15",children:o.copy}),e.jsxs("b",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[o.action," ",e.jsx(Y,{"data-loc":"client/src/pages/Solutions.tsx:15",size:14})]})]},o.title))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"collection-
556principles",children:e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/Solutions.tsx:15",children:"CORE SOLUTIONS"}),e.jsxs("h2",{"data-loc":"client/src/pages/Solutions.tsx:15",children:["Start with the",e.jsx("br",{"data-loc":"client/src/pages/Solutions.tsx:15"}),e.jsx("em",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"right decision."})]})]}),e.jsx("div",{"data-loc":"client/src/pages/Solutions.tsx:15",children:a.map((o,i)=>e.jsxs(V,{"data-loc":"client/src/pages/Solutions.tsx:15",className:"collection-solution-card",href:`/solutions/${o.slug}`,children:[e.jsxs("span",{"data-loc":"client/src/pages/Solutions.tsx:15",children:["0",i+1," / ",o.eyebrow]}),e.jsxs("h3",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[o.title[0]," ",o.title[1]]}),e.jsx("p",{"data-loc":"client/src/pages/Solutions.tsx:15",children:o.copy}),e.jsxs("b",{"data-loc":"client/src/pages/Solutions.tsx:15",children:["Explore solution ",e.jsx(Y,{"data-loc":"client/src/pages/Solutions.tsx:15",size:15})]})]},o.slug))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"solution-channel-grid",children:e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[e.jsx(re,{"data-loc":"client/src/pages/Solutions.tsx:15",children:"BY CHANNEL & MODEL"}),e.jsxs("h2",{"data-loc":"client/src/pages/Solutions.tsx:15",children:["Design for the",e.jsx("br",{"data-loc":"client/src/pages/Solutions.tsx:15"}),e.jsx("em",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"real buying context."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"The value exchange changes with the customer, channel, cadence, and commercial role. Explore the programme case in context."})]}),e.jsx("div",{"data-loc":"client/src/pages/Solutions.tsx:15",children:n.map(o=>e.jsxs(V,{"data-loc":"client/src/pages/Solutions.tsx:15",href:`/solutions/${o.slug}`,children:[e.jsx("span",{"data-loc":"client/src/pages/Solutions.tsx:15",children:o.eyebrow}),e.jsxs("h3",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[o.title[0]," ",e.jsx("em",{"data-loc":"client/src/pages/Solutions.tsx:15",children:o.title[1]})]}),e.jsx(Y,{"data-loc":"client/src/pages/Solutions.tsx:15",size:18})]},o.slug))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"solution-product-bridge",children:e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[e.jsx(re,{"data-loc":"client/src/pages/Solutions.tsx:15",children:"PRODUCTS + SERVICES"}),e.jsxs("h2",{"data-loc":"client/src/pages/Solutions.tsx:15",children:["See the full Alma system",e.jsx("br",{"data-loc":"client/src/pages/Solutions.tsx:15"}),e.jsx("em",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"behind each solution."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Solutions.tsx:15",children:[e.jsx("p",{"data-loc":"client/src/pages/Solutions.tsx:15",children:"Every solution is delivered through the relevant member experience, loyalty, incentive, purchase-evidence, integration, measurement, financial-control, and operating-service layers."}),e.jsxs(V,{"data-loc":"client/src/pages/Solutions.tsx:15",href:"/products",className:"button button-light",children:["Explore the product system ",e.jsx(Y,{"data-loc":"client/src/pages/Solutions.tsx:15",size:16})]})]})]})})]})})}const gM={conservative:{recruitment:.8,lift:.8},standard:{recruitment:1,lift:1},aggressive:{recruitment:1.2,lift:1.2}};function ub(a){const n=gM[a.scenario],o=a.channels.map(x=>{const j=x.avgOrder>0&&x.purchaseFrequency>0?x.annualRevenue/(x.avgOrder*x.purchaseFrequency):0,C=j*(a.enrollmentRate/100)*n.recruitment;return{...x,totalCustomers:j,targetEnrolledMembers:C}}),i=o.reduce((x,j)=>x+j.totalCustomers,0),l=o.reduce((x,j)=>x+j.targetEnrolledMembers,0),d=a.costs.softwareAnnual+a.costs.marketingAnnual+a.costs.laborAnnual+a.costs.miscellaneousAnnual,m=(1+a.aovLift/100*n.lift)*(1+a.frequencyLift/100*n.lift)-1;let h=0,g=0;const f=Array.from({length:5},(x,j)=>{const C=j+1,R=Math.min(1,C/Math.max(1,a.yearsToPeakEnrollment)),w=o.reduce((U,M)=>U+M.targetEnrolledMembers*R*(a.activeMemberRate/100),0),E=o.reduce((U,M)=>{const I=M.targetEnrolledMembers*R*(a.activeMemberRate/100);return U+I*M.avgOrder*M.purchaseFrequency*m},0),k=E*(a.grossMargin/100),D=E*(a.rewardCostRate/100),q=C===1?a.costs.setupOneTime+a.costs.implementationOneTime:0,K=d+D+q,N=k-K;return h+=N,g+=K,{year:C,enrollmentRamp:R,activeMembers:w,incrementalRevenue:E,incrementalContribution:k,rewardCost:D,recurringCost:d,oneTimeCost:q,totalCost:K,netReturn:N,cumulativeNetReturn:h,cumulativeRoi:g>0?h/g*100:0}}),y=f[4];return{channelSummaries:o,totalCustomers:i,targetEnrolledMembers:l,annualRecurringCost:d,combinedLift:m,years:f,yearFive:y,cumulativeNetReturn:h,cumulativeRoi:y.cumulativeRoi}}const ta=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}),pn=new Intl.NumberFormat("en-US",{maximumFractionDigits:0}),zi=[{value:"ecommerce",label:"Ecommerce",caption:"Orders, conversion, and digital repeat purchase",defaultRevenue:1e6,defaultOrder:75,defaultFrequency:5},{value:"in_store",label:"In-store",caption:"Visits, basket, and point-of-sale enrollment",defaultRevenue:75e4,defaultOrder:55,defaultFrequency:6},{value:"mobile",label:"Mobile",caption:"App behaviour and member-led action",defaultRevenue:5e5,defaultOrder:45,defaultFrequency:7},{value:"cpg",label:"CPG",caption:"Household behaviour and receipt-led participation",defaultRevenue:9e5,defaultOrder:35,defaultFrequency:10},{value:"b2b",label:"Business to business",caption:"Accounts, buyers, and order cadence",defaultRevenue:15e5,defaultOrder:500,defaultFrequency:8}],mb=[{value:"conservative",label:"Conservative",note:"Lower participation and lift"},{value:"standard",label:"Standard",note:"Planning baseline"},{value:"aggressive",label:"Aggressive",note:"Faster adoption and lift"}],fM=[{value:"new_program",label:"Planning a new program",copy:"Build the case and first programme direction before choosing technology."},{value:"alma_supported",label:"Using Alma today",copy:"Use live programme inputs to prioritize the next worthwhile changes."},{value:"another_provider",label:"Using another provider",copy:"Evaluate the current programme without assuming it needs to be replaced."}],xM=[{value:"public_programme_scan",label:"Public programme scan",copy:"Review public-facing mechanics from named competitors or lookalikes."},{value:"mechanics",label:"Program design direction",copy:"Prioritize ways to earn, rewards, structure, and member rules."},{value:"campaigns",label:"Campaign what-if scenarios",copy:"Model selected activation, return, referral, and engagement ideas."},{value:"measurement",label:"Measurement & operating plan",copy:"Define evidence, performance checks, and the next decision cadence."}],Kp=a=>{const n=zi.find(o=>o.value===a)??zi[0];return{channel:a,annualRevenue:n.defaultRevenue,avgOrder:n.defaultOrder,purchaseFrequency:n.defaultFrequency}},ip={channels:[Kp("ecommerce")],scenario:"standard",grossMargin:60,enrollmentRate:50,activeMemberRate:60,aovLift:10,frequencyLift:10,rewardCostRate:5,yearsToPeakEnrollment:3,costs:{softwareAnnual:1e5,setupOneTime:1e4,implementationOneTime:5e4,marketingAnnual:2e4,laborAnnual:2e4,miscellaneousAnnual:2e4}};function Ht({label:a,hint:n,value:o,onChange:i,prefix:l="",suffix:d="",preview:m=!0}
556){const h=Number.isFinite(o)?pn.format(o):"0";return e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",className:"guided-field",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",children:a}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",children:n})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",className:"guided-input-wrap",children:[e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",children:l}),e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",inputMode:"decimal",value:h,onChange:g=>i(Number(g.target.value.replace(/[^0-9.]/g,""))||0)}),e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",children:d})]}),m&&e.jsxs("output",{"data-loc":"client/src/pages/RoiCalculator.tsx:53",children:[l,h,d]})]})}function cp(a){return zi.find(n=>n.value===a)?.label??a}function lp({label:a,value:n,min:o,max:i,suffix:l,note:d,onChange:m}){const h=(n-o)/Math.max(1,i-o)*100;return e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:60",className:"outlook-control",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:60",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:60",children:a}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:60",children:d})]}),e.jsxs("output",{"data-loc":"client/src/pages/RoiCalculator.tsx:60",children:[n,l]}),e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:60",type:"range",min:o,max:i,value:n,onChange:g=>m(Number(g.target.value)),style:{"--outlook-progress":`${h}%`}})]})}function yM({years:a,selectedYear:n,onSelectYear:o}){const i=Math.max(...a.map(j=>j.netReturn),0),l=Math.min(...a.map(j=>j.netReturn),0),d=Math.max(i-l,1),m=(j,C)=>({x:10+C*20,y:12+(i-j)/d*74}),h=a.map((j,C)=>({year:j,...m(j.netReturn,C)})),g=m(0,0).y,f=h.map((j,C)=>`${C===0?"M":"L"} ${j.x} ${j.y}`).join(" "),y=`${f} L ${h[h.length-1].x} ${g} L ${h[0].x} ${g} Z`,x=a.find(j=>j.year===n)??a[2];return e.jsxs("section",{"data-loc":"client/src/pages/RoiCalculator.tsx:74",className:"outlook-chart-card","aria-labelledby":"outlook-chart-title",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",className:"outlook-chart-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",children:"MODELED NET VALUE BY YEAR"}),e.jsx("h4",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",id:"outlook-chart-title",children:"The five-year contribution path"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",className:"outlook-chart-selected",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",children:["YEAR ",x.year]}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",children:ta.format(x.netReturn)}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:75",children:"modeled net value"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:76",className:"outlook-chart-stage",children:[e.jsxs("svg",{"data-loc":"client/src/pages/RoiCalculator.tsx:77",viewBox:"0 0 100 100",preserveAspectRatio:"none",role:"img","aria-label":"Five-year modeled net value chart based on current calculator assumptions",children:[e.jsx("defs",{"data-loc":"client/src/pages/RoiCalculator.tsx:78",children:e.jsxs("linearGradient",{"data-loc":"client/src/pages/RoiCalculator.tsx:78",id:"outlook-fill",x1:"0",x2:"0",y1:"0",y2:"1",children:[e.jsx("stop",{"data-loc":"client/src/pages/RoiCalculator.tsx:78",offset:"0%",stopColor:"#ed5f22",stopOpacity:".68"}),e.jsx("stop",{"data-loc":"client/src/pages/RoiCalculator.tsx:78",offset:"100%",stopColor:"#ed5f22",stopOpacity:".04"})]})}),[24,49,74].map(j=>e.jsx("line",{"data-loc":"client/src/pages/RoiCalculator.tsx:79",x1:"8",x2:"92",y1:j,y2:j,className:"outlook-grid-line"},j)),e.jsx("line",{"data-loc":"client/src/pages/RoiCalculator.tsx:80",x1:"8",x2:"92",y1:g,y2:g,className:"outlook-zero-line"}),e.jsx("path",{"data-loc":"client/src/pages/RoiCalculator.tsx:81",d:y,fill:"url(#outlook-fill)"}),e.jsx("path",{"data-loc":"client/src/pages/RoiCalculator.tsx:81",d:f,className:"outlook-chart-line"}),h.map(j=>e.jsx("circle",{"data-loc":"client/src/pages/RoiCalculator.tsx:82",cx:j.x,cy:j.y,r:j.year.year===n?"2.4":"1.65",className:j.year.year===n?"outlook-point outlook-point-active":"outlook-point"},j.year.year))]}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:84",className:"outlook-chart-selectors","aria-label":"Select a modeled year to inspect",children:h.map(j=>e.jsx("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:85",type:"button","aria-pressed":j.year.year===n,"aria-label":`Show year ${j.year.year}: ${ta.format(j.year.netReturn)} modeled net value`,style:{left:`${j.x}%`,top:`${j.y}%`},onClick:()=>o(j.year.year)},j.year.year))}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:87",className:"outlook-chart-axis",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:87",children:ta.format(i)}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:87",children:ta.format(0)}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:87",children:ta.format(l)})]})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:89",className:"outlook-chart-years",children:a.map(j=>e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:89",type:"button",className:j.year===n?"active":"",onClick:()=>o(j.year),children:["Year ",j.year]},j.year))})]})}function vM(){const[a,n]=b.useState("cold_outreach"),[o,i]=b.useState("estimated"),[l,d]=b.useState(["e
556commerce"]),[m,h]=b.useState(!1),[g,f]=b.useState(1),[y,x]=b.useState(3),[j,C]=b.useState(ip),[R,w]=b.useState(!1),[E,k]=b.useState(!1),[D,q]=b.useState({name:"",workEmail:"",company:"",phone:"",message:"Please send me the executive loyalty ROI report and help me review the model."}),[K,N]=b.useState("new_program"),[U,M]=b.useState(["mechanics","campaigns","measurement"]),[I,Z]=b.useState(""),ae=b.useMemo(()=>ub(j),[j]),le=b.useMemo(()=>mb.map(O=>({...O,result:ub({...j,scenario:O.value})})),[j]),ie=Ke.leads.submitGuidedRoi.useMutation({onSuccess:()=>k(!0)}),he=()=>{C(ip),d(["ecommerce"]),f(1),x(3),h(!1),w(!1),k(!1),N("new_program"),M(["mechanics","campaigns","measurement"]),Z("")},pe=O=>d(oe=>oe.includes(O)?oe.filter(ce=>ce!==O):[...oe,O]),ge=()=>{const O=l.length?l:["ecommerce"];d(O),C({...ip,channels:O.map(Kp)}),h(!0),f(1)},A=(O,oe,ce)=>C(we=>({...we,channels:we.channels.map((Me,dt)=>dt===O?{...Me,[oe]:ce}:Me)})),_=O=>{j.channels.some(oe=>oe.channel===O)||C(oe=>({...oe,channels:[...oe.channels,Kp(O)]}))},z=O=>{j.channels.length>1&&C(oe=>({...oe,channels:oe.channels.filter(ce=>ce.channel!==O)}))},ee=(O,oe)=>C(ce=>({...ce,costs:{...ce.costs,[O]:oe}})),de=(O,oe)=>C(ce=>({...ce,[O]:oe})),P=O=>M(oe=>oe.includes(O)?oe.filter(ce=>ce!==O):[...oe,O]),W=O=>{O.preventDefault(),ie.mutate({...D,phone:D.phone||void 0,message:`${D.message} 557 558Calculator context: ${a==="active_deal"?"Active deal":"Cold outreach"}. Evidence status: ${o}.`,model:j,advancedReport:{programmeContext:K,modules:U,comparisonTargets:I.trim()||void 0}})},F=["Revenue by channel","Cost model","Member assumptions","Five-year outlook"],$=ae.years[Math.min(g,4)-1]??ae.yearFive;return e.jsx(De,{"data-loc":"client/src/pages/RoiCalculator.tsx:125",children:e.jsxs("main",{"data-loc":"client/src/pages/RoiCalculator.tsx:125",children:[e.jsx(Ve,{"data-loc":"client/src/pages/RoiCalculator.tsx:126",eyebrow:"Loyalty ROI calculator",title:e.jsxs(e.Fragment,{children:["Build the case in the order",e.jsx("br",{"data-loc":"client/src/pages/RoiCalculator.tsx:126"}),e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:126",children:"an executive team will question it."})]}),copy:"The return begins with engaged customers: valuable rewards encourage repeat behavior, a larger basket, referrals, feedback, and better conversion. Make the revenue, cost, active-member, implementation, and five-year assumptions visible before you ask loyalty to prove anything."}),m?e.jsxs(e.Fragment,{children:[e.jsx("section",{"data-loc":"client/src/pages/RoiCalculator.tsx:128",className:"guided-calculator-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:128",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",className:"guided-topbar",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",className:"guided-kicker",children:[a==="active_deal"?"ACTIVE DEAL":"COLD OUTREACH"," / GUIDED MODEL"]}),e.jsx("h2",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",children:F[g-1]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",className:"evidence-selector","aria-label":"Evidence status",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",children:"INPUT STATUS"}),["estimated","hybrid","actual"].map(O=>e.jsx("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",type:"button",className:o===O?"active":"",onClick:()=>i(O),children:O},O))]})]}),e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:129",type:"button",className:"reset-button",onClick:he,children:[e.jsx(Co,{"data-loc":"client/src/pages/RoiCalculator.tsx:129",size:14})," Start over"]})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:130",className:"guided-progress",children:F.map((O,oe)=>e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:130",type:"button",className:g===oe+1?"current":g>oe+1?"complete":"",onClick:()=>f(oe+1),children:[e.jsx("i",{"data-loc":"client/src/pages/RoiCalculator.tsx:130",children:oe+1}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:130",children:O})]},O))}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:131",className:"guided-workspace",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:132",className:"guided-input-panel",children:[g===1&&e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",className:"guided-step",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",className:"guided-step-heading",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",children:"Revenue architecture"}),e.jsx("h3",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",children:"Give each channel its own economics."}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",children:"Enter annual revenue, average order value, and annual purchase frequency for every channel you want the programme to influence."})]}),j.channels.map((O,oe)=>e.jsxs("article",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",className:"channel-input-card",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",className:"channel-badge",children:cp(O.channel)}),e.jsx("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",type:"button",onClick:()=>z(O.channel),disabled:j.channels.length===1,"aria-label":`Remove ${cp(O.channel)}`,children:e.jsx(pk,{"data-loc":"client/src/pages/RoiCalculator.tsx:133",size:15})})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",className:"channel-field-grid",children:[e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:133",label:"Annual revenue",hint:"Current annual channel revenue",value:O.annualRevenue,onChange:ce=>A(oe,"annualRevenue",ce),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:133",label:"Average order value",hint:"Revenue per order",value:O.avgOrder,onChange:ce=>A(oe,"avgOrder",ce),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:133",label:"Annual purchase frequency",hint:"Orders per customer / year",value:O.purchaseFrequency,onChange:ce=>A(oe,"purchaseFrequency",ce),suffix:" orders"})]})]},O.channel)),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",className:"add-channel-row",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",children:"Add another revenue channel"}),zi.filter(O=>!j.channels.some(oe=>oe.channel===O.value)).map(O=>e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:133",type:"button",onClick:()=>_(O.value),children:[e.jsx(Vj,{"data-loc":"client/src/pages/RoiCalculator.tsx:133",size:13}),O.label]},O.value))]})]}),g===2&&e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",className:"guided-step",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",className:"guided-step-heading",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:"Cost architecture"}),e.jsx("h3",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:"Make the full investment visible."}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:"Recurring costs remain in each planning year. Setup and implementation are shown separately in year one, where they belong."})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",className:"cost-field-grid",children:[e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Software cost",hint:"Annual platform investment",value:j.costs.softwareAnnual,onChange:O=>
558ee("softwareAnnual",O),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Setup fees",hint:"Year-one one-time cost",value:j.costs.setupOneTime,onChange:O=>ee("setupOneTime",O),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Implementation",hint:"Year-one delivery cost",value:j.costs.implementationOneTime,onChange:O=>ee("implementationOneTime",O),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Marketing & ads",hint:"Annual activation allocation",value:j.costs.marketingAnnual,onChange:O=>ee("marketingAnnual",O),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Labour cost",hint:"Annual operating allocation",value:j.costs.laborAnnual,onChange:O=>ee("laborAnnual",O),prefix:"$"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Miscellaneous",hint:"Annual contingency allocation",value:j.costs.miscellaneousAnnual,onChange:O=>ee("miscellaneousAnnual",O),prefix:"$"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",className:"reward-cost-inline",children:[e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:134",label:"Rewards cost",hint:"Share of incremental revenue allocated to rewards",value:j.rewardCostRate,onChange:O=>de("rewardCostRate",O),suffix:"%"}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:"Annual recurring operating cost"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:ta.format(ae.annualRecurringCost)}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:134",children:"Software, marketing, labour, and miscellaneous"})]})]})]}),g===3&&e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",className:"guided-step",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",className:"guided-step-heading",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:"Member economics"}),e.jsx("h3",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:"Active members are the revenue engine."}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:"Enrollment creates the audience. Active members create the behaviour and revenue lift that the programme needs to prove."})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",className:"scenario-choice",children:mb.map(O=>e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",type:"button",className:j.scenario===O.value?"active":"",onClick:()=>de("scenario",O.value),children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:O.label}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:O.note})]},O.value))}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",className:"cost-field-grid",children:[e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:135",label:"Enrollment rate",hint:"Reachable customers expected to enroll",value:j.enrollmentRate,onChange:O=>de("enrollmentRate",O),suffix:"%"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:135",label:"Active member rate",hint:"Enrolled members who stay active",value:j.activeMemberRate,onChange:O=>de("activeMemberRate",O),suffix:"%"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:135",label:"Average order value lift",hint:"Incremental lift from active members",value:j.aovLift,onChange:O=>de("aovLift",O),suffix:"%"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:135",label:"Purchase frequency lift",hint:"Incremental lift from active members",value:j.frequencyLift,onChange:O=>de("frequencyLift",O),suffix:"%"}),e.jsx(Ht,{"data-loc":"client/src/pages/RoiCalculator.tsx:135",label:"Gross margin",hint:"Contribution margin before program costs",value:j.grossMargin,onChange:O=>de("grossMargin",O),suffix:"%"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",className:"member-metric-strip",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:"Total customers"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:pn.format(ae.totalCustomers)})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:"Target enrolled members"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:pn.format(ae.targetEnrolledMembers)})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:"Peak active members"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:135",children:pn.format(ae.yearFive.activeMembers)})]})]})]}),g===4&&e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"guided-step",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"guided-step-heading",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Five-year decision outlook"}),e.jsx("h3",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"See the pathânot just the final number."}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Adjust implementation speed, member activity, and reward funding to inspect how the same underlying assumptions shape modeled annual value. This is a planning model, not a forecast."})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"outlook-dashboard",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"outlook-control-grid",children:[e.jsx(lp,{"data-loc":"client/src/pages/RoiCalculator.tsx:136",label:"Established enrollment",value:j.yearsToPeakEnrollment,min:1,max:5,suffix:j.yearsToPeakEnrollment===1?" year":" years",note:"Speed of enrollment ramp",onChange:O=>de("yearsToPeakEnrollment",O)}),e.jsx(lp,{"data-loc":"client/src/pages/RoiCalculator.tsx:136",label:"Active member rate",value:j.activeMemberRate,min:10,max:100,suffix:"%",note:"Enrolled members modeled as active",onChange:O=>de("activeMemberRate",O)}),e.jsx(lp,{"data-loc":"client/src/pages/RoiCalculator.tsx:136",label:"Reward funding rate",value:j.rewardCostRate,min:0,max:30,suffix:"%",note:"Share of incremental revenue allocated to rewards",onChange:O=>de("rewardCostRate",O)})]}),e.jsx(yM,{"data-loc":"client/src/pages/RoiCalculator.tsx:136",years:ae.years,selectedYear:y,onSelectYear:x}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"outlook-table-wrap",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"outlook-table-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"ANNUAL DECISION LEDGER"}),e.jsx("h4",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"What the current model shows each year"})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Figures update from your chosen channels, member assumptions, costs, and implementation ramp."})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"outlook-table-scroll",children:e.jsxs("table",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("thead",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:e.jsxs("tr",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Period"}),e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Active members"}),e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Incremental revenue"}),e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Total program cost"}),e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Modeled net value"}),e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Cumulative ROI"})]})}),e.jsx("tbody",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:ae.years.map(O=>e.jsxs("tr",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:O.year===y?"selected":"",children:[e.jsx("th",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",scope:"row",children:e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",type:"button",onClick:()=>x(O.year),children:["Year ",O.year]})}),e.jsx("td",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:pn.format(O.activeMembers)}),e.jsx("td",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:ta.format(O.incrementalRevenue)}),e.jsx("td",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:ta.format(O.totalCost)}),e.jsx("td",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:O.netReturn>=0?"positive":"negative",children:ta.format(O.netReturn)}),e.jsxs("td",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[Math.round(O.cumulativeRoi),"%"]})]},O.year))})]})})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"outlook-total-strip",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Five-year modeled net value"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:ae.cumulativeNetReturn>=0?"positive":"negative",children:ta.format(ae.cumulativeNetReturn)})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Five-year cumulative ROI"}),e.jsxs("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[Math.round(ae.cumulativeRoi),"%"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Target active members"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:pn.format(ae.yearFive.activeMembers)})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"model-audit",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"MODEL LEDGER"}),e.jsx("h4",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Every output has a visible driver."})]}),e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Revenue lift"})," = active members à AOV à purchase frequency à combined lift."]}),e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Gross profit"})," = incremental revenue à gross margin."]}),e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Net return"})," = gross profit â recurring cost â rewards â year-one delivery cost."]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:"sensitivity-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"SCENARIO SENSITIVITY"}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:"Same cost architecture; participation and lift vary."})]}),le.map(O=>e.jsxs("article",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",className:j.scenario===O.value?"selected":"",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:O.label}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:ta.format(O.result.cumulativeNetReturn)}),e.jsxs("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:136",children:[Math.round(O.result.cumulativeRoi),"% cumulative ROI"]})]},O.value))]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:137",className:"guided-controls",children:[e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:137",className:"text-link text-link-strong",type:"button",disabled:g===1,onClick:()=>f(O=>Math.max(1,O-1)),children:[e.jsx(Ts,{"data-loc":"client/src/pages/RoiCalculator.tsx:137",size:15})," Previous"]}),g<4?e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:137",className:"button button-dark",type:"button",onClick:()=>f(O=>Math.min(4,O+1)),children:["Continue ",e.jsx(Y,{"data-loc":"client/src/pages/RoiCalculator.tsx:137",size:16})]}):e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:137",className:"button button-orange",type:"button",onClick:()=>w(!0),children:["Request executive report ",e.jsx(Y,{"data-loc":"client/src/pages/RoiCalculator.tsx:137",size:16})]})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:"guided-summary",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:"result-kicker",children:"LIVE EXECUTIVE SNAPSHOT"}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:"guided-summary-head",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:"Five-year net value"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:ae.cumulativeNetReturn>=0?"positive":"negative",children:ta.format(ae.cumulativeNetReturn)})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:"guided-roi-ring",children:[e.jsxs("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:[Math.round(ae.cumulativeRoi),"%"]}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:"cumulative ROI"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:"guided-summary-rows",children:[e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:"Selected channels"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:j.channels.length})]}),e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:"Reachable customers"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:pn.format(ae.totalCustomers)})]}),e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:["Active members in Y",$.year]}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:pn.format($.activeMembers)})]}),e.jsxs("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:"Annual recurring cost"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:ta.format(ae.annualRecurringCost)})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",className:"guided-summary-note",children:[e.jsx(Yi,{"data-loc":"client/src/pages/RoiCalculator.tsx:139",size:14}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:139",children:"Directional planning only. This model uses your editable assumptions and is not a forecast, proposal, or guarantee."})]})]})]})]})}),R&&e.jsx("section",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"executive-report-section",children:e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"site-container",children:e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"executive-report-panel",children:E?e.
558jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"report-success",children:[e.jsx(nt,{"data-loc":"client/src/pages/RoiCalculator.tsx:142",size:28}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"ADVANCED REPORT REQUEST SAVED"}),e.jsx("h2",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:ie.data?.verificationDeliveryPending?e.jsxs(e.Fragment,{children:["Your verification link is ",e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"prepared."})]}):e.jsxs(e.Fragment,{children:["Check your inbox to ",e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"verify your request."})]})}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:ie.data?.verificationDeliveryPending?"Your channel, cost, member, five-year, and advanced-decisioning selections are safely stored. Alma has queued the secure verification step before the report can enter review.":"Your model and advanced-report scope are stored with your contact details. Confirm the one-time email link, then Alma will review the evidence and prepare the next report and decisioning steps."}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"report-gate",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"01 / VERIFY EMAIL"}),e.jsx("i",{"data-loc":"client/src/pages/RoiCalculator.tsx:142"}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"02 / ALMA REVIEW"}),e.jsx("i",{"data-loc":"client/src/pages/RoiCalculator.tsx:142"}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"03 / ADVANCED REPORT"})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"form-note",children:"The report is not an automatic forecast, competitor claim, or promise. Recommendations are released only after the underlying evidence and assumptions have been reviewed."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"report-preview",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"Verified advanced ROI report"}),e.jsxs("h2",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:["Verify your email.",e.jsx("br",{"data-loc":"client/src/pages/RoiCalculator.tsx:142"}),e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"Then go beyond the number."})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"The advanced report turns the submitted model into a clearer next-decision brief: financial evidence, program mechanics, campaign scenarios, and public-programme context where you request it."}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"report-preview-summary",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:j.channels.map(O=>cp(O.channel)).join(" + ")}),e.jsxs("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:[ta.format(ae.cumulativeNetReturn)," / 5 years"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"advanced-report-promise",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"AVAILABLE FOR"}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"New programs, Alma-supported programs, and brands assessing an existing provider."})]})]}),e.jsxs("form",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"report-request-form",onSubmit:W,children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"verification-callout",children:[e.jsx(nt,{"data-loc":"client/src/pages/RoiCalculator.tsx:142",size:17}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"Verify your work email before delivery."}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"We send a one-time link to confirm this request. Only verified requests enter Alma review."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"form-grid",children:[e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:["Full name",e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",required:!0,value:D.name,onChange:O=>q({...D,name:O.target.value}),placeholder:"Your name"})]}),e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:["Work email for verification",e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",required:!0,type:"email",value:D.workEmail,onChange:O=>q({...D,workEmail:O.target.value}),placeholder:"[email protected]"})]}),e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:["Company",e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",required:!0,value:D.company,onChange:O=>q({...D,company:O.target.value}),placeholder:"Company name"})]}),e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:["Phone ",e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"form-optional",children:"optional"}),e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",value:D.phone,onChange:O=>q({...D,phone:O.target.value}),placeholder:"(555) 000-0000"})]})]}),e.jsxs("fieldset",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"advanced-report-options",children:[e.jsx("legend",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"What should the advanced report help you decide?"}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"programme-context-grid",children:fM.map(O=>e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",type:"button",className:K===O.value?"selected":"","aria-pressed":K===O.value,onClick:()=>N(O.value),children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:O.label}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:O.copy})]},O.value))}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"advanced-report-label",children:"Include in the review"}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"advanced-module-grid",children:xM.map(O=>e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:[e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",type:"checkbox",checked:U.includes(O.value),onChange:()=>P(O.value)}),e.jsxs("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:O.label}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:O.copy})]})]},O.value))}),e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"comparison-targets",children:["Competitors or lookalikes to review ",e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"form-optional",children:"optional"}),e.jsx("input",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",value:I,onChange:O=>Z(O.target.value),placeholder:"Example: three brands or programs to compare"}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:"Only public-facing program materials are reviewed. Findings are hypotheses to validate, not claims about private pricing, performance, or internal operations."})]})]}),e.jsxs("label",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",children:["What does the loyalty programme need to prove?",e.jsx("textarea",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",required:!0,rows:4,value:D.message,onChange:O=>q({...D,message:O.target.value})})]}),ie.isError&&e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"form-error",children:"We could not save the report request. Please try again."}),e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"button button-orange submit-button",type:"submit",disabled:ie.isPending||U.length===0,children:[ie.isPending?"Preparing verificationâ¦":"Email my verification link"," ",e.jsx(Y,{"data-loc":"client/src/pages/RoiCalculator.tsx:142",size:16})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:142",className:"form-note",children:"Your model and selected review scope are stored in the Alma lead workspace. A one-time email verification is required before report delivery and Alma review."})]})]})})})})]}):e.jsx("section",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"calc-start-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"site-container calc-start-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"Start here"}),e.jsxs("h2",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:["What kind of conversation",e.jsx("br",{"data-loc":"client/src/pages/RoiCalculator.tsx:127"}),e.jsx("em",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"are you preparing for?"})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"Choose the current selling context and the revenue channels you want to include. You can add, remove, and adjust every assumption once the calculator opens."})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"calc-start-panel",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"guided-kicker",children:"01 / SET THE CONTEXT"}),e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"context-toggle",children:[e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:a==="cold_outreach"?"active":"",type:"button",onClick:()=>n("cold_outreach"),children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"Cold outreach"}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"Build a first-pass value case"})]}),e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:a==="active_deal"?"active":"",type:"button",onClick:()=>n("active_deal"),children:[e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"Active deal"}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:"Pressure-test a live opportunity"})]})]}),e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"guided-label",children:"Select revenue channels"}),e.jsx("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",className:"start-channel-grid",children:zi.map(O=>e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",type:"button",className:l.includes(O.value)?"selected":"",onClick:()=>pe(O.value),children:[e.jsx(nt,{"data-loc":"client/src/pages/RoiCalculator.tsx:127",size:15}),e.jsx("strong",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:O.label}),e.jsx("small",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",children:O.caption})]},O.value))}),e.jsxs("button",{"data-loc":"client/src/pages/RoiCalculator.tsx:127",type:"button",className:"button button-orange full-width",onClick:ge,children:["Start calculator ",e.jsx(Y,{"data-loc":"client/src/pages/RoiCalculator.tsx:127",size:16})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiCalculator.tsx:144",className:"calculator-note",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiCalculator.tsx:144",className:"site-container",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiCalculator.tsx:144",children:"THE NEXT STEP"}),e.jsx("p",{"data-loc":"client/src/pages/RoiCalculator.tsx:144",children:"A defensible program case considers channel economics, active-member behaviour, cost timing, implementation speed, margin, reward liability, and the counterfactual. Alma can help you scope it."})]})})]})})}const pb=[{name:"Foundation",note:"For focused programs ready to establish a clear loyalty operating model.",features:["Program discovery and business case","Core points, rewards, and member journeys","Implementation readiness plan","Launch measurement framework"]},{name:"Momentum",note:"For teams connecting loyalty across more customer touchpoints and systems.",features:["Everything in Foundation","Tiering, gamification, and campaign design","Cross-channel journey design","Integration and data-flow planning"],featured:!0},{name:"Enterprise",note:"For multi-location, complex, or deeply integrated loyalty initiatives.",features:["Everything in Momentum","Multi-market and multi-brand program architecture","Governance and operating-model design","Executive measurement and optimization cadence"]}];function bM(){return e.jsx(De,{"data-loc":"client/src/pages/Pricing.tsx:11",children:e.jsxs("main",{"data-loc":"client/src/pages/Pricing.tsx:11",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Pricing.tsx:12",eyebrow:"Get a quote",title:e.jsxs(e.Fragment,{children:["The right scope comes before ",e.jsx("em",{"data-loc":"client/src/pages/Pricing.tsx:12",children:"the right price."})]}),copy:"Alma Loyalty programs are designed around your customer economics, implementation landscape, and growth ambition. We scope the work to the decision you need to make.",action:e.jsxs(V,{"data-loc":"client/src/pages/Pricing.tsx:12",href:"/get-a-quote",className:"button button-orange",children:["Get a scoped quote ",e.jsx(Y,{"data-loc":"client/src/pages/Pricing.tsx:12",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"pricing-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"site-container",children:[e.jsx("div",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"pricing-grid",children:pb.map(a=>e.jsxs("article",{"data-loc":"client/src/pages/Pricing.tsx:13",className:`pricing-card ${a.featured?"pricing-featured":""}`,children:[a.featured&&e.jsx("span",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"pricing-flag",children:"Most common starting point"}),e.jsxs("span",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"plan-index",children:["0",pb.indexOf(a)+1]}),e.jsx("h2",{"data-loc":"client/src/pages/Pricing.tsx:13",children:a.name}),e.jsx("p",{"data-loc":"client/src/pages/Pricing.tsx:13",children:a.note}),e.jsx("div",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"plan-line"}),e.jsx("ul",{"data-loc":"client/src/pages/Pricing.tsx:13",children:a.features.map(n=>e.jsxs("li",{"data-loc":"client/src/pages/Pricing.tsx:13",children:[e.jsx(Ea,{"data-loc":"client/src/pages/Pricing.tsx:13",size:15}),n]},n))}),e.jsxs(V,{"data-loc":"client/src/pages/Pricing.tsx:13",href:"/get-a-quote",className:a.featured?"button button-orange full-width":"button button-outline full-width",children:["Discuss ",a.name," ",e.jsx(Y,{"data-loc":"client/src/pages/Pricing.tsx:13",size:15})]})]},a.name))}),e.jsx("p",{"data-loc":"client/src/pages/Pricing.tsx:13",className:"pricing-disclaimer",children:"Every engagement is scoped after a discovery conversation. We will be transparent about the assumptions, implementation requirements, and recommended path."})]})}),e.jsx("section",{"data-loc":"client/src/pages/Pricing.tsx:14",className:"final-cta compact-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/Pricing.tsx:14",className:"site-container final-cta-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Pricing.tsx:14",children:[e.jsx(re,{"data-loc":"client/src/pages/Pricing.tsx:14",children:"Make the business case first"}),e.jsx("h2",{"data-loc":"client/src/pages/Pricing.tsx:14",children:"Need an initial number before you talk?"})]}),e.jsxs(V,{"data-loc":"client/src/pages/Pricing.tsx:14",href:"/roi-calculator",className:"button button-orange button-large",children:["Run the ROI calculator ",e.jsx(Y,{"data-loc":"client/src/pages/Pricing.tsx:14",size:20})]})]})})]})})}const Yl=[{slug:"how-loyalty-roi-works",eyebrow:"Loyalty ROI methodology",title:["A loyalty business case is","a chain of assumptions."],copy:"A useful ROI view makes the customer behavior, revenue channel, contribution, cost, timing, and evidence standard visible. It does not bury risk
558inside a single uplift number.",sections:[{heading:"Start with incremental behavior",body:"The strongest programme case begins with the behavior expected to change: active participation, purchase frequency, basket value, retention, referral, or a different action that is commercially measurable.",prompts:["What would the customer have done without the programme?","Which customer action is expected to change?","How will you separate activity from incrementality?"]},{heading:"Translate behavior into contribution",body:"Revenue alone is not an outcome. Model incremental revenue against gross margin, reward cost, operating cost, integration cost, and delivery timing.",prompts:["Which revenue is actually incremental?","What cost increases when the programme succeeds?","What does contribution look like after all programme costs?"]},{heading:"Use evidence as the operating system",body:"Every material assumption should have an owner, source, confidence level, and next validation step. This makes the model more useful at launchânot less ambitious.",prompts:["Which inputs are observed?","Which are planning assumptions?","What needs to be learned through a holdout or cohort?"]}],next:{label:"Open the full ROI calculator",href:"/roi-calculator"}},{slug:"calculator-library",eyebrow:"Calculator library",title:["One calculator for the","decision you are making."],copy:"Use the shorter strategy tools to isolate a growth lever, then move into the guided ROI model when you need channel economics, cost timing, and sensitivity together.",sections:[{heading:"Strategy calculators",body:"Active membership, frequency, AOV, and retention models help teams talk through the input that matters before they collapse the whole programme into a generic forecast.",prompts:["Do we need more active members?","Is purchase cadence the constraint?","Can basket value grow with margin intact?"]},{heading:"Opportunity estimator",body:"The opportunity estimator is a quick initial screen. It is designed to make the direction, cost context, and model assumptions visible early.",prompts:["Does the business show enough addressable revenue?","Is there margin to support an incentive?","Which inputs need an owner before proceeding?"]},{heading:"Guided ROI model",body:"The guided model is for creating a fuller business case with channels, active membership, costs, delivery ramp, and audit ledger.",prompts:["How should finance read the model?","What happens under a conservative scenario?","Which evidence label belongs to each key input?"]}],next:{label:"Explore loyalty strategy calculators",href:"/strategy"}},{slug:"guides-research",eyebrow:"Guides & research",title:["Better loyalty programmes","ask better questions first."],copy:"Almaâs resource library is built around decision questions marketing, commercial, and finance teams need to answer before and after launch.",sections:[{heading:"Programme design",body:"Programme mechanics are not a strategy. The questions are who the programme is for, what behavior it should change, why the value exchange is credible, and how the result will be measured.",prompts:["What role does loyalty play in the growth plan?","Which audience has the strongest reason to participate?","Which value exchange will be understood immediately?"]},{heading:"Commercial discipline",body:"A loyalty programme earns trust when the upside and cost are both visible. This means testing contribution, reward liability, operational effort, and the risk of discount leakage together.",prompts:["What would make this uneconomic?","Where could reward cost expand?","How will the programme learn safely?"]},{heading:"Operating practice",body:"Retention is not a one-time launch. The programme needs a cadence for rewards, audience decisions, measurement, content, and iteration.",prompts:["Who owns the member value proposition?","How often will the programme be reviewed?","Which result changes the next decision?"]}],next:{label:"Explore the platform",href:"/platform"}},{slug:"glossary",eyebrow:"Loyalty glossary",title:["Use the language","with the economics attached."],copy:"A concise working glossary for the terms that repeatedly appear in loyalty, CRM, retention, and commercial measurement conversations.",sections:[{heading:"Active member",body:"A member who has completed the behavior the programme defines as active within a stated t
558ime window. A member record and an active member are not the same thing.",prompts:["What behavior defines active?","What is the time window?","How does active behavior relate to contribution?"]},{heading:"Incrementality",body:"The behavior or value created beyond what would have happened without the programme. It is the basis of a credible financial case.",prompts:["What is the baseline?","What is the comparison group?","Which drivers might create false attribution?"]},{heading:"Reward liability",body:"The future programme value members have earned and may redeem. Its treatment, timing, and economics should be understood alongside reward cost.",prompts:["When is value earned?","When is it redeemed or expired?","How is the liability managed operationally?"]}],next:{label:"Test the definitions in an ROI model",href:"/roi-calculator"}},{slug:"faq",eyebrow:"Frequently asked questions",title:["The questions that make","a loyalty decision clearer."],copy:"A practical starting point for teams considering a loyalty programme without a current programme in place.",sections:[{heading:"Do we need a loyalty programme?",body:"The more useful question is whether an incentive system can create enough incremental, profitable behavior to justify its cost. That requires a look at customer cadence, margin, addressability, and the behavior you need to change.",prompts:["What behavior is the programme meant to change?","What margin supports the value exchange?","How will the result be measured?"]},{heading:"Which programme mechanic is best?",body:"Points, tiers, benefits, challenges, referrals, or receipt-based offers are mechanisms. The right one depends on the audience, customer job, operating feasibility, and contribution case.",prompts:["Does the mechanic make progress clear?","Is the value credible for the behavior requested?","Can it operate reliably across the customer experience?"]},{heading:"When will we know it is working?",body:"Set a baseline and measurement approach before launch. An early learning plan is often more valuable than an early claim of success.",prompts:["What is measured weekly and quarterly?","Which cohort or holdout provides comparison?","Which result changes the next action?"]}],next:{label:"Find your strategy path",href:"/program-matcher"}},{slug:"security",eyebrow:"Security & data use",title:["Customer value requires","responsible data practice."],copy:"A loyalty programme should define the customer data it needs, the purpose for which it is used, the access controls, and the operational process around that data before it reaches customers.",sections:[{heading:"Purposeful data",body:"Collect and use data for specific programme and customer-experience purposes rather than treating loyalty as permission for broad collection.",prompts:["What data is necessary for the value exchange?","What customer benefit does each data use support?","What can be avoided?"]},{heading:"Clear governance",body:"Programme teams should know who can access member information, who can change rules, and how the organisation monitors the operating model.",prompts:["Who owns programme data governance?","How are changes approved?","How are vendor responsibilities understood?"]},{heading:"Implementation review",body:"Integration and programme delivery should include a documented review of customer touchpoints, data flows, permissions, and operational fallback paths.",prompts:["Which systems exchange data?","Which customer experiences depend on that exchange?","What happens when a dependency is unavailable?"]}],next:{label:"Discuss your programme architecture",href:"/contact"}},{slug:"program-health",eyebrow:"Program health",title:["Find the decision","behind the symptom."],copy:"A review framework for teams with a live loyalty program who need to separate a visible problem from the structure, member experience, economics, public context, or data handoff that may be causing it.",sections:[{heading:"Start with the symptom",body:"Low enrollment, low activity, slow redemption, rising cost, or unclear ROI are signals. State the symptom in plain language and identify the member group, time window, channel, and decision it affects before proposing a fix.",prompts:["What changed or failed to change?","Which member group and channel does it affect?","What would disprove the first explanation?"]},{heading:"Review the full value exchange",body:"A health check looks at program structure, member engagement, reward economics, public market context, and data or channel readiness together. A rule that looks sensible on a slide can fail in the real member journey or operating model.",prompts:["Can a member understand the next valuable action?","Does the reward cost have a visible contribution case?","Can the programme recognize the qualifying behavior?"]}
558,{heading:"Choose one reviewable next action",body:"End with a single decision that has an owner, evidence requirement, review date, and scale-or-stop rule. This keeps a health check from becoming a generic list of tactics.",prompts:["What decision is worth testing first?","Which assumption needs validation?","What result changes the next decision?"]}],next:{label:"Open the Program Health Check",href:"/program-health"}},{slug:"public-market-context",eyebrow:"Public market context",title:["Learn from what","programs publish."],copy:"A responsible method for comparing public loyalty experiences without claiming access to private member data, performance, pricing, or internal operating information.",sections:[{heading:"Define the comparison question",body:"Choose a narrow, operational question before collecting examples. You may want to understand how programs explain enrollment, show progress, frame non-purchase earning, or make rewards easier to understand.",prompts:["Which member decision are you comparing?","Which category or lookalike is actually relevant?","What would count as a meaningful difference?"]},{heading:"Use public evidence only",body:"Review public program pages, published terms, app listings, brand communications, and visible member flows. Note the date, source, and what cannot be inferred from the material.",prompts:["Is the evidence accessible to the public?","When was it observed?","What remains unknown without internal data?"]},{heading:"Turn differences into hypotheses",body:"A public comparison is an input to a team discussion, not a command to copy another program. Pair each observed difference with the audience, channel, cost, and measurement question that would make it relevant locally.",prompts:["Which local member need does this address?","What would it cost to test?","How will the team judge its effect?"]}],next:{label:"Build an evidence-led ROI case",href:"/roi-calculator"}},{slug:"decisioning-governance",eyebrow:"Decisioning governance",title:["Let the model inform","the team decide."],copy:"A working decision process for program teams using member data, scenario models, and public context without treating recommendations as automatic instructions or financial guarantees.",sections:[{heading:"Make the decision explicit",body:"A useful recommendation starts with a precise choice: change an earn rule, add a reward, test a campaign, simplify a tier, or leave the program alone. The team should know the decision before it debates a score.",prompts:["What exactly could change?","Who owns the decision?","What cannot change without approval?"]},{heading:"Show the trade-off",body:"Every option should show its likely member value, cost exposure, operational effort, confidence in the input evidence, and what would need to be true for it to work. Scenarios are useful when their assumptions remain visible.",prompts:["Which inputs are observed versus estimated?","What cost grows if participation increases?","What implementation dependency could block it?"]},{heading:"Protect the learning loop",body:"Define the test audience, comparison approach, review period, and decision rule before launch. Recommendations should be revisited when member behavior or financial evidence does not match the original model.",prompts:["What is the baseline?","When will the result be reviewed?","What leads to scale, revise, or stop?"]}],next:{label:"Model a decision path",href:"/roi-calculator"}},{slug:"member-experience",eyebrow:"Member experience",title:["Make the next member","action easy to understand."],copy:"A guide to the public and logged-in moments that make a loyalty program feel like a useful value exchange rather than a hidden set of rules.",sections:[{heading:"Explain value before asking for data",body:"The join experience should show who the program is for, what a member can do, how progress works, and why the value is relevant. The promise should match the real program rules and operating capacity.",prompts:["Why should this audience join now?","What is the first valuable action?","Which terms need plain-language explanation?"]},{heading:"Make progress visible",body:"Members should be able to see eligible earning actions, verified activity, available value, and the next meaningful milestone. This applies across direct, in-store, partner, and verified third-party activity.",prompts:["Can the member see what counted?","Is the next reward or benef
558it understandable?","Where can channel handoffs create confusion?"]},{heading:"Use value beyond discounts",body:"Progress, access, recognition, useful services, limited availability, and appropriate partner experiences can be meaningful rewards. Each needs a clear cost, fulfillment, availability, and permission model.",prompts:["What value is credible for this audience?","What is the cash and operating cost?","Can the team fulfill it consistently?"]}],next:{label:"Explore the member journey tools",href:"/program-matcher"}},{slug:"operating-measurement",eyebrow:"Operating measurement",title:["Measure the behaviour","then improve the programme."],copy:"An operating cadence for teams that want to connect member behavior to revenue, contribution, reward funding, and the next program decision without mistaking activity for proof.",sections:[{heading:"Set the operating baseline",body:"Capture the customer behavior, contribution context, program cost, and data limitations before a change. The baseline gives the team a reason to pause when a tempting metric rises without improving the business case.",prompts:["Which behavior is commercially meaningful?","What is the baseline period?","Which cost and operational inputs belong beside it?"]},{heading:"Use a small decision ledger",body:"For each initiative, document its audience, mechanic, reward, financial assumption, evidence source, owner, timing, and review date. A concise ledger exposes missing information and prevents program history from living only in meetings.",prompts:["Who owns the evidence?","Which assumption has the lowest confidence?","When is the next review?"]},{heading:"Review, learn, and revise",body:"Separate early directional signals from confirmed evidence. Use the agreed review rule to scale what earns its place, revise what has a credible path, and stop what cannot justify its cost or complexity.",prompts:["What did the team learn?","Does the model need to change?","Which action is no longer worth operating?"]}],next:{label:"Build a five-year ROI view",href:"/roi-calculator"}},{slug:"program-economics",eyebrow:"Program economics",title:["Build the loyalty case","from contribution, not slogans."],copy:"A practical guide to making customer behavior, gross margin, reward funding, technology, delivery, and operating cost visible in the same programme decision.",sections:[{heading:"Start with the commercially meaningful behavior",body:"A programme should identify the repeat action, basket decision, retention moment, referral, or channel movement that may create incremental contribution. Begin with the counterfactual rather than a headline percentage lift.",prompts:["Which member action matters commercially?","What would happen without the programme?","Which customer or channel is realistically addressable?"]},{heading:"Model the full value exchange",body:"Incremental revenue is only one side of the case. Put gross margin, reward cost, liability, platform cost, implementation, marketing, staff time, fulfilment, and operational controls beside it.",prompts:["What cost grows when participation succeeds?","Where can reward value leak into margin?","Which one-time costs belong in the launch period?"]},{heading:"Use scenarios to make risk visible",body:"A conservative, expected, and upside view helps the team see which assumptions decide the result. It does not turn the model into a forecast or a promise.",prompts:["Which assumption is most material?","What does the conservative case require?","What evidence would change the next decision?"]}],next:{label:"Build a five-year ROI case",href:"/roi-calculator"}},{slug:"omnichannel-value",eyebrow:"Omnichannel value",title:["Make earning and redemption","work across real customer paths."],copy:"A guide to designing eligible earning, verified activity, useful redemption, and visible progress across direct, in-store, partner, and service interactions.",sections:[{heading:"Map the qualifying customer moments",body:"A member may browse online, purchase in store, submit an eligible receipt, work through a partner, contact customer care, or return later. Define which moments earn value and what evidence confirms each one.",prompts:["Which channels should count?","How is each action verified?","Where can a member lose context between channels?"]},{heading:"Keep one value exchange understandable",body:"Members need to understand what they can earn, what they have earned, where it can be used, and what the next meaningful action is. Rules can differ by channel without creating a different programme in every channel.",prompts:["Can members see eligible activity clearly?","Does the reward work in the channel where it is offered?","Which exception needs plain-language explanation?"]},{heading:"Design operating handoffs before launch",body:"Channel continuity depends on technology, data, customer-care, partner, fraud, and fulfilment responsibilities. Make those dependencies visible before a new mechanic is promised to members.",prompts:["Who owns each data handoff?","What happens when verification is delayed?","Which rules need an operating fallback?"]}],next:{label:"Review integration readiness",href:"/integrations"}},{slug:"tier-strategy",eyebrow:"Tier strategy",title:["Use tiers to clarify","progress, value, and commitment."],copy:"A practical guide to tier design for teams that want visible member progress and differentiated value without creating an uneconomic promise or an unreadable rules system.",sections:[{heading:"Give each tier a member reason",body:"A tier should make progress understandable and create a credible reason to continue. Its value may be recognition, access, useful service, priority, or an earned benefitânot simply a larger blanket discount.",prompts:["What does a member gain at each step?","Is the next milestone attainable?","Can the value be fulfilled reliably?"]},{heading:"Set thresholds around behavior and economics",body:"Qualification rules should reflect the customer behavior worth sustaining and the contribution available to fund value. Test the effect of thresholds on member reach, reward exposure, and operational demand.",prompts:["Which behavior earns progress?","How many members can reach each level?","What funding pressure appears at higher tiers?"]},{heading:"Operate tiers as a learning system",body:"Review whether members understand their status, receive the promised value, and change the behavior the design intended. Adjust the structure with an evidence trail rather than a reaction to a single activity spike.",prompts:["What tells the team a tier is working?","Which group needs clearer value?","When should the rules be reviewed?"]}],next:{label:"Find a programme structure",href:"/program-matcher"}},{slug:"referral-programs",eyebrow:"Referral programs",title:["Turn advocacy into","a measurable value exchange."],copy:"A guide to referral design that protects attribution, reward funding, fraud controls, member experience, and the difference between an introduction and a valuable new customer.",sections:[{heading:"Define the customer event that matters",body:"A share, invite, account creation, first purchase, or retained relationship can all be referral milestones. Choose the one that represents real value before deciding what either party earns.",prompts:["What event proves a successful referral?","When should value be issued?","Which event is commercially incremental?"]},{heading:"Design value for both sides",body:"The referrer and the new customer may need different value, timing, or eligibility. Keep the exchange understandable and make funding, fulfilment, availability, and any channel limitation explicit.",prompts:["Why would the referrer share?","What is useful to the new customer?","What cost appears when the programme succeeds?"]},{heading:"Protect evidence and operating controls",body:"Referral programmes need clear identity matching, eligibility rules, duplicate handling, fraud review, customer-care guidance, and a method for reading quality rather than only volume.",prompts:["How will duplicate or suspicious activity be handled?","Which data confirms the milestone?","How will acquired customers be assessed over time?"]}],next:{label:"Model active membership",href:"/strategy/active-members"}},{slug:"churn-prevention",eyebrow:"Churn prevention",title:["Use member signals to","earn the next return."],copy:"A guide to identifying declining member engagement and selecting a relevant, measurable next action without assuming that every inactive member needs the same incentive.",sections:[{heading:"Define the decline against a real baseline",body:"A lapse is meaningful only in the context of expected cadence, channel, customer value, and lifecycle stage. Separate members who are genuinely at risk from customers whose normal behavior is simply less frequent.",prompts:["What does normal cadence look like?","Which change signals a real decline?","How does the pattern differ by member group?"]}
558,{heading:"Choose a relevant recovery action",body:"A return path may involve progress, useful value, access, service recovery, reminder, or a changed earning route. The objective is to restore a valuable relationship, not simply to force a short-term transaction.",prompts:["What member need might have changed?","Which action is credible now?","What value can be offered responsibly?"]},{heading:"Measure recovery with discipline",body:"Document the audience, evidence, intervention, cost, time window, and comparison approach. Learn whether the action changed a relationship outcome before turning it into a permanent operating cost.",prompts:["What is the comparison group?","What cost belongs in the recovery case?","What result leads to scale, revise, or stop?"]}],next:{label:"Model retention and CLV",href:"/strategy/retention-clv"}}],jM=a=>Yl.find(n=>n.slug===a)??Yl[0],wM=[EO,Ij,Vl,Ba],hb=["program-health","public-market-context","decisioning-governance","member-experience","operating-measurement","program-economics","omnichannel-value","tier-strategy","referral-programs","churn-prevention"];function CM(){const a=Yl.filter(o=>hb.includes(o.slug)),n=Yl.filter(o=>!hb.includes(o.slug));return e.jsx(De,{"data-loc":"client/src/pages/Resources.tsx:14",children:e.jsxs("main",{"data-loc":"client/src/pages/Resources.tsx:14",className:"collection-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Resources.tsx:14",eyebrow:"Resources",title:e.jsxs(e.Fragment,{children:["Better loyalty decisions start",e.jsx("br",{"data-loc":"client/src/pages/Resources.tsx:14"}),"with ",e.jsx("em",{"data-loc":"client/src/pages/Resources.tsx:14",children:"better questions."})]}),copy:"Original learning paths for teams designing a new programme or improving one already liveâbuilt around evidence, commercial logic, customer behavior, and operating clarity.",action:e.jsxs(V,{"data-loc":"client/src/pages/Resources.tsx:14",href:"/roi-explainer",className:"button button-orange",children:["How loyalty ROI works ",e.jsx(Y,{"data-loc":"client/src/pages/Resources.tsx:14",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Resources.tsx:14",className:"collection-principles",children:e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",className:"section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/Resources.tsx:14",children:"Start with the decision"}),e.jsxs("h2",{"data-loc":"client/src/pages/Resources.tsx:14",children:["Tools for a more",e.jsx("br",{"data-loc":"client/src/pages/Resources.tsx:14"}),e.jsx("em",{"data-loc":"client/src/pages/Resources.tsx:14",children:"useful decision."})]})]}),e.jsx("div",{"data-loc":"client/src/pages/Resources.tsx:14",children:n.slice(0,3).map((o,i)=>{const l=wM[i];return e.jsxs(V,{"data-loc":"client/src/pages/Resources.tsx:14",className:"collection-solution-card",href:`/resources/${o.slug}`,children:[e.jsx(l,{"data-loc":"client/src/pages/Resources.tsx:14",size:22}),e.jsx("span",{"data-loc":"client/src/pages/Resources.tsx:14",children:o.eyebrow}),e.jsxs("h3",{"data-loc":"client/src/pages/Resources.tsx:14",children:[o.title[0]," ",o.title[1]]}),e.jsx("p",{"data-loc":"client/src/pages/Resources.tsx:14",children:o.copy}),e.jsxs("b",{"data-loc":"client/src/pages/Resources.tsx:14",children:["Open resource ",e.jsx(Y,{"data-loc":"client/src/pages/Resources.tsx:14",size:15})]})]},o.slug)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/Resources.tsx:14",className:"solution-channel-grid resource-extra-grid resource-operator-guides",children:e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",children:[e.jsx(re,{"data-loc":"client/src/pages/Resources.tsx:14",children:"For program operators"}),e.jsxs("h2",{"data-loc":"client/src/pages/Resources.tsx:14",children:["Run a stronger programme",e.jsx("br",{"data-loc":"client/src/pages/Resources.tsx:14"}),e.jsx("em",{"data-loc":"client/src/pages/Resources.tsx:14",children:"with clearer evidence."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Resources.tsx:14",children:"Ten focused guides for teams reviewing a live loyalty program: health, public context, decision governance, member experience, measurement, economics, omnichannel value, tiers, referrals, and churn prevention."})]}),e.jsx("div",{"data-loc":"client/src/pages/Resources.tsx:14",children:a.map(o=>e.jsxs(V,{"data-loc":"client/src/pages/Resources.tsx:14",href:`/resources/${o.slug}`,children:[e.jsx("span",{"data-loc":"client/src/pages/Resources.tsx:14",children:o.eyebrow}),e.jsxs("h3",{"data-loc":"client/src/pages/Resources.tsx:14",children:[o.title[0]," ",e.jsx("em",{"data-loc":"client/src/pages/Resources.tsx:14",children:o.title[1]})]}),e.jsx(Y,{"data-loc":"client/src/pages/Resources.tsx:14",size:18})]},o.slug))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Resources.tsx:14",className:"solution-channel-grid resource-extra-grid",children:e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Resources.tsx:14",children:[e.jsx(re,{"data-loc":"client/src/pages/Resources.tsx:14",children:"Reference"}),e.jsxs("h2",{"data-loc":"client/src/pages/Resources.tsx:14",children:["Answer the questions",e.
558jsx("br",{"data-loc":"client/src/pages/Resources.tsx:14"}),e.jsx("em",{"data-loc":"client/src/pages/Resources.tsx:14",children:"before they become blockers."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Resources.tsx:14",children:"Use short, structured references for terms, frequently asked questions, and the responsible use of programme data."})]}),e.jsx("div",{"data-loc":"client/src/pages/Resources.tsx:14",children:n.slice(3).map(o=>e.jsxs(V,{"data-loc":"client/src/pages/Resources.tsx:14",href:`/resources/${o.slug}`,children:[e.jsx("span",{"data-loc":"client/src/pages/Resources.tsx:14",children:o.eyebrow}),e.jsxs("h3",{"data-loc":"client/src/pages/Resources.tsx:14",children:[o.title[0]," ",e.jsx("em",{"data-loc":"client/src/pages/Resources.tsx:14",children:o.title[1]})]}),e.jsx(Y,{"data-loc":"client/src/pages/Resources.tsx:14",size:18})]},o.slug))})]})})]})})}function SM(){return e.jsx(De,{"data-loc":"client/src/pages/About.tsx:5",children:e.jsxs("main",{"data-loc":"client/src/pages/About.tsx:5",children:[e.jsx(Ve,{"data-loc":"client/src/pages/About.tsx:6",eyebrow:"About Alma Loyalty",title:e.jsxs(e.Fragment,{children:["More retention, but never at the expense of ",e.jsx("em",{"data-loc":"client/src/pages/About.tsx:6",children:"clarity."})]}),copy:"Alma Loyalty exists to help organizations make loyalty programs commercially disciplined, genuinely useful to customers, and operationally possible to deliver."}),e.jsx("section",{"data-loc":"client/src/pages/About.tsx:7",className:"about-story",children:e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:7",className:"site-container about-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:7",className:"about-statement",children:[e.jsx("span",{"data-loc":"client/src/pages/About.tsx:7",children:"OUR POINT OF VIEW"}),e.jsx("h2",{"data-loc":"client/src/pages/About.tsx:7",children:"âA loyalty program should be easy to explain to a customer and hard to dismiss in a boardroom.â"})]}),e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:7",children:[e.jsx(re,{"data-loc":"client/src/pages/About.tsx:7",children:"What we believe"}),e.jsx("p",{"data-loc":"client/src/pages/About.tsx:7",children:"Too many loyalty conversations begin with a catalog of features. We believe the sequence should begin with a business question: what behavior is worth changing, what return should follow, and what experience will make that change feel valuable?"}),e.jsx("p",{"data-loc":"client/src/pages/About.tsx:7",children:"From there, we connect the program to the places customers already spend time and the systems teams already depend on."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/About.tsx:8",className:"values-section",children:e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:8",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/About.tsx:8",children:"How we work"}),e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:8",className:"values-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/About.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/About.tsx:8",children:"01"}),e.jsx("h3",{"data-loc":"client/src/pages/About.tsx:8",children:"Evidence before enthusiasm."}),e.jsx("p",{"data-loc":"client/src/pages/About.tsx:8",children:"We establish the measurement logic early so a program can be improved, not simply admired."})]}),e.jsxs("article",{"data-loc":"client/src/pages/About.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/About.tsx:8",children:"02"}),e.jsx("h3",{"data-loc":"client/src/pages/About.tsx:8",children:"Customer value and business value belong together."}),e.jsx("p",{"data-loc":"client/src/pages/About.tsx:8",children:"A reward that is irrelevant to customers or unsustainable for the business is not a loyalty strategy."})]}),e.jsxs("article",{"data-loc":"client/src/pages/About.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/About.tsx:8",children:"03"}),e.jsx("h3",{"data-loc":"client/src/pages/About.tsx:8",children:"Complexity should stay behind the scenes."}),e.jsx("p",{"data-loc":"client/src/pages/About.tsx:8",children:"We design for the reality of your systems without asking members to feel the complexity."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/About.tsx:9",className:"team-section",children:e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:9",className:"site-container team-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:9",children:[e.jsx(re,{"data-loc":"client/src/pages/About.tsx:9",children:"The Alma team"}),e.jsx("h2",{"data-loc":"client/src/pages/About.tsx:9",children:"Experienced commercial thinking, focused on loyalty."}),e.jsx("p",{"data-loc":"client/src/pages/About.tsx:9",children:"Alma pairs program design, integration planning, and revenue modeling so marketing leaders can move from ambition to an implementable plan."}),e.jsxs(V,{"data-loc":"client/src/pages/About.tsx:9",href:"/demo-request",className:"button button-orange",children:["Meet us in a working session ",e.jsx(Y,{"data-loc":"client/src/pages/About.tsx:9",size:16})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/About.tsx:9",className:"team-note",children:[e.jsx("span",{"data-loc":"client/src/pages/About.tsx:9",children:"OUR COMMITMENT"}),e.jsx("h3",{"data-loc":"client/src/pages/About.tsx:9",children:"We will tell you when the program case is not strong enough yet."}),e.jsxs("ul",{"data-loc":"client/src/pages/About.tsx:9",children:[e.jsxs("li",{"data-loc":"client/src/pages/About.tsx:9",children:[e.jsx(Ea,{"data-loc":"client/src/pages/About.tsx:9",size:16})," Revenue-first program scoping"]}),e.jsxs("li",{"data-loc":"client/src/pages/About.tsx:9",children:[e.jsx(Ea,{"data-loc":"client/src/pages/About.tsx:9",size:16})," Practical integration decisions"]}),e.jsxs("li",{"data-loc":"client/src/pages/About.tsx:9",children:[e.jsx(Ea,{"data-loc":"client/src/pages/About.tsx:9",size:16})," Clear implementation communication"]})]})]})]})})]})})}const AM={demo:{heading:"See the revenue case in action.",submit:"Request your demo"},quote:{heading:"Start with a program scope, not a price list.",submit:"Build my quote"},contact:{heading:"Tell us what you are working on.",submit:"Send inquiry"}};function zh({mode:a,compact:n=!1}){const[o,i]=b.useState(!1),[l,d]=b.useState({name:"",workEmail:"",company:"",phone:"",message:""}),m=AM[a],h=Ke.leads.submit.useMutation({onSuccess:()=>i(!0)});function g(f){f.preventDefault(),h.mutate({requestType:a,name:l.name,workEmail:l.workEmail,company:l.company,phone:l.phone||void 0,message:l.message})}return o?e.jsxs("div",{"data-loc":"client/src/components/LeadForms.tsx:32",className:"form-success",role:"status",children:[e.jsx(nt,{"data-loc":"client/src/components/LeadForms.tsx:33",size:31}),e.jsx("h3",{"data-loc":"client/src/components/LeadForms.tsx:34",children:"Thank y
558ou. We have your request."}),e.jsx("p",{"data-loc":"client/src/components/LeadForms.tsx:35",children:"Our team will follow up to understand your program goals and next best step."})]}):e.jsxs("form",{"data-loc":"client/src/components/LeadForms.tsx:40",className:`lead-form ${n?"lead-form-compact":""}`,onSubmit:g,children:[!n&&e.jsx("h2",{"data-loc":"client/src/components/LeadForms.tsx:41",children:m.heading}),e.jsxs("div",{"data-loc":"client/src/components/LeadForms.tsx:42",className:"form-grid",children:[e.jsxs("label",{"data-loc":"client/src/components/LeadForms.tsx:43",children:["Full name",e.jsx("input",{"data-loc":"client/src/components/LeadForms.tsx:43",required:!0,value:l.name,onChange:f=>d({...l,name:f.target.value}),placeholder:"Your name"})]}),e.jsxs("label",{"data-loc":"client/src/components/LeadForms.tsx:44",children:["Work email",e.jsx("input",{"data-loc":"client/src/components/LeadForms.tsx:44",required:!0,type:"email",value:l.workEmail,onChange:f=>d({...l,workEmail:f.target.value}),placeholder:"[email protected]"})]}),e.jsxs("label",{"data-loc":"client/src/components/LeadForms.tsx:45",children:["Company",e.jsx("input",{"data-loc":"client/src/components/LeadForms.tsx:45",required:!0,value:l.company,onChange:f=>d({...l,company:f.target.value}),placeholder:"Company name"})]}),e.jsxs("label",{"data-loc":"client/src/components/LeadForms.tsx:46",children:["Phone ",e.jsx("span",{"data-loc":"client/src/components/LeadForms.tsx:46",className:"form-optional",children:"optional"}),e.jsx("input",{"data-loc":"client/src/components/LeadForms.tsx:46",value:l.phone,onChange:f=>d({...l,phone:f.target.value}),placeholder:"(555) 000-0000"})]})]}),e.jsxs("label",{"data-loc":"client/src/components/LeadForms.tsx:48",children:[a==="demo"?"What would a better loyalty program need to accomplish?":"How can we help?",e.jsx("textarea",{"data-loc":"client/src/components/LeadForms.tsx:48",required:!0,rows:n?3:4,value:l.message,onChange:f=>d({...l,message:f.target.value}),placeholder:"A few details give us a better place to start."})]}),h.isError&&e.jsx("p",{"data-loc":"client/src/components/LeadForms.tsx:49",className:"form-error",role:"alert",children:"We could not submit your request. Please try again or email [email protected]."}),e.jsxs("button",{"data-loc":"client/src/components/LeadForms.tsx:50",className:"button button-orange submit-button",type:"submit",disabled:h.isPending,children:[h.isPending?"Sending requestâ¦":m.submit," ",e.jsx(Y,{"data-loc":"client/src/components/LeadForms.tsx:50",size:16})]}),e.jsx("p",{"data-loc":"client/src/components/LeadForms.tsx:51",className:"form-note",children:"By submitting, you agree to be contacted about your request. No spam. No pressure."})]})}function RM(){return e.jsx(De,{"data-loc":"client/src/pages/Contact.tsx:4",children:e.jsxs("main",{"data-loc":"client/src/pages/Contact.tsx:4",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Contact.tsx:4",eyebrow:"Contact Alma",title:e.jsxs(e.Fragment,{children:["A better conversation about ",e.jsx("em",{"data-loc":"client/src/pages/Contact.tsx:4",children:"customer return."})]}),copy:"Tell us where you are in the process. We will meet you with practical questions, not a canned pitch."}),e.jsx("section",{"data-loc":"client/src/pages/Contact.tsx:4",className:"contact-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Contact.tsx:4",className:"site-container contact-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Contact.tsx:4",children:[e.jsx(re,{"data-loc":"client/src/pages/Contact.tsx:4",children:"Get in touch"}),e.jsx("h2",{"data-loc":"client/src/pages/Contact.tsx:4",children:"Start with the question that is holding up the decision."}),e.jsx("p",{"data-loc":"client/src/pages/Contact.tsx:4",children:"Whether you are evaluating a platform, redesigning an existing program, or building an internal business case, we can help establish a grounded next step."}),e.jsx("a",{"data-loc":"client/src/pages/Contact.tsx:4",href:"mailto:[email protected]",className:"contact-email",children:"[email protected]"})]}),e.jsx(zh,{"data-loc":"client/src/pages/Contact.tsx:4",mode:"contact"})]})})]})})}function EM(){return e.jsx(De,{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:e.jsxs("main",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:[e.jsx(Ve,{"data-loc":"client/src/pages/DemoRequest.tsx:4",eyebrow:"Demo request",title:e.jsxs(e.Fragment,{children:["Bring your real-world complexity. ",e.jsx("em",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:"We will bring a clearer path."})]}),copy:"A working session with Alma starts with your commercial objective, customer experience, and systems landscapeânot a pre-set product tour."}),e.jsx("section",{"data-loc":"client/src/pages/DemoRequest.tsx:4",className:"contact-section",children:e.jsxs("div",{"data-loc":"client/src/pages/DemoRequest.tsx:4",className:"site-container contact-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:[e.jsx(re,{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:"What to expect"}),e.jsx("h2",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:"A focused conversation, built around your decision."}),e.jsxs("div",{"data-loc":"client/src/pages/DemoRequest.tsx:4",className:"expect-list",children:[e.jsxs("p",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:[e.jsx("span",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:"01"})," Your retention or growth objective"]}),e.jsxs("p",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:[e.jsx("span",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:"02"})," The customer moments worth improving"]}),e.jsxs("p",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:[e.jsx("span",{"data-loc":"client/src/pages/DemoRequest.tsx:4",children:"03"})," A direction for the ROI and implementation case"]})]})]}),e.jsx(zh,{"data-loc":"client/src/pages/DemoRequest.tsx:4",mode:"demo"})]})})]})})}function NM(){return e.jsx(De,{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:e.jsxs("main",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:[e.jsx(Ve,{"data-loc":"client/src/pages/CaseStudies.tsx:5",eyebrow:"Case studies",title:e.jsxs(e.Fragment,{children:["Results should be made ",e.jsx("em",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"legible."})]}),copy:"Alma publishes client evidence only with permission and the context required to make the result meaningful. Until then, our case-study standard shows how we will measure the work together.",action:e.jsxs(V,{"data-loc":"client/src/pages/CaseStudies.tsx:5",href:"/demo-request",className:"button button-orange",children:["Discuss your case ",e.jsx(Y,{"data-loc":"client/src/pages/CaseStudies.tsx:5",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/CaseStudies.tsx:5",className:"case-framework",children:e.jsxs("div",{"data-loc":"client/src/pages/CaseStudies.tsx:5",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/CaseStudies.tsx:5",className:"section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"The proof framework"}),e.jsxs("h2",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:["Every story needs a ",e.jsx("em",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"before, decision, and after."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CaseStudies.tsx:5",className:"case-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:[e.jsx("span",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"01 / BASELINE"}),e.jsx("h3",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"What behavior are we changing?"}),e.jsx("p",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"Define the customer segments, current repeat behavior, contribution logic, and program conditions before launch."})]}),e.jsxs("article",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:[e.jsx("span",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"02 / DESIGN"}),e.jsx("h3",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"What did we ask the program to do?"}),e.jsx("p",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"Document the mechanics, rewards, customer experience, and implementation choices that establish the test."})]}),e.jsxs("article",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:[e.jsx("span",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"03 / EVIDENCE"}),e.jsx("h3",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"What did the data show?"}),e.jsx("p",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"Compare progress to the original assumptions, then identify what to retain, improve, or re-scope."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CaseStudies.tsx:5",className:"case-notice",children:[e.jsx(nt,{"data-loc":"client/src/pages/CaseStudies.tsx:5",size:21}),e.jsx("p",{"data-loc":"client/src/pages/CaseStudies.tsx:5",children:"Client logos, testimonials, and outcome metrics will be added here only after Alma has verified the claims and received permission to publish them."})]})]})})]})})}const Sn=()=>{const a="https://manus.im",n="5T7jshcTNQNFCC5ugbZDEH",o=`${window.location.origin}/api/oauth/callback`,i=crypto.randomUUID();document.cookie=`${sR}=${i}; Path=/; Max-Age=600; SameSite=None; Secure`;const l=nR({redirectUri:o,nonce:i}),d=new URL(`${a}/app-auth`);d.searchParams.set("appId",n),d.searchParams.set("redirectUri",o),d.searchParams.set("state",l),d.searchParams.set("type","signIn"),window.location.href=d.toString()};function cr(a){const{redirectOnUnauthenticated:n=!1,redirectPath:o}={},i=Ke.useUtils(),l=Ke.auth.me.useQuery(void 0,{retry:!1,refetchOnWindowFocus:!1}),d=Ke.auth.logout.useMutation({onSuccess:()=>{i.auth.me.setData(void 0,null)}}),m=b.useCallback(async()=>{try{await d.mutateAsync()}catch(g){if(g instanceof po&&g.data?.code==="UNAUTHORIZED")return;throw g}finally{try{sessionStorage.removeItem("manus-cookie")}catch{}
vendor: 4,573 bytes, line 558
558i.auth.me.setData(void 0,null),await i.auth.me.invalidate()}},[d,i]),h=b.useMemo(()=>(localStorage.setItem("manus-runtime-user-info",JSON.stringify(l.data)),{user:l.data??null,loading:l.isLoading||d.isPending,error:l.error??d.error??null,isAuthenticated:!!l.data}),[l.data,l.error,l.isLoading,d.error,d.isPending]);return b.useEffect(()=>{n&&(l.isLoading||d.isPending||h.user||typeof window>"u"||o&&window.location.pathname===o||(o?window.location.href=o:Sn()))},[n,o,d.isPending,l.isLoading,h.user]),{...h,refresh:()=>l.refetch(),logout:m}}function PM(){return Jj.useSyncExternalStore(OM,()=>!0,()=>!1)}function OM(){return()=>{}}var qh="Avatar",[kM]=jn(qh),[MM,z0]=kM(qh),q0=b.forwardRef((a,n)=>{const{__scopeAvatar:o,...i}=a,[l,d]=b.useState("idle");return e.jsx(MM,{scope:o,imageLoadingStatus:l,onImageLoadingStatusChange:d,children:e.jsx(tt.span,{...i,ref:n})})});q0.displayName=qh;var B0="AvatarImage",TM=b.forwardRef((a,n)=>{const{__scopeAvatar:o,src:i,onLoadingStatusChange:l=()=>{},...d}=a,m=z0(B0,o),h=DM(i,d),g=as(f=>{l(f),m.onImageLoadingStatusChange(f)});return Ia(()=>{h!=="idle"&&g(h)},[h,g]),h==="loaded"?e.jsx(tt.img,{...d,ref:n,src:i}):null});TM.displayName=B0;var H0="AvatarFallback",U0=b.forwardRef((a,n)=>{const{__scopeAvatar:o,delayMs:i,...l}=a,d=z0(H0,o),[m,h]=b.useState(i===void 0);return b.useEffect(()=>{if(i!==void 0){const g=window.setTimeout(()=>h(!0),i);return()=>window.clearTimeout(g)}},[i]),m&&d.imageLoadingStatus!=="loaded"?e.jsx(tt.span,{...l,ref:n}):null});U0.displayName=H0;function gb(a,n){return a?n?(a.src!==n&&(a.src=n),a.complete&&a.naturalWidth>0?"loaded":"loading"):"error":"idle"}function DM(a,{referrerPolicy:n,crossOrigin:o}){const i=PM(),l=b.useRef(null),d=i?(l.current||(l.current=new window.Image),l.current):null,[m,h]=b.useState(()=>gb(d,a));return Ia(()=>{h(gb(d,a))},[d,a]),Ia(()=>{const g=x=>()=>{h(x)};if(!d)return;const f=g("loaded"),y=g("error");return d.addEventListener("load",f),d.addEventListener("error",y),n&&(d.referrerPolicy=n),typeof o=="string"&&(d.crossOrigin=o),()=>{d.removeEventListener("load",f),d.removeEventListener("error",y)}},[d,o,n]),m}var LM=q0,IM=U0;function _M({className:a,...n}){return e.jsx(LM,{"data-loc":"client/src/components/ui/avatar.tsx:11","data-slot":"avatar",className:Qe("relative flex size-8 shrink-0 overflow-hidden rounded-full",a),...n})}function zM({className:a,...n}){return e.jsx(IM,{"data-loc":"client/src/components/ui/avatar.tsx:40","data-slot":"avatar-fallback",className:Qe("bg-muted flex size-full items-center justify-center rounded-full",a),...n})}function V0(a){const n=a+"CollectionProvider",[o,i]=jn(n),[l,d]=o(n,{collectionRef:{current:null},itemMap:new Map}),m=w=>{const{scope:E,children:k}=w,D=ue.useRef(null),q=ue.useRef(new Map).current;return e.jsx(l,{scope:E,itemMap:q,collectionRef:D,children:k})};m.displayName=n;const h=a+"CollectionSlot",g=go(h),f=ue.forwardRef((w,E)=>{const{scope:k,children:D}=w,q=d(h,k),K=jt(E,q.collectionRef);return e.jsx(g,{ref:K,children:D})});f.displayName=h;const y=a+"CollectionItemSlot",x="data-radix-collection-item",j=go(y),C=ue.forwardRef((w,E)=>{const{scope:k,children:D,...q}=w,K=ue.useRef(null),N=jt(E,K),U=d(y,k);return ue.useEffect(()=>(U.itemMap.set(K,{ref:K,...q}),()=>void U.itemMap.delete(K))),e.jsx(j,{[x]:"",ref:N,children:D})});C.displayName=y;function R(w){const E=d(a+"CollectionConsumer",w);return ue.useCallback(()=>{const D=E.collectionRef.current;if(!D)return[];const q=Array.from(D.querySelectorAll(`[${x}]`));return Array.from(E.itemMap.values()).sort((U,M)=>q.indexOf(U.ref.current)-q.indexOf(M.ref.current))},[E.collectionRef,E.itemMap])}return[{Provider:m,Slot:f,ItemSlot:C},R,i]}var qM=b.createContext(void 0);function F0(a){const n=b.useContext(qM);return a||n||"ltr"}var dp="rovingFocusGroup.onEntryFocus",BM={bubbles:!1,cancelable:!0},Ji="RovingFocusGroup",[Jp,Q0,HM]=V0(Ji),[UM,G0]=jn(Ji,[HM]),[VM,FM]=UM(Ji),Y0=b.forwardRef((a,n)=>e.jsx(Jp.Provider,{scope:a.__scopeRovingFocusGroup,children:e.jsx(Jp.Slot,{scope:a.__scopeRovingFocusGroup,children:e.jsx(QM,{...a,ref:n})})}));Y0.displayName=Ji;var QM=b.forwardRef((a,n)=>{const{__scopeRovingFocusGroup:o,orientation:i,loop:l=!1,dir:d,currentTabStopId:m,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:g,onEntryFocus:f,preventScrollOnEntryFocus:y=!1,...x}=a,j=b.useRef(null),C=jt(n,j),R=F0(d),[w,E]=pd({prop:m,defaultProp:h??null,onChange:g,caller:Ji}),[k,D]=b.useState(!1),q=as(f),K=Q0(o),N=b.useRef(!1),[U,M]=b.useState(0);return b.useEffect(()=>{const I=j.current;if(I)return I.addEventListener(dp,q),()=>I.removeEventListener(dp,q)}
vendor: 23,877 bytes, line 558
558,[q]),e.jsx(VM,{scope:o,orientation:i,dir:R,loop:l,currentTabStopId:w,onItemFocus:b.useCallback(I=>E(I),[E]),onItemShiftTab:b.useCallback(()=>D(!0),[]),onFocusableItemAdd:b.useCallback(()=>M(I=>I+1),[]),onFocusableItemRemove:b.useCallback(()=>M(I=>I-1),[]),children:e.jsx(tt.div,{tabIndex:k||U===0?-1:0,"data-orientation":i,...x,ref:C,style:{outline:"none",...a.style},onMouseDown:Ee(a.onMouseDown,()=>{N.current=!0}),onFocus:Ee(a.onFocus,I=>{const Z=!N.current;if(I.target===I.currentTarget&&Z&&!k){const ae=new CustomEvent(dp,BM);if(I.currentTarget.dispatchEvent(ae),!ae.defaultPrevented){const le=K().filter(A=>A.focusable),ie=le.find(A=>A.active),he=le.find(A=>A.id===w),ge=[ie,he,...le].filter(Boolean).map(A=>A.ref.current);W0(ge,y)}}N.current=!1}),onBlur:Ee(a.onBlur,()=>D(!1))})})}),K0="RovingFocusGroupItem",J0=b.forwardRef((a,n)=>{const{__scopeRovingFocusGroup:o,focusable:i=!0,active:l=!1,tabStopId:d,children:m,...h}=a,g=$n(),f=d||g,y=FM(K0,o),x=y.currentTabStopId===f,j=Q0(o),{onFocusableItemAdd:C,onFocusableItemRemove:R,currentTabStopId:w}=y;return b.useEffect(()=>{if(i)return C(),()=>R()},[i,C,R]),e.jsx(Jp.ItemSlot,{scope:o,id:f,focusable:i,active:l,children:e.jsx(tt.span,{tabIndex:x?0:-1,"data-orientation":y.orientation,...h,ref:n,onMouseDown:Ee(a.onMouseDown,E=>{i?y.onItemFocus(f):E.preventDefault()}),onFocus:Ee(a.onFocus,()=>y.onItemFocus(f)),onKeyDown:Ee(a.onKeyDown,E=>{if(E.key==="Tab"&&E.shiftKey){y.onItemShiftTab();return}if(E.target!==E.currentTarget)return;const k=KM(E,y.orientation,y.dir);if(k!==void 0){if(E.metaKey||E.ctrlKey||E.altKey||E.shiftKey)return;E.preventDefault();let q=j().filter(K=>K.focusable).map(K=>K.ref.current);if(k==="last")q.reverse();else if(k==="prev"||k==="next"){k==="prev"&&q.reverse();const K=q.indexOf(E.currentTarget);q=y.loop?JM(q,K+1):q.slice(K+1)}setTimeout(()=>W0(q))}}),children:typeof m=="function"?m({isCurrentTabStop:x,hasTabStop:w!=null}):m})})});J0.displayName=K0;var GM={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function YM(a,n){return n!=="rtl"?a:a==="ArrowLeft"?"ArrowRight":a==="ArrowRight"?"ArrowLeft":a}function KM(a,n,o){const i=YM(a.key,o);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(i))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(i)))return GM[i]}function W0(a,n=!1){const o=document.activeElement;for(const i of a)if(i===o||(i.focus({preventScroll:n}),document.activeElement!==o))return}function JM(a,n){return a.map((o,i)=>a[(n+i)%a.length])}var WM=Y0,$M=J0,Wp=["Enter"," "],XM=["ArrowDown","PageUp","Home"],$0=["ArrowUp","PageDown","End"],ZM=[...XM,...$0],eT={ltr:[...Wp,"ArrowRight"],rtl:[...Wp,"ArrowLeft"]},tT={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Wi="Menu",[qi,aT,sT]=V0(Wi),[lr,X0]=jn(Wi,[sT,ud,G0]),jd=ud(),Z0=G0(),[nT,dr]=lr(Wi),[rT,$i]=lr(Wi),ew=a=>{const{__scopeMenu:n,open:o=!1,children:i,dir:l,onOpenChange:d,modal:m=!0}=a,h=jd(n),[g,f]=b.useState(null),y=b.useRef(!1),x=as(d),j=F0(l);return b.useEffect(()=>{const C=()=>{y.current=!0,document.addEventListener("pointerdown",R,{capture:!0,once:!0}),document.addEventListener("pointermove",R,{capture:!0,once:!0})},R=()=>y.current=!1;return document.addEventListener("keydown",C,{capture:!0}),()=>{document.removeEventListener("keydown",C,{capture:!0}),document.removeEventListener("pointerdown",R,{capture:!0}),document.removeEventListener("pointermove",R,{capture:!0})}},[]),e.jsx(cj,{...h,children:e.jsx(nT,{scope:n,open:o,onOpenChange:x,content:g,onContentChange:f,children:e.jsx(rT,{scope:n,onClose:b.useCallback(()=>x(!1),[x]),isUsingKeyboardRef:y,dir:j,modal:m,children:i})})})};ew.displayName=Wi;var oT="MenuAnchor",Bh=b.forwardRef((a,n)=>{const{__scopeMenu:o,...i}=a,l=jd(o);return e.jsx(lj,{...l,...i,ref:n})});Bh.displayName=oT;var Hh="MenuPortal",[iT,tw]=lr(Hh,{forceMount:void 0}),aw=a=>{const{__scopeMenu:n,forceMount:o,children:i,container:l}=a,d=dr(Hh,n);return e.jsx(iT,{scope:n,forceMount:o,children:e.jsx(os,{present:o||d.open,children:e.jsx(md,{asChild:!0,container:l,children:i})})})};aw.displayName=Hh;var Na="MenuContent",[cT,Uh]=lr(Na),sw=b.forwardRef((a,n)=>{const o=tw(Na,a.__scopeMenu),{forceMount:i=o.forceMount,...l}=a,d=dr(Na,a.__scopeMenu),m=$i(Na,a.__scopeMenu);return e.jsx(qi.Provider,{scope:a.__scopeMenu,children:e.jsx(os,{present:i||d.open,children:e.jsx(qi.Slot,{scope:a.__scopeMenu,children:m.modal?e.jsx(lT,{...l,ref:n}):e.jsx(dT,{...l,ref:n})})})})}),lT=b.forwardRef((a,n)=>{const o=dr(Na,a.__scopeMenu),i=b.useRef(null),l=jt(n,i);return b.useEffect(()=>{const d=i.current;if(d)return p0(d)},[]),e.jsx(Vh,{...a,ref:l,trapFocus:o.open,disableOutsidePointerEvents:o.open,disableOutsideScroll:!0,onFocusOutside:Ee(a.onFocusOutside,d=>d.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>o.onOpenChange(!1)})}),dT=b.forwardRef((a,n)=>{const o=dr(Na,a.__scopeMenu);return e.jsx(Vh,{...a,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>o.onOpenChange(!1)})}),uT=go("MenuContent.ScrollLock"),Vh=b.forwardRef((a,n)=>{const{__scopeMenu:o,loop:i=!1,trapFocus:l,onOpenAutoFocus:d,onCloseAutoFocus:m,disableOutsidePointerEvents:h,onEntryFocus:g,onEscapeKeyDown:f,onPointerDownOutside:y,onFocusOutside:x,onInteractOutside:j,onDismiss:C,disableOutsideScroll:R,...w}=a,E=dr(Na,o),k=$i(Na,o),D=jd(o),q=Z0(o),K=aT(o),[N,U]=b.useState(null),M=b.useRef(null),I=jt(n,M,E.onContentChange),Z=b.useRef(0),ae=b.useRef(""),le=b.useRef(0),ie=b.useRef(null),he=b.useRef("right"),pe=b.useRef(0),ge=R?Dh:b.Fragment,A=R?{as:uT,allowPinchZoom:!0}:void 0,_=ee=>{const de=ae.current+ee,P=K().filter(ce=>!ce.disabled),W=document.activeElement,F=P.find(ce=>ce.ref.current===W)?.textValue,$=P.map(ce=>ce.textValue),O=CT($,de,F),oe=P.find(ce=>ce.textValue===O)?.ref.current;(function ce(we){ae.current=we,window.clearTimeout(Z.current),we!==""&&(Z.current=window.setTimeout(()=>ce(""),1e3))})(de),oe&&setTimeout(()=>oe.focus())};b.useEffect(()=>()=>window.clearTimeout(Z.current),[]),n0();const z=b.useCallback(ee=>he.current===ie.current?.side&&AT(ee,ie.current?.area),[]);return e.jsx(cT,{scope:o,searchRef:ae,onItemEnter:b.useCallback(ee=>{z(ee)&&ee.preventDefault()},[z]),onItemLeave:b.useCallback(ee=>{z(ee)||(M.current?.focus(),U(null))},[z]),onTriggerLeave:b.useCallback(ee=>{z(ee)&&ee.preventDefault()},[z]),pointerGraceTimerRef:le,onPointerGraceIntentChange:b.useCallback(ee=>{ie.current=ee},[]),children:e.jsx(ge,{...A,children:e.jsx(Th,{asChild:!0,trapped:l,onMountAutoFocus:Ee(d,ee=>{ee.preventDefault(),M.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:m,children:e.jsx(od,{asChild:!0,disableOutsidePointerEvents:h,onEscapeKeyDown:f,onPointerDownOutside:y,onFocusOutside:x,onInteractOutside:j,onDismiss:C,children:e.jsx(WM,{asChild:!0,...q,dir:k.dir,orientation:"vertical",loop:i,currentTabStopId:N,onCurrentTabStopIdChange:U,onEntryFocus:Ee(g,ee=>{k.isUsingKeyboardRef.current||ee.preventDefault()}),preventScrollOnEntryFocus:!0,children:e.jsx(dj,{role:"menu","aria-orientation":"vertical","data-state":vw(E.open),"data-radix-menu-content":"",dir:k.dir,...D,...w,ref:I,style:{outline:"none",...w.style},onKeyDown:Ee(w.onKeyDown,ee=>{const P=ee.target.closest("[data-radix-menu-content]")===ee.currentTarget,W=ee.ctrlKey||ee.altKey||ee.metaKey,F=ee.key.length===1;P&&(ee.key==="Tab"&&ee.preventDefault(),!W&&F&&_(ee.key));const $=M.current;if(ee.target!==$||!ZM.includes(ee.key))return;ee.preventDefault();const oe=K().filter(ce=>!ce.disabled).map(ce=>ce.ref.current);$0.includes(ee.key)&&oe.reverse(),jT(oe)}),onBlur:Ee(a.onBlur,ee=>{ee.currentTarget.contains(ee.target)||(window.clearTimeout(Z.current),ae.current="")}),onPointerMove:Ee(a.onPointerMove,Bi(ee=>{const de=ee.target,P=pe.current!==ee.clientX;if(ee.currentTarget.contains(de)&&P){const W=ee.clientX>pe.current?"right":"left";he.current=W,pe.current=ee.clientX}}))})})})})})})});sw.displayName=Na;var mT="MenuGroup",Fh=b.forwardRef((a,n)=>{const{__scopeMenu:o,...i}=a;return e.jsx(tt.div,{role:"group",...i,ref:n})});Fh.displayName=mT;var pT="MenuLabel",nw=b.forwardRef((a,n)=>{const{__scopeMenu:o,...i}=a;return e.jsx(tt.div,{...i,ref:n})});nw.displayName=pT;var Kl="MenuItem",fb="menu.itemSelect",wd=b.forwardRef((a,n)=>{const{disabled:o=!1,onSelect:i,...l}=a,d=b.useRef(null),m=$i(Kl,a.__scopeMenu),h=Uh(Kl,a.__scopeMenu),g=jt(n,d),f=b.useRef(!1),y=()=>{const x=d.current;if(!o&&x){const j=new CustomEvent(fb,{bubbles:!0,cancelable:!0});x.addEventListener(fb,C=>i?.(C),{once:!0}),z1(x,j),j.defaultPrevented?f.current=!1:m.onClose()}};return e.jsx(rw,{...l,ref:g,disabled:o,onClick:Ee(a.onClick,y),onPointerDown:x=>{a.onPointerDown?.(x),f.current=!0},onPointerUp:Ee(a.onPointerUp,x=>{f.current||x.currentTarget?.click()}),onKeyDown:Ee(a.onKeyDown,x=>{const j=h.searchRef.current!=="";o||j&&x.key===" "||Wp.includes(x.key)&&(x.currentTarget.click(),x.preventDefault())})})});wd.displayName=Kl;var rw=b.forwardRef((a,n)=>{const{__scopeMenu:o,disabled:i=!1,textValue:l,...d}=a,m=Uh(Kl,o),h=Z0(o),g=b.useRef(null),f=jt(n,g),[y,x]=b.useState(!1),[j,C]=b.useState("");return b.useEffect(()=>{const R=g.current;R&&C((R.textContent??"").trim())},[d.children]),e.jsx(qi.ItemSlot,{scope:o,disabled:i,textValue:l??j,children:e.jsx($M,{asChild:!0,...h,focusable:!i,children:e.jsx(tt.div,{role:"menuitem","data-highlighted":y?"":void 0,"aria-disabled":i||void 0,"data-disabled":i?"":void 0,...d,ref:f,onPointerMove:Ee(a.onPointerMove,Bi(R=>{i?m.onItemLeave(R):(m.onItemEnter(R),R.defaultPrevented||R.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Ee(a.onPointerLeave,Bi(R=>m.onItemLeave(R))),onFocus:Ee(a.onFocus,()=>x(!0)),onBlur:Ee(a.onBlur,()=>x(!1))})})})}),hT="MenuCheckboxItem",ow=b.forwardRef((a,n)=>{const{checked:o=!1,onCheckedChange:i,...l}=a;return e.jsx(uw,{scope:a.__scopeMenu,checked:o,children:e.jsx(wd,{role:"menuitemcheckbox","aria-checked":Jl(o)?"mixed":o,...l,ref:n,"data-state":Gh(o),onSelect:Ee(l.onSelect,()=>i?.(Jl(o)?!0:!o),{checkForDefaultPrevented:!1})})})});ow.displayName=hT;var iw="MenuRadioGroup",[gT,fT]=lr(iw,{value:void 0,onValueChange:()=>{}}),cw=b.forwardRef((a,n)=>{const{value:o,onValueChange:i,...l}=a,d=as(i);return e.jsx(gT,{scope:a.__scopeMenu,value:o,onValueChange:d,children:e.jsx(Fh,{...l,ref:n})})});cw.displayName=iw;var lw="MenuRadioItem",dw=b.forwardRef((a,n)=>{const{value:o,...i}=a,l=fT(lw,a.__scopeMenu),d=o===l.value;return e.jsx(uw,{scope:a.__scopeMenu,checked:d,children:e.jsx(wd,{role:"menuitemradio","aria-checked":d,...i,ref:n,"data-state":Gh(d),onSelect:Ee(i.onSelect,()=>l.onValueChange?.(o),{checkForDefaultPrevented:!1})})})});dw.displayName=lw;var Qh="MenuItemIndicator",[uw,xT]=lr(Qh,{checked:!1}),mw=b.forwardRef((a,n)=>{const{__scopeMenu:o,forceMount:i,...l}=a,d=xT(Qh,o);return e.jsx(os,{present:i||Jl(d.checked)||d.checked===!0,children:e.jsx(tt.span,{...l,ref:n,"data-state":Gh(d.checked)})})});mw.displayName=Qh;var yT="MenuSeparator",pw=b.forwardRef((a,n)=>{const{__scopeMenu:o,...i}=a;return e.jsx(tt.div,{role:"separator","aria-orientation":"horizontal",...i,ref:n})});pw.displayName=yT;var vT="MenuArrow",hw=b.forwardRef((a,n)=>{const{__scopeMenu:o,...i}=a,l=jd(o);return e.jsx(uj,{...l,...i,ref:n})});hw.displayName=vT;var bT="MenuSub",[s6,gw]=lr(bT),Ai="MenuSubTrigger",fw=b.forwardRef((a,n)=>{const o=dr(Ai,a.__scopeMenu),i=$i(Ai,a.__scopeMenu),l=gw(Ai,a.__scopeMenu),d=Uh(Ai,a.__scopeMenu),m=b.useRef(null),{pointerGraceTimerRef:h,onPointerGraceIntentChange:g}=d,f={__scopeMenu:a.__scopeMenu},y=b.useCallback(()=>{m.current&&window.clearTimeout(m.current),m.current=null},[]);return b.useEffect(()=>y,[y]),b.useEffect(()=>{const x=h.current;return()=>{window.clearTimeout(x),g(null)}},[h,g]),e.jsx(Bh,{asChild:!0,...f,children:e.jsx(rw,{id:l.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":l.contentId,"data-state":vw(o.open),...a,ref:rd(n,l.onTriggerChange),onClick:x=>{a.onClick?.(x),!(a.disabled||x.defaultPrevented)&&(x.currentTarget.focus(),o.open||o.onOpenChange(!0))},onPointerMove:Ee(a.onPointerMove,Bi(x=>{d.onItemEnter(x),!x.defaultPrevented&&!a.disabled&&!o.open&&!m.current&&(d.onPointerGraceIntentChange(null),m.current=window.setTimeout(()=>{o.onOpenChange(!0),y()},100))})),onPointerLeave:Ee(a.onPointerLeave,Bi(x=>{y();const j=o.content?.getBoundingClientRect();if(j){const C=o.content?.dataset.side,R=C==="right",w=R?-5:5,E=j[R?"left":"right"],k=j[R?"right":"left"];d.onPointerGraceIntentChange({area:[{x:x.clientX+w,y:x.clientY},{x:E,y:j.top},{x:k,y:j.top},{x:k,y:j.bottom},{x:E,y:j.bottom}],side:C}),window.clearTimeout(h.current),h.current=window.setTimeout(()=>d.onPointerGraceIntentChange(null),300)}else{if(d.onTriggerLeave(x),x.defaultPrevented)return;d.onPointerGraceIntentChange(null)}})),onKeyDown:Ee(a.onKeyDown,x=>{const j=d.searchRef.current!=="";a.disabled||j&&x.key===" "||eT[i.dir].includes(x.key)&&(o.onOpenChange(!0),o.content?.focus(),x.preventDefault())})})})});fw.displayName=Ai;var xw="MenuSubContent",yw=b.forwardRef((a,n)=>{const o=tw(Na,a.__scopeMenu),{forceMount:i=o.forceMount,...l}=a,d=dr(Na,a.__scopeMenu),m=$i(Na,a.__scopeMenu),h=gw(xw,a.__scopeMenu),g=b.useRef(null),f=jt(n,g);return e.jsx(qi.Provider,{scope:a.__scopeMenu,children:e.jsx(os,{present:i||d.open,children:e.jsx(qi.Slot,{scope:a.__scopeMenu,children:e.jsx(Vh,{id:h.contentId,"aria-labelledby":h.triggerId,...l,ref:f,align:"start",side:m.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:y=>{m.isUsingKeyboardRef.current&&g.current?.focus(),y.preventDefault()},onCloseAutoFocus:y=>y.preventDefault(),onFocusOutside:Ee(a.onFocusOutside,y=>{y.target!==h.trigger&&d.onOpenChange(!1)}),onEscapeKeyDown:Ee(a.onEscapeKeyDown,y=>{m.onClose(),y.preventDefault()}),onKeyDown:Ee(a.onKeyDown,y=>{const x=y.currentTarget.contains(y.target),j=tT[m.dir].includes(y.key);x&&j&&(d.onOpenChange(!1),h.trigger?.focus(),y.preventDefault())})})})})})});yw.displayName=xw;function vw(a){return a?"open":"closed"}function Jl(a){return a==="indeterminate"}function Gh(a){return Jl(a)?"indeterminate":a?"checked":"unchecked"}function jT(a){const n=document.activeElement;for(const o of a)if(o===n||(o.focus(),document.activeElement!==n))return}function wT(a,n){return a.map((o,i)=>a[(n+i)%a.length])}function CT(a,n,o){const l=n.length>1&&Array.from(n).every(f=>f===n[0])?n[0]:n,d=o?a.indexOf(o):-1;let m=wT(a,Math.max(d,0));l.length===1&&(m=m.filter(f=>f!==o));const g=m.find(f=>f.toLowerCase().startsWith(l.toLowerCase()));return g!==o?g:void 0}function ST(a,n){const{x:o,y:i}=a;let l=!1;for(let d=0,m=n.length-1;d<n.length;m=d++){const h=n[d],g=n[m],f=h.x,y=h.y,x=g.x,j=g.y;y>i!=j>i&&o<(x-f)*(i-y)/(j-y)+f&&(l=!l)}return l}function AT(a,n){if(!n)return!1;const o={x:a.clientX,y:a.clientY};return ST(o,n)}function Bi(a){return n=>n.pointerType==="mouse"?a(n):void 0}var RT=ew,ET=Bh,NT=aw,PT=sw,OT=Fh,kT=nw,MT=wd,TT=ow,DT=cw,LT=dw,IT=mw,_T=pw,zT=hw,qT=fw,BT=yw,Cd="DropdownMenu",[HT]=jn(Cd,[X0]),Vt=X0(),[UT,bw]=HT(Cd),jw=a=>{const{__scopeDropdownMenu:n,children:o,dir:i,open:l,defaultOpen:d,onOpenChange:m,modal:h=!0}=a,g=Vt(n),f=b.useRef(null),[y,x]=pd({prop:l,defaultProp:d??!1,onChange:m,caller:Cd});return e.jsx(UT,{scope:n,triggerId:$n(),triggerRef:f,contentId:$n(),open:y,onOpenChange:x,onOpenToggle:b.useCallback(()=>x(j=>!j),[x]),modal:h,children:e.jsx(RT,{...g,open:y,onOpenChange:x,dir:i,modal:h,children:o})})};jw.displayName=Cd;var ww="DropdownMenuTrigger",Cw=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,disabled:i=!1,...l}=a,d=bw(ww,o),m=Vt(o);return e.jsx(ET,{asChild:!0,...m,children:e.jsx(tt.button,{type:"button",id:d.triggerId,"aria-haspopup":"menu","aria-expanded":d.open,"aria-controls":d.open?d.contentId:void 0,"data-state":d.open?"open":"closed","data-disabled":i?"":void 0,disabled:i,...l,ref:rd(n,d.triggerRef),onPointerDown:Ee(a.onPointerDown,h=>{!i&&h.button===0&&h.ctrlKey===!1&&(d.onOpenToggle(),d.open||h.preventDefault())}),onKeyDown:Ee(a.onKeyDown,h=>{i||(["Enter"," "].includes(h.key)&&d.onOpenToggle(),h.key==="ArrowDown"&&d.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(h.key)&&h.preventDefault())})})})});Cw.displayName=ww;var VT="DropdownMenuPortal",Sw=a=>{const{__scopeDropdownMenu:n,...o}=a,i=Vt(n);return e.jsx(NT,{...i,...o})};Sw.displayName=VT;var Aw="DropdownMenuContent",Rw=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=bw(Aw,o),d=Vt(o),m=b.useRef(!1);return e.jsx(PT,{id:l.contentId,"aria-labelledby":l.triggerId,...d,...i,ref:n,onCloseAutoFocus:Ee(a.onCloseAutoFocus,h=>{m.current||l.triggerRef.current?.focus(),m.current=!1,h.preventDefault()}),onInteractOutside:Ee(a.onInteractOutside,h=>{const g=h.detail.originalEvent,f=g.button===0&&g.ctrlKey===!0,y=g.button===2||f;(!l.modal||y)&&(m.current=!0)}),style:{...a.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Rw.displayName=Aw;var FT="DropdownMenuGroup",QT=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(OT,{...l,...i,ref:n})});QT.displayName=FT;var GT="DropdownMenuLabel",YT=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(kT,{...l,...i,ref:n})});YT.displayName=GT;var KT="DropdownMenuItem",Ew=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(MT,{...l,...i,ref:n})});Ew.displayName=KT;var JT="DropdownMenuCheckboxItem",WT=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(TT,{...l,...i,ref:n})});WT.displayName=JT;var $T="DropdownMenuRadioGroup",XT=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(DT,{...l,...i,ref:n})});XT.displayName=$T;var ZT="DropdownMenuRadioItem",e4=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(LT,{...l,...i,ref:n})});e4.displayName=ZT;var t4="DropdownMenuItemIndicator",a4=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(IT,{...l,...i,ref:n})});a4.displayName=t4;var s4="DropdownMenuSeparator",n4=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(_T,{...l,...i,ref:n})});n4.displayName=s4;var r4="DropdownMenuArrow",o4=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(zT,{...l,...i,ref:n})});o4.displayName=r4;var i4="DropdownMenuSubTrigger",c4=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(qT,{...l,...i,ref:n})});c4.displayName=i4;var l4="DropdownMenuSubContent",d4=b.forwardRef((a,n)=>{const{__scopeDropdownMenu:o,...i}=a,l=Vt(o);return e.jsx(BT,{...l,...i,ref:n,style:{...a.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});d4.displayName=l4;var u4=jw,m4=Cw,p4=Sw,h4=Rw,g4=Ew;function f4({...a}){return e.jsx(u4,{"data-loc":"client/src/components/ui/dropdown-menu.tsx:10","data-slot":"dropdown-menu",...a})}function x4({...a}){return e.jsx(m4,{"data-loc":"client/src/components/ui/dropdown-menu.tsx:25","data-slot":"dropdown-menu-trigger",...a})}function y4({className:a,sideOffset:n=4,...o}){return e.jsx(p4,{"data-loc":"client/src/components/ui/dropdown-menu.tsx:38",children:e.jsx(h4,{"data-loc":"client/src/components/ui/dropdown-menu.tsx:39","data-slot":"dropdown-menu-content",sideOffset:n,className:Qe("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",a),...o})})}function v4({className:a,inset:n,variant:o="default",...i}){return e.jsx(g4,{"data-loc":"client/src/components/ui/dropdown-menu.tsx:70","data-slot":"dropdown-menu-item","data-inset":n,"data-variant":o,className:Qe("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...i})}function b4({...a}){return e.jsx(P0,{"data-loc":"client/src/components/ui/sheet.tsx:10","data-slot":"sheet",...a})}function j4({...a}){return e.jsx(O0,{"data-loc":"client/src/components/ui/sheet.tsx:28","data-slot":"sheet-portal",...a})}function w4({className:a,...n}){return e.jsx(k0,{"data-loc":"client/src/components/ui/sheet.tsx:36","data-slot":"sheet-overlay",className:Qe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...n})}function C4({className:a,children:n,side:o="right",...i}){return e.jsxs(j4,{"data-loc":"client/src/components/ui/sheet.tsx:56",children:[e.jsx(w4,{"data-loc":"client/src/components/ui/sheet.tsx:57"}),e.jsxs(M0,{"data-loc":"client/src/components/ui/sheet.tsx:58","data-slot":"sheet-content",className:Qe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",o==="right"&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",o==="left"&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",o==="top"&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",o==="bottom"&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",a),...i,children:[n,e.jsxs(L0,{"data-loc":"client/src/components/ui/sheet.tsx:75",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[e.jsx(La,{"data-loc":"client/src/components/ui/sheet.tsx:76",className:"size-4"}),e.jsx("span",{"data-loc":"client/src/components/ui/sheet.tsx:77",className:"sr-only",children:"Close"})]})]})]})}function S4({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/sheet.tsx:86","data-slot":"sheet-header",className:Qe("flex flex-col gap-1.5 p-4",a),...n})}function A4({className:a,...n}){return e.jsx(T0,{"data-loc":"client/src/components/ui/sheet.tsx:109","data-slot":"sheet-title",className:Qe("text-foreground font-semibold",a),...n})}function R4({className:a,...n}){return e.jsx(D0,{"data-loc":"client/src/components/ui/sheet.tsx:122","data-slot":"sheet-
558description",className:Qe("text-muted-foreground text-sm",a),...n})}function da({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/skeleton.tsx:5","data-slot":"skeleton",className:Qe("bg-accent animate-pulse rounded-md",a),...n})}const up=768;function Nw(){const[a,n]=b.useState(void 0);return b.useEffect(()=>{const o=window.matchMedia(`(max-width: ${up-1}px)`),i=()=>{n(window.innerWidth<up)};return o.addEventListener("change",i),n(window.innerWidth<up),()=>o.removeEventListener("change",i)},[]),!!a}const E4="sidebar_state",N4=3600*24*7,P4="16rem",O4="18rem",k4="3rem",M4="b",Pw=b.createContext(null);function Sd(){const a=b.useContext(Pw);if(!a)throw new Error("useSidebar must be used within a SidebarProvider.");return a}function T4({defaultOpen:a=!0,open:n,onOpenChange:o,className:i,style:l,children:d,...m}){const h=Nw(),[g,f]=b.useState(!1),[y,x]=b.useState(a),j=n??y,C=b.useCallback(k=>{const D=typeof k=="function"?k(j):k;o?o(D):x(D),document.cookie=`${E4}=${D}; path=/; max-age=${N4}`},[o,j]),R=b.useCallback(()=>h?f(k=>!k):C(k=>!k),[h,C,f]);b.useEffect(()=>{const k=D=>{D.key===M4&&(D.metaKey||D.ctrlKey)&&(D.preventDefault(),R())};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[R]);const w=j?"expanded":"collapsed",E=b.useMemo(()=>({state:w,open:j,setOpen:C,isMobile:h,openMobile:g,setOpenMobile:f,toggleSidebar:R}),[w,j,C,h,g,f,R]);return e.jsx(Pw.Provider,{"data-loc":"client/src/components/ui/sidebar.tsx:129",value:E,children:e.jsx(Ch,{"data-loc":"client/src/components/ui/sidebar.tsx:130",delayDuration:0,children:e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:131","data-slot":"sidebar-wrapper",style:{"--sidebar-width":P4,"--sidebar-width-icon":k4,...l},className:Qe("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",i),...m,children:d})})})}function D4({side:a="left",variant:n="sidebar",collapsible:o="offcanvas",disableTransition:i=!1,className:l,children:d,...m}){const{isMobile:h,state:g,openMobile:f,setOpenMobile:y}=Sd();return o==="none"?e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:171","data-slot":"sidebar",className:Qe("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",l),...m,children:d}):h?e.jsx(b4,{"data-loc":"client/src/components/ui/sidebar.tsx:186",open:f,onOpenChange:y,...m,children:e.jsxs(C4,{"data-loc":"client/src/components/ui/sidebar.tsx:187","data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":O4},side:a,children:[e.jsxs(S4,{"data-loc":"client/src/components/ui/sidebar.tsx:199",className:"sr-only",children:[e.jsx(A4,{"data-loc":"client/src/components/ui/sidebar.tsx:200",children:"Sidebar"}),e.jsx(R4,{"data-loc":"client/src/components/ui/sidebar.tsx:201",children:"Displays the mobile sidebar."})]}),e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:203",className:"flex h-full w-full flex-col",children:d})]})}):e.jsxs("div",{"data-loc":"client/src/components/ui/sidebar.tsx:210",className:"group peer text-sidebar-foreground hidden md:block","data-state":g,"data-collapsible":g==="collapsed"?o:"","data-variant":n,"data-side":a,"data-slot":"sidebar",children:[e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:219","data-slot":"sidebar-gap",className:Qe("relative w-(--sidebar-width) bg-transparent",i?"transition-none":"transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",n==="floating"||n==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:233","data-slot":"sidebar-container",className:Qe("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) md:flex",i?"transition-none":"transition-[left,right,width] duration-200 ease-linear",a==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",n==="floating"||n==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",l),...m,children:e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:251","data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:d})})]})}function L4({className:a,onClick:n,...o}){const{toggleSidebar:i}=Sd();return e.jsxs(Sh,{"data-loc":"client/src/components/ui/sidebar.tsx:271","data-sidebar":"trigger","data-slot":"sidebar-tr
558igger",variant:"ghost",size:"icon",className:Qe("size-7",a),onClick:l=>{n?.(l),i()},...o,children:[e.jsx(Uj,{"data-loc":"client/src/components/ui/sidebar.tsx:283"}),e.jsx("span",{"data-loc":"client/src/components/ui/sidebar.tsx:284",className:"sr-only",children:"Toggle Sidebar"})]})}function I4({className:a,...n}){return e.jsx("main",{"data-loc":"client/src/components/ui/sidebar.tsx:316","data-slot":"sidebar-inset",className:Qe("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",a),...n})}function _4({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:344","data-slot":"sidebar-header","data-sidebar":"header",className:Qe("flex flex-col gap-2 p-2",a),...n})}function z4({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:355","data-slot":"sidebar-footer","data-sidebar":"footer",className:Qe("flex flex-col gap-2 p-2",a),...n})}function q4({className:a,...n}){return e.jsx("div",{"data-loc":"client/src/components/ui/sidebar.tsx:380","data-slot":"sidebar-content","data-sidebar":"content",className:Qe("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...n})}function B4({className:a,...n}){return e.jsx("ul",{"data-loc":"client/src/components/ui/sidebar.tsx:463","data-slot":"sidebar-menu","data-sidebar":"menu",className:Qe("flex w-full min-w-0 flex-col gap-1",a),...n})}function H4({className:a,...n}){return e.jsx("li",{"data-loc":"client/src/components/ui/sidebar.tsx:474","data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:Qe("group/menu-item relative",a),...n})}const U4=Dj("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function V4({asChild:a=!1,isActive:n=!1,variant:o="default",size:i="default",tooltip:l,className:d,...m}){const h=a?I1:"button",{isMobile:g,state:f}=Sd(),y=e.jsx(h,{"data-loc":"client/src/components/ui/sidebar.tsx:522","data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":n,className:Qe(U4({variant:o,size:i}),d),...m});return l?(typeof l=="string"&&(l={children:l}),e.jsxs(fO,{"data-loc":"client/src/components/ui/sidebar.tsx:543",children:[e.jsx(xO,{"data-loc":"client/src/components/ui/sidebar.tsx:544",asChild:!0,children:y}),e.jsx(yO,{"data-loc":"client/src/components/ui/sidebar.tsx:545",side:"right",align:"center",hidden:f!=="collapsed"||g,...l})]})):y}function F4(){return e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:5",className:"flex min-h-screen bg-background",children:[e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:7",className:"w-[280px] border-r border-border bg-background p-4 space-y-6",children:[e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:9",className:"flex items-center gap-3 px-2",children:[e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:10",className:"h-8 w-8 rounded-md"}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:11",className:"h-4 w-24"})]}),e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:15",className:"space-y-2 px-2",children:[e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:16",className:"h-10 w-full rounded-lg"}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:17",className:"h-10 w-full rounded-lg"}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:18",className:"h-10 w-full rounded-lg"})]}),e.jsx("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:22",className:"absolute bottom-4 left-4 right-4",children:e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:23",className:"flex items-center gap-3 px-1",children:[e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:24",className:"h-9 w-9 rounded-full"}),e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:25",className:"flex-1 space-y-2",children:[e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:26",className:"h-3 w-20"}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:27",className:"h-2 w-32"})]})]})})]}),e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:34",className:"flex-1 p-4 space-y-4",children:[e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:36",className:"h-12 w-48 rounded-lg"}),e.jsxs("div",{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:37",className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:[e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:38",className:"h-32 rounded-xl"}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:39",className:"h-32 rounded-xl"}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:40",className:"h-32 rounded-xl"})]}),e.jsx(da,{"data-loc":"client/src/components/DashboardLayoutSkeleton.tsx:42",className:"h-64 roun
558ded-xl"})]})]})}const xb=[{icon:Ph,label:"Inbound leads",path:"/admin/leads"},{icon:Kj,label:"CRM Lite",path:"/admin/crm"},{icon:or,label:"Portal setup",path:"/admin/portal"},{icon:BO,label:"View site",path:"/"}],yb="sidebar-width",Q4=280,G4=200,Y4=480;function Yh({children:a}){const[n,o]=b.useState(()=>{const d=localStorage.getItem(yb);return d?parseInt(d,10):Q4}),{loading:i,user:l}=cr();return b.useEffect(()=>{localStorage.setItem(yb,n.toString())},[n]),i?e.jsx(F4,{"data-loc":"client/src/components/DashboardLayout.tsx:58"}):l?e.jsx(T4,{"data-loc":"client/src/components/DashboardLayout.tsx:86",style:{"--sidebar-width":`${n}px`},children:e.jsx(K4,{"data-loc":"client/src/components/DashboardLayout.tsx:93",setSidebarWidth:o,children:a})}):e.jsx("div",{"data-loc":"client/src/components/DashboardLayout.tsx:63",className:"flex items-center justify-center min-h-screen",children:e.jsxs("div",{"data-loc":"client/src/components/DashboardLayout.tsx:64",className:"flex flex-col items-center gap-8 p-8 max-w-md w-full",children:[e.jsxs("div",{"data-loc":"client/src/components/DashboardLayout.tsx:65",className:"flex flex-col items-center gap-6",children:[e.jsx("h1",{"data-loc":"client/src/components/DashboardLayout.tsx:66",className:"text-2xl font-semibold tracking-tight text-center",children:"Sign in to continue"}),e.jsx("p",{"data-loc":"client/src/components/DashboardLayout.tsx:69",className:"text-sm text-muted-foreground text-center max-w-sm",children:"Access to this dashboard requires authentication. Continue to launch the login flow."})]}),e.jsx(Sh,{"data-loc":"client/src/components/DashboardLayout.tsx:73",onClick:()=>Sn(),size:"lg",className:"w-full shadow-lg hover:shadow-xl transition-all",children:"Sign in"})]})})}function K4({children:a,setSidebarWidth:n}){const{user:o,logout:i}=cr(),[l,d]=ir(),{state:m,toggleSidebar:h}=Sd(),g=m==="collapsed",[f,y]=b.useState(!1),x=b.useRef(null),j=xb.find(R=>R.path===l),C=Nw();return b.useEffect(()=>{g&&y(!1)},[g]),b.useEffect(()=>{const R=E=>{if(!f)return;const k=x.current?.getBoundingClientRect().left??0,D=E.clientX-k;D>=G4&&D<=Y4&&n(D)},w=()=>{y(!1)};return f&&(document.addEventListener("mousemove",R),document.addEventListener("mouseup",w),document.body.style.cursor="col-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",w),document.body.style.cursor="",document.body.style.userSelect=""}},[f,n]),e.jsxs(e.Fragment,{children:[e.jsxs("div",{"data-loc":"client/src/components/DashboardLayout.tsx:156",className:"relative",ref:x,children:[e.jsxs(D4,{"data-loc":"client/src/components/DashboardLayout.tsx:157",collapsible:"icon",className:"border-r-0",disableTransition:f,children:[e.jsx(_4,{"data-loc":"client/src/components/DashboardLayout.tsx:162",className:"h-16 justify-center",children:e.jsxs("div",{"data-loc":"client/src/components/DashboardLayout.tsx:163",className:"flex items-center gap-3 px-2 transition-all w-full",children:[e.jsx("button",{"data-loc":"client/src/components/DashboardLayout.tsx:164",onClick:h,className:"h-8 w-8 flex items-center justify-center hover:bg-accent rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring shrink-0","aria-label":"Toggle navigation",children:e.jsx(Uj,{"data-loc":"client/src/components/DashboardLayout.tsx:169",className:"h-4 w-4 text-muted-foreground"})}),g?null:e.jsx("div",{"data-loc":"client/src/components/DashboardLayout.tsx:172",className:"flex items-center gap-2 min-w-0",children:e.jsx("span",{"data-loc":"client/src/components/DashboardLayout.tsx:173",className:"font-semibold tracking-tight truncate",children:"Alma Loyalty"})})]})}),e.jsx(q4,{"data-loc":"client/src/components/DashboardLayout.tsx:181",className:"gap-0",children:e.jsx(B4,{"data-loc":"client/src/components/DashboardLayout.tsx:182",className:"px-2 py-1",children:xb.map(R=>{const w=l===R.path;return e.jsx(H4,{"data-loc":"client/src/components/DashboardLayout.tsx:186",children:e.jsxs(V4,{"data-loc":"client/src/components/DashboardLayout.tsx:187",isActive:w,onClick:()=>d(R.path),tooltip:R.label,className:"h-10 transition-all font-normal",children:[e.jsx(R.icon,{"data-loc":"client/src/components/DashboardLayout.t
558sx:193",className:`h-4 w-4 ${w?"text-primary":""}`}),e.jsx("span",{"data-loc":"client/src/components/DashboardLayout.tsx:196",children:R.label})]})},R.path)})})}),e.jsx(z4,{"data-loc":"client/src/components/DashboardLayout.tsx:204",className:"p-3",children:e.jsxs(f4,{"data-loc":"client/src/components/DashboardLayout.tsx:205",children:[e.jsx(x4,{"data-loc":"client/src/components/DashboardLayout.tsx:206",asChild:!0,children:e.jsxs("button",{"data-loc":"client/src/components/DashboardLayout.tsx:207",className:"flex items-center gap-3 rounded-lg px-1 py-1 hover:bg-accent/50 transition-colors w-full text-left group-data-[collapsible=icon]:justify-center focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[e.jsx(_M,{"data-loc":"client/src/components/DashboardLayout.tsx:208",className:"h-9 w-9 border shrink-0",children:e.jsx(zM,{"data-loc":"client/src/components/DashboardLayout.tsx:209",className:"text-xs font-medium",children:o?.name?.charAt(0).toUpperCase()})}),e.jsxs("div",{"data-loc":"client/src/components/DashboardLayout.tsx:213",className:"flex-1 min-w-0 group-data-[collapsible=icon]:hidden",children:[e.jsx("p",{"data-loc":"client/src/components/DashboardLayout.tsx:214",className:"text-sm font-medium truncate leading-none",children:o?.name||"-"}),e.jsx("p",{"data-loc":"client/src/components/DashboardLayout.tsx:217",className:"text-xs text-muted-foreground truncate mt-1.5",children:o?.email||"-"})]})]})}),e.jsx(y4,{"data-loc":"client/src/components/DashboardLayout.tsx:223",align:"end",className:"w-48",children:e.jsxs(v4,{"data-loc":"client/src/components/DashboardLayout.tsx:224",onClick:i,className:"cursor-pointer text-destructive focus:text-destructive",children:[e.jsx(WO,{"data-loc":"client/src/components/DashboardLayout.tsx:228",className:"mr-2 h-4 w-4"}),e.jsx("span",{"data-loc":"client/src/components/DashboardLayout.tsx:229",children:"Sign out"})]})})]})})]}),e.jsx("div",{"data-loc":"client/src/components/DashboardLayout.tsx:235",className:`absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-primary/20 transition-colors ${g?"hidden":""}`,onMouseDown:()=>{g||y(!0)},style:{zIndex:50}})]}),e.jsxs(I4,{"data-loc":"client/src/components/DashboardLayout.tsx:245",children:[C&&e.jsx("div",{"data-loc":"client/src/components/DashboardLayout.tsx:247",className:"flex border-b h-14 items-center justify-between bg-background/95 px-2 backdrop-blur supports-[backdrop-filter]:backdrop-blur sticky top-0 z-40",children:e.jsxs("div",{"data-loc":"client/src/components/DashboardLayout.tsx:248",className:"flex items-center gap-2",children:[e.jsx(L4,{"data-loc":"client/src/components/DashboardLayout.tsx:249",className:"h-9 w-9 rounded-lg bg-background"}),e.jsx("div",{"data-loc":"client/src/components/DashboardLayout.tsx:250",className:"flex items-center gap-3",children:e.jsx("div",{"data-loc":"client/src/components/DashboardLayout.tsx:251",className:"flex flex-col gap-1",children:e.jsx("span",{"data-loc":"client/src/components/DashboardLayout.tsx:252",className:"tracking-tight text-foreground",children:j?.label??"Menu"})})})]})}),e.jsx("main",{"data-loc":"client/src/components/DashboardLayout.tsx:260",className:"flex-1 p-4",children:a})]})]})}const J4=["new","reviewing","qualified","closed"],W4=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0});function $4(a){return a===null?"â":W4.format(Number(a))}function X4(a){if(!a)return"No scenario captured";try{const n=JSON.parse(a),o=Array.isArray(n.channels)?n.channels.join(", "):"â";return`${n.businessModel??"â"} model · ${o} channels · ${n.monthlyCustomers?.toLocaleString()??"â"} monthly customers · $${n.avgOrder??"â"} AOV · ${n.purchaseFrequency??"â"} orders / customer / month · ${n.grossMargin??"â"}% margin · ${n.activeMemberRate??"â"}% active members · ${n.aovLift??"â"}% AOV test · ${n.frequencyLift??"â"}% frequency test · ${n.retentionProtected??"â"}% retention sensitivity`}catch{return"Scenario saved but unavailable to summarize"}}function Z4(){const{user:a,loading:n,isAuthenticated:o}=cr(),i=Ke.leads.list.useQuery(void 0,{enabled:o&&a?.role==="admin"}),l=Ke.useUtils(),d=Ke.leads.updateStatus.useMutation({onSuccess:()=>
558l.leads.list.invalidate()}),m=Ke.leads.fulfillReport.useMutation({onSuccess:()=>l.leads.list.invalidate()});if(n)return e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:27",className:"admin-state",children:[e.jsx(Pa,{"data-loc":"client/src/pages/AdminLeads.tsx:27",className:"animate-spin",size:25})," Loading secure workspaceâ¦"]});if(!o)return e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:28",className:"admin-state",children:[e.jsx(or,{"data-loc":"client/src/pages/AdminLeads.tsx:28",size:30}),e.jsx("h1",{"data-loc":"client/src/pages/AdminLeads.tsx:28",children:"Alma lead workspace"}),e.jsx("p",{"data-loc":"client/src/pages/AdminLeads.tsx:28",children:"Sign in with the owner account to view inbound requests."}),e.jsx("button",{"data-loc":"client/src/pages/AdminLeads.tsx:28",className:"button button-orange",onClick:()=>Sn(),children:"Sign in securely"})]});if(a?.role!=="admin")return e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:29",className:"admin-state",children:[e.jsx(Eh,{"data-loc":"client/src/pages/AdminLeads.tsx:29",size:30}),e.jsx("h1",{"data-loc":"client/src/pages/AdminLeads.tsx:29",children:"Access restricted"}),e.jsx("p",{"data-loc":"client/src/pages/AdminLeads.tsx:29",children:"This workspace is available to the Alma owner account only."})]});const h=i.data?.filter(f=>f.requestType==="roi")??[],g=i.data?.filter(f=>f.requestType==="journey")??[];return e.jsx(Yh,{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:e.jsxs("section",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"admin-leads",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"admin-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"ALMA LOYALTY / PRIVATE WORKSPACE"}),e.jsx("h1",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Inbound leads"}),e.jsx("p",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Demo requests, quote requests, contact inquiries, ROI models, and customer-journey decision briefs."})]}),e.jsxs("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[i.data?.length??0,e.jsx("small",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:" total"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"qualification-summary",children:[e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"ROI MODELS"}),e.jsx("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:h.length})]}),e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"JOURNEY BRIEFS"}),e.jsx("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:g.length})]}),e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"VERIFIED REPORTS"}),e.jsx("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:h.filter(f=>f.reportVerifiedAt).length})]}),e.jsx("p",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Qualification is a repeatable internal screen based on submitted planning context. Journey briefs preserve the prospectâs selected industry, customer moment, and editable assumptions for review."})]}),i.isLoading?e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"admin-loading",children:[e.jsx(Pa,{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"animate-spin"}),"Loading leadsâ¦"]}):i.isError?e.jsx("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"admin-error",children:"Could not load lead data. Refresh to try again."}):e.jsx("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"lead-table-wrap",children:e.jsxs("table",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"lead-table",children:[e.jsx("thead",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:e.jsxs("tr",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsx("th",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Contact"}),e.jsx("th",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Request"}),e.jsx("th",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Decision context"}),e.jsx("th",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Message"}),e.jsx("th",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Received"}),e.jsx("th",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"Status"})]})}),e.jsx("tbody",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:i.data?.length?
558i.data.map(f=>e.jsxs("tr",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsxs("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[e.jsx("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.name}),e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.company}),e.jsx("a",{"data-loc":"client/src/pages/AdminLeads.tsx:33",href:`mailto:${f.workEmail}`,children:f.workEmail}),f.phone&&e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.phone})]}),e.jsx("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:`request-pill request-${f.requestType}`,children:f.requestType==="roi"?"ROI model":f.requestType==="journey"?"journey brief":f.requestType})}),e.jsx("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.requestType==="roi"?e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"roi-lead-detail",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:`qualification-pill qualification-${f.roiQualification}`,children:f.roiQualification?.replace("_"," ")}),e.jsxs("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[$4(f.roiFiveYearNetReturn)," ",e.jsx("small",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:"5-year net"})]}),e.jsxs("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[f.roiChannel?.replace("_"," ")," / ",f.roiScenario]}),e.jsxs("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:[f.roiCumulativeRoi,"% cumulative ROI"]}),e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.reportVerifiedAt?"REPORT VERIFIED":"AWAITING EMAIL VERIFICATION"}),f.reportVerifiedAt&&(f.status==="qualified"?e.jsxs("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"report-ready",children:[e.jsx(nt,{"data-loc":"client/src/pages/AdminLeads.tsx:33",size:14})," REPORT READY FOR OWNER FULFILLMENT"]}):e.jsx("button",{"data-loc":"client/src/pages/AdminLeads.tsx:33",type:"button",className:"button button-dark report-ready-button",disabled:m.isPending,onClick:()=>m.mutate({id:f.id}),children:"Mark report ready"}))]}):f.requestType==="journey"?e.jsxs("div",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"roi-lead-detail",children:[e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"qualification-pill qualification-review",children:"JOURNEY CONTEXT"}),e.jsx("strong",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.journeyIndustry?.replace("_"," ")||"â"}),e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:f.journeyStage?.replace("_"," ")||"â"}),e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:X4(f.journeyScenario)})]}):e.jsx("span",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"no-roi",children:"â"})}),e.jsx("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",className:"message-cell",children:f.message}),e.jsx("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:new Date(f.createdAt).toLocaleDateString()}),e.jsx("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:e.jsx("select",{"data-loc":"client/src/pages/AdminLeads.tsx:33",value:f.status,"aria-label":`Status for ${f.name}`,disabled:d.isPending||m.isPending,onChange:y=>d.mutate({id:f.id,status:y.target.value}),children:J4.map(y=>e.jsx("option",{"data-loc":"client/src/pages/AdminLeads.tsx:33",value:y,children:y},y))})})]},f.id)):e.jsx("tr",{"data-loc":"client/src/pages/AdminLeads.tsx:33",children:e.jsx("td",{"data-loc":"client/src/pages/AdminLeads.tsx:33",colSpan:6,className:"no-leads",children:"No leads yet. New demo, quote, contact, ROI, and customer-journey requests will appear here."})})})]})})]})})}function e5(){return e.jsx(De,{"data-loc":"client/src/pages/QuoteRequest.tsx:5",children:e.jsxs("main",{"data-loc":"client/src/pages/QuoteRequest.tsx:5",children:[e.jsx(Ve,{"data-loc":"client/src/pages/QuoteRequest.tsx:6",eyebrow:"Get a quote",title:e.jsxs(e.Fragment,{children:["Tell us enough to build a ",e.jsx("em",{"data-loc":"client/src/pages/QuoteRequest.tsx:6",children:"useful scope."})]}),copy:"A loyalty quote should match your customer opportunity, integration landscape, and operating ambition. Start with the context that makes the pricing conversation relevant."}),e.jsx("section",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",className:"contact-section",children:e.jsxs("div",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",className:"site-container contact-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:[e.jsx(re,{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:"Scope before price"}),e.jsx("h2",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:"A practical proposal starts with the work the program must do."}),e.jsx("p",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:"Share your goals, customer footprint, and where loyalty needs to show up. We will respond with the questions that shape a transparent recommendation."}),e.jsxs("div",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",className:"expect-list",children:[e.jsxs("p",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:[e.jsx("span",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:"01"})," Commercial and retention objective"]}),e.jsxs("p",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:[e.jsx("span",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:"02"})," Channels and systems in scope"]}),e.jsxs("p",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:[e.jsx("span",{"data-loc":"client/src/pages/QuoteRequest.tsx:7",children:"03"})," A recommended engagement path"]})]})]}),e.jsx(zh,{"data-loc":"client/src/pages/QuoteRequest.tsx:7",mode:"quote"})]})})]})})}function t5(){return e.jsx(De,{"data-loc":"client/src/pages/ResourceDetail.tsx:6",children:e.jsx("main",{"data-loc":"client/src/pages/ResourceDetail.tsx:6",children:e.jsx("article",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"resource-detail",children:e.jsxs("div",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"site-container resource-detail-inner",children:[e.jsxs(V,{"data-loc":"client/src/pages/ResourceDetail.tsx:7",href:"/resources",className:"back-link",children:[e.jsx(Ts,{"data-loc":"client/src/pages/ResourceDetail.tsx:7",size:15})," Back to Resources"]}),e.jsx(re,{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Field guide / loyalty ROI"}),e.jsx("h1",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Start with the return: a no-nonsense guide to loyalty program ROI."}),e.jsx("p",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"resource-deck",children:"A loyalty program becomes easier to fund, implement, and improve when the team agrees on what return would make the effort worth it."}),e.jsx("div",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"resource-rule"}),e.jsxs("div",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"article-grid",children:[e.jsxs("aside",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:[e.jsx("span",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"IN THIS GUIDE"}),e.jsx("a",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",href:"#baseline",children:"Set the baseline"}),e.jsx("a",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",href:"#lift",children:"Model the lift"}),e.jsx("a",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",href:"#cost",children:"Account for cost"}),e.jsx("a",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",href:"#evidence",children:"Define evidence"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"article-body",children:[e.jsxs("section",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",id:"baseline",children:[e.jsx("span",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"01"}),e.jsx("h2",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Set the baseline before you set the ambition."}),e.jsx("p",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Start with a clearly bounded customer group and their current purchase behavior. Estimate active customers, annual visit frequency, average order value, and contribution margin in a way finance can trace back to its source."})]}),e.jsxs("section",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",id:"lift",children:[e.jsx("span",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"02"}),e.jsx("h2",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Model the change you are asking for."}),e.jsx("p",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"A loyalty initiative may affect frequency, basket, activation, referral, or retention. Make the proposed behavior explicit and model a range of outcomes instead of treating a single percentage as fact."})]}),e.jsxs("section",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",id:"cost",children:[e.jsx("span",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"03"}),e.jsx("h2",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Include the costs that make the model real."}),e.jsx("p",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Rewards, technology, implementation, data work, and the time needed to operate the program all belong in the decision. A useful model makes these tradeoffs visible rather than hiding them in a headline ROI figure."})]}),e.jsxs("section",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",id:"evidence",children:[e.jsx("span",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"04"}),e.jsx("h2",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Agree on what evidence would change the decision."}),e.jsx("p",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Before launch, decide how the team will assess progress: which cohort matters, how results are compared, and what learning should alter the program. That turns reporting into a management tool."})]}),e.jsxs("div",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",className:"article-action",children:[e.jsx(Ea,{"data-loc":"client/src/pages/ResourceDetail.tsx:7",size:18}),e.jsxs("div",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:[e.jsx("strong",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Ready to put the framework to work?"}),e.jsx("p",{"data-loc":"client/src/pages/ResourceDetail.tsx:7",children:"Start with the calculator, then take the model into a scoped conversation."})]}),e.jsxs(V,{"data-loc":"client/src/pages/ResourceDetail.tsx:7",href:"/roi-calculator",className:"button button-dark",children:["Open calculator ",e.jsx(Y,{"data-loc":"client/src/pages/ResourceDetail.tsx:7",size:15})]})]})]})]})]})})})})}const a5=[{slug:"loyalty-engine",icon:wn,number:"01",title:"Loyalty Engine",copy:"Configure earning, redemption, status, and event rules around the customer actions your business needs to grow."},{slug:"lifecycle-campaigns",icon:Qj,number:"02",title:"Lifecycle Campaigns",copy:"Coordinate offers and messages around moments that matterâfrom onboarding and reactivation to repeat purchase."},{slug:"rewards-wallet",icon:wo,number:"03",title:"Rewards & Wallet",copy:"Shape a flexible reward mix across points, offers, gift cards, cashback, couponing, and member-ready wallet experiences."},{slug:"member-growth",icon:or,number:"04",title:"Member Growth",copy:"Use referrals, advocacy rewards, and action-based incentives to make acquisition part of the programânot a separate campaign."},{slug:"data-insight",icon:rr,number:"05",title:"Data & Insight",copy:"Turn member activity into customer intelligence, operating signals, and decisions that your team can act on."},{slug:"program-console",icon:ak,number:"06",title:"Program Console",copy:"Give program teams a practical control surface for monitoring performance, configuring campaigns, and managing the next move."},{slug:"integration-architecture",icon:Hj,number:"07",title:"Integration Architecture",copy:"Connect loyalty with the commerce, point-of-sale, CRM, messaging, mobile, and data systems that already run the business."}],s5=[{label:"Foundation",title:"Launch the loyalty layer",copy:"Programme design, core mechanics, reward strategy, member experience, and a considered first release."},{label:"Activation",title:"Turn the system into a growth engine",copy:"Lifecycle c
558ommunications, referral motion, campaign testing, and customer journeys that reward the right action."},{label:"Intelligence",title:"Operate on evidence",copy:"Member signals, program analytics, performance reviews, and an increasingly precise view of where loyalty is creating value."}];function n5(){return e.jsx(De,{"data-loc":"client/src/pages/Platform.tsx:24",children:e.jsxs("main",{"data-loc":"client/src/pages/Platform.tsx:25",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Platform.tsx:26",eyebrow:"The Alma Loyalty platform",title:e.jsxs(e.Fragment,{children:["One loyalty layer.",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:28"}),e.jsx("em",{"data-loc":"client/src/pages/Platform.tsx:28",children:"Seven ways to create value."})]}),copy:"Alma brings the loyalty technology, operating design, and commercial discipline together so your programme can influence behaviour across the full customer relationship.",action:e.jsxs(V,{"data-loc":"client/src/pages/Platform.tsx:30",href:"/demo-request",className:"button button-orange",children:["Explore the platform ",e.jsx(Y,{"data-loc":"client/src/pages/Platform.tsx:30",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Platform.tsx:33",className:"platform-intro",children:e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:34",className:"site-container platform-intro-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:35",children:[e.jsx(re,{"data-loc":"client/src/pages/Platform.tsx:35",children:"Built for the whole relationship"}),e.jsxs("h2",{"data-loc":"client/src/pages/Platform.tsx:35",children:["Loyalty is not a feature.",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:35"}),e.jsx("em",{"data-loc":"client/src/pages/Platform.tsx:35",children:"It is the incentive layer."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:36",children:[e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:36",children:"When commerce, data, campaign, and reward systems are working independently, the customer experience has to do the work of connecting them. Alma makes loyalty the layer that coordinates the value exchange."}),e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:36",children:"Every capability is selected and configured against a specific revenue case, not added because it looks impressive in a feature list."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Platform.tsx:40",className:"platform-capabilities",children:e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:41",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:42",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:42",children:[e.jsx(re,{"data-loc":"client/src/pages/Platform.tsx:42",children:"Capability system"}),e.jsxs("h2",{"data-loc":"client/src/pages/Platform.tsx:42",children:["Configure the pieces.",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:42"}),e.jsx("em",{"data-loc":"client/src/pages/Platform.tsx:42",children:"Connect the outcome."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:42",children:"Alma brings these layers into one delivery model. The final configuration is tailored to your audience, commercial objectives, operating team, and current stack."})]}),e.jsx("div",{"data-loc":"client/src/pages/Platform.tsx:43",className:"platform-capability-grid",children:a5.map(a=>{const n=a.icon;return e.jsx(V,{"data-loc":"client/src/pages/Platform.tsx:44",href:`/platform/${a.slug}`,className:"platform-capability-link",children:e.jsxs("article",{"data-loc":"client/src/pages/Platform.tsx:44",className:"platform-capability",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:44",className:"platform-capability-top",children:[e.jsx("span",{"data-loc":"client/src/pages/Platform.tsx:44",children:a.number}),e.jsx(n,{"data-loc":"client/src/pages/Platform.tsx:44",size:21})]}),e.jsx("h3",{"data-loc":"client/src/pages/Platform.tsx:44",children:a.title}),e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:44",children:a.copy}),e.jsxs("span",{"data-loc":"client/src/pages/Platform.tsx:44",className:"platform-capability-more",children:["Explore capability ",e.jsx(Y,{"data-loc":"client/src/pages/Platform.tsx:44",size:13})]})]})},a.title)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/Platform.tsx:49",className:"platform-system-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:50",className:"site-container platform-system-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:51",className:"platform-system-map","aria-label":"Alma platform relationship map",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:52",className:"platform-map-core",children:[e.jsx("span",{"data-loc":"client/src/pages/Platform.tsx:52",children:"ALMA"}),e.jsx("strong",{"data-loc":"client/src/pages/Platform.tsx:52",children:"LOYALTY"}),e.jsx("small",{"data-loc":"client/src/pages/Platform.tsx:52",children:"PLATFORM"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:53",className:"platform-map-node platform-map-node-a",children:["LOYALTY",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:53"}),"ENGINE"]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:53",className:"platform-map-node platform-map-node-b",children:["MEMBER",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:53"}),"GROWTH"]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:53",className:"platform-map-node platform-map-node-c",children:["REWARDS &",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:53"}),"WALLET"]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:53",className:"platform-map-node platform-map-node-d",children:["LIFECYCLE",e.
558jsx("br",{"data-loc":"client/src/pages/Platform.tsx:53"}),"CAMPAIGNS"]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:53",className:"platform-map-node platform-map-node-e",children:["DATA &",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:53"}),"INSIGHT"]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:53",className:"platform-map-node platform-map-node-f",children:["PROGRAM",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:53"}),"CONSOLE"]}),e.jsx("i",{"data-loc":"client/src/pages/Platform.tsx:54",className:"platform-map-line platform-line-a"}),e.jsx("i",{"data-loc":"client/src/pages/Platform.tsx:54",className:"platform-map-line platform-line-b"}),e.jsx("i",{"data-loc":"client/src/pages/Platform.tsx:54",className:"platform-map-line platform-line-c"}),e.jsx("i",{"data-loc":"client/src/pages/Platform.tsx:54",className:"platform-map-line platform-line-d"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:56",children:[e.jsx(re,{"data-loc":"client/src/pages/Platform.tsx:56",children:"Configurable, not generic"}),e.jsxs("h2",{"data-loc":"client/src/pages/Platform.tsx:56",children:["A shared engine with a programme that still feels like ",e.jsx("em",{"data-loc":"client/src/pages/Platform.tsx:56",children:"your own."})]}),e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:56",children:"Use the capabilities that serve the business case today, then add depth as the programme earns the right to grow. Alma designs the operating model around the decisions your team needs to makeânot an inflexible prebuilt programme."}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:56",className:"platform-check-list",children:[e.jsx("span",{"data-loc":"client/src/pages/Platform.tsx:56",children:"Event-driven earning and reward logic"}),e.jsx("span",{"data-loc":"client/src/pages/Platform.tsx:56",children:"Member-first digital experiences"}),e.jsx("span",{"data-loc":"client/src/pages/Platform.tsx:56",children:"Practical controls for programme teams"})]}),e.jsxs(V,{"data-loc":"client/src/pages/Platform.tsx:56",href:"/get-a-quote",className:"button button-light",children:["Scope your platform ",e.jsx(Y,{"data-loc":"client/src/pages/Platform.tsx:56",size:16})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Platform.tsx:60",className:"platform-delivery-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:61",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/Platform.tsx:61",children:"Alma delivery model"}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:61",className:"platform-delivery-heading",children:[e.jsxs("h2",{"data-loc":"client/src/pages/Platform.tsx:61",children:["Technology only creates value",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:61"}),"when it is ",e.jsx("em",{"data-loc":"client/src/pages/Platform.tsx:61",children:"operated with intent."})]}),e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:61",children:"Alma pairs platform capability with strategic programme design, activation planning, and a clear measurement model."})]}),e.jsx("div",{"data-loc":"client/src/pages/Platform.tsx:61",className:"platform-delivery-grid",children:s5.map((a,n)=>e.jsxs("article",{"data-loc":"client/src/pages/Platform.tsx:61",children:[e.jsxs("span",{"data-loc":"client/src/pages/Platform.tsx:61",children:[String(n+1).padStart(2,"0")," / ",a.label]}),e.jsx("h3",{"data-loc":"client/src/pages/Platform.tsx:61",children:a.title}),e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:61",children:a.copy})]},a.label))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Platform.tsx:64",className:"platform-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:64",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:64",children:[e.jsx(re,{"data-loc":"client/src/pages/Platform.tsx:64",children:"Ready to map the opportunity?"}),e.jsxs("h2",{"data-loc":"client/src/pages/Platform.tsx:64",children:["Start with the revenue case.",e.jsx("br",{"data-loc":"client/src/pages/Platform.tsx:64"}),e.jsx("em",{"data-loc":"client/src/pages/Platform.tsx:64",children:"The
558n configure the platform."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:64",children:[e.jsx("p",{"data-loc":"client/src/pages/Platform.tsx:64",children:"Use the calculator to identify the upside, or speak with Alma to map the product layers that will matter most in your business."}),e.jsxs("div",{"data-loc":"client/src/pages/Platform.tsx:64",className:"platform-cta-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/Platform.tsx:64",href:"/roi-calculator",className:"button button-orange",children:["Model your ROI ",e.jsx(Y,{"data-loc":"client/src/pages/Platform.tsx:64",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/Platform.tsx:64",href:"/demo-request",className:"text-link text-link-strong",children:["Book a strategic demo ",e.jsx(Y,{"data-loc":"client/src/pages/Platform.tsx:64",size:15})]})]})]})]})})]})})}const vb={"loyalty-engine":{eyebrow:"Alma capability / Loyalty engine",title:e.jsxs(e.Fragment,{children:["Make every incentive",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:8"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:8",children:"do a specific job."})]}),copy:"Configure the earning, redemption, status, and event rules that turn a loyalty programme from a promise into a repeatable operating system.",outcome:"The programme becomes a practical way to influence action, reward value, and keep the next customer decision visible.",modules:["Earning logic across spend, visits, actions, and milestones","Reward, redemption, and expiry rules that fit the commercial model","Tier and status structures designed around ongoing customer value"],journey:["Translate customer behaviour into program rules","Connect incentives to the moments that matter","Track the actions that create repeat value"]},"lifecycle-campaigns":{eyebrow:"Alma capability / Lifecycle campaigns",title:e.jsxs(e.Fragment,{children:["Reach the member with",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:16"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:16",children:"a reason to act now."})]}),copy:"Bring campaigns, messages, and loyalty triggers together around the moments that shape a customer relationshipâfrom onboarding to reactivation.",outcome:"Your team can coordinate offers around actual behaviour rather than sending the same communication to every customer.",modules:["Lifecycle journeys for onboarding, lapse prevention, and return visits","Targeted member offers tied to loyalty status and actions","Channel-aware campaign planning for the systems you use today"],journey:["Identify the lifecycle moment","Select the right incentive and message","Learn from the member response"]},"rewards-wallet":{eyebrow:"Alma capability / Rewards & wallet",title:e.jsxs(e.Fragment,{children:["Give customers value",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:24"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:24",children:"they can actually use."})]}),copy:"Shape a reward ecosystem that feels worthwhile to members while keeping costs, fulfilment, and programme economics in view.",outcome:"The reward proposition supports a clear value exchange: customers see a reason to engage, and the business sees what it is getting in return.",modules:["Points, offers, couponing, gift cards, and cashback options","Reward visibility that makes progress and value easy to understand","Member-ready wallet experiences that support everyday use"],journey:["Set the value proposition","Give members a clear path to redemption","Balance appeal with the programme economics"]},"member-growth":{eyebrow:"Alma capability / Member growth",title:e.jsxs(e.Fragment,{children:["Turn your best customers",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:32"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:32",children:"into an acquisition channel."})]}),copy:"Use referral mechanics and action-based rewards to make advocacy, reviews, and member-driven growth part of the loyalty programme.",outcome:"Acquisition becomes more connected to the people who already understand the brand and have a reason to recommend it.",modules:["Referral journeys with reward logic for the advocate and new member","Incentives for reviews, profile completion, and high-value actions","Clear tracking of member-led growth and activation"],journey:["Invite the advocate to act","Reward the action that creates new value","Measure which member-growth mechanics are working"]},"data-insight":{eyebrow:"Alma capability / Data & insight",title:e.jsxs(e.Fragment,{children:["Move from programme data",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:40"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:40",children:"to the next decision."})]}),copy:"Bring member activity, campaign response, and programme performance into an operating view that helps teams decide what to do next.",outcome:"The programme is measured as a commercial system, with attention on active member behaviour and the evidence behind each decision.",modules:["Member and campaign signals that clarify what is happening","Performance views aligned to business, programme, and audience questions","Analytics-ready data to support deeper internal measurement"],journey:["Establish the baseline","Read the signal from member activity","Use evidence to improve the next programme decision"]},"program-console":{eyebrow:"Alma capability / Program console",title:e.jsxs(e.Fragment,{children:["Give programme teams",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:48"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:48",children:"control without complexity."})]}),copy:"Create a practical control surface for the people operating loyalty so campaign, reward, member, and programme decisions remain visible and manageable.",outcome:"Teams can focus on running a better programme instead of stitching together scattered reports, rules, and operational workarounds.",modules:["Programme configuration and campaign controls","Member, reward, and performance visibility for operating teams","Structured views that support routine monitoring and review"],journey:["See what the programme is doing","Make a controlled change","Monitor the result and keep improving"]},"integration-architecture":{eyebrow:"Alma capability / Integration architecture",title:e.jsxs(e.Fragment,{children:["Make loyalty w
558ork with",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:56"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:56",children:"the systems you already run."})]}),copy:"Plan the connection between the loyalty layer and the commerce, point-of-sale, CRM, messaging, mobile, and data systems that create the customer experience.",outcome:"Loyalty can respond to real customer activity while your current operating systems remain part of the delivery model.",modules:["Integration planning around commerce, in-store, CRM, mobile, and messaging flows","Event and data requirements mapped to the programme strategy","A phased delivery approach that prioritises the high-value connections first"],journey:["Map the source systems and customer events","Define the loyalty decision each connection supports","Launch a connected programme without unnecessary disruption"]}};function r5(){const[,a]=Cn("/platform/:capability"),n=a?.capability,o=vb[n]??vb["loyalty-engine"];return e.jsx(De,{"data-loc":"client/src/pages/PlatformCapability.tsx:69",children:e.jsxs("main",{"data-loc":"client/src/pages/PlatformCapability.tsx:69",children:[e.jsx(Ve,{"data-loc":"client/src/pages/PlatformCapability.tsx:70",eyebrow:o.eyebrow,title:o.title,copy:o.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/PlatformCapability.tsx:70",href:"/demo-request",className:"button button-orange",children:["Discuss this capability ",e.jsx(Y,{"data-loc":"client/src/pages/PlatformCapability.tsx:70",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",className:"mechanics-section",children:e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:[e.jsx(re,{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:"What this layer makes possible"}),e.jsxs("h2",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:["Configured for the",e.jsx("br",{"data-loc":"client/src/pages/PlatformCapability.tsx:71"}),e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:"behaviour you need."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:o.outcome})]}),e.jsx("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",className:"mechanics-grid",children:o.modules.map((i,l)=>{const d=[Ki,Hj,rr][l];return e.jsxs("article",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",className:"mechanic-card",children:[e.jsx("span",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",className:"mechanic-icon",children:e.jsx(d,{"data-loc":"client/src/pages/PlatformCapability.tsx:71",size:23})}),e.jsx("h3",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:["Configure","Connect","Measure"][l]}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:71",children:i})]},i)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",className:"dark-feature",children:e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",className:"site-container dark-feature-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:[e.jsx(re,{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:"How Alma puts it to work"}),e.jsxs("h2",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:["Make the capability part of a coherent ",e.jsx("em",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:"operating model."})]}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:"Alma scopes the technology layer around the customer moments, incentives, and commercial outcomes that matter to your business. The goal is an implementation your team can run and improveânot a feature that sits unused."}),e.jsxs(V,{"data-loc":"client/src/pages/PlatformCapability.tsx:72",href:"/roi-calculator",className:"button button-light",children:["Model the opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/PlatformCapability.tsx:72",size:16})]})]}),e.jsx("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",className:"decision-stack",children:o.journey.map((i,l)=>e.jsxs("article",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:[e.jsxs("span",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:["0",l+1]}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:72",children:i}),e.jsx(Y,{"data-loc":"client/src/pages/PlatformCapability.tsx:72",size:16})]},i))})]})}),e.jsx("section",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",className:"process-section",children:e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Start with the whole system"}),e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",className:"process-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:[e.jsx("span",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"01"}),e.jsx("h3",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Map the business case"}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Use customer behaviour, active-member economics, and programme cost to identify the work worth doing first."})]}),e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:[e.jsx("span",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"02"}),e.jsx("h3",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Choose the right layers"}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Bring in the capabilities that serve the outcome now, with a clear path to deepen the programme later."})]}),e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:[e.jsx("span",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"03"}),e.jsx("h3",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Operate with evidence"}),e.jsx("p",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",children:"Review performance, learn from member response, and keep improving the system with purpose."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/PlatformCapability.tsx:73",className:"process-footer",children:[e.jsxs(V,{"data-loc":"client/src/pages/PlatformCapability.tsx:73",href:"/platform",className:"text-link text-link-strong",children:[e.jsx(Ts,{"data-loc":"client/src/pages/PlatformCapability.tsx:73",size:15})," View all platform capabilities"]}),e.jsxs(V,{"data-loc":"client/src/pages/PlatformCapability.tsx:73",href:"/demo-request",className:"text-link text-link-strong",children:["Book a strategic demo ",e.jsx(Y,{"data-loc":"client/src/pages/PlatformCapability.tsx:73",size:15})]})]})]})})]})})}const bb=[{label:"Receipt",detail:"Customer or trade receipt submitted through the agreed intake path.",signal:"Store, product, date, claimant"},{label:"Invoice",detail:"Business or distributor invoice contributes the agreed purchase proof.",signal:"Account, SKU, invoice, channel"}
558,{label:"POS",detail:"Approved store or point-of-sale signal confirms the qualifying moment.",signal:"Member, location, transaction"},{label:"Ecommerce",detail:"An owned digital order or approved commerce event provides the source record.",signal:"Customer, order, product, event"},{label:"Partner",detail:"An authorized retail, distributor, or partner feed supports the eligibility decision.",signal:"Partner, account, source, period"}];function jb(a,n){let o=document.querySelector(`meta[name="${a}"]`);o||(o=document.createElement("meta"),o.name=a,document.head.appendChild(o)),o.content=n}function o5(){const[a,n]=b.useState(0),o=bb[a];return b.useEffect(()=>{document.title="Alma Loyalty Products | Complete Loyalty Operating System",jb("description","Explore Almaâs configurable loyalty operating system: member experience, incentive rules, purchase verification, integrations, measurement, financial controls, and services."),jb("keywords","loyalty platform, incentive orchestration, receipt verification, loyalty integrations, loyalty financial controls")},[]),e.jsx(De,{"data-loc":"client/src/pages/Products.tsx:22",children:e.jsxs("main",{"data-loc":"client/src/pages/Products.tsx:22",className:"products-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Products.tsx:23",eyebrow:"ALMA PRODUCT SYSTEM",title:e.jsxs(e.Fragment,{children:["The loyalty system",e.jsx("br",{"data-loc":"client/src/pages/Products.tsx:23"}),e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:23",children:"that has to earn its place."})]}),copy:"A feature stack is not a commercial system. Alma connects loyalty operations, incentives, evidence, integrations, member experience, financial controls, and delivery services to the behaviorâand contributionâyou need to change.",action:e.jsxs(V,{"data-loc":"client/src/pages/Products.tsx:23",href:"/audiences",className:"button button-orange",children:["Find your business path ",e.jsx(Y,{"data-loc":"client/src/pages/Products.tsx:23",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Products.tsx:24",className:"products-intro",children:e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:24",className:"site-container products-intro-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:24",children:[e.jsx(re,{"data-loc":"client/src/pages/Products.tsx:24",children:"PRODUCTS, SERVICES, FINANCIAL, TECHNICAL"}),e.jsxs("h2",{"data-loc":"client/src/pages/Products.tsx:24",children:["No feature gets",e.jsx("br",{"data-loc":"client/src/pages/Products.tsx:24"}),e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:24",children:"a free pass."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:24",children:[e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:24",children:"Alma is not a generic feature package. The system is composed around the customer behavior, channel evidence, operating team, financial case, and technical path your business can actually support."}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:24",className:"products-repeat-line",children:"If a layer cannot change action, prove eligibility, reduce operating risk, or make economics visible, it does not belong in the scope."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Products.tsx:25",className:"products-layer-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:25",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:25",className:"products-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:25",children:[e.jsx(re,{"data-loc":"client/src/pages/Products.tsx:25",children:"THE COMPLETE SYSTEM"}),e.jsxs("h2",{"data-loc":"client/src/pages/Products.tsx:25",children:["Every loyalty layer,",e.jsx("br",{"data-loc":"client/src/pages/Products.tsx:25"}),e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:25",children:"with a reason to exist."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:25",children:"Explore the eight configurable parts of the Alma operating system. Each product page explains what the layer does, what it requires, and which decision path it supports."})]}),e.jsx("div",{"data-loc":"client/src/pages/Products.tsx:25",className:"products-layer-grid",children:Ql.map(i=>{const l=i.icon;return e.jsxs(V,{"data-loc":"client/src/pages/Products.tsx:25",href:`/products/${i.slug}
558`,className:"product-layer-card",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:25",children:i.number}),e.jsx(l,{"data-loc":"client/src/pages/Products.tsx:25",size:21}),e.jsxs("h3",{"data-loc":"client/src/pages/Products.tsx:25",children:[i.title,e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:25",children:i.emphasis})]}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:25",children:i.summary}),e.jsxs("b",{"data-loc":"client/src/pages/Products.tsx:25",children:["Explore product ",e.jsx(Y,{"data-loc":"client/src/pages/Products.tsx:25",size:14})]})]},i.slug)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-evidence",children:e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"site-container products-evidence-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-evidence-copy",children:[e.jsx(re,{"data-loc":"client/src/pages/Products.tsx:26",children:"VERIFIED PURCHASE SYSTEM"}),e.jsxs("h2",{"data-loc":"client/src/pages/Products.tsx:26",children:["Do not reward the action",e.jsx("br",{"data-loc":"client/src/pages/Products.tsx:26"}),e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:26",children:"you cannot responsibly prove."})]}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:26",children:"Receipt, invoice, POS, ecommerce, and authorized partner evidence can be configured into an eligibility path. The specific sources, product rules, privacy, fraud controls, and exception handling are scoped before launchâbecause paying for unproven behavior is not loyalty strategy."}),e.jsx("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-source-tabs",role:"tablist","aria-label":"Evidence sources",children:bb.map((i,l)=>e.jsx("button",{"data-loc":"client/src/pages/Products.tsx:26",type:"button",role:"tab","aria-selected":a===l,onClick:()=>n(l),children:i.label},i.label))})]}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-evidence-console","aria-live":"polite",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-console-top",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:26",children:"ALMA / EVIDENCE CONTROL"}),e.jsx(Ba,{"data-loc":"client/src/pages/Products.tsx:26",size:18})]}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-evidence-flow",children:[e.jsxs("article",{"data-loc":"client/src/pages/Products.tsx:26",className:"source",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:26",children:"01 / SOURCE"}),e.jsxs("h3",{"data-loc":"client/src/pages/Products.tsx:26",children:[o.label," evidence"]}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:26",children:o.detail})]}),e.jsx("i",{"data-loc":"client/src/pages/Products.tsx:26"}),e.jsxs("article",{"data-loc":"client/src/pages/Products.tsx:26",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:26",children:"02 / VALIDATE"}),e.jsx("h3",{"data-loc":"client/src/pages/Products.tsx:26",children:"Eligibility controls"}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:26",children:"Check the configured product, channel, date, claimant, limits, and duplicate or review conditions."})]}),e.jsx("i",{"data-loc":"client/src/pages/Products.tsx:26"}),e.jsxs("article",{"data-loc":"client/src/pages/Products.tsx:26",className:"value",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:26",children:"03 / ISSUE"}),e.jsx("h3",{"data-loc":"client/src/pages/Products.tsx:26",children:"Approved member value"}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:26",children:"Only an eligible action can contribute to the configured points, access, progress, or reward decision."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:26",className:"products-evidence-signal",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:26",children:"DECISION SIGNAL"}),e.jsx("b",{"data-loc":"client/src/pages/Products.tsx:26",children:o.signal})]}),e.jsx("small",{"data-loc":"client/src/pages/Products.tsx:26",children:"Illustrative system path. Evidence sources and approvals are configured for the actual programme; this is not a claim of pre-connected data or automatic approval."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Products.tsx:27",className:"products-service-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:27",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:27",className:"products-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:27",children:[e.jsx(re,{"data-loc":"client/src/pages/Products.tsx:27",children:"ALMA SERVICES"}),e.jsxs("h2",{"data-loc":"client/src/pages/Products.tsx:27",children:["Technology only creates value",e.jsx("br",{"data-loc":"client/src/pages/Products.tsx:27"}),e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:27",children:"when it is o
558perated with intent."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:27",children:"The product system is supported by a delivery team that works from the business case through design, technical fit, pilot, launch, and ongoing review."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:27",className:"products-service-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/Products.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:27",children:"01 / DESIGN"}),e.jsx("h3",{"data-loc":"client/src/pages/Products.tsx:27",children:"Programme and member proposition"}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:27",children:"Define the customer value, behavior, mechanics, rewards, and guardrails worth testing."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Products.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:27",children:"02 / FIT"}),e.jsx("h3",{"data-loc":"client/src/pages/Products.tsx:27",children:"Technical and operating scope"}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:27",children:"Choose the product layers, integrations, data, ownership, and delivery sequence that can work in context."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Products.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:27",children:"03 / OPERATE"}),e.jsx("h3",{"data-loc":"client/src/pages/Products.tsx:27",children:"Activation and improvement"}),e.jsx("p",{"data-loc":"client/src/pages/Products.tsx:27",children:"Launch, observe, review, and improve the system against member and financial evidence."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Products.tsx:28",className:"products-next",children:e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:28",className:"site-container products-next-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:28",children:[e.jsx(re,{"data-loc":"client/src/pages/Products.tsx:28",children:"FIND THE RIGHT ENTRY"}),e.jsxs("h2",{"data-loc":"client/src/pages/Products.tsx:28",children:["Start with your",e.jsx("br",{"data-loc":"client/src/pages/Products.tsx:28"}),e.jsx("em",{"data-loc":"client/src/pages/Products.tsx:28",children:"business question."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:28",className:"products-next-links",children:[e.jsxs(V,{"data-loc":"client/src/pages/Products.tsx:28",href:"/audiences",children:[e.jsx(Ki,{"data-loc":"client/src/pages/Products.tsx:28",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:28",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:28",children:"AUDIENCE PATH"}),e.jsx("b",{"data-loc":"client/src/pages/Products.tsx:28",children:"See the system through your business model"})]}),e.jsx(Y,{"data-loc":"client/src/pages/Products.tsx:28",size:17})]}),e.jsxs(V,{"data-loc":"client/src/pages/Products.tsx:28",href:"/solutions",children:[e.jsx(Ls,{"data-loc":"client/src/pages/Products.tsx:28",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:28",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:28",children:"SOLUTION PATH"}),e.jsx("b",{"data-loc":"client/src/pages/Products.tsx:28",children:"Start with financial, behavior, technical, or operating fit"})]}),e.jsx(Y,{"data-loc":"client/src/pages/Products.tsx:28",size:17})]}),e.jsxs(V,{"data-loc":"client/src/pages/Products.tsx:28",href:"/integrations",children:[e.jsx(xd,{"data-loc":"client/src/pages/Products.tsx:28",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/Products.tsx:28",children:[e.jsx("span",{"data-loc":"client/src/pages/Products.tsx:28",children:"TECHNICAL PATH"}),e.jsx("b",{"data-loc":"client/src/pages/Products.tsx:28",children:"Map evidence and integrations before you configure"})]}),e.jsx(Y,{"data-loc":"client/src/pages/Products.tsx:28",size:17})]})]})]})})]})})}function i5(a,n){let o=document.querySelector(`meta[name="${a}"]`);o||(o=document.createElement("meta"),o.name=a,document.head.appendChild(o)),o.content=n}function c5(){const[,a]=Cn("/products/:product"),n=Z3(a?.product),o=n.icon;return b.useEffect(()=>{document.title=`Alma Loyalty ${n.title} | Product`,i5("description",n.summary)},[n]),e.jsx(De,{"data-loc":"client/src/pages/ProductDetail.tsx:15",children:e.jsxs("main",{"data-loc":"client/src/pages/ProductDetail.tsx:15",className:"product-detail",children:[e.jsx(Ve,{"data-loc":"client/src/pages/ProductDetail.tsx:16",eyebrow:`ALMA PRODUCT / ${n.eyebrow.toUpperCase()}`,title:e.jsxs(e.Fragment,{children:[n.title,e.jsx("br",{"data-loc":"client/src/pages/ProductDetail.tsx:16"}),e.jsx("em",{"data-loc":"client/src/pages/ProductDetail.tsx:16",children:n.emphasis})]}),copy:n.summary,action:e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:16",href:n.primary.href,className:"button button-orange",children:[n.primary.label," ",e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:16",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProductDetail.tsx:17",className:"product-detail-outcome",children:e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:17",className:"site-container product-detail-outcome-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/ProductDetail.tsx:17",className:"product-icon",children:e.jsx(o,{"data-loc":"client/src/pages/ProductDetail.tsx:17",size:25})}),e.jsx(re,{"data-loc":"client/src/pages/ProductDetail.tsx:17",children:"WHAT THIS LAYER IS FOR"}),e.jsx("h2",{"data-loc":"client/src/pages/ProductDetail.tsx:17",children:n.outcome})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:17",children:[e.jsx("p",{"data-loc":"client/src/pages/ProductDetail.tsx:17",children:"Every Alma product layer is configured against the customer, channel, evidence, financial, and operating decisions that apply to your programme. It is not presented as an automatic capability or a generic off-the-shelf outcome."}),e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:17",className:"product-detail-links",children:[e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:17",href:n.primary.href,children:[n.primary.label," ",e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:17",size:14})]}),e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:17",href:n.secondary.href,children:[n.secondary.label," ",e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:17",size:14})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProductDetail.tsx:18",className:"product-detail-features",children:e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:18",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:18",className:"products-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:[e.jsx(re,{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:"WHAT IT CAN SUPPORT"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:["Useful capabilities.",e.jsx("br",{"data-loc":"client/src/pages/ProductDetail.tsx:18"}),e.jsx("em",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:"Clear operating conditions."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:"The feature layer only matters when its policy, owner, evidence, financial, and technical conditions have been answered. This is how Alma keeps a product system connected to the real business."})]}),e.jsx("div",{"data-loc":"client/src/pages/ProductDetail.tsx:18",className:"product-feature-grid",children:n.features.map((i,l)=>e.jsxs("article",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:[e.jsx("span",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:String(l+1).padStart(2,"0")}),e.jsx("h3",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:i.title}),e.jsx("p",{"data-loc":"client/src/pages/ProductDetail.tsx:18",children:i.copy})]},i.title))})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProductDetail.tsx:19",className:"product-detail-control
558s",children:e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:19",className:"site-container product-controls-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:[e.jsx(re,{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:"CONTROL BEFORE SCALE"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:["What needs to be",e.jsx("br",{"data-loc":"client/src/pages/ProductDetail.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:"designed around it."})]}),e.jsx("p",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:"Before this layer is activated, the following conditions need a real owner and a clear operating answer."})]}),e.jsx("div",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:n.controls.map(i=>e.jsxs("article",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:[e.jsx(Ba,{"data-loc":"client/src/pages/ProductDetail.tsx:19",size:18}),e.jsx("span",{"data-loc":"client/src/pages/ProductDetail.tsx:19",children:i})]},i))})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProductDetail.tsx:20",className:"products-next",children:e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:20",className:"site-container products-next-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:[e.jsx(re,{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"CONTINUE EXPLORING"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:["Choose the next",e.jsx("br",{"data-loc":"client/src/pages/ProductDetail.tsx:20"}),e.jsx("em",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"relevant decision."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:20",className:"products-next-links",children:[e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:20",href:"/products",children:[e.jsx(nt,{"data-loc":"client/src/pages/ProductDetail.tsx:20",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:[e.jsx("span",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"ALL PRODUCTS"}),e.jsx("b",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"Explore the complete Alma system"})]}),e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:20",size:17})]}),e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:20",href:"/solutions",children:[e.jsx(nt,{"data-loc":"client/src/pages/ProductDetail.tsx:20",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:[e.jsx("span",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"SOLUTIONS"}),e.jsx("b",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"Move from a product layer to the business question"})]}),e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:20",size:17})]}),e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:20",href:"/audiences",children:[e.jsx(nt,{"data-loc":"client/src/pages/ProductDetail.tsx:20",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:[e.jsx("span",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"AUDIENCES"}),e.jsx("b",{"data-loc":"client/src/pages/ProductDetail.tsx:20",children:"See the relevant path for your brand or manufacturer profile"})]}),e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:20",size:17})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProductDetail.tsx:21",className:"process-section",children:e.jsx("div",{"data-loc":"client/src/pages/ProductDetail.tsx:21",className:"site-container",children:e.jsxs("div",{"data-loc":"client/src/pages/ProductDetail.tsx:21",className:"process-footer",children:[e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:21",href:"/products",className:"text-link text-link-strong",children:[e.jsx(Ts,{"data-loc":"client/src/pages/ProductDetail.tsx:21",size:15})," All products"]}),e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:21",href:"/integrations",className:"text-link text-link-strong",children:["Explore integrations ",e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:21",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/ProductDetail.tsx:21",href:"/roi-calculator",className:"text-link text-link-strong",children:["Build a first-pass ROI case ",e.jsx(Y,{"data-loc":"client/src/pages/ProductDetail.tsx:21",size:15})]})]})})})]})})}const $p=[{slug:"apparel",name:"Apparel",label:"Retail / Apparel",headline:"Turn seasonal shopping into a relationship that returns.",copy:"Use loyalty to connect fit, style, status, and repeat purchase across store and digital journeys.",reality:"Seasonality, promotion pressure, and fragmented shopping journeys can make repeat behaviour difficult to earn.",system:"Reward purchases, reviews, referrals, profile signals, and cross-channel engagement in one member experience.",evidence:"Track active members, repeat purchase frequency, category return, and referral-led acquisition."},{slug:"beauty-cosmetics",name:"Beauty & Cosmetics",label:"Retail / Beauty",headline:"Make routine, discovery, and replenishment worth returning for.",copy:"Build a member relationship around replenishment, consultations, discovery, and personal recommendation.",reality:"Customers have endless product choice and repeat purchase windows vary by product, routine, and channel.",system:"Connect purchase, review, referral, and replenishment triggers to rewards that reinfor
558ce the routine.",evidence:"Focus on active members, replenishment cadence, cross-category adoption, and member lifetime value."},{slug:"specialty-retail",name:"Specialty Retail",label:"Retail / Specialty",headline:"Give specialist customers a reason to choose you first.",copy:"Make product knowledge, community, and high-consideration shopping part of the loyalty value exchange.",reality:"Specialty retailers compete on expertise and trust, but need a measurable way to reward the relationship.",system:"Create member value through tiers, targeted rewards, event participation, and category-specific incentives.",evidence:"Measure active member spend, attachment rate, repeat visits, and member-led referrals."},{slug:"ecommerce",name:"Ecommerce",label:"Digital commerce",headline:"Move digital shoppers from transaction to repeat behaviour.",copy:"Use loyalty as the incentive layer for the actions that create durable ecommerce value.",reality:"Acquisition costs and one-time orders create pressure to retain customers after the first purchase.",system:"Reward account creation, second order, reviews, referrals, and behaviour that improves conversion quality.",evidence:"Measure active members, repeat-order rate, AOV lift, referral conversion, and margin after rewards."},{slug:"restaurants-qsr",name:"Restaurants & QSR",label:"Food service",headline:"Make the next visit feel earned before the last one is forgotten.",copy:"Create a programme around visit frequency, preference, mobile ordering, and local relationship building.",reality:"Frequency drives the model, yet offers and promotions can become generic or margin-destructive.",system:"Use visit rewards, challenges, status, and targeted reactivation to create a reason for the next occasion.",evidence:"Monitor active members, visit cadence, offer redemption, basket contribution, and location-level performance."},{slug:"grocery",name:"Grocery",label:"Food retail",headline:"Make the weekly basket more personal and more valuable.",copy:"Connect member behaviour, category preference, and offer strategy to a more useful grocery relationship.",reality:"The shopping cadence is high, but customers split spend across multiple stores and channels.",system:"Reward visit frequency, product discovery, basket-building actions, and personalized member engagement.",evidence:"Track active member share of wallet, trip frequency, category adoption, and promotion efficiency."},{slug:"convenience",name:"Convenience & Fuel",label:"Convenience",headline:"Turn short visits into an ongoing reason to choose your location.",copy:"Make every routine stop part of a programme that rewards frequency, preference, and member value.",reality:"Convenience is habitual, but switching costs are low and customer attention is limited at the point of sale.",system:"Use simple earning, instant value, and mobile-ready rewards to make repeat visits more intentional.",evidence:"Measure active member frequency, visit interval, basket value, and rewards participation."},{slug:"fitness-wellness",name:"Fitness & Wellness",label:"Wellness",headline:"Reward the behaviours that keep members engaged.",copy:"Create a loyalty system that supports attendance, milestones, referrals, and a longer member relationship.",reality:"Retention depends on sustained participation, while new-member acquisition often carries a high cost.",system:"Reward check-ins, challenges, referrals, program participation, and community-led engagement.",evidence:"Focus on active members, visit streaks, lapse prevention, referral conversion, and membership retention."},{slug:"hospitality",name:"Hospitality",label:"Hospitality",headline:"Make every stay a stronger reason to return.",copy:"Connect recognition, direct booking, experience, and referral behaviour into an owned guest relationship.",reality:"Guest loyalty is influenced by frequency, direct-booking behaviour, recognition, and experience consistency.",system:"Use status, experience rewards, targeted offers, and member communication across the guest lifecycle.",evidence:"Measure active guests, direct-booking mix, stay frequency, ancillary value, and recognition engagement."},{slug:"travel",name:"Travel & Tourism",label:"Travel",headline:"Reward the relationship before, during, and after the trip.",copy:"Build a programme around planning, booking, experience, advocacy, and the next travel decision.",reality:"The consideration cycle is long and customer value can extend well beyond a single booking.",system:"Incentivize direct engagement, referrals, reviews, companion travel, and return planning.",evidence:"Track active travellers, repeat bookings, direct-channel mix, referral performance, and ancillary revenue."},{slug:"automotive",name:"Automotive",label:"Automotive",headline:"Keep the customer relationship active after the purchase.",copy:"Use loyalty to connect service, accessories, maintenance, referral, and long-cycle customer value.",reality:"The purchase cycle is long, but service and ownership moments create frequent opportunities to retain the relationship.",system:"Reward servicing, maintenance actions, accessory adoption, reviews, and referral behaviour.",evidence:"Measure active owners, service retention, service interval, referral-led leads, and lifetime contribution."},{slug:"home-services",name:"Home Services",label:"Services",headline:"Turn one completed job into a relationship that refers and returns.",copy:"Create incentives around care plans, reviews, referrals, repeat services, and trust-building behaviours.",reality:"Trust, timely re-engagement, and member advocacy matter more than a single completed transaction.",system:"Reward reviews, referrals, scheduled maintenance, membership enrolment, and repeat bookings.",evidence:"Track active households, maintenance-plan conversion, repeat-service rate, review rate, and referral quality."},{slug:"pet-care",name:"Pet Care",label:"Pet care",headline:"Build loyalty around the life of the pet, not a single transaction.",copy:"Connect recurring care, replenishment, services, and advocacy around a member relationship that evolves over time.",reality:"Customers have recurring needs across services, food, wellness, and careâoften from different providers.",system:"Reward recurring services, replenishment, pet profiles, reviews, and member referrals.",evidence:"Measure active pet households, visit frequency, repeat purchase, cross-service adoption, and referrals."},{slug:"entertainment",name:"Entertainment & Attractions",label:"Experiences",headline:"Give guests a reason to come back before the experience fades.",copy:"Create a programme around return visits, group advocacy, spending, and engagement between occasions.",reality:"Many guests enjoy a strong single experience but need a clear reason to choose the next visit.",system:"Reward attendance, return frequency, membership, group referrals, and digital engagement.",evidence:"Track active guests, return interval, attendance frequency, spend per visit, and referral activity."},{slug:"cpg-brands",name:"CPG Brands",label:"Consumer packaged goods",headline:"Build a direct member relationship around every repeatable product moment.",copy:"Use loyalty to capture first-party behaviour, reward advocacy, and encourage the next product decision.",reality:"Brands often lack direct visibility into household behaviour and need a reason for customers to identify themselves.",system:"Reward receipt capture, reviews, referrals, profile signals, sampling, and repeat engagement.",evidence:"Measure active members, identified households, repeat engagement, advocacy, and category growth."},{slug:"financial-services",name:"Financial Services",label:"Financial services",headline:"Reward the behaviours that deepen an owned customer relationship.",copy:"Structure value around engagement, education, adoption, and customer actions that support a stronger relationship.",reality:"Trust and relevance matter, while customer relationships can span multiple services and long decision cycles.",system:"Use eligible engagement, milestone, referral, and adoption incentives within the approved program structure.",evidence:"Measure active relationships, product adoption, engagement, referral quality, and retention signals."},{slug:"health-wellness",name:"Health & Wellness",label:"Health & wellness",headline:"Support ongoing engagement through value customers can feel.",copy:"Create a loyalty programme that rewards approved engagement, participation, referral, and membership behaviours.",reality:"Retention often depends on sustained attendance, trust, convenience, and a clear reason to stay engaged.",system:"Reward eligible visits, program participation, education, referral, and member milestones.",evidence:"Track active members, participation cadence, membership continuation, and eligible member engagement."},{slug:"telecom",name:"Telecom & Connectivity",label:"Connectivity",headline:"Give everyday customers a reason to stay and bring others with them.",copy:"Use loyalty to recognize tenure, reward engagement, and create a more visible customer-value exchange.",reality:"Customers may see the service as a utility until a meaningful reason to engage or stay becomes visible.",system:"Reward eligible engagement, tenure milestones, referral, service adoption, and selected customer actions.",evidence:"Measure active customers, tenure, adoption, referral conversion, and retention indicators."},{slug:"subscription-businesses",name:"Subscription Businesses",label:"Subscription",headline:"Make renewal and participation part of the same value loop.",copy:"Build loyalty around use, milestones, advocacy, upgrades, and the behaviours that make subscribers stay.",reality:"Recurring revenue depends on sustained customer value, not simply the first conversion.",system:"Reward adoption, member activity, referrals, milestones, and actions that reinfor
558ce ongoing value.",evidence:"Track active subscribers, engagement, renewal, upgrade, advocacy, and retention signals."},{slug:"b2b-distributors",name:"B2B Distribution",label:"B2B",headline:"Recognize the buyers and accounts that create the durable relationship.",copy:"Use loyalty to create a more intentional value exchange across buyers, account activity, education, and repeat orders.",reality:"Account relationships may have multiple buyers, complex ordering rhythms, and value that extends beyond the transaction.",system:"Reward approved buyer activity, training, referral, purchase milestones, and account engagement.",evidence:"Measure active buying accounts, order cadence, buyer engagement, referral-led opportunities, and repeat revenue."}];function l5(a){return $p.find(n=>n.slug===a)??$p[0]}function d5(){return e.jsx(De,{"data-loc":"client/src/pages/Industries.tsx:8",children:e.jsxs("main",{"data-loc":"client/src/pages/Industries.tsx:8",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Industries.tsx:8",eyebrow:"Industry loyalty programs",title:e.jsxs(e.Fragment,{children:["One loyalty platform.",e.jsx("br",{"data-loc":"client/src/pages/Industries.tsx:8"}),e.jsx("em",{"data-loc":"client/src/pages/Industries.tsx:8",children:"Twenty category-specific conversations."})]}),copy:"The mechanics may be familiar. The customer behaviour, revenue case, operating model, and proof requirement are not. Alma structures each loyalty programme around the way your category actually creates value.",action:e.jsxs(V,{"data-loc":"client/src/pages/Industries.tsx:8",href:"/roi-calculator",className:"button button-orange",children:["Model your category case ",e.jsx(Y,{"data-loc":"client/src/pages/Industries.tsx:8",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Industries.tsx:8",className:"industries-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Industries.tsx:8",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Industries.tsx:8",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Industries.tsx:8",children:[e.jsx(re,{"data-loc":"client/src/pages/Industries.tsx:8",children:"Choose your audience"}),e.jsxs("h2",{"data-loc":"client/src/pages/Industries.tsx:8",children:["Built around the",e.jsx("br",{"data-loc":"client/src/pages/Industries.tsx:8"}),e.jsx("em",{"data-loc":"client/src/pages/Industries.tsx:8",children:"customer behaviour that matters."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Industries.tsx:8",children:"Explore an original Alma loyalty funnel for your category, then use the ROI calculator to begin building the commercial case."})]}),e.jsx("div",{"data-loc":"client/src/pages/Industries.tsx:8",className:"industry-grid",children:$p.map((a,n)=>e.jsxs(V,{"data-loc":"client/src/pages/Industries.tsx:8",className:"industry-card",href:`/industries/${a.slug}`,children:[e.jsxs("span",{"data-loc":"client/src/pages/Industries.tsx:8",children:[String(n+1).padStart(2,"0")," / ",a.label]}),e.jsx("h3",{"data-loc":"client/src/pages/Industries.tsx:8",children:a.name}),e.jsx("p",{"data-loc":"client/src/pages/Industries.tsx:8",children:a.copy}),e.jsxs("strong",{"data-loc":"client/src/pages/Industries.tsx:8",children:["Explore ",a.name," ",e.jsx(Y,{"data-loc":"client/src/pages/Industries.tsx:8",size:14})]})]},a.slug))})]})})]})})}function u5(){const[,a]=Cn("/industries/:industry"),n=l5(a?.industry);return e.jsx(De,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:e.jsxs("main",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:[e.jsx(Ve,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",eyebrow:`Alma Loyalty for ${n.label}`,title:e.jsxs(e.Fragment,{children:[n.headline.split(" ").slice(0,-2).join(" ")," ",e.jsx("em",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:n.headline.split(" ").slice(-2).join(" ")})]}),copy:n.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",href:"/roi-calculator",className:"button button-orange",children:["Model ",n.name," ROI ",e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanics-section",children:e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:[e.jsx(re,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"The category lens"}),e.jsxs("h2",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:["Start with the behaviour.",e.jsx("br",{"data-loc":"client/src/pages/IndustryDetail.tsx:9"}),e.jsx("em",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"The
558n design the value exchange."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Alma brings the same loyalty platform discipline to each category, but the programme needs to be built around the actions, customer moments, and operating evidence that matter here."})]}),e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanics-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanic-card",children:[e.jsx("span",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanic-icon",children:e.jsx(Gj,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:23})}),e.jsx("h3",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Business reality"}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:n.reality})]}),e.jsxs("article",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanic-card",children:[e.jsx("span",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanic-icon",children:e.jsx(QO,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:23})}),e.jsx("h3",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Loyalty system"}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:n.system})]}),e.jsxs("article",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanic-card",children:[e.jsx("span",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"mechanic-icon",children:e.jsx(rr,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:23})}),e.jsx("h3",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Evidence to watch"}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:n.evidence})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"dark-feature",children:e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"site-container dark-feature-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:[e.jsx(re,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Alma delivery approach"}),e.jsxs("h2",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:["Build the programme around the ",e.jsx("em",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"next valuable action."})]}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"We start with the category-specific behaviour that must change, map the right loyalty mechanics and platform layers around it, then create the measurement plan that makes the programme accountable."}),e.jsxs(V,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",href:"/demo-request",className:"button button-light",children:["Discuss your programme ",e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:16})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"decision-stack",children:[e.jsxs("article",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:[e.jsx("span",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"01"}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Map the customer journey and commercial opportunity."}),e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:16})]}),e.jsxs("article",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:[e.jsx("span",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"02"}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Configure the incentives and experiences that move the right behaviour."}),e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:16})]}),e.jsxs("article",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:[e.jsx("span",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"03"}),e.jsx("p",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Review active-member outcomes and keep improving the system."}),e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:16})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"process-section",children:e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",children:"Continue exploring"}),e.jsxs("div",{"data-loc":"client/src/pages/IndustryDetail.tsx:9",className:"process-footer",children:[e.jsxs(V,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",href:"/industries",className:"text-link text-link-strong",children:[e.jsx(Ts,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:15})," All industries"]}),e.jsxs(V,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",href:"/platform",className:"text-link text-link-strong",children:["Explore the Alma platform ",e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",href:"/roi-calculator",className:"text-link text-link-strong",children:["Use the ROI calculator ",e.jsx(Y,{"data-loc":"client/src/pages/IndustryDetail.tsx:9",size:15})]})]})]})})]})})}function m5(){return e.jsx(De,{"data-loc":"client/src/pages/Audiences.tsx:8",children:e.jsxs("main",{"data-loc":"client/src/pages/Audiences.tsx:8",className:"audience-hub",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Audiences.tsx:9",eyebrow:"WHO ARE YOU BUILDING FOR?",title:e.jsxs(e.Fragment,{children:["Stop forcing one loyalty programme",e.jsx("br",{"data-loc":"client/src/pages/Audiences.tsx:9"}),e.jsx("em",{"data-loc":"client/src/pages/Audiences.tsx:9",children:"onto six different businesses."})]}),copy:"Alma is built for brands and manufacturersânot loyalty vend
558ors. Different channels, margins, purchase routes, evidence sources, and operating teams require different loyalty designs. Choose the reality closest to yours, then test the decisions that belong there.",action:e.jsxs(V,{"data-loc":"client/src/pages/Audiences.tsx:9",href:"/opportunity-estimator",className:"button button-orange",children:["Test your opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/Audiences.tsx:9",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Audiences.tsx:10",className:"audience-hub-intro",children:e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:10",className:"site-container audience-hub-intro-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:10",children:[e.jsx(re,{"data-loc":"client/src/pages/Audiences.tsx:10",children:"CHOOSE YOUR PATH"}),e.jsxs("h2",{"data-loc":"client/src/pages/Audiences.tsx:10",children:["Different margins. Different evidence.",e.jsx("br",{"data-loc":"client/src/pages/Audiences.tsx:10"}),e.jsx("em",{"data-loc":"client/src/pages/Audiences.tsx:10",children:"Different loyalty system."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Audiences.tsx:10",children:"Choose an audience path to see the relevant member moments, proof sources, decision lenses, and simulations. Every route starts with the commercial and operating realityânot a generic feature list."})]})}),e.jsx("section",{"data-loc":"client/src/pages/Audiences.tsx:11",className:"audience-card-section",children:e.jsx("div",{"data-loc":"client/src/pages/Audiences.tsx:11",className:"site-container audience-card-grid",children:_i.map((a,n)=>e.jsxs(V,{"data-loc":"client/src/pages/Audiences.tsx:11",className:"audience-card",href:`/audiences/${a.slug}`,children:[e.jsx("span",{"data-loc":"client/src/pages/Audiences.tsx:11",className:"audience-card-index",children:String(n+1).padStart(2,"0")}),e.jsx("span",{"data-loc":"client/src/pages/Audiences.tsx:11",className:"audience-card-kicker",children:a.eyebrow.replace("Alma for ","")}),e.jsx("h2",{"data-loc":"client/src/pages/Audiences.tsx:11",children:a.name}),e.jsx("p",{"data-loc":"client/src/pages/Audiences.tsx:11",children:a.copy}),e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:11",children:[e.jsx("b",{"data-loc":"client/src/pages/Audiences.tsx:11",children:"Explore this path"}),e.jsx(Y,{"data-loc":"client/src/pages/Audiences.tsx:11",size:16})]})]},a.slug))})}),e.jsx("section",{"data-loc":"client/src/pages/Audiences.tsx:12",className:"audience-model",children:e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:12",className:"site-container audience-model-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx(re,{"data-loc":"client/src/pages/Audiences.tsx:12",children:"THE ALMA COMPOSITION"}),e.jsxs("h2",{"data-loc":"client/src/pages/Audiences.tsx:12",children:["One customer relationship.",e.jsx("br",{"data-loc":"client/src/pages/Audiences.tsx:12"}),e.jsx("em",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"Four accountable layers."})]}),e.jsx("p",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"We bring the right loyalty operations, incentive rules, purchase evidence, and financial control together around the brandâs situation. The configuration comes after fitânot before."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:12",className:"audience-model-stack",children:[e.jsxs("article",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx(zj,{"data-loc":"client/src/pages/Audiences.tsx:12",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx("span",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"01 / Customer and channel reality"}),e.jsx("h3",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"Start with the behavior and the route to value."})]})]}),e.jsxs("article",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx(Ki,{"data-loc":"client/src/pages/Audiences.tsx:12",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx("span",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"02 / Capability composition"}),e.jsx("h3",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"Fit loyalty, incentive, evidence, and data layers to the job."})]})]}),e.jsxs("article",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx(Ba,{"data-loc":"client/src/pages/Audiences.tsx:12",size:20}),e.jsxs("div",{"data-loc":"client/src/pages/Audiences.tsx:12",children:[e.jsx("span",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"03 / Evidence and economics"}),e.jsx("h3",{"data-loc":"client/src/pages/Audiences.tsx:12",children:"Control the eligibility, funding, and proof before scale."})]})]})]})]})})]})})}const p5={Product:Ki,Service:nt,Financial:Ls,Technical:Ba};
558function h5(){const[,a]=Cn("/audiences/:audience"),n=X3(a?.audience),[o,i]=b.useState(0),l=n.verification[o];return e.jsx(De,{"data-loc":"client/src/pages/AudienceDetail.tsx:16",children:e.jsxs("main",{"data-loc":"client/src/pages/AudienceDetail.tsx:16",className:"audience-detail",children:[e.jsx(Ve,{"data-loc":"client/src/pages/AudienceDetail.tsx:17",eyebrow:n.eyebrow.toUpperCase(),title:e.jsxs(e.Fragment,{children:[n.headline,e.jsx("br",{"data-loc":"client/src/pages/AudienceDetail.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/AudienceDetail.tsx:17",children:n.emphasis})]}),copy:n.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/AudienceDetail.tsx:17",href:n.primaryTool.href,className:"button button-orange",children:[n.primaryTool.label," ",e.jsx(Y,{"data-loc":"client/src/pages/AudienceDetail.tsx:17",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",className:"audience-reality",children:e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",className:"site-container audience-reality-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",children:[e.jsx(re,{"data-loc":"client/src/pages/AudienceDetail.tsx:18",children:"THE BUSINESS REALITY"}),e.jsxs("h2",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",children:["Design around what has to be ",e.jsx("em",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",children:"true"})," here."]})]}),e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",className:"audience-reality-copy",children:[e.jsx("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",children:n.reality}),e.jsxs("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",className:"audience-outcome",children:[e.jsx("b",{"data-loc":"client/src/pages/AudienceDetail.tsx:18",children:"What Alma works toward:"})," ",n.outcome]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",className:"audience-lenses",children:e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",className:"audience-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:[e.jsx(re,{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:"FOUR DECISION LENSES"}),e.jsxs("h2",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:["Product, service, finance,",e.jsx("br",{"data-loc":"client/src/pages/AudienceDetail.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:"and technologyâtogether."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:"A loyalty program works only when all four lenses line up. Use this page to get the right questions on the table before choosing a configuration."})]}),e.jsx("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",className:"audience-lens-grid",children:n.lenses.map(d=>{const m=p5[d.label];return e.jsxs("article",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:[e.jsx(m,{"data-loc":"client/src/pages/AudienceDetail.tsx:19",size:19}),e.jsx("span",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:d.label})]}),e.jsx("h3",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:d.title}),e.jsx("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:19",children:d.copy})]},d.label)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-verification",children:e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"site-container audience-verification-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-verification-copy",children:[e.jsx(re,{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:"VERIFIED ACTION SIMULATION"}),e.jsxs("h2",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:["Value follows evidenceâ",e.jsx("br",{"data-loc":"client/src/pages/AudienceDetail.tsx:20"}),e.jsx("em",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:"not a guess."})]}),e.jsx("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:"This illustrative path shows how a qualifying action can move from the customer or channel into a controlled loyalty decision. The exact sources, rules, fraud controls, and integrations must be scoped for your program."}),e.jsx("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-step-buttons",role:"tablist","aria-label":`${n.name} verification steps`,children:n.verification.map((d,m)=>e.jsxs("button",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",type:"button",role:"tab","aria-selected":o===m,onClick:()=>i(m),children:[e.jsx("span",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:String(m+1).padStart(2,"0")}),d.label]},d.label))})]}),e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-proof-console","aria-live":"polite",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-proof-top",children:[e.jsx("span",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:"ALMA / EVIDENCE PATH"}),e.jsx(Ba,{"data-loc":"client/src/pages/AudienceDetail.tsx:20",size:18})]}),e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-proof-count",children:["STEP ",String(o+1).padStart(2,"0")," / 04"]}),e.jsx("h3",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:l.label}),e.jsx("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:l.detail}),e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-proof-signal",children:[e.jsx("span",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:"DECISION SIGNAL"}),e.jsx("b",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:l.signal})]}),e.jsx("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",className:"audience-proof-progress",children:n.verification.map((d,m)=>e.jsx("button",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",type:"button","aria-label":`Show ${d.label}`,className:m===o?"active":m<o?"complete":"",onClick:()=>i(m)},d.label))}),e.jsx("small",{"data-loc":"client/src/pages/AudienceDetail.tsx:20",children:"Illustrative planning flow. Approval rules, evidence requirements, funding, and exception handling require program-specific validation."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",className:"audience-next",children:e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",className:"site-container audience-next-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:[e.jsx(re,{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:"NEXT DECISION"}),e.jsxs("h2",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:["Take the relevant",e.jsx("br",{"data-loc":"client/src/pages/AudienceDetail.tsx:21"}),e.jsx("em",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:"next step."})]}),e.jsx("p",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:"Use a guided tool to turn this audie
558nce path into a transparent decision brief. We will show the assumptions, the evidence gaps, and the right next move."})]}),e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:[e.jsxs(V,{"data-loc":"client/src/pages/AudienceDetail.tsx:21",href:n.primaryTool.href,className:"audience-next-card audience-next-primary",children:[e.jsx("span",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:"01 / PRIMARY PATH"}),e.jsx("h3",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:n.primaryTool.label}),e.jsx(Y,{"data-loc":"client/src/pages/AudienceDetail.tsx:21",size:20})]}),e.jsxs(V,{"data-loc":"client/src/pages/AudienceDetail.tsx:21",href:n.secondaryTool.href,className:"audience-next-card",children:[e.jsx("span",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:"02 / SUPPORTING PATH"}),e.jsx("h3",{"data-loc":"client/src/pages/AudienceDetail.tsx:21",children:n.secondaryTool.label}),e.jsx(Y,{"data-loc":"client/src/pages/AudienceDetail.tsx:21",size:20})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/AudienceDetail.tsx:22",className:"process-section",children:e.jsx("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:22",className:"site-container",children:e.jsxs("div",{"data-loc":"client/src/pages/AudienceDetail.tsx:22",className:"process-footer",children:[e.jsxs(V,{"data-loc":"client/src/pages/AudienceDetail.tsx:22",href:"/audiences",className:"text-link text-link-strong",children:[e.jsx(Ts,{"data-loc":"client/src/pages/AudienceDetail.tsx:22",size:15})," All audience paths"]}),e.jsxs(V,{"data-loc":"client/src/pages/AudienceDetail.tsx:22",href:"/industries",className:"text-link text-link-strong",children:["Explore industries ",e.jsx(Y,{"data-loc":"client/src/pages/AudienceDetail.tsx:22",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/AudienceDetail.tsx:22",href:"/integrations",className:"text-link text-link-strong",children:["Explore technical fit ",e.jsx(Y,{"data-loc":"client/src/pages/AudienceDetail.tsx:22",size:15})]})]})})})]})})}const Xp=[{slug:"increase-aov",metric:"Average order value",audience:"Buy more per order",title:"Give customers a reason to make the basket bigger.",copy:"Use dynamic earning thresholds, bundle accelerators, and point progress to reward a larger next purchase without defaulting to a blanket discount.",mechanic:"Spend thresholds + bonus points",behavior:"Customer adds the next relevant item or reaches the next spend band",outcome:"Higher average order value",illustration:"basket",inputs:["Average order value","AOV lift","Reward cost","Gross margin"]},{slug:"increase-purchase-frequency",metric:"Purchase frequency",audience:"Buy more often",title:"Make the next purchase feel worth coming back for.",copy:"Use visit streaks, time-bound challenges, replenishment prompts, and dynamic rewards to make a return trip the obvious next action.",mechanic:"Streaks + return challenges",behavior:"Customer buys again sooner and more often",outcome:"Higher purchase frequency",illustration:"frequency",inputs:["Purchase frequency","Frequency lift","Active member rate","Implementation ramp"]},{slug:"win-second-purchase",metric:"Second-purchase conversion",audience:"Convert the first-time buyer",title:"Turn the first transaction into a second relationship moment.",copy:"Make the first reward visible early, then use a targeted second-purchase challenge to convert a new buyer into an active member.",mechanic:"New-member earning challenge",behavior:"First-time buyer returns for purchase two",outcome:"More repeat customers",illustration:"member",inputs:["Enrollment rate","Active member rate","Purchase frequency","Rewards cost"]},{slug:"grow-active-members",metric:"Active members",audience:"Make membership matter",title:"Enrollment is not the finish line. Active behavior is.",copy:"Build a points currency that gives customers a reason to earn, track progress, and redeem across the moments that matter most.",mechanic:"Dynamic earning + reward choice",behavior:"Member engages, earns, and returns",outcome:"More active members",illustration:"member",inputs:["Enrollment rate","Active member rate","AOV lift","Frequency lift"]},{slug:"reactivate-lapsed-customers",metric:"Reactivation",audie
558nce:"Bring customers back",title:"Give lapsed customers a specific reason to return now.",copy:"Use personalized point offers, expiry reminders, and time-bound rewards to re-open the relationship before it is lost to a competitor.",mechanic:"Reactivation reward + urgency",behavior:"Lapsed customer returns and re-engages",outcome:"Recovered customer value",illustration:"reactivation",inputs:["Active member rate","Purchase frequency","Marketing cost","Reward cost"]},{slug:"increase-referrals",metric:"Referral acquisition",audience:"Acquire better customers",title:"Reward the introduction that brings the right customer in.",copy:"Use a shared reward structure that motivates the member to refer and gives the new customer a clear first reason to engage.",mechanic:"Give-get referral points",behavior:"Member refers a qualified new customer",outcome:"Lower-cost acquisition",illustration:"referral",inputs:["Enrollment rate","Marketing cost","Customer base","Reward cost"]},{slug:"increase-reviews",metric:"Verified reviews",audience:"Earn social proof",title:"Make advocacy an earnable customer action.",copy:"Award points for verified reviews after the right customer moment, creating a repeatable way to build proof and listen for feedback.",mechanic:"Verified review points",behavior:"Customer leaves useful product or experience feedback",outcome:"More qualified reviews",illustration:"review",inputs:["Active member rate","Reward cost","Marketing cost","Purchase frequency"]},{slug:"grow-member-enrollment",metric:"Member enrollment",audience:"Identify more customers",title:"Make joining feel immediately valuable, not administrative.",copy:"Use a clear first earn, simple enrollment, and visible reward progress to turn anonymous transactions into identifiable member relationships.",mechanic:"Join-and-earn welcome path",behavior:"Customer identifies and enrolls",outcome:"Larger addressable member base",illustration:"enrollment",inputs:["Enrollment rate","Active member rate","Setup fees","Implementation"]},{slug:"improve-reward-redemption",metric:"Reward redemption",audience:"Make points feel real",title:"A currency only works when customers see value in spending it.",copy:"Offer dynamic reward choices tied to progress, preference, inventory, and member context so earned points create the next action.",mechanic:"Dynamic rewards catalogue",behavior:"Member redeems and returns to earn again",outcome:"Stronger reward engagement",illustration:"rewards",inputs:["Reward cost","Active member rate","AOV lift","Frequency lift"]},{slug:"reduce-promo-waste",metric:"Promotion efficiency",audience:"Protect margin",title:"Stop paying every customer for behavior they would do anyway.",copy:"Use the promotion engine to define who earns, when they earn, and which verified action triggers valueârather than broadcasting one offer to everyone.",mechanic:"Rule-based promotion engine",behavior:"Target customer changes the defined behavior",outcome:"More efficient promotional spend",illustration:"promo",inputs:["Marketing cost","Reward cost","Gross margin","Active member rate"]},{slug:"increase-cross-sell",metric:"Cross-sell adoption",audience:"Grow category breadth",title:"Use points to make the next category easier to try.",copy:"Award bonus value for strategic product combinations, category exploration, and defined adoption milestones across the portfolio.",mechanic:"Category accelerator",behavior:"Customer adds or tries an adjacent product",outcome:"More cross-sell revenue",illustration:"crosssell",inputs:["Average order value","AOV lift","Gross margin","Reward cost"]},{slug:"increase-upsell",metric:"Upsell conversion",audience:"Trade customers up",title:"Make the higher-value choice feel more rewarding.",copy:"Use points multipliers and progress thresholds to reward the premium decision at the moment it is made.",mechanic:"Premium-tier points multiplier",behavior:"Customer selects a higher-value product or service",outcome:"Higher value per transaction",illustration:"basket",inputs:["Average order value","AOV lift","Gross margin","Reward cost"]},{slug:"drive-direct-digital-orders",metric:"Direct digital orders",audience:"Own the relationship",title:"Give customers a reason to choose the channel you own.",copy:"Reward direct web and app behavior with targeted earning, member-only rewards, and a more useful account experience.",mechanic:"Channel-specific member earning",behavior:"Customer shifts toward direct digital order",outcome:"More owned-channel revenue",illustration:"direct",inputs:["Ecommerce revenue","Mobile revenue","Marketing cost","Purchase frequency"]},{slug:"improve-mobile-engagement",metric:"Mobile engagement",audience:"Make the app useful",title:"Turn the mobile experience into a loyalty control surface.",copy:"Put points, rewards, offers, and progress in the memberâs hand so the app becomes a reason to actânot just a receipt viewer.",mechanic:"Mobile wallet + personalized offers",behavior:"Member opens, engages, and acts in the app",outcome:"Stronger mobile participation",illustration:"mobile",inputs:["Mobile revenue","Active member rate","Frequency lift","Marketing cost"]},{slug:"launch-new-products",metric:"New product adoption",audie
558nce:"Create trial",title:"Use points to make the first try easier to say yes to.",copy:"Turn launches into a defined member mission: reward verified trial, follow-up purchase, feedback, and advocacy around the new product.",mechanic:"Launch mission + bonus earn",behavior:"Customer tries and repeats a new product",outcome:"Faster new-product adoption",illustration:"launch",inputs:["Marketing cost","Reward cost","Purchase frequency","Average order value"]},{slug:"verify-offline-purchases",metric:"Verified purchase behavior",audience:"Connect the receipt",title:"Reward the purchase you cannot see at the point of sale.",copy:"Use receipt scanning to verify product, location, basket, or campaign behavior, then issue the right points or reward automatically.",mechanic:"Receipt scanning + promotion rules",behavior:"Customer uploads a verified purchase",outcome:"Measurable offline purchase participation",illustration:"receipt",inputs:["CPG revenue","Marketing cost","Reward cost","Enrollment rate"]},{slug:"increase-b2b-order-frequency",metric:"B2B order frequency",audience:"Keep buyers ordering",title:"Reward the business buyer for the cadence you need.",copy:"Structure points, milestones, and status around repeat orders, training, adoption, and account-level actions that keep buyers engaged.",mechanic:"Buyer milestones + account points",behavior:"Buyer places orders more consistently",outcome:"Higher B2B order frequency",illustration:"b2b",inputs:["B2B revenue","Purchase frequency","Active member rate","Gross margin"]},{slug:"activate-channel-partners",metric:"Channel partner activation",audience:"Motivate the middle",title:"Give channel partners a reason to prioritize your outcome.",copy:"A B2B2B programme can reward partner actions, enablement, sell-through, data contribution, and downstream customer outcomes.",mechanic:"Partner missions + tier benefits",behavior:"Partner prioritizes the defined sales or service action",outcome:"More active channel partners",illustration:"partner",inputs:["B2B revenue","Marketing cost","Active member rate","Implementation"]},{slug:"grow-distributor-sell-through",metric:"Distributor sell-through",audience:"Move product through",title:"Reward verified movement across the distribution chain.",copy:"Use account and partner incentives, receipt or claim verification, and defined sales milestones to motivate sell-throughânot just sell-in.",mechanic:"Distribution incentives + verification",behavior:"Distributor and partner advance sell-through activity",outcome:"Higher distributor sell-through",illustration:"distribution",inputs:["B2B revenue","Marketing cost","Reward cost","Gross margin"]},{slug:"improve-account-retention",metric:"Account retention",audience:"Protect strategic accounts",title:"Make long-term relationship value visible to every account.",copy:"Use shared points, tiered recognition, targeted rewards, and account-level milestones to give stakeholders a reason to deepen the relationship.",mechanic:"Account status + loyalty milestones",behavior:"Account renews, expands, and engages",outcome:"Stronger account retention",illustration:"retention",inputs:["B2B revenue","Active member rate","Purchase frequency","Gross margin"]}];function g5(a){return Xp.find(n=>n.slug===a)??Xp[0]}function f5(){return e.jsx(De,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:e.jsxs("main",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:[e.jsx(Ve,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",eyebrow:"Loyalty KPI playbook",title:e.jsxs(e.Fragment,{children:["Start with the number.",e.jsx("br",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7"}),e.jsx("em",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:"Then engineer the behavior."})]}),copy:"Each playbook page begins with a commercial outcome, shows the loyalty mechanic that can influence it, and takes the exact assumptions into Almaâs ROI calculator.",action:e.jsxs(V,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",className:"button button-orange",href:"/roi-calculator",children:["Open the calculator ",e.jsx(Y,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",className:"kpi-index-section",children:e.jsxs("div",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:[e.jsx(re,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:"Choose the KPI"}),e.jsxs("h2",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:["Twenty reasons to make",e.jsx("br",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7"}),e.jsx("em",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:"customer behavior valuable."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:"Every program begins with a behavior worth changing. Explore the KPI, the loyalty lever, and the calculator inputs that make the commercial case visible."})]}),e.jsx("div",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",className:"kpi-index-grid",children:Xp.map((a,n)=>e.jsxs(V,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",className:"kpi-index-card",href:`/kpi/${a.slug}`,children:[e.jsxs("span",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:[String(n+1).padStart(2,"0")," / ",a.metric]}),e.jsx("h3",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:a.audience}),e.jsx("p",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:a.mechanic}),e.jsxs("strong",{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",children:["Build the case ",e.jsx(Y,{"data-loc":"client/src/pages/KpiPlaybook.tsx:7",size:14})]})]},a.slug))})]})})]})})}function x5({type:a}){return a==="receipt"?e.jsx(ck,{"data-loc":"client/src/pages/KpiDetail.tsx:7"}):["mobile","direct"].includes(a)?e.jsx(Nh,{"data-loc":"client/src/pages/KpiDetail.tsx:7"}):["referral","partner","distribution","b2b"].includes(a)?e.jsx(Ph,{"data-loc":"client/src/pages/KpiDetail.tsx:7"}):["rewards","promo"].includes(a)?e.jsx(wo,{"data-loc":"client/src/pages/KpiDetail.tsx:7"}):["basket","crosssell"].includes(a)?e.jsx(dk,{"data-loc":"client/src/pages/KpiDetail.tsx:7"}):a==="retention"?e.jsx(fk,{"data-loc":"client/src/pages/KpiDetail.tsx:7"}):e.jsx(Yj,{"data-loc":"client/src/pages/KpiDetail.tsx:7"})}function y5(){const[,a]=Cn("/kpi/:kpi"),n=g5(a?.kpi);return e.jsx(De,{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:e.jsxs("main",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx(Ve,{"data-loc":"client/src/pages/KpiDetail.tsx:8",eyebrow:`KPI playbook / ${n.metric}`,title:e.jsxs(e.Fragment,{children:[" ",n.title.split(" ").slice(0,-3).join(" ")," ",e.jsx("em",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:n.title.split(" ").slice(-3).join(" ")})]}),copy:n.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"button button-orange",href:`/roi-calculator?kpi=${n.slug}`,children:["Model ",n.metric," ",e.jsx(Y,{"data-loc":"client/src/pages/KpiDetail.tsx:8",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-section",children:e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx(re,{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Behavior modification map"}),e.jsxs("h2",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:["Change the action.",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),e.jsx("em",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Move the metric."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Loyalty is the flexible incentive layer: points are the common currency, earning rules define the action, and rewards make the next choice worth taking."})]}),e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-map",children:[e.jsxs("article",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-step",children:"01 / LOYALTY MECHANIC"}),e.jsx("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-icon",children:e.jsx(wo,{"data-loc":"client/src/pages/KpiDetail.tsx:8"})}),e.jsx("h3",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:n.mechanic}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Dynamic ways to earn can be configured around the exact action the program needs next."})]}),e.jsx("i",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:e.jsx(Y,{"data-loc":"client/src/pages/KpiDetail.tsx:8",size:20})}),e.jsxs("article",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-step",children:"02 / CUSTOMER ACTION"}),e.jsx("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-icon",children:e.jsx(x5,{"data-loc":"client/src/pages/KpiDetail.tsx:8",type:n.illustration})}),e.jsx("h3",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:n.behavior}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"A shared points currency makes progress visible across web, mobile, and connected customer experiences."})]}),e.jsx("i",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:e.jsx(Y,{"data-loc":"client/src/pages/KpiDetail.tsx:8",size:20})}),e.jsxs("article",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-outcome",children:[e.jsx("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-step",children:"03 / KPI OUTCOME"}),e.jsx("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"behavior-icon",children:e.jsx(rr,{"data-loc":"client/src/pages/KpiDetail.tsx:8"})}),e.jsx("h3",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:n.outcome}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Measure the commercial impact in the ROI calculator, then tune earning and reward rules against evidence."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"dynamic-engine-section",children:e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"site-container dynamic-engine-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx(re,{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Dynamic loyalty engine"}),e.jsxs("h2",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:["One currency. Dynamic earning.",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),e.jsx("em",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Dynamic rewards."})]}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Alma programmes can use standard loyalty points as the common currency, with rule-based earning, personalized reward options, promotion logic, and optional crypto rewards where approved."}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Receipt scanning can verify off-platform purchase behavior; mobile and web apps keep identity, currency, progress, and rewards consistent wherever the member engages."})]}),e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"dynamic-engine-visual",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"engine-core",children:["ALMA",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),e.jsx("strong",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"POINTS"})]}),e.jsxs("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"engine-node earn",children:["DYNAMIC",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),"EARNING"]}),e.jsxs("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"engine-node rewards",children:["DYNAMIC",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),"REWARDS"]}),e.jsxs("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"engine-node receipt",children:["RECEIPT",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),"VERIFY"]}),e.jsxs("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"engine-node apps",children:["WEB +",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),"MOBILE"]}),e.jsxs("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"engine-node optional",children:["OPTIONAL",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),"CRYPTO"]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"kpi-model-section",children:e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"site-container kpi-model-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx(re,{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"Take it to the ROI calculator"}),e.jsxs("h2",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:["Model the variables",e.jsx("br",{"data-loc":"client/src/pages/KpiDetail.tsx:8"}),e.jsx("em",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"that make this KPI real."})]}),e.jsx("p",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:"The calculation is only as useful as the assumptions you can defend. Start with the inputs below, then adjust every value inside the guided calculator."}),e.jsxs(V,{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"button button-dark",href:`/roi-calculator?kpi=${n.slug}`,children:["Model ",n.metric," ",e.jsx(Y,{"data-loc":"client/src/pages/KpiDetail.tsx:8",size:16})]})]}),e.jsx("div",{"data-loc":"client/src/pages/KpiDetail.tsx:8",className:"kpi-input-list",children:n.inputs.map((o,i)=>e.jsxs("article",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:String(i+1).padStart(2,"0")}),e.jsx("strong",{"data-loc":"client/src/pages/KpiDetail.tsx:8",children:o}),e.jsx(Y,{"data-loc":"client/src/pages/KpiDetail.tsx:8",size:15})]},o))})]})})]})})}const v5=[{icon:mk,title:"Commerce & POS",copy:"Connect loyalty to the transaction moments where identity, earn, redeem, and promotion rules need to work."},{icon:qO,title:"Web apps",copy:"Bring account, points, rewards, challenges, and member offers into the owned digital experience."},{icon:Nh,title:"Mobile apps",copy:"Give members a portable wallet, progress view, personalized promotions, and reward access."},{icon:Rh,title:"Customer data",copy:"Use customer and event data to define segments, lifecycle moments, and better next actions."},{icon:ZO,title:"Campaign & messaging",copy:"Trigger journeys around member progress, behavior, promotions, and return opportunities."},{icon:wo,title:"Rewards & fulfillment",copy:"Connect dynamic reward choices to the currency, preferences, rules, and fulfillment model."},{icon:xd,title:"Receipt verification",copy:"Verify qualifying off-platform product and purchase behavior before issuing points or rewards."},{icon:rr,title:"Data & analytics",copy:"Measure active-member movement, campaign response, and commercial outcomes against the program case."}];function b5(){return e.jsx(De,{"data-loc":"client/src/pages/Integrations.tsx:17",children:e.jsxs("main",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Integrations.tsx:17",eyebrow:"Alma integration ecosystem",title:e.jsxs(e.Fragment,{children:["Make every connected system",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"more useful to loyalty."})]}),copy:"Alma configures the loyalty layer around the systems you already useâso points, promotions, rewards, member identity, and behavior evidence can travel across the commercial stack.",action:e.jsxs(V,{"data-loc":"client/src/pages/Integrations.tsx:17",className:"button button-orange",href:"/demo-request",children:["Map your ecosystem ",e.jsx(Y,{"data-loc":"client/src/pages/Integrations.tsx:17",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"integration-layer-s
558ection",children:e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx(re,{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Partner-ready architecture"}),e.jsxs("h2",{"data-loc":"client/src/pages/Integrations.tsx:17",children:["The loyalty layer connects",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"the value exchange."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Each integration category supports a different part of the member journey. Alma scopes the connections that matter to your programme instead of forcing one generic stack."})]}),e.jsx("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"integration-layer-grid",children:v5.map(({icon:a,title:n,copy:o})=>e.jsxs("article",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",children:e.jsx(a,{"data-loc":"client/src/pages/Integrations.tsx:17",size:20})}),e.jsx("h3",{"data-loc":"client/src/pages/Integrations.tsx:17",children:n}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:o})]},n))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"ecosystem-map-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"site-container ecosystem-map-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx(re,{"data-loc":"client/src/pages/Integrations.tsx:17",children:"One member identity"}),e.jsxs("h2",{"data-loc":"client/src/pages/Integrations.tsx:17",children:["Points, promotions, and behavior ",e.jsx("em",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"work everywhere."})]}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"The common points currency stays consistent across connected systems. Dynamic earning rules change by context; dynamic rewards respond to the member, program logic, and available fulfillment options."}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Approved programmes can include optional crypto rewards as one redemption choiceânot as the required underlying currency."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"integration-orbit",children:[e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-core",children:["ALMA",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),e.jsx("strong",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"LOYALTY"})]}),e.jsxs("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item a",children:["WEB",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),"APPS"]}),e.jsxs("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item b",children:["MOBILE",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),"APPS"]}),e.jsxs("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item c",children:["POS +",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),"COMMERCE"]}),e.jsxs("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item d",children:["DATA +",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),"CRM"]}),e.jsxs("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item e",children:["REWARDS",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),"PARTNERS"]}),e.jsxs("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item f",children:["RECEIPT",e.jsx("br",{"data-loc":"client/src/pages/Integrations.tsx:17"}),"VERIFY"]}),e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"orbit-item g",children:"MESSAGING"})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"integration-flow-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Promotion engine example"}),e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"integration-flow",children:[e.jsxs("article",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"01"}),e.jsx("h3",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Define the product or action"}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Set qualifying products, channels, receipts, purchase thresholds, or engagement conditions."})]}),e.jsx("i",{"data-loc":"client/src/pages/Integrations.tsx:17",children:e.jsx(Y,{"data-loc":"client/src/pages/Integrations.tsx:17",size:19})}),e.jsxs("article",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"02"}),e.jsx("h3",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Verify the behavior"}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Use connected transaction, web, mobile, or receipt evidence to confirm the action happened."})]}),e.jsx("i",{"data-loc":"client/src/pages/Integrations.tsx:17",children:e.jsx(Y,{"data-loc":"client/src/pages/Integrations.tsx:17",size:19})}),e.jsxs("article",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"03"}),e.jsx("h3",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Issue dynamic value"}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Apply points, a challenge, a reward option, or a promotion response configured for that member."})]}),e.jsx("i",{"data-loc":"client/src/pages/Integrations.tsx:17",children:e.jsx(Y,{"data-loc":"client/src/pages/Integrations.tsx:17",size:19})}),e.jsxs("article",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"04"}),e.jsx("h3",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Measure the KPI"}),e.jsx("p",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Read the behavior change against AOV, frequency, active members, acquisition, or the relevant program outcome."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",className:"integration-action",children:[e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsx("strong",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"See which systems support your revenue case."}),e.jsx("span",{"data-loc":"client/src/pages/Integrations.tsx:17",children:"Use the KPI playbook to choose the behavior, then use the ROI calculator to model the outcome."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Integrations.tsx:17",children:[e.jsxs(V,{"data-loc":"client/src/pages/Integrations.tsx:17",className:"button button-dark",href:"/kpi",children:["Explore KPIs ",e.jsx(Y,{"data-loc":"client/src/pages/Integrations.tsx:17",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/Integrations.tsx:17",className:"text-link text-link-strong",href:"/roi-calculator",children:["Open calculator ",e.jsx(Y,{"data-loc":"client/src/pages/Integrations.tsx:17",size:15})]})]})]})]})})]})})}const j5=[{icon:lk,number:"01",title:"Loyalty programme engine",copy:"Configure points, tiers, milestones, challenges, earn rules, redemption rules, status, expiry, and program governance around the customer actions you want to change.",link:"/platform/core-loyalty-engine"},{icon:Nh,number:"02",title:"Member apps & web experiences",copy:"Launch branded mobile apps, web apps, microsites, and embedded member journeys that surface identity, wallet, progress, promotions, and rewards.",link:"/integrations"},{icon:wo,number:"03",title:"Rewards marketplace & wallet",copy:"Offer first-party and curated reward options, vouchers, cashback, perks, gift cards, and approved optional crypto reward choices through one member wallet.",link:"/platform/rewards-wallet"},{icon:xd,number:"04",title:"Promotion & receipt campaigns",copy:"Run configurable promotions, challenge campaigns, cashback, product activation, and receipt or invoice verification when transaction data sits outside your own sale.",link:"/kpi/verify-offline-purchases"},{icon:Ph,number:"05",title:"Member growth & advocacy",copy:"Turn customers, buyers, account teams, and channel partners into measurable acquisition and growth engines with referrals, milestones, and targeted incentives.",link:"/kpi/increase-referrals"},{icon:NO,number:"06",title:"Data, analytics & insight",copy:"Bring member, transaction, promotion, referral, and behavior signals into a clearer view of active members, segments, at-risk relationships, and opportunity.",link:"/platform/data-insight"},{icon:Kj,number:"07",title:"Integration architecture",copy:"Connect commerce, POS, CRM, ERP, messaging, data, rewards, receipt verification, mobile apps, and web experiences around a common loyalty identity.",link:"/integrations"},{icon:FO,number:"08",title:"Strategy, launch & optimisation",copy:"Move from business case to programme design, configuration, integration, launch, measurement, and ongoing operating improvement with a single delivery path.",link:"/demo-request"}];function w5(){return e.jsx(De,{"data-loc":"client/src/pages/Offerings.tsx:17",children:e.jsxs("main",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Offerings.tsx:17",eyebrow:"Alma loyalty offerings",title:e.jsxs(e.Fragment,{children:["Everything required to build,",e.jsx("br",{"data-loc":"client/src/pages/Offerings.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"launch, and improve loyalty."})]}),copy:"Alma combines configurable loyalty technology, customer experiences, reward options, promotion tools, data, integrations, and delivery support into one outcomes-led offer.",action:e.jsxs(V,{"data-loc":"client/src/pages/Offerings.tsx:17",className:"button button-orange",href:"/demo-request",children:["Map your programme ",e.jsx(Y,{"data-loc":"client/src/pages/Offerings.tsx:17",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"offerings-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx(re,{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Full capability set"}),e.jsxs("h2",{"data-loc":"client/src/pages/Offerings.tsx:17",children:["One commercial system.",e.jsx("br",{"data-loc":"client/src/pages/Offerings.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Many ways to move behavior."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Choose the layers your program requires today. Alma can configure a focused launch path and expand the experience as member behavior, data, and commercial goals evolve."})]}),e.jsx("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"offerings-grid",children:j5.map(({icon:a,number:n,title:o,copy:i,link:l})=>e.jsxs("article",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Offerings.tsx:17",children:n}),e.jsx("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"offering-icon",children:e.jsx(a,{"data-loc":"client/src/pages/Offerings.tsx:17",size:21})}),e.jsx("h3",{"data-loc":"client/src/pages/Offerings.tsx:17",children:o}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:i}),e.jsxs(V,{"data-loc":"client/src/pages/Offerings.tsx:17",href:l,children:["Explore this layer ",e.jsx(Y,{"data-loc":"client/src/pages/Offerings.tsx:17",size:14})]})]},o))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"offerings-channel-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"site-container offering-channel-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx(re,{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Works across the commercial chain"}),e.jsxs("h2",{"data-loc":"client/src/pages/Offerings.tsx:17",children:["Direct, retail, B2B,",e.jsx("br",{"data-loc":"client/src/pages/Offerings.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"B2B2B, and distribution."})]}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Where the purchase happens changes how data is capturedânot whether loyalty can influence the behavior. Alma can work with direct feeds, connected systems, product codes, receipt scanning, invoice evidence, and member applications."}),e.jsxs(V,{"data-loc":"client/src/pages/Offerings.tsx:17",href:"/kpi",className:"button button-light",children:["Explore KPI playbook ",e.jsx(Y,{"data-loc":"client/src/pages/Offerings.tsx:17",size:16})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"chain-list",children:[e.jsxs("article",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"01"}),e.jsx("strong",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Consumer & member"}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Earn, progress, redeem, refer, review, and return."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"02"}),e.jsx("strong",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Buyer & account"}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Order more often, trade up, adopt, and retain the relationship."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"03"}),e.jsx("strong",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Partner & distributor"}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Prioritize sell-through, activation, and approved downstream outcomes."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx("span",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"04"}),e.jsx("strong",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Commercial operator"}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Configure rules, campaigns, rewards, reporting, and program health."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"offerings-cta-section",children:e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Offerings.tsx:17",children:[e.jsx(re,{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Start from the outcome"}),e.jsxs("h2",{"data-loc":"client/src/pages/Offerings.tsx:17",children:["Choose a KPI.",e.jsx("br",{"data-loc":"client/src/pages/Offerings.tsx:17"}),e.jsx("em",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Model the case."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Offerings.tsx:17",children:"Alma starts with the behavior you need to influence and the revenue case that makes the program worth operating. The ROI calculator turns that conversation into editable assumptions."}),e.jsxs(V,{"data-loc":"client/src/pages/Offerings.tsx:17",href:"/roi-calculator",className:"button button-orange",children:["Open ROI calculator ",e.jsx(Y,{"data-loc":"client/src/pages/Offerings.tsx:17",size:16})]})]})})]})})}function C5(){const[a]=ir(),n=b.useMemo(()=>new URLSearchParams(a.split("?")[1]??"").get("token"),[a]),o=Ke.leads.verifyReport.useMutation();b.useEffect(()=
558>{n&&!o.isPending&&!o.data&&!o.error&&o.mutate({token:n})},[n,o]);const i=!!n&&o.isPending,l=o.data?.verified===!0;return e.jsx(De,{"data-loc":"client/src/pages/ReportVerification.tsx:20",children:e.jsx("main",{"data-loc":"client/src/pages/ReportVerification.tsx:21",className:"report-verification-page",children:e.jsx("section",{"data-loc":"client/src/pages/ReportVerification.tsx:21",className:"report-verification-hero",children:e.jsxs("div",{"data-loc":"client/src/pages/ReportVerification.tsx:21",className:"site-container report-verification-inner",children:[e.jsx(re,{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:"ADVANCED REPORT PATH"}),e.jsx("div",{"data-loc":"client/src/pages/ReportVerification.tsx:21",className:"verification-icon",children:i?e.jsx(Pa,{"data-loc":"client/src/pages/ReportVerification.tsx:21",className:"animate-spin"}):l?e.jsx(nt,{"data-loc":"client/src/pages/ReportVerification.tsx:21"}):e.jsx(fd,{"data-loc":"client/src/pages/ReportVerification.tsx:21"})}),e.jsx("h1",{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:i?"Verifying your report request.":l?e.jsxs(e.Fragment,{children:["Your advanced request is ",e.jsx("em",{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:"verified."})]}):"This verification link is not available."}),e.jsx("p",{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:i?"Please hold while Alma confirms your request.":l?"Your submitted ROI model and selected decisioning scope are now ready for the Alma review queue. A team member will validate the evidence, any requested public-programme comparison material, and the recommended next steps before an advanced report is released.":"Verification links are single-use and expire after 72 hours. Request a new ROI report model if you still need a review."}),l&&e.jsxs("div",{"data-loc":"client/src/pages/ReportVerification.tsx:21",className:"verification-path",children:[e.jsxs("span",{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:[e.jsx(Ba,{"data-loc":"client/src/pages/ReportVerification.tsx:21",size:16})," REQUEST VERIFIED"]}),e.jsx("i",{"data-loc":"client/src/pages/ReportVerification.tsx:21"}),e.jsx("span",{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:"ALMA REVIEW"}),e.jsx("i",{"data-loc":"client/src/pages/ReportVerification.tsx:21"}),e.jsx("span",{"data-loc":"client/src/pages/ReportVerification.tsx:21",children:"ADVANCED REPORT"})]})]})})})})}const mp={aov:{title:"Increase average order value",kpi:"Average order value",mechanic:"Threshold missions, bonus earn, bundles, and progress-to-reward moments.",proof:"Model the AOV lift on active members and compare it with reward cost."},frequency:{title:"Increase purchase frequency",kpi:"Orders per member",mechanic:"Streaks, time-bound offers, replenishment prompts, and milestone earn rules.",proof:"Model the frequency lift separately from basket lift and monitor return behavior."},acquisition:{title:"Acquire better-fit customers",kpi:"Referred customer acquisition",mechanic:"Referral offers, advocate rewards, partner actions, and verified purchase earn rules.",proof:"Model verified referral economics and only reward the qualifying behavior."},activation:{title:"Create more active members",kpi:"Active-member rate",mechanic:"Join incentives, profile completion, first-action rewards, and relevant progress journeys.",proof:"Separate enrollment from active participation before projecting revenue."}};function S5(){const[a,n]=b.useState(1e6),[o,i]=b.useState(60),[l,d]=b.useState(5),[m,h]=b.useState("frequency"),[g,f]=b.useState(1e5),[y,x]=b.useState(6e4),j=b.useMemo(()=>{const w=a>=5e5?30:a>=25e4?20:10,E=o>=50?30:o>=35?20:10,k=l>=4?30:l>=2?20:10;return w+E+k},[a,o,l]),C=g+y,R=mp[m];return e.jsx(De,{"data-loc":"client/src/pages/Tools.tsx:33",children:e.jsxs("main",{"data-loc":"client/src/pages/Tools.tsx:33",className:"tools-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Tools.tsx:34",eyebrow:"Free brand tools",title:e.jsxs(e.Fragment,{children:["No black-box ROI.",e.jsx("br",{"data-loc":"client/src/pages/Tools.tsx:34"}),e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:34",children:"Put every assumption under pressure."})]}),copy:"If a number cannot be explained, challenged, or changed, it should not be used to approve programme spend. These public planning tools make the first commercial case visible before you buy anything."}),e.jsx("section",{"data-loc":"client/src/pages/Tools.tsx:35",className:"tools-intro",children:e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:35",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:35",className:"tools-intro-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:35",children:[e.jsx(re,{"data-loc":"client/src/pages/Tools.tsx:35",children:"START WITH THE HARD QUESTION"}),e.jsxs("h2",{"data-loc":"client/src/pages/Tools.tsx:35",children:["Tools for decisions your team can",e.jsx("br",{"data-loc":"client/src/pages/Tools.tsx:35"}),e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:35",children:"actually defend."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Start with the question that can make or break the programme. Move into the ROI calculator when you are ready to model the exact revenue channels, cost timing, active-member behavior, and implementation ramp."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:35",className:"tools-route-grid",children:[e.jsxs(V,{"data-loc":"client/src/pages/Tools.tsx:35",href:"/program-health",className:"tool-route",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:35",children:"01 / REVIEW THE PROGRAM"}),e.jsx(Fp,{"data-loc":"client/src/pages/Tools.tsx:35",size:26}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Program Health Check"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:35",children:"For teams with a live program: review engagement, economics, public context, and data readiness before changing a rule."}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:35",children:["Find the operating gap ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:35",size:16})]})]}),e.jsxs(V,{"data-loc":"client/src/pages/Tools.tsx:35",href:"/roi-calculator",className:"tool-route tool-route-primary",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:35",children:"02 / BUILD THE CASE"}),e.jsx(Ij,{"data-loc":"client/src/pages/Tools.tsx:35",size:26}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Loyalty ROI calculator"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Build an editable five-year model from channel economics, cost architecture, and member behavior."}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:35",children:["Pressure-test the case ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:35",size:16})]})]}),e.jsxs("a",{"data-loc":"client/src/pages/Tools.tsx:35",href:"#financial-fit",className:"tool-route",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:35",children:"03 / CHECK THE FIT"}),e.jsx(Bj,{"data-loc":"client/src/pages/Tools.tsx:35",size:26}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Financial fit snapshot"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Use three signals to identify whether a deeper loyalty model is worth building."}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:35",children:["Test the economic surface ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:35",size:16})]})]}),e.jsxs("a",{"data-loc":"client/src/pages/Tools.tsx:35",href:"#behavior-map",className:"tool-route",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:35",children:"04 / PLAN THE LEVER"}),e.jsx(uk,{"data-loc":"client/src/pages/Tools.tsx:35",size:26}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Behavior map"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Translate the KPI you want to move into customer mechanics and measurable proof."}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:35",children:["Choose the action to earn ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:35",size:16})]})]}),e.jsxs("a",{"data-loc":"client/src/pages/Tools.tsx:35",href:"#cost-planner",className:"tool-route",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:35",children:"05 / SCOPE THE COST"}),e.jsx(Ls,{"data-loc":"client/src/pages/Tools.tsx:35",size:26}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Cost planner"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:35",children:"Keep recurring platform expense and one-time delivery cost visible before you model returns."}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:35",children:["Expose the cost base ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:35",size:16})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Tools.tsx:36",id:"financial-fit",className:"tool-workbench",children:e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:36",className:"site-container tool-workbench-gri
558d",children:[e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:36",children:[e.jsx(re,{"data-loc":"client/src/pages/Tools.tsx:36",children:"Financial fit snapshot"}),e.jsxs("h2",{"data-loc":"client/src/pages/Tools.tsx:36",children:["Is there enough economic surface",e.jsx("br",{"data-loc":"client/src/pages/Tools.tsx:36"}),e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:36",children:"to model loyalty seriously?"})]}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:36",children:"Use your best current numbers. This is a simple screening tool, not a recommendation or a forecast."}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:36",className:"tool-input-grid",children:[e.jsxs("label",{"data-loc":"client/src/pages/Tools.tsx:36",children:["Annual revenue",e.jsx("input",{"data-loc":"client/src/pages/Tools.tsx:36",type:"number",value:a,onChange:w=>n(Number(w.target.value)||0)}),e.jsxs("small",{"data-loc":"client/src/pages/Tools.tsx:36",children:["$",a.toLocaleString()," entered"]})]}),e.jsxs("label",{"data-loc":"client/src/pages/Tools.tsx:36",children:["Gross margin",e.jsx("input",{"data-loc":"client/src/pages/Tools.tsx:36",type:"number",value:o,onChange:w=>i(Number(w.target.value)||0)}),e.jsxs("small",{"data-loc":"client/src/pages/Tools.tsx:36",children:[o,"% entered"]})]}),e.jsxs("label",{"data-loc":"client/src/pages/Tools.tsx:36",children:["Purchase frequency",e.jsx("input",{"data-loc":"client/src/pages/Tools.tsx:36",type:"number",value:l,onChange:w=>d(Number(w.target.value)||0)}),e.jsxs("small",{"data-loc":"client/src/pages/Tools.tsx:36",children:[l," orders / customer / year"]})]})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/Tools.tsx:36",className:"fit-result",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:36",children:"FIT SCREEN / DIRECTIONAL"}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:36",children:[j,e.jsx("small",{"data-loc":"client/src/pages/Tools.tsx:36",children:"/ 90"})]}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:36",children:j>=70?"The model has enough repeat-behavior and contribution surface to warrant a full ROI case.":j>=45?"There is a possible case, but assumptions and addressable behavior need closer discovery.":"Start with data discovery and use the calculator to test specific reachable channels."}),e.jsxs(V,{"data-loc":"client/src/pages/Tools.tsx:36",href:"/roi-calculator",className:"button button-orange",children:["Model the full case ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:36",size:16})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Tools.tsx:37",id:"behavior-map",className:"behavior-tool",children:e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:37",className:"site-container behavior-tool-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:37",children:[e.jsx(re,{"data-loc":"client/src/pages/Tools.tsx:37",children:"Behavior modification map"}),e.jsxs("h2",{"data-loc":"client/src/pages/Tools.tsx:37",children:["Choose the customer action.",e.jsx("br",{"data-loc":"client/src/pages/Tools.tsx:37"}),e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:37",children:"Then design the value exchange."})]}),e.jsx("div",{"data-loc":"client/src/pages/Tools.tsx:37",className:"priority-switch",children:Object.keys(mp).map(w=>e.jsx("button",{"data-loc":"client/src/pages/Tools.tsx:37",onClick:()=>h(w),className:m===w?"active":"",children:mp[w].kpi},w))})]}),e.jsxs("article",{"data-loc":"client/src/pages/Tools.tsx:37",className:"behavior-result",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:37",children:"THE PRIORITY"}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:37",children:R.title}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:37",children:[e.jsx("b",{"data-loc":"client/src/pages/Tools.tsx:37",children:"LOYALTY MECHANIC"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:37",children:R.mechanic})]}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:37",children:[e.jsx("b",{"data-loc":"client/src/pages/Tools.tsx:37",children:"WHAT TO PROVE"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:37",children:R.proof})]}),e.jsxs(V,{"data-loc":"client/src/pages/Tools.tsx:37",href:`/kpi/${m}`,className:"text-link text-link-strong",children:["See the KPI playbook ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:37",size:15})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Tools.tsx:38",id:"cost-planner",className:"cost-tool",children:e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:38",className:"site-container cost-tool-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:38",children:[e.jsx(re,{"data-loc":"client/src/pages/Tools.tsx:38",children:"Programme cost planner"}),e.jsxs("h2",{"data-loc":"client/src/pages/Tools.tsx:38",children:["Separate the recurring platform",e.jsx("br",{"data-loc":"client/src/pages/Tools.tsx:38"}),e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:38",children:"from the cost to get live."})]}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:38",children:"Keep an annual operating view and one-time delivery view distinct before you ask any return model to carry them."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:38",className:"cost-planner-card",children:[e.jsxs("label",{"data-loc":"client/src/pages/Tools.tsx:38",children:["Annual softw
558are and operating cost",e.jsx("input",{"data-loc":"client/src/pages/Tools.tsx:38",type:"number",value:g,onChange:w=>f(Number(w.target.value)||0)})]}),e.jsxs("label",{"data-loc":"client/src/pages/Tools.tsx:38",children:["One-time setup and delivery",e.jsx("input",{"data-loc":"client/src/pages/Tools.tsx:38",type:"number",value:y,onChange:w=>x(Number(w.target.value)||0)})]}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:38",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:38",children:"YEAR-ONE INVESTMENT VIEW"}),e.jsxs("strong",{"data-loc":"client/src/pages/Tools.tsx:38",children:["$",C.toLocaleString()]})]}),e.jsxs(V,{"data-loc":"client/src/pages/Tools.tsx:38",href:"/roi-calculator",className:"text-link text-link-strong",children:["Carry these costs into the ROI model ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:38",size:15})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Tools.tsx:39",className:"tool-loop",children:e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:39",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:39",className:"tool-loop-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/Tools.tsx:39",children:"The customer engine behind ROI"}),e.jsxs("h2",{"data-loc":"client/src/pages/Tools.tsx:39",children:["Revenue is the outcome.",e.jsx("br",{"data-loc":"client/src/pages/Tools.tsx:39"}),e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Engagement is how you earn it."})]}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:39",children:"A strong programme gives customers a reason to return, spend a little more, share feedback, refer others, and repeat the value exchange. That customer behavior is what the calculator turns into an ROI case."})]}),e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:39",className:"tool-loop-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/Tools.tsx:39",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:39",children:"01 / ENGAGE"}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Make value visible"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Dynamic earn rules, relevant rewards, and clear progress give the next action a reason."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Tools.tsx:39",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:39",children:"02 / GROW"}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Change the behavior"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Use targeted mechanics to increase basket value, purchase frequency, and active participation."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Tools.tsx:39",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:39",children:"03 / AMPLIFY"}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Turn value into advocacy"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Reward referrals, reviews, verified purchase activity, and the feedback that strengthens the programme."})]}),e.jsxs("article",{"data-loc":"client/src/pages/Tools.tsx:39",children:[e.jsx("span",{"data-loc":"client/src/pages/Tools.tsx:39",children:"04 / PROVE"}),e.jsx("h3",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Measure the return"}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:39",children:"Connect active-member behavior to revenue lift, contribution, program cost, and executive evidence."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/Tools.tsx:40",className:"tools-final",children:e.jsxs("div",{"data-loc":"client/src/pages/Tools.tsx:40",className:"site-container",children:[e.jsx(Fp,{"data-loc":"client/src/pages/Tools.tsx:40",size:26}),e.jsxs("h2",{"data-loc":"client/src/pages/Tools.tsx:40",children:["Bring the assumption your team will ",e.jsx("em",{"data-loc":"client/src/pages/Tools.tsx:40",children:"challenge."})]}),e.jsx("p",{"data-loc":"client/src/pages/Tools.tsx:40",children:"Alma helps turn the first model into a scoped loyalty plan with evidence, mechanics, implementation sequence, and a human review path. If the case does not survive scrutiny, do not force it."}),e.jsxs(V,{"data-loc":"client/src/pages/Tools.tsx:40",href:"/roi-calculator",className:"button button-dark",children:["Pressure-test the ROI case ",e.jsx(Y,{"data-loc":"client/src/pages/Tools.tsx:40",size:16})]})]})})]})})}const Zp=[{slug:"active-members",kicker:"Active membership",metric:"Activation rate",title:"Enrollment creates the audience. <em>Active participation creates the value.</em>",copy:"A large membership base is not the target. Alma models the members who reach a first-value moment, repeat the behavior, and actually move the programme economics.",thesis:"Invest where the unit economics improve: recruitment, first value, repeat engagement, and the contribution an active member creates after cost.",levers:[{title:"Recruitable base",copy:"The reachable customers who can realistically join."},{title:"First-value moment",copy:"The earliest action that gives a member a reason to stay active."},{title:"Repeat engagement",copy:"Cadence that sustains participation without fatigue."},{title:"Unit economics",copy:"The contribution an active member creates after incentives."}],considerations:["Enrollment rate and active-member rate are distinct.","Time to first value determines activation quality.","Incremental value needs to exceed activation and reward cost.","Repeat behavior is stronger evidence than sign-up volume."],faq:{question:"Why not maximize enrollment alone?",answer:"Enrollment without activation adds cost and noise. The decision is whether the value created by active members exceeds the cost to acquire, activate, and serve them."}
558,defaults:{reachableCustomers:1e5,enrollmentRate:45,activationRate:45,currentActiveMembers:12e3,annualValuePerMember:320,grossMargin:60,activationCostPerMember:4,rewardCostPerActivatedMember:6},fields:[{key:"reachableCustomers",label:"Reachable customers",hint:"Customers the programme can identify",suffix:" people"},{key:"enrollmentRate",label:"Enrollment rate",hint:"Reachable customers expected to join",suffix:"%"},{key:"activationRate",label:"Activation rate",hint:"Enrolled customers who become active",suffix:"%"},{key:"currentActiveMembers",label:"Current active members",hint:"Existing baseline",suffix:" people"},{key:"annualValuePerMember",label:"Annual value per active member",hint:"Annual spend influenced by active behavior",prefix:"$"},{key:"grossMargin",label:"Gross margin",hint:"Contribution before programme costs",suffix:"%"},{key:"activationCostPerMember",label:"Activation cost per member",hint:"Cost to reach first value",prefix:"$"},{key:"rewardCostPerActivatedMember",label:"Reward cost per activated member",hint:"Value exchanged with newly active members",prefix:"$"}]},{slug:"purchase-frequency",kicker:"Purchase frequency",metric:"Profitable repeat visits",title:"Create <em>more valuable visits</em>ânot just more messages.",copy:"Frequency is a powerful lever only when the additional visits are attributable to the programme, profitable after reward cost, and not simply pulled forward from a future visit.",thesis:"Model baseline cadence, incremental visits, fatigue, and reward cost together. A larger count is not the same as better economics.",levers:[{title:"Baseline cadence",copy:"What customers would have done anyway."},{title:"Incrementality",copy:"The additional profitable visits attributable to the programme."},{title:"Cadence & fatigue",copy:"A reward rhythm that keeps the programme useful without over-messaging."},{title:"Reward cost & margin",copy:"The cost of each incremental visit against contribution."}],considerations:["Baseline frequency and eligible categories.","Control or matched-cohort comparisons.","Reward cost per incremental visit.","Diminishing returns and message fatigue."],faq:{question:"How do you avoid crediting visits that would have happened anyway?",answer:"Anchor the model in baseline behavior and compare results with a control or matched cohort. Only the incremental, profitable visits belong in the loyalty case."},defaults:{activeMembers:2e4,annualVisits:5,frequencyLift:10,averageOrderValue:72,grossMargin:60,rewardCostPerIncrementalVisit:2},fields:[{key:"activeMembers",label:"Active members",hint:"Members whose behavior is addressable",suffix:" people"},{key:"annualVisits",label:"Baseline visits per year",hint:"Current yearly purchase cadence",suffix:" visits"},{key:"frequencyLift",label:"Frequency lift",hint:"Incremental repeat behavior",suffix:"%"},{key:"averageOrderValue",label:"Average order value",hint:"Revenue per incremental visit",prefix:"$"},{key:"grossMargin",label:"Gross margin",hint:"Contribution before reward cost",suffix:"%"},{key:"rewardCostPerIncrementalVisit",label:"Reward cost per incremental visit",hint:"Cost of the value exchange",prefix:"$"}]},{slug:"average-order-value",kicker:"Average order value",metric:"Margin-protected basket growth",title:"Grow the basket <em>without giving away the margin.</em>",copy:"Bigger baskets help only when the added value outperforms the incentive. Alma models incremental AOV against discount leakage, reward cost, and gross margin.",thesis:"Use threshold rewards, bundle logic, and progress-to-reward mechanics to reward genuine basket expansionânot behavior that would have occurred anyway.",levers:[{title:"Incremental basket",copy:"The added value the programme actually caused."},{title:"Mix shift",copy:"Whether higher AOV reflects a better mix or only discounting."},{title:"Threshold rewards",copy:"Spend targets that lift basket value without eroding margin."},{title:"Discount leakage",copy:"Incentive value granted to customers who would have bought anyway."}],considerations:["Incremental basket value versus mix shift.","Threshold rewards, bundles, and cross-sell.","Premium benef
558its and their cost.","Discount leakage and net margin impact."],faq:{question:"Does a higher AOV always help?",answer:"No. If the value of the reward costs more than the added margin, AOV can rise while profit falls. The calculator tests that tradeoff directly."},defaults:{activeMembers:2e4,annualOrders:5,averageOrderValue:72,aovLift:10,grossMargin:60,rewardCostPerIncrementalOrder:2},fields:[{key:"activeMembers",label:"Active members",hint:"Members eligible for the incentive",suffix:" people"},{key:"annualOrders",label:"Orders per active member",hint:"Current annual order cadence",suffix:" orders"},{key:"averageOrderValue",label:"Baseline AOV",hint:"Current average order value",prefix:"$"},{key:"aovLift",label:"AOV lift",hint:"Incremental basket increase",suffix:"%"},{key:"grossMargin",label:"Gross margin",hint:"Contribution before programme costs",suffix:"%"},{key:"rewardCostPerIncrementalOrder",label:"Reward cost per incremental order",hint:"Cost of the threshold or bundle",prefix:"$"}]},{slug:"retention-clv",kicker:"Retention & customer lifetime value",metric:"Profitable retention",title:"Keep the customers whose <em>future value exceeds the cost to retain them.</em>",copy:"Retention is profitable when the value kept outruns the incentive you spend. Alma models retention economics and lifetime valueânot just churn rate.",thesis:"Avoid blanket save offers. Use churn risk, cohort timing, service-cost savings, and future contribution to decide which relationships are worth retaining.",levers:[{title:"Retention economics",copy:"Future value retained after programme and service cost."},{title:"Churn risk",copy:"Who is genuinely at risk versus who would have stayed."},{title:"Cohort timing",copy:"When intervention changes the outcome."},{title:"Lifetime value",copy:"Future contribution that justifies the cost to retain."}],considerations:["Churn risk and cohort timing.","Customer lifetime value after programme cost.","Service-cost savings and offer cost.","Over-incentivizing customers who would have stayed anyway."],faq:{question:"How do you avoid paying loyal customers to stay?",answer:"Target genuine churn risk and measure outcomes against a baseline or holdout. Incentives should go to relationships that would otherwise lapse."},defaults:{atRiskMembers:15e3,retentionLift:8,customerLifetimeValue:500,grossMargin:60,serviceCostSaved:15,interventionCostPerMember:10},fields:[{key:"atRiskMembers",label:"At-risk members",hint:"Customers likely to lapse",suffix:" people"},{key:"retentionLift",label:"Retention lift",hint:"Incremental relationships retained",suffix:"%"},{key:"customerLifetimeValue",label:"Customer lifetime value",hint:"Future revenue per retained relationship",prefix:"$"},{key:"grossMargin",label:"Gross margin",hint:"Contribution from retained value",suffix:"%"},{key:"serviceCostSaved",label:"Service cost saved",hint:"Avoided recovery or replacement cost",prefix:"$"},{key:"interventionCostPerMember",label:"Intervention cost per member",hint:"Cost of the save motion",prefix:"$"}]}],A5=a=>Zp.find(n=>n.slug===a)??Zp[0];function R5(){return e.jsx(De,{"data-loc":"client/src/pages/Strategy.tsx:7",children:e.jsxs("main",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"strategy-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/Strategy.tsx:7",eyebrow:"Loyalty Strategy",title:e.jsxs(e.Fragment,{children:["Choose the behavior.",e.jsx("br",{"data-loc":"client/src/pages/Strategy.tsx:7"}),e.jsx("em",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Model the economics."})]}),copy:"Each strategy path isolates the customer behavior you want to change, the mechanics that can move it, and the net economics that must justify the programme.",action:e.jsxs(V,{"data-loc":"client/src/pages/Strategy.tsx:7",href:"/opportunity-estimator",className:"button button-orange",children:["Estimate loyalty ROI ",e.jsx(Y,{"data-loc":"client/src/pages/Strategy.tsx:7",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"strategy-index",children:e.jsxs("div",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/Strategy.tsx:7",children:[e.jsx(re,{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Growth levers"}),e.jsxs("h2",{"data-loc":"client/src/pages/Strategy.tsx:7",children:["Four decisions. ",e.jsx("em",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"One revenue case."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Loyalty works when an incentive changes a customer action and that action creates more contribution than the value you exchange."})]}),e.jsx("div",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"strategy-card-grid",children:Zp.map((a,n)=>e.jsxs(V,{"data-loc":"client/src/pages/Strategy.tsx:7",href:`/strategy/${a.slug}`,className:"strategy-card",children:[e.jsxs("span",{"data-loc":"client/src/pages/Strategy.tsx:7",children:["0",n+1," / ",a.metric]}),e.jsx("h3",{"data-loc":"client/src/pages/Strategy.tsx:7",children:a.metric}),e.jsx("p",{"data-loc":"client/src/pages/Strategy.tsx:7",children:a.copy}),e.jsxs("strong",{"data-loc":"client/src/pages/Strategy.tsx:7",children:["Open calculator ",e.jsx(Y,{"data-loc":"client/src/pages/Strategy.tsx:7",size:16})]})]},a.slug))})]})}),e.jsx("section",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"strategy-tools",children:e.jsxs("div",{"data-loc":"client/src/pages/Strategy.tsx:7",className:"site-container strategy-tools-grid",children:[e.jsxs(V,{"data-loc":"client/src/pages/Strategy.tsx:7",href:"/program-matcher",className:"strategy-tool",children:[e.jsx(Gj,{"data-loc":"client/src/pages/Strategy.tsx:7"}),e.jsx("span",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"PROGRAM MATCHER"}),e.jsx("h3",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Find the loyalty structure that fits your operating reality."}),e.jsx("p",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Use four short questions to surface the growth lever and modelling path worth testing first."}),e.jsxs("b",{"data-loc":"client/src/pages/Strategy.tsx:7",children:["Match the programme ",e.jsx(Y,{"data-loc":"client/src/pages/Strategy.tsx:7",size:16})]})]}),e.jsxs(V,{"data-loc":"client/src/pages/Strategy.tsx:7",href:"/opportunity-estimator",className:"strategy-tool strategy-tool-dark",children:[e.jsx(Bj,{"data-loc":"client/src/pages/Strategy.tsx:7"}),e.jsx("span",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"OPPORTUNITY ESTIMATOR"}),e.jsx("h3",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Could loyalty make money for this business?"}),e.jsx("p",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Run a fast, transparent screen before you build the complete executive ROI case."}),e.jsxs("b",{"data-loc":"client/src/pages/Strategy.tsx:7",children:["Estimate opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/Strategy.tsx:7",size:16})]})]}),e.jsxs(V,{"data-loc":"client/src/pages/Strategy.tsx:7",href:"/roi-calculator",className:"strategy-tool",children:[e.jsx(Yj,{"data-loc":"client/src/pages/Strategy.tsx:7"}),e.jsx("span",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"FULL ROI MODEL"}),e.jsx("h3",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Build the five-year case in the order finance will question it."}),e.jsx("p",{"data-loc":"client/src/pages/Strategy.tsx:7",children:"Bring channel revenue, cost architecture, member behavior, and the delivery ramp into one audit-ready model."}),e.jsxs("b",{"data-loc":"client/src/pages/Strategy.tsx:7",children:["Open full model ",e.jsx(Y,{"data-loc":"client/src/pages/Strategy.tsx:7",size:16})]})]})]})})]})})}const Pe=(a,n)=>Math.max(0,a[n]??0),ua=a=>a/100;
558function eh(a,n){if(a==="active-members"){const y=Pe(n,"reachableCustomers"),x=y*ua(Pe(n,"enrollmentRate"))*ua(Pe(n,"activationRate")),j=Math.max(0,x-Pe(n,"currentActiveMembers")),C=j*Pe(n,"annualValuePerMember"),R=C*ua(Pe(n,"grossMargin")),w=x*Pe(n,"activationCostPerMember")+j*Pe(n,"rewardCostPerActivatedMember"),E=R-w;return{label:"Active membership",primaryValue:j,primaryLabel:"incremental active members",revenue:C,contribution:R,programCost:w,netReturn:E,roi:w>0?E/w*100:0,drivers:[{label:"Reachable customers",value:y},{label:"Target active rate",value:Pe(n,"enrollmentRate")*Pe(n,"activationRate")/100,format:"percent"},{label:"Annual value per active member",value:Pe(n,"annualValuePerMember"),format:"currency"}]}}if(a==="purchase-frequency"){const y=Pe(n,"activeMembers"),x=y*Pe(n,"annualVisits")*ua(Pe(n,"frequencyLift")),j=x*Pe(n,"averageOrderValue"),C=j*ua(Pe(n,"grossMargin")),R=x*Pe(n,"rewardCostPerIncrementalVisit"),w=C-R;return{label:"Purchase frequency",primaryValue:x,primaryLabel:"incremental visits",revenue:j,contribution:C,programCost:R,netReturn:w,roi:R>0?w/R*100:0,drivers:[{label:"Active members",value:y},{label:"Baseline visits per year",value:Pe(n,"annualVisits")},{label:"Frequency lift",value:Pe(n,"frequencyLift"),format:"percent"}]}}if(a==="average-order-value"){const y=Pe(n,"activeMembers"),x=y*Pe(n,"annualOrders"),j=x*Pe(n,"averageOrderValue")*ua(Pe(n,"aovLift")),C=j*ua(Pe(n,"grossMargin")),R=x*ua(Pe(n,"aovLift"))*Pe(n,"rewardCostPerIncrementalOrder"),w=C-R;return{label:"Average order value",primaryValue:j,primaryLabel:"incremental basket revenue",revenue:j,contribution:C,programCost:R,netReturn:w,roi:R>0?w/R*100:0,drivers:[{label:"Active members",value:y},{label:"Baseline average order",value:Pe(n,"averageOrderValue"),format:"currency"},{label:"AOV lift",value:Pe(n,"aovLift"),format:"percent"}]}}if(a==="retention-clv"){const y=Pe(n,"atRiskMembers"),x=y*ua(Pe(n,"retentionLift")),j=x*Pe(n,"customerLifetimeValue"),C=j*ua(Pe(n,"grossMargin"))+x*Pe(n,"serviceCostSaved"),R=y*Pe(n,"interventionCostPerMember"),w=C-R;return{label:"Retention & customer lifetime value",primaryValue:x,primaryLabel:"relationships retained",revenue:j,contribution:C,programCost:R,netReturn:w,roi:R>0?w/R*100:0,drivers:[{label:"At-risk members",value:y},{label:"Retention lift",value:Pe(n,"retentionLift"),format:"percent"},{label:"Customer lifetime value",value:Pe(n,"customerLifetimeValue"),format:"currency"}]}}const o=Pe(n,"annualRevenue"),i=Pe(n,"grossMargin"),l=ua(Pe(n,"activeMemberRate")),d=ua(Pe(n,"modeledLift")),m=o*l*d,h=m*ua(i),g=Pe(n,"annualProgramCost")+Pe(n,"setupCost"),f=h-g;return{label:"Loyalty opportunity",primaryValue:f,primaryLabel:"directional year-one net return",revenue:m,contribution:h,programCost:g,netReturn:f,roi:g>0?f/g*100:0,drivers:[{label:"Annual revenue",value:o,format:"currency"},{label:"Active-member rate",value:Pe(n,"activeMemberRate"),format:"percent"},{label:"Modeled behavior lift",value:Pe(n,"modeledLift"),format:"percent"}]}}const io=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}),th=new Intl.NumberFormat("en-US",{maximumFractionDigits:0});function E5(a,n){return n==="currency"?io.format(a):n==="percent"?`${a.toFixed(1)}%`:th.format(a)}function N5({strategy:a}){const[n,o]=b.useState(a.defaults),i=b.useMemo(()=>eh(a.slug,n),[a.slug,n]),l=(d,m)=>o(h=>({...h,[d]:m}));return e.jsx("section",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-calculator",children:e.jsxs("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"site-container strategy-calculator-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-inputs",children:[e.jsxs("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-calculator-heading",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"LIVE STRATEGY MODEL"}),e.jsxs("h2",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:["Test the variable",e.jsx("br",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16"}),e.jsx("em",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"that moves the outcome."})]}),e.jsx("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"Every input is editable. The output is directional planning, not a forecast or guarantee."})]}),e.jsx("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-field-grid",children:a.fields.map(d=>e.jsxs("label",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsxs("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("strong",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:d.label}),e.jsx("small",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:d.hint})]}),e.jsxs("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-number",children:[e.jsx("em",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:d.prefix}),e.jsx("input",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",inputMode:"decimal",value:th.format(n[d.key]),onChange:m=>l(d.key,Number(m.target.value.replace(/[^0-9.]/g,""))||0)}),e.jsx("em",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:d.suffix})]})]},d.key))}),e.jsxs("button",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",type:"button",className:"reset-button",onClick:()=>o(a.defaults),children:[e.jsx(Co,{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",size:14})," Reset assumptions"]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-result",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"INCREMENTAL ECONOMICS"}),e.jsx("h3",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:i.primaryLabel}),e.jsx("strong",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:i.netReturn>=0?"positive":"negative",children:i.primaryLabel.includes("revenue")||i.primaryLabel.includes("return")?io.format(i.primaryValue):th.format(i.primaryValue)}),e.jsxs("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-result-rows",children:[e.jsxs("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"Incremental revenue"}),e.jsx("b",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:io.format(i.revenue)})]}),e.jsxs("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"Contribution after margin"}),e.jsx("b",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:io.format(i.contribution)})]}),e.jsxs("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"Programme cost"}),e.jsx("b",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:io.format(i.programCost)})]}),e.jsxs("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"Net return"}),e.jsx("b",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:i.netReturn>=0?"positive":"negative",children:io.format(i.netReturn)})]}),e.jsxs("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:"ROI on programme cost"}),e.jsxs("b",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[Math.round(i.roi),"%"]})]})]}),e.jsx("div",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",className:"strategy-drivers",children:i.drivers.map(d=>e.jsxs("p",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:d.label}),e.jsx("b",{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",children:E5(d.value,d.format)})]},d.label))}),e.jsxs(V,{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",href:`/roi-calculator?kpi=${a.slug}`,className:"button button-orange full-width",children:["Carry into the full ROI model ",e.jsx(Y,{"data-loc":"client/src/pages/StrategyCalculator.tsx:16",size:16})]})]})]})})}function P5(){const[,a]=Cn("/strategy/:strategy"),n=A5(a?.strategy),o=n.title.split("<em>"),i=o.length>1?e.jsxs(e.Fragment,{children:[o[0],e.jsx("em",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:o[1].replace("</em>","")})]}):n.title;return e.jsx(De,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:e.jsxs("main",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"strategy-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",eyebrow:`Loyalty Strategy / ${n.metric}`,title:i,copy:n.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",href:"#calculator",className:"button button-orange",children:["Model ",n.metric," ",e.jsx(Y,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"strategy-thesis",children:e.jsxs("div",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:"The economics behind the lever"}),e.jsx("p",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:n.thesis}),e.jsx("div",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"strategy-levers",children:n.levers.map(l=>e.jsxs("article",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:[e.jsx("span",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:e.jsx(nt,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",size:16})}),e.jsx("h3",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:l.title}),e.jsx("p",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:l.copy})]}
558,l.title))})]})}),e.jsx("section",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"strategy-considerations",children:e.jsxs("div",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:[e.jsx(re,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:"What the model considers"}),e.jsxs("h2",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:["Evidence before ",e.jsx("em",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:"optimism."})]})]}),e.jsx("ul",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:n.considerations.map(l=>e.jsxs("li",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:[e.jsx(nt,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",size:15}),l]},l))})]})}),e.jsx("div",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",id:"calculator",children:e.jsx(N5,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",strategy:n})}),e.jsx("section",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"strategy-faq",children:e.jsxs("div",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:"Good to know"}),e.jsx("h2",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:n.faq.question}),e.jsx("p",{"data-loc":"client/src/pages/StrategyDetail.tsx:8",children:n.faq.answer}),e.jsxs(V,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",href:"/roi-calculator",className:"text-link text-link-strong",children:["Open the full five-year ROI calculator ",e.jsx(Y,{"data-loc":"client/src/pages/StrategyDetail.tsx:8",size:15})]})]})})]})})}const Wa=[{key:"business",number:"01",title:"How does your commercial model create value?",context:"The first loyalty model should reflect the relationship you actually sell intoânot a generic points template.",evidence:"Sets the relationship context",options:[{value:"b2c",label:"B2C",note:"I sell directly to consumers"},{value:"b2b",label:"B2B / channel",note:"I sell through accounts, partners, or a channel"},{value:"subscription",label:"Subscription",note:"Membership or recurring revenue is central"}]},{key:"cadence",number:"02",title:"How often can a customer reasonably return?",context:"Cadence determines whether a programme should create another visit, build a relationship over time, or focus on the quality of each interaction.",evidence:"Frames the behavior lever",options:[{value:"frequent",label:"Frequent",note:"Weekly or monthly purchase rhythm"},{value:"occasional",label:"Occasional",note:"A few purchase moments each year"},{value:"rare",label:"Rare",note:"Annual or infrequent decision cycle"}]},{key:"margin",number:"03",title:"What contribution room does the business have?",context:"Rewards should earn their place through incremental contributionânot simply reduce a customerâs existing spend.",evidence:"Protects economic headroom",options:[{value:"healthy",label:"Healthy margin",note:"50%+ gross margin"},{value:"moderate",label:"Moderate margin",note:"25â50% gross margin"},{value:"thin",label:"Thin margin",note:"Under 25% gross margin"}]},{key:"identity",number:"04",title:"Can you observe who is taking action?",context:"A loyalty programme is much more defensible when customer identity, behavior, and value can be connectedâwithout inventing precision that does not exist.",evidence:"Defines the measurement starting point",options:[{value:"identified",label:"Well identified",note:"Most purchases are tied to a customer"},{value:"partial",label:"Partly identified",note:"Some customer activity can be connected"},{value:"anonymous",label:"Mostly anonymous",note:"Identity needs strengthening first"}]}];function O5(a){return a.business==="b2b"?{title:"Retention & CLV",eyebrow:"Relationship economics",copy:"Account and partner relationships make future contribution and value concentration the most useful first loyalty conversation.",model:"Model retention cost against the profitable lifetime value of the relationships you can influence.",control:"Separate account-level value from broad participation assumptions.",href:"/strategy/retention-clv"}:a.business==="subscription"?{title:"Retention & CLV",eyebrow:"Recurring value",copy:"Your recurring relationship creates a direct case for modeling the value of keeping the right members active and engaged.",model:"Test churn reduction, active membership, and reward cost against recurring contribution.",control:"Do not treat tenure as proof of incremental retention.",href:"/strategy/retention-clv"}:a.cadence==="frequent"?{title:"Purchase Frequency",eyebrow:"Repeat cadence",copy:"Your repeat rhythm makes incremental visits and active-member behavior the clearest first loyalty case.",model:"Model one credible incremental visit and its contribution after reward cost.",control:"Protect against fatigue and paying for behavior that would have happened anyway.",href:"/strategy/purchase-frequency"}:a.margin==="healthy"?{title:"Average Order Value",eyebrow:"Contribution room",copy:"Healthy contribution creates room to test threshold rewards, bundles, and margin-protected basket growth.",model:"Test an incremental basket threshold against the contribution it creates.",control:"Separate a true mix shift from a discount-funded order.",href:"/strategy/average-order-value"}:a.identity!=="identified"?{title:"Active Membership",eyebrow:"Identity first",copy:"Start by making customer identity and first-value activation stronger before promising a broad points programme.",model:"Model enrollment, first earn, and active-member conversion before reward depth.",control:"Do not equate sign-ups with active members.",href:"/strategy/active-membership"}:{title:"Retention & CLV",eyebrow:"Relationship value",copy:"Use customer intelligence to focus value on the relationships whose future contribution justifies retention cost.",model:"Test the future contribution you need to protect, not just the headline member count.",control:"Keep scenario assumptions observable and reversible.",href:"/strategy/retention-clv"}}function k5(){const[a,n]=b.useState({}),[o,i]=b.useState(0),l=Wa.filter(y=>a[y.key]).length,d=l===Wa.length,m=Wa[o],h=b.useMemo(()=>O5(a),[a]),g=y=>{n(x=>({...x,[m.key]:y})),o<Wa.length-1&&window.setTimeout(()=>i(x=>Math.min(x+1,Wa.length-1)),170)},f=()=>{n({}),i(0)};return e.jsx(De,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:e.jsxs("main",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"strategy-page matcher-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",eyebrow:"Program Matcher / Guided Diagnostic",title:e.jsxs(e.Fragment,{children:["Find the loyalty path that ",e.jsx("em",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"deserves a model."})]}),copy:"A four-part decision screen for identifying the behavior lever worth examining first. It is not a score, a forecast, or an automatic programme recommendation."}),e.jsx("section",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-section matcher-premium",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"site-container matcher-premium-grid",children:[e.jsxs("section",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-workspace","aria-label":"Program matching diagnostic",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-workspace-top",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[e.jsx(re,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"Decision screen"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:["Build the ",e.jsx("em",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"right first question."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-progress",children:[e.jsxs("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[l," / ",Wa.length," inputs"]}
558),e.jsx("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42","aria-hidden":"true",children:e.jsx("i",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",style:{width:`${l/Wa.length*100}%`}})})]})]}),e.jsx("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-stepper",role:"tablist","aria-label":"Diagnostic questions",children:Wa.map((y,x)=>e.jsxs("button",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",type:"button",className:`${x===o?"active":""} ${a[y.key]?"answered":""}`,"aria-selected":x===o,onClick:()=>i(x),children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:y.number}),e.jsx("b",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:y.key})]},y.key))}),e.jsxs("article",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-question-card",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-question-label",children:[e.jsxs("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[m.number," / ",m.evidence]}),e.jsx(zj,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:19})]}),e.jsx("h3",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:m.title}),e.jsx("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:m.context}),e.jsx("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-options",children:m.options.map(y=>e.jsxs("button",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",type:"button",className:a[m.key]===y.value?"active":"",onClick:()=>g(y.value),children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:y.label}),e.jsx("small",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:y.note}),e.jsx("i",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:e.jsx(nt,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:15})})]},y.value))}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-question-footer",children:[e.jsxs("button",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",type:"button",className:"matcher-back",disabled:o===0,onClick:()=>i(y=>Math.max(0,y-1)),children:[e.jsx(Ts,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:15})," Previous input"]}),e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:a[m.key]?"Input recorded â continue when ready":"Choose the answer closest to your current operating reality"})]})]},m.key),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"matcher-standard",children:[e.jsx(Vl,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:17}),e.jsx("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"Alma keeps decision dimensions separate. A positive answer in one area does not make a programme fit automatically; the economic case still needs to be modeled and reviewed."})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:`matcher-decision-brief ${d?"complete":""}`,children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-brief-top",children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"ALMA / INITIAL DECISION BRIEF"}),e.jsx("b",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:d?"INPUTS COMPLETE":"IN PROGRESS"})]}),d?e.jsxs(e.Fragment,{children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-brief-title",children:[e.jsx(HO,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:25}),e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:h.eyebrow}),e.jsx("h2",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:h.title}),e.jsx("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:h.copy})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-brief-lines",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"Model first"}),e.jsx("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:h.model})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"Control to keep"}),e.jsx("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:h.control})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-brief-profile",children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"Transparent input profile"}),Wa.map(y=>e.jsxs("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[e.jsx("b",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:y.key}),e.jsx("strong",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:y.options.find(x=>x.value===a[y.key])?.label})]},y.key))]}),e.jsxs(V,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",href:h.href,className:"button button-orange full-width",children:["Open the strategy model ",e.jsx(Y,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:16})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-brief-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",href:"/roi-calculator",children:["Build the ROI case ",e.jsx(Y,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:14})]}),e.jsx("button",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",type:"button",onClick:f,children:"Restart diagnostic"})]})]}):e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-pending",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-pending-orbit",children:[e.jsx(wn,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:24}),e.jsxs("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:[l,e.jsx("small",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"/ 4"})]})]}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:["Build your first",e.jsx("br",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42"}),e.jsx("em",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"decision brief."})]}),e.jsx("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:"Answer the four questions to reveal the behavior lever that is most worth modeling first."}),e.jsx("div",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-pending-list",children:Wa.map((y,x)=>e.jsxs("span",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:a[y.key]?"ready":"",children:[e.jsx("i",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",children:a[y.key]?e.jsx(nt,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:13}):x+1}),y.evidence]},y.key))})]}),e.jsxs("p",{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",className:"decision-brief-note",children:[e.jsx(Vl,{"data-loc":"client/src/pages/ProgramMatcher.tsx:42",size:14})," Directional planning only. Material claims require evidence, source context, and human review."]})]})]})})]})})}const Ci=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}),pp=[{eyebrow:"01 / Commercial baseline",title:"Start with the business that exists today.",copy:"These inputs establish the revenue and contribution context before any programme behaviour is modeled.",fields:[["annualRevenue","Annual revenue","$"],["grossMargin","Gross margin","%"]]},{eyebrow:"02 / Addressable behaviour",title:"Make the behaviour assumption explicit.",copy:"Use a conservative view of the customer revenue that loyalty can realistically influence and the behavior lift that needs evidence.",fields:[["activeMemberRate","Active member rate","%"],["modeledLift","Modeled behavior lift","%"]]},{eyebrow:"03 / Delivery costs",title:"Show the programme cost in the first-year view.",copy:"Separate the annual operating case from the launch investment. Both matter when evaluating a directional year-one result.",fields:[["annualProgramCost","Annual programme cost","$"],["setupCost","Year-one setup & delivery","$"]]}];function M5(){const[a,n]=b.useState(0),[o,i]=b.useState({annualRevenue:1e6,grossMargin:60,activeMemberRate:30,modeledLift:12,annualProgramCost:1e5,setupCost:6e4}),l=b.useMemo(()=>eh("opportunity",o),[o]),d=b.useMemo(()=>
558[{label:"Conservative",lift:o.modeledLift*.65},{label:"Base inputs",lift:o.modeledLift},{label:"Upside",lift:o.modeledLift*1.35}].map(g=>({...g,result:eh("opportunity",{...o,modeledLift:g.lift})})),[o]),m=(g,f)=>i(y=>({...y,[g]:f})),h=pp[a];return e.jsx(De,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:e.jsxs("main",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"strategy-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",eyebrow:"Loyalty Opportunity Estimator",title:e.jsxs(e.Fragment,{children:["Could loyalty ",e.jsx("em",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"make money"}),e.jsx("br",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27"}),"for this business?"]}),copy:"Start with a transparent, progressive financial screen. Every default is editable; the purpose is to see whether the inputs support a useful next conversationânot to promise a result."}),e.jsx("section",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"opportunity-section",children:e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"site-container opportunity-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"opportunity-inputs",children:[e.jsx(re,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:h.eyebrow}),e.jsx("h2",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",style:{fontFamily:"var(--font-display, Georgia, serif)",fontSize:"1.8rem",margin:"0.7rem 0"},children:h.title}),e.jsx("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",style:{color:"#67574b",lineHeight:1.55,marginBottom:"1.4rem"},children:h.copy}),e.jsx("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"evidence-chips",style:{marginTop:0},children:pp.map((g,f)=>e.jsxs("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",style:{background:f===a?"#251710":void 0,color:f===a?"#fff5e8":void 0},children:["Step ",f+1]},g.eyebrow))}),h.fields.map(([g,f,y])=>e.jsxs("label",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:f}),e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx("em",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:y==="$"?"$":""}),e.jsx("input",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27","aria-label":f,inputMode:"decimal",value:Math.round(o[g]).toLocaleString(),onChange:x=>m(g,Number(x.target.value.replace(/[^0-9.]/g,""))||0)}),e.jsx("em",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:y==="%"?"%":""})]})]},g)),e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",style:{display:"flex",justifyContent:"space-between",gap:"0.75rem",marginTop:"1.5rem"},children:[a>0?e.jsxs("button",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",type:"button",className:"button button-light",onClick:()=>n(a-1),children:[e.jsx(Ts,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:15})," Back"]}):e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27"}),a<pp.length-1?e.jsxs("button",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",type:"button",className:"button button-dark",onClick:()=>n(a+1),children:["Continue ",e.jsx(Y,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:15})]}):e.jsxs("button",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",type:"button",className:"button button-dark",onClick:()=>n(0),children:["Review inputs ",e.jsx(Ts,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:15})]})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"opportunity-result",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"ESTIMATED YEAR-ONE OUTCOME"}),e.jsx("strong",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:l.netReturn>=0?"positive":"negative",children:Ci.format(l.netReturn)}),e.jsx("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"directional net return after contribution, annual programme cost, and year-one delivery cost."}),e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsxs("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"Incremental revenue"}),e.jsx("b",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:Ci.format(l.revenue)})]}),e.jsxs("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"Incremental contribution"}),e.jsx("b",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:Ci.format(l.contribution)})]}),e.jsxs("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"Programme cost"}),e.jsx("b",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:Ci.format(l.programCost)})]}),e.jsxs("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"ROI on cost"}),e.jsxs("b",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[Math.round(l.roi),"%"]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"strategy-drivers",children:[e.jsx("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"SCENARIO RANGE"}),d.map(g=>e.jsxs("p",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsxs("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[g.label," (",g.lift.toFixed(1),"%)"]}),e.jsx("b",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:g.result.netReturn>=0?"positive":"negative",children:Ci.format(g.result.netReturn)})]},g.label))]}),e.jsxs(V,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",href:"/roi-calculator",className:"button button-orange full-width",children:["Build the detailed executive report ",e.jsx(Y,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:16})]}),e.jsxs("small",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsx(Yi,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:13})," Directional planning only. The detailed report path captures revenue channels, costs, active members, evidence labels, and multi-year scenarios."]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"opportunity-explainer",children:e.jsxs("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",className:"site-container",children:[e.jsx(Ls,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:26}),e.jsxs("h2",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:["A useful result shows ",e.jsx("em",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:"the assumptions behind the number."})]}),e.jsx("div",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:["Incremental revenue range","Contribution and ROI range","Payback and run-rate economics","Active-member behavior","Reward cost and evidence status","Inputs that still need validation"].map((g,f)=>e.jsxs("article",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:[e.jsxs("span",{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",children:["0",f+1]}),g]},g))}),e.jsxs(V,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",href:"/qualification-standard",className:"button button-light",children:["Read Almaâs qualification standard ",e.jsx(Y,{"data-loc":"client/src/pages/OpportunityEstimator.tsx:27",size:16})]})]})})]})})}function T5(){const[,a]=Cn("/solutions/:solution"),n=mM(a?.solution);return e.jsx(De,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:e.jsxs("main",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"collection-
558page solution-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",eyebrow:`${n.kind} / ${n.eyebrow}`,title:e.jsxs(e.Fragment,{children:[n.title[0],e.jsx("br",{"data-loc":"client/src/pages/SolutionDetail.tsx:7"}),e.jsx("em",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:n.title[1]})]}),copy:n.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",href:n.next.href,className:"button button-orange",children:[n.next.label," ",e.jsx(Y,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"collection-outcome",children:e.jsxs("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:"The intended outcome"}),e.jsx("h2",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:n.outcome})]})}),e.jsx("section",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"collection-principles",children:e.jsxs("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:"Design principles"}),e.jsxs("h2",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:["Make the value exchange",e.jsx("br",{"data-loc":"client/src/pages/SolutionDetail.tsx:7"}),e.jsx("em",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:"work in context."})]})]}),e.jsx("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:n.principles.map((o,i)=>e.jsxs("article",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:[e.jsxs("span",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:["0",i+1]}),e.jsx("h3",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:o.title}),e.jsx("p",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:o.copy})]},o.title))})]})}),e.jsx("section",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"collection-model",children:e.jsxs("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:"A practical route"}),e.jsx("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"model-steps",children:n.model.map(o=>e.jsxs("article",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:[e.jsx("span",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:o.label}),e.jsx("h3",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:o.copy}),e.jsx(nt,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",size:18})]},o.label))})]})}),e.jsx("section",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"collection-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",className:"site-container",children:[e.jsxs("h2",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:["Start with the ",e.jsx("em",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:"decision"})," that matters."]}),e.jsx("p",{"data-loc":"client/src/pages/SolutionDetail.tsx:7",children:"Explore the specific calculator, strategy path, or advisory conversation that can make this programme case more concrete."}),e.jsxs(V,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",href:n.next.href,className:"button button-orange",children:[n.next.label," ",e.jsx(Y,{"data-loc":"client/src/pages/SolutionDetail.tsx:7",size:16})]})]})})]})})}function D5(){const[,a]=Cn("/resources/:resource"),n=jM(a?.resource);return e.jsx(De,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:e.jsxs("main",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",className:"collection-page resource-detail",children:[e.jsx(Ve,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",eyebrow:n.eyebrow,title:e.jsxs(e.Fragment,{children:[n.title[0],e.jsx("br",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7"}),e.jsx("em",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:n.title[1]})]}),copy:n.copy,action:e.jsxs(V,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",href:n.next.href,className:"button button-orange",children:[n.next.label,e.jsx(Y,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",className:"resource-reading",children:e.jsx("div",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",className:"site-container",children:n.sections.map((o,i)=>e.jsxs("article",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:[e.jsxs("div",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:[e.jsxs("span",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:["0",i+1]}),e.jsx("h2",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:o.heading})]}),e.jsxs("div",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:[e.jsx("p",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:o.body}),e.jsx("ul",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:o.prompts.map(l
558=>e.jsxs("li",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:[e.jsx(Ah,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",size:15}),l]},l))})]})]},o.heading))})}),e.jsx("section",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",className:"collection-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:"Put the question into a model"}),e.jsxs("h2",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:["Move from concept to ",e.jsx("em",{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",children:"an auditable next decision."})]}),e.jsxs(V,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",href:n.next.href,className:"button button-orange",children:[n.next.label,e.jsx(Y,{"data-loc":"client/src/pages/ResourceCollectionDetail.tsx:7",size:16})]})]})})]})})}function L5(){return e.jsx(De,{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:e.jsxs("main",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"collection-page roi-explained",children:[e.jsx(Ve,{"data-loc":"client/src/pages/RoiExplained.tsx:6",eyebrow:"How loyalty ROI works",title:e.jsxs(e.Fragment,{children:["A credible loyalty ROI view",e.jsx("br",{"data-loc":"client/src/pages/RoiExplained.tsx:6"}),"makes the ",e.jsx("em",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"decision logic visible."})]}),copy:"Alma frames loyalty ROI as a chain: customer behavior changes, incremental commercial value appears, contribution covers programme cost, and evidence improves every input over time.",action:e.jsxs(V,{"data-loc":"client/src/pages/RoiExplained.tsx:6",href:"/roi-calculator",className:"button button-orange",children:["Build your ROI view ",e.jsx(Y,{"data-loc":"client/src/pages/RoiExplained.tsx:6",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"roi-reading-order",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Read the model in order"}),e.jsxs("h2",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:["Start with the number that matters.",e.jsx("br",{"data-loc":"client/src/pages/RoiExplained.tsx:6"}),e.jsx("em",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Then show how it was built."})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[{icon:Fj,number:"01",heading:"Baseline",copy:"What does the business, audience, and current behavior look like before the programme?"},{icon:Ls,number:"02",heading:"Incremental value",copy:"What changes in active participation, frequency, basket, retention, advocacy, or another observable behavior?"},{icon:ik,number:"03",heading:"Contribution & cost",copy:"What remains after margin, reward cost, delivery cost, and the time it takes to create change?"}].map(a=>{const n=a.icon;return e.jsxs("article",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[e.jsx(n,{"data-loc":"client/src/pages/RoiExplained.tsx:6"}),e.jsx("span",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.number}),e.jsx("h3",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.heading}),e.jsx("p",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.copy})]},a.number)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"roi-value-drivers",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Value drivers"}),e.jsxs("h2",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:["Loyalty earns a return",e.jsx("br",{"data-loc":"client/src/pages/RoiExplained.tsx:6"}),"through ",e.jsx("em",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"customer action."})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"More sign-ups are not the output. The output is a profitable behavior that would not otherwise have occurred."})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"roi-driver-list",children:[{title:"Active membership",copy:"Members reach first value and keep participating."},{title:"Purchase frequency",copy:"Customers make incremental profitable visits or orders."},{title:"Average order value",copy:"Customers build baskets that create more contribution than reward cost."},{title:"Retention & lifetime value",copy:"The programme protects relationships whose future contribution justifies intervention."},{title:"Advocacy & acquisition",copy:"Members take approved actions that earn value and bring new prospects into view."},{title:"Operational learning",copy:"The programme improves because assumptions are tested rather than left static."}].map(a=>e.jsxs("article",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[e.jsx(nt,{"data-loc":"client/src/pages/RoiExplained.tsx:6",size:17}),e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[e.jsx("h3",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.title}),e.jsx("p",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.copy})]})]},a.title))})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"roi-evidence",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"The evidence standard"}),e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[e.jsxs("h2",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:["Every material input deserves a ",e.jsx("em",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"label."})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"A planning model can include assumptions. It should never confuse them with evidence. Almaâs full ROI model gives decision-makers a visible ledger for source, confidence, timing, and scenario sensitivity."}),e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"evidence-chips",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Observed"}),e.jsx("span",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Planning assumption"}),e.jsx("span",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"To validate"}),e.jsx("span",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Scenario-sensitive"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",style:{display:"flex",gap:"1.25rem",flexWrap:"wrap"},children:[e.jsxs(V,{"data-loc":"client/src/pages/RoiExplained.tsx:6",href:"/resources/how-loyalty-roi-works",className:"text-link text-link-strong",children:["Read the ROI methodology ",e.jsx(Y,{"data-loc":"client/src/pages/RoiExplained.tsx:6",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/RoiExplained.tsx:6",href:"/tools",className:"text-link text-link-strong",children:["Explore the free tools hub ",e.jsx(Y,{"data-loc":"client/src/pages/RoiExplained.tsx:6",size:15})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"roi-faq",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Decision FAQ"}),e.jsx("h2",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Questions finance should be able to ask."}),e.jsx("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[{q:"Is this revenue really incremental?",a:"Treat the baseline as a first-class input. Use cohort, holdout, matched comparison, or another practical method to distinguish observed movement from activity that would have happened anyway."},{q:"Why do rewards not appear only as a benefit?",a:"Reward value is part of the member proposition and part of the commercial cost. A credible model makes both roles visible alongside gross margin and operating cost."},{q:"What should happen after launch?",a:"The model becomes an operating ledger. Update confidence levels, compare actual behavior with the planning case, and make the next programme decision based on what has been learned."}].map(a=>e.jsxs("article",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:[e.jsx("h3",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.q}),e.jsx("p",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:a.a})]},a.q))})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"collection-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",className:"site-container",children:[e.jsxs("h2",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:["Model the case.",e.jsx("br",{"data-loc":"client/src/pages/RoiExplained.tsx:6"}),e.jsx("em",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Keep the assumptions visible."})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiExplained.tsx:6",children:"Build a directional business case around the customer behavior you want to change, then give the team a system for learning whether it worked."}),e.jsxs("div",{"data-loc":"client/src/pages/RoiExplained.tsx:6",style:{display:"flex",justifyContent:"center",gap:"0.75rem",flexWrap:"wrap"},children:[e.jsxs(V,{"data-loc":"client/src/pages/RoiExplained.tsx:6",href:"/roi-calculator",className:"button button-orange",children:["Open the guided ROI calculator ",e.jsx(Y,{"data-loc":"client/src/pages/RoiExplained.tsx:6",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/RoiExplained.tsx:6",href:"/tools",className:"button button-dark",children:["Browse free tools ",e.jsx(Y,{"data-loc":"client/src/pages/RoiExplained.tsx:6",size:16})]})]})]})})]})})}const I5=[{icon:Ba,title:"Economic headroom",copy:"There must be a plausible route from incremental customer behavior to contribution after rewards, delivery, and operating cost."},{icon:nt,title:"Addressable behavior",copy:"The brand needs a customer action worth changing and enough identity, channel, or transaction signal to observe whether it changed."},{icon:_j,title:"Operational reality",copy:"The programme must be feasible to launch, support, measure, and improve inside the companyâs actual systems and team capacity."}];function _5(){return e.jsx(De,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:e.jsxs("main",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",eyebrow:"Alma qualification standard",title:e.jsxs(e.Fragment,{children:["We do not recommend loyalty",e.jsx("br",{"data-loc":"client/src/pages/QualificationStandard.tsx:13"}),"until the ",e.jsx("em",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"economics can work."})]}),copy:"A loyalty programme is not automatically a good investment. Alma starts with an evidence-led qualification screen so the customer behavior, contribution path, operating reality, and unknowns are clear before anyone is asked to buy.",action:e.jsxs(V,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",href:"/opportunity-estimator",className:"button button-orange",children:["Run the opportunity screen ",e.jsx(Y,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-intro",children:e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Commercial discipline"}),e.jsxs("h2",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:["A full calculator is not a reason to ",e.jsx("em",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"force a sale."})]}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"We use early modeling to decide whether a loyalty programme deserves deeper work. If the case has no credible path to profitable customer economics, the correct answer is to pause, gather better evidence, or solve a different problem first."})]})}),e.jsx("section",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-gates",children:e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"section-heading section-heading-row",children:[e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:[e.jsx(re,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Three conditions"}),e.jsxs("h2",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:["The case must",e.jsx("br",{"data-loc":"client/src/pages/QualificationStandard.tsx:13"}),e.jsx("em",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"clear all three."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"One encouraging signal is not enough. Alma looks for a stacked case: economic headroom, a behavior worth changing, and a practical way to operate the programme."})]}),e.jsx("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:I5.map((a,n)=>{const o=a.icon;return e.jsxs("article",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:[e.jsxs("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:["0",n+1]}),e.jsx(o,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:21}),e.jsx("h3",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:a.title}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:a.copy})]},a.title)})})]})}),e.jsx("section",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-outcomes",children:e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"What the screen can say"}),e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:[e.jsxs("article",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-go",children:[e.jsx(nt,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:22}),e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"PROCEED TO FULL MODEL"}),e.jsx("h3",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"There is a credible case worth pressure-testing."}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Move into channel economics, active members, cost timing, scenarios, and an evidence ledger."})]}),e.jsxs("article",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-pause",children:[e.jsx(_j,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:22}),e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"PAUSE FOR EVIDENCE"}),e.jsx("h3",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"The hypothesis may be sound, but the key input
558s are not ready."}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Clarify baseline behavior, margin, member addressability, or operating cost before treating the model as a decision."})]}),e.jsxs("article",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-no",children:[e.jsx(TO,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:22}),e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"DO NOT FORCE A PROGRAMME"}),e.jsx("h3",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"There is no clear path to profitable programme economics today."}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Alma would rather say that clearly than sell an incentive layer that cannot earn its cost."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-evidence",children:e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:[e.jsx(re,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"The evidence rule"}),e.jsxs("h2",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:["Every material claim is either ",e.jsx("em",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"observed, assumed, or waiting to be validated."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:[e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"We do not present a planning input as a customer fact. The detailed ROI model records the source and confidence of the variables that matter, then gives the team a way to learn after launch."}),e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"evidence-chips",children:[e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Observed baseline"}),e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Planning assumption"}),e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"To validate"}),e.jsx("span",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Scenario-sensitive"})]}),e.jsxs(V,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",href:"/roi-explainer",className:"text-link text-link-strong",children:["Read how loyalty ROI works ",e.jsx(Y,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:15})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"qualification-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",className:"site-container",children:[e.jsxs("h2",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:["Do you have enough signal",e.jsx("br",{"data-loc":"client/src/pages/QualificationStandard.tsx:13"}),"to build a ",e.jsx("em",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"real case?"})]}),e.jsx("p",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:"Start with the short opportunity screen. It is designed to surface the inputs that must be true before a loyalty programme should move forward."}),e.jsxs("div",{"data-loc":"client/src/pages/QualificationStandard.tsx:13",children:[e.jsxs(V,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",href:"/opportunity-estimator",className:"button button-orange",children:["Run the opportunity screen ",e.jsx(Y,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",href:"/roi-calculator",className:"button button-dark",children:["Build a full ROI model ",e.jsx(Y,{"data-loc":"client/src/pages/QualificationStandard.tsx:13",size:16})]})]})]})})]})})}const z5=[{icon:IO,label:"SIGNAL 01",title:"Timing",copy:"A meaningful commercial, channel, team, or operating change creates a reason to look againâwithout pretending a single observation proves a purchase."},{icon:UO,label:"SIGNAL 02",title:"Documented need",copy:"The customer problem is observable, named in discovery, or supported by enough evidence to deserve a deeper conversation."},{icon:Fj,label:"SIGNAL 03",title:"Fit & economics",copy:"The loyalty use case, member behavior, margin, systems, and delivery reality point to a credible pathânot a feature-led hope."}],q5=[["Commercial headroom","Could incremental behavior create contribution after rewards and delivery cost?"],["Programme fit","Does the customer context c
558all for loyalty, and which growth lever should lead?"],["Behavior readiness","Is there a clear customer action and enough identity to observe the change?"],["Operating readiness","Can the programme be launched, supported, and measured in the real stack?"],["Decision timing","Is there a documented reason to act now, or only a question worth monitoring?"]];function B5(){return e.jsx(De,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:e.jsxs("main",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-intelligence-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",eyebrow:"Alma Buyer Intelligence",title:e.jsxs(e.Fragment,{children:["The best loyalty conversations",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),"start with an ",e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"honest fit."})]}),copy:"Alma Buyer Intelligence is a disciplined qualification method for turning observable commercial context into a clearer loyalty conversationâwithout claiming certainty before the evidence exists.",action:e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/qualification-standard",className:"button button-orange",children:["Read the qualification standard ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:16})]})}),e.jsx("section",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-brief-hero",children:e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"site-container buyer-brief-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx(re,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Why it matters"}),e.jsxs("h2",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["Budget, authority, and need matter.",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Timing changes the conversation."})]}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"A loyalty programme may be strategically sound and still be mistimed. Alma looks for the stacked context that tells a team whether to build a full economic case, gather better evidence, or pause."}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-action-row",children:[e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/opportunity-estimator",className:"button button-dark",children:["Run the opportunity screen ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/program-matcher",className:"text-link text-link-strong",children:["Find the right strategy ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:15})]})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"illustrative-brief",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"brief-window",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"ILLUSTRATIVE DECISION BRIEF"}),e.jsxs("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx(RO,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:16})," Evidence-led, not a claim"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"brief-top",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"READINESS VIEW"}),e.jsx("strong",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Needs validation"})]}),e.jsxs("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["A structured way to ask",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),"the ",e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"right question first."})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"brief-facts",children:[e.jsxs("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Observed context"}),e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Channel growth signal"})]}),e.jsxs("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Programme case"}),e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Frequency worth modeling"})]}),e.jsxs("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Evidence status"}),e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Hybrid / confirm in discovery"})]})]}),e.jsx("small",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"This is an illustrative framework, not a rating of any company."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-signals",children:e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Three stacked signals"}),e.jsxs("h2",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["One conversation,",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"built on context."})]}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Any individual signal may be noise. A responsible recommendation takes shape only when timing, documented need, and commercial fit begin to support each other."})]}),e.jsx("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-signal-grid",children:z5.map(a=>{const n=a.icon;return e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx(n,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:22}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:a.label}),e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:a.title}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:a.copy}),e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Requires corroboration"})]},a.title)})}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-workflow",children:[e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"01"}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Observe before we recommend"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Start with what is known, what is changing, and what still needs a human answer."})]})]}),e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"02"}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Route before we rank"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Compare approaches only inside the customerâs eligible operating and economic context."})]})]}),e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"03"}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Show the evidence"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Make the source, confidence, and unknowns visible before a conclusion becomes a sales claim."})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-lenses",children:e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"site-container buyer-lenses-gri
558d",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx(re,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Five decision lenses"}),e.jsxs("h2",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["Keep the dimensions",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"separate and visible."})]}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Alma does not reduce a serious loyalty decision to a mystery score. Each lens answers a different question and gives the team a specific next step."})]}),e.jsx("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-lens-list",children:q5.map(([a,n],o)=>e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsxs("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["0",o+1]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:a}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:n})]}),e.jsx(nt,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:17})]},a))})]})}),e.jsx("section",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-evidence",children:e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx(re,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Decision brief, not a black box"}),e.jsxs("h2",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["Every important input should show",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"what it is and what it needs."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-ledger",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"ledger-head",children:[e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Decision input"}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Status"}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"What happens next"})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Annual revenue context"}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"evidence-observed",children:"Observed"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Use it to establish scale; validate the relevant loyalty channel before modeling contribution."})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Active member potential"}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"evidence-estimated",children:"Planning assumption"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Test it against first-party customer data during discovery."})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Current programme or provider"}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"evidence-missing",children:"Unknown"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Do not infer a replacement case; ask and record the answer."})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx("b",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Change signal"}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"evidence-hybrid",children:"Needs corroboration"}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Confirm with more than one source or directly with the commercial team."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-match",children:e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Mutual qualification"}),e.jsxs("h2",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["Better brands. Better partner conversations.",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Better decisions."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-match-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx($O,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:23}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"FOR BRANDS"}),e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Find the loyalty path that fits the business."}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Use the economics, customer behavior, channels, integration context, and operating readiness to decide whether and how to move forward."}),e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/qualification-standard",children:["Assess programme fit ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:15})]})]}),e.jsxs("article",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsx(ok,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:23}),e.jsx("span",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"FOR PARTNERS"}),e.jsx("h3",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Work the opportunities that can genuinely win."}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Use a transparent commercial screen to focus discovery on accounts with a credible loyalty caseârather than chasing activity for its own sake."}),e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/contact",children:["Discuss a partner-led opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:15})]})]})]}),e.jsxs("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-match-note",children:[e.jsx(Vl,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:15})," Alma does not publish client rankings or represent unverified observations as facts. Material recommendations require evidence, context, and human review."]})]})}),e.jsx("section",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"buyer-cta",children:e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",className:"site-container",children:[e.jsx(Ba,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:28}),e.jsxs("h2",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:["Make the next loyalty decision",e.jsx("br",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19"}),e.jsx("em",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"more defensible."})]}),e.jsx("p",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:"Start with a short opportunity screen, then carry the useful evidence into the full ROI model and a practical qual
558ification conversation."}),e.jsxs("div",{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",children:[e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/opportunity-estimator",className:"button button-orange",children:["Start the opportunity screen ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",href:"/roi-calculator",className:"button button-dark",children:["Build the full ROI model ",e.jsx(Y,{"data-loc":"client/src/pages/BuyerIntelligence.tsx:19",size:16})]})]})]})})]})})}const wb=["triage","discovery","solution","proposal","won","lost"],H5=["unscoped","needs_evidence","outbound_ready","redesign_first","strategic_only","do_not_pursue"],Cb={unscoped:{label:"Not yet scoped",tone:"neutral",outboundReady:!1,summary:"Do not treat this company as outbound-ready until the economics and evidence are reviewed."},needs_evidence:{label:"Evidence required",tone:"caution",outboundReady:!1,summary:"The case may be worth exploring, but decision inputs or operating evidence are still missing."},outbound_ready:{label:"Evidence-ready outbound",tone:"ready",outboundReady:!0,summary:"There is a credible route to a modeled case. Continue with clear assumptions and proof controls."},redesign_first:{label:"Redesign before outreach",tone:"caution",outboundReady:!1,summary:"The current structure or cost envelope needs to change before it is presented as a financial case."},strategic_only:{label:"Strategic-only case",tone:"neutral",outboundReady:!1,summary:"Loyalty may serve a valid brand or service objective, but it should not be framed as a financial return case without evidence."},do_not_pursue:{label:"Do not pursue as ROI",tone:"stop",outboundReady:!1,summary:"Do not sell this as an ROI-led programme on the current evidence."}},hp={triage:"Triage",discovery:"Discovery",solution:"Solution",proposal:"Proposal",won:"Won",lost:"Lost"},U5=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0});function V5(a){const n=URL.createObjectURL(new Blob([a],{type:"text/csv;charset=utf-8"})),o=document.createElement("a");o.href=n,o.download="alma-crm-export.csv",o.click(),URL.revokeObjectURL(n)}function F5(a){navigator.clipboard?.writeText(a)}function Q5(){const{user:a,loading:n,isAuthenticated:o}=cr(),i=Ke.useUtils(),l=Ke.crm.list.useQuery(void 0,{enabled:o&&a?.role==="admin"}),d=Ke.crm.update.useMutation({onSuccess:()=>{i.crm.list.invalidate(),i.leads.list.invalidate()}}),m=Ke.crm.syncHubspot.useMutation({onSuccess:()=>i.crm.list.invalidate()}),h=Ke.crm.export.useMutation({onSuccess:N=>{V5(N.csv),i.crm.list.invalidate()}}),[g,f]=b.useState([]),[y,x]=b.useState("all"),[j,C]=b.useState({}),R=l.data??[],w=b.useMemo(()=>R.filter(N=>y==="all"||N.crmStage===y),[R,y]),E=N=>j[N.id]??{crmStage:N.crmStage,crmNextAction:N.crmNextAction??"",crmNote:N.crmNote??"",crmExternalId:N.crmExternalId??"",preScopeDisposition:N.preScopeDisposition,preScopeEvidence:N.preScopeEvidence??""},k=(N,U)=>C(M=>({...M,[N.id]:{...E(N),...U}})),D=N=>f(U=>U.includes(N)?U.filter(M=>M!==N):[...U,N]),q=N=>{const U=E(N);d.mutate({id:N.id,crmStage:U.crmStage,crmNextAction:U.crmNextAction||null,crmNote:U.crmNote||null,crmExternalId:U.crmExternalId||null,preScopeDisposition:U.preScopeDisposition,preScopeEvidence:U.preScopeEvidence||null})};if(n)return e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:65",className:"admin-state",children:[e.jsx(Pa,{"data-loc":"client/src/pages/CrmLite.tsx:65",className:"animate-spin",size:25})," Loading secure CRMâ¦"]});if(!o)return e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:66",className:"admin-state",children:[e.jsx(or,{"data-loc":"client/src/pages/CrmLite.tsx:66",size:30}),e.jsx("h1",{"data-loc":"client/src/pages/CrmLite.tsx:66",children:"Alma CRM Lite"}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:66",children:"Sign in with the owner account to manage private prospect data."}),e.jsx("button",{"data-loc":"client/src/pages/CrmLite.tsx:66",className:"button button-orange",onClick:()=>Sn(),children:"Sign in securely"})]});if(a?.role!=="admin")return e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:67",className:"admin-state",children:[e.jsx(Eh,{"data-loc":"client/src/pages/CrmLite.tsx:67",size:30}),e.jsx("h1",{"data-loc":"client/src/pages/CrmLite.tsx:67",children:"Access restricted"}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:67",children:"This CRM workspace is available to approved Alma operators only."})]});const K=wb.map(N=>({stage:N,count:R.filter(U=>U.crmStage===N).length}));return e.jsx(Yh,{"data-loc":"client/src/pages/CrmLite.tsx:71",children:e.jsxs("section",{"data-loc":"client/src/pages/CrmLite.tsx:72",className:"crm-lite",children:[e.jsxs("header",{"data-loc":"client/src/pages/CrmLite.tsx:73",className:"crm-lite-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:74",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:75",children:"ALMA / PRIVATE CRM LITE"}),e.jsxs("h1",{"data-loc":"client/src/pages/CrmLite.tsx:76",children:["Keep the decision context",e.jsx("br",{"data-loc":"client/src/pages/CrmLite.tsx:76"}),e.jsx("em",{"data-loc":"client/src/pages/CrmLite.tsx:76",children:"close to the follow-up."})]}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:77",children:"A focused owner workspace for inbound loyalty decisions. Alma remains the canonical source; HubSpot receives approved contact summaries while detailed decision context remains here."})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:79",className:"crm-lite-export",children:[e.jsxs("strong",{"data-loc":"client/src/pages/CrmLite.tsx:80",children:[g.length,e.jsx("small",{"data-loc":"client/src/pages/CrmLite.tsx:80",children:" selected"})]}),e.jsxs("button",{"data-loc":"client/src/pages/CrmLite.tsx:81",type:"button",disabled:!g.length||h.isPending,onClick:()=>h.mutate({ids:g}),children:[e.jsx(zO,{"data-loc":"client/src/pages/CrmLite.tsx:81",size:15})," Export CRM-ready CSV"]}),e.jsx("small",{"data-loc":"client/src/pages/CrmLite.tsx:82",children:"Exports contact, qualification, ROI, journey, pipeline, and next-action fields."})]})]}),e.jsx("div",{"data-loc":"client/src/pages/CrmLite.tsx:86",className:"crm-pipeline",children:K.map(N=>e.jsxs("button",{"data-loc":"client/src/pages/CrmLite.tsx:87",type:"button",className:y===N.stage?"active":"",onClick:()=>x(U=>U===N.stage?"all":N.stage),children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:87",children:hp[N.stage]}),e.jsx("strong",{"data-loc":"client/src/pages/CrmLite.tsx:87",children:N.count})]},N.stage))}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:90",className:"crm-lite-toolbar",children:[e.jsxs("span",{"data-loc":"client/src/pages/CrmLite.tsx:91",children:[w.length," visible records"]}),e.jsx("button",{"data-loc":"client/src/pages/CrmLite.tsx:92",type:"button",onClick:()=>f(w.map(N=>N.id)),children:"Select visible"}),e.jsx("button",{"data-loc":"client/src/pages/CrmLite.tsx:93",type:"button",onClick:()=>f([]),children:"Clear selection"}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:94",children:"Pipeline changes, next actions, notes, and external IDs stay private in Alma CRM Lite until you export them."})]}),e.jsxs("section",{"data-loc":"client/src/pages/CrmLite.tsx:97",className:"crm-prescope-standard","aria-label":"Alma pre-scope outbound standard",children:[e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:98",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:98",children:"ALMA OUTBOUND STANDARD"}),e.jsxs("h2",{"data-loc":"client/src/pages/CrmLite.tsx:98",children:["Do not outbound until the economics are ",e.jsx("em",{"data-loc":"client/src/pages/CrmLite.tsx:98",children:"clear enough to model."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:99",children:"Every lead should have a recorded disposition: evidence-ready outreach, more evidence required, redesign first, strategic-only, or do not pursue as ROI. A CRM stage alone is not a fit signal."}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:100",className:"crm-prescope-checks",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:100",children:"01 / Contribution path"}),e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:100",children:"02 / Reward and labor cost"}),e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:100",children:"03 / Evidence and operating capacity"})]})]}),l.isLoading?e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:103",className:"crm-state",children:[e.jsx(Pa,{"data-loc":"client/src/pages/CrmLite.tsx:103",className:"animate-spin"}),"Loading private pipelineâ¦"]}):e.jsx("div",{"data-loc":"client/src/pages/CrmLite.tsx:103",className:"crm-records",children:w.map(N=>{const U=E(N),M=Cb[U.preScopeDisposition],I=N.hubspotSyncStatus==="synced"?"HubSpot synced":N.hubspotSyncStatus==="failed"?"HubSpot needs review":"HubSpot pending";return e.jsxs("article",{"data-loc":"client/src/pages/CrmLite.tsx:108",className:`crm-record crm-${U.crmStage}`,children:[e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:109",className:"crm-record-top",children:[e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:110",children:[e.jsx("input",{"data-loc":"client/src/pages/CrmLite.tsx:110",type:"checkbox",checked:g.includes(N.id),onChange:()=>D(N.id)}),e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:110",children:"Select"})]}),e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:111",children:N.requestType==="roi"?"ROI model":N.requestType==="journey"?"Journey brief":N.requestType}),e.jsx("small",{"data-loc":"client/src/pages/CrmLite.tsx:112",children:new Date(N.createdAt).toLocaleDateString()})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:115",className:"crm-record-main",children:[e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:116",children:[e.jsx("h2",{"data-loc":"client/src/pages/CrmLite.tsx:116",children:N.name}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:116",children:N.company}),e.jsx("a",{"data-loc":"client/src/pages/CrmLite.tsx:116",href:`mailto:${N.workEmail}`,children:N.workEmail}),N.phone&&e.jsx("a",{"data-loc":"client/src/pages/CrmLite.tsx:116",href:`tel:${N.phone}`,children:N.phone})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:117",className:"crm-record-context",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:118",children:"DECISION CONTEXT"}),N.roiQualification&&e.jsx("strong",{"data-loc":"client/src/pages/CrmLite.tsx:119",className:`crm-qualification ${N.roiQualification}`,children:N.roiQualification.replace("_"," ")}),N.roiFiveYearNetReturn&&e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:120",children:[U5.format(Number(N.roiFiveYearNetReturn))," ",e.jsx("small",{"data-loc":"client/src/pages/CrmLite.tsx:120",children:"5-year net model"})]}),N.journeyIndustry&&e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:121",children:[N.journeyIndustry.replace("_"," ")," · ",N.journeyStage?.replace("_"," ")]}),e.jsx("strong",{"data-loc":"client/src/pages/CrmLite.tsx:122",className:`prescope-badge ${M.tone}`,children:M.label}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:123",children:N.message})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:127",className:"crm-record-fields",children:[e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:128",children:["Pipeline stage",e.jsx("select",{"data-loc":"client/src/pages/CrmLite.tsx:128",value:U.crmStage,onChange:Z=>k(N,{crmStage:Z.target.value}),children:wb.map(Z=>e.jsx("option",{"data-loc":"client/src/pages/CrmLite.tsx:128",value:Z,children:hp[Z]},Z))})]}),e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:129",children:["Next action",e.jsx("input",{"data-loc":"client/src/pages/CrmLite.tsx:129",value:U.crmNextAction,placeholder:"e.g. Review input
558s with founder",onChange:Z=>k(N,{crmNextAction:Z.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:130",children:["External CRM ID",e.jsx("input",{"data-loc":"client/src/pages/CrmLite.tsx:130",value:U.crmExternalId,placeholder:"Optional main CRM ID",onChange:Z=>k(N,{crmExternalId:Z.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:131",children:["Pre-scope disposition",e.jsx("select",{"data-loc":"client/src/pages/CrmLite.tsx:131",value:U.preScopeDisposition,onChange:Z=>k(N,{preScopeDisposition:Z.target.value}),children:H5.map(Z=>e.jsx("option",{"data-loc":"client/src/pages/CrmLite.tsx:131",value:Z,children:Cb[Z].label},Z))})]}),e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:132",className:"crm-note",children:["Evidence / reason",e.jsx("textarea",{"data-loc":"client/src/pages/CrmLite.tsx:132",value:U.preScopeEvidence,placeholder:"Record the contribution path, cost concern, missing evidence, or reason this is not an ROI-led case.",onChange:Z=>k(N,{preScopeEvidence:Z.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/CrmLite.tsx:133",className:"crm-note",children:["Internal note",e.jsx("textarea",{"data-loc":"client/src/pages/CrmLite.tsx:133",value:U.crmNote,placeholder:"Private call notes, assumptions, blockers, or handoff context",onChange:Z=>k(N,{crmNote:Z.target.value})})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:136",className:"hubspot-ledger",children:[e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:137",className:"hubspot-ledger-header",children:[e.jsx("strong",{"data-loc":"client/src/pages/CrmLite.tsx:137",children:"HUBSPOT HANDOFF LEDGER"}),e.jsx("small",{"data-loc":"client/src/pages/CrmLite.tsx:137",children:"APPROVED CONTACT SUMMARY"})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:138",className:"hubspot-ledger-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:139",className:"hubspot-ledger-cell",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:139",children:"CONTACT IDENTITY"}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:139",children:[N.name," â first / last name"]}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:139",children:[N.workEmail," â email"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:140",className:"hubspot-ledger-cell",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:140",children:"ACCOUNT CONTEXT"}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:140",children:[N.company," â company"]}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:140",children:[N.phone||"No phone supplied"," â phone"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:141",className:"hubspot-ledger-cell",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:141",children:"LIFECYCLE"}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:141",children:"Lead â HubSpot lifecycle stage"}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:141",children:["Alma pipeline: ",hp[U.crmStage]]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:142",className:"hubspot-ledger-cell",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:142",children:"HUBSPOT CONTACT ID"}),N.hubspotContactId?e.jsxs(e.Fragment,{children:[e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:142",children:N.hubspotContactId}),e.jsx("button",{"data-loc":"client/src/pages/CrmLite.tsx:142",type:"button",onClick:()=>F5(N.hubspotContactId),children:"Copy contact ID"})]}):e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:142",children:"Created after a successful sync."})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:143",className:"hubspot-ledger-cell",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"ALMA CUSTOM FIELDS"}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:[e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_source"}),", ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_request_type"}),", ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_qualification"}),", ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_roi_scenario"}),", ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_journey_industry"}),", ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_journey_stage"}),", ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_crm_stage"}),", and ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:143",children:"alma_next_action"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:144",className:"hubspot-ledger-cell",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:144",children:"PRE-SCOPE DISPOSITION"}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:144",children:[e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:144",children:"alma_prescope_disposition"})," â ",M.label]}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:144",children:M.summary})]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:145",className:"hubspot-ledger-cell alma-owned",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:145",children:"ALMA-OWNED DECISION CONTEXT"}),e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:145",children:"Detailed ROI inputs, journey configuration, qualification evidence, internal notes, cost scenarios, and follow-up reasoning remain in Alma CRM Lite. HubSpot receives only the approved contact fields above."})]})]})]}),e.jsxs("footer",{"data-loc":"client/src/pages/CrmLite.tsx:149",children:[e.jsxs("span",{"data-loc":"client/src/pages/CrmLite.tsx:150",className:`hubspot-status ${N.hubspotSyncStatus}`,children:[I,N.hubspotSyncedAt?` · ${new Date(N.hubspotSyncedAt).toLocaleDateString()}`:""]}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:151",children:[e.jsx("button",{"data-loc":"client/src/pages/CrmLite.tsx:151",type:"button",className:"hubspot-sync-button",disabled:m.isPending,onClick:()=>m.mutate({id:N.id}),children:N.hubspotSyncStatus==="failed"?"Retry HubSpot":"Sync HubSpot"}),e.jsx("button",{"data-loc":"client/src/pages/CrmLite.tsx:151",type:"button",disabled:d.isPending,onClick:()=>q(N),children:"Save CRM context"})]})]}),N.hubspotSyncError&&e.jsx("p",{"data-loc":"client/src/pages/CrmLite.tsx:153",className:"hubspot-error",children:N.hubspotSyncError})]},N.id)})}),!l.isLoading&&!w.length&&e.jsx("div",{"data-loc":"client/src/pages/CrmLite.tsx:158",className:"crm-state",children:"No records in this pipeline stage."}),e.jsxs("div",{"data-loc":"client/src/pages/CrmLite.tsx:159",className:"crm-lite-basis",children:[e.jsx("span",{"data-loc":"client/src/pages/CrmLite.tsx:159",children:"HUBSPOT CONTACT SYNC"}),e.jsxs("p",{"data-loc":"client/src/pages/CrmLite.tsx:159",children:["New Alma leads provision approved summary fields and upsert a HubSpot contact by email. Detailed ROI, journey, internal-note, and qualification evidence remain in Alma. HubSpotâs ",e.jsx("code",{"data-loc":"client/src/pages/CrmLite.tsx:159",children:"crm.objects.contacts.write"})," scope is required for the private-app token."]})]})]})})}const so={monthlyCustomers:1e3,avgOrder:75,purchaseFrequency:2,grossMargin:55,activeMemberRate:45,aovLift:4,frequencyLift:5,retentionProtected:2};function G5(a){const n=a.monthlyCustomers*12*a.purchaseFrequency,o=n*a.avgOrder,i=o*(a.grossMargin/100),l=n*(a.avgOrder*(a.aovLift/100))*(a.grossMargin/100),d=n*(a.frequencyLift/100)*a.avgOrder*(a.grossMargin/100),m=a.monthlyCustomers*(a.activeMemberRate/100),h=i*(a.activeMemberRate/100),g=h*(a.retentionProtected/100);return{annualOrders:n,annualRevenueContext:o,annualGrossProfitContext:i,aovContributionContext:l,frequencyContributionContext:d,activeMemberContext:m,activeMemberGrossProfitContext:h,retentionContributionSensitivity:g}}const Y5=["transactional","occasion","recurring","account"],K5=["in_store","ecommerce","mobile","crm","partner"],no={coffee:[{program:"Starbucks Rewards",observed:"Public terms describe tiered Star earning through the app, linked payment, barcode scan, bonus offers, partner earning, and several reward-redemption thresholds.",source:"https://www.starbucks.com/rewards/terms/",sourceLabel:"Starbucks Rewards Terms"},{program:"Dunkin' Rewards",observed:"Public terms describe points per qualifying dollar, a visit-based Boosted Status, bonus-point offers, and app-based reward activation.",source:"https://www.dunkindonuts.com/en/dunkinrewards/dunkin-rewards-terms-and-conditions",sourceLabel:"Dunkin' Rewards Terms"}],retail:[{program:"Tesco Clubcard",observed:"Public terms describe qualifying-transaction point earning, vouchers, partner options, and digital voucher access.",source:"https://www.tesco.com/shop/en-GB/zone/clubcard-terms-and-conditions",sourceLabel:"Tesco Clubcard Terms"},{program:"Boots Advantage Card",observed:"Public programme pages describe points per qualifying spend, app membership, targeted offers, and selected member clubs.",source:"https://www.boots.com/shopping/advantage-card",sourceLabel:"Boots Advantage Card"}],ecommerce:[{program:"Sephora Beauty Insider",observed:"Public terms describe spend-based tiers, point earning on eligible purchases, and Rewards Bazaar redemptions.",source:"https://www.sephora.com/beauty/loyalty-program",sourceLabel:"Seph
558ora Beauty Insider"},{program:"Nike Membership",observed:"Public pages describe member access, offers, selected services, exclusive products and experiences rather than a documented universal points currency.",source:"https://www.nike.com/membership",sourceLabel:"Nike Membership"}],hospitality:[{program:"Marriott Bonvoy",observed:"Public pages describe eligible-spend earning, elite recognition, partner paths, reward stays and experience options.",source:"https://www.marriott.com/loyalty/member-benefits.mi",sourceLabel:"Marriott Bonvoy Benefits"},{program:"Hilton Honors",observed:"Public sources describe eligible-spend points, tiers, selected partner paths, reward stays and experience mechanisms.",source:"https://stories.hilton.com/hilton-honors-fact-sheet",sourceLabel:"Hilton Honors Fact Sheet"}],subscription:[{program:"Nintendo Switch Online Missions",observed:"Public pages describe completing missions to claim points and redeem digital or physical member rewards.",source:"https://www.nintendo.com/us/whatsnew/missions-and-rewards-available-with-nintendo-switch-online/",sourceLabel:"Nintendo Missions and Rewards"},{program:"Xbox Rewards",observed:"Public pages describe gameplay quests, store activity, points, catalogue rewards and subscription-linked reward multipliers.",source:"https://www.xbox.com/en-US/rewards",sourceLabel:"Xbox Rewards"}],b2b:[{program:"Honeywell GO!",observed:"Public announcement describes channel sales allocation, points for eligible offerings, and redemption options for partner sales representatives.",source:"https://www.honeywell.com/us/en/news/press-releases/2019/05/honeywell-to-enhance-productivity-solutions-channel-partner-program",sourceLabel:"Honeywell GO! announcement"},{program:"HP Amplify",observed:"Public pages describe performance, capability and collaboration tracks with benefits tied to partner investment and execution.",source:"https://www.hp.com/us-en/newsroom/press-releases/2020/hp-introduces-powerful-new-global-partner-program.html",sourceLabel:"HP Amplify announcement"}]},J5={coffee:{structure:"A visit-aware value currency with a simple reward ladder",why:"High-frequency occasions make visit cadence and a reachable next reward more important than a complex catalogue.",earn:["Identify at purchase through app, barcode, or phone","Reward qualifying spend and test a visit cadence threshold","Use optional missions for off-peak, category, or mobile-order behavior"],reward:["Low-friction modifiers or add-ons","Reachable drink or food thresholds","Time-boxed personalized offers only when incremental behavior is credible"],kpis:["Identified visit rate","Visits per identified member","Average ticket after reward exposure","Reward cost per incremental visit"],evidence:["Hold out a comparable member cohort","Exclude reward-funded sales from claimed lift until tested","Track redemption timing and reward cost by occasion"],observed:no.coffee},retail:{structure:"A common currency with basket missions and member-value recognition",why:"Retail programmes need an earning path customers understand at the shelf, checkout, and next visit.",earn:["Identify purchases across store and owned digital channels","Test threshold, category and basket missions","Use profile completion or receipts only where data quality is valuable"],reward:["Currency-backed checkout rewards","Category-relevant rewards with contribution limits","Recognition or access for durable member value"],kpis:["Identified sales share","Basket contribution after mission exposure","Repeat purchase ca
558dence","Reward cost versus margin contribution"],evidence:["Compare mission-exposed and held-out cohorts","Separate discount-funded from loyalty-funded sales","Audit product/category exclusions before launch"],observed:no.retail},ecommerce:{structure:"Account-led progress with access, value exchange, and controlled basket missions",why:"The programme should connect session behavior to the account and avoid rewarding guest checkout without a measurable relationship.",earn:["Account creation and first purchase","Qualified category, bundle or replenishment behavior","Reviews or referrals only where verification and value are clear"],reward:["Threshold-based value at checkout","Access, service or early-product benefits","Points only where the reward ledger can be governed"],kpis:["Account identification","AOV after eligible mission exposure","Repeat order rate","Contribution after reward and delivery cost"],evidence:["Use checkout holdouts","Test repeat purchase over defined cohorts","Separate acquisition and retention offers"],observed:no.ecommerce},hospitality:{structure:"Occasion-led recognition, progression, and experience value",why:"Guests should see the relationship improve across stays or occasions, not only see a transactional discount.",earn:["Direct-booking or known-guest stays and eligible spend","Experience, preference, and feedback moments","Partner activity only with attributable economics"],reward:["Relevant upgrade or occasion value","Recognition and access","Experience or redemption options aligned to margin and availability"],kpis:["Known-guest share","Return occasion rate","On-property contribution","Reward utilization and service cost"],evidence:["Compare direct and indirect booking cohorts","Constrain upgrade inventory","Model reward fulfilment cost and availability"],observed:no.hospitality},subscription:{structure:"Progress-and-engagement mechanics that make membership value visible between billing events",why:"Subscription loyalty should improve active usage and value perception before the renewal moment.",earn:["Meaningful usage and onboarding actions","Missions that show progress toward member value","Feedback or advocacy only where the action is verified"],reward:["Access, content, service or experience benefits","Recognition for durable engagement","Points only when the catalogue cost and expiry logic are clear"],kpis:["Activated member rate","Meaningful usage cadence","Renewal cohort behavior","Cost of benefit per retained contribution"],evidence:["Define meaningful usage before launch","Compare renewal cohorts","Avoid treating a survey response as retention evidence"],observed:no.subscription},b2b:{structure:"Account-aware, policy-safe partner or buyer programme with verified performance paths",why:"A channel programme must respect account roles, deal attribution, compliance and the economics of the partner relationship.",earn:["Verified reorder, sell-through, training or capability actions","Account-level goals with approved allocation","Education and service behaviours that support measurable channel value"],reward:["Approved partner benefits, service or access","Performance recognition","Tiered capability support rather than consumer-style blanket discounts"],kpis:["Verified account activity","Average account order value","Reorder cadence","Cost per incremental account contribution"],evidence:["Define attribution before rewarding activity","Apply approval and compliance checks","Model regional and partner eligibility separately"],observed:no.b2b}};function W5(a){const n=J5[a.industry],o=a.channels.includes("in_store")&&a.channels.includes("ecommerce")?"Design one member identity and a controlled value exchange across store and digital activity.":a.channels.includes("partner")?"Keep account attribution, eligibility and approvals explicit before rewarding activity.":"Start with the channel where behavior and contribution can be measured most reliably.",i=a.businessModel==="recurring"?"Prioritize activation and durable usage before attempting richer reward mechanics.":a.businessModel==="account"?"Prioritize verified account behavior, role clarity, and policy-safe recognition.":a.businessModel==="occasion"?"Pri
558oritize next-occasion relevance and an experience-consistent value exchange.":"Prioritize a simple identifiable transaction and a measurable next action before adding programme complexity.",l=[...n.earn],d=[...n.reward],m=[...n.kpis],h=[...n.evidence],g=[];let f=n.structure,y=n.why;return a.scenario.grossMargin<40?(f=`A low-liability version of ${f.toLowerCase()}`,d.unshift("Use access, service, recognition, or a tightly capped benefit before an open-ended currency"),h.unshift("Set a reward-cost ceiling and validate unit contribution before expanding redemption"),g.push("Gross margin is below 40%, so the recommendation protects contribution by prioritizing low-liability value and strict reward caps.")):a.scenario.grossMargin>=60&&(d.unshift("Test a clearer, earned-value ladder where the reward is still bounded by a measured cost ceiling"),g.push("Higher gross-margin headroom allows a controlled test of a clearer earned-value ladder; it does not remove the need to measure cost.")),a.scenario.purchaseFrequency<1.5?(l.unshift("Create a reactivation or next-occasion trigger before relying on dense visit missions"),m.unshift("Reactivated customer rate after a defined inactivity window"),g.push("Purchase frequency is below 1.5 orders per month, so the first job is a credible return triggerânot a frequent-visit gamification layer.")):a.scenario.purchaseFrequency>=4&&(l.unshift("Use a measured visit or cadence threshold, with safeguards against rewarding behavior that would occur anyway"),m.unshift("Qualified visit cadence versus a comparable holdout"),g.push("High purchase frequency makes cadence mechanics relevant, but the engine requires a holdout to distinguish incremental visits from existing habit.")),a.scenario.avgOrder<20?(d.unshift("Keep the first reward small, reachable, and tied to a contribution-positive add-on or threshold"),m.unshift("Contribution after add-on or threshold reward exposure"),g.push("A lower AOV calls for small, fast value exchanges that can be tested against a specific add-on or threshold rather than a large blanket reward.")):a.scenario.avgOrder>=150&&(l.unshift("Use account, bundle, service, or approval milestones rather than treating every dollar like a consumer points event"),d.unshift("Favor service, access, or account-relevant benefit value over a broad discount ladder"),g.push("A higher AOV supports fewer, more deliberate milestones; the recommendation avoids treating large orders as a consumer-style points loop.")),a.scenario.activeMemberRate<30&&(f=`First, improve identification and activation; then add ${f.toLowerCase()}`,l.unshift("Make identification, account setup, or first-value activation the initial earnable action"),m.unshift("Identified and activated customer share"),g.push("Active-member rate is below 30%, so programme complexity is deferred until more customer behavior can be identified and addressed.")),a.scenario.monthlyCustomers<500?(h.unshift("Start with a narrow, operationally simple pilot and a manual review cadence before adding complex automation"),g.push("Lower customer volume favors a narrow pilot with readable evidence rather than a wide catalogue or many simultaneous mechanics.")):a.scenario.monthlyCustomers>=5e3&&(h.unshift("Segment the measurement plan by meaningful behavior group before interpreting a portfolio-level average"),g.push("Higher customer volume supports segmentation, but only after a consistent common currency and attribution model are in place.")),{...n,structure:f,why:y,earn:l,reward:d,kpis:m,evidence:h,scenarioAdjustments:g,channelNote:o,modelNote:i}}const $5={identify:{label:"I join",before:"I pay and walk away. Nobody knows me yet.",offer:"Join now. Start with a little value on your next visit.",choice:"Yes, Iâll join",after:"Now I can see my first bit of progress.",business:"The next visit can be recognized instead of anonymous.",lever:"More members to understand",amount:"+1 member"},basket:{label:"I add one",before:"I am buying one thing and leaving.",offer:"Add one small item. You are closer to your next reward.",choice:"Iâll add it",after:"That feels like a better deal for me today.",business:"A relevant earning choice can create a higher-value basket to test.",lever:"Test a higher AOV",amount:"More value per order"},return:{label:"I come back",before:"I forget about this place for a while.",offer:"You are close. Come back this week and finish your reward.",choice:"Iâll come back",after:"I have a real reason to returnânot just a random ad.",business:"A timely campaign can create a more frequent return to test.",lever:"Test purchase frequency",amount:"More chances to visit"},relationship:{label:"I redeem",before:"I have given this brand a lot, but it feels the same every time.",offer:"Your progress unlocked something useful. Use it when it matters to you.",choice:"Iâll use my reward",after:"This relationship feels like it remembers me.",business:"Relevant value can support the relationship worth protecting over time.",lever:"Protect retention",amount:"A reason to stay"}},Za=[{id:"coffee_qsr",label:"Coffee / QSR",promise:"Recognize the next visit, the useful add-on, and visible progress.",journeyIndustry:"coffee",structureId:"hybrid",earnIds:["join","visit","threshold","mission"],rewardIds:["add-on","access","early-access"],actions:[{channel:"In store",action:"Member scans and visits",verification:"POS or member scan"},{channel:"Mobile order",action:"Member adds a qualifying item",verification:"Owned order event"},{channel:"Return",action:"Member finishes a progress mission",verification:"Verified repeat visit"}]},{id:"ecommerce",label:"Ecommerce brand",promise:"Make the next order and direct relationship more relevant across sessions.",journeyIndustry:"ecommerce",structureId:"missions",earnIds:["join","mobile-order","bundle","replenish","mission"],rewardIds:["early-access","limited-collection","concierge-preview"],actions:[{channel:"Online store",action:"Member signs in and shops",verification:"Owned order event"},{channel:"Email / SMS",action:"Member completes a relevant mission",verification:"Attributed campaign action"},{channel:"Return",action:"Member reorders at the right time",verification:"Verified repeat purchase"}]},{id:"retail_partner",label:"Brand sold through retailers",promise:"Reward verified demand without pretending every retail purchase is known.",journeyIndustry:"retail",structureId:"currency",earnIds:["join","receipt-scan","qualifying-spend","review","mission"],rewardIds:["exclusive","limited-collection","member-event"],actions:[{channel:"Retail partner",action:"Member uploads an eligible receipt",verification:"Receipt or partner data"},{channel:"Direct store",action:"Member learns, registers, or reorders",verification:"Owned account event"},{channel:"Member access",action:"Member unlocks product or experience access",verification:"Eligible member status"}]},{id:"b2b_channel",label:"B2B / channel / distribution",promise:"Make approved account actions, sell-through, and capability visible across the channel.",journeyIndustry:"b2b",structureId:"channel",earnIds:["training","sell-through","profile","direct-book","mission"],rewardIds:["account-benefit","founder-access","collection-appointment"],actions:[{channel:"Account",action:"Partner completes capability or training",verification:"Verified completion"},{channel:"Distribution",action:"Account reports eligible sell-through",verification:"Approved channel data"},{channel:"Relationship",action:"Account unlocks expert or founder access",verification:"Eligible account status"}]}
558,{id:"hospitality",label:"Hospitality / membership",promise:"Recognize direct stays, useful preferences, and membership access.",journeyIndustry:"hospitality",structureId:"access",earnIds:["join","direct-book","preference","anniversary","mission"],rewardIds:["priority","concierge-preview","member-event"],actions:[{channel:"Direct booking",action:"Member books through the owned channel",verification:"Booking event"},{channel:"On property",action:"Member uses a preference or service benefit",verification:"Member profile and stay"},{channel:"Return",action:"Member responds to a timely stay mission",verification:"Verified return booking"}]}],X5=[{id:"founder-access",label:"Founder / expert access",value:"A conversation, office hour, or private Q&A that feels rare and personal.",cash:"Low cash",fulfillment:"Capacity and scheduling",permission:"Only if the person or company has approved the commitment."},{id:"early-access",label:"Early access",value:"Members see or reserve something before the public.",cash:"Low cash",fulfillment:"Inventory allocation",permission:"Only if availability is genuinely reserved."},{id:"limited-collection",label:"Limited collection",value:"A scarce member-only item, colorway, collection, or bundle.",cash:"Variable",fulfillment:"Inventory and delivery",permission:"Only if the item is actually limited and available."},{id:"member-event",label:"Member experience",value:"A small event, preview, workshop, or behind-the-scenes moment.",cash:"Moderate",fulfillment:"Venue, staffing, capacity",permission:"Only if the experience is confirmed and bookable."},{id:"creator-moment",label:"Creator or partner moment",value:"A permitted creator, partner, or community encounter with real relevance.",cash:"Variable",fulfillment:"Contract and scheduling",permission:"Requires a signed partner or creator agreement."},{id:"concierge-preview",label:"Priority preview or concierge",value:"A helpful first look, appointment, or service pathway.",cash:"Low cash",fulfillment:"Service capacity",permission:"Only if the service team can honor it."}],Z5=[{id:"receipt",eyebrow:"RETAIL RECEIPT / MEMBER UPLOAD",title:"The member bought at a retailer.",steps:["Member uploads a receipt","System checks retailer, date, and eligible item","Verified purchase can earn value"],status:"No verified receipt? No loyalty value yet."},{id:"partner",eyebrow:"APPROVED PARTNER DATA / ACCOUNT FEED",title:"A partner or distributor confirms the order.",steps:["Partner sends an approved order record","System matches account and eligible action","Verified record can earn value"],status:"No approved partner record? Hold the reward for review."}],Ni=[{id:"identify",number:"01",moment:"First visit",title:"A customer arrives without a reason to be known.",before:"The purchase is anonymous. The brand sees a transaction, not a person or a future relationship.",intervention:"Create a first-value moment that gives the customer a clear reason to identify, join, or save their progress.",after:"The brand can begin measuring the relationship; the customer sees the first piece of value that is theirs to keep.",metric:"Active membership",metricNote:"Affects how much behavior is visible and addressable",action:"Identity + first-value activation",icon:or,href:"/strategy/active-membership"},{id:"basket",number:"02",moment:"Basket decision",title:"A customer buys what they came forâthen leaves.",before:"There is no relevant reason to add a complementary item, reach a threshold, or make the current basket more valuable.",intervention:"Make the next achievable reward, bundle, or threshold visible at the point where the basket can still change.",after:"The customer can choose a more valuable next action; the business can test whether the incremental contribution pays for the incentive.",metric:"Average order value",metricNote:"Tests a margin-protected basket shift",action:"Threshold + bundle mechanics",icon:Ls,href:"/strategy/average-order-value"},{id:"return",number:"03",moment:"Between visits",title:"The customer has no timely reason to come back.",before:"The relationship goes quiet. The customer has no clear prompt or reason to make the next visit.",intervention:"Use progress, earned value, and a relevant mission to make the next visit feel specificâwithout rewarding activity that would happen anyway.",after:"The customer receives a reason to return; the team can compare incremental behavior with a conservative control scenario.",metric:"Purchase frequency",metricNote:"Tests a credible incremental visit",action:"Progress + return mission",icon:rk,href:"/strategy/purchase-frequency"},{id:"relationship",number:"04",moment:"Ongoing relationship",title:"A valuable customer is treated like every other customer.",before:"No visible progress, recognition, or reason to keep choosing the relationship when competitors make an offer.",intervention:"Connect recognition, relevant rewards, feedback, and referral moments to the relationship value the customer is actually creating.",after:"The customer has more reasons to stay engaged; the business can focus retention investment where future contribution supports it.",metric:"Retention & CLV",metricNote:"Frames the future value worth protecting",action:"Recognition + value exchange",icon:wn,href:"/strategy/retention-clv"}],Es={coffee:{label:"Coffee / QSR",signal:"Daily visit + next reward opportunity",framing:"Make the next visit or add-on more valuable through earned progress and relevant valueânot blanket reward spend.",defaults:{...so,monthlyCustomers:2400,avgOrder:8,purchaseFrequency:4.5,grossMargin:68,activeMemberRate:38,aovLift:3,frequencyLift:4,retentionProtected:2}},retail:{label:"Retail",signal:"Store visit + basket opportunity",framing:"Make the in-store next action visible while a purchase is still being decided.",defaults:{...so,monthlyCustomers:1800,avgOrder:62,purchaseFrequency:1.5}},ecommerce:{label:"Ecommerce",signal:"Session + checkout opportunity",framing:"Connect browse, basket, and post-purchase value across a measurable digital relationship.",defaults:{...so,monthlyCustomers:2500,avgOrder:90,purchaseFrequency:2.4}}
558,hospitality:{label:"Hospitality",signal:"Guest occasion + return opportunity",framing:"Give every visit a reason to become a remembered occasion and a better-timed return.",defaults:{...so,monthlyCustomers:1200,avgOrder:48,purchaseFrequency:2.8,grossMargin:62}},subscription:{label:"Subscription",signal:"Member lifecycle + renewal opportunity",framing:"Turn passive tenure into visible progress, useful moments, and a stronger renewal conversation.",defaults:{...so,monthlyCustomers:900,avgOrder:38,purchaseFrequency:1,activeMemberRate:60,grossMargin:70}},b2b:{label:"B2B / channel",signal:"Account behavior + reorder opportunity",framing:"Make the next approved, profitable account action easier for a buyer, field team, or channel partner to take.",defaults:{...so,monthlyCustomers:320,avgOrder:540,purchaseFrequency:1.8,grossMargin:35,activeMemberRate:55}}},eD={coffee:{identify:{action:"App + first-value activation",intervention:"Make scan, app, or digital wallet identification useful at the counter with value that carries into the next coffee occasion.",after:"The guest has visible progress and the operator can connect repeat occasions to a known relationship.",metricNote:"Tests the share of visits that become addressable member behavior"},basket:{action:"Add-on + reward threshold",intervention:"Show a reachable modifier, food add-on, or reward threshold before the order is final and only where contribution can support it.",after:"The guest can make a more valuable order while the operator tests incremental ticket contribution against reward cost.",metricNote:"Tests a margin-aware ticket lift, not broad reward spend"},return:{action:"Visit cadence + mission",intervention:"Use visible progress, bonus timing, or a relevant mission to make the next coffee visit feel timely and specific.",after:"The guest sees a reason to return before habit drifts or another brand captures the occasion.",metricNote:"Tests an incremental visit against a comparable holdout"},relationship:{action:"Recognition + personalized value",intervention:"Recognize durable guest behavior with relevant value, access, or occasional delight instead of rewarding every visit the same way.",after:"The guest sees a relationship that gets more relevant with repeat behavior.",metricNote:"Frames the repeat-guest contribution worth protecting"}},retail:{identify:{action:"Receipt + first-value activation",intervention:"Invite identification at checkout with a clear value that can be used on the next store visit.",after:"The shopper leaves with visible progress and the team can connect an in-store visit to a known member relationship.",metricNote:"Tests whether store traffic becomes addressable member behavior"},basket:{action:"Threshold + basket mission",intervention:"Show a reachable basket threshold or complementary-item mission while the shopper can still make the choice.",after:"The shopper can see a reason to add value now; the team can test contribution against the cost of the offer.",metricNote:"Tests a margin-protected in-store basket shift"},return:{action:"Return-visit mission",intervention:"Use visible progress and store-relevant rewards to make a specific return visit worthwhile.",after:"The customer sees a reason to come back before the relationship goes quiet.",metricNote:"Tests an incremental store return, not a generic reward blast"},relationship:{action:"Recognition + local relevance",intervention:"Recognize valuable repeat shoppers with value, service, and feedback moments that fit the store relationship.",after:"The relationship has a reason to continue beyond the last transaction.",metricNote:"Frames the profitable store relationship worth protecting"}},ecommerce:{identify:{action:"Account + progress activation",intervention:"Make account creation or member identification useful with progress that survives the session and is visible on the next visit.",after:"The customer moves from anonymous session to a measurable relationship with a reason to return.",metricNote:"Tests how much digital behavior becomes addressable"},basket:{action:"Checkout threshold + bundle",intervention:"Make the next reward threshold, replenishment add-on, or bundle visible before checkout is complete.",after:"The customer can choose a more valuable order while the team can measure incremental contribution.",metricNote:"Tests a margin-protected ecommerce basket shift"},return:{action:"Post-purchase progress mission",intervention:"Use earned value, replenishment timing, and relevant missions to create a specific next-session reason.",after:"The next visit feels relevant to the customer rather than another untargeted message.",metricNote:"Tests a credible incremental digital return"},relationship:{action:"Member recognition + feedback",intervention:"Connect status, reviews, referrals, and reward value to the customerâs demonstrated relationship.",after:"The customer has more reasons to remain identified and engaged across visits.",metricNote:"Frames future ecommerce contribution worth protecting"}}
558,hospitality:{identify:{action:"Guest recognition + first stay value",intervention:"Make identification useful during the guest occasion with a clear, relevant benefit on the next visit.",after:"The guest leaves recognized and able to see value in choosing the relationship again.",metricNote:"Tests whether guest occasions become addressable member behavior"},basket:{action:"Occasion upgrade + threshold",intervention:"Offer a reachable upgrade, add-on, or reward threshold that suits the moment without eroding the occasionâs value.",after:"The guest can choose a more valuable experience while the business measures incremental contribution.",metricNote:"Tests a margin-aware occasion-value shift"},return:{action:"Next-occasion mission",intervention:"Use earned progress and relevant timing to create a reason for the next dining, stay, or service occasion.",after:"The next visit is connected to a remembered experience rather than a generic offer.",metricNote:"Tests an incremental return occasion"},relationship:{action:"Recognition + occasion history",intervention:"Use preference, recognition, and feedback moments to reward relationship value without treating every guest the same.",after:"The guest sees a relationship that remembers and rewards the value they create.",metricNote:"Frames guest value worth protecting over future occasions"}},subscription:{identify:{action:"Onboarding + progress activation",intervention:"Make the first member action meaningful with visible progress, setup value, or a clear path to the next benefit.",after:"The subscriber sees value before the relationship becomes passive or forgettable.",metricNote:"Tests whether early member behavior becomes measurable and repeatable"},basket:{action:"Plan-value threshold",intervention:"Make a relevant bundle, plan upgrade, or usage threshold visible when the customer can choose added value.",after:"The customer can decide whether more value fits their relationship; the team can test contribution carefully.",metricNote:"Tests a protected plan or basket value shift"},return:{action:"Engagement + renewal mission",intervention:"Use progress, relevant content, or earned value to give members a reason to return before renewal becomes the only moment that matters.",after:"The relationship remains active between billing cycles rather than relying on a last-minute save.",metricNote:"Tests an incremental engagement and return pattern"},relationship:{action:"Tenure recognition + renewal value",intervention:"Recognize durable contribution with benefits that make continued membership visibly worthwhile.",after:"The member sees a relationship that becomes more valuable with time.",metricNote:"Frames profitable lifetime value worth protecting"}},b2b:{identify:{action:"Account identification + first action",intervention:"Make the next approved account action visible to the buyer, field team, or channel partner with a clear programme value.",after:"The business can connect behavior to the right account relationship instead of an anonymous transaction.",metricNote:"Tests how much reorder behavior is visible and addressable"},basket:{action:"Reorder threshold + account value",intervention:"Make the next approved reorder, bundle, or threshold commercially relevant to the account buying process.",after:"The buyer has a reason to increase order value within a policy-aware account relationship.",metricNote:"Tests a margin-protected account-order shift"},return:{action:"Reorder mission + service cue",intervention:"Use visible progress and account-relevant service value to make the next reorder more timely and specific.",after:"The account has a reason to return before the reorder becomes an avoidable missed opportunity.",metricNote:"Tests a credible incremental reorder behavior"},relationship:{action:"Account recognition + partner value",intervention:"Recognize durable account value with benefits, service, and partnership moments that support the buying relationship.",after:"The account relationship has a clearer reason to continue beyond a single purchase order.",metricNote:"Frames future account contribution worth protecting"}}},Rl=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}),Sb=$5;function tD({active:a,industryLabel:n,chosen:o,onChoose:i,onSelect:l}){const d=Ni[a],m=Sb[d.id];return e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:97",className:`member-journey-story story-${d.id}`,"aria-label":"Interactive member point of view journey",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:98",className:"member-story-top",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:98",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:98",children:"PLAY AS THE MEMBER"}),e.jsxs("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:98",children:["What would ",e.jsx("em",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:98",children:"you"})," do?"]})]}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:98",children:"Pick a step. Make the memberâs choice. Then see what may change for the business."})]}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:99",className:"member-story-steps",role:"tablist","aria-label":"Member journey steps",children:Ni.map((h,g)=>e.jsxs("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:99",type:"button",role:"tab","aria-selected":a===g,className:a===g?"active":"",onClick:()=>l(g),children:[e.jsxs("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:99",children:["STEP ",g+1]}),e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:99",children:Sb[h.id].label})]}
558,h.id))}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:100",className:"member-story-stage",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",className:"member-story-card member-before",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",children:"BEFORE"}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",className:"member-cartoon",children:[e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",className:"member-face",children:"â"}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",className:"member-body"}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",children:"ME"})]}),e.jsx("h4",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",children:m.before}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:101",children:[n," member point of view."]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",className:"member-choice-card",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",children:"THEN I SEE THIS"}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",className:"member-choice-offer",children:[e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",children:"â
"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",children:m.offer}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",children:"Simple. Clear. Worth noticing."})]}),e.jsxs("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",type:"button",onClick:i,className:o?"chosen":"",children:[o?"Nice choice!":m.choice," ",e.jsx(Y,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:102",size:16})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",className:`member-story-card member-after ${o?"revealed":""}`,"aria-live":"polite",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",children:"AFTER"}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",className:"member-value-bubble",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",children:o?m.amount:"?"}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",children:o?"VALUE I CAN SEE":"MAKE A CHOICE"})]}),e.jsx("h4",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",children:o?m.after:"Choose the offer to see what changes."}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:103",children:o?"The customer value comes first.":"Nothing is assumed until the member has a reason to act."})]})]},`${d.id}-${n}-${o?"after":"before"}`),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:105",className:`member-business-result ${o?"revealed":""}`,children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:105",children:"WHAT THIS MAY CHANGE FOR THE BUSINESS"}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:105",children:[e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:105",children:m.lever}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:105",children:o?m.business:"Make the memberâs choice first. Then reveal the business lever to test."})]}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:105",children:o?"TEST IT":"NO PROMISE"})]})]})}function aD(){const[a,n]=b.useState(0),[o,i]=b.useState("coffee"),[l,d]=b.useState(Es.coffee.defaults),[m,h]=b.useState("transactional"),[g,f]=b.useState(["in_store","mobile"]),[y,x]=b.useState(!0),[j,C]=b.useState(!1),[R,w]=b.useState("coffee_qsr"),[E,k]=b.useState(""),[D,q]=b.useState({name:"",workEmail:"",company:"",phone:""}),K=Ke.leads.submitJourneyBrief.useMutation(),N=Ni[a],U=N.icon,M=eD[o][N.id],I=b.useMemo(()=>G5(l),[l]),Z=b.useMemo(()=>W5({industry:o,businessModel:m,channels:g,scenario:l}),[o,m,g,l]),ae=Za.find(A=>A.id===R)??Za[0];b.useEffect(()=>{if(!y||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const A=window.setInterval(()=>n(_=>(_+1)%Ni.length),6200);return()=>window.clearInterval(A)},[y]);function le(A,_){d(z=>({...z,[A]:Number(_)||0}))}function ie(A){i(A),d(Es[A].defaults)}function he(A){const _=Za.find(z=>z.id===A)??Za[0];w(_.id),ie(_.journeyIndustry),h(_.id==="b2b_channel"?"account":"transactional"),x(!1),C(!1)}function pe(A){f(_=>_.includes(A)?_.length>1?_.filter(z=>
558z!==A):_:[..._,A])}function ge(A){A.preventDefault(),K.mutate({...D,phone:D.phone||void 0,industry:o,stage:N.id,scenario:{...l,businessModel:m,channels:g}})}return e.jsx("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:150",id:"customer-journey",className:"journey-simulator-section",children:e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:150",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151",className:"journey-simulator-heading",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151",children:[e.jsx(re,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151",children:"What changes ifâ¦"}),e.jsxs("h2",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151",children:["Be the member for a minute.",e.jsx("br",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151"}),e.jsx("em",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151",children:"Then see what changes."})]})]}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:151",children:"Pick a simple step. Make the customerâs choice. First you see the value they receive. Then you see the business result worth testing."})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",className:"business-customizer",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",children:"MAKE IT YOUR BUSINESS"}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",children:["Business name ",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",value:E,placeholder:"e.g. North Star Coffee",onChange:A=>k(A.target.value)})]})]}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",className:"business-profile-options",children:Za.map(A=>e.jsx("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",type:"button",className:ae.id===A.id?"active":"",onClick:()=>he(A.id),children:A.label},A.id))}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",children:[e.jsxs("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:152",children:[E||ae.label,":"]})," ",ae.promise]})]}),e.jsx(tD,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:153",active:a,industryLabel:E||ae.label,chosen:j,onChoose:()=>C(!0),onSelect:A=>{n(A),C(!1),x(!1)}}),e.jsx(sD,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:154",profile:ae}),e.jsx(nD,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:155"}),e.jsxs("details",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:156",className:"journey-deep-dive",children:[e.jsxs("summary",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:156",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:156",children:"Want to make this specific to your business?"}),e.jsxs("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:156",children:["Open the detailed planning tools ",e.jsx(Y,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:156",size:15})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:156",className:"journey-deep-dive-body",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",className:"journey-tool-controls",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:"01 / CHOOSE A CONTEXT"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:"What kind of relationship are you trying to change?"})]}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",className:"journey-industry-tabs",role:"tablist","aria-label":"Industry context",children:Object.keys(Es).map(A=>e.jsx("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",type:"button",role:"tab","aria-selected":o===A,className:o===A?"active":"",onClick:()=>ie(A),children:Es[A].label},A))}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:[e.jsxs("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:[Es[o].signal,"."]})," ",Es[o].framing]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",className:"journey-architecture-control
558s",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:"BUSINESS MODEL"}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:Y5.map(A=>e.jsx("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",type:"button",className:m===A?"active":"",onClick:()=>h(A),children:A},A))})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:"ACTIVE CHANNELS"}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",children:K5.map(A=>e.jsx("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:157",type:"button",className:g.includes(A)?"active":"",onClick:()=>pe(A),children:A.replace("_"," ")},A))})]})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-simulator-shell",children:[e.jsx("nav",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-stage-list","aria-label":"Customer journey moments",children:Ni.map((A,_)=>e.jsxs("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",type:"button",className:_===a?"active":"",onClick:()=>n(_),children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:A.number}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:A.moment}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:A.metric})]}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158"})]},A.id))}),e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-simulator-panel",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-panel-header",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:[e.jsxs("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:[N.number," / ",N.moment.toUpperCase()," / ",Es[o].label.toUpperCase()]}),e.jsx("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:N.title})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-metric-chip",children:[e.jsx(U,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",size:18}),e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"MODELED LEVER"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:N.metric})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-comparison",children:[e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-before",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-card-label",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"CUSTOMER POV / BEFORE"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"ONE-OFF"})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-portrait before-portrait",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"YOU"}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"Customer"})]}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:N.before}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-state",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"THE CURRENT STATE"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"Little visible reason to change behavior"})]})]}),e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-intervention",children:[e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"intervention-pulse",children:e.jsx(ek,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",size:21})}),e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"ALMA INTERVENTION"}),e.jsx("h4",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:M.action}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:M.intervention}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"intervention-flow",children:[e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158"})]}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:Es[o].framing})]}),e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-after",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-card-label",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"CUSTOMER POV / AFTER"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"VALUE VISIBLE"})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-portrait after-portrait",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"YOU"}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"Member"}),e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"+ value"})]}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:M.after}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-state",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"WHAT TO TEST"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:M.metricNote})]})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",className:"journey-panel-footer",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:[e.jsx(nt,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",size:16}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",children:"What this simulator does:"})," shows the mechanism, customer value, and the business lever to testânot a promised result."]})]}),e.jsxs(V,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",href:N.href,children:["Open the ",N.metric," strategy ",e.jsx(Y,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:158",size:15})]})]})]},`${o}-${N.id}`)]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",className:"journey-workbench",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",className:"journey-workbench-heading",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"02 / SET YOUR BASELINE"}),e.jsx("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"Make the scenario yours."})]}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"These inputs create directional contribution context for the selected journey moment. They are editable assumptions, not a forecast."})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",className:"journey-input-grid",children:[e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Monthly customers",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"1",value:l.monthlyCustomers,onChange:A=>le("monthlyCustomers",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Average order value",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",value:l.avgOrder,onChange:A=>le("avgOrder",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Orders per customer / month",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",step:"0.1",value:l.purchaseFrequency,onChange:A=>le("purchaseFrequency",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Gross margin %",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",max:"100",value:l.grossMargin,onChange:A=>le("grossMargin",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Active-member rate
558%",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",max:"100",value:l.activeMemberRate,onChange:A=>le("activeMemberRate",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Tested AOV lift %",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",max:"100",step:"0.1",value:l.aovLift,onChange:A=>le("aovLift",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Tested frequency lift %",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",max:"100",step:"0.1",value:l.frequencyLift,onChange:A=>le("frequencyLift",A.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:["Retained contribution sensitivity %",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",type:"number",min:"0",max:"100",step:"0.1",value:l.retentionProtected,onChange:A=>le("retentionProtected",A.target.value)})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",className:"journey-scenario-output",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"ANNUAL REVENUE CONTEXT"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:Rl.format(I.annualRevenueContext)}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"Baseline activity implied by your inputs"})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"ACTIVE MEMBERS / MONTH"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:Math.round(I.activeMemberContext).toLocaleString()}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"Addressable member context, not an enrollment forecast"})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"AOV CONTRIBUTION CONTEXT"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:Rl.format(I.aovContributionContext)}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"Before reward cost, delivery cost, or holdout evidence"})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"FREQUENCY CONTRIBUTION CONTEXT"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:Rl.format(I.frequencyContributionContext)}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"Before reward cost, delivery cost, or holdout evidence"})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"RETENTION SENSITIVITY"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:Rl.format(I.retentionContributionSensitivity)}),e.jsx("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:159",children:"Contribution context on active-member gross profit before costs"})]})]})]}),e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"journey-decision-engine",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"decision-engine-header",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx(re,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"03 / DECISION ENGINE"}),e.jsx("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"Structure the programme around the behavior that can pay for itself."})]}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"Planning recommendation."})," ",Z.modelNote," ",Z.channelNote]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"decision-engine-structure",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"RECOMMENDED STRUCTURE"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:Z.structure}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:Z.why})]}),Z.scenarioAdjustments.length>0&&e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"decision-scenario-adjustments",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"HOW YOUR INPUTS CHANGED THE RECOMMENDATION"}),Z.scenarioAdjustments.map(A=>e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:A},A))]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"decision-engine-grid",children:[e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"WAYS TO EARN"}),Z.earn.map(A=>e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:["+ ",A]},A))]}),e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"WAYS TO REWARD"}),Z.reward.map(A=>e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:["+ ",A]},A))]}),e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"KPIs TO PRIORITIZE"}),Z.kpis.map(A=>e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:["+ ",A]},A))]}),e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"EVIDENCE BEFORE SCALE"}),Z.evidence.map(A=>e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:["+ ",A]},A))]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"decision-observed",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"OBSERVED PUBLIC PROGRAMME PATTERNS"}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:"Examples are public mechanics, not competitorsâ performance claims or a promise that the pattern will work for this business."})]}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",className:"decision-observed-cards",children:Z.observed.map(A=>e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:[e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:A.program}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",children:A.observed}),e.jsxs("a",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",href:A.source,target:"_blank",rel:"noreferrer",children:["View ",A.
558sourceLabel," ",e.jsx(Y,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:160",size:13})]})]},A.program))})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"journey-brief-panel",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"journey-brief-copy",children:[e.jsx(re,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:"04 / REQUEST THE DECISION BRIEF"}),e.jsx("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:"Send this journey context to Alma."}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:"We will review the customer moment, selected industry, programme structure, and visible assumptions before recommending the next modeling or strategy step."}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"journey-brief-tags",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:Es[o].label}),e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:m}),e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:N.metric}),e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:N.moment})]})]}),K.isSuccess?e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"journey-brief-success",children:[e.jsx(nt,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",size:28}),e.jsx("h4",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:"Decision brief request saved."}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:"The owner workspace now has your customer-journey context and planning assumptions for review."})]}):e.jsxs("form",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"journey-brief-form",onSubmit:ge,children:[e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:["Name",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",required:!0,minLength:2,value:D.name,onChange:A=>q(_=>({..._,name:A.target.value}))})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:["Work email",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",required:!0,type:"email",value:D.workEmail,onChange:A=>q(_=>({..._,workEmail:A.target.value}))})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:["Company",e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",required:!0,minLength:2,value:D.company,onChange:A=>q(_=>({..._,company:A.target.value}))})]}),e.jsxs("label",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:["Phone ",e.jsx("em",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",children:"(optional)"}),e.jsx("input",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",value:D.phone,onChange:A=>q(_=>({..._,phone:A.target.value}))})]}),K.isError&&e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"journey-brief-error",children:"We could not save the request. Please try again or contact [email protected]."}),e.jsx("button",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"button button-orange",type:"submit",disabled:K.isPending,children:K.isPending?e.jsxs(e.Fragment,{children:[e.jsx(Pa,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",className:"animate-spin",size:16})," Saving your briefâ¦"]}):e.jsxs(e.Fragment,{children:["Request my decision brief ",e.jsx(Y,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:161",size:16})]})})]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",className:"journey-simulator-summary",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:"01"}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:"Customer moment"})," Start with the behavior and context that exists today."]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:"02"}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:"Value exchange"})," Add a reason for a more valuable customer action."]})]}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:"03"}),e.jsxs("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",children:"Economic test"})," Model contribution, cost, and evidence before a claim is made."]})]}),e.jsxs(V,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",href:"/roi-calculator",className:"button button-orange",children:["Test the full ROI case ",e.jsx(Y,{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",size:16})]})]}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:162",className:"journey-simulator-note",children:"No outcome is guaranteed. Each potential lift depends on customer context, incentive design, margin, timing, and measurement quality. Almaâs role is to make the assumptions visible and testable."})]})]})]})})}function sD({profile:a}){return e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",className:"member-omnichannel-timeline",children:[e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:"ONE MEMBER RELATIONSHIP / MANY VERIFIED MOMENTS"}),e.jsx("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:"Follow the member wherever the relationship happens."}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:"Only verified activity should create loyalty value. Different channels can still feel like one clear member journey."})]}),e.jsx("ol",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:a.actions.map((n,o)=>e.jsxs("li",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:String(o+1).padStart(2,"0")}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:n.channel}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:n.action}),e.jsxs("small",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:168",children:["Verified by: ",n.verification]})]})]},`${n.channel}-${n.action}`))})]})}function nD(){return e.jsxs("section",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",className:"third-party-evidence",children:[e.jsxs("header",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:"HOW THIRD-PARTY PURCHASES BECOME LOYALTY VALUE"}),e.jsx("h3",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:"Verify it first. Then reward it."}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:"A member can buy from a retailer, partner, or distributor. The purchase should only create loyalty value after the evidence is matched to an eligible action."})]}),e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",className:"third-party-evidence-grid",children:Z5.map(a=>e.jsxs("article",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",className:`evidence-card ${a.id}`,children:[e.jsx("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",className:"evidence-visual","aria-hidden":"true",children:a.id==="receipt"?e.jsxs(e.Fragment,{children:[e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"})]}):e.jsxs(e.Fragment,{children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:"PARTNER"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"}),e.jsx("i",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172"}),e.jsx("strong",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:"ORDER â"})]})}),e.jsxs("div",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",className:"evidence-copy",children:[e.jsx("span",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:a.eyebrow}),e.jsx("h4",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:a.title}),e.jsx("ol",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:a.steps.map((n,o)=>e.jsxs("li",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:[e.jsx("b",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:o+1}),n]},n))}),e.jsx("p",{"data-loc":"client/src/components/CustomerJourneySimulator.tsx:172",children:a.status})]})]},a.id))})]})}const ah=20,Ow=[["join","Join or identify","Identity","Make a known relationship useful at the first moment.","FOUNDATION"],["qualifying-spend","Qualifying spend","Transaction","Earn only on contribution-eligible revenue.","CORE"],["visit","Qualified visit","Cadence","Reward a measured occasion, not every footfall.","CADENCE"],["threshold","Basket threshold","Basket","Unlock value after a defined contribution threshold.","AOV"],["bundle","Bundle or category mix","Basket","Encourage a better mix, not a blanket discount.","AOV"],["replenish","Replenishment action","Lifecycle","Recognize a timely repeat purchase or refill.","RETURN"],["mobile-order","Owned digital order","Channel","Make the measurable owned channel more useful.","CHANNEL"],["app-activation","App or wallet activation","Identity","Turn a dormant account into an addressable member.","ACTIVATE"],["profile","Profile completion","Data","Exchange value for data that improves relevance.","DATA"],["preference","Preference signal","Data","Reward a preference that makes service more relevant.","DATA"],["feedback","Verified feedback","Advocacy","Recognize response only when it has a clear business use.","VOICE"],["review","Verified review","Advocacy","Reward a verified contribution to trust, not an unverified claim.","VOICE"],["referral","Qualified referral","Advocacy","Recognize a referral only after the new relationship qualifies.","GROWTH"],["social","Verified social action","Advocacy","Use sparingly where the action can be measured and governed.","GROWTH"],["training","Training or education","Capability","Bu
558ild capability before asking for higher-value behavior.","B2B"],["sell-through","Verified sell-through","Channel","Reward attributable partner or account performance.","B2B"],["direct-book","Direct booking","Channel","Make a known, direct relationship more valuable.","DIRECT"],["mission","Targeted mission","Behavior","Create a specific next action for a defined segment.","MISSION"],["streak","Sustainable streak","Cadence","Recognize repeated behavior with an explicit cost boundary.","CADENCE"],["anniversary","Relationship anniversary","Recognition","Make durable relationship value visible over time.","TENURE"],["birthday","Occasion recognition","Recognition","Offer occasion value only within a measured policy.","OCCASION"],["service-recovery","Service recovery action","Experience","Resolve an issue while preserving a known relationship.","CARE"],["community","Community participation","Engagement","Reward meaningful participation, not passive noise.","ENGAGE"],["challenge","Progress challenge","Behavior","Use a time-bound goal to make progress tangible.","MISSION"],["receipt-scan","Verified retail receipt","Retail partner","Recognize eligible third-party purchases only after a receipt or partner record is verified.","OMNICHANNEL"]].map(([a,n,o,i,l])=>({id:a,type:"earn",label:n,category:o,description:i,tag:l})),kw=[["cash-off","Controlled cash-off","Value","A clear value exchange with a protected reward ceiling.","CORE"],["free-item","Reachable item reward","Value","A simple, visible reward at a managed threshold.","CORE"],["add-on","Complementary add-on","Basket","Reward with an item that supports a better occasion.","AOV"],["upgrade","Relevant upgrade","Experience","Offer a service or experience uplift where capacity allows.","EXPERIENCE"],["shipping","Delivery or service benefit","Service","Create measurable convenience without broad discounting.","SERVICE"],["access","Early access","Access","Make belonging visible through access before a price concession.","ACCESS"],["exclusive","Exclusive product","Access","Reward relationship value with differentiated availability.","ACCESS"],["priority","Priority service","Service","Use service recognition when it is operationally feasible.","SERVICE"],["partner","Partner reward","Partner","Extend perceived value only with attributable partner economics.","PARTNER"],["donation","Approved donation","Purpose","Offer values-led redemption with a controlled cost model.","PURPOSE"],["experience","Experience reward","Experience","Create a memorable relationship moment rather than a generic discount.","EXPERIENCE"],["surprise","Surprise and delight","Recognition","Use discretionary delight as a bounded recognition tool.","RECOGNITION"],["status","Status recognition","Recognition","Make durable contribution visible through member recognition.","TENURE"],["tier-benefit","Tier benefit","Structure","Unlock benefits only after clear and measured progression.","TIER"],["booster","Earn-rate booster","Progress","Increase perceived progress without confusing the value exchange.","PROGRESS"],["bonus-window","Timed bonus window","Cadence","Focus activity in a period where incremental behavior matters.","CADENCE"],["bundle-credit","Bundle credit","Basket","Support a relevant multi-item or multi-service choice.","AOV"],["recovery","Service recovery credit","Care","Protect future relationship value after a poor experience.","CARE"],["training-benefit","Capability benefit","B2B","Reward training, support, or approved partner enablement.","B2B"],["account-benefit","Account-level benefit","B2B","Make a policy-safe benefit visible to the buying relationship.","B2B"],["donation-match","Impact match","Purpose","Make values-led activity visible under an explicit policy.","PURPOSE"],["perk","Member-only perk","Access","Give members a benefit that is relevant but cost-controlled.","ACCESS"],["catalogue","Curated catalogue","Choice","Offer controlled choice with defined fulfilment economics.","CHOICE"],["sweepstakes","Approved prize entry","Engagement","Use only where governance and customer expectations are clear.","ENGAGE"],["founder-access","Founder / expert access","A
558ccess","Offer scarce expert time only with real capacity and approval.","ACCESS"],["early-access","Early access","Access","Give eligible members a genuine early view or reservation window.","ACCESS"],["limited-collection","Limited collection","Scarcity","Offer a truly limited member collection with defined inventory.","SCARCITY"],["member-event","Member experience","Experience","Make a confirmed small event, preview, or workshop available.","EXPERIENCE"],["creator-moment","Creator / partner moment","Partner","Use only with a permitted creator or partner commitment.","PARTNER"],["concierge-preview","Priority preview / concierge","Service","Offer a bookable first look or service pathway within capacity.","SERVICE"]].map(([a,n,o,i,l])=>({id:a,type:"reward",label:n,category:o,description:i,tag:l})),Si=[{id:"currency",label:"Common value currency",description:"One visible earned value across eligible customer moments.",customerPromise:"Every useful action moves you closer to something you can use."},{id:"tiers",label:"Progressive tiers",description:"Recognition and benefits build as durable contribution increases.",customerPromise:"The relationship gets more valuable as you build it."},{id:"missions",label:"Mission-led engagement",description:"Time-bound, segmented actions create a specific next move.",customerPromise:"There is always a relevant next action to take."},{id:"hybrid",label:"Currency + missions",description:"A simple baseline value exchange with targeted reasons to act.",customerPromise:"Earn consistently, then unlock more through relevant missions."},{id:"access",label:"Membership & access",description:"Service, access, and relationship recognition are the primary value.",customerPromise:"Being known gives you better access and service."},{id:"channel",label:"Account / channel performance",description:"Verified account behavior, capability, and policy-safe benefits drive value.",customerPromise:"Make approved, valuable account actions count."}],El=[{id:"alma",label:"Alma signal",accent:"#ed5f22",surface:"#16110f",ink:"#fffaf1"},{id:"night",label:"Midnight",accent:"#8fb7ff",surface:"#101827",ink:"#f5f7ff"},{id:"forest",label:"Forest",accent:"#c9df6a",surface:"#1e2e1f",ink:"#f7fff1"},{id:"orchid",label:"Orchid",accent:"#d6a6ff",surface:"#33213b",ink:"#fff7ff"}],rD=["new member","active member","lapsed member","high-value member"],oD=["always-on","next action","off-peak","recovery","seasonal","anniversary"];function Mw(a){return a.flatMap(n=>rD.flatMap(o=>oD.map(i=>({...n,id:`${n.id}--${o.replaceAll(" ","-")}--${i.replaceAll(" ","-")}`,label:`${n.label} · ${o} / ${i}`,description:`${n.description} Configured for a ${o} at a ${i} moment.`,tag:`${n.tag} / VARIANT`}))))}const iD=Mw(Ow),cD=Mw(kw),ro=[...Ow,...iD],oo=[...kw,...cD];function Nl(a,n){return a.includes(n)?a.filter(o=>o!==n):a.length>=ah?a:[...a,n]}const lD={"cash-off":1.15,"free-item":1.4,"add-on":.58,upgrade:1.65,shipping:1.1,access:.32,exclusive:.7,priority:.42,partner:.52,donation:.65,experience:2.25,surprise:.95,status:.28,"tier-benefit":.75,booster:.48,"bonus-window":.6,"bundle-credit":.9,recovery:1.2,"training-benefit":1.1,"account-benefit":1.35,"donation-match":.8,perk:.42,catalogue:1.45,sweepstakes:.22,"founder-access":.35,"early-access":.22,"limited-collection":.95,"member-event":2.4,"creator-moment":1.8,"concierge-preview":.42},dD={join:.08,"qualifying-spend":.04,visit:.05,threshold:.06,bundle:.08,replenish:.07,"mobile-order":.06,"app-activation":.09,profile:.12,preference:.1,feedback:.15,review:.18,referral:.2,social:.11,training:.3,"sell-through":.18,"direct-book":.08,mission:.13,streak:.1,anniversary:.07,birthday:.09,"service-recovery":.24,community:.12,challenge:.14,"receipt-scan":.16},uD={currency:1,tiers:1.12,missions:1.18,hybrid:1.23,access:1.08,channel:1.28},Ab=a=>a.split("--")[0],Ns=a=>Math.round(a*100)/100;function Rb(a){const n=Math.max(0,a.activeMembers),o=Math.max(0,a.redemptionRate)/100,i=uD[a.structureId]??1,l=Math.min(.8,.14+a.earnItems.length*.018),d=a.earnItems.map(w=>{const E=dD[Ab(w.id)]??.1,k=n*l*E*i;return{id:w.id,label:w.label,type:"earn",monthlyPlanningCost:Ns(k),assumption:`${Math.round(l*100)}% member-action planning rate à $${E.toFixed(2)} delivery allowance`,evidence:"Measure completion and incremental behavior against a control or holdout."}}),m=a.rewardItems.map(w=>{const E=lD[Ab(w.id)]??.75,k=a.rewardItems.length?1/a.rewardItems.length:0,q=n*o*(1+a.rewardItems.length*.03)*k*E*i;return{id:w.id,label:w.label,type:"reward",monthlyPlanningCost:Ns(q),assumption:`${Math.round(o*100)}% monthly redemption planning rate à $${E.toFixed(2)} unit-cost allowance`,evidence:"Validate actual redemption, fulfilment, breakage policy, and contribution after reward cost."}}),h=d.reduce((w,E)=>w+E.monthlyPlanningCost,0),g=m.reduce((w,E)=>w+E.monthlyPlanningCost,0),f=Math.max(0,a.monthlyPlatformAndOps)*i,y=Ns(h+g+f),x=Math.max(0,a.monthlyIncrementalContribution),j=Ns(x-y),C=n?Ns(y/n):0,R=y?Ns(x/y):0;return{monthlyEarnLines:d,monthlyRewardLines:m,earnDeliveryCost:Ns(h),rewardFundingCost:Ns(g),platformAndOpsCost:Ns(f),totalMonthlyCost:y,incrementalContribution:x,contributionGap:j,costPerActiveMember:C,coverageRatio:R,structureMultiplier:i}}const mD=6;function pD(a,n){return[n,...a].slice(0,mD)}function Eb(a,n){return a.includes(n)?a.filter(o=>o!==n):[...a,n].slice(-2)}const ma=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}),Nb="alma-loyalty-programme-scenarios-v1";function hD({item:a,selected:n,onToggle:o,onDragStart:i}){return e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",draggable:!0,type:"button",className:`composer-catalogue-card ${n?"selected":""}`,onClick:o,onDragStart:i,"aria-pressed":n,children:[e.jsx(VO,{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",size:14}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",children:a.tag}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",children:a.label}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",children:a.description})]}),n?e.jsx(Ea,{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",size:16}):e.jsx(Vj,{"data-loc":"client/src/components/ProgrammeComposer.tsx:19",size:16})]})}function gD({scenarios:a}){const n=Math.max(...a.map(m=>m.cost.totalMonthlyCost),1),o=Math.max(...a.map(m=>m.cost.incrementalContribution),1),i=Math.max(...a.map(m=>m.cost.coverageRatio),1),l=Math.max(...a.map(m=>Math.abs(m.cost.contributionGap)),1),d=[{id:"cost",label:"MODELED PROGRAMME COST",detail:"Monthly planning cost",max:n,value:m=>m.cost.totalMonthlyCost,text:m=>ma.format(m)}
558,{id:"contribution",label:"MODELED CONTRIBUTION",detail:"Monthly gross contribution input",max:o,value:m=>m.cost.incrementalContribution,text:m=>ma.format(m)},{id:"coverage",label:"ROI READINESS / COVERAGE",detail:"Contribution ÷ cost; not an ROI forecast",max:i,value:m=>m.cost.coverageRatio,text:m=>`${m.toFixed(2)}Ã`},{id:"position",label:"COVERAGE POSITION",detail:"Contribution less selected cost",max:l,value:m=>Math.abs(m.cost.contributionGap),text:(m,h)=>`${h.cost.contributionGap>=0?"+":""}${ma.format(h.cost.contributionGap)}`,signed:!0}];return e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:"composer-comparison-charts","aria-label":"Color-coded modeled scenario comparison charts",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:"composer-chart-intro",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:"VISUAL COMPARISON"}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:"Orange = cost pressure, lime = modeled contribution, blue = coverage readiness, and green/coral = modeled coverage position. All bars use the selected scenariosâ own planning inputs."})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:"composer-chart-grid",children:d.map(m=>e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:`composer-bar-chart ${m.id}`,children:[e.jsxs("header",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:m.label}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:m.detail})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:a.map(h=>{const g=m.value(h),f=Math.max(3,Math.min(100,g/m.max*100)),y=m.signed?h.cost.contributionGap>=0?"positive":"negative":"";return e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:"composer-bar-row",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:h.name}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",children:m.text(g,h)})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:"composer-bar-track",children:e.jsx("i",{"data-loc":"client/src/components/ProgrammeComposer.tsx:35",className:y,style:{width:`${f}%`},role:"progressbar","aria-label":`${m.label}: ${h.name}, ${m.text(g,h)}`,"aria-valuemin":0,"aria-valuemax":m.max,"aria-valuenow":g})})]},h.id)})})]},m.id))})]})}function fD(){const[a,n]=b.useState(["join","qualifying-spend","mission"]),[o,i]=b.useState(["free-item","access","booster"]),[l,d]=b.useState("hybrid"),[m,h]=b.useState(""),[g,f]=b.useState("earn"),[y,x]=b.useState("Your loyalty"),[j,C]=b.useState(El[0]),[R,w]=b.useState(""),[E,k]=b.useState(24),[D,q]=b.useState({activeMembers:1e3,monthlyIncrementalContribution:3e3,redemptionRate:8,monthlyPlatformAndOps:750}),[K,N]=b.useState(()=>{if(typeof window>"u")return[];try{const H=JSON.parse(window.localStorage.getItem(Nb)||"[]");return Array.isArray(H)?H:[]}catch{return[]}}),[U,M]=b.useState(""),[I,Z]=b.useState([]),[ae,le]=b.useState("coffee_qsr"),[ie,he]=b.useState(""),pe=R||j.accent,ge=Si.find(H=>H.id===l)??Si[0],A=ro.filter(H=>a.includes(H.id)),_=oo.filter(H=>o.includes(H.id)),z=g==="earn"?ro:oo,ee=b.useMemo(()=>z.filter(H=>`${H.label} ${H.category} ${H.description}`.toLowerCase().includes(m.toLowerCase())),[z,m]),de=b.useMemo(()=>Rb({...D,structureId:l,earnItems:A,rewardItems:_}),[D,l,A,_]),P=b.useMemo(()=>K.filter(H=>I.includes(H.id)).map(H=>{const Se=ro.filter(Lt=>H.earnIds.includes(Lt.id)),rt=oo.filter(Lt=>H.rewardIds.includes(Lt.id));return{...H,earnItems:Se,rewardItems:rt,cost:Rb({...H.costInputs,structureId:H.structureId,earnItems:Se,rewardItems:rt})}}),[K,I]);b.useEffect(()=>{window.localStorage.setItem(Nb,JSON.stringify(K))},[K]);function W(H,Se){H==="earn"?n(rt=>Nl(rt,Se)):i(rt=>Nl(rt,Se))}function F(H){H.preventDefault();const Se=H.dataTransfer.getData("text/plain"),[rt,Lt]=Se.split(":");rt==="earn"&&ro.some(It=>It.id===Lt)&&n(It=>Nl(It,Lt)),rt==="reward"&&oo.some(It=>It.id===Lt)&&i(It=>Nl(It,Lt))}function $(H){f(H),h(""),k(24)}function O(H,Se){q(rt=>({...rt,[H]:Number(Se)||0}))}function oe(){const H={id:`${Date.now()}-${Math.random().toString(36).slice(2,7)}`,name:U.trim()||`${y} scenario ${K.length+1}
558`,createdAt:Date.now(),earnIds:a,rewardIds:o,structureId:l,programmeName:y,themeId:j.id,customAccent:R,costInputs:D};N(Se=>pD(Se,H)),Z(Se=>Eb(Se,H.id)),M("")}function ce(H){n(H.earnIds),i(H.rewardIds),d(H.structureId),x(H.programmeName),C(El.find(Se=>Se.id===H.themeId)??El[0]),w(H.customAccent),q(H.costInputs)}function we(H){N(Se=>Se.filter(rt=>rt.id!==H)),Z(Se=>Se.filter(rt=>rt!==H))}const Me={"--composer-accent":pe,"--composer-surface":j.surface,"--composer-ink":j.ink},dt=`${l}-${j.id}-${R}-${a.join("-")}-${o.join("-")}`,wt=Za.find(H=>H.id===ae)??Za[0];function yt(H){const Se=Za.find(rt=>rt.id===H)??Za[0];le(Se.id),d(Se.structureId),n(Se.earnIds),i(Se.rewardIds),ie.trim()||x(`${Se.label} loyalty`)}return e.jsx("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",className:"programme-composer-section","aria-labelledby":"programme-composer-title",children:e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",className:"composer-heading",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:"THE LOYALTY PROGRAMME COMPOSER"}),e.jsxs("h2",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",id:"programme-composer-title",children:["Build the mechanics.",e.jsx("br",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100"}),e.jsx("em",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:"See the member experience."})]})]}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:"Choose from a deep library of planning mechanics, drag them into the programme canvas, then watch the public member page change. This is a configurable concept boardânot a launch plan or an ROI guarantee."})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",className:"composer-meta",children:[e.jsxs("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:[e.jsx(wn,{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",size:15})," ",(ro.length+oo.length).toLocaleString()," configurable planning variants"]}),e.jsxs("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:[e.jsx(YO,{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",size:15})," 6 programme structures"]}),e.jsxs("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",children:[e.jsx(tk,{"data-loc":"client/src/components/ProgrammeComposer.tsx:100",size:15})," live brand preview"]})]}),e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",className:"composer-business-profile",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:"START WITH YOUR BUSINESS"}),e.jsx("h3",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:"Choose the relationship you actually have."}),e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:["Business name ",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",value:ie,placeholder:"e.g. North Star Coffee",onChange:H=>{he(H.target.value),x(H.target.value?`${H.target.value} loyalty`:y)}})]})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",className:"composer-business-profile-options",children:Za.map(H=>e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",type:"button",className:wt.id===H.id?"active":"",onClick:()=>yt(H.id),children:[e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:H.label}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:H.promise})]},H.id))}),e.jsxs("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:[e.jsx("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:101",children:"Suggested starting point:"})," ",wt.promise," The canvas below is preloaded with planning mechanics for this relationship; change anything you need."]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",className:"composer-workspace",children:[e.jsxs("aside",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",className:"composer-library composer-earn",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",className:"composer-library-head",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",children:"WAYS TO EARN"}),e.jsxs("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",children:[a.length," / ",ah," selected"]})]}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",children:"Drag or add the actions that create measurable customer value."}),e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",type:"button",className:"composer-side-switch",onClick:()=>$("earn"),children:["Browse earn mechanics ",e.jsx(Pb,{"data-loc":"client/src/components/ProgrammeComposer.tsx:102"})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",className:"composer-mini-list",children:A.map(H=>e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",type:"button",onClick:()=>W("earn",H.id),children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",children:H.label}),e.jsx(La,{"data-loc":"client/src/components/ProgrammeComposer.tsx:102",size:13})]},H.id))})]}),e.jsxs("main",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",className:"composer-canvas",onDragOver:H=>H.preventDefault(),onDrop:F,children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",className:"composer-canvas-top",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",children:"PROGRAMME CANVAS"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",children:"Drag a mechanic into the system."})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",className:"composer-brand-control",children:[e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",children:["Member page name",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",value:y,onChange:H=>x(H.target.value||"Your loyalty")})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",children:"THEME"}),El.map(H=>e.jsx("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103",type:"button",className:j.id===H.id&&!R?"active":"",style:{background:H.accent},onClick:()=>
558{C(H),w("")},"aria-label":`Use ${H.label} theme`},H.id)),e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:103","aria-label":"Custom accent color",type:"color",value:pe,onChange:H=>w(H.target.value)})]})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:104",className:"composer-structure-row",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:104",children:"CHOOSE THE PROGRAMME STRUCTURE"}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:104",children:Si.map(H=>e.jsx("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:104",type:"button",className:l===H.id?"active":"",onClick:()=>d(H.id),children:H.label},H.id))})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",className:"composer-drop-zone",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",className:"composer-track",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",className:"composer-track-side",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:"YOU EARN FOR"}),A.length?A.map(H=>e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",type:"button",onClick:()=>W("earn",H.id),children:[H.label,e.jsx(La,{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",size:12})]},H.id)):e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:"Drop earn actions here"})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",className:"composer-track-core",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:ge.label}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:ge.customerPromise}),e.jsx("i",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105"}),e.jsx("i",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105"}),e.jsx("i",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105"})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",className:"composer-track-side reward",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:"YOU CAN USE"}),_.length?_.map(H=>e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",type:"button",onClick:()=>W("reward",H.id),children:[H.label,e.jsx(La,{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",size:12})]},H.id)):e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:"Drop rewards here"})]})]}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:105",children:"Drop a card here, or select it from the mechanic library. The programme is currently a planning composition."})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",className:"composer-member-preview",style:Me,children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",className:"member-preview-top",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:y.toUpperCase()}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"Member space"})]}),e.jsx("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"Preview"})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",className:"member-preview-hero",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"WELCOME BACK"}),e.jsxs("h3",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:["Every useful action",e.jsx("br",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106"}),"moves your story forward."]}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:ge.customerPromise}),e.jsx("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",type:"button",children:"View your progress"})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",className:"member-preview-balance",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"YOUR VALUE"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"850"}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"available points"}),e.jsx("i",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106"})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",className:"member-preview-grid",children:[e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"YOUR NEXT MOVE"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:A[0]?.label??"Choose an earning action"}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:A[0]?"A clear next action makes progress visible.":"Add a mechanism from the composer."})]}),e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"REWARD A
558VAILABLE"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:_[0]?.label??"Choose a reward"}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:_[0]?"Member value changes with your choices.":"Add value from the reward library."})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",className:"member-preview-flow",children:[e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"WAYS YOU CAN EARN"}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:A.length?A.map((H,Se)=>e.jsxs("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",style:{animationDelay:`${Se*55}ms`},children:["+ ",H.label]},H.id)):e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"Add an earn mechanic to make member progress visible."})})]}),e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"WAYS YOU CAN USE VALUE"}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:_.length?_.map((H,Se)=>e.jsxs("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",style:{animationDelay:`${Se*55+90}ms`},children:["â³ ",H.label]},H.id)):e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:106",children:"Add a reward to make member value visible."})})]})]})]},dt)]}),e.jsxs("aside",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",className:"composer-library composer-reward",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",className:"composer-library-head",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",children:"WAYS TO REWARD"}),e.jsxs("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",children:[o.length," / ",ah," selected"]})]}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",children:"Balance perceived value, cost, delivery, and relevance before launch."}),e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",type:"button",className:"composer-side-switch",onClick:()=>$("reward"),children:["Browse reward mechanics ",e.jsx(Pb,{"data-loc":"client/src/components/ProgrammeComposer.tsx:108"})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",className:"composer-mini-list",children:_.map(H=>e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",type:"button",onClick:()=>W("reward",H.id),children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",children:H.label}),e.jsx(La,{"data-loc":"client/src/components/ProgrammeComposer.tsx:108",size:13})]},H.id))})]})]}),e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-model","aria-labelledby":"programme-cost-model-title",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-head",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"LIVE COST + CONTRIBUTION MODEL"}),e.jsx("h3",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",id:"programme-cost-model-title",children:"Every mechanic now has a funding pressure."})]}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"This is a transparent planning model. It applies editable internal cost allowances to your selected mechanics, then compares their total to the incremental gross contribution you choose to test."})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-inputs",children:[e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:["Active members in the test",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",type:"number",min:"0",value:D.activeMembers,onChange:H=>O("activeMembers",H.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:["Monthly incremental gross contribution",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",type:"number",min:"0",value:D.monthlyIncrementalContribution,onChange:H=>O("monthlyIncrementalContribution",H.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:["Monthly redemption planning rate %",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",type:"number",min:"0",max:"100",value:D.redemptionRate,onChange:H=>O("redemptionRate",H.target.value)})]}),e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:["Monthly platform
558+ operations cost",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",type:"number",min:"0",value:D.monthlyPlatformAndOps,onChange:H=>O("monthlyPlatformAndOps",H.target.value)})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-summary",children:[e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"SELECTED EARN DELIVERY"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:ma.format(de.earnDeliveryCost)}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"Monthly planning allowance"})]}),e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"SELECTED REWARD FUNDING"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:ma.format(de.rewardFundingCost)}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"Monthly planning allowance"})]}),e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"PLATFORM + OPERATIONS"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:ma.format(de.platformAndOpsCost)}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"Structure-adjusted planning cost"})]}),e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:de.contributionGap>=0?"positive":"caution",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"MODELED COVERAGE POSITION"}),e.jsxs("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[de.contributionGap>=0?"+":"",ma.format(de.contributionGap)]}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:de.contributionGap>=0?"Contribution context exceeds selected cost context":"Contribution context does not yet cover selected cost context"})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-decision",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx(Ls,{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",size:19}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"THE COVERAGE TEST"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:de.coverageRatio?`${de.coverageRatio.toFixed(2)}à contribution-to-cost coverage`:"Add contribution and cost assumptions"}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"Formula: monthly incremental gross contribution ÷ monthly programme cost. The result is only as reliable as the inputs, control design, and cost validation behind it."})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"COST / ACTIVE MEMBER"}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:ma.format(de.costPerActiveMember)})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-lines",children:[e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-line-head",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"SELECTED EARN MECHANICS"}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"Each has an editable-model delivery allowance and evidence requirement."})]}),de.monthlyEarnLines.length?de.monthlyEarnLines.map(H=>e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:H.label}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:H.assumption}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:H.evidence})]}),e.jsxs("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[ma.format(H.monthlyPlanningCost),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"/ mo"})]})]},H.id)):e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-empty",children:"Select an earn mechanic to see its planning-cost line."})]}),e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-line-head",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"SELECTED REWARD MECHANICS"}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"Redemption, unit-cost, fulfilment, and breakage policy still require validation."})]}),de.monthlyRewardLines.length?de.monthlyRewardLines.map(H=>e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:H.label}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:H.assumption}),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:H.evidence})]}),e.jsxs("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:[ma.format(H.monthlyPlanningCost),e.jsx("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"/ mo"})]})]},H.id)):e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-empty",children:"Select a reward mechanic to see its planning-cost line."})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",className:"composer-cost-basis",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"BASIS + LIMITS"}),e.jsxs("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:["Values are ",e.jsx("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:110",children:"user-editable planning assumptions"}),", not market benchmarks, forecasts, or promises. âMonthly incremental gross contributionâ means contribution expected before programme costs; it should be supported by a conservative test, a control group where practical, actual reward unit cost, delivery cost, and operating evidence before any decision to scale."]})]})]}),e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",className:"composer-value-strategy",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:"HIGH PERCEIVED VALUE / NOT AUTOMATICALLY HIGH CASH COST"}),e.jsx("h3",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:"Use access, scarcity, and recognition carefully."}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:"These tactics can feel valuable because they are useful, rare, or personal. They are never âfreeâ: check cash cost, capacity, fulfillment, and permission before you offer them."})]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:X5.map(H=>e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",type:"button",className:o.includes(H.id)?"selected":"",onClick:()=>W("reward",H.id),children:[e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:H.label}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:H.value}),e.jsxs("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:[e.jsx("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:"Cash:"})," ",H.cash," · ",e.jsx("b",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:"Fulfillment:"})," ",H.fulfillment]}
558),e.jsx("em",{"data-loc":"client/src/components/ProgrammeComposer.tsx:111",children:H.permission})]},H.id))})]}),e.jsxs("section",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-scenarios","aria-labelledby":"composer-scenarios-title",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-scenarios-head",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"SCENARIO WORKSPACE"}),e.jsx("h3",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",id:"composer-scenarios-title",children:"Save the model. Compare the trade-offs."}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Scenarios are saved privately in this browser. Load any saved composition back into the canvas, then choose up to two to compare side by side."})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-save-form",children:[e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:["Scenario name",e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",placeholder:"e.g. Lower-cost baseline",value:U,onChange:H=>M(H.target.value)})]}),e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",type:"button",onClick:oe,children:[e.jsx(Bv,{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",size:15})," Save current model"]})]})]}),K.length?e.jsxs(e.Fragment,{children:[e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-scenario-list",children:K.map(H=>e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:I.includes(H.id)?"selected":"",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:new Date(H.createdAt).toLocaleDateString()}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:H.name}),e.jsxs("small",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[H.earnIds.length," earn · ",H.rewardIds.length," rewards · ",Si.find(Se=>Se.id===H.structureId)?.label??H.structureId]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",type:"button",onClick:()=>ce(H),children:"Load"}),e.jsx("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",type:"button",onClick:()=>Z(Se=>Eb(Se,H.id)),children:I.includes(H.id)?"Remove compare":"Compare"}),e.jsx("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",type:"button","aria-label":`Delete ${H.name}`,onClick:()=>we(H.id),children:e.jsx(La,{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",size:14})})]})]},H.id))}),P.length?e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-compare",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-compare-title",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"SIDE-BY-SIDE COMPARISON"}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:P.length===1?"Choose one more saved scenario to compare it against this version.":"Each result is recalculated from its saved mechanics and assumptions."})]}),e.jsx(gD,{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",scenarios:P}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-compare-grid",children:P.map(H=>e.jsxs("article",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsxs("header",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:H.programmeName}),e.jsx("strong",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:H.name})]}),e.jsxs("dl",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("dt",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Structure"}),e.jsx("dd",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:Si.find(Se=>Se.id===H.structureId)?.label??H.structureId})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("dt",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Earn / reward mechanics"}),e.jsxs("dd",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[H.earnItems.length," / ",H.rewardItems.length]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("dt",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Monthly programme cost"}),e.jsx("dd",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:ma.format(H.cost.totalMonthlyCost)})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("dt",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Incremental contribution"}),e.jsx("dd",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:ma.format(H.cost.incrementalContribution)})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("dt",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Coverage ratio"}),e.jsxs("dd",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[H.cost.coverageRatio.toFixed(2),"Ã"]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:[e.jsx("dt",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Coverage position"}),e.jsxs("dd",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:H.cost.contributionGap>=0?"good":"needs-work",children:[H.cost.contributionGap>=0?"+":"",ma.format(H.cost.contributionGap)]})]})]})]},H.id))})]}):null]}):e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",className:"composer-scenarios-empty",children:[e.jsx(Bv,{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",size:18}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:112",children:"Save the current composition to begin a private scenario library and compare alternatives."})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",className:"composer-browser",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",className:"composer-browser-head",children:[e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",className:"composer-browser-tabs",children:[e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",type:"button",className:g==="earn"?"active":"",onClick:()=>$("earn"),children:["Earn library ",e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",children:ro.length})]}),e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",type:"button",className:g==="reward"?"active":"",onClick:()=>$("reward"),children:["Reward library ",e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",children:oo.length})]})]}),e.jsxs("label",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",children:[e.jsx(Qp,{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",size:15}),e.jsx("input",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",placeholder:`Search ${g} mechanics`,value:m,onChange:H=>{h(H.target.value),k(24)}})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",className:"composer-browser-caption",children:["Showing ",Math.min(E,ee.length)," of ",ee.length.toLocaleStr
558ing()," ",g," planning variants. Search combines mechanic, audience, and timing configuration."]}),e.jsx("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",className:"composer-catalogue-grid",children:ee.slice(0,E).map(H=>e.jsx(hD,{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",item:H,selected:(g==="earn"?a:o).includes(H.id),onToggle:()=>W(g,H.id),onDragStart:Se=>Se.dataTransfer.setData("text/plain",`${g}:${H.id}`)},H.id))}),E<ee.length&&e.jsxs("button",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",type:"button",className:"composer-load-more",onClick:()=>k(H=>H+24),children:["Load 24 more variants ",e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:113",children:"â"})]})]}),e.jsxs("div",{"data-loc":"client/src/components/ProgrammeComposer.tsx:114",className:"composer-disclaimer",children:[e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:114",children:"PLANNING, NOT A PROMISE"}),e.jsx("p",{"data-loc":"client/src/components/ProgrammeComposer.tsx:114",children:"The composer helps teams visualize member mechanics and public experience. Reward cost, eligibility, financial contribution, legal requirements, data flows, and operational readiness must still be modeled and approved before launch."})]})]})})}function Pb(){return e.jsx("span",{"data-loc":"client/src/components/ProgrammeComposer.tsx:118","aria-hidden":"true",children:"â"})}function xD(){return e.jsx("section",{"data-loc":"client/src/components/IndustryAccountability.tsx:7",className:"industry-accountability","aria-labelledby":"industry-accountability-title",children:e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:8",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:9",className:"accountability-head",children:[e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:10",children:[e.jsx(re,{"data-loc":"client/src/components/IndustryAccountability.tsx:10",children:"Industry accountability"}),e.jsxs("h2",{"data-loc":"client/src/components/IndustryAccountability.tsx:10",id:"industry-accountability-title",children:["The industryâs dark secret:",e.jsx("br",{"data-loc":"client/src/components/IndustryAccountability.tsx:10"}),e.jsx("em",{"data-loc":"client/src/components/IndustryAccountability.tsx:10",children:"too many programmes are sold before anyone asks whether they can pay for themselves."})]})]}),e.jsx("p",{"data-loc":"client/src/components/IndustryAccountability.tsx:11",children:"A loyalty feature list cannot establish whether a business has enough customer volume, contribution headroom, operating capacity, or reward discipline to fund a programme responsibly. Alma begins with that workânot after the contract is signed."})]}),e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:13",className:"accountability-contrast",children:[e.jsxs("article",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",className:"accountability-old",children:[e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",children:"FEATURE-FIRST SELLING"}),e.jsxs("h3",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",children:["Start with software.",e.jsx("br",{"data-loc":"client/src/components/IndustryAccountability.tsx:14"}),"Hope the economics follow."]}),e.jsxs("ul",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",children:[e.jsxs("li",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",children:[e.jsx(La,{"data-loc":"client/src/components/IndustryAccountability.tsx:14",size:15})," Rewards liability is treated as an afterthought"]}),e.jsxs("li",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",children:[e.jsx(La,{"data-loc":"client/src/components/IndustryAccountability.tsx:14",size:15})," Labor, service, and delivery work stay invisible"]}),e.jsxs("li",{"data-loc":"client/src/components/IndustryAccountability.tsx:14",children:[e.jsx(La,{"data-loc":"client/src/components/IndustryAccountability.tsx:14",size:15})," A strategic expense is described as an ROI case"]})]})]}),e.jsxs("article",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",className:"accountability-alma",children:[e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"ALMA PRE-SCOPE STANDARD"}),e.jsxs("h3",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:["Start with the economics.",e.jsx("br",{"data-loc":"client/src/components/IndustryAccountability.tsx:15"}),e.jsx("em",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"Earn the right to model."})]}),e.jsxs("ul",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:[e.jsxs("li",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:[e.jsx(Ea,{"data-loc":"client/src/components/IndustryAccountability.tsx:15",size:15})," Define the incremental contribution path"]}),e.jsxs("li",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:[e.jsx(Ea,{"data-loc":"client/src/components/IndustryAccountability.tsx:15",size:15})," Price reward, labor, platform, and operating cost"]}),e.jsxs("li",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:[e.jsx(Ea,{"data-loc":"client/src/components/IndustryAccountability.tsx:15",size:15})," Record evidence before an outbound recommendation"]})]}),e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",className:"accountability-dispositions",children:[e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"OUTBOUND-READY"}),e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"MORE EVIDENCE"}),e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"REDESIGN FIRST"}),e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"STRATEGIC-ONLY"}),e.jsx("span",{"data-loc":"client/src/components/IndustryAccountability.tsx:15",children:"DO NOT PURSUE AS ROI"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:17",className:"accountability-foot",children:[e.jsxs("p",{"data-loc":"client/src/components/IndustryAccountability.tsx:17",children:["We do not publish a universal failure rate or promise that a category alone determines the outcome. The point is simpler: ",e.jsx("b",{"data-loc":"client/src/components/IndustryAccountability.tsx:17",children:"the customerâs actual economics must be visible before loyalty is offered as a financial solution."})]}),e.jsxs("div",{"data-loc":"client/src/components/IndustryAccountability.tsx:17",children:[e.jsxs(V,{"data-loc":"client/src/components/IndustryAccountability.tsx:17",href:"/buyer-intelligence",children:["See the pre-scope method ",e.jsx(Y,{"data-loc":"client/src/components/IndustryAccountability.tsx:17",size:15})]}),e.jsxs("a",{"data-loc":"client/src/components/IndustryAccountability.tsx:17",href:"#customer-journey",children:["Model the customer path ",e.jsx(Y,{"data-loc":"client/src/components/IndustryAccountability.tsx:17",size:15})]})]})]})]})})}function yD(){return e.jsx(De,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",children:e.jsxs("main",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",children:[e.jsx("section",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",className:"workbench-page-hero",children:e.jsxs("div",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",children:"DEEPER TOOLS / WHEN YOU ARE READY"}),e.jsxs("h1",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",children:["Build the fit case.",e.jsx("br",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9"}),e.jsx("em",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",children:"The
558n build the programme."})]}),e.jsx("p",{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",children:"This is where the detailed journey simulator, technical ideas, programme composer, cost model, and evidence guidance live. Start here after you understand the simple seven-step path."}),e.jsxs(V,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",href:"/#process",className:"text-link text-link-strong",children:["Back to the 7-step process ",e.jsx(Y,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9",size:15})]})]})}),e.jsx(aD,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9"}),e.jsx(fD,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9"}),e.jsx(xD,{"data-loc":"client/src/pages/BrandFitWorkbench.tsx:9"})]})})}const Pl=[{id:"roi",number:"01",label:"Customer ROI modeling",title:"Qualify a specific business case.",copy:"Use customer-provided revenue, AOV, purchase frequency, member activity, and channel context to model a disciplined loyalty case before funding it.",output:"Modeled contribution context, programme cost context, and an explicit decision boundary.",confidence:"Customer-provided economics are the strongest input for a direct case."},{id:"benchmark",number:"02",label:"Opportunity scoring",title:"Prioritize the market with ranges, not false certainty.",copy:"Use directional segment ranges, channel context, and consistent assumptions to rank where a loyalty conversation may be worth more investigation.",output:"ICP prioritization, opportunity ranges, and evidence requirements for the next review.",confidence:"Directional estimates help sort the market; they are not customer facts."},{id:"monitoring",number:"03",label:"Market monitoring",title:"Keep the programme connected to the market.",copy:"Review observed programme structures, earning patterns, reward choices, campaigns, and changes over time to decide what deserves attention next.",output:"Trend context, design-pattern review, and a practical list of questions to test.",confidence:"Observed market patterns inform review; they do not prove causality or prescribe a tactic."}],vD=[{number:"01",title:"Raw data",copy:"Keep the source as supplied."},{number:"02",title:"Canonical mapping",copy:"Translate fields into a common business language."},{number:"03",title:"Normalization",copy:"Align time, currency, duplicates, and definitions."},{number:"04",title:"Segmentation",copy:"Separate industry, vertical, price tier, and channel."},{number:"05",title:"Derived metrics",copy:"Calculate comparable AOV, frequency, and customer ranges."}],bD=[["Ways to earn","Purchase actions, referrals, reviews, community actions, and channel-specific evidence."],["Ways to reward","Points, access, recognition, useful benefits, exclusives, and redemption conditions."],["Programme structure","Flat structures, tiers, VIP models, paid membership, and rule changes."],["Campaign activity","Multipliers, seasonal activity, limited-time initiatives, and activation sequences."],["Change over time","What was added, simplified, removed, or emphasizedâand why it may merit review."]],jD=[{label:"Direct input",title:"Customer-provided economics",copy:"Use when reviewing a specific business case.",tone:"high"},{label:"Directional context",title:"Segment ranges and assumptions",copy:"Use to prioritize and decide what needs verification.",tone:"directional"},{label:"Observed context",title:"Programme structures and market behavior",copy:"Use to generate questions and design choices worth reviewing.",tone:"observed"}],wD=[{number:"01",title:"Qualify the case",copy:"Bring customer-provided economics into a clear, explainable loyalty case before team time and funding are committed.",outcomes:["Five-year scenario context","Visible cost and contribution assumptions","A clear review or stop decision"]},{number:"02",title:"Prioritize the market",copy:"Use consistent, directional ranges to decide which audiences, sectors, and accounts deserve a more rigorous opportunity review.",outcomes:["Evidence-led account prioritization","Audience and channel fit questions","Confidence requirements before outreach"]},{number:"03",title:"Keep improving",copy:"Use monitored programme patterns to keep the conversation on what may be changing, what to review, and what deserves a controlled test next.",outcomes:["Programme health questions","Market-pattern review","A human-owned test backlog"]}];function CD(){const[a,n]=b.useState("roi"),o=Pl.find(i=>i.id===a)??Pl[0];return e.jsx(De,{"data-loc":"client/src/pages/AlmaAiOs.tsx:18",children:e.jsxs("main",{"data-loc":"client/src/pages/AlmaAiOs.tsx:18",className:"loyalty-intelligence-page",children:[e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:19",className:"intelligence-hero",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:19",className:"site-container intelligence-hero-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",children:"ALMA / LOYALTY INTELLIGENCE"}),e.jsxs("h1",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",children:["Know the case.",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",children:"See the market."}),e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20"}),"Keep learning."]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",className:"intelligence-hero-copy",children:"Loyalty Intelligence brings three distinct jobs into one accountable system: model whether a specific case can work, prioritize where deeper investigation is worthwhile, and monitor programme patterns that may deserve a better question or a controlled test."}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",className:"intelligence-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",href:"/roi-calculator",className:"button button-orange",children:["Build the financial case ",e.jsx(Y,{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",href:"/program-health",className:"text-link text-link-strong",children:["Run a programme health check ",e.jsx(Y,{"data-loc":"client/src/pages/AlmaAiOs.tsx:20",size:15})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",className:"intelligence-engine-board",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",className:"engine-board-top",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:"ALMA / THREE-ENGINE MODEL"}),e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:"DECISION SUPPORT"})]}),e.jsx("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",className:"engine-tablist",role:"tablist","aria-label":"Loyalty Intelligence engines",children:Pl.map(i=>e.jsxs("button",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",type:"button",className:"engine-tab",role:"tab","aria-selected":a===i.id,onClick:()=>n(i.id),children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:i.number}),e.jsx("strong",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:i.label})]},i.id))}),e.jsxs("article",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",className:"engine-readout",role:"tabpanel",children:[e.jsxs("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:[o.number," / ",o.label]}),e.jsx("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:o.title}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:o.copy}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",className:"engine-readout-footer",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:[e.jsx("small",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:"Output"}),e.jsx("strong",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:o.output})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:[e.jsx("small",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:"Confidence rule"}),e.jsx("strong",{"data-loc":"client/src/pages/AlmaAiOs.tsx:21",children:o.confidence})]})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",className:"intelligence-section",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",className:"intelligence-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:"ONE SYSTEM / THREE SEPARATE JOBS"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:["Keep the evidence",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:"in the right lane."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:"The white paper makes a critical distinction: a customer-specific financial model, internal opportunity prioritization, and market monitoring use related inputs, but they are not the same product or the same claim."})]}),e.jsx("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",className:"engine-detail-grid",children:Pl.map(i=>e.jsxs("article",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",className:"engine-detail-card",children:[e.jsxs("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:[i.number," / ",i.label]}),e.jsx("h3",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:i.title}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:i.copy}),e.jsx("footer",{"data-loc":"client/src/pages/AlmaAiOs.tsx:24",children:i.confidence})]},i.id))})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",className:"intelligence-section tint",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",className:"intelligence-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:"COMPARABLE BEFORE CONCLUSIVE"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:["Make mixed data",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:"usableânot magical."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:"Customer platforms, payment systems, commerce tools, POS, public programme pages, and market datasets do not arrive in one language. Almaâs model begins by separating collection from interpretation."})]}),e.jsx("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",className:"pipeline",children:vD.map(i=>e.jsxs("article",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",className:"pipeline-step",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:i.number}),e.jsx("h3",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:i.title}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:26",children:i.copy})]},i.number))})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",className:"intelligence-section",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",className:"intelligence-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:"THE ACCURACY LINE"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:["Label what is known.",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:"Label what is directional."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:"The public system should never blend customer facts, modeled ranges, and observed market patterns into one false claim. Every decision layer needs an explicit confidence context."})]}),e.jsx("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",className:"confidence-grid",children:jD.map(i=>e.jsxs("article",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",className:`confidence-card ${i.tone}`,children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:i.label}),e.jsx("h3",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:i.title}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:28",children:i.copy})]},i.label))})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",className:"intelligence-monitor",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:"THE RECURRING INTELLIGENCE LAYER"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:["Monitor the programme",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:"after the launch."})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:"Static ROI is useful when a team needs to decide whether to proceed. Ongoing market and programme monitoring is the recurring layer: it helps teams see structures changing, patterns gaining traction, and questions worth bringing back to the operating table."}),e.jsx("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",className:"monitor-grid",children:bD.map(([i,l],d)=>e.jsxs("article",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",className:"monitor-card",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:String(d+1).padStart(2,"0")}),e.jsx("h3",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:i}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:30",children:l})]},i))})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",className:"intelligence-use",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",className:"intelligence-section-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:"FROM SIGNAL TO DECISION"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:["Use the system to",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:"ask better questions."})]})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:"Loyalty Intelligence is not presented as a black-box forecast or an automatic campaign engine. It is a structured way for the commercial, loyalty, and operating team to choose the next accountable review."})]}),e.jsx("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",className:"use-grid",children:wD.map(i=>e.jsxs("article",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",className:"use-card",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:i.number}),e.jsx("h3",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:i.title}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:i.copy}),e.jsx("ul",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:i.outcomes.map(l
558=>e.jsx("li",{"data-loc":"client/src/pages/AlmaAiOs.tsx:32",children:l},l))})]},i.number))})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",className:"intelligence-governance",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",className:"site-container governance-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"HUMAN-GOVERNED BY DESIGN"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:["Useful intelligence still needs ",e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"an accountable owner."})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"The white paper describes a practical decision-support model. It does not claim perfect attribution, a universal benchmark, or a prediction that replaces judgment. Inputs need source controls; conclusions need confidence labels; actions need an owner."})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",className:"governance-list",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx(Ba,{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",size:18}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Source and consent context"}),e.jsx("small",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Use permitted sources and keep the difference between direct, directional, and observed inputs visible."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx(Rh,{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",size:18}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Comparable definitions"}),e.jsx("small",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Normalize time windows, currency, duplicates, segments, and channels before drawing a comparison."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx(MO,{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",size:18}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Assumption and cost visibility"}),e.jsx("small",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Show the program rules, reward funding, services, and people costs behind a financial view."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx(qj,{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",size:18}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:[e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Human review and controlled testing"}),e.jsx("small",{"data-loc":"client/src/pages/AlmaAiOs.tsx:34",children:"Use the output to decide what to inspect, approve, test, or stopânot to automate an unsupported promise."})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",className:"intelligence-final",children:e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",className:"site-container final-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:[e.jsx(re,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"PUT INTELLIGENCE IN CONTEXT"}),e.jsxs("h2",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:["Start with the",e.jsx("br",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36"}),e.jsx("em",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"decision you own."})]}),e.jsx("p",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",className:"intelligence-hero-copy",children:"Use the appropriate Alma path for the question in front of you. The system is strongest when financial fit, audience, channel evidence, programme design, and operating review stay connected."})]}),e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",className:"intelligence-link-stack",children:[e.jsxs(V,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",href:"/products/insights-measurement",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"PRODUCT"}),e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"Explore insights and measurement"})]}),e.jsx(Y,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",href:"/solutions/benchmarking",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"SOLUTION"}),e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"Review benchmarking and opportunity context"})]}),e.jsx(Y,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",href:"/audiences",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"AUDIENCES"}),e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"Choose the relevant brand or manufacturer path"})]}),e.jsx(Y,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",href:"/roi-calculator",children:[e.jsxs("div",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:[e.jsx("span",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"ROI TOOLS"}),e.jsx("b",{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",children:"Build a first-pass financial case"})]}),e.jsx(Y,{"data-loc":"client/src/pages/AlmaAiOs.tsx:36",size:16})]})]})]})})]})})}const gp=[{id:"structure",number:"01",title:"Program structure",question:"Can a member understand the value exchange in one visit?",checks:["Join and enrollment friction","Ways to earn across each eligible channel","Tier logic, progress, and access","Reward rules, expiry, and member clarity"],evidence:"Public program pages, terms, join funnel, and observed member path."},{id:"engagement",number:"02",title:"Member engagement",question:"Where do members stop before the next valuable action?",checks:["First qualifying action after enrollment","Active-member pattern by tenure","Return, referral, review, and feedback prompts","Audience relevance of messages and rewards"],evidence:"CRM, app, email, POS, ecommerce, and campaign interaction data where available."},{id:"economics",number:"03",title:"Reward economics",question:"Does the member value exchange have a visible contribution case?",checks:["Incremental revenue assumptions","Reward funding and redemption liability","Margin, delivery, and implementation cost","AOV, frequency, retention, and participation evidence"],evidence:"The editable Alma ROI model, current program costs, and finance-approved assumptions."},{id:"market",number:"04",title:"Market context",question:"What can public competitor programs teach without speculation?",checks:["Published earn mechanics and rewards","Tier benefits and enrollment story","Partner, referral, and n
558on-purchase activity","Published terms, app experience, and visible changes"],evidence:"Public pages, published terms, app listings, and brand communicationsânot private member data."},{id:"data",number:"05",title:"Data & channels",question:"Can the program recognize the member and the behavior it needs to influence?",checks:["Identity and channel handoffs","Receipt, partner, and third-party purchase evidence","CRM, ecommerce, POS, and member-data handoffs","Measurement ownership and decision cadence"],evidence:"Current integration map, data ownership, and verified event coverage."}],SD=[{title:"Clarify the evidence",copy:"Separate what the team knows, estimates, and still needs to verify."},{title:"Select the next decision",copy:"Choose one member, mechanic, cost, or channel question worth answering first."},{title:"Model the trade-off",copy:"Compare the prospective behavior gain with reward, delivery, and operating cost."},{title:"Test before scale",copy:"Define the audience, control, measure, review date, and rule for expanding or stopping."}],AD=[["Program health","/resources/program-health"],["Public market context","/resources/public-market-context"],["Decisioning governance","/resources/decisioning-governance"],["Member experience","/resources/member-experience"],["Operating measurement","/resources/operating-measurement"],["Program economics","/resources/program-economics"],["Omnichannel value","/resources/omnichannel-value"],["Tier strategy","/resources/tier-strategy"],["Referral programs","/resources/referral-programs"],["Churn prevention","/resources/churn-prevention"]];function RD(){const[a,n]=b.useState("structure"),o=b.useMemo(()=>gp.find(i=>i.id===a)??gp[0],[a]);return e.jsx(De,{"data-loc":"client/src/pages/ProgramHealth.tsx:42",children:e.jsxs("main",{"data-loc":"client/src/pages/ProgramHealth.tsx:42",className:"program-health-page",children:[e.jsx(Ve,{"data-loc":"client/src/pages/ProgramHealth.tsx:43",eyebrow:"FOR EXISTING LOYALTY PROGRAMS",title:e.jsxs(e.Fragment,{children:["Start with the program",e.jsx("br",{"data-loc":"client/src/pages/ProgramHealth.tsx:43"}),e.jsx("em",{"data-loc":"client/src/pages/ProgramHealth.tsx:43",children:"you already have."})]}),copy:"A practical health check for brands and program teams who need a clearer next decisionânot a generic vendor pitch or a promise that every program should be rebuilt.",action:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:43",className:"health-hero-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/ProgramHealth.tsx:43",href:"/opportunity-estimator",className:"button button-dark",children:["Check Your Loyalty Opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/ProgramHealth.tsx:43",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/ProgramHealth.tsx:43",href:"/roi-calculator",className:"text-link text-link-strong",children:["Build a First-Pass ROI Case ",e.jsx(Y,{"data-loc":"client/src/pages/ProgramHealth.tsx:43",size:15})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",className:"health-intro",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",className:"site-container health-intro-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:[e.jsx(re,{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:"PROGRAM HEALTH CHECK"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:["Find the decision",e.jsx("br",{"data-loc":"client/src/pages/ProgramHealth.tsx:45"}),e.jsx("em",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:"behind the symptom."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:[e.jsx("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:"Low engagement, expensive rewards, weak enrollment, and unclear return behavior are not diagnoses. They are signals. Alma helps teams trace those signals back to the program rule, member experience, channel handoff, or assumption that deserves review."}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",className:"health-no-hype",children:[e.jsx(fd,{"data-loc":"client/src/pages/ProgramHealth.tsx:45",size:17}),e.jsx("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:45",children:"This framework is a review guide. It does not calculate a score, invent a benchmark, or replace your teamâs data and judgment."})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",className:"health-pillar-section",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",className:"health-section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:"FIVE REVIEW PILLARS"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:["Inspect the full value exchangeâ",e.jsx("em",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:"not one metric in isolation."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",className:"health-pillar-layout",children:[e.jsx("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",className:"health-pillar-tabs",role:"tablist","aria-label":"Program health review pillars",children:gp.map(i=>e.jsxs("button",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",type:"button",role:"tab","aria-selected":i.id===a,className:i.id===a?"active":"",onClick:()=>n(i.id),children:[e.jsx("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:i.number}),e.jsx("strong",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:i.title}),e.jsx(Y,{"data-loc":"client/src/pages/ProgramHealth.tsx:47",size:15})]},i.id))}),e.jsxs("article",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",className:"health-pillar-panel",role:"tabpanel",children:[e.jsxs("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:[o.number," / REVIEW QUESTION"]}),e.jsx("h3",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:o.question}),e.jsx("ul",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:o.checks.map(i=>e.jsxs("li",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:[e.jsx(Ea,{"data-loc":"client/src/pages/ProgramHealth.tsx:47",size:16}),i]},i))}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:[e.jsx(qj,{"data-loc":"client/src/pages/ProgramHealth.tsx:47",size:17}),e.jsxs("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:[e.jsx("b",{"data-loc":"client/src/pages/ProgramHealth.tsx:47",children:"Start with evidence:"})," ",o.evidence]})]})]})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",className:"health-evidence",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",className:"site-container health-evidence-grid",children:[e.jsxs("article",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:[e.jsx(Fp,{"data-loc":"client/src/pages/ProgramHealth.tsx:49",size:24}),e.jsx("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"PUBLIC EXPERIENCE"}),e.jsx("h3",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"What customers can see"}),e.jsx("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"Join pages, published terms, rewards, earning explanations, tier stories, app listings, and visible campaign messages make up the member-facing value story."})]}),e.jsxs("article",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:[e.jsx(Rh,{"data-loc":"client/src/pages/ProgramHealth.tsx:49",size:24}),e.jsx("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"OPERATING EVIDENCE"}),e.jsx("h3",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"What your team can verify"}),e.jsx("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"Program cost, member activity, sales channels, contribution assumptions, fulfillment capacity, and implementation constraints make the business case testable."})]}),e.jsxs("article",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:[e.jsx(kO,{"data-loc":"client/src/pages/ProgramHealth.tsx:49",size:24}),e.jsx("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"PUBLIC CONTEXT"}),e.jsx("h3",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"What c
558ompetitors publish"}),e.jsx("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:49",children:"Named competitors or lookalikes can be reviewed through their public materials. The output is a comparison hypothesis for your team to validateânot a claim about private performance."})]})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",className:"health-decision-section",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",className:"health-section-heading",children:[e.jsx(re,{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:"FROM FINDING TO ACTION"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:["Use a decision path",e.jsx("br",{"data-loc":"client/src/pages/ProgramHealth.tsx:51"}),e.jsx("em",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:"that can survive review."})]})]}),e.jsx("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",className:"health-decision-grid",children:SD.map((i,l)=>e.jsxs("article",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:[e.jsxs("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:["0",l+1]}),e.jsx("h3",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:i.title}),e.jsx("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:51",children:i.copy})]},i.title))})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",className:"health-reading",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",className:"site-container",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",children:[e.jsx(re,{"data-loc":"client/src/pages/ProgramHealth.tsx:53",children:"OPERATOR READING ROOM"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",children:["Use the guide that matches",e.jsx("br",{"data-loc":"client/src/pages/ProgramHealth.tsx:53"}),e.jsx("em",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",children:"your next decision."})]})]}),e.jsx("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",className:"health-reading-links",children:AD.map(([i,l],d)=>e.jsxs(V,{"data-loc":"client/src/pages/ProgramHealth.tsx:53",href:l,children:[e.jsxs("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",children:["0",d+1]}),e.jsx("strong",{"data-loc":"client/src/pages/ProgramHealth.tsx:53",children:i}),e.jsx(Y,{"data-loc":"client/src/pages/ProgramHealth.tsx:53",size:16})]},l))})]})}),e.jsx("section",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",className:"health-report",children:e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",className:"site-container health-report-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",children:[e.jsx(re,{"data-loc":"client/src/pages/ProgramHealth.tsx:55",children:"VERIFIED ADVANCED REVIEW"}),e.jsxs("h2",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",children:["Bring the health check",e.jsx("br",{"data-loc":"client/src/pages/ProgramHealth.tsx:55"}),e.jsx("em",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",children:"into the model."})]}),e.jsx("p",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",children:"Use the ROI calculator to preserve the channel, cost, member, and five-year assumptions behind a review. You can request program-design, campaign what-if, measurement, and public-programme comparison scope; a one-time work-email verification comes before the request enters Alma review."}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",className:"health-report-guarantee",children:[e.jsx(Ba,{"data-loc":"client/src/pages/ProgramHealth.tsx:55",size:18}),e.jsx("span",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",children:"Alma reviews assumptions and evidence before issuing recommendations. No automatic competitor claims. No guaranteed outcome."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProgramHealth.tsx:55",className:"health-report-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/ProgramHealth.tsx:55",href:"/roi-calculator",className:"button button-orange",children:["Build a First-Pass ROI Case ",e.jsx(Y,{"data-loc":"client/src/pages/ProgramHealth.tsx:55",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/ProgramHealth.tsx:55",href:"/opportunity-estimator",className:"text-link text-link-strong",children:["Check Your Loyalty Opportunity ",e.jsx(Y,{"data-loc":"client/src/pages/ProgramHealth.tsx:55",size:15})]})]})]})})]})})}const ED=["customer_owner","customer_member","contractor"],ND=["customer_owner","customer_member"],PD=["programme_review","roi_validation","campaign_planning","member_experience","implementation_handoff"],Kh={programme_review:"Programme review",roi_validation:"ROI validation",campaign_planning:"Campaign planning",member_experience:"Member experience",implementation_handoff:"Implementation handoff"},Tw={programme_review:"/program-health",roi_validation:"/roi-calculator",campaign_planning:"/tools",member_experience:"/program-matcher",implementation_handoff:"/brand-fit/workbench"};function Ob(a){return ND.includes(a)}function kb({assigned:a}){const n=a?"Assignment is the next decision.":"Your delivery workspace is ready when you are.",o=a?"An Alma administrator assigns the organisation, customer-safe brief, and review path before delivery work appears here.":"Sign in to confirm your identity, then see only the delivery work assigned to youânot a broad internal account view.";return e.jsxs("main",{"data-loc":"client/src/pages/ContractorPortal.t
558sx:16",className:"portal-gate-v2 portal-gate-v2--contractor",children:[e.jsxs("header",{"data-loc":"client/src/pages/ContractorPortal.tsx:17",className:"portal-gate-v2__masthead",children:[e.jsxs(V,{"data-loc":"client/src/pages/ContractorPortal.tsx:17",href:"/",className:"portal-brand",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:17",children:"A"}),"ALMA ",e.jsx("b",{"data-loc":"client/src/pages/ContractorPortal.tsx:17",children:"PORTAL"})]}),e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:17",children:"SECURE CONTRACTOR WORKSPACE"})]}),e.jsxs("section",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"portal-gate-v2__hero",children:[e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"portal-gate-v2__copy",children:[e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"portal-eyebrow",children:"ALMA / SCOPED DELIVERY"}),e.jsx("h1",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:n}),e.jsxs("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:[o," Every deliverable stays connected to an approved brief, an organisation boundary, and an accountable review state."]}),e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"portal-gate-v2__actions",children:[a?e.jsxs(V,{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"button button-orange",href:"/",children:["Return to Alma Loyalty ",e.jsx(Y,{"data-loc":"client/src/pages/ContractorPortal.tsx:18",size:15})]}):e.jsxs("button",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"button button-orange",onClick:()=>Sn(),children:["Sign in securely ",e.jsx(Y,{"data-loc":"client/src/pages/ContractorPortal.tsx:18",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/ContractorPortal.tsx:18",href:"/program-health",className:"portal-gate-v2__text-link",children:["See the work standard ",e.jsx(Y,{"data-loc":"client/src/pages/ContractorPortal.tsx:18",size:15})]})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"portal-gate-v2__model",children:[e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",className:"portal-gate-v2__model-top",children:[e.jsx(PO,{"data-loc":"client/src/pages/ContractorPortal.tsx:18",size:19}),e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"DELIVERY MAP"})]}),e.jsxs("h2",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:["One brief.",e.jsx("br",{"data-loc":"client/src/pages/ContractorPortal.tsx:18"}),e.jsx("em",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"One accountable path."})]}),e.jsxs("ol",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:[e.jsxs("li",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:[e.jsx("b",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"01"}),e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"Confirm identity"}),e.jsx("small",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"Secure sign-in"})]}),e.jsxs("li",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:[e.jsx("b",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"02"}),e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"Assign the scope"}),e.jsx("small",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"Organisation and brief"})]}),e.jsxs("li",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:[e.jsx("b",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"03"}),e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"Advance with review"}),e.jsx("small",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"Visible delivery status"})]})]}),e.jsxs("footer",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"WORK BOUNDARY"}),e.jsx("strong",{"data-loc":"client/src/pages/ContractorPortal.tsx:18",children:"No CRM leads, credentials, payment data, or unrelated customer work is shown before assignment."})]})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/ContractorPortal.t
558sx:19",className:"portal-gate-v2__principles",children:[e.jsxs("article",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"01"}),e.jsx("h2",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"Brief before build"}),e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"Every assignment starts with a customer-safe delivery brief and a clear next action."})]}),e.jsxs("article",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"02"}),e.jsx("h2",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"Progress with review"}),e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"Work moves through scoped review states instead of invisible handoffs."})]}),e.jsxs("article",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"03"}),e.jsx("h2",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"Only what is yours"}),e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:19",children:"Organisation boundaries keep the contractor workspace focused and private."})]})]})]})}function OD(){const{user:a,loading:n,isAuthenticated:o}=cr(),i=Ke.portal.access.useQuery(void 0,{enabled:o}),l=Ke.portal.contractor.useQuery(void 0,{enabled:o&&!!i.data?.memberships.some(f=>f.role==="contractor")}),d=Ke.useUtils(),m=Ke.portal.updateContractorWorkStatus.useMutation({onSuccess:()=>d.portal.contractor.invalidate()});if(n||i.isLoading)return e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:29",className:"portal-state",children:[e.jsx(Pa,{"data-loc":"client/src/pages/ContractorPortal.tsx:29",className:"animate-spin"}),"Loading secure portalâ¦"]});if(!o)return e.jsx(kb,{"data-loc":"client/src/pages/ContractorPortal.tsx:30",assigned:!1});if(!i.data?.memberships.some(f=>f.role==="contractor"))return e.jsx(kb,{"data-loc":"client/src/pages/ContractorPortal.tsx:32",assigned:!0});const g=l.data?.work??[];return e.jsxs("main",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-page",children:[e.jsxs("header",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-topline",children:[e.jsxs(V,{"data-loc":"client/src/pages/ContractorPortal.tsx:34",href:"/",className:"portal-brand",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"A"}),"ALMA ",e.jsx("b",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"PORTAL"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"CONTRACTOR WORKSPACE"}),e.jsx("strong",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:a?.name||"Alma contractor"})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-hero",children:[e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-eyebrow",children:"Scoped delivery queue"}),e.jsxs("h1",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:["Do the work that is",e.jsx("br",{"data-loc":"client/src/pages/ContractorPortal.tsx:34"}),e.jsx("em",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"yours to deliver."})]}),e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"Each assignment is limited to its organisation and customer-safe delivery brief. Private CRM leads, exports, and unrelated account data stay out of this workspace."})]}),e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-stat",children:[e.jsx("strong",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:g.filter(f=>f.status!=="complete").length}),e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"open assigned items"})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/ContractorPortal.t
558sx:34",className:"portal-work",children:[e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-section-head",children:[e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-eyebrow",children:"Your work"}),e.jsxs("h2",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:["Clear brief.",e.jsx("br",{"data-loc":"client/src/pages/ContractorPortal.tsx:34"}),e.jsx("em",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"Clear next action."})]})]}),e.jsxs("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[g.length," total"]})]}),l.isLoading?e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-state compact",children:[e.jsx(Pa,{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"animate-spin"}),"Loading assignmentsâ¦"]}):g.length?e.jsx("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-work-grid",children:g.map(f=>{const y=f.status==="queued"?"in_progress":f.status==="in_progress"?"ready_for_review":f.status==="ready_for_review"?"complete":null,x=f.status==="queued"?"Start work":f.status==="in_progress"?"
558Send for review":f.status==="ready_for_review"?"Mark complete":"Complete";return e.jsxs("article",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-work-meta",children:[e.jsx("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:Kh[f.type]}),e.jsx("b",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:`portal-status ${f.status}`,children:f.status.replaceAll("_"," ")})]}),e.jsx("h3",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:f.title}),e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:f.contractorBrief}),e.jsxs("footer",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[e.jsxs("span",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[f.organisationName,f.dueAt?` · review by ${new Date(f.dueAt).toLocaleDateString()}`:""]}),e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-work-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/ContractorPortal.tsx:34",href:Tw[f.type],children:["Open tool ",e.jsx(Y,{"data-loc":"client/src/pages/ContractorPortal.tsx:34",size:15})]}),y&&e.jsx("button",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",type:"button",disabled:m.isPending,onClick:()=>m.mutate({id:f.id,status:y}),children:x})]})]})]},f.id)})}):e.jsxs("div",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-empty",children:[e.jsx(DO,{"data-loc":"client/src/pages/ContractorPortal.tsx:34"}),e.jsx("h3",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"No delivery work is assigned yet."}),e.jsx("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"When Alma assigns a scoped programme review, model validation, campaign, experience, or implementation task, it will appear here."})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",className:"portal-boundary",children:[e.jsx(nt,{"data-loc":"client/src/pages/ContractorPortal.tsx:34"}),e.jsxs("p",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:[e.jsx("strong",{"data-loc":"client/src/pages/ContractorPortal.tsx:34",children:"Access boundary:"})," this workspace uses organisation assignments. It does not display CRM leads, customer payment details, HubSpot credentials, or unrelated internal notes."]})]})]})}const kD=[{label:"Programme Health",copy:"Review the full value exchange before changing a rule.",href:"/program-health",icon:rr},{label:"ROI workspace",copy:"Model channels, costs, ramp, and contribution together.",href:"/roi-calculator",icon:Ls},{label:"Member journey",copy:"Design the next valuable member action across channels.",href:"/program-matcher",icon:wn}];function Mb({assigned:a}){const n=a?"Workspace activation is the next decision.":"Your loyalty workspace is ready when you are.",o=a?"Your Alma contact can confirm your organisation, agree the right operating scope, and activate secure access.":"Sign in to confirm your identity, then access only the workspace assigned to your organisation.";return e.jsxs("main",{"data-loc":"client/src/pages/CustomerPortal.tsx:18",className:"portal-gate-v2",children:[e.jsxs("header",{"data-loc":"client/src/pages/CustomerPortal.tsx:19",className:"portal-gate-v2__masthead",children:[e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:19",href:"/",className:"portal-brand",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:19",children:"A"}),"ALMA ",e.jsx("b",{"data-loc":"client/src/pages/CustomerPortal.tsx:19",children:"PORTAL"})]}),e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:19",children:"SECURE CUSTOMER WORKSPACE"})]}),e.jsxs("section",{"data-loc":"client/src/pages/CustomerPortal.tsx:20",className:"portal-gate-v2__hero",children:[e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:21",className:"portal-gate-v2__copy",children:[e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:21",className:"portal-eyebrow",children:"ALMA / CONTROLLED ACCESS"}
558),e.jsx("h1",{"data-loc":"client/src/pages/CustomerPortal.tsx:21",children:n}),e.jsxs("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:21",children:[o," This is a controlled operating environmentânot a generic dashboard or an automatic programme promise."]}),e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:21",className:"portal-gate-v2__actions",children:[a?e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:21",className:"button button-orange",href:"/contact",children:["Talk to Alma ",e.jsx(Y,{"data-loc":"client/src/pages/CustomerPortal.tsx:21",size:15})]}):e.jsxs("button",{"data-loc":"client/src/pages/CustomerPortal.tsx:21",className:"button button-orange",onClick:()=>Sn(),children:["Sign in securely ",e.jsx(Y,{"data-loc":"client/src/pages/CustomerPortal.tsx:21",size:15})]}),e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:21",href:"/program-health",className:"portal-gate-v2__text-link",children:["Explore Programme Health ",e.jsx(Y,{"data-loc":"client/src/pages/CustomerPortal.tsx:21",size:15})]})]})]}),e.jsxs("aside",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",className:"portal-gate-v2__model",children:[e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",className:"portal-gate-v2__model-top",children:[e.jsx(JO,{"data-loc":"client/src/pages/CustomerPortal.tsx:22",size:19}),e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"ACCESS MAP"})]}),e.jsxs("h2",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:["One organisation.",e.jsx("br",{"data-loc":"client/src/pages/CustomerPortal.tsx:22"}),e.jsx("em",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"One protected workspace."})]}),e.jsxs("ol",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:[e.jsxs("li",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:[e.jsx("b",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"01"}),e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"Confirm identity"}),e.jsx("small",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"Secure sign-in"})]}),e.jsxs("li",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:[e.jsx("b",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"02"}),e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"Set programme scope"}),e.jsx("small",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"Tools and access agreed"})]}),e.jsxs("li",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:[e.jsx("b",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"03"}),e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"Work with evidence"}),e.jsx("small",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"Decisions remain reviewable"})]})]}),e.jsxs("footer",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"DATA BOUNDARY"}),e.jsx("strong",{"data-loc":"client/src/pages/CustomerPortal.tsx:22",children:"No organisation information is shown before access is assigned."})]})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",className:"portal-gate-v2__principles",children:[e.jsxs("article",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"01"}),e.jsx("h2",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"Scope before screens"}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"Access follows the work your organisation has agreed with Alma."})]}),e.jsxs("article",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"02"}),e.jsx("h2",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"Evidence before action"}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"Every tool starts with visible assumptions, not a generic score."})]}),e.jsxs("article",{"data-loc":"client/src/pages/CustomerPortal.t
558sx:24",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"03"}),e.jsx("h2",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"Private by design"}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:24",children:"Your workspace is organisation-scoped and remains unavailable until activated."})]})]})]})}function MD(){const{loading:a,isAuthenticated:n}=cr(),o=Ke.portal.access.useQuery(void 0,{enabled:n}),i=!!o.data?.memberships.some(g=>Ob(g.role)),l=Ke.portal.customer.useQuery(void 0,{enabled:n&&i});if(a||o.isLoading)return e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:33",className:"portal-state",children:[e.jsx(Pa,{"data-loc":"client/src/pages/CustomerPortal.tsx:33",className:"animate-spin"}),"Loading your programme workspaceâ¦"]});if(!n)return e.jsx(Mb,{"data-loc":"client/src/pages/CustomerPortal.tsx:34",assigned:!1});const d=o.data?.memberships.filter(g=>Ob(g.role))??[];if(!d.length)return e.jsx(Mb,{"data-loc":"client/src/pages/CustomerPortal.tsx:36",assigned:!0});const m=l.data?.subscriptionActive??!1,h=m?l.data?.work??[]:[];return e.jsxs("main",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-page customer",children:[e.jsxs("header",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-topline",children:[e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",href:"/",className:"portal-brand",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"A"}),"ALMA ",e.jsx("b",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"PORTAL"})]}),e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"CUSTOMER WORKSPACE"}),e.jsx("strong",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:d[0]?.organisationName})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-hero",children:[e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:[e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-eyebrow",children:"Your loyalty operating system"}),e.jsxs("h1",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:["Make the next programme decision",e.jsx("br",{"data-loc":"client/src/pages/CustomerPortal.tsx:39"}),e.jsx("em",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"with the evidence visible."})]}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"Use your workspace to examine member behavior, program economics, campaign ideas, and operational priorities. Recommendations remain reviewableânot automatic promises."})]}),e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:`portal-subscription ${m?"connected":"pending"}`,children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:m?"SUBSCRIPTION CONNECTED":"SUBSCRIPTION ACTIVATION"}),e.jsx("strong",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:m?"Workspace available":"Talk to Alma to activate"}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:m?"Your organisation has a portal subscription identifier connected.":"Plans are set up by Alma after the right tools and programme scope are agreed."}),e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",href:m?"/program-health":"/contact",children:[m?"Open programme health":"Request activation",e.jsx(Y,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",size:15})]})]})]}),e.jsx("section",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-tool-grid",children:kD.map(g=>e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",href:g.href,children:[e.jsx(g.icon,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",size:20}),e.jsx("h2",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:g.label}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:g.copy}
558),e.jsxs("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:["Open tool ",e.jsx(Y,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",size:15})]})]},g.label))}),e.jsxs("section",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-work",children:[e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-section-head",children:[e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:[e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-eyebrow",children:"Programme work"}),e.jsxs("h2",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:["See what Alma is",e.jsx("br",{"data-loc":"client/src/pages/CustomerPortal.tsx:39"}),e.jsx("em",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"helping you move."})]})]}),e.jsxs("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:[h.length," active items"]})]}),l.isLoading?e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-state compact",children:[e.jsx(Pa,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"animate-spin"}),"Loading programme workâ¦"]}):h.length?e.jsx("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-work-grid",children:h.map(g=>e.jsxs("article",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:[e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-work-meta",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:Kh[g.type]}),e.jsx("b",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:`portal-status ${g.status}`,children:g.status.replaceAll("_"," ")})]}),e.jsx("h3",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:g.title}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:g.customerSummary}),e.jsxs("footer",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:[e.jsx("span",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:g.organisationName}),e.jsxs(V,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",href:Tw[g.type],children:["Open tool ",e.jsx(Y,{"data-loc":"client/src/pages/CustomerPortal.tsx:39",size:15})]})]})]},g.id))}):e.jsxs("div",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",className:"portal-empty",children:[e.jsx(wn,{"data-loc":"client/src/pages/CustomerPortal.tsx:39"}),e.jsx("h3",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"Start with one clear question."}),e.jsx("p",{"data-loc":"client/src/pages/CustomerPortal.tsx:39",children:"Use Programme Health or the ROI workspace to define the decision and request a verified advanced review when you need Almaâs help."})]})]})]})}function TD(){const{user:a,loading:n,isAuthenticated:o}=cr(),i=Ke.useUtils(),l=Ke.portal.admin.organisations.useQuery(void 0,{enabled:o&&a?.role==="admin"}),d=Ke.portal.admin.createOrganisation.useMutation({onSuccess:()=>i.portal.admin.organisations.invalidate()}),m=Ke.portal.admin.addMembership.useMutation(),h=Ke.portal.admin.createWorkItem.useMutation(),[g,f]=b.useState({name:"",slug:""}),[y,x]=b.useState({organisationId:0,userEmail:"",role:"customer_owner"}),[j,C]=b.useState({organisationId:0,assignedUserEmail:"",type:"programme_review",title:"",customerSummary:"",contractorBrief:"",dueAt:""});if(n)return e.jsxs("div",{"data-loc":"client/src/pages/PortalAdmin.tsx:20",className:"portal-state",children:[e.jsx(Pa,{"data-loc":"client/src/pages/PortalAdmin.tsx:20",className:"animate-spin"}),"Loading portal setupâ¦"]});if(!o)return e.jsxs("div",{"data-loc":"client/src/pages/PortalAdmin.tsx:21",className:"portal-state",children:[e.jsx(or,{"data-loc":"client/src/pages/PortalAdmin.tsx:21"}),e.jsx("h1",{"data-loc":"client/src/pages/PortalAdmin.tsx:21",children:"Portal setup"}),e.jsx("p",{"data-loc":"client/src/pages/PortalAdmin.tsx:21",children:"Sign in with the owner account to configure organisations and portal access."}),e.jsx("button",{"data-loc":"client/src/pages/PortalAdmin.tsx:21",className:"button button-orange",onClick:()=>Sn(),children:"Sign in securely"})]});if(a?.role!=="admin")return e.jsxs("div",{"data-loc":"client/src/pages/PortalAdmin.tsx:22",className:"portal-state",children:[e.jsx(Eh,{"data-loc":"client/src/pages/PortalAdmin.tsx:22"}),e.jsx("h1",{"data-loc":"client/src/pages/PortalAdmin.tsx:22",children:"Access restricted"}),e.jsx("p",{"data-loc":"client/src/pages/PortalAdmin.tsx:22",children:"Only approved Alma administrators can configure organisations, users, and assigned work."})]});const R=l.data??[];return e.jsx(Yh,{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:e.jsxs("section",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"portal-admin",children:[e.jsxs("header",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:[e.jsx("p",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"portal-eyebrow",children:"ALMA / PORTAL CONTROL"}),e.jsxs("h1",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Set the organisation boundary",e.jsx("br",{"data-loc":"client/src/pages/PortalAdmin.tsx:24"}),e.jsx("em",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"before the work begins."})]}),e.jsx("p",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"CRM Lite stays private. This workspace creates customer organisations, assigns customer or contractor access after sign-in, and issues scoped delivery work."})]}),e.jsxs("div",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"portal-admin-grid",children:[e.jsxs("form",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",onSubmit:w=>{w.preventDefault(),d.mutate(g,{onSuccess:()=>f({name:"",slug:""})})},children:[e.jsxs("span",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:[e.jsx(OO,{"data-loc":"client/src/pages/PortalAdmin.tsx:24",size:18}),"01 / Organisation"]}),e.jsx("h2",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"Create a secure customer boundary."}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Organisation name",e.jsx("input",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,value:g.name,onChange:w=>f({name:w.target.value,slug:g.slug||w.target.value.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")})})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Slug",e.jsx("input",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,pattern:"[a-z0-9]+(-[a-z0-9]+)*",value:g.slug,onChange:w=>f({...g,slug:w.target.value})})]}),e.jsx("button",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"button button-dark",disabled:d.isPending,children:d.isPending?"Creatingâ¦":"Create organisation"})]}),e.jsxs("form",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",onSubmit:w=>{w.preventDefault(),m.mutate(y,{onSuccess:()=>x({organisationId:0,userEmail:"",role:"customer_owner"})})},children:[e.jsxs("span",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:[e.jsx(gk,{"data-loc":"client/src/pages/PortalAdmin.tsx:24",size:18}),"02 / Access"]}),e.jsx("h2",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"Assign a user after sign-in."}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Organisation",e.jsxs("select",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,value:y.organisationId,onChange:w=>x({...y,organisationId:Number(w.target.value)}),children:[e.jsx("option",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:0,disabled:!0,children:"Select organisation"}),R.map(w=>e.jsx("option",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:w.id,children:w.name},w.id))]})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["User email",e.jsx("input",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,type:"email",value:y.userEmail,onChange:w=>x({...y,userEmail:w.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Portal role",e.jsx("select",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:y.role,onChange:w=>x({...y,role:w.target.value}),children:ED.map(w=>e.jsx("option",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:w,children:w.replaceAll("_"," ")},w))})]}),e.jsx("button",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"button button-dark",disabled:m.isPending||!y.organisationId,children:m.isPending?"Assigningâ¦":"Assign portal access"}),e.jsx("small",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"The user must sign in once before Alma can assign their membership."})]}),e.jsxs("form",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"portal-work-form",onSubmit:w=>{w.preventDefault(),h.mutate({...j,assignedUserEmail:j.assignedUserEmail||null,dueAt:j.dueAt?new Date(j.dueAt).getTime():null},{onSuccess:()=>C({organisationId:0,assignedUserEmail:"",type:"programme_review",title:"",customerSummary:"",contractorBrief:"",dueAt:""})})},children:[e.jsxs("span",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:[e.jsx(LO,{"data-loc":"client/src/pages/PortalAdmin.tsx:24",size:18}),"03 / Scoped work"]}),e.jsx("h2",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"Create the delivery brief."}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Organisation",e.jsxs("select",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,value:j.organisationId,onChange:w=>C({...j,organisationId:Number(w.target.value)}),children:[e.jsx("option",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:0,disabled:!0,children:"Select organisation"}),R.map(w=>e.jsx("option",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:w.id,children:w.name},w.id))]})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Work type",e.jsx("select",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:j.type,onCh
558ange:w=>C({...j,type:w.target.value}),children:PD.map(w=>e.jsx("option",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",value:w,children:Kh[w]},w))})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Contractor email (optional)",e.jsx("input",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",type:"email",value:j.assignedUserEmail,onChange:w=>C({...j,assignedUserEmail:w.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Title",e.jsx("input",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,value:j.title,onChange:w=>C({...j,title:w.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Customer-safe summary",e.jsx("textarea",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,value:j.customerSummary,onChange:w=>C({...j,customerSummary:w.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Contractor brief",e.jsx("textarea",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",required:!0,value:j.contractorBrief,onChange:w=>C({...j,contractorBrief:w.target.value})})]}),e.jsxs("label",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["Review date",e.jsx("input",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",type:"date",value:j.dueAt,onChange:w=>C({...j,dueAt:w.target.value})})]}),e.jsx("button",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"button button-orange",disabled:h.isPending||!j.organisationId,children:h.isPending?"Creatingâ¦":"Create scoped work"})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"portal-admin-orgs",children:[e.jsx("h2",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"Configured organisations"}),l.isLoading?e.jsx(Pa,{"data-loc":"client/src/pages/PortalAdmin.tsx:24",className:"animate-spin"}):R.length?e.jsx("div",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:R.map(w=>e.jsxs("article",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:[e.jsx("strong",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:w.name}),e.jsxs("span",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:["/",w.slug]}),e.jsx("small",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:w.stripeSubscriptionId?"Stripe subscription ID connected":"Subscription not connected"})]},w.id))}):e.jsx("p",{"data-loc":"client/src/pages/PortalAdmin.tsx:24",children:"No organisations yet. Create one above before assigning access."})]})]})})}const DD=[["01 â Is there enough customer opportunity?","Establish the addressable customer base, current purchase behavior, channel revenue, margin, and the realistic population the program can influence."],["02 â Which behavior creates the value?","Separate the effects of frequency, average order value, retention, acquisition, referrals, and product or channel mix."],["03 â What will the full program cost?","Include rewards, discount leakage, implementation, integrations, software, marketing, staffing, support, fulfillment, and ongoing optimization."],["04 â Does the case survive conservative assumptions?","Test the active-member rate, behavior lift, margin, reward cost, launch ramp, and operating cost before relying on the expected case."]],LD=[["01 â Are the customer and member assumptions credible?","Test addressability, enrollment, activation, ongoing participation, eligible transactions, and the ramp to a mature active-member base."],["02 â Is the projected behavior change truly incremental?","Separate frequency, basket, retention, referrals, acquisition, and channel movement from behavior that would have happened without the program."],["03 â Are all material costs and dependencies included?","Review rewards, liability, discount leakage, technology, integrations, data, implementation, staffing, customer care, marketing, fulfillment, fraud, and ongoing operation."],["04 â What must be proven before full commitment?","Identify the assumptions that should become pilot measures, contractual conditions, launch gates, or reasons to change the program design."]],ID=[["Baseline and addressable customers","Revenue, transactions, customers, purchase frequency, average order value, margin, channel mix, and the customers the business can identify and reach."],["Active-member funnel","Enrollment, activation, ongoing participation, eligible transactions, redemption behavior, and the ramp from launch to a mature active base."],["Behavior and revenue levers","Incremental frequency, basket growth, retention, referrals, conversion, acquisition, product mix, and channel movementâmodeled separately rather than hidden inside one uplift percentage."],["Reward and margin economics","Earn rates, redemption, breakage, reward funding, discount leakage, liability, fulfillment, and incremental gross profit after the value exchange."],["Complete program cost","Platform, implementation, integrations, data work, creative, launch marketing, staffing, customer care, fraud controls, support, and ongoing program management."],["Scenarios, sensitivity, and evidence","Conservative, expected, and upside cases with a visible source, owner, and confidence level for every assumption that materially changes the result."]],_D=[["Customer baseline and addressability","Revenue, transactions, customers, identity coverage, channel mix, margins, purchase ca
558dence, and reachable audience."],["Enrollment, activation, and participation","The difference between people who join, people who experience first value, and members who remain economically active."],["Behavior lift and attribution","Frequency, average order value, retention, referrals, conversion, product mix, and whether the improvement is incremental."],["Reward, margin, and liability economics","Earn rates, redemption, breakage, discounts, reward funding, fulfillment, partner contribution, and gross profit after the value exchange."],["Technology, data, and integrations","Platform fit, POS, ecommerce, CRM, CDP, messaging, mobile, receipt validation, security, privacy, reporting, and data ownership."],["Implementation and operating model","Scope, sequencing, internal owners, vendor responsibilities, staffing, customer care, content, campaign operations, support, and governance."],["Launch ramp, timing, and dependency risk","What must be ready for launch, which capabilities can be phased, how the active base grows, and what can delay or weaken the case."],["Measurement and evidence design","Baseline, cohorts, holdouts where practical, KPI definitions, data sources, reporting cadence, and the thresholds that trigger action."]],zD=[["Five-year financial view","Revenue, gross profit, full program cost, cash requirement, break-even timing, and ROI by year."],["Three decision scenarios","Conservative, expected, and upside cases that make the risk range visible."],["Assumption ledger","The source, owner, confidence, and decision impact of every important input."],["Executive summary","The opportunity, risks, dependencies, and recommended next step in language leadership can use."]],qD=[["Scored assumption ledger","Every material input labeled evidence-backed, directional, or unvalidated, with its owner and decision impact."],["Corrected financial model","A revised conservative, expected, and upside view using a complete revenue and cost architecture."],["Risk and gap map","The financial, customer, technical, operational, and measurement issues that could change the result."],["Evidence and pilot plan","The questions a pilot or first release must answer, the metrics required, and the success or stop thresholds."],["Executive recommendation","A concise recommendation to move forward, pilot first, fix specific gaps, or stop under the current case."]],BD=[["01 â Choose the business context","Select the channels, customer behaviors, and growth questions the model needs to answer."],["02 â Add known inputs","Enter observed business data and clearly label benchmarks, estimates, and unknowns."],["03 â Test the scenarios","Change participation, behavior, margin, rewards, cost, and timing to see what actually drives the result."],["04 â Decide what deserves deeper work","Move forward, run a pilot, improve the evidence, or stop before committing to the wrong program."]],HD=[["01 â Gather","Collect the current model, source data, program concept, vendor scope, cost estimates, channel requirements, and unresolved questions."],["02 â Test","Trace every material assumption, challenge attribution, find missing costs, and test sensitivity to the variables that matter most."],["03 â Rebuild","Correct the financial structure, document the evidence, and convert unknowns into a practical validation plan."],["04 â Decide","Present the economics, risks, dependencies, and recommended path in language commercial, finance, technology, and executive teams can share."]],UD=["Build the full case","Pilot the most important assumptions","Fix the data or operating gaps first","Do not proceed under the current economics"],VD=[["Move forward","The opportunity, economics, operating model, and evidence are strong enough to support the next investment stage."],["Pilot first","The case is promising, but a small number of material assumptions should be tested before full rollout."],["Fix the gaps","The opportunity may be real after specific data, margin, integration, staffing, governance, or customer-experience issues are corrected."],["Stop under the current case","The expected incremental contribution does not justify the full cost or risk. State that clearly before more money is committed."]];function FD(a,n){b.useEffect(()=>{document.title=a;let o=document.querySelector('meta[name="description"]');o||(o=document.createElement("meta"),o.name="description",document.head.appendChild(o)),o.content=n},[a,n])}function un({eyebrow:a,title:n,copy:o}){return e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:92",className:"roi-solution-section-head",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:92",children:a}),e.jsx("h2",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:92",children:n}),o&&e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:92",children:o})]})}function QD(){const[a,n]=b.useState("expected"),[o,i]=b.useState("Alma Loyalty Value Engine"),l=a==="conservative"?1.3:a==="upside"?3.8:2.4,d=[["POS",11,22,"A transaction begins as an eligible customer event."],["Ecommerce",11,43,"Digital orders contribute observable channel behavior."],["Mobile",11,64,"Member activity can connect to a recognized experience."],["CRM/CDP",32,14,"Customer context supports reach
558able, relevant action."],["Campaigns",32,78,"Campaigns make the next behavior visible and testable."],["Active members",68,19,"Participation determines the audience the model can influence."],["Frequency",85,31,"A return pattern is modeled separately from other levers."],["Average order value",85,49,"Basket movement stays separate from return behavior."],["Retention",68,69,"Longer relationship value must be visible in the case."],["Referrals",85,74,"Acquisition through advocacy is an explicit assumption."]],m=["Incremental revenue","Reward cost","Operating cost","Incremental contribution","ROI"];return e.jsxs("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:104",className:"connected-engine","aria-label":"Connected Loyalty Value Engine illustration",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:105",className:"engine-topline",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:105",children:"CONNECTED LOYALTY VALUE ENGINE"}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:105",className:"scenario-tabs","aria-label":"Select a planning scenario",children:["conservative","expected","upside"].map(h=>e.jsx("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:105",type:"button",className:a===h?"active":"","aria-pressed":a===h,onClick:()=>n(h),children:h},h))})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:106",className:"engine-canvas",children:[e.jsxs("svg",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:107",className:"engine-lines",viewBox:"0 0 100 100","aria-hidden":"true",children:[e.jsx("path",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:107",d:"M 16 22 L 50 49 M 16 43 L 50 49 M 16 64 L 50 49 M 35 14 L 50 49 M 35 78 L 50 49"}),e.jsx("path",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:107",className:"engine-behavior-line",d:"M 50 49 L 70 19 M 50 49 L 87 31 M 50 49 L 87 49 M 50 49 L 70 69 M 50 49 L 87 74",style:{strokeWidth:l}}),e.jsx("path",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:107",className:"engine-output-line",d:"M 72 49 L 94 49",style:{strokeWidth:l}})]}),d.map(([h,g,f,y])=>e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:108",type:"button",className:`engine-node ${o===h?"selected":""}`,style:{left:`${g}%`,top:`${f}%`},"aria-pressed":o===h,onClick:()=>i(h),children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:108",children:h}),e.jsx("i",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:108"})]},h)),e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:109",type:"button",className:`engine-core ${o==="Alma Loyalty Value Engine"?"selected":""}`,"aria-pressed":o==="Alma Loyalty Value Engine",onClick:()=>i("Alma Loyalty Value Engine"),children:[e.jsx("small",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:109",children:"IDENTITY · RULE · REWARD · COST"}),e.jsxs("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:109",children:["Alma Loyalty",e.jsx("br",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:109"}),"Value Engine"]})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:110",className:"engine-output-stack",children:m.map((h,g)=>e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:110",type:"button",className:o===h?"selected":"","aria-pressed":o===h,onClick:()=>i(h),children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:110",children:["0",g+1]}),h]},h))}),e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:111",className:"engine-pulse","aria-hidden":"true",style:{animationDuration:`${a==="upside"?2.3:a==="conservative"?4.4:3.2}s`}})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:113",className:"engine-explainer","aria-live":"polite",children:[e.jsx(Yi,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:113",size:15}),e.jsxs("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:113",children:[e.jsxs("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:113",children:[o,":"]})," ",d.find(([h])=>h===o)?.[3]??"Financial outputs show the relationship between customer behavior, complete cost, and the case being tested."]})]})]})}function GD(){const[a,n]=b.useState("Pilot first"),[o,i]=b.useState("Active members"),l=[["Addressable customers","Evidence-backed","Source: customer baseline · Owner: commercial"],["Active members","Directional","Source: planning assumption · Owner: marketing"],["Behavior lift","Directional","Source: scenario model · Owner: commercial"],["Margin","Evidence-backed","Source: finance ledger · Owner: finance"],["Reward cost","Directional","Source: reward design · Owner: program"],["Delivery cost","Unvalidated","Source: implementation scope · Owner: operations"],["ROI","Directional","Depen
558ds on every upstream material assumption."]];return e.jsxs("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:123",className:"assumption-xray","aria-label":"Assumption X-Ray audit illustration",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:124",className:"xray-topline",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:124",children:"ASSUMPTION X-RAY"}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:124",className:"audit-legend",children:[e.jsx("i",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:124",className:"evidence"}),"Evidence-backed ",e.jsx("i",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:124",className:"directional"}),"Directional ",e.jsx("i",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:124",className:"unvalidated"}),"Unvalidated"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",className:"xray-grid",children:[e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",className:"xray-systems",children:["Commerce","Customer data","Loyalty engine","Rewards","Operations","Finance","Reporting"].map(d=>e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",children:d},d))}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",className:"xray-case",children:[e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",className:"xray-lines","aria-hidden":"true"}),l.map(([d,m,h],g)=>e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",type:"button",onClick:()=>i(d),"aria-pressed":o===d,className:`xray-node ${m.toLowerCase().replace("-","-")} ${o===d?"selected":""}`,children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",children:["0",g+1]}),e.jsx("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",children:d}),e.jsx("small",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",children:m}),e.jsx("i",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125","data-detail":h})]},d))]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",className:"xray-decisions",children:["Move forward","Pilot first","Fix the gaps","Stop"].map(d=>e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",type:"button",className:a===d?"active":"","aria-pressed":a===d,onClick:()=>n(d),children:[d,e.jsx(Ah,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:125",size:13})]},d))})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:126",className:"engine-explainer","aria-live":"polite",children:[e.jsx(fd,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:126",size:15}),e.jsxs("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:126",children:[e.jsxs("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:126",children:[o,":"]})," ",l.find(([d])=>d===o)?.[2]," ",e.jsxs("b",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:126",children:["Selected decision: ",a,"."]})]})]})]})}function YD(){const[a,n]=b.useState({active:55,frequency:8,aov:7,retention:5,reward:4}),o=b.useMemo(()=>[["Active-member rate",a.active*.38],["Purchase frequency",a.frequency*2.2],["Average order value",a.aov*2],["Retention",a.retention*2.4],["Reward cost",-a.reward*3]].sort((h,g)=>Math.abs(g[1])-Math.abs(h[1])),[a]),i=Math.max(0,Math.round(42+o.reduce((m,[,h])=>m+h,0)/5)),l=()=>n({active:55,frequency:8,aov:7,retention:5,reward:4}),d=[["active","Active-member rate",10,90,"%"],["frequency","Purchase frequency",0,20,"%"],["aov","Average order value",0,20,"%"],["retention","Retention",0,20,"%"],["reward","Reward cost",0,15,"%"]];return e.jsxs("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"roi-flow-simulator","aria-labelledby":"roi-flow-title",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"simulator-controls",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"ILLUSTRATIVE EXAMPLEâNOT A FORECAST"}),e.jsxs("h3",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",
558id:"roi-flow-title",children:["Change one assumption.",e.jsx("br",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141"}),e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"See every connected consequence."})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"Loyalty economics are connected. A higher active-member rate changes eligible revenue, reward cost, operational demand, incremental contribution, and break-even timing."})]}),d.map(([m,h,g,f,y])=>e.jsxs("label",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:[h,e.jsxs("output",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:[a[m],y]})]}),e.jsx("input",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",type:"range",min:g,max:f,value:a[m],onChange:x=>n({...a,[m]:Number(x.target.value)})})]},m)),e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",type:"button",className:"simulator-reset",onClick:l,children:[e.jsx(Co,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",size:14})," Reset example"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"simulator-network",children:[e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"sim-inputs",children:d.map(([,m])=>e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:m},m))}),e.jsxs("svg",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",viewBox:"0 0 100 100","aria-hidden":"true",children:[e.jsx("path",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",d:"M 18 13 L 48 50 M 18 29 L 48 50 M 18 45 L 48 50 M 18 61 L 48 50 M 18 77 L 48 50"}),e.jsx("path",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"sim-path",d:"M 50 50 L 76 30 M 50 50 L 76 50 M 50 50 L 76 70",style:{strokeWidth:Math.max(1,i/24)}})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"sim-core",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"Eligible revenue"}),e.jsxs("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:[i,"%"]}),e.jsx("small",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"illustrative direction"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"sim-costs",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"Incremental gross profit"}),e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"â Rewards"}),e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"â Technology"}),e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"â Operations"})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"sim-outcome",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"Incremental contribution"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:i>=55?"Strengthening":"Needs testing"}),e.jsx("small",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:"Break-even direction"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",className:"sim-insight","aria-live":"polite",children:[e.jsx(Yi,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",size:16}),e.jsxs("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:["The greatest current effects are ",e.jsx("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:o[0][0]})," and ",e.jsx("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",children:o[1][0]}),". Change inputs to inspect the dependencyânot to predict a client result."]})]}),e.jsxs(V,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",href:"/roi-calculator",className:"button button-orange",children:["Build Your ROI Case ",e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:141",size:16})]})]})}function KD(){const a=[["Low addressability","Fix the gaps","Identity coverage limits the reachable audience before program launch."],["Reward cost above plan","Pilot first","The reward exchange needs an observed redemption and margin test."],["POS integration unconfirmed","Fix the gaps","The technology and data lane remains a launch depen
558dency."],["Strong retention signal","Move forward","Commercial evidence supports progressing the case to the next investment stage."],["Measurement baseline missing","Pilot first","The program should establish an observable baseline before full commitment."]],[n,o]=b.useState(a[0]),[i,l]=b.useState("Executive view"),d=["Commercial","Finance","Technology & Data","Operations"];return e.jsxs("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"decision-gate-simulator","aria-labelledby":"decision-gate-title",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"gate-sim-heading",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:"ILLUSTRATIVE DECISION LOGIC"}),e.jsxs("h3",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",id:"decision-gate-title",children:["See how one weak assumption",e.jsx("br",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151"}),e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:"changes the recommended path."})]}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:"A loyalty decision is connected across commercial, financial, technical, and operating evidence."})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"view-tabs","aria-label":"Choose a simulation view",children:["Executive view","System view"].map(m=>e.jsx("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",type:"button",className:i===m?"active":"","aria-pressed":i===m,onClick:()=>l(m),children:m},m))})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"finding-pills","aria-label":"Select an illustrative audit finding",children:a.map(m=>e.jsx("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",type:"button",className:n[0]===m[0]?"active":"","aria-pressed":n[0]===m[0],onClick:()=>o(m),children:m[0]},m[0]))}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:`gate-network ${i==="System view"?"system-view":""}`,children:[e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"gate-lanes",children:d.map((m,h)=>e.jsxs("article",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:n[0].includes(m.split(" ")[0])||h===1&&n[0]==="Reward cost above plan"?"impacted":"",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:["0",h+1]}),e.jsx("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:m}),e.jsx("small",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:i==="Executive view"?h===0?"Opportunity & behavior":h===1?"Margin & cost":h===2?"Readiness & data":"Delivery & ownership":"Connected audit categories"})]},m))}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"gate-decision",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:"RECOMMENDED PATH"}),e.jsx("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:n[1]}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:n[2]})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"gate-outcomes",children:["Move forward","Pilot first","Fix the gaps","Stop"].map(m=>e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:m===n[1]?"selected":"",children:m},m))})]}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",className:"gate-summary","aria-live":"polite",children:[e.jsx(Yi,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",size:16}),e.jsxs("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:[e.jsxs("strong",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",children:[n[0],":"]})," ",n[2]," This simulation does not replace professional analysis."]})]}),e.jsxs("button",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",type:"button",className:"simulator-reset",onClick:()=>{o(a[0]),l("Executive view")},children:[e.jsx(Co,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:151",size:14})," Reset decision logic"]})]})}function fp({items:a,className:n=""}){return e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:154",className:`roi-content-grid ${n}`,children:a.map(([o,i],l)=>e.jsxs("article",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:154",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:154",children:String(l+1).padStart(2,"0")}),e.jsx("h3",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:154",children:o}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:154",children:i})]},o))})}function JD({mode:a}){const n=a==="calculator";return e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:`roi-solution-
558hero ${n?"calculator-hero":"audit-hero"}`,children:e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"site-container",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"roi-hero-grid",children:[e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"roi-hero-copy",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",children:n?"Loyalty ROI calculators":"Loyalty ROI audit"}),e.jsx("h1",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",children:n?e.jsxs(e.Fragment,{children:["See whether loyalty can create ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",children:"profitable growth"}),"âbefore you choose the platform."]}):e.jsxs(e.Fragment,{children:["Know where the loyalty business case is ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",children:"strong, weak, and still unproven."})]})}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",children:n?"Model how active members, purchase frequency, average order value, retention, referrals, and channel mix could change revenue. Then compare the incremental gross profit with reward, technology, implementation, marketing, and operating costs.":"Alma reviews the customer opportunity, active-member forecast, behavior assumptions, reward economics, technology, integrations, staffing, launch plan, and measurement design. You receive a clear recommendation before the organization makes a major commitment."}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"roi-hero-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",href:n?"/roi-calculator":"/demo-request",className:"button button-orange",children:[n?"Build Your ROI Case":"Request an ROI Audit",e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",size:16})]}),e.jsxs("a",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"text-link text-link-strong",href:n?"#model-includes":"#what-we-audit",children:[n?"See What the Model Includes":"See What We Audit",e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",size:14})]})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"roi-trust-line",children:(n?"Channel-level revenue · Active-member assumptions · Full cost model · Scenario testing":"Full-cost review · Assumptions scored · Risks prioritized · Executive recommendation").split(" · ").map(o=>e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",children:[e.jsx(Ea,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",size:13}),o]},o))})]}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159",className:"roi-hero-system",children:n?e.jsx(QD,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159"}):e.jsx(GD,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:159"})})]})})})}function Dw({mode:a}){const n=a==="calculator";FD(n?"Loyalty ROI Calculator & Business Case Modeling | Alma Loyalty":"Loyalty Program ROI Audit & Business Case Review | Alma Loyalty",n?"Model loyalty revenue lift, active-member behavior, reward economics, technology costs, implementation costs, and ROI before choosing a platform.":"Pressure-test a loyalty program business case across member assumptions, behavior lift, rewards, margin, technology, delivery costs, risk, and measurement.");const o=n?DD:LD,i=n?ID:_D,l=n?zD:qD,d=n?BD:HD;return e.jsx(De,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:e.jsxs("main",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:`roi-intelligence-page ${n?"roi-calculator-solution":"roi-audit-solution"}`,children:[e.jsx(JD,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",mode:a}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-question-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:n?"The decision model":"The purpose of the audit",title:n?e.jsxs(e.Fragment,{children:["A financial case your commercial team can explain and your finance team can ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"challenge."})]}):e.jsxs(e.Fragment,{children:["Challenge the case before finance, procurement, or implementation ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"has to."})]}),copy:n?"A loyalty forecast should not begin with a generic percentage lift. It should show which customers become active, which behaviors change, how much incremental contribution those behaviors create, and what the complete program costs.":"A polished spreadsheet can still hide weak participation assumptions, duplicated revenue, missing costs, optimistic timing, or an operating model the business cannot support. The audit makes those risks visible while they are still inexpensive to correct."}),e.jsx(fp,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",items:o})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",id:n?"model-includes":"what-we-audit",className:"roi-component-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:n?"What the model includes":"What we audit",title:n?e.jsxs(e.Fragment,{children:["The revenue case, cost architecture, and ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"evidence"})," in one view."]}):e.jsxs(e.Fragment,{children:["The business case is only as strong as its ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"weakest material assumption."})]})}),e.jsx(fp,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",items:i,className:n?"six-grid":"eight-grid"})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-simulation-section",children:e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:n?e.jsxs(e.Fragment,{children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:"See the economics move",title:e.jsxs(e.Fragment,{children:["Change one assumption. See every connected ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"consequence."})]}),copy:"Loyalty economics are connected. A higher active-member rate changes eligible revenue, reward cost, operational demand, incremental contribution, and break-even timing. The model should make those relationships visible instead of hiding them in a spreadsheet."}),e.jsx(YD,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169"})]}):e.jsxs(e.Fragment,{children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:"From evidence to decision",title:e.jsxs(e.Fragment,{children:["See how one weak assumption changes the ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"recommended path."})]}),copy:"A loyalty decision is connected across commercial, financial, technical, and operating evidence. The audit shows which assumptions supp
558ort the case, which require a pilot, and which must be corrected before the organization commits."}),e.jsx(KD,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169"})]})})}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-deliverable-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:"What you receive",title:n?e.jsxs(e.Fragment,{children:["A model built to support a ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"real decision."})]}):e.jsxs(e.Fragment,{children:["A decision packageânot a list of ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"vague recommendations."})]})}),e.jsx(fp,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",items:l,className:"deliverable-grid"})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-process-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:n?"How it works":"How the audit works",title:n?e.jsxs(e.Fragment,{children:["Build the case in ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"four clear steps."})]}):e.jsxs(e.Fragment,{children:["From business inputs to an ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"executive decision."})]})}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-process-grid",children:d.map(([m,h])=>e.jsxs("article",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:[e.jsx("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:m.split(" â ")[0]}),e.jsx("h3",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:m.split(" â ")[1]}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:h}),e.jsx("i",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",size:16})})]},m))})]})}),!n&&e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-audit-use-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:"When to use it",title:e.jsxs(e.Fragment,{children:["Audit the case when the decision is expensive, cross-functional, or difficult to ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"reverse."})]})}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-use-rows",children:["A new loyalty program is seeking executive funding.","A vendor proposal includes revenue claims that need validation.","An existing program is being replaced, expanded, or moved omnichannel.","Finance needs a complete view of reward, technology, delivery, and operating costs.","The team agrees on the idea but not on the assumptions, scope, or launch path."].map((m,h)=>e.jsxs("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:["0",h+1]}),m,e.jsx(Ah,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",size:16})]},m))})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-outcome-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(un,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",eyebrow:"Decision outcomes",title:n?e.jsxs(e.Fragment,{children:["The calculator should lead to a decisionânot just a ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"bigger number."})]}):e.jsxs(e.Fragment,{children:["Every audit ends with one clear ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"recommendation."})]})}),e.jsx("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-outcome-grid",children:n?UD.map((m,h)=>e.jsxs("article",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:["0",h+1]}),e.jsx("h3",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:m})]},m)):VD.map(([m,h],g)=>e.jsxs("article",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:[e.jsxs("span",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:["0",g+1]}),e.jsx("h3",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:m}),e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:h})]},m))})]})}),e.jsx("section",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-final-section",children:e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"site-container",children:[e.jsx(re,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:n?"Start with the numbers":"Before you fund it"}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:[e.jsx("h2",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:n?e.jsxs(e.Fragment,{children:["Build a first-pass loyalty business case before the ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"software conversation begins."})]}):e.jsxs(e.Fragment,{children:["Find the weak assumptions while they are still ",e.jsx("em",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:"inexpensive to fix."})]})}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:[e.jsx("p",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",children:n?"Use the calculator yourself or bring Alma into the model when the assumptions, channels, or cost structure need a deeper review.":"Bring Alma the business case, vendor proposal, or early program concept. We will identify what is supported, what is directional, what is missing, and what decision the evidence supports."}),e.jsxs("div",{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",className:"roi-hero-actions",children:[e.jsxs(V,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",href:n?"/roi-calculator":"/demo-request",className:"button button-orange",children:[n?"Build Your ROI Case":"Request an ROI Audit",e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",size:16})]}),e.jsxs(V,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",href:n?"/solutions/roi-audit":"/opportunity-estimator",className:"text-link text-link-strong",children:[n?"Request an ROI Audit":"Start With the Opportunity Estimator",e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",size:14})]})]}),!n&&e.jsxs(V,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",href:"/roi-calculator",className:"roi-back-calculator",children:["Build a first-pass ROI case ",e.jsx(Y,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:169",size:14})]})]})]})]})})]})})}function WD(){return e.jsx(Dw,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:172",mode:"calculator"})}function $D(){return e.jsx(Dw,{"data-loc":"client/src/pages/RoiSolutionPages.tsx:173",mode:"audit"})}function XD(){return e.jsxs(zk,{"data-loc":"client/src/App.tsx:55",children:[e.jsx(Re,{"data-loc":"client/src/App.tsx:56",path:"/",component:uM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:57",path:"/solutions",component:hM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:58",path:"/solutions/roi-calculators",component:WD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:59",path:"/solutions/roi-audit",component:$D}),e.jsx(Re,{"data-loc":"client/src/App.tsx:60",path:"/solutions/:solution",component:T5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:61",path:"/platform",component:n5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:62",path:"/platform/:capability",component:r5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:63",path:"/products",component:o5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:64",path:"/products/:product",component:c5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:65",path:"/industries",component:d5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:66",path:"/industries/:industry",component:u5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:67",path:"/audiences",component:m5}
558),e.jsx(Re,{"data-loc":"client/src/App.tsx:68",path:"/audiences/:audience",component:h5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:69",path:"/kpi",component:f5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:70",path:"/kpi/:kpi",component:y5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:71",path:"/integrations",component:b5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:72",path:"/offerings",component:w5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:73",path:"/tools",component:S5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:74",path:"/strategy",component:R5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:75",path:"/strategy/:strategy",component:P5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:76",path:"/program-matcher",component:k5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:77",path:"/opportunity-estimator",component:M5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:78",path:"/roi-calculator",component:vM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:79",path:"/report/verify",component:C5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:80",path:"/pricing",component:bM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:81",path:"/resources",component:CM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:82",path:"/resources/loyalty-roi",component:t5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:83",path:"/resources/:resource",component:D5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:84",path:"/roi-explainer",component:L5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:85",path:"/qualification-standard",component:_5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:86",path:"/buyer-intelligence",component:B5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:87",path:"/brand-fit/workbench",component:yD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:88",path:"/alma-ai-os",component:CD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:89",path:"/program-health",component:RD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:90",path:"/portal/contractor",component:OD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:91",path:"/portal/customer",component:MD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:92",path:"/admin/portal",component:TD}),e.jsx(Re,{"data-loc":"client/src/App.tsx:93",path:"/about",component:SM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:94",path:"/contact",component:RM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:95",path:"/demo-request",component:EM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:96",path:"/case-studies",component:NM}),e.jsx(Re,{"data-loc":"client/src/App.tsx:97",path:"/admin/leads",component:Z4}),e.jsx(Re,{"data-loc":"client/src/App.tsx:98",path:"/admin/crm",component:Q5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:99",path:"/get-a-quote",component:e5}),e.jsx(Re,{"data-loc":"client/src/App.tsx:100",path:"/404",component:Kv}),e.jsx(Re,{"data-loc":"client/src/App.tsx:102",component:Kv})]})}function ZD(){return e.jsx(qk,{"data-loc":"client/src/App.tsx:114",children:e.jsx(Vk,{"data-loc":"client/src/App.tsx:115",defaultTheme:"light",children:e.jsxs(Ch,{"data-loc":"client/src/App.tsx:119",children:[e.jsx(Hk,{"data-loc":"client/src/App.tsx:120"}),e.jsx(jE,{"data-loc":"client/src/App.tsx:121"}),e.jsx(XD,{"data-loc":"client/src/App.tsx:122"})]})})})}const Wl=new b2,Lw=a=>{!(a instanceof po)||typeof window>"u"||!(a.message===aR)||Sn()};Wl.getQueryCache().subscribe(a=>{if(a.type==="updated"&&a.action.type==="error"){const n=a.query.state.error;Lw(n),console.error("[API Query Error]",n)}});Wl.getMutationCache().subscribe(a=>{if(a.type==="updated"&&a.action.type==="error"){const n=a.mutation.state.error;Lw(n),console.error("[API Mutation Error]",n)}});const e6=Ke.createClient({links:[NA({url:"/api/trpc",transformer:Ds,headers(){try{const a=sessionStorage.getItem("manus-cookie");if(a){const n=`${tR}=`,i=a.split(";").find(l=>l.trim().startsWith(n))?.trim().slice(n.length);if(i)return{Authorization:`Bearer ${i}`}}}catch{}return{}},fetch(a,n){return globalThis.fetch(a,{...n??{},credentials:"include"})}})]});dR.createRoot(document.getElementById("root")).render(e.jsx(Ke.Provider,{"data-loc":"client/src/main.tsx:77",client:e6,queryClient:Wl,children:e.jsx(w2,{"data-loc":"client/src/main.tsx:78",client:Wl,children:e.jsx(ZD,{"data-loc":"client/src/main.tsx:79"})})}));
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.