@veevarts/design-system 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +25 -22
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -13,7 +13,7 @@ ${s}${a}
|
|
|
13
13
|
`,style:{backgroundColor:r},"aria-label":`Select color ${r}`,title:r},r)})})}const Uo=["#000000","#374151","#6B7280","#EF4444","#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#14B8A6","#F97316","#A855F7"],Ho=["#FEF3C7","#DBEAFE","#D1FAE5","#FCE7F3","#E0E7FF","#FED7AA","#F3E8FF","#CCFBF1","#FEE2E2","#E5E7EB","#FAE8FF","#BFDBFE"];function Wt(e){return/^#([0-9A-F]{3}){1,2}$/i.test(e)}const ve={min:50,max:200,step:10,default:100},js={lineHeight:24,toolbarHeight:60},qo={bold:G.Bold,italic:G.Italic,strike:G.Strikethrough,underline:G.Underline,code:G.Code,textColor:G.Palette,highlight:G.Highlighter,link:G.Link2,paragraph:G.FileText,heading:G.Heading,bulletList:G.List,orderedList:G.ListOrdered,taskList:G.ListTodo,codeBlock:G.CodeSquare,blockquote:G.Quote,horizontalRule:G.Minus,clearMarks:G.Eraser,clearNodes:G.Eraser,undo:G.Undo2,redo:G.Redo2,hardBreak:G.CornerDownLeft,textAlign:G.AlignLeft},Wo={left:G.AlignLeft,center:G.AlignCenter,right:G.AlignRight,justify:G.AlignJustify};function Qe(e){return qo[e]}function Yo({value:e,onChange:n,onApply:s,placeholder:a="#000000"}){const[r,i]=p.useState(""),o=u=>{const f=u.target.value;n(f),r&&i("")},l=()=>{if(!e){i("Please enter a color");return}if(!Wt(e)){i("Invalid hex color (e.g., #FF0000)");return}i(""),s(e)},d=u=>{u.key==="Enter"&&(u.preventDefault(),l())};return t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{className:"flex gap-2",children:[t.jsx(c.Input,{type:"text",value:e,onChange:o,onKeyDown:d,placeholder:a,size:"sm",variant:"bordered","aria-label":"Custom color hex code",isInvalid:!!r,errorMessage:r,startContent:t.jsx("div",{className:"w-4 h-4 rounded border border-divider",style:{backgroundColor:Wt(e)?e:"transparent"}})}),t.jsx(H,{size:"sm",color:"primary",variant:"flat",isIconOnly:!0,onPress:l,"aria-label":"Apply custom color",isDisabled:!e||!Wt(e),children:t.jsx(G.Check,{size:16})})]}),t.jsx("p",{className:"text-xs text-default-500",children:"Enter a hex color code (e.g., #FF0000)"})]})}function ws({editor:e,type:n,allowCustomColor:s=!0,label:a,isDisabled:r=!1}){const[i,o]=p.useState(!1),[l,d]=p.useState(""),u=n==="textColor"?Uo:Ho,f=w=>{const b=_e[n];b&&b.execute({editor:e,config:{type:n,color:w}}),o(!1),d("")},m=w=>{f(w)},x=()=>{const w=_e[n];w&&w.execute({editor:e,config:{type:n,color:""}}),o(!1)},h=n==="textColor"?e.isActive("textStyle"):e.isActive("highlight"),y=n==="textColor"?G.Palette:G.Highlighter;return t.jsxs(c.Popover,{isOpen:i,onOpenChange:o,placement:"top",offset:10,showArrow:!0,children:[t.jsx(c.PopoverTrigger,{children:t.jsx(H,{size:"sm",radius:"sm",variant:h?"solid":"bordered",color:h?"primary":"default",isIconOnly:!0,isDisabled:r,"aria-label":a,children:t.jsx(y,{size:16})})}),t.jsx(c.PopoverContent,{className:"w-64",children:t.jsxs("div",{className:"px-2 py-3 space-y-3",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("span",{className:"text-sm font-semibold",children:a}),t.jsx(H,{size:"sm",variant:"light",isIconOnly:!0,onPress:x,"aria-label":"Clear color",children:t.jsx(G.X,{size:16})})]}),t.jsx(Vo,{colors:u,onColorSelect:f}),s&&t.jsxs(t.Fragment,{children:[t.jsx(c.Divider,{}),t.jsxs("div",{children:[t.jsx("p",{className:"text-xs font-semibold mb-2 text-default-700",children:"Custom Color"}),t.jsx(Yo,{value:l,onChange:d,onApply:m})]})]})]})})]})}function Go({zoom:e,onZoomChange:n,min:s=ve.min,max:a=ve.max,step:r=ve.step}){const i=()=>{const m=Math.max(s,e-r);n(m)},o=()=>{const m=Math.min(a,e+r);n(m)},l=()=>{n(ve.default)},d=e<=s,u=e>=a,f=e===ve.default;return t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(c.Tooltip,{content:"Zoom out",placement:"top",offset:10,children:t.jsx(H,{size:"sm",radius:"sm",color:"default",variant:"bordered",isIconOnly:!0,isDisabled:d,onPress:i,"aria-label":"Zoom out",children:t.jsx(G.ZoomOut,{size:16})})}),t.jsx(c.Tooltip,{content:f?"Zoom percentage":"Click to reset zoom",placement:"top",offset:10,children:t.jsxs("button",{type:"button",onClick:l,disabled:f,className:`
|
|
14
14
|
text-xs text-default-500 min-w-[3ch] text-center px-2
|
|
15
15
|
${f?"cursor-default":"cursor-pointer hover:text-primary"}
|
|
16
|
-
`,"aria-label":`Zoom level ${e}%`,children:[e,"%"]})}),t.jsx(c.Tooltip,{content:"Zoom in",placement:"top",offset:10,children:t.jsx(H,{size:"sm",radius:"sm",color:"default",variant:"bordered",isIconOnly:!0,isDisabled:u,onPress:o,"aria-label":"Zoom in",children:t.jsx(G.ZoomIn,{size:16})})})]})}function Ko({editor:e,isDisabled:n=!1}){const[s,a]=p.useState(!1),[r,i]=p.useState(""),[o,l]=p.useState(""),[d,u]=p.useState(!1),f=e.isActive("link"),m=h=>{if(h){const{from:y,to:w}=e.state.selection,b=e.isActive("link");let j="";if(b){const C=e.schema.marks.link,v=e.state.doc.resolve(y),k=ts.getMarkRange(v,C);k&&(j=e.state.doc.textBetween(k.from,k.to,""))}else j=e.state.doc.textBetween(y,w,"");const N=e.getAttributes("link").href||"";i(j),l(N),u(b)}a(h)},x=()=>{if(o.trim()){const{from:h,to:y}=e.state.selection,w=e.schema.marks.link,b=e.state.doc.resolve(h),j=ts.getMarkRange(b,w),N=j?.from??h,C=j?.to??y,v=e.state.doc.textBetween(N,C,"");r.trim()&&r!==v?e.chain().focus().setTextSelection({from:N,to:C}).deleteSelection().insertContent(`<a href="${o.trim()}">${r.trim()}</a>`).run():e.chain().focus().extendMarkRange("link").updateAttributes("link",{href:o.trim()}).run()}a(!1)};return t.jsxs(c.Popover,{isOpen:s,onOpenChange:m,placement:"bottom",children:[t.jsx(c.PopoverTrigger,{children:t.jsx(H,{size:"sm",radius:"sm",variant:f?"solid":"bordered",color:f?"primary":"default",isIconOnly:!0,isDisabled:n,"aria-label":"Link",children:t.jsx(G.Link,{size:16})})}),t.jsx(c.PopoverContent,{children:t.jsxs("div",{className:"flex flex-col gap-3 p-3 w-72",children:[t.jsx(c.Input,{size:"sm",variant:"bordered",label:"Name",labelPlacement:"outside",placeholder:"Link text",value:r,onChange:h=>i(h.target.value),classNames:{inputWrapper:"focus-within:border-default-400"}}),t.jsx(c.Input,{size:"sm",variant:"bordered",label:"Link",labelPlacement:"outside",placeholder:"https://example.com",value:o,onChange:h=>l(h.target.value),onKeyDown:h=>h.key==="Enter"&&x(),classNames:{inputWrapper:"focus-within:border-default-400"}}),t.jsx(H,{size:"sm",color:"primary",onPress:x,isDisabled:!o.trim(),children:d?"Update":"Apply"})]})})]})}function Qo({children:e,id:n,label:s,className:a,useButtonGroup:r=!0}){return r?t.jsx(c.ButtonGroup,{size:"sm",id:n,"aria-label":s,className:a,children:e}):t.jsx("div",{id:n,role:"group","aria-label":s,className:`flex items-center gap-2 ${a||""}`,children:e})}function _a(e,n){const s=p.useMemo(()=>{if(!e)return{};const i={};return Array.from(new Set(n.map(l=>ut(l)))).forEach(l=>{const d=_e[l];if(d)try{const u=d.canExecute?.(e)??!0,f=d.isActive?.(e)??!1;i[l]={isActive:f,isDisabled:!u,canExecute:u}}catch(u){console.warn(`Extension not available for modifier: ${l}`,u),i[l]={isActive:!1,isDisabled:!0,canExecute:!1}}}),i},[e,n]),[a,r]=p.useState(s);return p.useEffect(()=>{if(!e)return;const i=()=>{const o={};Array.from(new Set(n.map(d=>ut(d)))).forEach(d=>{const u=_e[d];if(u)try{const f=u.canExecute?.(e)??!0,m=u.isActive?.(e)??!1;o[d]={isActive:m,isDisabled:!f,canExecute:f}}catch(f){console.warn(`Extension not available for modifier: ${d}`,f),o[d]={isActive:!1,isDisabled:!0,canExecute:!1}}}),r(o)};return e.on("selectionUpdate",i),e.on("transaction",i),()=>{e.off("selectionUpdate",i),e.off("transaction",i)}},[e,n,s]),a}function Pa(e,n){const s=p.useCallback((o,l)=>{if(!e)return;const d=_e[o];if(d)try{d.execute({editor:e,config:l}),n?.({type:"toggle",modifier:o})}catch(u){console.warn(`Failed to execute command for modifier: ${o}`,u)}},[e,n]),a=p.useCallback(o=>{s(o)},[s]),r=p.useCallback((o,l)=>{if(!e)return!1;const d=_e[o];try{return d?.canExecute?.(e,l)??!1}catch(u){return console.warn(`Failed to check canExecute for modifier: ${o}`,u),!1}},[e]),i=p.useCallback((o,l)=>{if(!e)return!1;const d=_e[o];try{return d?.isActive?.(e,l)??!1}catch(u){return console.warn(`Failed to check isActive for modifier: ${o}`,u),!1}},[e]);return{executeCommand:s,toggleModifier:a,canExecute:r,isActive:i}}function Zo(e=ve.default){const[n,s]=p.useState(e),a=p.useCallback((l=ve.step)=>{s(d=>Math.min(ve.max,d+l))},[]),r=p.useCallback((l=ve.step)=>{s(d=>Math.max(ve.min,d-l))},[]),i=p.useCallback(()=>{s(ve.default)},[]),o=p.useCallback(l=>{const d=Math.max(ve.min,Math.min(ve.max,l));s(d)},[]);return{zoom:n,setZoom:o,zoomIn:a,zoomOut:r,resetZoom:i,isMinZoom:n<=ve.min,isMaxZoom:n>=ve.max,isDefaultZoom:n===ve.default}}const Xo=["bold","italic","strike","underline","code"];function Jo({editor:e,modifiers:n,onToolbarAction:s}){const a=_a(e,n),{toggleModifier:r}=Pa(e,s);if(!e)return null;const i=n.map(o=>ut(o)).filter(o=>Xo.includes(o));return i.length===0?null:t.jsx(Qo,{id:"text-formatting",label:"Text formatting",children:i.map(o=>{const l=a[o],d=Qe(o);return t.jsx(qe,{icon:d,label:o.charAt(0).toUpperCase()+o.slice(1),isActive:l?.isActive,isDisabled:l?.isDisabled,onClick:()=>r(o)},o)})})}function ec({editor:e,modifiers:n,zoom:s=100,onZoomChange:a,sticky:r=!0,className:i,onToolbarAction:o}){const l=_a(e,n),{toggleModifier:d,executeCommand:u}=Pa(e,o);if(!e)return null;const f=n.map(A=>ut(A)),m=f.some(A=>["bold","italic","strike","underline","code"].includes(A)),x=f.some(A=>["textColor","highlight"].includes(A)),h=f.includes("heading"),y=f.includes("textAlign"),w=f.some(A=>["bulletList","orderedList","taskList"].includes(A)),b=f.includes("blockquote"),j=f.includes("codeBlock"),N=f.includes("link"),C=f.includes("horizontalRule"),v=f.some(A=>["undo","redo"].includes(A)),k=s!==void 0&&a!==void 0,L=r?"sticky top-0 z-10":"";return t.jsx("div",{className:`w-full p-2 bg-background border-b border-divider ${L} ${i||""}`,children:t.jsxs("div",{className:"flex flex-row flex-wrap gap-2 w-full items-center",children:[m&&t.jsxs(t.Fragment,{children:[t.jsx(Jo,{editor:e,modifiers:n,onToolbarAction:o}),(x||h||y||w||b||j||N||C||v||k)&&t.jsx(He,{})]}),x&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[f.includes("textColor")&&t.jsx(ws,{editor:e,type:"textColor",label:"Text color",isDisabled:l.textColor?.isDisabled}),f.includes("highlight")&&t.jsx(ws,{editor:e,type:"highlight",label:"Highlight",isDisabled:l.highlight?.isDisabled})]}),(h||y||w||b||j||N||C||v||k)&&t.jsx(He,{})]}),h&&t.jsxs(t.Fragment,{children:[t.jsx(zo,{editor:e}),(y||w||b||j||N||C||v||k)&&t.jsx(He,{})]}),y&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"flex items-center gap-1",children:["left","center","right","justify"].map(A=>{const M=Wo[A],E=e.isActive({textAlign:A});return t.jsx(qe,{icon:M,label:`Align ${A}`,isActive:E,onClick:()=>u("textAlign",{type:"textAlign",alignment:A})},A)})}),(w||b||j||N||C||v||k)&&t.jsx(He,{})]}),w&&t.jsxs(t.Fragment,{children:[t.jsx(Bo,{editor:e,types:f.filter(A=>["bulletList","orderedList","taskList"].includes(A))}),(b||j||N||C||v||k)&&t.jsx(He,{})]}),(b||j||N||C)&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[b&&t.jsx(qe,{icon:Qe("blockquote"),label:"Blockquote",isActive:l.blockquote?.isActive,isDisabled:l.blockquote?.isDisabled,onClick:()=>d("blockquote")}),j&&t.jsx(qe,{icon:Qe("codeBlock"),label:"Code block",isActive:l.codeBlock?.isActive,isDisabled:l.codeBlock?.isDisabled,onClick:()=>d("codeBlock")}),N&&t.jsx(Ko,{editor:e,isDisabled:l.link?.isDisabled}),C&&t.jsx(qe,{icon:Qe("horizontalRule"),label:"Horizontal rule",onClick:()=>d("horizontalRule")})]}),(v||k)&&t.jsx(He,{})]}),v&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[f.includes("undo")&&t.jsx(qe,{icon:Qe("undo"),label:"Undo",isDisabled:l.undo?.isDisabled,onClick:()=>d("undo")}),f.includes("redo")&&t.jsx(qe,{icon:Qe("redo"),label:"Redo",isDisabled:l.redo?.isDisabled,onClick:()=>d("redo")})]}),k&&t.jsx(He,{})]}),k&&t.jsx(Go,{zoom:s,onZoomChange:A=>{a?.(A),o?.({type:"zoom",modifier:`${A}%`})}})]})})}const st={bold:{category:"mark",extension:Si.Bold,priority:100},italic:{category:"mark",extension:Ai.Italic,priority:100},strike:{category:"mark",extension:$i.Strike,priority:100},underline:{category:"mark",extension:Di.Underline,priority:100},code:{category:"mark",extension:Ei.Code,priority:100},textColor:{category:"mark",extension:Fi.Color,defaultOptions:{types:["textStyle","heading","paragraph","listItem","taskItem","blockquote"]},priority:90},highlight:{category:"mark",extension:Mi.Highlight,defaultOptions:{multicolor:!0},priority:90},link:{category:"mark",extension:Li.Link,defaultOptions:{autolink:!0,linkOnPaste:!0,openOnClick:!1,HTMLAttributes:{class:"text-primary underline cursor-pointer"}},priority:100},heading:{category:"node",extension:Ii.Heading,defaultOptions:{levels:[1,2,3,4,5,6]},priority:100},bulletList:{category:"node",extension:Pi.BulletList,defaultOptions:{HTMLAttributes:{class:"list-disc"}},priority:90},orderedList:{category:"node",extension:Oi.OrderedList,defaultOptions:{HTMLAttributes:{class:"list-decimal"}},priority:90},taskList:{category:"node",extension:Ri.TaskList,defaultOptions:{HTMLAttributes:{class:"task-list"}},priority:90},codeBlock:{category:"node",extension:Vi.CodeBlock,priority:100},blockquote:{category:"node",extension:Ui.Blockquote,priority:100},horizontalRule:{category:"node",extension:Hi.HorizontalRule,priority:100},hardBreak:{category:"node",extension:qi.HardBreak,priority:100},undo:{category:"extension",extension:ns.History,priority:50},redo:{category:"extension",extension:ns.History,priority:50},textAlign:{category:"extension",extension:Wi.TextAlign,defaultOptions:{types:["heading","paragraph","listItem","bulletList","orderedList","taskList","taskItem","blockquote"],alignments:["left","center","right","justify"],defaultAlignment:"left"},priority:80},clearMarks:{category:"extension",extension:null,priority:50},clearNodes:{category:"extension",extension:null,priority:50}},tc=[Yi.Document,Gi.Text,_i.Paragraph,Ti.TextStyle.configure({HTMLAttributes:{}}),Bi.ListItem.configure({HTMLAttributes:{}}),zi.TaskItem.configure({nested:!0}),Ki.Dropcursor,Qi.Gapcursor];function nc(e){const n=[],s=new Set,a=new Set;tc.forEach(l=>{l&&(n.push(l),a.add(l.name))});const r=e.map(l=>ut(l)),i=new Set;return r.forEach(l=>{const d=st[l];d?.requiredExtensions&&d.requiredExtensions.forEach(u=>{i.add(u)})}),i.forEach(l=>{if(s.has(l))return;const d=st[l];if(!d||d.extension===null)return;const u=d.extension.name;if(a.has(u)){s.add(l);return}const f=d.defaultOptions?d.extension.configure(d.defaultOptions):d.extension;n.push(f),s.add(l),a.add(u)}),r.forEach(l=>{if(s.has(l))return;const d=st[l];if(!d){console.warn(`Extension config not found for modifier: ${l}`);return}if(d.extension===null){s.add(l);return}const u=d.extension.name;if(a.has(u)){s.add(l);return}const f=d.defaultOptions?d.extension.configure(d.defaultOptions):d.extension;n.push(f),s.add(l),a.add(u)}),n.sort((l,d)=>{const u=Object.values(st).find(h=>h?.extension?.name===l.name),f=Object.values(st).find(h=>h?.extension?.name===d.name),m=u?.priority??100;return(f?.priority??100)-m})}const Oa={simple:["bold","italic","bulletList","orderedList","undo","redo"],blog:["bold","italic","underline",{type:"heading",level:2},{type:"heading",level:3},"textAlign","bulletList","orderedList","link","blockquote","undo","redo"],documentation:["bold","italic","strike","underline","code","clearMarks",{type:"heading",level:1},{type:"heading",level:2},{type:"heading",level:3},{type:"heading",level:4},{type:"heading",level:5},{type:"heading",level:6},"textAlign","bulletList","orderedList","taskList","link","textColor","highlight","codeBlock","blockquote","horizontalRule","hardBreak","undo","redo"],comment:["bold","italic","link","undo","redo"],full:["bold","italic","strike","underline","code","clearMarks",{type:"heading",level:1},{type:"heading",level:2},{type:"heading",level:3},{type:"heading",level:4},{type:"heading",level:5},{type:"heading",level:6},"textAlign","bulletList","orderedList","taskList","link","textColor","highlight","codeBlock","blockquote","horizontalRule","hardBreak","undo","redo"]},sc={h1:`font-size: ${de.fontSize["4xl"]}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h2:`font-size: ${de.fontSize["2xl"]}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h3:`font-size: ${de.fontSize.xl}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h4:`font-size: ${de.fontSize.lg}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h5:`font-size: ${de.fontSize.base}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h6:`font-size: ${de.fontSize.sm}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,p:`min-height: ${de.lineHeight.normal}em; margin: 0;`,ul:`list-style-type: disc; list-style-position: outside; padding-left: ${le.xl}; margin: ${le.md} 0;`,ol:`list-style-type: decimal; list-style-position: outside; padding-left: ${le.xl}; margin: ${le.md} 0;`,li:`display: list-item; margin: ${le.xs} 0;`,strong:`font-weight: ${de.fontWeight.bold};`,em:"font-style: italic;",s:"text-decoration: line-through;",u:"text-decoration: underline;",code:`background-color: ${be.neutral.gray[100]}; border-radius: 0.4rem; font-size: ${de.fontSize.sm}; padding: 0.25em 0.3em; font-family: ${de.fontFamily.mono};`,pre:`background: ${be.neutral.gray[800]}; border-radius: ${le.sm}; color: ${be.neutral.gray[100]}; font-family: ${de.fontFamily.mono}; margin: ${le.lg} 0; padding: 0.75rem ${le.md}; overflow-x: auto;`,blockquote:`border-left: 3px solid ${be.neutral.gray[300]}; margin: ${le.lg} 0; padding-left: ${le.md}; color: ${be.neutral.gray[500]};`,hr:`border: none; border-top: 1px solid ${be.neutral.gray[200]}; margin: ${le.xl} 0;`,a:`color: ${be.brand.primary.DEFAULT}; text-decoration: underline; cursor: pointer;`,mark:`background-color: ${be.palettes.warning[200]}; border-radius: ${le.xs}; padding: 0 0.125rem;`,label:`display: flex; align-items: center; gap: ${le.sm}; cursor: pointer;`,input:"cursor: pointer; margin: 0;"},ac={taskList:"list-style: none; padding-left: 0; margin: 1rem 0;",taskItem:"display: flex; align-items: flex-start; gap: 0.5rem; margin: 0.5rem 0;"};function rc(e){if(!e)return e;let n=e;for(const[s,a]of Object.entries(ac)){const r=new RegExp(`(<(?:ul|li)[^>]*data-type="${s}"[^>]*)>`,"gi");n=n.replace(r,(i,o)=>i.includes('style="')?i.replace(/style="([^"]*)"/,`style="$1 ${a}"`):`${o} style="${a}">`)}for(const[s,a]of Object.entries(sc)){const r=new RegExp(`<${s}(\\s[^>]*)?>`,"gi");n=n.replace(r,i=>{if(i.includes('data-type="taskList"')||i.includes('data-type="taskItem"'))return i;if(i.includes('style="'))return i.replace(/style="([^"]*)"/,`style="$1 ${a}"`);if(i.includes("style='"))return i.replace(/style='([^']*)'/,`style='$1 ${a}'`);{const o=i.indexOf(">");return`${i.slice(0,o)} style="${a}"${i.slice(o)}`}})}return n}const ic=({modifiers:e,zoom:n,onZoomChange:s,onToolbarAction:a})=>{const{editor:r}=vn.useCurrentEditor();return t.jsx(ec,{editor:r,modifiers:e,zoom:n,onZoomChange:s,onToolbarAction:a})},lc=({showCharacterCount:e,showWordCount:n})=>{const{editor:s}=vn.useCurrentEditor();if(!s||!e&&!n)return null;const a=s.getText(),r=a.length,i=a.split(/\s+/).filter(o=>o.length>0).length;return t.jsxs("div",{className:"flex gap-4 text-xs text-default-500 px-2 pb-1",children:[e&&t.jsxs("span",{children:[r," characters"]}),n&&t.jsxs("span",{children:[i," words"]})]})},mn=p.forwardRef((e,n)=>{const{minRows:s=10,maxRows:a=30,disableAutosize:r=!1,showCharacterCount:i=!1,showWordCount:o=!1,showToolbar:l=!0,modifiers:d=Oa.full,variant:u="bordered",initialContent:f,content:m,onContentChange:x,onUpdate:h,onToolbarAction:y,isReadOnly:w=!1,isDisabled:b=!1,includeInlineStyles:j=!0,...N}=e,{zoom:C,setZoom:v}=Zo(),k=js.lineHeight,L=s*k,A=r?void 0:a*k,M=p.useMemo(()=>nc(d),[d]),{Component:E,label:I,shouldLabelBeOutside:$,getBaseProps:D,getLabelProps:T,getInputWrapperProps:_}=c.useInput({...N,variant:u,ref:n,isMultiline:!0}),Y=I?t.jsx("label",{...T(),children:I}):null,B=p.useCallback(({editor:V})=>{const Z=V.getHTML(),J=j?rc(Z):Z,re=V.getJSON(),q=V.getText(),Q=q.length,K=q.split(/\s+/).filter(oe=>oe.length>0).length,ee={html:J,json:re,text:q,characters:Q,words:K};if(x?.(ee),h?.(ee),"onChange"in N&&typeof N.onChange=="function"){const oe={target:{value:J},currentTarget:{value:J}};N.onChange(oe)}},[x,h,N,j]);return t.jsxs(E,{...D(),children:[$?Y:null,t.jsx("div",{..._(),className:c.cn(_().className,"flex flex-col w-full p-0 gap-0 rich-text-editor"),style:{maxHeight:A?`${A+js.toolbarHeight}px`:void 0,overflow:A?"auto":void 0},children:t.jsx(vn.EditorProvider,{editable:!w&&!b,slotBefore:l?t.jsx(ic,{modifiers:d,zoom:C,onZoomChange:v,onToolbarAction:y}):void 0,slotAfter:t.jsx(lc,{showCharacterCount:i,showWordCount:o}),editorContainerProps:{className:"w-full flex-1 outline-none",style:{minHeight:`${L}px`,fontSize:`${C}%`,display:"flex",flexDirection:"column"}},editorProps:{attributes:{class:"focus:outline-none w-full h-full"}},extensions:M,content:m||f||e.defaultValue||"",onUpdate:B})})]})});mn.displayName="TipTapEditor";const Ra=p.forwardRef((e,n)=>{const{adapter:s="tiptap",variant:a="bordered",...r}=e;return s==="tiptap"?t.jsx(mn,{...r,variant:a,ref:n}):(console.warn(`Adapter "${s}" is not supported. Using TipTap.`),t.jsx(mn,{...r,variant:a,ref:n}))});Ra.displayName="RichTextArea";function oc(e,n="en-US",s="USD"){try{return new Intl.NumberFormat(n,{style:"currency",currency:s,minimumFractionDigits:0,maximumFractionDigits:2}).format(e)}catch(a){return console.warn(`Invalid currency formatting: ${a}`),`${s} ${e.toFixed(2)}`}}const Ns=[{id:"100",amount:100},{id:"250",amount:250},{id:"500",amount:500},{id:"1000",amount:1e3},{id:"2000",amount:2e3}],cc={title:"Donation Amount",customAmountPlaceholder:"Custom donation amount",customAmountAriaLabel:"Custom donation amount",addDonationButton:"Add Donation"},za=({presetAmounts:e=Ns,selectedDonation:n,defaultSelectedDonation:s=null,onChange:a,onAddDonation:r,currency:i="USD",locale:o="en-US",showCustomAmount:l=!0,minCustomAmount:d=.5,maxCustomAmount:u=1e6,labels:f,mobileColumns:m=2,desktopColumns:x=3,isDisabled:h=!1,buttonVariant:y="bordered",buttonColor:w="default",inputVariant:b="bordered",size:j="md",className:N="",showCard:C=!0})=>{const v={...cc,...f},k=Array.isArray(e)?e:Ns,L={2:"grid-cols-2",3:"grid-cols-3"},A={3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6"},M=`${L[m]} ${A[x]}`,[E,I]=Mt(n,s,a),[$,D]=p.useState(""),[T,_]=p.useState(!1),[Y,B]=p.useState(0),V=p.useCallback(Q=>{if(h)return;const K={amount:Q.amount,isCustom:!1,presetId:Q.id};I(K),D(""),_(!1),B(ee=>ee+1),r?.(K)},[h,I,r]),Z=p.useCallback(Q=>{if(h)return;if(D(Q!==void 0?String(Q):""),r){I(null);return}if(Q===void 0||isNaN(Q)){I(null);return}I({amount:Q,isCustom:!0})},[h,I,r]),J=p.useCallback(()=>{if(h)return;const Q=$!==""?parseFloat($):void 0;Q===void 0||isNaN(Q)||r?.({amount:Q,isCustom:!0})},[h,$,r]),re=p.useMemo(()=>({style:"currency",currency:i,currencyDisplay:"symbol"}),[i]),q=t.jsxs("div",{className:"space-y-4","data-testid":"donation-amounts-root",children:[v.title&&t.jsx("h2",{className:"text-base font-semibold","data-testid":"donation-amounts-title",children:v.title}),k.length>0&&t.jsx("div",{className:c.cn("grid gap-3",M),"data-testid":"donation-amounts-presets",children:k.map(Q=>{const K=E!==null&&!E.isCustom&&E.presetId===Q.id;return t.jsx(H,{color:K?"primary":w,variant:K?"solid":y,className:"w-full",onPress:()=>V(Q),isDisabled:h,"data-testid":`donation-amounts-preset-${Q.id}`,children:Q.label||oc(Q.amount,o,i)},Q.id)})}),l&&t.jsxs("div",{className:"flex gap-3 items-start",children:[t.jsx(c.NumberInput,{placeholder:v.customAmountPlaceholder,"aria-label":v.customAmountAriaLabel,onInput:r?()=>{I(null),_(!0)}:void 0,variant:b,radius:"full",size:j,minValue:d,maxValue:u,step:.01,formatOptions:re,value:$!==""?parseFloat($):void 0,onValueChange:Z,isDisabled:h,className:"flex-1 [&_[data-slot=input-wrapper]]:!h-10 [&_[data-slot=input-wrapper]]:!min-h-10","data-testid":"donation-amounts-custom-input",hideStepper:!0},r?`custom-${Y}`:E?.isCustom===!1?E.presetId:"custom"),r&&t.jsx(H,{color:"primary",variant:"solid",radius:"full",size:j,className:"shrink-0",onPress:J,isDisabled:h||!T,"data-testid":"donation-amounts-add-button",children:v.addDonationButton})]})]});return C?t.jsx(c.Card,{className:c.cn("w-full",N),"data-testid":"donation-amounts-card",children:t.jsx(c.CardBody,{children:q})}):t.jsx("div",{className:c.cn("w-full",N),"data-testid":"donation-amounts-plain",children:q})};za.displayName="DonationAmounts";const dc=e=>{const n=Math.max(0,e),s=Math.floor(n/60).toString().padStart(2,"0"),a=(n%60).toString().padStart(2,"0");return`${s}:${a} minutes`},uc=e=>{switch(e){case"warning":return G.Clock;case"error":return G.AlertCircle;case"success":return G.CheckCircle;default:return G.Clock}},fc=e=>{switch(e){case"primary":return"bg-primary-500";case"secondary":return"bg-gray-700";case"success":return"bg-green-600";case"warning":return"bg-amber-500";case"danger":return"bg-red-600";default:return"bg-primary-500"}},Ba=p.forwardRef(({timeLeft:e,defaultTimeLeft:n=1200,onTimeChange:s,onExpire:a,variant:r="info",color:i="primary",message:o="Your cart expires in:",showIcon:l=!0,icon:d,position:u="fixed",autoStart:f=!0,formatTime:m=dc,className:x,...h},y)=>{const[w,b]=Mt(e!==void 0?Math.max(0,e):void 0,Math.max(0,n),s),j=p.useRef(null),N=p.useRef(!1);p.useEffect(()=>()=>{j.current&&clearInterval(j.current)},[]),p.useEffect(()=>{if(!f||w<=0){j.current&&(clearInterval(j.current),j.current=null);return}return j.current=setInterval(()=>{b(L=>L<=1?(j.current&&(clearInterval(j.current),j.current=null),N.current||(N.current=!0,a?.()),0):L-1)},1e3),()=>{j.current&&(clearInterval(j.current),j.current=null)}},[f,w,b,a]),p.useEffect(()=>{w>0&&(N.current=!1)},[w]);const C=d||uc(r),v=fc(i),k={fixed:"fixed top-0 left-0",sticky:"sticky top-0",static:"static"};return t.jsx("div",{ref:y,role:"banner","aria-live":"polite","aria-label":`${o} ${m(w)}`,"data-testid":"expire-cart-timer",className:c.cn("w-full text-white z-50",v,k[u],x),...h,children:t.jsx("div",{className:"container mx-auto px-4 py-3 sm:py-2.5","data-testid":"expire-cart-timer-container",children:t.jsxs("div",{className:"flex items-center justify-between gap-3 sm:gap-4",children:[t.jsxs("div",{className:"flex items-center gap-3 sm:gap-2.5 flex-1 min-w-0","data-testid":"expire-cart-timer-left",children:[l&&t.jsx("div",{className:"flex-shrink-0 w-[0.875rem] h-[0.875rem] sm:w-4 sm:h-4 rounded-full bg-white flex items-center justify-center overflow-hidden","data-testid":"expire-cart-timer-icon-wrapper",children:t.jsx(C,{className:"text-primary-500 sm:text-primary-600","aria-hidden":"true",size:14,"data-testid":"expire-cart-timer-icon"})}),t.jsx("p",{className:"text-sm sm:text-base font-medium text-white","data-testid":"expire-cart-timer-message",children:o})]}),t.jsx("div",{className:"flex-shrink-0","data-testid":"expire-cart-timer-right",children:t.jsx("span",{className:"text-sm sm:text-base font-semibold text-white","aria-label":`Time remaining: ${m(w)}`,"data-testid":"expire-cart-timer-value",children:m(w)})})]})})})});Ba.displayName="ExpireCartTimer";const Yt=({icon:e,children:n,testId:s})=>t.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600","data-testid":s,children:[t.jsx(R,{icon:e,width:20,className:"text-default-500"}),t.jsx("span",{children:n})]}),mc=({classes:e="",name:n,imageUrl:s,eventDate:a,eventTime:r,location:i,description:o,showImage:l=!1,compact:d=!1,imageLoading:u="eager",showMoreButtonClassName:f,labels:m})=>{const[x,h]=p.useState(!1),[y,w]=p.useState(!1),b=p.useRef(null);return p.useEffect(()=>{const j=()=>{if(b.current){const N=b.current.scrollHeight>b.current.clientHeight;w(N)}};return j(),window.addEventListener("resize",j),()=>window.removeEventListener("resize",j)},[o]),t.jsxs(c.Card,{className:c.cn("border-0 shadow-none",e),"data-testid":"event-details-root",children:[t.jsxs(c.CardHeader,{className:c.cn("pt-2 pb-0 flex-col items-start",d?"space-y-1":"space-y-2"),"data-testid":"event-details-header",children:[l&&s&&t.jsx("div",{className:c.cn("w-full overflow-hidden rounded-xl","aspect-[3/1]"),"data-testid":"event-details-image-wrapper",children:t.jsx(c.Image,{removeWrapper:!0,loading:u,alt:`Event image for ${n}`,className:"w-full h-full object-cover object-center",src:s,"data-testid":"event-details-image"})}),t.jsx("h2",{className:c.cn("font-semibold text-gray-800",d?"text-base":"text-xl"),"data-testid":"event-details-title",children:n})]}),t.jsxs(c.CardBody,{className:c.cn("space-y-3",d?"py-1 space-y-2":"py-3"),"data-testid":"event-details-body",children:[t.jsx("h3",{className:c.cn("font-semibold text-base text-gray-700",d?"text-sm":""),"data-testid":"event-details-info-label",children:m.eventInformation}),t.jsxs("div",{className:"flex flex-wrap gap-4","data-testid":"event-details-info",children:[a&&t.jsx(Yt,{icon:"solar:calendar-minimalistic-linear",testId:"event-details-date",children:a}),r&&t.jsx(Yt,{icon:"solar:clock-circle-linear",testId:"event-details-time",children:r}),i&&t.jsx(Yt,{icon:"solar:map-point-linear",testId:"event-details-location",children:i})]}),o&&t.jsxs("div",{className:"relative","data-testid":"event-details-description-wrapper",children:[t.jsxs("div",{className:"relative",children:[t.jsx("div",{ref:b,className:c.cn("text-sm text-gray-700 leading-relaxed transition-all",d?"text-xs":"",!x&&"line-clamp-3"),"data-testid":"event-details-description",dangerouslySetInnerHTML:{__html:o}}),!x&&y&&t.jsx("div",{className:"absolute inset-x-0 -bottom-1 h-8 bg-gradient-to-t from-white via-white/70 to-transparent pointer-events-none","data-testid":"event-details-description-fade"})]}),(y||x)&&t.jsx("div",{className:"flex justify-end mt-1",children:t.jsx(H,{onPress:()=>h(!x),variant:"light",className:c.cn("text-primary",f),size:d?"sm":"md",startContent:t.jsx(R,{icon:x?"solar:eye-closed-linear":"solar:eye-linear",width:d?16:20}),"data-testid":"event-details-toggle-description",children:x?m.showLess||"Hide":m.showMore||"Show"})})]})]})]})};function hn(e,n="en-US",s="USD"){try{return new Intl.NumberFormat(n,{style:"currency",currency:s,minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}catch(a){return console.warn(`Invalid currency formatting: ${a}`),`${s} ${e.toFixed(2)}`}}function hc(e){const n=e.replace(/[^\d.,-]/g,""),s=n.match(/,\d{1,2}$/);let a;s?a=n.replace(/\./g,"").replace(",","."):a=n.replace(/,/g,"");const r=parseFloat(a);return isNaN(r)?null:r}const xc={person:"Person",people:"People",tickets:"Tickets:",soldOut:"Sold Out",maxReached:"Maximum number of tickets allowed reached",ruleBlocked:"Unavailable for selected ticket options",disabled:"Ticket selection is unavailable"},Ge=e=>typeof e=="number"&&!isNaN(e),Nt=({offer:e,quantity:n,defaultQuantity:s=0,onQuantityChange:a,currency:r="USD",locale:i="en-US",labels:o,slots:l,isDisabled:d=!1,buttonVariant:u="bordered",buttonColor:f="default",showCard:m=!0,showDescription:x=!0,showPeopleCount:h=!0,showPrice:y=!0,priceDisplay:w,classNames:b={},"data-testid":j,selectedColor:N="default",compact:C=!1,isSoldOut:v,isMaxReached:k,isRuleBlocked:L,statusTone:A="default",statusLabel:M,disabledReason:E,disabled:I})=>{const $=p.useMemo(()=>({...xc,...o}),[o]),[D,T]=p.useState(s),_=n!==void 0?n:D,Y=!!(d||I),B=C||!!e.compact,V=p.useMemo(()=>typeof v=="boolean"?v:typeof e.isSoldOut=="boolean"?e.isSoldOut:!Ge(e.totalTicketsSold)||!Ge(e.ticketsAllowed)?!1:e.totalTicketsSold>=e.ticketsAllowed,[v,e.isSoldOut,e.totalTicketsSold,e.ticketsAllowed]),Z=p.useMemo(()=>typeof k=="boolean"?k:typeof e.isMaxReached=="boolean"?e.isMaxReached:V||!Ge(e.ticketsAllowed)?!1:_>=e.ticketsAllowed-(e.totalTicketsSold??0),[k,e.isMaxReached,V,e.ticketsAllowed,e.totalTicketsSold,_]),J=p.useMemo(()=>typeof L=="boolean"?L:typeof e.isRuleBlocked=="boolean"?e.isRuleBlocked:!1,[L,e.isRuleBlocked]),re=E||e.disabledReason,q=Y||V||J,Q=ne=>{if(q||ne>0&&Z)return;const xe=Math.max(0,_+ne);n===void 0&&T(xe),a?.(e.id,xe)},K=p.useMemo(()=>{if(V)return"soldOut";if(J)return"ruleBlocked";if(Y)return"disabled"},[V,J,Y]),ee=p.useMemo(()=>A||(V||J?"danger":Z?"warning":"default"),[A,V,J,Z]),oe=p.useMemo(()=>{if(K)return K==="ruleBlocked"?M||re||$.ruleBlocked:K==="soldOut"?M||re||$.soldOut:K==="disabled"?M||re||$.disabled:M||$.maxReached},[K,M,re,$]),X={soldOut:"danger",ruleBlocked:ee,disabled:"default",maxReached:"warning"},ue={soldOut:"offer-card-sold-out-chip",maxReached:"offer-card-max-reached-chip",ruleBlocked:"offer-card-ruleBlocked-chip",disabled:"offer-card-disabled-chip"},te=()=>l?.renderName?l.renderName(e.name,e):t.jsx("h2",{"data-testid":"offer-card-name",className:c.cn("text-base font-medium",B&&"text-sm",b.name),children:e.name}),ye=()=>{if(!y)return null;const ne=w?.price??e.price,xe=w?.originalPrice,Te=hn(ne,i,r);if(l?.renderPrice)return l.renderPrice(ne,Te,e);if(Ge(xe)&&Ge(ne)&&xe>ne){const ge=hn(xe,i,r);return t.jsxs("div",{"data-testid":"offer-card-price",className:c.cn("flex items-center gap-2 mt-1",B&&"mt-0.5",b.price),children:[t.jsxs("span",{className:"sr-only",children:["Original price ",ge,", discounted price ",Te]}),t.jsx("span",{"aria-hidden":"true","data-testid":"offer-card-original-price",className:c.cn("text-gray-400 line-through text-sm",B&&"text-xs",b.originalPrice),children:ge}),t.jsx("span",{"aria-hidden":"true","data-testid":"offer-card-discounted-price",className:c.cn("text-primary text-base font-semibold",B&&"text-sm",b.discountedPrice),children:Te})]})}return t.jsx("p",{"data-testid":"offer-card-price",className:c.cn("text-primary text-base mt-1",B&&"text-sm mt-0.5",b.price),children:Te})},De=()=>!x||!e.description?null:l?.renderDescription?l.renderDescription(e.description,e):t.jsx("p",{"data-testid":"offer-card-description",className:c.cn("mb-4 text-sm text-gray-700 leading-relaxed",B&&"mb-2 text-xs text-gray-600",b.description),children:e.description}),ke=()=>{if(!h||!Ge(e.numberOfPeople)||e.numberOfPeople<=0)return null;const ne=e.numberOfPeople===1?$.person:$.people;return l?.renderPeopleCount?l.renderPeopleCount(e.numberOfPeople,ne,e):t.jsxs("p",{"data-testid":"offer-card-people-count",className:c.cn("text-sm text-gray-600 flex items-center mt-2",B&&"mt-1 text-xs",b.peopleCount),children:[t.jsx(R,{icon:e.numberOfPeople<=1?"solar:user-rounded-outline":"solar:users-group-rounded-outline",width:20,className:"mr-1"}),e.numberOfPeople," ",ne]})},Pe=()=>{const ne=_===0||q,xe=Z||q;return l?.renderQuantitySelector?l.renderQuantitySelector({quantity:_,onIncrement:()=>Q(1),onDecrement:()=>Q(-1),isDecrementDisabled:ne,isIncrementDisabled:xe,isDisabled:q}):t.jsxs("div",{className:c.cn("flex items-center gap-2",b.quantitySelector),children:[t.jsx(H,{"data-testid":"offer-card-decrement-button",onPress:()=>Q(-1),isDisabled:ne,variant:u,color:_>0?N:f,radius:"full",isIconOnly:!0,size:B?"md":"sm","aria-label":"Decrease quantity",children:t.jsx(R,{icon:"gravity-ui:minus",width:16})}),t.jsx("span",{"data-testid":"offer-card-quantity",className:c.cn("min-w-[2rem] text-center font-medium",B&&"text-sm"),children:_}),t.jsx(H,{"data-testid":"offer-card-increment-button",onPress:()=>Q(1),isDisabled:xe,variant:u,color:_>0?N:f,radius:"full",isIconOnly:!0,size:B?"md":"sm","aria-label":"Increase quantity",children:t.jsx(R,{icon:"gravity-ui:plus",width:16})})]})},Oe=(ne,xe)=>l?.renderDisabledState?l.renderDisabledState(ne,xe):ne==="soldOut"&&l?.renderSoldOut?l.renderSoldOut(xe):ne==="maxReached"&&l?.renderMaxReachedAlert?l.renderMaxReachedAlert(xe):t.jsx(c.Chip,{"data-testid":ue[ne],color:X[ne],variant:ne==="maxReached"?"flat":"solid",className:c.cn("gap-2 px-4",ne==="maxReached"?"h-8":"h-10",ne==="soldOut"&&b.soldOut,ne==="maxReached"&&b.maxReachedAlert,B&&"h-8"),startContent:t.jsx(R,{icon:"gravity-ui:triangle-exclamation-fill",width:14}),children:t.jsx("span",{className:"font-medium text-sm",children:xe})}),Ve=t.jsxs("div",{className:c.cn("grid grid-cols-1 md:grid-cols-1 xl:grid-cols-3 lg:grid-cols-3 items-start",B?"gap-1":"gap-2"),children:[t.jsxs("div",{className:c.cn("h-full col-span-2",q||Z?"opacity-50 pointer-events-none select-none":""),children:[te(),ye(),t.jsxs("div",{className:c.cn("md:col-span-1 xl:col-span-2 lg:col-span-1",B?"mb-1":"mb-2"),children:[ke(),De()]})]}),t.jsx("div",{className:c.cn("space-x-2 pt-0 pb-2 md:p-2 h-full flex items-center justify-start md:justify-start lg:justify-end",B&&"space-x-1 pb-1 md:p-1",b.compactFooter),children:K&&oe?Oe(K,oe):Pe()})]}),Me=Z&&!V&&!J&&!Y?t.jsx(Ce.motion.div,{className:c.cn("w-full sm:max-w-[60%] md:max-w-[60%] lg:max-w-[60%]",b.compactFooter),initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.3},children:Oe("maxReached",oe||$.maxReached)}):null;return m?t.jsxs(c.Card,{className:c.cn("w-full",B&&b.compact,b.base),"data-testid":j||`offer-card-${e.id}`,children:[t.jsx(c.CardBody,{className:c.cn("pt-1 pb-0",B?"pb-0.5":"",b.body),children:Ve}),t.jsx(Ce.AnimatePresence,{children:Me&&t.jsx(c.CardFooter,{className:c.cn("w-full mt-0 pt-0",B?"pt-1":"",b.footer),children:Me})})]}):t.jsxs("div",{className:c.cn("w-full",B&&b.compact,b.base),"data-testid":j||`offer-card-${e.id}`,children:[t.jsx("div",{className:c.cn("pt-1 pb-0",B?"pb-0.5":"",b.body),children:Ve}),t.jsx(Ce.AnimatePresence,{children:Me&&t.jsx("div",{className:c.cn("w-full mt-0 pt-0",B?"pt-1":"",b.footer),children:Me})})]})};Nt.displayName="OfferCard";const Va=({message:e="No offers available.",icon:n="solar:ticket-sale-outline",iconSize:s=48,showCard:a=!0,classNames:r={},renderEmpty:i})=>{if(i){const l=i();return a?t.jsx(c.Card,{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{"data-testid":"offer-card-empty-body",children:l})}):t.jsx("div",{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:l})}const o=t.jsxs("div",{"data-testid":"offer-card-empty-content",className:c.cn("flex flex-col items-center justify-center p-8 text-center text-gray-500",r.content),children:[t.jsx(R,{"data-testid":"offer-card-empty-icon",icon:n,width:s,className:c.cn("mb-4",r.icon)}),t.jsx("h3",{"data-testid":"offer-card-empty-message",className:c.cn("text-lg",r.message),children:e})]});return a?t.jsx(c.Card,{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{"data-testid":"offer-card-empty-body",children:o})}):t.jsx("div",{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:o})};Va.displayName="OfferCardEmpty";const pc={title:"Error Fetching Offers",description:"An error occurred while fetching offers."},Ua=({error:e,labels:n,showCard:s=!0,color:a="danger",classNames:r={}})=>{const i={...pc,...n},o=t.jsx(c.Alert,{"data-testid":"offer-card-error-alert",color:a,title:i.title,description:e||i.description,className:r.alert});return s?t.jsx(c.Card,{"data-testid":"offer-card-error",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{"data-testid":"offer-card-error-body",children:o})}):t.jsx("div",{"data-testid":"offer-card-error",className:c.cn("w-full",r.base),children:o})};Ua.displayName="OfferCardError";const gc={1:"space-y-1",2:"space-y-2",3:"space-y-3",4:"space-y-4",5:"space-y-5",6:"space-y-6"},Ha=({quantity:e=2,gap:n=4,classNames:s={}})=>{const a=gc[n];return t.jsx("div",{"data-testid":"offer-card-skeleton-container",className:c.cn(a,s.base),children:Array.from({length:e}).map((r,i)=>t.jsxs(c.Card,{"data-testid":`offer-card-skeleton-${i}`,className:c.cn("w-full",s.card),children:[t.jsx(c.CardHeader,{"data-testid":`offer-card-skeleton-header-${i}`,className:"flex justify-between items-start pb-0",children:t.jsxs("div",{className:"space-y-2 w-full",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-title-${i}`,className:"w-1/3 rounded-lg",children:t.jsx("div",{className:"h-4 bg-default-200 rounded-lg"})}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-subtitle-${i}`,className:"w-1/4 rounded-lg",children:t.jsx("div",{className:"h-3 bg-default-300 rounded-lg"})})]})}),t.jsx(c.CardBody,{"data-testid":`offer-card-skeleton-body-${i}`,className:"pt-2 pb-0",children:t.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-3 gap-2 items-start",children:[t.jsxs("div",{className:"xl:col-span-2 space-y-2",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-people-${i}`,className:"w-1/4 rounded-lg",children:t.jsx("div",{className:"h-4 bg-default-300 rounded-lg"})}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-description-${i}`,className:"w-3/4 rounded-lg",children:t.jsx("div",{className:"h-4 bg-default-200 rounded-lg"})})]}),t.jsx("div",{className:"flex items-start justify-end",children:t.jsxs("div",{"data-testid":`offer-card-skeleton-controls-${i}`,className:"flex items-center justify-end gap-2 w-full px-4 py-2",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-label-${i}`,className:"w-24 h-4 rounded-md bg-default-200"}),t.jsxs("div",{className:"flex gap-2",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-btn-dec-${i}`,className:"w-8 h-8 rounded-md bg-default-300"}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-btn-qty-${i}`,className:"w-8 h-8 rounded-md bg-default-200"}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-btn-inc-${i}`,className:"w-8 h-8 rounded-md bg-default-300"})]})]})})]})})]},i))})};Ha.displayName="OfferCardSkeleton";const qa={hidden:{opacity:0},show:{opacity:1,transition:{staggerChildren:.15,delayChildren:.1}}},Wa={hidden:{opacity:0,y:8},show:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}},exit:{opacity:0,y:-5,transition:{duration:.35,ease:"easeIn"}}},bc={1:"gap-1",2:"gap-2",3:"gap-3",4:"gap-4",5:"gap-5",6:"gap-6"},Ya=({offers:e=[],mapOffer:n,selection:s,defaultSelection:a={},onSelectionChange:r,onQuantityChange:i,currency:o="USD",locale:l="en-US",labels:d,slots:u,isDisabled:f=!1,buttonVariant:m="bordered",buttonColor:x="default",showCard:h=!0,animated:y=!0,gap:w=2,compact:b=!1,classNames:j={}})=>{const[N,C]=p.useState(a),v=s!==void 0?s:N,k=p.useCallback(($,D)=>{const T={...v,[$]:Math.max(0,D)};s===void 0&&C(T),r?.(T),i?.($,T[$])},[v,s,r,i]),L=[...e].sort(($,D)=>($.position??0)-(D.position??0)),A=$=>{const D=n?n($):$,T=(v??{})[D.id]||0;return{offer:D,quantity:T,onQuantityChange:k,currency:o,locale:l,labels:d,slots:u,isDisabled:f,buttonVariant:m,buttonColor:x,showCard:h,compact:b}},M=bc[w],E=c.cn("grid mx-auto pt-2",M,j.base),I=$=>{const D=A($);return t.jsx(Nt,{offer:D.offer,quantity:D.quantity,onQuantityChange:D.onQuantityChange,currency:D.currency,locale:D.locale,labels:D.labels,slots:D.slots,isDisabled:D.isDisabled,buttonVariant:D.buttonVariant,buttonColor:D.buttonColor,showCard:D.showCard,compact:D.compact,classNames:j.card},D.offer.id)};return y?t.jsx(Ce.motion.div,{"data-testid":"offer-card-list",className:E,variants:qa,initial:"hidden",animate:"show",children:t.jsx(Ce.AnimatePresence,{children:L.map($=>{const D=A($);return t.jsx(Ce.motion.div,{"data-testid":`offer-card-list-item-${D.offer.id}`,className:j.cardWrapper,variants:Wa,exit:{opacity:0,y:-20},transition:{duration:.3},children:t.jsx(Nt,{offer:D.offer,quantity:D.quantity,onQuantityChange:k,currency:o,locale:l,labels:d,slots:u,isDisabled:f,buttonVariant:m,buttonColor:x,showCard:h,compact:b||D.offer.compact,classNames:j.card})},D.offer.id)})})}):t.jsx("div",{"data-testid":"offer-card-list",className:E,children:L.map(I)})};Ya.displayName="OfferCardList";var ft=e=>e.type==="checkbox",We=e=>e instanceof Date,Se=e=>e==null;const Ga=e=>typeof e=="object";var he=e=>!Se(e)&&!Array.isArray(e)&&Ga(e)&&!We(e),Ka=e=>he(e)&&e.target?ft(e.target)?e.target.checked:e.target.value:e,yc=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Qa=(e,n)=>e.has(yc(n)),vc=e=>{const n=e.constructor&&e.constructor.prototype;return he(n)&&n.hasOwnProperty("isPrototypeOf")},Mn=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function fe(e){if(e instanceof Date)return new Date(e);const n=typeof FileList<"u"&&e instanceof FileList;if(Mn&&(e instanceof Blob||n))return e;const s=Array.isArray(e);if(!s&&!(he(e)&&vc(e)))return e;const a=s?[]:Object.create(Object.getPrototypeOf(e));for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(a[r]=fe(e[r]));return a}var Tt=e=>/^\w*$/.test(e),ce=e=>e===void 0,Ln=e=>Array.isArray(e)?e.filter(Boolean):[],Tn=e=>Ln(e.replace(/["|']|\]/g,"").split(/\.|\[/)),z=(e,n,s)=>{if(!n||!he(e))return s;const a=(Tt(n)?[n]:Tn(n)).reduce((r,i)=>Se(r)?r:r[i],e);return ce(a)||a===e?ce(e[n])?s:e[n]:a},Ae=e=>typeof e=="boolean",Ne=e=>typeof e=="function",ie=(e,n,s)=>{let a=-1;const r=Tt(n)?[n]:Tn(n),i=r.length,o=i-1;for(;++a<i;){const l=r[a];let d=s;if(a!==o){const u=e[l];d=he(u)||Array.isArray(u)?u:isNaN(+r[a+1])?{}:[]}if(l==="__proto__"||l==="constructor"||l==="prototype")return;e[l]=d,e=e[l]}};const Ct={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},Ee={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Ie={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Za=p.createContext(null);Za.displayName="HookFormControlContext";const In=()=>p.useContext(Za);var Xa=(e,n,s,a=!0)=>{const r={defaultValues:n._defaultValues};for(const i in e)Object.defineProperty(r,i,{get:()=>{const o=i;return n._proxyFormState[o]!==Ee.all&&(n._proxyFormState[o]=!a||Ee.all),s&&(s[o]=!0),e[o]}});return r};const _n=typeof window<"u"?p.useLayoutEffect:p.useEffect;function jc(e){const n=In(),{control:s=n,disabled:a,name:r,exact:i}=e||{},[o,l]=p.useState(s._formState),d=p.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return _n(()=>s._subscribe({name:r,formState:d.current,exact:i,callback:u=>{!a&&l({...s._formState,...u})}}),[r,a,i]),p.useEffect(()=>{d.current.isValid&&s._setValid(!0)},[s]),p.useMemo(()=>Xa(o,s,d.current,!1),[o,s])}var $e=e=>typeof e=="string",xn=(e,n,s,a,r)=>$e(e)?(a&&n.watch.add(e),z(s,e,r)):Array.isArray(e)?e.map(i=>(a&&n.watch.add(i),z(s,i))):(a&&(n.watchAll=!0),s),pn=e=>Se(e)||!Ga(e);function Fe(e,n,s=new WeakSet){if(pn(e)||pn(n))return Object.is(e,n);if(We(e)&&We(n))return Object.is(e.getTime(),n.getTime());const a=Object.keys(e),r=Object.keys(n);if(a.length!==r.length)return!1;if(s.has(e)||s.has(n))return!0;s.add(e),s.add(n);for(const i of a){const o=e[i];if(!r.includes(i))return!1;if(i!=="ref"){const l=n[i];if(We(o)&&We(l)||he(o)&&he(l)||Array.isArray(o)&&Array.isArray(l)?!Fe(o,l,s):!Object.is(o,l))return!1}}return!0}function wc(e){const n=In(),{control:s=n,name:a,defaultValue:r,disabled:i,exact:o,compute:l}=e||{},d=p.useRef(r),u=p.useRef(l),f=p.useRef(void 0),m=p.useRef(s),x=p.useRef(a);u.current=l;const[h,y]=p.useState(()=>{const v=s._getWatch(a,d.current);return u.current?u.current(v):v}),w=p.useCallback(v=>{const k=xn(a,s._names,v||s._formValues,!1,d.current);return u.current?u.current(k):k},[s._formValues,s._names,a]),b=p.useCallback(v=>{if(!i){const k=xn(a,s._names,v||s._formValues,!1,d.current);if(u.current){const L=u.current(k);Fe(L,f.current)||(y(L),f.current=L)}else y(k)}},[s._formValues,s._names,i,a]);_n(()=>((m.current!==s||!Fe(x.current,a))&&(m.current=s,x.current=a,b()),s._subscribe({name:a,formState:{values:!0},exact:o,callback:v=>{b(v.values)}})),[s,o,a,b]),p.useEffect(()=>s._removeUnmounted());const j=m.current!==s,N=x.current,C=p.useMemo(()=>{if(i)return null;const v=!j&&!Fe(N,a);return j||v?w():null},[i,j,a,N,w]);return C!==null?C:h}function Nc(e){const n=In(),{name:s,disabled:a,control:r=n,shouldUnregister:i,defaultValue:o,exact:l=!0}=e,d=Qa(r._names.array,s),u=p.useMemo(()=>z(r._formValues,s,z(r._defaultValues,s,o)),[r,s,o]),f=wc({control:r,name:s,defaultValue:u,exact:l}),m=jc({control:r,name:s,exact:l}),x=p.useRef(e),h=p.useRef(void 0),y=p.useRef(r.register(s,{...e.rules,value:f,...Ae(e.disabled)?{disabled:e.disabled}:{}}));x.current=e;const w=p.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!z(m.errors,s)},isDirty:{enumerable:!0,get:()=>!!z(m.dirtyFields,s)},isTouched:{enumerable:!0,get:()=>!!z(m.touchedFields,s)},isValidating:{enumerable:!0,get:()=>!!z(m.validatingFields,s)},error:{enumerable:!0,get:()=>z(m.errors,s)}}),[m,s]),b=p.useCallback(v=>y.current.onChange({target:{value:Ka(v),name:s},type:Ct.CHANGE}),[s]),j=p.useCallback(()=>y.current.onBlur({target:{value:z(r._formValues,s),name:s},type:Ct.BLUR}),[s,r._formValues]),N=p.useCallback(v=>{const k=z(r._fields,s);k&&k._f&&v&&(k._f.ref={focus:()=>Ne(v.focus)&&v.focus(),select:()=>Ne(v.select)&&v.select(),setCustomValidity:L=>Ne(v.setCustomValidity)&&v.setCustomValidity(L),reportValidity:()=>Ne(v.reportValidity)&&v.reportValidity()})},[r._fields,s]),C=p.useMemo(()=>({name:s,value:f,...Ae(a)||m.disabled?{disabled:m.disabled||a}:{},onChange:b,onBlur:j,ref:N}),[s,a,m.disabled,b,j,N,f]);return p.useEffect(()=>{const v=r._options.shouldUnregister||i,k=h.current;k&&k!==s&&!d&&r.unregister(k),r.register(s,{...x.current.rules,...Ae(x.current.disabled)?{disabled:x.current.disabled}:{}});const L=(A,M)=>{const E=z(r._fields,A);E&&E._f&&(E._f.mount=M)};if(L(s,!0),v){const A=fe(z(r._options.defaultValues,s,x.current.defaultValue));ie(r._defaultValues,s,A),ce(z(r._formValues,s))&&ie(r._formValues,s,A)}return!d&&r.register(s),h.current=s,()=>{(d?v&&!r._state.action:v)?r.unregister(s):L(s,!1)}},[s,r,d,i]),p.useEffect(()=>{r._setDisabledField({disabled:a,name:s})},[a,s,r]),p.useMemo(()=>({field:C,formState:m,fieldState:w}),[C,m,w])}const Cc=p.createContext(null);Cc.displayName="HookFormContext";var kc=(e,n,s,a,r)=>n?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[a]:r||!0}}:{},lt=e=>Array.isArray(e)?e:[e],Cs=()=>{let e=[];return{get observers(){return e},next:r=>{for(const i of e)i.next&&i.next(r)},subscribe:r=>(e.push(r),{unsubscribe:()=>{e=e.filter(i=>i!==r)}}),unsubscribe:()=>{e=[]}}};function Ja(e,n){const s={};for(const a in e)if(e.hasOwnProperty(a)){const r=e[a],i=n[a];if(r&&he(r)&&i){const o=Ja(r,i);he(o)&&(s[a]=o)}else e[a]&&(s[a]=i)}return s}var we=e=>he(e)&&!Object.keys(e).length,Pn=e=>e.type==="file",kt=e=>{if(!Mn)return!1;const n=e?e.ownerDocument:0;return e instanceof(n&&n.defaultView?n.defaultView.HTMLElement:HTMLElement)},er=e=>e.type==="select-multiple",On=e=>e.type==="radio",Sc=e=>On(e)||ft(e),Gt=e=>kt(e)&&e.isConnected;function Ac(e,n){const s=n.slice(0,-1).length;let a=0;for(;a<s;)e=ce(e)?a++:e[n[a++]];return e}function $c(e){for(const n in e)if(e.hasOwnProperty(n)&&!ce(e[n]))return!1;return!0}function me(e,n){const s=Array.isArray(n)?n:Tt(n)?[n]:Tn(n),a=s.length===1?e:Ac(e,s),r=s.length-1,i=s[r];return a&&delete a[i],r!==0&&(he(a)&&we(a)||Array.isArray(a)&&$c(a))&&me(e,s.slice(0,-1)),e}var Dc=e=>{for(const n in e)if(Ne(e[n]))return!0;return!1};function tr(e){return Array.isArray(e)||he(e)&&!Dc(e)}function gn(e,n={}){for(const s in e){const a=e[s];tr(a)?(n[s]=Array.isArray(a)?[]:{},gn(a,n[s])):ce(a)||(n[s]=!0)}return n}function Ze(e,n,s){s||(s=gn(n));for(const a in e){const r=e[a];if(tr(r))ce(n)||pn(s[a])?s[a]=gn(r,Array.isArray(r)?[]:{}):Ze(r,Se(n)?{}:n[a],s[a]);else{const i=n[a];s[a]=!Fe(r,i)}}return s}const ks={value:!1,isValid:!1},Ss={value:!0,isValid:!0};var nr=e=>{if(Array.isArray(e)){if(e.length>1){const n=e.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:n,isValid:!!n.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ce(e[0].attributes.value)?ce(e[0].value)||e[0].value===""?Ss:{value:e[0].value,isValid:!0}:Ss:ks}return ks},sr=(e,{valueAsNumber:n,valueAsDate:s,setValueAs:a})=>ce(e)?e:n?e===""?NaN:e&&+e:s&&$e(e)?new Date(e):a?a(e):e;const As={isValid:!1,value:null};var ar=e=>Array.isArray(e)?e.reduce((n,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:n,As):As;function $s(e){const n=e.ref;return Pn(n)?n.files:On(n)?ar(e.refs).value:er(n)?[...n.selectedOptions].map(({value:s})=>s):ft(n)?nr(e.refs).value:sr(ce(n.value)?e.ref.value:n.value,e)}var Ec=(e,n,s,a)=>{const r={};for(const i of e){const o=z(n,i);o&&ie(r,i,o._f)}return{criteriaMode:s,names:[...e],fields:r,shouldUseNativeValidation:a}},St=e=>e instanceof RegExp,at=e=>ce(e)?e:St(e)?e.source:he(e)?St(e.value)?e.value.source:e.value:e,Ds=e=>({isOnSubmit:!e||e===Ee.onSubmit,isOnBlur:e===Ee.onBlur,isOnChange:e===Ee.onChange,isOnAll:e===Ee.all,isOnTouch:e===Ee.onTouched});const Es="AsyncFunction";var Fc=e=>!!e&&!!e.validate&&!!(Ne(e.validate)&&e.validate.constructor.name===Es||he(e.validate)&&Object.values(e.validate).find(n=>n.constructor.name===Es)),Mc=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Fs=(e,n,s)=>!s&&(n.watchAll||n.watch.has(e)||[...n.watch].some(a=>e.startsWith(a)&&/^\.\w+/.test(e.slice(a.length))));const ot=(e,n,s,a)=>{for(const r of s||Object.keys(e)){const i=z(e,r);if(i){const{_f:o,...l}=i;if(o){if(o.refs&&o.refs[0]&&n(o.refs[0],r)&&!a)return!0;if(o.ref&&n(o.ref,o.name)&&!a)return!0;if(ot(l,n))break}else if(he(l)&&ot(l,n))break}}};function Ms(e,n,s){const a=z(e,s);if(a||Tt(s))return{error:a,name:s};const r=s.split(".");for(;r.length;){const i=r.join("."),o=z(n,i),l=z(e,i);if(o&&!Array.isArray(o)&&s!==i)return{name:s};if(l&&l.type)return{name:i,error:l};if(l&&l.root&&l.root.type)return{name:`${i}.root`,error:l.root};r.pop()}return{name:s}}var Lc=(e,n,s,a)=>{s(e);const{name:r,...i}=e;return we(i)||Object.keys(i).length>=Object.keys(n).length||Object.keys(i).find(o=>n[o]===(!a||Ee.all))},Tc=(e,n,s)=>!e||!n||e===n||lt(e).some(a=>a&&(s?a===n:a.startsWith(n)||n.startsWith(a))),Ic=(e,n,s,a,r)=>r.isOnAll?!1:!s&&r.isOnTouch?!(n||e):(s?a.isOnBlur:r.isOnBlur)?!e:(s?a.isOnChange:r.isOnChange)?e:!0,_c=(e,n)=>!Ln(z(e,n)).length&&me(e,n),Pc=(e,n,s)=>{const a=lt(z(e,s));return ie(a,"root",n[s]),ie(e,s,a),e};function Ls(e,n,s="validate"){if($e(e)||Array.isArray(e)&&e.every($e)||Ae(e)&&!e)return{type:s,message:$e(e)?e:"",ref:n}}var Ke=e=>he(e)&&!St(e)?e:{value:e,message:""},Ts=async(e,n,s,a,r,i)=>{const{ref:o,refs:l,required:d,maxLength:u,minLength:f,min:m,max:x,pattern:h,validate:y,name:w,valueAsNumber:b,mount:j}=e._f,N=z(s,w);if(!j||n.has(w))return{};const C=l?l[0]:o,v=D=>{r&&C.reportValidity&&(C.setCustomValidity(Ae(D)?"":D||""),C.reportValidity())},k={},L=On(o),A=ft(o),M=L||A,E=(b||Pn(o))&&ce(o.value)&&ce(N)||kt(o)&&o.value===""||N===""||Array.isArray(N)&&!N.length,I=kc.bind(null,w,a,k),$=(D,T,_,Y=Ie.maxLength,B=Ie.minLength)=>{const V=D?T:_;k[w]={type:D?Y:B,message:V,ref:o,...I(D?Y:B,V)}};if(i?!Array.isArray(N)||!N.length:d&&(!M&&(E||Se(N))||Ae(N)&&!N||A&&!nr(l).isValid||L&&!ar(l).isValid)){const{value:D,message:T}=$e(d)?{value:!!d,message:d}:Ke(d);if(D&&(k[w]={type:Ie.required,message:T,ref:C,...I(Ie.required,T)},!a))return v(T),k}if(!E&&(!Se(m)||!Se(x))){let D,T;const _=Ke(x),Y=Ke(m);if(!Se(N)&&!isNaN(N)){const B=o.valueAsNumber||N&&+N;Se(_.value)||(D=B>_.value),Se(Y.value)||(T=B<Y.value)}else{const B=o.valueAsDate||new Date(N),V=re=>new Date(new Date().toDateString()+" "+re),Z=o.type=="time",J=o.type=="week";$e(_.value)&&N&&(D=Z?V(N)>V(_.value):J?N>_.value:B>new Date(_.value)),$e(Y.value)&&N&&(T=Z?V(N)<V(Y.value):J?N<Y.value:B<new Date(Y.value))}if((D||T)&&($(!!D,_.message,Y.message,Ie.max,Ie.min),!a))return v(k[w].message),k}if((u||f)&&!E&&($e(N)||i&&Array.isArray(N))){const D=Ke(u),T=Ke(f),_=!Se(D.value)&&N.length>+D.value,Y=!Se(T.value)&&N.length<+T.value;if((_||Y)&&($(_,D.message,T.message),!a))return v(k[w].message),k}if(h&&!E&&$e(N)){const{value:D,message:T}=Ke(h);if(St(D)&&!N.match(D)&&(k[w]={type:Ie.pattern,message:T,ref:o,...I(Ie.pattern,T)},!a))return v(T),k}if(y){if(Ne(y)){const D=await y(N,s),T=Ls(D,C);if(T&&(k[w]={...T,...I(Ie.validate,T.message)},!a))return v(T.message),k}else if(he(y)){let D={};for(const T in y){if(!we(D)&&!a)break;const _=Ls(await y[T](N,s),C,T);_&&(D={..._,...I(T,_.message)},v(_.message),a&&(k[w]=D))}if(!we(D)&&(k[w]={ref:C,...D},!a))return k}}return v(!0),k};const Oc={mode:Ee.onSubmit,reValidateMode:Ee.onChange,shouldFocusError:!0};function Rc(e={}){let n={...Oc,...e},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:Ne(n.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:n.errors||{},disabled:n.disabled||!1},a={},r=he(n.defaultValues)||he(n.values)?fe(n.defaultValues||n.values)||{}:{},i=n.shouldUnregister?{}:fe(r),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},d,u=0;const f={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={...f};let x={...m};const h={array:Cs(),state:Cs()},y=n.criteriaMode===Ee.all,w=g=>S=>{clearTimeout(u),u=setTimeout(g,S)},b=async g=>{if(!o.keepIsValid&&!n.disabled&&(m.isValid||x.isValid||g)){let S;n.resolver?(S=we((await M()).errors),j()):S=await I(a,!0),S!==s.isValid&&h.state.next({isValid:S})}},j=(g,S)=>{!n.disabled&&(m.isValidating||m.validatingFields||x.isValidating||x.validatingFields)&&((g||Array.from(l.mount)).forEach(F=>{F&&(S?ie(s.validatingFields,F,S):me(s.validatingFields,F))}),h.state.next({validatingFields:s.validatingFields,isValidating:!we(s.validatingFields)}))},N=(g,S=[],F,U,O=!0,P=!0)=>{if(U&&F&&!n.disabled){if(o.action=!0,P&&Array.isArray(z(a,g))){const W=F(z(a,g),U.argA,U.argB);O&&ie(a,g,W)}if(P&&Array.isArray(z(s.errors,g))){const W=F(z(s.errors,g),U.argA,U.argB);O&&ie(s.errors,g,W),_c(s.errors,g)}if((m.touchedFields||x.touchedFields)&&P&&Array.isArray(z(s.touchedFields,g))){const W=F(z(s.touchedFields,g),U.argA,U.argB);O&&ie(s.touchedFields,g,W)}(m.dirtyFields||x.dirtyFields)&&(s.dirtyFields=Ze(r,i)),h.state.next({name:g,isDirty:D(g,S),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else ie(i,g,S)},C=(g,S)=>{ie(s.errors,g,S),h.state.next({errors:s.errors})},v=g=>{s.errors=g,h.state.next({errors:s.errors,isValid:!1})},k=(g,S,F,U)=>{const O=z(a,g);if(O){const P=z(i,g,ce(F)?z(r,g):F);ce(P)||U&&U.defaultChecked||S?ie(i,g,S?P:$s(O._f)):Y(g,P),o.mount&&!o.action&&b()}},L=(g,S,F,U,O)=>{let P=!1,W=!1;const se={name:g};if(!n.disabled){if(!F||U){(m.isDirty||x.isDirty)&&(W=s.isDirty,s.isDirty=se.isDirty=D(),P=W!==se.isDirty);const ae=Fe(z(r,g),S);W=!!z(s.dirtyFields,g),ae?me(s.dirtyFields,g):ie(s.dirtyFields,g,!0),se.dirtyFields=s.dirtyFields,P=P||(m.dirtyFields||x.dirtyFields)&&W!==!ae}if(F){const ae=z(s.touchedFields,g);ae||(ie(s.touchedFields,g,F),se.touchedFields=s.touchedFields,P=P||(m.touchedFields||x.touchedFields)&&ae!==F)}P&&O&&h.state.next(se)}return P?se:{}},A=(g,S,F,U)=>{const O=z(s.errors,g),P=(m.isValid||x.isValid)&&Ae(S)&&s.isValid!==S;if(n.delayError&&F?(d=w(()=>C(g,F)),d(n.delayError)):(clearTimeout(u),d=null,F?ie(s.errors,g,F):me(s.errors,g)),(F?!Fe(O,F):O)||!we(U)||P){const W={...U,...P&&Ae(S)?{isValid:S}:{},errors:s.errors,name:g};s={...s,...W},h.state.next(W)}},M=async g=>(j(g,!0),await n.resolver(i,n.context,Ec(g||l.mount,a,n.criteriaMode,n.shouldUseNativeValidation))),E=async g=>{const{errors:S}=await M(g);if(j(g),g)for(const F of g){const U=z(S,F);U?ie(s.errors,F,U):me(s.errors,F)}else s.errors=S;return S},I=async(g,S,F={valid:!0})=>{for(const U in g){const O=g[U];if(O){const{_f:P,...W}=O;if(P){const se=l.array.has(P.name),ae=O._f&&Fc(O._f);ae&&m.validatingFields&&j([P.name],!0);const je=await Ts(O,l.disabled,i,y,n.shouldUseNativeValidation&&!S,se);if(ae&&m.validatingFields&&j([P.name]),je[P.name]&&(F.valid=!1,S||e.shouldUseNativeValidation))break;!S&&(z(je,P.name)?se?Pc(s.errors,je,P.name):ie(s.errors,P.name,je[P.name]):me(s.errors,P.name))}!we(W)&&await I(W,S,F)}}return F.valid},$=()=>{for(const g of l.unMount){const S=z(a,g);S&&(S._f.refs?S._f.refs.every(F=>!Gt(F)):!Gt(S._f.ref))&&te(g)}l.unMount=new Set},D=(g,S)=>!n.disabled&&(g&&S&&ie(i,g,S),!Fe(q(),r)),T=(g,S,F)=>xn(g,l,{...o.mount?i:ce(S)?r:$e(g)?{[g]:S}:S},F,S),_=g=>Ln(z(o.mount?i:r,g,n.shouldUnregister?z(r,g,[]):[])),Y=(g,S,F={})=>{const U=z(a,g);let O=S;if(U){const P=U._f;P&&(!P.disabled&&ie(i,g,sr(S,P)),O=kt(P.ref)&&Se(S)?"":S,er(P.ref)?[...P.ref.options].forEach(W=>W.selected=O.includes(W.value)):P.refs?ft(P.ref)?P.refs.forEach(W=>{(!W.defaultChecked||!W.disabled)&&(Array.isArray(O)?W.checked=!!O.find(se=>se===W.value):W.checked=O===W.value||!!O)}):P.refs.forEach(W=>W.checked=W.value===O):Pn(P.ref)?P.ref.value="":(P.ref.value=O,P.ref.type||h.state.next({name:g,values:fe(i)})))}(F.shouldDirty||F.shouldTouch)&&L(g,O,F.shouldTouch,F.shouldDirty,!0),F.shouldValidate&&re(g)},B=(g,S,F)=>{for(const U in S){if(!S.hasOwnProperty(U))return;const O=S[U],P=g+"."+U,W=z(a,P);(l.array.has(g)||he(O)||W&&!W._f)&&!We(O)?B(P,O,F):Y(P,O,F)}},V=(g,S,F={})=>{const U=z(a,g),O=l.array.has(g),P=fe(S);ie(i,g,P),O?(h.array.next({name:g,values:fe(i)}),(m.isDirty||m.dirtyFields||x.isDirty||x.dirtyFields)&&F.shouldDirty&&h.state.next({name:g,dirtyFields:Ze(r,i),isDirty:D(g,P)})):U&&!U._f&&!Se(P)?B(g,P,F):Y(g,P,F),Fs(g,l)?h.state.next({...s,name:g,values:fe(i)}):h.state.next({name:o.mount?g:void 0,values:fe(i)})},Z=async g=>{o.mount=!0;const S=g.target;let F=S.name,U=!0;const O=z(a,F),P=ae=>{U=Number.isNaN(ae)||We(ae)&&isNaN(ae.getTime())||Fe(ae,z(i,F,ae))},W=Ds(n.mode),se=Ds(n.reValidateMode);if(O){let ae,je;const Ue=S.type?$s(O._f):Ka(g),Re=g.type===Ct.BLUR||g.type===Ct.FOCUS_OUT,Ni=!Mc(O._f)&&!n.resolver&&!z(s.errors,F)&&!O._f.deps||Ic(Re,z(s.touchedFields,F),s.isSubmitted,se,W),_t=Fs(F,l,Re);ie(i,F,Ue),Re?(!S||!S.readOnly)&&(O._f.onBlur&&O._f.onBlur(g),d&&d(0)):O._f.onChange&&O._f.onChange(g);const Pt=L(F,Ue,Re),Ci=!we(Pt)||_t;if(!Re&&h.state.next({name:F,type:g.type,values:fe(i)}),Ni)return(m.isValid||x.isValid)&&(n.mode==="onBlur"?Re&&b():Re||b()),Ci&&h.state.next({name:F,..._t?{}:Pt});if(!Re&&_t&&h.state.next({...s}),n.resolver){const{errors:Jn}=await M([F]);if(j([F]),P(Ue),U){const ki=Ms(s.errors,a,F),es=Ms(Jn,a,ki.name||F);ae=es.error,F=es.name,je=we(Jn)}}else j([F],!0),ae=(await Ts(O,l.disabled,i,y,n.shouldUseNativeValidation))[F],j([F]),P(Ue),U&&(ae?je=!1:(m.isValid||x.isValid)&&(je=await I(a,!0)));U&&(O._f.deps&&(!Array.isArray(O._f.deps)||O._f.deps.length>0)&&re(O._f.deps),A(F,je,ae,Pt))}},J=(g,S)=>{if(z(s.errors,S)&&g.focus)return g.focus(),1},re=async(g,S={})=>{let F,U;const O=lt(g);if(n.resolver){const P=await E(ce(g)?g:O);F=we(P),U=g?!O.some(W=>z(P,W)):F}else g?(U=(await Promise.all(O.map(async P=>{const W=z(a,P);return await I(W&&W._f?{[P]:W}:W)}))).every(Boolean),!(!U&&!s.isValid)&&b()):U=F=await I(a);return h.state.next({...!$e(g)||(m.isValid||x.isValid)&&F!==s.isValid?{}:{name:g},...n.resolver||!g?{isValid:F}:{},errors:s.errors}),S.shouldFocus&&!U&&ot(a,J,g?O:l.mount),U},q=(g,S)=>{let F={...o.mount?i:r};return S&&(F=Ja(S.dirtyFields?s.dirtyFields:s.touchedFields,F)),ce(g)?F:$e(g)?z(F,g):g.map(U=>z(F,U))},Q=(g,S)=>({invalid:!!z((S||s).errors,g),isDirty:!!z((S||s).dirtyFields,g),error:z((S||s).errors,g),isValidating:!!z(s.validatingFields,g),isTouched:!!z((S||s).touchedFields,g)}),K=g=>{g&<(g).forEach(S=>me(s.errors,S)),h.state.next({errors:g?s.errors:{}})},ee=(g,S,F)=>{const U=(z(a,g,{_f:{}})._f||{}).ref,O=z(s.errors,g)||{},{ref:P,message:W,type:se,...ae}=O;ie(s.errors,g,{...ae,...S,ref:U}),h.state.next({name:g,errors:s.errors,isValid:!1}),F&&F.shouldFocus&&U&&U.focus&&U.focus()},oe=(g,S)=>Ne(g)?h.state.subscribe({next:F=>"values"in F&&g(T(void 0,S),F)}):T(g,S,!0),X=g=>h.state.subscribe({next:S=>{Tc(g.name,S.name,g.exact)&&Lc(S,g.formState||m,Te,g.reRenderRoot)&&g.callback({values:{...i},...s,...S,defaultValues:r})}}).unsubscribe,ue=g=>(o.mount=!0,x={...x,...g.formState},X({...g,formState:{...f,...g.formState}})),te=(g,S={})=>{for(const F of g?lt(g):l.mount)l.mount.delete(F),l.array.delete(F),S.keepValue||(me(a,F),me(i,F)),!S.keepError&&me(s.errors,F),!S.keepDirty&&me(s.dirtyFields,F),!S.keepTouched&&me(s.touchedFields,F),!S.keepIsValidating&&me(s.validatingFields,F),!n.shouldUnregister&&!S.keepDefaultValue&&me(r,F);h.state.next({values:fe(i)}),h.state.next({...s,...S.keepDirty?{isDirty:D()}:{}}),!S.keepIsValid&&b()},ye=({disabled:g,name:S})=>{if(Ae(g)&&o.mount||g||l.disabled.has(S)){const O=l.disabled.has(S)!==!!g;g?l.disabled.add(S):l.disabled.delete(S),O&&o.mount&&!o.action&&b()}},De=(g,S={})=>{let F=z(a,g);const U=Ae(S.disabled)||Ae(n.disabled);return ie(a,g,{...F||{},_f:{...F&&F._f?F._f:{ref:{name:g}},name:g,mount:!0,...S}}),l.mount.add(g),F?ye({disabled:Ae(S.disabled)?S.disabled:n.disabled,name:g}):k(g,!0,S.value),{...U?{disabled:S.disabled||n.disabled}:{},...n.progressive?{required:!!S.required,min:at(S.min),max:at(S.max),minLength:at(S.minLength),maxLength:at(S.maxLength),pattern:at(S.pattern)}:{},name:g,onChange:Z,onBlur:Z,ref:O=>{if(O){De(g,S),F=z(a,g);const P=ce(O.value)&&O.querySelectorAll&&O.querySelectorAll("input,select,textarea")[0]||O,W=Sc(P),se=F._f.refs||[];if(W?se.find(ae=>ae===P):P===F._f.ref)return;ie(a,g,{_f:{...F._f,...W?{refs:[...se.filter(Gt),P,...Array.isArray(z(r,g))?[{}]:[]],ref:{type:P.type,name:g}}:{ref:P}}}),k(g,!1,void 0,P)}else F=z(a,g,{}),F._f&&(F._f.mount=!1),(n.shouldUnregister||S.shouldUnregister)&&!(Qa(l.array,g)&&o.action)&&l.unMount.add(g)}}},ke=()=>n.shouldFocusError&&ot(a,J,l.mount),Pe=g=>{Ae(g)&&(h.state.next({disabled:g}),ot(a,(S,F)=>{const U=z(a,F);U&&(S.disabled=U._f.disabled||g,Array.isArray(U._f.refs)&&U._f.refs.forEach(O=>{O.disabled=U._f.disabled||g}))},0,!1))},Oe=(g,S)=>async F=>{let U;F&&(F.preventDefault&&F.preventDefault(),F.persist&&F.persist());let O=fe(i);if(h.state.next({isSubmitting:!0}),n.resolver){const{errors:P,values:W}=await M();j(),s.errors=P,O=fe(W)}else await I(a);if(l.disabled.size)for(const P of l.disabled)me(O,P);if(me(s.errors,"root"),we(s.errors)){h.state.next({errors:{}});try{await g(O,F)}catch(P){U=P}}else S&&await S({...s.errors},F),ke(),setTimeout(ke);if(h.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:we(s.errors)&&!U,submitCount:s.submitCount+1,errors:s.errors}),U)throw U},Ve=(g,S={})=>{z(a,g)&&(ce(S.defaultValue)?V(g,fe(z(r,g))):(V(g,S.defaultValue),ie(r,g,fe(S.defaultValue))),S.keepTouched||me(s.touchedFields,g),S.keepDirty||(me(s.dirtyFields,g),s.isDirty=S.defaultValue?D(g,fe(z(r,g))):D()),S.keepError||(me(s.errors,g),m.isValid&&b()),h.state.next({...s}))},Me=(g,S={})=>{const F=g?fe(g):r,U=fe(F),O=we(g),P=O?r:U;if(S.keepDefaultValues||(r=F),!S.keepValues){if(S.keepDirtyValues){const W=new Set([...l.mount,...Object.keys(Ze(r,i))]);for(const se of Array.from(W)){const ae=z(s.dirtyFields,se),je=z(i,se),Ue=z(P,se);ae&&!ce(je)?ie(P,se,je):!ae&&!ce(Ue)&&V(se,Ue)}}else{if(Mn&&ce(g))for(const W of l.mount){const se=z(a,W);if(se&&se._f){const ae=Array.isArray(se._f.refs)?se._f.refs[0]:se._f.ref;if(kt(ae)){const je=ae.closest("form");if(je){je.reset();break}}}}if(S.keepFieldsRef)for(const W of l.mount)V(W,z(P,W));else a={}}i=n.shouldUnregister?S.keepDefaultValues?fe(r):{}:fe(P),h.array.next({values:{...P}}),h.state.next({values:{...P}})}l={mount:S.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!m.isValid||!!S.keepIsValid||!!S.keepDirtyValues||!n.shouldUnregister&&!we(P),o.watch=!!n.shouldUnregister,o.keepIsValid=!!S.keepIsValid,o.action=!1,S.keepErrors||(s.errors={}),h.state.next({submitCount:S.keepSubmitCount?s.submitCount:0,isDirty:O?!1:S.keepDirty?s.isDirty:!!(S.keepDefaultValues&&!Fe(g,r)),isSubmitted:S.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:O?{}:S.keepDirtyValues?S.keepDefaultValues&&i?Ze(r,i):s.dirtyFields:S.keepDefaultValues&&g?Ze(r,g):S.keepDirty?s.dirtyFields:{},touchedFields:S.keepTouched?s.touchedFields:{},errors:S.keepErrors?s.errors:{},isSubmitSuccessful:S.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:r})},ne=(g,S)=>Me(Ne(g)?g(i):g,{...n.resetOptions,...S}),xe=(g,S={})=>{const F=z(a,g),U=F&&F._f;if(U){const O=U.refs?U.refs[0]:U.ref;O.focus&&setTimeout(()=>{O.focus(),S.shouldSelect&&Ne(O.select)&&O.select()})}},Te=g=>{s={...s,...g}},ge={control:{register:De,unregister:te,getFieldState:Q,handleSubmit:Oe,setError:ee,_subscribe:X,_runSchema:M,_updateIsValidating:j,_focusError:ke,_getWatch:T,_getDirty:D,_setValid:b,_setFieldArray:N,_setDisabledField:ye,_setErrors:v,_getFieldArray:_,_reset:Me,_resetDefaultValues:()=>Ne(n.defaultValues)&&n.defaultValues().then(g=>{ne(g,n.resetOptions),h.state.next({isLoading:!1})}),_removeUnmounted:$,_disableForm:Pe,_subjects:h,_proxyFormState:m,get _fields(){return a},get _formValues(){return i},get _state(){return o},set _state(g){o=g},get _defaultValues(){return r},get _names(){return l},set _names(g){l=g},get _formState(){return s},get _options(){return n},set _options(g){n={...n,...g}}},subscribe:ue,trigger:re,register:De,handleSubmit:Oe,watch:oe,setValue:V,getValues:q,reset:ne,resetField:Ve,clearErrors:K,unregister:te,setError:ee,setFocus:xe,getFieldState:Q};return{...ge,formControl:ge}}function zc(e={}){const n=p.useRef(void 0),s=p.useRef(void 0),[a,r]=p.useState({isDirty:!1,isValidating:!1,isLoading:Ne(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:Ne(e.defaultValues)?void 0:e.defaultValues});if(!n.current)if(e.formControl)n.current={...e.formControl,formState:a},e.defaultValues&&!Ne(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:o,...l}=Rc(e);n.current={...l,formState:a}}const i=n.current.control;return i._options=e,_n(()=>{const o=i._subscribe({formState:i._proxyFormState,callback:()=>r({...i._formState}),reRenderRoot:!0});return r(l=>({...l,isReady:!0})),i._formState.isReady=!0,o},[i]),p.useEffect(()=>i._disableForm(e.disabled),[i,e.disabled]),p.useEffect(()=>{e.mode&&(i._options.mode=e.mode),e.reValidateMode&&(i._options.reValidateMode=e.reValidateMode)},[i,e.mode,e.reValidateMode]),p.useEffect(()=>{e.errors&&(i._setErrors(e.errors),i._focusError())},[i,e.errors]),p.useEffect(()=>{e.shouldUnregister&&i._subjects.state.next({values:i._getWatch()})},[i,e.shouldUnregister]),p.useEffect(()=>{if(i._proxyFormState.isDirty){const o=i._getDirty();o!==a.isDirty&&i._subjects.state.next({isDirty:o})}},[i,a.isDirty]),p.useEffect(()=>{var o;e.values&&!Fe(e.values,s.current)?(i._reset(e.values,{keepFieldsRef:!0,...i._options.resetOptions}),!((o=i._options.resetOptions)===null||o===void 0)&&o.keepIsValid||i._setValid(),s.current=e.values,r(l=>({...l}))):i._resetDefaultValues()},[i,e.values]),p.useEffect(()=>{i._state.mount||(i._setValid(),i._state.mount=!0),i._state.watch&&(i._state.watch=!1,i._subjects.state.next({...i._formState})),i._removeUnmounted()}),n.current.formState=p.useMemo(()=>Xa(a,i),[i,a]),n.current}function Bc(e,n=3){return e%1===0?e.toString():e.toFixed(n).replace(/\.?0+$/,"")}function Vc(e,n="en-US",s="USD"){try{return new Intl.NumberFormat(n,{style:"currency",currency:s,minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}catch(a){return console.warn(`Invalid currency formatting: ${a}`),`${s} ${e.toFixed(2)}`}}function Uc(e="USD",n="en-US"){try{return new Intl.NumberFormat(n,{style:"currency",currency:e}).formatToParts(0).find(i=>i.type==="currency")?.value??"$"}catch{return"$"}}function Hc(e){const n=e.replace(/[^\d.,-]/g,""),s=n.match(/,\d{1,2}$/);let a;s?a=n.replace(/\./g,"").replace(",","."):a=n.replace(/,/g,"");const r=parseFloat(a);return isNaN(r)?null:r}function qc(e,n,s=.001){const a=e-n,r=Math.abs(a)<=s;return{difference:a,isBalanced:r,isUnderAllocated:!r&&a>0,isOverAllocated:!r&&a<0}}function Rn(){return`dist-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}Rn();const Wc={amount:"Amount",glAccount:"GL Account",taxDeductible:"Tax Deductible",amountPlaceholder:"0.00",glAccountPlaceholder:"Search GL Account",noGlAccountsFound:"No GL Accounts found. Try another search term",searching:"Searching for GL Accounts...",amountTooltip:"Enter the amount for this distribution",glAccountTooltip:"Select the General Ledger account for this distribution",taxDeductibleTooltip:"Check if this distribution is tax deductible",deleteButton:"Delete",currencySymbol:"$"},Kt=()=>({id:Rn(),amount:0,glAccount:null,isTaxDeductible:!1}),rr=({distribution:e,defaultDistribution:n,glAccounts:s=[],isLoadingGlAccounts:a=!1,onSearchGlAccounts:r,onDistributionChange:i,onAmountChange:o,onGlAccountChange:l,onTaxDeductibleChange:d,onDelete:u,canDelete:f=!0,canEditTaxDeductible:m=!0,isDisabled:x=!1,labels:h,classNames:y={},"data-testid":w,control:b,name:j,rules:N})=>{const C={...Wc,...h},v=b!==void 0&&j!==void 0,k=zc({defaultValues:{_internal:n||Kt()}}),L=Nc({control:v?b:k.control,name:v?j:"_internal",rules:v?N:void 0}),[A,M]=p.useState(n||Kt()),E=v?L.field.value??Kt():e??A,I=v&&!!L.fieldState?.error,$=v&&(L.fieldState?.isTouched??!1),D=I||$,T=D&&(!E.amount||E.amount<=0),_=D&&!E.glAccount,[Y,B]=p.useState(E.glAccount?.name||""),V=p.useCallback(ee=>{const oe={...E,...ee};v&&L.field.onChange(oe),!v&&e===void 0&&M(oe),i?.(oe)},[E,e,i,v,L]),Z=p.useCallback(ee=>{const oe=ee||0;V({amount:oe}),o?.(oe)},[V,o]),J=p.useCallback(ee=>{B(ee),r?.(ee)},[r]),re=p.useCallback(ee=>{if(ee===null){V({glAccount:null}),l?.(null);return}const X=s.find(ue=>String(ue.id)===String(ee))||null;V({glAccount:X}),l?.(X)},[s,V,l]),q=p.useCallback(()=>{B(""),V({glAccount:null}),l?.(null)},[V,l]),Q=p.useCallback(ee=>{V({isTaxDeductible:ee}),d?.(ee)},[V,d]),K=p.useCallback(()=>{u?.()},[u]);return t.jsx(c.Card,{radius:"md",shadow:"sm","data-testid":w||"revenue-distribution-card",className:c.cn(y.base),children:t.jsxs(c.CardBody,{className:c.cn("flex flex-row flex-nowrap items-start gap-4",y.body),children:[t.jsx("div",{className:c.cn("shrink-0",y.amountContainer),children:t.jsx(c.NumberInput,{"data-testid":`${w||"revenue-distribution-card"}-amount-input`,label:t.jsxs("span",{className:"flex items-center gap-1",children:[C.amount,t.jsx(c.Tooltip,{content:C.amountTooltip,children:t.jsx(R,{icon:"solar:info-circle-linear",className:"text-default-400 cursor-help",width:16})})]}),value:E.amount||void 0,onValueChange:Z,labelPlacement:"outside",placeholder:C.amountPlaceholder,isWheelDisabled:!0,hideStepper:!0,variant:"bordered",isDisabled:x,isInvalid:T,errorMessage:T?"Amount is required":void 0,minValue:0,step:.01,className:y.amountInput,startContent:t.jsx("div",{className:"pointer-events-none flex items-center",children:t.jsx("span",{className:"text-default-400 text-small",children:C.currencySymbol})})})}),t.jsx("div",{className:c.cn("grow",y.glAccountContainer),children:t.jsx(c.Autocomplete,{"data-testid":`${w||"revenue-distribution-card"}-gl-account-input`,label:t.jsxs("span",{className:"flex items-center gap-1",children:[C.glAccount,t.jsx(c.Tooltip,{content:C.glAccountTooltip,children:t.jsx(R,{icon:"solar:info-circle-linear",className:"text-default-400 cursor-help",width:16})})]}),isLoading:a,isClearable:!0,labelPlacement:"outside",variant:"bordered",items:s,menuTrigger:"input",inputValue:E.glAccount?.name??Y,selectedKey:E.glAccount?.id??null,isDisabled:x,isInvalid:_,errorMessage:_?"GL Account is required":void 0,listboxProps:{emptyContent:a?C.searching:C.noGlAccountsFound},placeholder:C.glAccountPlaceholder,onInputChange:J,onSelectionChange:re,onClear:q,className:y.glAccountInput,children:ee=>t.jsx(c.AutocompleteItem,{textValue:ee.name,children:t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{children:ee.name}),ee.code&&t.jsx("span",{className:"text-xs text-default-400",children:ee.code})]})},ee.id)})}),t.jsx("div",{className:c.cn("shrink-0 pt-6 flex items-center",y.taxDeductibleContainer),children:t.jsx(c.Checkbox,{radius:"full","data-testid":`${w||"revenue-distribution-card"}-tax-deductible`,isSelected:E.isTaxDeductible,onValueChange:Q,isDisabled:x||!m,className:y.taxDeductibleCheckbox,children:C.taxDeductible})}),t.jsx("div",{className:c.cn("shrink-0 pt-6",y.deleteContainer),children:t.jsx(H,{"data-testid":`${w||"revenue-distribution-card"}-delete-button`,size:"sm",color:"danger",variant:"flat",isDisabled:x||!f,onPress:K,startContent:t.jsx(R,{icon:"solar:trash-bin-trash-linear",width:16}),className:c.cn("text-danger",y.deleteButton),children:C.deleteButton})})]})})};rr.displayName="RevenueDistributionCard";const ir=({message:e="No distributions configured",icon:n="solar:document-text-outline",iconSize:s=48,showCard:a=!0,classNames:r={},renderEmpty:i})=>{if(i)return t.jsx(t.Fragment,{children:i()});const o=t.jsxs("div",{className:c.cn("flex flex-col items-center justify-center py-8",r.content),children:[t.jsx(R,{icon:n,width:s,className:c.cn("text-default-300 mb-4",r.icon)}),t.jsx("p",{className:c.cn("text-default-500 text-sm text-center",r.message),children:e})]});return a?t.jsx(c.Card,{radius:"sm",shadow:"sm","data-testid":"revenue-distribution-empty",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{children:o})}):t.jsx("div",{"data-testid":"revenue-distribution-empty",className:c.cn("w-full",r.base),children:o})};ir.displayName="RevenueDistributionEmpty";const Yc={title:"Error Loading Distributions",description:"An error occurred while loading the distribution configuration. Please try again."},lr=({error:e,labels:n,showCard:s=!0,color:a="danger",classNames:r={}})=>{const i={...Yc,...n},o=t.jsx(c.Alert,{"data-testid":"revenue-distribution-error-alert",color:a,title:i.title,description:e||i.description,className:r.alert});return s?t.jsx(c.Card,{radius:"sm",shadow:"sm","data-testid":"revenue-distribution-error",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{children:o})}):t.jsx("div",{"data-testid":"revenue-distribution-error",className:c.cn("w-full",r.base),children:o})};lr.displayName="RevenueDistributionError";const or=({rows:e=1,showCard:n=!0,classNames:s={}})=>{const a=Array.from({length:e},(i,o)=>o),r=i=>t.jsxs("div",{className:c.cn("flex flex-row flex-nowrap items-end gap-4",s.row),children:[t.jsxs("div",{className:"shrink-0 flex flex-col gap-1",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(c.Skeleton,{className:"h-4 w-14 rounded-md"}),t.jsx(c.Skeleton,{className:"h-4 w-4 rounded-full"})]}),t.jsx(c.Skeleton,{className:"h-10 w-32 rounded-lg"})]}),t.jsxs("div",{className:"grow flex flex-col gap-1",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(c.Skeleton,{className:"h-4 w-20 rounded-md"}),t.jsx(c.Skeleton,{className:"h-4 w-4 rounded-full"})]}),t.jsx(c.Skeleton,{className:"h-10 w-full rounded-lg"})]}),t.jsxs("div",{className:"shrink-0 pb-2 flex items-center gap-2",children:[t.jsx(c.Skeleton,{className:"h-5 w-5 rounded-full"}),t.jsx(c.Skeleton,{className:"h-4 w-24 rounded-md"})]}),t.jsx("div",{className:"shrink-0 pb-2",children:t.jsx(c.Skeleton,{className:"h-8 w-20 rounded-lg"})})]},i);return n?t.jsx("div",{className:c.cn("flex flex-col gap-3",s.base),children:a.map(i=>t.jsx(c.Card,{radius:"md",shadow:"sm","data-testid":`revenue-distribution-skeleton-${i}`,children:t.jsx(c.CardBody,{children:r(i)})},i))}):t.jsx("div",{"data-testid":"revenue-distribution-skeleton",className:c.cn("flex flex-col gap-3",s.base),children:a.map(i=>r(i))})};or.displayName="RevenueDistributionSkeleton";function zn({isOpen:e,labels:n,icon:s,isConfirming:a=!1,confirmColor:r="danger",iconTone:i="danger",portalContainer:o,shouldBlockScroll:l,classNames:d,onClose:u,onConfirm:f}){return t.jsx(c.Modal,{isOpen:e,size:"md",placement:"center",portalContainer:o,shouldBlockScroll:l,classNames:{...d,base:c.cn("max-w-[440px] rounded-3xl",d?.base),closeButton:c.cn("right-5 top-5 text-zinc-500",d?.closeButton)},onOpenChange:m=>!m&&u(),children:t.jsxs(c.ModalContent,{children:[t.jsxs(c.ModalHeader,{className:"flex flex-col items-start gap-4 px-7 pb-0 pt-7",children:[s&&t.jsx("span",{className:c.cn("flex h-12 w-12 shrink-0 items-center justify-center rounded-full",i==="warning"?"bg-brand/15 text-brand":"bg-danger-100 text-danger-600"),children:s}),t.jsx("span",{className:"text-lg font-semibold leading-6 text-zinc-950",children:n.title})]}),t.jsx(c.ModalBody,{className:"px-7 pb-3 pt-4",children:t.jsx("div",{className:"text-sm leading-6 text-zinc-500",children:n.description})}),t.jsxs(c.ModalFooter,{className:"grid grid-cols-2 gap-3 px-7 pb-7 pt-3",children:[t.jsx(H,{type:"button",size:"md",variant:"bordered",radius:"full",className:"h-10 border-zinc-200 bg-white text-sm font-normal text-zinc-900",onPress:u,children:n.cancel}),t.jsx(H,{type:"button",size:"md",color:r,radius:"full",className:c.cn("h-10 text-sm font-normal text-white",r==="danger"?"bg-danger-600":"bg-brand"),isLoading:a,onPress:f,children:n.confirm})]})]})})}const Gc=()=>({id:crypto.randomUUID(),fund:null,percentage:0});function Is(e){return!e.fund&&Number(e.percentage||0)<=0}function Kc({mode:e,assignments:n}){const s=n.filter(i=>i.fund),a=s.reduce((i,o)=>i+Number(o.percentage||0),0),r=n.some(i=>!i.fund||Number(i.percentage||0)<=0);return s.length>=1&&!r&&Math.round(a*100)/100===100}const Qc={title:"Payment assignment",saved:"Saved",singleFund:"Single fund",splitFunds:"Split across multiple funds",saveAssignment:"Save assignment",assignSpecificFund:"Assign specific fund",addFund:"Add account",emptySingle:"You have not assign any specific fund for this opportunity",emptySplit:"Select a fund and assign percentages that total 100%",selectedFund:"Selected fund",percentage:"Percentage",total:"Total",totalError:"Select a fund for each row and enter percentages that total 100%.",removeFund:"Remove fund",modalTitle:"Select an specific fund",searchPlaceholder:"Search...",glCode:"GL Code",accountName:"Specific Fund Name",type:"Type",actions:"Actions",select:"Select",noFunds:"No specific funds available",modifyAssignedFundsTitle:"Modify Assigned Funds",modifyAssignedFundsDescription:"Changing the assigned funds will only affect up and coming payments.",modifyAssignedFundsWarning:"Payments already paid will still keep the previous configuration.",modifyAssignedFundsCancel:"Cancel",modifyAssignedFundsConfirm:"Continue"},cr={base:"min-h-11 rounded-full bg-zinc-100 px-4 py-2 shadow-none",iconWrapper:"!h-4 !w-4 shrink-0 !bg-transparent !shadow-none !border-0 text-zinc-900",alertIcon:"!static !h-4 !w-4 !translate-x-0 !translate-y-0 text-zinc-900",mainWrapper:"min-w-0",title:"text-sm font-normal text-zinc-900"},rt={...cr,base:"min-h-11 rounded-2xl px-4 py-2 shadow-none",title:"text-sm font-medium"},Zc={inputWrapper:"h-9 rounded-xl border border-zinc-200 bg-white shadow-none hover:border-zinc-300 data-[hover=true]:border-zinc-300 group-data-[focus=true]:border-zinc-400 group-data-[focus-visible=true]:ring-0"},Xc={wrapper:"!absolute !inset-0 !z-50 !items-center !justify-center !p-4",backdrop:"!absolute !inset-0 !z-40 rounded-2xl"};function Jc(){return t.jsxs("svg",{"aria-hidden":"true",className:"size-4 text-zinc-500",fill:"none",viewBox:"0 0 16 16",children:[t.jsx("rect",{x:"3",y:"3",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("rect",{x:"9",y:"3",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("rect",{x:"3",y:"9",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("rect",{x:"9",y:"9",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"})]})}const ed=e=>Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e*100)/100)):0,td=e=>e.fund!==null;function nd({assignments:e,funds:n,labels:s,classNames:a,isSaving:r=!1,hasSavedAssignments:i=!1,showSavedIndicator:o=!1,isCollapsed:l,isFundPickerOpen:d=!1,activeAssignmentId:u=null,modalPortalContainer:f,footer:m,onAssignmentsChange:x,onOpenFundPicker:h,onCloseFundPicker:y,onCollapseChange:w,onSave:b}){const[j,N]=p.useState(null),C=f??j??void 0,v={...Qc,...s},k=e.filter(X=>!Is(X)),A=k.filter(td).length>0,M=p.useMemo(()=>e.filter(X=>!Is(X)).reduce((X,ue)=>X+Number(ue.percentage||0),0),[e]),E=Math.round(M*100)/100,I=k.some(X=>!X.fund||Number(X.percentage||0)<=0),$=A&&(E!==100||I),D=`${v.totalError} (${v.total} ${Number(M.toFixed(2))}%)`,T=Kc({mode:"split",assignments:e}),_=A&&E>=100,[Y,B]=p.useState(!1),[V,Z]=p.useState(!1),J=t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Jc,{}),t.jsx("span",{className:"text-base font-medium leading-6 text-zinc-950",children:v.title}),o?t.jsx(c.Chip,{size:"sm",radius:"full",color:"success",variant:"flat",children:v.saved}):null]}),re=(X,ue)=>{x(e.map(te=>te.id===X?{...te,...ue}:te))},q=()=>{_||x([...e,Gc()])},Q=X=>{e.length<=1||x(e.filter(ue=>ue.id!==X))},K=()=>{if(!r){if(!T){Z(!0);return}if(!i){b();return}B(!0)}},ee=()=>{B(!1),b()},oe=X=>{const ue=u??e.find(te=>!te.fund)?.id??e[0]?.id;ue&&(x(e.map(te=>te.id===ue?{...te,fund:X}:te)),y())};return t.jsxs("div",{ref:N,className:c.cn("vvt-pa relative font-sans text-zinc-900",d&&!f&&"min-h-[560px]",a?.root),children:[t.jsx(c.Accordion,{variant:"splitted",defaultSelectedKeys:l===void 0?["installment-fund-assignment"]:void 0,selectedKeys:l===void 0?void 0:new Set(l?[]:["installment-fund-assignment"]),className:c.cn("w-full gap-0 px-0",a?.panel),itemClasses:{base:"w-full rounded-2xl border border-zinc-200 bg-white p-0 shadow-sm",trigger:c.cn("px-4 py-4",a?.header),title:"w-full",content:"w-full px-4 pb-4 pt-0",indicator:"text-zinc-500 [&>svg]:size-4"},onSelectionChange:X=>w?.(!(X==="all"||Array.from(X).length>0)),children:t.jsx(c.AccordionItem,{"aria-label":v.title,title:J,children:t.jsxs("div",{className:c.cn("flex w-full flex-col gap-4",a?.content),children:[t.jsxs("div",{className:"flex w-full flex-col gap-4",children:[!A&&t.jsx(c.Alert,{icon:t.jsx(R,{icon:"solar:info-circle-outline",className:"size-4"}),hideIconWrapper:!0,isClosable:!1,classNames:cr,color:"default",variant:"flat",title:v.emptySplit}),A&&t.jsx(sd,{assignments:e,labels:v,total:M,hasTotalError:V&&!T||$,validationMessage:D,onSelectFund:X=>h(X),onRemoveFund:Q,onPercentageChange:(X,ue)=>re(X,{percentage:ed(ue)})}),t.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[t.jsx(H,{type:"button",size:"lg",color:"default",radius:"full",className:"h-11 bg-zinc-950 px-4 text-lg font-normal text-white disabled:opacity-50",startContent:t.jsx(G.Plus,{className:"size-5",strokeWidth:2}),isDisabled:_,onPress:()=>A?q():h(),children:v.assignSpecificFund}),t.jsx(H,{type:"button","data-testid":"installment-fund-assignment-save-button",size:"md",color:"primary",radius:"full",className:"ml-auto h-10 min-w-40 bg-brand px-4 text-sm font-medium text-white",startContent:r?void 0:t.jsx(R,{icon:"solar:cloud-upload-outline",className:"size-4"}),isLoading:r,isDisabled:!T||r,onPress:K,children:v.saveAssignment})]})]}),m]})},"installment-fund-assignment")}),d&&t.jsx(ad,{funds:n,labels:v,selectedFundIds:e.map(X=>X.fund?.id).filter(Boolean),portalContainer:C,onSelect:oe,onClose:y}),t.jsx(zn,{isOpen:Y,labels:{title:v.modifyAssignedFundsTitle,description:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:v.modifyAssignedFundsDescription}),t.jsx("p",{className:"mt-3",children:v.modifyAssignedFundsWarning})]}),cancel:v.modifyAssignedFundsCancel,confirm:v.modifyAssignedFundsConfirm},icon:t.jsx(R,{icon:"solar:info-circle-outline",className:"size-7"}),iconTone:"warning",confirmColor:"primary",portalContainer:C,shouldBlockScroll:!1,classNames:Xc,onClose:()=>B(!1),onConfirm:ee})]})}function sd({assignments:e,labels:n,total:s,hasTotalError:a,validationMessage:r,onSelectFund:i,onRemoveFund:o,onPercentageChange:l}){return t.jsxs("div",{className:"flex flex-col gap-3",children:[e.map((d,u)=>t.jsxs("div",{className:"flex min-h-15 w-full items-center gap-3 rounded-2xl border border-zinc-200 bg-white px-3 py-2",children:[t.jsx("div",{className:c.cn("flex min-h-11 min-w-0 flex-1 items-center","gap-4"),children:d.fund?t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"rounded-full bg-zinc-100 px-4 py-1.5 text-sm text-zinc-950",children:[d.fund.glCode," - ",d.fund.accountName]}),t.jsx(H,{type:"button",variant:"light",radius:"full",className:"px-2 text-sm font-normal text-brand",onPress:()=>i(d.id),children:"Replace"})]}):t.jsx(H,{type:"button",size:"lg",variant:"light",radius:"full",className:"justify-start px-4 text-lg font-normal text-zinc-900",startContent:t.jsx(G.Plus,{className:"size-5",strokeWidth:2}),onPress:()=>i(d.id),children:n.assignSpecificFund})}),t.jsx("label",{className:"flex w-48 flex-none items-center",children:t.jsx(c.Input,{variant:"bordered",type:"number",min:0,max:100,step:.01,value:String(d.percentage||""),onChange:f=>l(d.id,Number(f.target.value)),endContent:t.jsx("span",{className:"text-sm text-zinc-500",children:"%"}),classNames:Zc})}),e.length>1&&t.jsx(H,{type:"button",isIconOnly:!0,variant:"flat",radius:"full",className:c.cn("h-10 w-10 flex-none p-0",u===0?"bg-danger-100 text-danger-500 opacity-60":"bg-danger-600 text-white"),style:{height:40,minWidth:40,width:40},isDisabled:u===0,onPress:()=>o(d.id),"aria-label":n.removeFund,children:t.jsx(R,{icon:"solar:trash-bin-minimalistic-outline",className:"size-5"})})]},d.id)),t.jsx(c.Alert,{icon:t.jsx(R,{icon:a?"solar:info-circle-outline":"solar:check-circle-outline",className:"size-4"}),hideIconWrapper:!0,isClosable:!1,color:a?"warning":"success",variant:"flat",classNames:{...rt,base:c.cn(rt.base,a?"bg-warning-50 text-warning-700":"bg-success-50 text-success-700"),iconWrapper:c.cn(rt.iconWrapper,a?"text-warning-700":"text-success-700"),alertIcon:c.cn(rt.alertIcon,a?"text-warning-700":"text-success-700"),title:c.cn(rt.title,a?"text-warning-700":"text-success-700")},title:a?r:`${n.total} ${Number(s.toFixed(2))}%`})]})}function ad({funds:e,labels:n,selectedFundIds:s,portalContainer:a,onSelect:r,onClose:i}){const[o,l]=p.useState(""),d=e.filter(u=>{if(s.includes(u.id))return!1;const f=o.trim().toLowerCase();return f?`${u.glCode} ${u.accountName} ${u.type}`.toLowerCase().includes(f):!0});return t.jsx(c.Modal,{isOpen:!0,size:"3xl",placement:"center",scrollBehavior:"inside",shouldBlockScroll:!1,portalContainer:a,classNames:{wrapper:"!absolute !inset-0 !z-50 !items-center !justify-center !p-4",backdrop:"!absolute !inset-0 !z-40 rounded-2xl",base:"max-h-[calc(100%-2rem)] max-w-3xl rounded-3xl",closeButton:"right-6 top-6 text-zinc-500"},onOpenChange:u=>!u&&i(),children:t.jsxs(c.ModalContent,{className:"max-h-full",children:[t.jsx(c.ModalHeader,{className:"px-6 pt-6 text-xl font-semibold leading-7 text-zinc-950",children:n.modalTitle}),t.jsxs(c.ModalBody,{className:"flex min-h-0 flex-1 flex-col px-6 pb-6",children:[t.jsx(c.Input,{variant:"bordered","aria-label":n.searchPlaceholder,value:o,placeholder:n.searchPlaceholder,onChange:u=>l(u.target.value),startContent:t.jsx(R,{icon:"solar:magnifer-outline",className:"size-5 text-zinc-500"}),classNames:{input:"text-sm placeholder:text-zinc-500",inputWrapper:"h-10 rounded-2xl border border-zinc-200 bg-white px-4 shadow-none hover:border-zinc-300 data-[hover=true]:border-zinc-300 group-data-[focus=true]:border-zinc-400 group-data-[focus-visible=true]:ring-0"}}),t.jsxs("div",{className:"mt-4 min-h-0 flex-1 overflow-auto",children:[t.jsxs("div",{className:"grid grid-cols-[1fr_1.3fr_0.6fr] gap-5 border-b border-zinc-200 px-3 pb-3 text-sm font-medium leading-5 text-zinc-900",children:[t.jsx("span",{children:n.glCode}),t.jsx("span",{children:n.accountName}),t.jsx("span",{children:n.actions})]}),d.length===0&&t.jsx("div",{className:"p-4 text-sm text-zinc-500",children:n.noFunds}),d.map(u=>t.jsxs("div",{className:"grid grid-cols-[1fr_1.3fr_0.6fr] items-center gap-5 px-3 py-2.5 text-sm leading-5 text-zinc-900",children:[t.jsx("span",{children:u.glCode}),t.jsx("span",{children:u.accountName}),t.jsx(H,{type:"button",size:"sm",variant:"bordered",radius:"full",className:"h-9 min-w-24 border-zinc-200 bg-white text-sm font-medium text-zinc-900",onPress:()=>r(u),children:n.select})]},u.id))]})]})]})})}function rd(){return t.jsxs("section",{className:"flex w-full flex-col gap-4 rounded-2xl border border-zinc-200 bg-white p-4 shadow-sm","aria-busy":"true",children:[t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-7 w-56 rounded-lg"}),t.jsx(c.Skeleton,{className:"size-8 rounded-full"})]}),t.jsxs("div",{className:"flex items-center justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-10 w-72 rounded-full"}),t.jsx(c.Skeleton,{className:"h-10 w-40 rounded-full"})]}),t.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_160px] items-center gap-4 rounded-2xl border border-zinc-100 p-3",children:[t.jsx(c.Skeleton,{className:"h-8 w-full max-w-xs rounded-full"}),t.jsx(c.Skeleton,{className:"h-8 w-full rounded-xl"})]}),t.jsx(c.Skeleton,{className:"h-11 w-40 rounded-full"})]})}const id={totalAmount:"Total Amount:",remainingBalance:"Remaining Balance",amountReceived:"Amount Received:"};function ld({totalAmount:e,remainingBalance:n,amountReceived:s,currency:a="USD",locale:r="en-US",labels:i,className:o}){const l={...id,...i},d=new Intl.NumberFormat(r,{style:"currency",currency:a});return t.jsx("div",{className:c.cn("w-full rounded-2xl border border-zinc-200 bg-white px-4 py-2.5 font-sans text-base leading-6",o),children:t.jsxs("div",{className:"flex w-full flex-wrap items-center gap-x-5 gap-y-2",children:[t.jsx(Qt,{label:l.totalAmount,value:d.format(e)}),t.jsx(Qt,{label:l.remainingBalance,value:d.format(n)}),t.jsx(Qt,{label:l.amountReceived,value:d.format(s)})]})})}function Qt({label:e,value:n}){return t.jsxs("div",{className:"flex items-center gap-3 whitespace-nowrap",children:[t.jsx("span",{className:"font-medium text-zinc-700",children:e}),t.jsx("span",{className:"font-normal text-zinc-950",children:n})]})}const od={monthly:1,quarterly:3,annual:12},dr=e=>{const[n,s,a]=e.split("-").map(Number);return{year:n,month:s,day:a}},cd=(e,n)=>new Date(e,n+1,0).getDate(),dd=e=>{const n=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${n}-${s}-${a}`},ud=(e,n)=>{const{year:s,month:a,day:r}=dr(e),i=a-1+n,o=s+Math.floor(i/12),l=(i%12+12)%12,d=Math.min(r,cd(o,l));return new Date(o,l,d)},fd=(e,n)=>{const{year:s,month:a,day:r}=dr(e),i=new Date(s,a-1,r);return i.setDate(i.getDate()+n),i};function ur(e,n){const s=Math.max(1,Math.floor(n.numberOfInstallments||1)),a=Math.round(e*100),r=Math.floor(a/s),i=a-r*s,o=od[n.frequency];return Array.from({length:s},(l,d)=>{const u=n.frequency==="weekly"?fd(n.firstInstallmentDate,d*7):ud(n.firstInstallmentDate,d*(o??1));return{id:crypto.randomUUID(),dueDate:dd(u),amount:(r+(d===0?i:0))/100}})}function md(e){return new Set(e.map((n,s)=>{const a=e[s+1]?.dueDate;return n.dueDate&&a&&n.dueDate>a?n.id:null}).filter(n=>!!n))}function hd(e){return{missingDateRows:new Set(e.filter(n=>!n.dueDate).map(n=>n.id)),invalidDateRows:md(e),invalidAmountRows:new Set(e.filter(n=>Number(n.amount||0)<=0).map(n=>n.id))}}function xd(e){return e.missingDateRows.size>0||e.invalidDateRows.size>0||e.invalidAmountRows.size>0}function pd(e,n){const s=e[0];return!s||!n||s.dueDate===n?e:[{...s,dueDate:n},...e.slice(1)]}const gd={title:"Payments",saved:"Saved",automaticMode:"Auto",manualMode:"Manual",createInstallments:"Create Payments",generateSchedule:"Generate Schedule",saveInstallments:"Save Payments",cancelEdit:"Cancel",addInstallment:"Add Payment",emptyAutomatic:"No payments have been generated for this opportunity",emptyManual:"Add payments with custom dates and amounts",numberOfInstallments:"Number of payments",frequency:"Frequency",dayOfMonth:"Day of month",firstInstallmentDate:"First payment date",installment:"Payment",dueDate:"Due date",amount:"Amount",total:"Total",remaining:"Remaining",deleteInstallment:"Delete installment",weekly:"Weekly",monthly:"Monthly",quarterly:"Quarterly",annual:"Annual",totalError:"Payment total must equal the total amount",totalIncreaseWarning:"Saving will update the donation/contribution total to match the scheduled payments.",totalIncreaseConfirmationTitle:"Update Donation Total",totalIncreaseConfirmationDescription:"The scheduled payments total is greater than the current donation/contribution total. Saving will update the donation/contribution total to match the scheduled payments.",totalIncreaseConfirmationCancel:"Cancel",totalIncreaseConfirmationConfirm:"Save Payments",dateOrderError:"Payment date must be on or before the next payment date.",dueDateRequiredError:"Payment date is required.",amountGreaterThanZeroError:"Payment amount must be greater than 0."},bd=["weekly","monthly","quarterly","annual"],yd=Array.from({length:31},(e,n)=>n+1),vd=["numberOfInstallments","frequency","firstInstallmentDate"],_s=()=>({id:crypto.randomUUID(),dueDate:new Date().toISOString().slice(0,10),amount:0}),At=e=>Math.round(e*100)/100,jd=(e,n)=>{const s=new Date(`${e}T00:00:00`);return Number.isNaN(s.getTime())?e:new Intl.DateTimeFormat(n,{month:"short",day:"numeric",year:"numeric"}).format(s)},It=e=>{if(!e)return null;try{return ho(e)}catch{return null}},wd=e=>It(e)?.day??1,Nd=(e,n)=>new Date(e,n,0).getDate(),Cd=(e,n)=>{const s=It(e);if(!s)return e;const a=Math.min(n,Nd(s.year,s.month));return s.set({day:a}).toString()},Ps=e=>{const n=e%100>=11&&e%100<=13?"th":e%10===1?"st":e%10===2?"nd":e%10===3?"rd":"th";return`${e}${n}`};function kd({mode:e,donationAmount:n,currency:s="USD",locale:a="en-US",installments:r,automaticSettings:i,defaultTab:o="automatic",showTitle:l=!0,showCard:d=!0,showSavePayment:u=!0,showTabs:f=!0,inputs:m=vd,startDate:x,firstInstallmentDateOverride:h,labels:y,classNames:w,isSaving:b=!1,showSavedIndicator:j=!1,isModeSwitchDisabled:N=!1,onModeChange:C,onAutomaticSettingsChange:v,onInstallmentsChange:k,onSave:L,onCancel:A}){const[M,E]=p.useState(o),I={...gd,...y},$=e??M,D=p.useMemo(()=>new Intl.NumberFormat(a,{style:"currency",currency:s}),[s,a]),T=p.useMemo(()=>({...i,firstInstallmentDate:m.includes("firstInstallmentDate")?i.firstInstallmentDate:m.includes("dayOfMonth")?i.firstInstallmentDate||x||"":x||i.firstInstallmentDate}),[i,m,x]),_=$==="automatic"?pd(ur(n,T),m.includes("firstInstallmentDate")?void 0:h):r,Y=p.useMemo(()=>At(_.reduce((te,ye)=>te+Number(ye.amount||0),0)),[_]),B=Math.abs(Y-n)>.009,V=At(n-Y)<=0,Z=p.useMemo(()=>hd(r),[r]),J=$==="manual"&&xd(Z),re=B||J,q=l?t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(G.CircleDollarSign,{className:"size-4 text-zinc-500",strokeWidth:1.75}),t.jsx("span",{className:"text-base font-medium leading-6 text-zinc-950",children:I.title}),j?t.jsx(c.Chip,{size:"sm",radius:"full",color:"success",variant:"flat",children:I.saved}):null]}):void 0,Q=te=>{te!==$&&(e||E(te),C?.(te),te==="manual"&&r.length===0&&k([_s()]))},K=(te,ye)=>{r.find(ke=>ke.id===te)?.status!=="paid"&&k(r.map(ke=>ke.id===te?{...ke,...ye}:ke))},ee=()=>{k([...r,_s()])},oe=te=>{r.find(De=>De.id===te)?.status!=="paid"&&k(r.filter(De=>De.id!==te))},X=()=>{b||re||L?.()},ue=t.jsxs("div",{className:c.cn("flex w-full flex-col gap-4",w?.content),children:[f||u||A?t.jsxs("div",{className:"flex w-full items-center justify-between gap-6",children:[f?t.jsx(Sd,{mode:$,labels:I,onModeChange:Q,isDisabled:N,className:w?.tabs}):null,t.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[A?t.jsx(H,{type:"button","data-testid":"installment-schedule-cancel-button",size:"md",variant:"bordered",radius:"full",className:"min-w-28",isDisabled:b,onPress:A,children:I.cancelEdit}):null,u?t.jsx(H,{type:"button","data-testid":"installment-schedule-save-button",size:"md",color:"primary",radius:"full",className:"min-w-36",startContent:b?void 0:t.jsx(R,{icon:"solar:cloud-upload-outline",className:"size-4"}),isLoading:b,isDisabled:b||re,onPress:X,children:I.saveInstallments}):null]})]}):null,t.jsxs("div",{className:c.cn("flex w-full flex-col gap-4",w?.preview),children:[$==="automatic"&&t.jsx(Ad,{settings:T,inputs:m,labels:I,className:w?.controls,onSettingsChange:v}),_.length===0&&t.jsx(c.Alert,{isClosable:!1,color:"default",variant:"flat",radius:"full",title:$==="automatic"?I.emptyAutomatic:I.emptyManual}),_.length>0&&t.jsx($d,{mode:$,installments:_,rowErrors:Z,labels:I,formatter:D,locale:a,onUpdateInstallment:K,onRemoveInstallment:oe}),$==="manual"&&t.jsx("div",{className:"flex flex-wrap gap-3",children:t.jsx(H,{type:"button",size:"md",variant:"bordered",radius:"full",className:"h-10 border-zinc-200 bg-white px-4 text-sm font-normal text-zinc-900",startContent:t.jsx(G.Plus,{className:"size-5",strokeWidth:2}),isDisabled:V,onPress:ee,children:I.addInstallment})}),t.jsx(Md,{total:Y,donationAmount:n,hasTotalMismatch:B,mode:$,installments:_,formatter:D,labels:I,className:w?.summary})]})]});return t.jsx("div",{className:c.cn("vvt-ps relative font-sans text-zinc-900",w?.root),children:d?t.jsx(c.Accordion,{variant:"splitted",defaultSelectedKeys:["installment-schedule"],className:c.cn("w-full gap-0 px-0",w?.panel),itemClasses:{base:"w-full rounded-2xl border border-zinc-200 bg-white p-0 shadow-sm",trigger:c.cn("px-4 py-4",w?.header),title:"w-full",content:"w-full px-4 pb-4 pt-0",indicator:"text-zinc-500 [&>svg]:size-4"},children:t.jsx(c.AccordionItem,{"aria-label":I.title,title:q,children:ue},"installment-schedule")}):ue})}function Sd({mode:e,labels:n,className:s,isDisabled:a=!1,onModeChange:r}){return t.jsxs(c.Tabs,{"aria-label":n.title,selectedKey:e,isDisabled:a,color:"primary",size:"lg",radius:"full",className:c.cn("w-fit",s),onSelectionChange:i=>r(i),children:[t.jsx(c.Tab,{title:n.automaticMode},"automatic"),t.jsx(c.Tab,{title:n.manualMode},"manual")]})}function Ad({settings:e,inputs:n,labels:s,className:a,onSettingsChange:r}){const i=o=>{if(o==="numberOfInstallments")return t.jsx("div",{className:"min-w-0",children:t.jsx(c.Input,{variant:"bordered",label:s.numberOfInstallments,labelPlacement:"outside",type:"number",min:1,step:1,value:e.numberOfInstallments>0?String(e.numberOfInstallments):"",onWheel:l=>l.currentTarget.blur(),onChange:l=>{const d=l.target.value;r({...e,numberOfInstallments:d===""?0:Math.max(1,Number(d))})}})},o);if(o==="frequency")return t.jsx("div",{className:"min-w-0",children:t.jsx(Le,{variant:"bordered",label:s.frequency,labelPlacement:"outside",selectedKeys:[e.frequency],onSelectionChange:l=>{const d=Array.from(l)[0];typeof d=="string"&&r({...e,frequency:d})},children:bd.map(l=>t.jsx(c.SelectItem,{textValue:s[l],children:s[l]},l))})},o);if(o==="dayOfMonth"){const l=String(wd(e.firstInstallmentDate));return t.jsx("div",{className:"min-w-0",children:t.jsx(Le,{variant:"bordered",label:s.dayOfMonth,labelPlacement:"outside",selectedKeys:[l],onSelectionChange:d=>{const u=Number(Array.from(d)[0]);Number.isFinite(u)&&r({...e,firstInstallmentDate:Cd(e.firstInstallmentDate,u)})},children:yd.map(d=>t.jsx(c.SelectItem,{textValue:Ps(d),children:Ps(d)},String(d)))})},o)}return t.jsx("div",{className:"min-w-0",children:t.jsx(Fn,{variant:"bordered",label:s.firstInstallmentDate,labelPlacement:"outside",value:It(e.firstInstallmentDate),onChange:l=>r({...e,firstInstallmentDate:l?l.toString():""}),startContent:t.jsx(R,{icon:"solar:calendar-outline",className:"size-4 text-zinc-500"})})},o)};return n.length===0?null:t.jsx("div",{className:c.cn("grid gap-4",a),style:{gridTemplateColumns:"repeat(auto-fit, minmax(min(100%, 14rem), 1fr))"},children:n.map(i)})}function $d({mode:e,installments:n,rowErrors:s,labels:a,formatter:r,locale:i,onUpdateInstallment:o,onRemoveInstallment:l}){return e==="automatic"?t.jsx("div",{className:"rounded-2xl border border-zinc-200 bg-zinc-50 p-4",children:t.jsx("div",{className:c.cn("flex flex-col gap-3",n.length>5&&"max-h-[264px] overflow-y-auto pr-2"),children:n.map((d,u)=>t.jsxs("div",{className:c.cn("flex min-h-10 items-center justify-between rounded-xl px-4 py-2 text-base",u===0&&"border border-primary/25 bg-primary/5 text-primary"),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("span",{children:["#",u+1]}),t.jsx("span",{children:"▪"}),t.jsx("span",{children:jd(d.dueDate,i)}),u===0&&n.length>1&&t.jsx(c.Chip,{size:"sm",color:"primary",variant:"solid",radius:"full",children:"First charge"})]}),t.jsx("span",{className:"text-zinc-950",children:r.format(d.amount)})]},d.id))})}):t.jsx("div",{className:"flex flex-col gap-2",children:n.map((d,u)=>{const f=s.missingDateRows.has(d.id),m=s.invalidDateRows.has(d.id),x=s.invalidAmountRows.has(d.id);return t.jsx("div",{className:"flex w-full flex-col gap-1",children:t.jsxs("div",{className:"grid w-full grid-cols-[2rem_minmax(0,1fr)_minmax(0,1fr)_2.25rem] items-start gap-4",children:[t.jsx("span",{className:"pt-2 text-sm font-medium text-zinc-500",children:u+1}),t.jsx("div",{className:"min-w-0 flex-1",children:t.jsx(Fn,{variant:"bordered","aria-label":`${a.dueDate} ${u+1}`,isDisabled:d.status==="paid",isInvalid:f||m,errorMessage:f?a.dueDateRequiredError:m?a.dateOrderError:void 0,value:It(d.dueDate),onChange:h=>o(d.id,{dueDate:h?h.toString():""})})}),t.jsx("div",{className:"min-w-0 flex-1",children:t.jsx(Ed,{amount:d.amount,ariaLabel:`${a.amount} ${u+1}`,isDisabled:d.status==="paid",isInvalid:x,errorMessage:a.amountGreaterThanZeroError,onAmountChange:h=>o(d.id,{amount:h})})}),t.jsx(Fd,{isDisabled:n.length<=1,isPaid:d.status==="paid",label:a.deleteInstallment,onRemove:()=>l(d.id)})]})},d.id)})})}const Dd=/^\d*(?:[.,]\d{0,2})?$/;function Ed({amount:e,ariaLabel:n,isDisabled:s,isInvalid:a,errorMessage:r,onAmountChange:i}){const[o,l]=p.useState(null);return t.jsx(c.Input,{variant:"bordered","aria-label":n,type:"text",inputMode:"decimal",autoComplete:"off",isDisabled:s,isInvalid:a,errorMessage:a?r:void 0,value:o??(e?String(e):""),onChange:d=>{const u=d.target.value.trim();if(!Dd.test(u))return;l(u);const f=Number(u.replace(",","."));i(At(Number.isFinite(f)?f:0))},onBlur:()=>l(null),startContent:t.jsx("span",{className:"text-zinc-900",children:"$"})})}function Fd({isDisabled:e,isPaid:n,label:s,onRemove:a}){const r=t.jsx(H,{type:"button",isIconOnly:!0,variant:"flat",radius:"full",className:"h-9 w-9 flex-none bg-danger-100 p-0 text-danger-600",style:{height:36,minWidth:36,width:36},isDisabled:e||n,onPress:a,"aria-label":s,children:t.jsx(R,{icon:"solar:trash-bin-minimalistic-outline",className:"size-5"})});return n?t.jsx(c.Tooltip,{content:"This payment cannot be edited or deleted because it has already been paid.",placement:"top",children:t.jsx("span",{className:"inline-flex",children:r})}):r}function Md({total:e,donationAmount:n,hasTotalMismatch:s,mode:a,installments:r,formatter:i,labels:o,className:l}){const d=r.length,u=r[0]?.amount??0,f=r[1]?.amount??u,m=d>1&&Math.round(u*100)!==Math.round(f*100),x=At(n-e),h=Math.max(x,0),y=Math.max(-x,0),w=s?t.jsxs("span",{children:[o.totalError,". Total scheduled: ",t.jsx("strong",{children:i.format(e)})," /"," ",t.jsx("strong",{children:i.format(n)}),"."]}):a==="automatic"?m?t.jsxs("span",{children:["Saving will create ",t.jsx("strong",{children:d})," scheduled payment records:"," ",t.jsx("strong",{children:i.format(u)})," first charge and"," ",t.jsx("strong",{children:i.format(f)})," for each remaining charge."]}):t.jsxs("span",{children:["Saving will create ",t.jsx("strong",{children:d})," scheduled payment records of"," ",t.jsx("strong",{children:i.format(u)})," each."]}):t.jsxs("span",{children:["Total scheduled: ",t.jsx("strong",{children:i.format(e)})," /"," ",t.jsx("strong",{children:i.format(n)}),"."]}),b=a==="automatic"?`Total: ${i.format(e)}`:y>0?`Exceeds by: ${i.format(y)}`:`${o.remaining}: ${i.format(h)}`;return t.jsx(c.Alert,{isClosable:!1,color:s?"danger":"default",variant:"flat",radius:"full",className:l,endContent:t.jsx("span",{className:"whitespace-nowrap",children:b}),title:w})}function Ld(){return t.jsxs("section",{className:"flex w-full flex-col gap-4 rounded-2xl border border-zinc-200 bg-white p-4 shadow-sm","aria-busy":"true",children:[t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-7 w-56 rounded-lg"}),t.jsx(c.Skeleton,{className:"size-8 rounded-full"})]}),t.jsxs("div",{className:"flex items-center justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-10 w-72 rounded-full"}),t.jsx(c.Skeleton,{className:"h-10 w-40 rounded-full"})]}),t.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",children:[t.jsxs("div",{className:"flex w-full max-w-[280px] flex-col gap-2",children:[t.jsx(c.Skeleton,{className:"h-4 w-36 rounded-md"}),t.jsx(c.Skeleton,{className:"h-9 w-full rounded-xl"})]}),t.jsx(c.Skeleton,{className:"h-9 w-36 rounded-full"})]}),t.jsx("div",{className:"flex flex-col gap-3",children:Array.from({length:4}).map((e,n)=>t.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_160px] items-center gap-4 rounded-2xl border border-zinc-100 p-3",children:[t.jsx(c.Skeleton,{className:"h-8 w-full max-w-xs rounded-full"}),t.jsx(c.Skeleton,{className:"h-8 w-full rounded-xl"})]},n))})]})}const Os={paid:"bg-emerald-50 text-emerald-700",scheduled:"bg-blue-50 text-blue-700",schedule:"bg-blue-50 text-blue-700",payment_due:"bg-amber-50 text-amber-700",overdue:"bg-orange-50 text-orange-700",failed:"bg-red-50 text-red-700",refunded:"bg-zinc-100 text-zinc-600",disputed:"bg-purple-50 text-purple-700",canceled:"bg-zinc-100 text-zinc-600",processing:"bg-sky-50 text-sky-700",pending_confirmation:"bg-indigo-50 text-indigo-700"},fr={paid:"Paid",scheduled:"Scheduled",schedule:"Scheduled",payment_due:"Payment Due",overdue:"Overdue",failed:"Failed",refunded:"Refunded",disputed:"Disputed",canceled:"Canceled",processing:"Processing",pending_confirmation:"Pending Confirmation"},Td={title:"Payments",saved:"Saved",searchLabel:"Search a payment",searchPlaceholder:"Search a payment by name, ID, or date...",editInstallments:"Edit Payment",installmentId:"Payment",amount:"Amount",scheduledDate:"Scheduled Date",paidOn:"Paid on",status:"Status",actions:"Actions",payNow:"Pay now",sendLink:"Send Link",sendLinkDescription:"Send a payment link to the contact",dangerZone:"Danger zone",deleteInstallment:"Delete Payment",deleteInstallmentDescription:"Remove Payment from Opportunity",deleteInstallmentConfirmationTitle:"Delete Payment",deleteInstallmentConfirmationDescription:t.jsxs(t.Fragment,{children:["Are you sure you want to delete this payment? ",t.jsx("strong",{children:"This action cannot be undone."})]}),deleteInstallmentConfirmationCancel:"Cancel",deleteInstallmentConfirmationConfirm:"Confirm",noInstallmentsFound:"No payments found."},Id={wrapper:"!absolute !inset-0 !z-50 !items-center !justify-center !p-4",backdrop:"!absolute !inset-0 !z-40 rounded-2xl"},_d=[];function Pd({installments:e,currency:n,locale:s="en-US",showTitle:a=!0,showCard:r=!0,showEditPayment:i=!0,showDelete:o=!0,payNowHiddenStatuses:l=_d,showSavedIndicator:d=!1,labels:u,isSaving:f=!1,onEditInstallments:m,onPayInstallment:x,onDeleteInstallment:h}){const[y,w]=p.useState(null),b={...Td,...u},[j,N]=p.useState(""),C=new Intl.NumberFormat(s,{style:"currency",currency:n}),v=a?t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(G.CircleDollarSign,{className:"size-4 text-zinc-500",strokeWidth:1.75}),t.jsx("span",{className:"text-base font-medium leading-6 text-zinc-950",children:b.title}),d?t.jsx(c.Chip,{size:"sm",radius:"full",color:"success",variant:"flat",children:b.saved}):null]}):void 0,k=p.useMemo(()=>{const A=j.trim().toLowerCase();return A?e.filter(M=>{const E=M.status??"scheduled";return[Zt(M),M.id,M.amount,M.dueDate,vt(M.dueDate,s),Xt(M,b.paidOn,s),E,fr[E]??E].join(" ").toLowerCase().includes(A)}):e},[s,e,j,b.paidOn]),L=t.jsxs("div",{className:"flex min-w-0 w-full flex-col gap-4 overflow-x-hidden [container-type:inline-size]",children:[t.jsxs("div",{className:"flex min-w-0 w-full flex-wrap items-end justify-between gap-4",children:[t.jsxs("div",{className:"min-w-0 w-full max-w-[280px]",children:[t.jsx("label",{className:"mb-1 block text-sm font-normal text-zinc-950",children:b.searchLabel}),t.jsx(c.Input,{variant:"bordered",size:"md",value:j,placeholder:b.searchPlaceholder,onChange:A=>N(A.target.value),startContent:t.jsx(R,{icon:"solar:magnifer-outline",className:"size-4 text-zinc-500"})})]}),i?t.jsx(H,{type:"button",variant:"bordered",radius:"full",size:"md",className:"h-10 border-zinc-200 bg-white px-4 text-sm font-normal text-zinc-900",startContent:t.jsx(R,{icon:"solar:pen-outline",className:"size-4"}),isLoading:f,onPress:m,children:b.editInstallments}):null]}),t.jsx("div",{className:c.cn("hidden [@container(max-width:767px)]:block",k.length>3&&"max-h-[560px] overflow-y-auto pr-1"),children:t.jsxs("div",{className:"flex flex-col gap-2",children:[k.map((A,M)=>{const E=A.status??"scheduled",I=Zt(A),$=Xt(A,b.paidOn,s);return t.jsx(c.Card,{radius:"lg",shadow:"none",className:"border border-default-200",children:t.jsxs(c.CardBody,{className:"gap-3 p-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsxs("p",{className:"text-xs text-default-500",children:["#",M+1]}),t.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:I||`PMT-${M+1}`})]}),t.jsx(Rs,{status:E})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[t.jsxs("div",{children:[t.jsx("p",{className:"text-xs text-default-500",children:b.amount}),t.jsx("p",{className:"font-medium text-foreground",children:C.format(A.amount)})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("p",{className:"text-xs text-default-500",children:b.scheduledDate}),t.jsx("p",{className:"font-medium text-foreground",children:vt(A.dueDate,s)}),$?t.jsx("p",{className:"text-xs text-default-500",children:$}):null]})]}),t.jsx(zs,{status:E,installment:A,labels:b,portalContainer:y??void 0,showDelete:o,payNowHiddenStatuses:l,onPayInstallment:x,onDeleteInstallment:h})]})},A.id)}),k.length===0&&t.jsx("div",{className:"rounded-lg border border-default-200 px-4 py-6 text-center text-sm text-default-500",children:b.noInstallmentsFound})]})}),t.jsx("div",{className:c.cn("w-full overflow-x-hidden [@container(max-width:767px)]:hidden",k.length>5&&"max-h-[344px] overflow-y-auto pr-1"),children:t.jsxs("table",{className:"w-full table-fixed border-collapse text-left text-sm",children:[t.jsxs("colgroup",{children:[t.jsx("col",{className:"w-12"}),t.jsx("col",{}),t.jsx("col",{className:"w-24"}),t.jsx("col",{className:"w-36"}),t.jsx("col",{className:"w-36"}),t.jsx("col",{className:"w-44"})]}),t.jsx("thead",{children:t.jsxs("tr",{className:"sticky top-0 z-10 border-b border-zinc-200 bg-white text-zinc-900",children:[t.jsx("th",{className:"px-2 py-3 font-medium",children:"#"}),t.jsx("th",{className:"px-2 py-3 font-medium",children:b.installmentId}),t.jsx("th",{className:"px-2 py-3 font-medium",children:b.amount}),t.jsx("th",{className:"px-2 py-3 font-medium",children:b.scheduledDate}),t.jsx("th",{className:"whitespace-nowrap px-2 py-3 font-medium",children:b.status}),t.jsx("th",{className:"whitespace-nowrap py-3 pl-4 pr-2 font-medium",children:b.actions})]})}),t.jsxs("tbody",{children:[k.map((A,M)=>{const E=A.status??"scheduled",I=Zt(A),$=Xt(A,b.paidOn,s);return t.jsxs("tr",{className:"text-zinc-500",children:[t.jsx("td",{className:"px-2 py-3",children:M+1}),t.jsx("td",{className:"overflow-hidden px-2 py-3",children:t.jsx("span",{className:"block w-full truncate",children:I||`PMT-${M+1}`})}),t.jsx("td",{className:"px-2 py-3",children:C.format(A.amount)}),t.jsxs("td",{className:"px-2 py-3",children:[vt(A.dueDate,s),$?t.jsx("span",{className:"block text-xs",children:$}):null]}),t.jsx("td",{className:"whitespace-nowrap px-2 py-3",children:t.jsx(Rs,{status:E})}),t.jsx("td",{className:"whitespace-nowrap py-3 pl-4 pr-2",children:t.jsx(zs,{status:E,installment:A,labels:b,portalContainer:y??void 0,showDelete:o,payNowHiddenStatuses:l,onPayInstallment:x,onDeleteInstallment:h})})]},A.id)}),k.length===0&&t.jsx("tr",{children:t.jsx("td",{colSpan:6,className:"px-2 py-6 text-center text-zinc-500",children:b.noInstallmentsFound})})]})]})})]});return t.jsx("div",{ref:w,className:"vvt-ps relative min-w-0 w-full overflow-x-hidden [container-type:inline-size] font-sans text-zinc-900",children:r?t.jsx(c.Accordion,{variant:"splitted",defaultSelectedKeys:["installment-table"],className:"min-w-0 w-full gap-0 px-0",itemClasses:{base:"min-w-0 w-full overflow-x-hidden rounded-2xl border border-zinc-200 bg-white p-0 shadow-sm",trigger:"px-4 py-4",title:"w-full",content:"min-w-0 w-full overflow-x-hidden px-4 pb-4 pt-0",indicator:"text-zinc-500 [&>svg]:size-4"},children:t.jsx(c.AccordionItem,{"aria-label":b.title,title:v,children:L},"installment-table")}):L})}function Zt(e){return e.name?.trim()||e.id}function Xt(e,n,s){return e.status!=="paid"||!e.fulfilledAt?null:`${n} ${vt(e.fulfilledAt,s)}`}function Rs({status:e}){return t.jsx(c.Chip,{size:"md",radius:"lg",className:c.cn("justify-center px-4",Os[e]??Os.scheduled),startContent:t.jsx(Rd,{status:e}),children:fr[e]??e})}function zs({status:e,installment:n,labels:s,portalContainer:a,showDelete:r,payNowHiddenStatuses:i,onPayInstallment:o,onDeleteInstallment:l}){const d=!i.includes(e);return t.jsxs("div",{className:"flex min-w-36 items-center justify-start gap-2",children:[d?t.jsx(H,{type:"button",size:"md",color:"primary",variant:"solid",radius:"full",className:"min-w-[104px] shrink-0",isDisabled:e==="paid",startContent:t.jsx(R,{icon:"solar:dollar-minimalistic-outline",className:"size-4"}),onPress:()=>o?.(n),children:s.payNow}):null,t.jsx(Od,{isFulfilled:e==="paid",showDelete:r,labels:s,portalContainer:a,onDelete:()=>l(n.id)})]})}function Od({isFulfilled:e,showDelete:n,labels:s,portalContainer:a,onDelete:r}){const[i,o]=p.useState(!1);return t.jsxs(t.Fragment,{children:[t.jsxs(c.Dropdown,{placement:"bottom-end",radius:"lg",children:[t.jsx(c.DropdownTrigger,{children:t.jsx(H,{type:"button",isIconOnly:!0,size:"sm",variant:"light",className:"text-zinc-900","aria-label":"More actions",children:t.jsx(R,{icon:"solar:menu-dots-bold",className:"size-4"})})}),t.jsxs(c.DropdownMenu,{"aria-label":"Installment actions",disabledKeys:e?["send-link","delete"]:[],className:"w-72 p-2",onAction:l=>{l==="delete"&&n&&!e&&o(!0)},children:[t.jsx(c.DropdownSection,{title:"Actions",showDivider:n,children:t.jsx(c.DropdownItem,{textValue:s.sendLink,description:s.sendLinkDescription,startContent:t.jsx(R,{icon:"solar:link-outline",className:"size-5 text-zinc-500"}),children:s.sendLink},"send-link")}),n?t.jsx(c.DropdownSection,{title:s.dangerZone,children:t.jsx(c.DropdownItem,{textValue:s.deleteInstallment,className:"text-danger-600",color:"danger",description:s.deleteInstallmentDescription,startContent:t.jsx(R,{icon:"solar:trash-bin-minimalistic-outline",className:"size-5"}),children:s.deleteInstallment},"delete")}):null]})]}),n?t.jsx(zn,{isOpen:i,labels:{title:s.deleteInstallmentConfirmationTitle,description:s.deleteInstallmentConfirmationDescription,cancel:s.deleteInstallmentConfirmationCancel,confirm:s.deleteInstallmentConfirmationConfirm},icon:t.jsx(R,{icon:"solar:danger-triangle-outline",className:"size-7"}),confirmColor:"danger",portalContainer:a,shouldBlockScroll:!1,classNames:Id,onClose:()=>o(!1),onConfirm:()=>{o(!1),r()}}):null]})}function Rd({status:e}){return e==="paid"?t.jsx(R,{icon:"solar:check-circle-bold",className:"size-3"}):e==="failed"?t.jsx(R,{icon:"solar:close-circle-bold",className:"size-3"}):e==="processing"?t.jsx(R,{icon:"solar:refresh-circle-bold",className:"size-3"}):e==="pending_confirmation"?t.jsx(R,{icon:"solar:clock-circle-bold",className:"size-3"}):t.jsx(R,{icon:"solar:calendar-outline",className:"size-3"})}const zd=/^\d{4}-\d{2}-\d{2}$/;function vt(e,n){const s=zd.test(e)?new Date(`${e}T00:00:00`):new Date(e);return Number.isNaN(s.getTime())?e:new Intl.DateTimeFormat(n,{month:"short",day:"numeric",year:"numeric"}).format(s)}const Bd={title:"Select Membership",renewalTitle:"Automatic Renewal",renewalDescription:"Membership will automatically renew at the end of each period"},Vd=({cards:e,locale:n,currency:s,listHeightClassName:a="",labels:r,showRenewal:i=!0,defaultRenewalValue:o=!1,initialSelectedMembershipId:l=null,allowReselect:d=!0,onRenewalChange:u,onCardSelect:f,className:m=""})=>{const x=Array.isArray(e)?e:[],[h,y]=p.useState(l),[w,b]=p.useState(o),j={...Bd,...r};p.useEffect(()=>{y(l)},[l]);const N=v=>{if(v===h){d&&f?.(v);return}y(v),f?.(v)},C=v=>{b(v),u?.(v)};return t.jsxs("div",{className:c.cn("w-full flex flex-col gap-4 items-start p-4 h-svh",m),"data-testid":"membership-select-cards",children:[t.jsx("span",{className:"hidden","data-testid":"membership-select-cards-selected-id",children:h??""}),t.jsx("p",{className:"text-2xl font-semibold text-left","data-testid":"membership-select-cards-title",children:j.title}),i&&t.jsx(pr,{title:j.renewalTitle,description:j.renewalDescription,value:w,onValueChange:C}),t.jsx("div",{className:c.cn("w-full min-h-0 flex flex-col gap-4 overflow-y-auto",a===""?"flex-1":c.cn("shrink-0",a)),"data-testid":"membership-select-cards-list",children:x.map(v=>t.jsx(mr,{itemKey:v.id,name:v.name,type:v.type,price:v.price,locale:n,currency:s,isSelected:h===v.id,onSelect:N},v.id))})]})},mr=({itemKey:e,name:n,type:s,price:a,locale:r="en-US",currency:i="USD",showPrice:o=!0,isSelected:l=!1,onSelect:d,compact:u=!1,isDisabled:f=!1,disabledReason:m,statusLabel:x,statusTone:h="default",className:y=""})=>{const w=new Intl.NumberFormat(r,{style:"currency",currency:i,minimumFractionDigits:0,maximumFractionDigits:2}).format(a),b=!!d&&!f,j=m||x,N=()=>{b&&d?.(e)};return t.jsx(c.Card,{shadow:"none",isPressable:!!d,onPress:N,className:c.cn("w-full min-h-fit border rounded-3xl",l?"border-primary bg-primary/5":"border-default",f?"opacity-60":"",u?"rounded-2xl":"",y),"data-testid":"item-card","data-selected":l,isDisabled:f,children:t.jsxs("div",{className:c.cn("px-4 py-8 flex gap-6 items-center justify-between",u&&"px-3 py-3 gap-4"),children:[t.jsxs("div",{className:"w-max flex flex-col gap-1 items-start",children:[t.jsx("p",{className:c.cn("font-semibold text-left",u?"text-sm":"text-xl"),"data-testid":"item-card-name",children:n}),s&&t.jsx("div",{"data-testid":"item-card-type",className:"w-fit bg-default-300 px-4 py-2 text-sm rounded-xl",children:t.jsx("p",{className:"text-center",children:s})}),j&&t.jsx(c.Chip,{"data-testid":"item-card-status",color:h,size:"sm",variant:"flat",className:"px-2",children:j})]}),o&&t.jsx("p",{className:c.cn("font-semibold text-right",u?"text-lg":"text-2xl"),"data-testid":"item-card-price",children:w})]})})},Bs="w-full bg-gray-100",Vs={variant:"light",color:"default"},hr=({id:e,title:n,media:s,imageUrl:a,imageAlt:r,imageClassName:i="",imageAspect:o="aspect-[4/3]",meta:l=[],price:d,action:u,footer:f,onPress:m,isPressable:x=!1,isDisabled:h=!1,compact:y=!1,className:w="",bodyClassName:b="",footerClassName:j="",dataTestId:N})=>{const C=!!(d&&d.value),v=!!u?.label,k=x&&!!m&&!v,L=!k,A=v?{variant:u?.variant??Vs.variant,color:u?.color??Vs.color,size:u?.size??"sm",isDisabled:h||u?.isDisabled,startContent:u?.icon?t.jsx(R,{icon:u.icon,width:16}):void 0}:null,M=s??(a?t.jsx("div",{className:c.cn("relative overflow-hidden rounded-xl",o,Bs,i),children:t.jsx(c.Image,{removeWrapper:!0,src:a,alt:r||n,className:"size-full object-cover",classNames:{wrapper:"absolute inset-0"}})}):t.jsx("div",{className:c.cn("relative overflow-hidden rounded-xl",o,Bs,"grid place-items-center",i),"data-testid":`catalog-item-card-${e??"media"}-fallback`,children:t.jsx(R,{icon:"solar:ticket-outline",width:48,className:"text-default-400"})}));return t.jsxs(c.Card,{"data-testid":N||`catalog-item-card-${e??"item"}`,className:c.cn("w-full overflow-hidden",w),isPressable:k,onPress:m,isDisabled:h,shadow:"sm",radius:"lg",children:[t.jsx("div",{children:M}),t.jsxs(c.CardBody,{className:c.cn("gap-3",y?"p-3":"p-4",b),children:[t.jsx("h3",{"data-testid":`catalog-item-card-title-${e??""}`,className:c.cn("line-clamp-2 text-base font-semibold text-gray-900",y?"text-sm":""),children:n}),l.length>0?t.jsx("div",{className:"flex flex-col gap-1.5 text-sm text-gray-600","data-testid":`catalog-item-card-meta-${e??""}`,children:l.map((E,I)=>t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(R,{icon:E.icon,className:"size-4 text-gray-400",width:16}),t.jsx("span",{children:E.label})]},`${E.label}-${I}`))}):null,(C||v)&&t.jsxs("div",{className:c.cn("flex items-center justify-end gap-2 pt-1 text-sm",y?"pt-0.5":"",j),children:[C?t.jsxs("span",{className:c.cn("mr-auto text-gray-500",y?"text-xs":""),"data-testid":`catalog-item-card-price-${e??""}`,children:[d?.label&&t.jsxs("span",{children:[d.label," "]}),t.jsx("span",{className:"font-semibold text-brand",children:d?.value})]}):t.jsx("span",{className:"ml-auto","aria-hidden":!0}),v&&L?t.jsx(H,{className:c.cn("rounded-full",u?.className),onPress:u?.onPress,variant:A?.variant,color:A?.color,size:A?.size,startContent:A?.startContent,isDisabled:A?.isDisabled,"aria-label":u?.ariaLabel||u?.label,children:u?.label}):null]}),f?t.jsx("div",{className:"pt-1",children:f}):null]})]})};hr.displayName="CatalogItemCard";const Ud={card:"gap-3 rounded-xl border border-dashed px-6 py-12",panel:"px-6 py-[72px]"},Hd={card:"size-12 rounded-2xl",panel:"size-[76px] rounded-[20px] border mb-[18px]"},qd={card:"text-base font-medium text-default-900",panel:"text-[17px] font-semibold text-acct-ink"},Wd={card:"max-w-sm text-sm text-default-600",panel:"max-w-[380px] text-sm text-acct-sub mt-1.5"},Yd={card:"mt-1",panel:"mt-[22px]"},Gd="bg-acct-page border-acct-border text-acct-muted",Kd={empty:"solar:inbox-line-duotone",error:"solar:danger-triangle-outline",success:"solar:check-circle-bold"},Qd={empty:"border-default-200 bg-white",error:"border-danger-200 bg-white",success:"border-success-100 bg-success-50/40",loading:"border-default-200 bg-white"},Zd={empty:"bg-default-100 text-default-400",error:"bg-danger-50 text-danger-600",success:"bg-success-100 text-success-700",loading:"bg-primary-50 text-primary"},Xd={empty:"status",error:"alert",success:"status",loading:"status"},Jd={empty:"polite",error:"assertive",success:"polite",loading:"polite"};function eu(e,n,s,a){if(n===!1)return null;if(e==="loading"&&n===void 0)return t.jsx(c.Spinner,{size:"lg",color:"primary",className:a.spinner});if(p.isValidElement(n))return t.jsx(t.Fragment,{children:n});const r=typeof n=="string"?n:Kd[e];return r?t.jsx(R,{icon:r,width:s,height:s,"aria-hidden":"true",className:a.icon}):null}function et({variant:e="empty",surface:n="card",title:s,titleAs:a="p",description:r,icon:i,actions:o,role:l=Xd[e],ariaLive:d=Jd[e],iconSize:u=24,className:f,classNames:m={},"data-testid":x="feedback-state"}){const h=eu(e,i,u,m);return t.jsxs("div",{role:l,"aria-live":d,"data-variant":e,"data-testid":x,"data-surface":n,className:c.cn("flex flex-col items-center justify-center text-center",Ud[n],n==="card"?Qd[e]:"bg-transparent",f,m.base),children:[h?t.jsx("span",{"aria-hidden":"true","data-testid":`${x}-icon`,className:c.cn("inline-flex items-center justify-center",Hd[n],e==="success"&&n==="card"&&"rounded-full",n==="panel"?Gd:Zd[e],m.iconWrapper),children:h}):null,t.jsxs("div",{className:c.cn("flex flex-col items-center",n==="card"&&"gap-1"),children:[t.jsx(a,{"data-testid":`${x}-title`,className:c.cn(qd[n],m.title),children:s}),r?t.jsx("p",{"data-testid":`${x}-description`,className:c.cn(Wd[n],m.description),children:r}):null]}),o?t.jsx("div",{"data-testid":`${x}-actions`,className:c.cn("flex flex-wrap items-center justify-center gap-2",Yd[n],m.actions),children:o}):null]})}function Bn(e){return t.jsx(et,{...e,variant:"empty"})}function Vn(e){return t.jsx(et,{...e,variant:"error"})}function Un(e){return t.jsx(et,{...e,variant:"loading"})}function xr(e){return t.jsx(et,{...e,variant:"success"})}et.displayName="FeedbackState";Bn.displayName="EmptyState";Vn.displayName="ErrorState";Un.displayName="LoadingState";xr.displayName="SuccessState";const pr=({title:e,value:n,description:s,onValueChange:a,className:r=""})=>{const i=p.useId();return t.jsxs("div",{className:c.cn("w-full flex flex-row items-center",e||s?"justify-between gap-6":"justify-start",r),"data-testid":"toggle",children:[t.jsxs("div",{className:"flex flex-col items-start",children:[e&&t.jsx("label",{htmlFor:i,className:"font-medium text-left","data-testid":"toggle-title",children:e}),s&&t.jsx("p",{className:"text-left text-gray-500","data-testid":"toggle-description",children:s})]}),t.jsx(c.Switch,{id:i,isSelected:n,onValueChange:a,"data-testid":"toggle-switch"})]})},tu={ticketSelectionTitle:"Choose tickets to be upgraded",ticketsAllowedToRedeem:"Tickets allowed to redeem:",ticketsSelectedToRedeem:"Tickets selected to redeem",noUpgradeTicketsAvailable:"No upgrade tickets available to select",selectAllButtonLabel:"Select All"},nu=(e,n)=>new Intl.NumberFormat(e,{style:"currency",currency:n}),gr=e=>Object.values(e).reduce((n,s)=>n+Object.values(s).reduce((a,r)=>a+Object.values(r).reduce((i,o)=>i+o.selectedQuantity,0),0),0),su=e=>e.reduce((n,s)=>n+s.dates.reduce((a,r)=>a+r.tickets.reduce((i,o)=>i+o.max,0),0),0),Hn=e=>e.flatMap(n=>n.dates.flatMap(s=>s.tickets.map(a=>({exhibition:n,dateGroup:s,ticket:a})))),Us=(e,n,s)=>{const a={};let r=s?n??su(e):0;for(const{exhibition:i,dateGroup:o,ticket:l}of Hn(e)){a[i.id]??={},a[i.id][o.id]??={};const d=s?Math.min(l.max,r):0;a[i.id][o.id][l.id]={id:l.id,selectedQuantity:d,originalPrice:l.originalPrice,discountedPrice:l.price},r-=d}return a},Hs=(e,n,s)=>`${e}::${n}::${s}`,au=(e,n,s)=>{const a=gr(n);for(const{exhibition:r,dateGroup:i,ticket:o}of Hn(e)){const l=n[r.id]?.[i.id]?.[o.id]?.selectedQuantity??0,d=s===void 0?o.max:Math.min(o.max,s-(a-l));if(d>0&&l<d)return!1}return!0},ru=({initialQuantity:e=1,minQuantity:n=1,maxQuantity:s=10,onChange:a,disabled:r=!1})=>{const i=Math.max(n,Math.min(s,e)),[o,l]=p.useState(()=>String(i)),[d,u]=p.useState(!1),f=d?o:String(i),m=()=>{r||i>=s||a?.(i+1)},x=()=>{r||i<=n||a?.(i-1)},h=v=>{if(r)return;l(v.target.value);const k=parseInt(v.target.value,10);isNaN(k)||a?.(Math.max(n,Math.min(s,k)))},y=v=>{const k=parseInt(v.target.value,10);if(u(!1),isNaN(k)){a?.(n);return}const L=Math.max(n,Math.min(s,k));L!==k?a?.(L):l(String(L))},w=i<=n,b=i>=s,j="w-10 h-10 flex items-center justify-center border-0 rounded-full cursor-pointer transition-colors duration-150 text-white text-2xl font-regular",N="bg-primary hover:bg-primary/80",C="bg-primary/40 cursor-not-allowed";return t.jsxs("div",{className:"flex items-center gap-4","data-testid":"quantity-selector",children:[t.jsx("button",{type:"button",onClick:x,disabled:r||w,className:c.cn(j,r||w?C:N),"aria-label":"Decrement quantity","data-testid":"quantity-decrement",children:"-"}),t.jsx("input",{type:"number",value:f,onChange:h,onFocus:()=>u(!0),onBlur:y,disabled:r,min:n,max:s,step:"1",className:"w-12 h-10 rounded-md border-0 bg-zinc-100 text-center text-2xl font-medium text-zinc-900 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none","aria-label":`Selected quantity: ${i}`,"data-testid":"quantity-input"}),t.jsx("button",{type:"button",onClick:m,disabled:r||b,className:c.cn(j,r||b?C:N),"aria-label":"Increment quantity","data-testid":"quantity-increment",children:"+"})]})},iu=({label:e,checked:n=!1,onChange:s,disabled:a=!1})=>{const r=()=>{a||s?.(!n)};return t.jsxs("button",{type:"button",onClick:r,disabled:a,role:"checkbox","aria-checked":n,"data-testid":"checkbox-button","data-checked":n,className:c.cn("flex items-center gap-1.5 px-4 py-3 border-0 rounded-full cursor-pointer text-sm min-h-[30px]","outline-none select-none transition-colors bg-zinc-100 hover:bg-zinc-200 text-primary",a&&"cursor-not-allowed opacity-60"),children:[t.jsxs("span",{className:"relative flex items-center justify-center w-5 h-5 flex-shrink-0",children:[t.jsx("input",{type:"checkbox",checked:n,onChange:()=>{},disabled:a,className:"absolute opacity-0 w-0 h-0 pointer-events-none",tabIndex:-1,readOnly:!0}),t.jsx("span",{className:c.cn("block w-3.5 h-3.5 rounded-sm relative",n?"bg-primary":"bg-white ring-1 ring-zinc-300"),children:n&&t.jsx("span",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[60%] rotate-45 w-[3px] h-[5px] border border-white border-t-0 border-l-0","aria-hidden":"true"})})]}),t.jsx("p",{className:"flex-1 m-0 text-left leading-snug",children:e})]})},lu=({item:e,quantity:n,onChange:s,getTotalSelectedTickets:a,userMaxLimit:r,settings:i,labels:o})=>{const l=()=>{if(!a||r===void 0)return e.max;const m=a();return Math.min(e.max,r-(m-n))},d=i?.locale??"en-US",u=i?.currency??"USD",f=nu(d,u);return t.jsxs("div",{children:[t.jsxs("div",{className:"flex items-center justify-between bg-white px-3 py-2.5 gap-8","data-testid":"upgrade-ticket-item",children:[t.jsxs("div",{className:"min-w-0 flex flex-1 flex-col gap-2",children:[t.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[t.jsxs("h3",{className:"min-w-0 text-base font-semibold text-zinc-900 m-0","data-testid":"ticket-name",children:[e.name,typeof e.purchasedQuantity=="number"&&e.purchasedQuantity>1?t.jsx("span",{"data-testid":"ticket-purchased-quantity",children:` x${e.purchasedQuantity}`}):null]}),t.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[t.jsx("h3",{className:"line-through text-zinc-500 text-[0.9rem] font-normal m-0","data-testid":"ticket-original-price",children:f.format(e.originalPrice)}),t.jsx("h3",{className:"text-base font-semibold text-zinc-900 m-0","data-testid":"ticket-discounted-price",children:f.format(e.price)})]})]}),e.membershipName?t.jsx("div",{"data-testid":"ticket-membership-name",className:"max-w-full self-start rounded-2xl bg-default-100 px-3 py-1 text-xs text-default-700",title:e.membershipName,children:t.jsx("p",{className:"max-w-full truncate text-center",children:e.membershipName})}):null,t.jsx("div",{className:"text-sm text-zinc-500",children:t.jsxs("p",{className:"m-0","data-testid":"ticket-max",children:[o.ticketsAllowedToRedeem," ",e.max]})})]}),t.jsx(ru,{initialQuantity:n,minQuantity:0,maxQuantity:l(),onChange:s})]}),e.membershipAlert?t.jsx(c.Alert,{"data-testid":"ticket-membership-alert",color:"warning",variant:"flat",radius:"full",className:"ticket-selection-membership-alert mb-2 w-full max-w-full py-0 shadow-none",classNames:{base:"ticket-selection-membership-alert-base !min-h-8 !items-center !bg-[#F5CB24]/15 !text-[#5B2C0F] shadow-none",mainWrapper:"ticket-selection-membership-alert-main-wrapper m-0 min-h-8 !py-0 !px-0",alertIcon:"ticket-selection-membership-alert-icon w-4 h-4 !text-[#5B2C0F]",iconWrapper:"ticket-selection-membership-alert-icon-wrapper !min-w-0 !bg-transparent !border-none !shadow-none !rounded-none !p-0 !m-0 !w-4 !h-4",description:"ticket-selection-membership-alert-description !ms-2 !my-2 !text-[#5B2C0F]"},description:t.jsx("span",{className:"ticket-selection-membership-alert-description-text block w-full whitespace-normal break-words text-sm leading-4 text-[#5B2C0F]",children:e.membershipAlert})}):null]})},ou=({exhibitionId:e,dateGroup:n,isLast:s=!1,onQuantityChange:a,getTicketQuantity:r,getTotalSelectedTickets:i,userMaxLimit:o,settings:l,labels:d})=>t.jsxs("div",{className:c.cn("flex flex-col gap-2 pb-3",!s&&"border-b border-zinc-200"),"data-testid":"upgrade-ticket-date-group",children:[t.jsx("p",{className:"m-0 text-sm text-left text-zinc-500","data-testid":"upgrade-ticket-date",children:n.date}),n.tickets.map((u,f)=>t.jsxs("div",{children:[t.jsx(lu,{item:u,quantity:r(e,n.id,u.id),onChange:m=>a(e,n.id,u.id,m),getTotalSelectedTickets:i,userMaxLimit:o,settings:l,labels:d}),f<n.tickets.length-1?t.jsx(c.Divider,{className:"bg-zinc-200","data-testid":"upgrade-ticket-divider"}):null]},u.id))]}),cu=({title:e,exhibition:n,onQuantityChange:s,getTicketQuantity:a,getTotalSelectedTickets:r,userMaxLimit:i,settings:o,labels:l,initialExpanded:d=!1})=>{const[u,f]=p.useState(d),m=n.dates.reduce((h,y)=>h+y.tickets.reduce((w,b)=>w+a(n.id,y.id,b.id),0),0),x=n.dates.some(h=>h.tickets.length>0);return t.jsxs("div",{className:"w-full overflow-hidden border-b border-zinc-200","data-testid":"upgrade-ticket-header",children:[t.jsx("button",{type:"button",className:"flex items-center w-full px-5 py-4 border-0 cursor-pointer transition-all bg-white hover:bg-zinc-100",onClick:()=>f(!u),"aria-expanded":u,"aria-controls":`upgrade-items-${n.id}`,"data-testid":"upgrade-ticket-header-button",children:t.jsxs("div",{className:"flex justify-between items-center w-full gap-6",children:[t.jsx("h4",{className:"m-0 text-base font-semibold text-left text-zinc-900","data-testid":"upgrade-ticket-header-title",children:e}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsxs("p",{className:"m-0 text-sm text-right text-zinc-500","data-testid":"upgrade-ticket-header-count",children:[m," ",l.ticketsSelectedToRedeem]}),t.jsx("span",{className:c.cn("inline-flex items-center justify-center text-zinc-500 text-xl transition-transform duration-200",u&&"rotate-180"),"aria-hidden":"true",children:t.jsx(R,{icon:"mdi:chevron-down"})})]})]})}),t.jsx("div",{id:`upgrade-items-${n.id}`,className:c.cn("transition-all duration-300 overflow-hidden",u?"max-h-[1000px] opacity-100":"max-h-0 opacity-0"),"aria-hidden":!u,children:u&&t.jsx("div",{className:"px-5 flex flex-col gap-6","data-testid":"upgrade-ticket-items",children:x?n.dates.map((h,y)=>t.jsx(ou,{exhibitionId:n.id,dateGroup:h,isLast:y===n.dates.length-1,onQuantityChange:s,getTicketQuantity:a,getTotalSelectedTickets:r,userMaxLimit:i,settings:o,labels:l},h.id)):t.jsx("div",{className:"px-5 py-10 text-center",children:t.jsx("p",{className:"m-0 text-zinc-500 italic",children:l.noUpgradeTicketsAvailable})})})})]})},du=({initialExpanded:e=!1,userMaxLimit:n,labels:s,settings:a,ticketSelectionData:r,className:i="",onSelectionChange:o})=>{const l=p.useMemo(()=>r??[],[r]),d={...tu,...s},[u,f]=p.useState(()=>Us(l,n,!0)),m=p.useRef(!1),x=p.useMemo(()=>{const N=Hn(l).map(({exhibition:C,dateGroup:v,ticket:k})=>[Hs(C.id,v.id,k.id),k]);return new Map(N)},[l]),h=au(l,u,n),y=(N,C,v)=>u[N]?.[C]?.[v]?.selectedQuantity??0,w=()=>gr(u),b=(N,C,v,k)=>{const L=y(N,C,v),A=w()-L;if(n!==void 0&&A+k>n)return;const M=x.get(Hs(N,C,v));if(!M)return;const E={...u,[N]:{...u[N],[C]:{...u[N]?.[C],[v]:{id:v,selectedQuantity:k,originalPrice:M.originalPrice,discountedPrice:M.price}}}};f(E),o?.(E)},j=N=>{const C=Us(l,n,N);f(C),o?.(C)};return p.useEffect(()=>{!m.current&&h&&(o?.(u),m.current=!0)},[h,u,o]),t.jsxs("div",{className:c.cn("flex flex-col w-full font-sans",i),"data-testid":"ticket-selection",children:[t.jsxs("div",{className:"flex items-center justify-between py-2 gap-4","data-testid":"ticket-selection-header",children:[t.jsx("h3",{className:"text-xl font-semibold m-0","data-testid":"ticket-selection-title",children:d.ticketSelectionTitle}),t.jsx(iu,{label:d.selectAllButtonLabel,checked:h,onChange:j})]}),l.map(N=>t.jsx(cu,{title:N.exhibitionName,exhibition:N,onQuantityChange:b,getTicketQuantity:y,getTotalSelectedTickets:w,userMaxLimit:n,settings:a,labels:d,initialExpanded:e},N.id))]})},Jt={confirm:"Confirm",clear:"Clear",noLabel:"Filters"},en=e=>{const n={};for(const s of e)s.type==="checkbox"?n[s.id]=[...s.selectedValues]:n[s.id]=s.selectedValue?[s.selectedValue]:[];return n},uu=(e,n)=>{const s={};for(const a of n){if(a.type==="checkbox"){s[a.id]=e[a.id]??[...a.selectedValues];continue}const r=e[a.id]??[];s[a.id]=r.length>0?r[0]:null}return s},fu=e=>e.type==="checkbox"?e.selectedValues.length>0:e.selectedValue!==null,br=({triggerLabel:e,triggerAriaLabel:n,triggerIcon:s="solar:tuning-square-outline",triggerVariant:a="bordered",triggerColor:r="default",triggerSize:i="sm",triggerClassName:o,popoverClassName:l,className:d,sections:u,onConfirm:f,onClear:m,appliedCount:x,countAriaLabel:h,countDisplay:y="badge",confirmLabel:w=Jt.confirm,clearLabel:b=Jt.clear,isOpen:j,defaultOpen:N=!1,onOpenChange:C,isDisabled:v=!1,closeOnConfirm:k=!0,keepOpenAfterClear:L=!1})=>{const[A,M]=p.useState(N),[E,I]=p.useState(()=>en(u)),$=j??A,D=x??u.filter(q=>fu(q)).length,T=q=>{q&&I(en(u)),j||M(q),C?.(q)},_=(q,Q)=>{I(K=>({...K,[q.id]:Q}))},Y=(q,Q)=>{I(K=>({...K,[q.id]:Q?[Q]:[]}))},B=async()=>{I(en(u.map(q=>q.type==="checkbox"?{...q,selectedValues:[]}:{...q,selectedValue:null}))),await m(),L||T(!1)},V=async()=>{const q=uu(E,u);await f(q),k&&T(!1)},Z=q=>{if(q.type==="checkbox")return t.jsx(c.CheckboxGroup,{label:q.label,value:E[q.id]??[],onValueChange:K=>_(q,K),children:q.options.map(K=>t.jsx(c.Checkbox,{value:K.value,isDisabled:K.isDisabled,children:K.label},K.value))},q.id);const Q=E[q.id]?.[0]??"";return t.jsx(c.RadioGroup,{label:q.label,value:Q,onValueChange:K=>Y(q,K||null),children:q.options.map(K=>t.jsx(c.Radio,{value:K.value,isDisabled:K.isDisabled,children:K.label},K.value))},q.id)},J=p.useMemo(()=>D>0?h?.(D)||`${D} filters applied`:void 0,[h,D]),re=p.useMemo(()=>D===0?e||Jt.noLabel:h?h(D):`${e} (${D})`,[D,e,h]);return t.jsx("div",{className:d,children:t.jsxs(c.Popover,{isOpen:$,onOpenChange:T,placement:"bottom-end",children:[t.jsx(c.PopoverTrigger,{children:t.jsxs(H,{isDisabled:v,variant:a,color:r,size:i,className:o,"aria-label":n,"aria-haspopup":"dialog","aria-expanded":$,children:[t.jsx(R,{icon:s,width:16}),t.jsx("span",{children:e}),y==="badge"&&D>0?t.jsx("span",{className:"ml-1 inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-gray-900 px-1.5 text-xs font-medium text-white","aria-label":J,children:D}):y==="summary"&&re!==e?t.jsx("span",{className:"text-xs",children:re}):null]})}),t.jsx(c.PopoverContent,{className:l,children:t.jsxs("div",{className:"flex w-full flex-col gap-5 px-4 py-4",children:[u.map(q=>Z(q)),t.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-gray-200 pt-3",children:[t.jsx(H,{variant:"light",color:"default",size:"sm",onPress:B,children:b}),t.jsx(H,{color:"primary",size:"sm",onPress:V,children:w})]})]})})]})})};br.displayName="FilterPopover";const mu="No sessions available for this date",hu=e=>e==="sold-out"||e==="closed"?"danger":"success",xu=e=>{const n=e.seatsRemaining;return e.status==="sold-out"||e.status==="closed"?"Sold out":e.status==="limited"?typeof n=="number"?`${n} left`:"Limited":typeof n=="number"?`${n} seats available`:"Available"},qs=e=>e.isDisabled?!0:e.status==="sold-out"||e.status==="closed",pu=(e,n)=>n&&e.some(s=>s.date===n)?n:e[0]?.date??null,yr=({heading:e,subheading:n,days:s,selectedDate:a,onDateSelect:r,quickDates:i,selectedSessionId:o=null,onSessionSelect:l,emptyStateMessage:d=mu,statusLabel:u,statusTone:f,sessionAriaLabel:m,dayButtonClassName:x,calendarSlot:h,dayGroupAriaLabel:y,sessionGridAriaLabel:w,className:b,headingClassName:j,subheadingClassName:N})=>{const C=pu(s,a),v=s.find(E=>E.date===C),k=i??s.map(E=>({date:E.date,label:E.label})),L=v?.sessions??[],A=E=>E===C?"solid":"bordered",M=E=>{if(!qs(E)){if(E.id===o){l(null);return}l(E.id)}};return t.jsxs("section",{className:c.cn("flex flex-col gap-4 rounded-xl bg-white p-3 sm:p-4",b),"data-testid":"session-timeline-root",children:[t.jsxs("header",{className:"flex flex-col gap-1",children:[t.jsx("h2",{className:c.cn("text-base font-semibold text-gray-900",j),children:e}),n?t.jsx("p",{className:c.cn("text-sm text-gray-700",N),children:n}):null]}),t.jsxs("div",{className:"flex flex-wrap items-center gap-2",role:"group","aria-label":y||"Session days",children:[k.map(E=>t.jsx(H,{size:"sm",variant:A(E.date),color:"default",className:c.cn("rounded-full",x),isDisabled:E.isDisabled,onPress:()=>{r(E.date)},children:t.jsx("span",{children:E.label})},E.date)),h?t.jsx("div",{children:h}):null]}),t.jsxs("ul",{className:"grid grid-cols-1 gap-2 sm:grid-cols-3","aria-label":w||"Sessions",children:[L.length===0?t.jsx("li",{className:"rounded-lg bg-white px-4 py-6 text-center text-sm text-gray-600 sm:col-span-3",children:d}):null,L.map(E=>{const I=qs(E),$=E.id===o;return t.jsx("li",{className:"rounded-xl",children:t.jsx(c.Card,{shadow:"sm",radius:"lg",isPressable:!I,onPress:()=>{M(E)},"aria-disabled":I,"aria-pressed":I?void 0:$,className:c.cn("w-full",I?"bg-gray-100 opacity-70":"",$?"w-full ring-2 ring-gray-900":""),"aria-label":m?m(E,{isSelected:$,isUnavailable:I}):I?`${E.startTime} ${E.endTime} sold out`:`${E.startTime} ${E.endTime} available`,children:t.jsxs(c.CardBody,{className:"flex flex-col items-center gap-3 p-4 text-center",children:[t.jsxs("span",{className:"text-sm font-semibold text-gray-900",children:[E.startTime," – ",E.endTime]}),t.jsx(c.Chip,{size:"sm",color:f?f(E):hu(E.status),variant:"flat",children:u?u(E):xu(E)})]})})},E.id)})]})]})};yr.displayName="SessionTimeline";const gu=(e,n)=>typeof e=="string"?t.jsx(R,{icon:e,className:"size-5","aria-hidden":"true"}):e||n||null,vr=({title:e,subtitle:n,eyebrow:s,icon:a,initials:r,actions:i,titleAs:o="h1",className:l,classNames:d={},"data-testid":u="page-header"})=>{const f=gu(a,r);return t.jsxs("header",{"data-testid":u,className:c.cn("flex flex-wrap items-start justify-between gap-4",l,d.base),children:[t.jsxs("div",{className:"flex items-center gap-4",children:[f?t.jsx("div",{"aria-hidden":"true","data-testid":`${u}-icon`,className:c.cn("flex size-12 shrink-0 items-center justify-center rounded-xl bg-gray-900 text-sm font-semibold text-white",d.iconWrapper),children:f}):null,t.jsxs("div",{children:[s?t.jsx("p",{"data-testid":`${u}-eyebrow`,className:c.cn("text-brand text-sm font-medium uppercase tracking-wide",d.eyebrow),children:s}):null,t.jsx(o,{"data-testid":`${u}-title`,className:c.cn("text-3xl font-semibold text-gray-950",d.title),children:e}),n?t.jsx("p",{"data-testid":`${u}-subtitle`,className:c.cn("mt-1 text-sm text-gray-600",d.subtitle),children:n}):null]})]}),i?t.jsx("div",{"data-testid":`${u}-actions`,className:c.cn("flex flex-wrap items-center gap-2",d.actions),children:i}):null]})};vr.displayName="PageHeader";const bu={active:"success",success:"success",draft:"warning",pending:"warning",warning:"warning",danger:"danger",archived:"default",inactive:"default",neutral:"default"},yu={active:{fg:"#057A54",bg:"#E6F4EF"},success:{fg:"#057A54",bg:"#E6F4EF"},draft:{fg:"#B7791F",bg:"#FBF0DD"},pending:{fg:"#B7791F",bg:"#FBF0DD"},warning:{fg:"#B7791F",bg:"#FBF0DD"},danger:{fg:"#B62214",bg:"#FBEAE8"},archived:{fg:"#9CA3AF",bg:"#F1F2F4"},inactive:{fg:"#9CA3AF",bg:"#F1F2F4"},neutral:{fg:"#9CA3AF",bg:"#F1F2F4"}},jr=({status:e,label:n,variant:s="flat",size:a="sm",color:r,startContent:i,className:o,"data-testid":l="status-chip"})=>{if(s==="dot"){const d=yu[e];return t.jsxs("span",{"data-testid":l,"data-status":e,className:c.cn("inline-flex items-center gap-1.5 whitespace-nowrap rounded-full px-2.5 py-[3px] text-[12px] font-semibold leading-[1.4]",o),style:{color:d.fg,backgroundColor:d.bg},children:[t.jsx("span",{"aria-hidden":"true",className:"size-1.5 shrink-0 rounded-full",style:{backgroundColor:"currentColor"}}),n]})}return t.jsx(c.Chip,{color:r??bu[e],variant:s,size:a,startContent:i,"data-testid":l,"data-status":e,className:c.cn("font-medium",o),children:n})};jr.displayName="StatusChip";const vu={sm:"gap-1 rounded-md px-2 py-0.5 text-[11.5px] leading-normal",md:"gap-1.5 rounded-lg px-2.5 py-1 text-xs leading-normal"},qn=({label:e,value:n,size:s="sm",className:a,"data-testid":r="key-value-chip"})=>t.jsxs("span",{"data-testid":r,className:c.cn("inline-flex items-baseline whitespace-nowrap border border-default-200 bg-default-100",vu[s],a),children:[t.jsx("span",{className:"font-medium text-default-400",children:e}),t.jsx("span",{className:"font-semibold text-default-700",children:n})]});qn.displayName="KeyValueChip";const wr=({columns:e,rows:n=6,label:s="Loading",barHeight:a=12,alignLastRight:r=!1,className:i,classNames:o={},"data-testid":l="table-skeleton"})=>t.jsxs("div",{role:"status","aria-busy":"true","data-testid":l,className:c.cn("w-full",i,o.base),children:[t.jsx("span",{className:"sr-only",children:s}),t.jsx("div",{"aria-hidden":"true",children:Array.from({length:n}).map((d,u)=>t.jsx("div",{"data-testid":`${l}-row`,className:c.cn("flex items-center gap-3 border-t border-default-100 px-5 py-4",o.row),children:e.map((f,m)=>{const x=m===e.length-1;return t.jsx("div",{className:c.cn(f==="fill"?"flex-1":"shrink-0",r&&x&&"flex justify-end"),style:f==="fill"?void 0:{width:f},children:t.jsx("div",{className:c.cn("animate-pulse rounded bg-default-200",o.bar),style:{height:a,width:f==="fill"?"60%":f}})},m)})},u))})]});wr.displayName="TableSkeleton";const Nr="text-left text-[11px] font-semibold uppercase tracking-[.04em] text-acct-sub px-4 pt-4 pb-3 whitespace-nowrap bg-transparent",Cr="px-4 text-[13.5px] text-acct-ink2 align-middle",kr="border-t border-acct-hair transition-colors duration-150 hover:bg-acct-page data-[hover=true]:bg-acct-page",Sr="w-full",Ar="border-t border-acct-border px-5 py-3.5",$r=({columns:e,children:n,emptyContent:s,footer:a,ariaLabel:r,className:i,classNames:o={},"data-testid":l="admin-table"})=>t.jsxs("div",{className:c.cn(i,o.base),"data-testid":l,children:[t.jsxs(c.Table,{"aria-label":r,removeWrapper:!0,classNames:{table:c.cn(Sr,o.table),th:c.cn(Nr,o.th),tr:c.cn(kr,o.tr),td:c.cn(Cr,o.td)},children:[t.jsx(c.TableHeader,{columns:e,children:d=>t.jsx(c.TableColumn,{align:d.align==="right"?"end":"start",width:d.width,children:d.label},d.key)}),t.jsx(c.TableBody,{emptyContent:s,children:n})]}),a?t.jsx("div",{"data-testid":`${l}-footer`,className:c.cn(Ar,o.footer),children:a}):null]});$r.displayName="AdminTable";const ju={md:"w-[280px]",lg:"w-[360px]"},Dr=({searchValue:e,onSearchChange:n,searchLabel:s,searchPlaceholder:a,searchIcon:r,children:i,trailing:o,searchWidth:l="md",className:d,"data-testid":u="admin-toolbar"})=>t.jsxs("div",{role:"search","data-testid":u,className:c.cn("flex flex-wrap items-center gap-3 mb-4",d),children:[t.jsx(c.Input,{type:"search","aria-label":s,placeholder:a??s,value:e,onValueChange:n,startContent:r?t.jsx("span",{"aria-hidden":"true",className:"flex text-acct-muted",children:r}):void 0,"data-testid":`${u}-search`,variant:"bordered",radius:"none",classNames:{base:ju[l],inputWrapper:["h-10 min-h-10 !h-10 rounded-[11px] border border-acct-border bg-acct-surface px-3","data-[hover=true]:border-acct-rust-border","group-data-[focus=true]:border-acct-rust"].join(" "),input:"text-[13.5px] text-acct-ink"}}),i,o?t.jsx("div",{className:"ml-auto",children:o}):null]});Dr.displayName="AdminToolbar";const wu="ml-0.5 inline-flex min-w-[18px] items-center justify-center rounded-full bg-primary px-1.5 text-xs font-semibold text-primary-foreground",Nu="h-9 gap-1.5 rounded-full border border-gray-200 bg-white px-3.5 text-sm font-medium text-gray-700 hover:bg-gray-50 data-[pressed=true]:bg-gray-50",Er=p.forwardRef(function({icon:n,children:s,count:a,className:r,testId:i,...o},l){return t.jsxs(H,{ref:l,"data-testid":i,variant:"light",size:"sm",className:c.cn(Nu,r),...o,children:[t.jsx(R,{icon:n,className:"size-4 text-gray-500","aria-hidden":!0}),t.jsx("span",{children:s}),a!==void 0&&a>0&&t.jsx("span",{className:wu,children:a})]})});Er.displayName="ToolbarButton";function Fr({items:e,value:n,onChange:s,ariaLabel:a,className:r,"data-testid":i="underline-tabs"}){return t.jsx(c.Tabs,{"aria-label":a,variant:"underlined",selectedKey:n,onSelectionChange:o=>s(String(o)),"data-testid":i,classNames:{base:c.cn("w-full mb-6",r),tabList:"gap-7 w-full relative rounded-none p-0 border-b border-acct-border",cursor:"w-full bg-acct-rust",tab:"max-w-fit px-0.5 h-auto pb-3",tabContent:"text-[15px] font-medium text-acct-sub group-data-[selected=true]:font-semibold group-data-[selected=true]:text-acct-rust",panel:"p-0"},children:e.map(o=>t.jsx(c.Tab,{title:o.label,"data-testid":`${i}-${o.key}`,children:o.content},o.key))})}Fr.displayName="UnderlineTabs";const Wn="text-[11px] font-semibold uppercase tracking-[.04em] text-acct-muted mb-1.5",Yn="font-normal normal-case tracking-normal",Mr=["h-[38px] min-h-[38px] !h-[38px] rounded-[11px] border border-acct-border bg-acct-surface px-3","data-[hover=true]:border-acct-rust-border","group-data-[focus=true]:border-acct-rust"].join(" "),Lr="text-[13.5px] text-acct-ink",Tr="bg-acct-page text-acct-muted cursor-default",Ir="mt-[5px] text-xs text-acct-sub",_r="mt-[5px] text-xs text-acct-danger",Pr=({children:e,suffix:n,className:s,"data-testid":a="admin-field-label"})=>t.jsxs("div",{"data-testid":a,className:c.cn(Wn,s),children:[e,n?t.jsxs("span",{className:Yn,children:[" ",n]}):null]});Pr.displayName="AdminFieldLabel";const Or=({label:e,labelSuffix:n,value:s,onChange:a,placeholder:r,disabled:i=!1,readOnly:o=!1,mono:l=!1,autoFocus:d=!1,hint:u,invalid:f=!1,className:m,"data-testid":x="admin-text-field"})=>t.jsx(c.Input,{labelPlacement:e?"outside":void 0,label:e&&n?t.jsxs(t.Fragment,{children:[e,t.jsxs("span",{className:Yn,children:[" ",n]})]}):e,value:s,placeholder:r,isDisabled:i,isReadOnly:o,autoFocus:d,isInvalid:f,description:!f&&u?u:void 0,errorMessage:f?u:void 0,onValueChange:a,"data-testid":x,variant:"bordered",radius:"none",classNames:{base:c.cn("w-full",m),label:Wn,inputWrapper:Mr,input:c.cn(Lr,(l||o)&&"font-mono",o&&Tr),description:Ir,errorMessage:_r}});Or.displayName="AdminTextField";const Cu={sm:"size-6 min-w-6",md:"size-[30px] min-w-[30px]"},Rr=({actions:e,size:n="md",className:s,"data-testid":a="row-actions"})=>t.jsx("div",{role:"presentation","data-testid":a,className:c.cn("inline-flex gap-0.5",s),onClick:r=>r.stopPropagation(),children:e.map(r=>t.jsx(H,{isIconOnly:!0,variant:"light",radius:"sm",size:"sm",onPress:r.onPress,isDisabled:r.disabled,"aria-label":r.label,title:r.label,"data-testid":`${a}-${r.key}`,className:c.cn("text-acct-sub data-[hover=true]:bg-acct-hair",Cu[n]),children:r.icon},r.key))});Rr.displayName="RowActions";const zr=({children:e,placeholder:n="Select…",onOpen:s,onClear:a,ariaLabel:r,icon:i,trailingIcon:o,clearIcon:l,disabled:d=!1,className:u,"data-testid":f="picker-row"})=>{const m=e!=null;return t.jsxs("div",{"data-testid":f,className:c.cn("flex w-full min-h-10 items-center rounded-[10px] border border-acct-border bg-acct-surface px-[11px] transition-colors duration-150",d?"opacity-60":"hover:border-acct-rust-border",u),children:[t.jsxs(H,{variant:"light",radius:"none",disableAnimation:!0,onPress:s,isDisabled:d,"aria-haspopup":"dialog","aria-label":r,"data-testid":`${f}-trigger`,className:"flex h-auto min-h-0 min-w-0 flex-1 items-center justify-start gap-2.5 bg-transparent px-0 py-2 text-left text-inherit data-[hover=true]:bg-transparent",children:[i?t.jsx("span",{className:"flex shrink-0 text-acct-muted",children:i}):null,m?t.jsx("span",{className:"flex min-w-0 items-center gap-2",children:e}):t.jsx("span",{className:"text-[13.5px] font-semibold text-acct-sub",children:n}),o?t.jsx("span",{className:"ml-auto flex shrink-0 text-acct-muted",children:o}):null]}),m&&a?t.jsx(H,{isIconOnly:!0,variant:"light",radius:"sm",size:"sm",onPress:a,isDisabled:d,"aria-label":`Clear ${r}`,title:"Clear","data-testid":`${f}-clear`,className:"ml-1.5 size-6 min-w-6 shrink-0 text-acct-muted data-[hover=true]:bg-acct-hair",children:l}):null]})};zr.displayName="PickerRow";function Br(e,n,s){if(s<=0||n<=0||e<=0)return{from:0,to:0};const a=(e-1)*n+1;return a>s?{from:0,to:0}:{from:a,to:Math.min(s,e*n)}}const Vr=({page:e,pageSize:n,total:s,unit:a,announce:r=!0,className:i,classNames:o={},"data-testid":l="pagination-summary"})=>{const{from:d,to:u}=Br(e,n,s),f=c.cn("font-semibold text-default-700",o.emphasis);return t.jsxs("p",{"data-testid":l,"aria-live":r?"polite":void 0,className:c.cn("text-sm text-default-500",i,o.base),children:["Showing"," ",t.jsx("span",{"data-testid":`${l}-range`,className:f,children:d===0?0:`${d}–${u}`})," ","of"," ",t.jsx("span",{"data-testid":`${l}-total`,className:f,children:s}),a?t.jsxs(t.Fragment,{children:[" ",a]}):null]})};Vr.displayName="PaginationSummary";const Ur=({isLoading:e=!1,isError:n=!1,isEmpty:s=!1,loadingTitle:a="Loading…",loadingContent:r,errorTitle:i="Something went wrong",errorDescription:o,retryLabel:l="Retry",onRetry:d,errorActions:u,errorContent:f,emptyTitle:m="Nothing here yet",emptyDescription:x,emptyIcon:h,emptyActions:y,emptyContent:w,children:b,className:j,classNames:N={},"data-testid":C="list-panel"})=>{const v={base:c.cn("border-0 bg-transparent py-12",N.state)};let k;return e?k=r??t.jsx(Un,{title:a,classNames:v,"data-testid":`${C}-loading`}):n?k=f??t.jsx(Vn,{title:i,description:o,classNames:v,"data-testid":`${C}-error`,actions:u??(d?t.jsx(H,{color:"primary",variant:"flat",onPress:d,children:l}):void 0)}):s?k=w??t.jsx(Bn,{title:m,description:x,icon:h,actions:y,classNames:v,"data-testid":`${C}-empty`}):k=b,t.jsx("section",{"data-testid":C,className:c.cn("rounded-xl bg-white p-2 shadow-sm",j,N.base),children:k})};Ur.displayName="ListPanel";const ku=350,Su={receivedLabel:"Cash Received",receivedPlaceholder:"$0.00",changeLabel:"Change",changeMessageTemplate:"You have to give back the client {change} in change",insufficientMessageTemplate:"Amount received must be at least {due}"},tn=(e,n)=>Object.entries(n).reduce((s,[a,r])=>s.replace(`{${a}}`,r),e),Au=({dueAmount:e,received:n,defaultReceived:s=null,onChange:a,locale:r="en-US",labels:i,isDisabled:o=!1,maxAmount:l,autoFocus:d=!1,className:u,"data-testid":f="cash-tender-form"})=>{const m={...Su,...i},x=Lt(e.currency,r),h=n!==void 0,[y,w]=p.useState(s??null),b=h?n:y,j=p.useMemo(()=>{const T=typeof b=="number"&&Number.isFinite(b)?b:0,_=fn(T,e.value,e.currency,r);return{received:T,change:_>0?_:0,isValid:T>=e.value&&T>0}},[b,e.value,e.currency,r]),N=p.useCallback(T=>{const _=T.currentTarget;requestAnimationFrame(()=>{_.isConnected&&_.select()})},[]),C=p.useCallback(T=>{if(o)return;const _=T.replace(/[^\d.,]/g,"").replace(",","."),Y=_===""?null:Number.parseFloat(_),B=Y===null||Number.isNaN(Y)?null:Y;if(B!==null&&l!==void 0&&B>l)return;h||w(B);const V=typeof B=="number"&&Number.isFinite(B)?B:0,Z=fn(V,e.value,e.currency,r);a?.({received:V,change:Z>0?Z:0,isValid:V>=e.value&&V>0})},[h,o,e.value,e.currency,r,a,l]),v=b==null?"":String(b),k=j.isValid&&j.change>0,L=!j.isValid&&j.received>0,A=pe(j.change,r,e.currency),M=pe(e.value,r,e.currency),[E,I]=p.useState(""),$=p.useRef(null);p.useEffect(()=>{$.current&&clearTimeout($.current);const T=k?tn(m.changeMessageTemplate,{change:A}):"",_=k?ku:0;return $.current=setTimeout(()=>I(T),_),()=>{$.current&&clearTimeout($.current)}},[k,A,m.changeMessageTemplate]);const D=`${f}-received`;return t.jsxs("div",{className:c.cn("flex flex-col gap-3",u),"data-testid":f,children:[t.jsx(c.Input,{id:D,label:m.receivedLabel,labelPlacement:"outside",type:"text",inputMode:x===0?"numeric":"decimal",pattern:x===0?"[0-9]*":"[0-9]*[.,]?[0-9]*",value:v,onChange:T=>C(T.target.value),onFocus:N,placeholder:m.receivedPlaceholder,isDisabled:o,isInvalid:L,errorMessage:L?tn(m.insufficientMessageTemplate,{due:M}):void 0,variant:"bordered",radius:"lg",autoFocus:d,"data-testid":`${f}-received-input`}),k&&t.jsx(c.Alert,{"data-testid":`${f}-change-alert`,color:"primary",variant:"flat",radius:"lg",title:m.changeLabel,description:tn(m.changeMessageTemplate,{change:A}),icon:t.jsx(R,{icon:"lucide:info",width:20,height:20,"aria-hidden":"true"}),"aria-live":"off",classNames:{base:"bg-info-50 text-info-700",title:"font-semibold",description:"text-sm leading-relaxed",iconWrapper:"bg-transparent shadow-none border-0"}}),t.jsx("span",{role:"status","aria-live":"polite",className:"sr-only",children:E})]})},$u={checkNumberLabel:"Check Number",checkNumberPlaceholder:"e.g. 11234",bankNameLabel:"Bank Name",bankNamePlaceholder:"e.g. Chase Bank",dateLabel:"Date",checkNumberRequiredMessage:"Check number is required"},Ws=()=>{const e=new Date,n=s=>String(s).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}`},Hr=({dueAmount:e,value:n,defaultValue:s,onChange:a,labels:r,hideDate:i=!1,hideBankName:o=!1,isDisabled:l=!1,checkNumberMaxLength:d=34,bankNameMaxLength:u=100,autoFocus:f=!1,className:m,"data-testid":x="check-tender-form"})=>{const h={...$u,...r},y=n!==void 0,[w,b]=p.useState({checkNumber:s?.checkNumber??"",bankName:s?.bankName??"",date:s?.date??Ws()}),[j,N]=p.useState(!!s?.checkNumber),C=p.useMemo(()=>y?{checkNumber:n?.checkNumber??"",bankName:n?.bankName??"",date:n?.date??Ws()}:w,[y,n,w]),v=p.useCallback($=>{y||b($);const D=$.checkNumber.trim(),T={amount:e.value,checkNumber:D,bankName:$.bankName.trim()||void 0,date:i?void 0:$.date,isValid:D.length>0&&e.value>0};a?.(T)},[y,e.value,i,a]),k=p.useCallback($=>D=>{l||($==="checkNumber"&&D.length>0&&N(!0),v({...C,[$]:D}))},[C,v,l]),L=p.useCallback(()=>{l||N(!0)},[l]),A=j&&C.checkNumber.trim()==="",M=`${x}-check-number`,E=`${x}-bank-name`,I=`${x}-date`;return t.jsxs("div",{className:c.cn("grid grid-cols-1 sm:grid-cols-2 gap-4",m),"data-testid":x,children:[t.jsx(c.Input,{id:M,label:h.checkNumberLabel,labelPlacement:"outside",type:"text",value:C.checkNumber,onChange:$=>k("checkNumber")($.target.value),onBlur:L,placeholder:h.checkNumberPlaceholder,maxLength:d,isRequired:!0,isInvalid:A,errorMessage:A?h.checkNumberRequiredMessage:void 0,isDisabled:l,variant:"bordered",radius:"lg",autoFocus:f,"data-testid":`${x}-check-number-input`}),!o&&t.jsx(c.Input,{id:E,label:h.bankNameLabel,labelPlacement:"outside",type:"text",value:C.bankName,onChange:$=>k("bankName")($.target.value),placeholder:h.bankNamePlaceholder,maxLength:u,isDisabled:l,variant:"bordered",radius:"lg","data-testid":`${x}-bank-name-input`}),!i&&t.jsx(c.Input,{id:I,label:h.dateLabel,labelPlacement:"outside",type:"date",value:C.date,onChange:$=>k("date")($.target.value),isDisabled:l,variant:"bordered",radius:"lg","data-testid":`${x}-date-input`,className:"sm:col-span-2"})]})};Hr.displayName="CheckTenderForm";const Du={methodLabel:"Method",methodPlaceholder:"Select a payment method",referenceLabel:"Reference",referencePlaceholder:"e.g. Voucher #1234",methodRequiredMessage:"Method is required"},Eu=[{value:"ach",label:"ACH"},{value:"wire",label:"Wire"},{value:"gift_card",label:"Gift Card"},{value:"voucher",label:"Voucher"},{value:"other",label:"Other"}],qr=({dueAmount:e,methodOptions:n=Eu,value:s,defaultValue:a,onChange:r,labels:i,showReference:o=!1,isDisabled:l=!1,className:d,"data-testid":u="other-tender-form"})=>{const f={...Du,...i},m=s!==void 0,[x,h]=p.useState({method:a?.method??"",reference:a?.reference??""}),y=p.useMemo(()=>m?{method:s?.method??"",reference:s?.reference??""}:x,[m,s,x]),w=p.useCallback(k=>n.find(L=>L.value===k)?.label??"",[n]),b=p.useCallback(k=>{m||h(k);const L=w(k.method),A={amount:e.value,method:k.method,description:L,reference:k.reference.trim()||void 0,isValid:k.method!==""};r?.(A)},[m,e.value,r,w]),j=p.useCallback(k=>{if(l)return;const L=typeof k=="string"?k:Array.from(k)[0]?.toString()??"";b({...y,method:L})},[y,b,l]),N=p.useCallback(k=>{l||b({...y,reference:k})},[y,b,l]),C=`${u}-method`,v=`${u}-reference`;return t.jsxs("div",{className:c.cn("flex flex-col gap-3",d),"data-testid":u,children:[t.jsx(Le,{id:C,label:f.methodLabel,labelPlacement:"outside",placeholder:f.methodPlaceholder,selectedKeys:y.method?[y.method]:[],onSelectionChange:j,isDisabled:l,isRequired:!0,variant:"bordered",radius:"lg","data-testid":`${u}-method-select`,popoverProps:{placement:"bottom-start",classNames:{content:"bg-white border border-default-200 shadow-lg rounded-xl p-1"}},listboxProps:{classNames:{list:"max-h-[var(--popover-available-height,40vh)] overflow-y-auto"},itemClasses:{base:["rounded-lg","px-3 py-2","text-default-800","data-[hover=true]:bg-default-100","data-[selectable=true]:focus:bg-default-100","data-[selected=true]:bg-primary-50","data-[selected=true]:text-primary","data-[selected=true]:font-medium"]}},children:n.map(k=>t.jsx(c.SelectItem,{"data-testid":`${u}-method-option-${k.value}`,children:k.label},k.value))}),o&&t.jsx(c.Input,{id:v,label:f.referenceLabel,labelPlacement:"outside",type:"text",value:y.reference,onChange:k=>N(k.target.value),placeholder:f.referencePlaceholder,isDisabled:l,variant:"bordered",radius:"lg","data-testid":`${u}-reference-input`})]})};qr.displayName="OtherTenderForm";const Fu={collectedHeading:"Collected",remainingLabel:"Remaining:",completeLabel:"Complete",removeAriaLabel:"Remove this tender",removeTooltipForRecorded:"Already recorded",statusPending:"Pending",statusRecorded:"Approved",statusFailed:"Failed"},Mu={card:"lucide:credit-card",cash:"lucide:dollar-sign",check:"lucide:edit-3",other:"lucide:more-horizontal"},Lu={pending:"warning",recorded:"success",failed:"danger"},Tu=e=>e==="pending"||e==="recorded",Iu=e=>`#${e+1}`,Wr=({total:e,tenders:n,onRemove:s,locale:a="en-US",labels:r,hideCollectedList:i=!1,className:o,"data-testid":l="split-payment-summary"})=>{const d={...Fu,...r},{collected:u,remaining:f,isComplete:m}=p.useMemo(()=>{const h=n.reduce((w,b)=>Tu(b.status)?w+b.amount:w,0),y=Math.max(e.value-h,0);return{collected:h,remaining:y,isComplete:h>=e.value&&e.value>0}},[n,e.value]),x=h=>h==="pending"?d.statusPending:h==="recorded"?d.statusRecorded:d.statusFailed;return t.jsxs("div",{className:c.cn("flex flex-col gap-4",o),"data-testid":l,children:[t.jsxs("div",{className:"rounded-2xl bg-default-100 px-6 py-5 text-center","data-testid":`${l}-remaining-banner`,children:[t.jsx("div",{className:"text-sm text-default-600",children:m?d.completeLabel:d.remainingLabel}),t.jsx("div",{className:"mt-1 text-4xl font-bold tracking-tight","data-testid":`${l}-remaining-amount`,children:pe(m?u:f,a,e.currency)})]}),!i&&n.length>0&&t.jsxs("div",{className:"flex flex-col gap-2","data-testid":`${l}-collected-list`,children:[t.jsx("h3",{className:"text-base font-semibold",children:d.collectedHeading}),n.map((h,y)=>t.jsx(_u,{index:y,tender:h,locale:a,currency:e.currency,removable:!!s&&h.status!=="recorded",onRemove:s?()=>s(h.id):void 0,statusLabel:x(h.status),removeAriaLabel:d.removeAriaLabel,recordedTooltip:d.removeTooltipForRecorded,dataTestId:`${l}-row-${y}`},h.id))]})]})};Wr.displayName="SplitPaymentSummary";const _u=({index:e,tender:n,locale:s,currency:a,removable:r,onRemove:i,statusLabel:o,removeAriaLabel:l,recordedTooltip:d,dataTestId:u})=>{const f=i?t.jsx(H,{isIconOnly:!0,variant:"light",radius:"full",size:"sm",onPress:i,isDisabled:!r,"aria-label":l,"data-testid":`${u}-remove`,className:c.cn(r?"text-default-700 hover:bg-default-200":"text-default-300"),children:t.jsx(R,{icon:"lucide:x",width:18,height:18,"aria-hidden":"true"})}):null;return t.jsxs("div",{className:"flex items-center gap-3 rounded-xl bg-default-50 px-4 py-3 motion-safe:animate-[pp-row-in_200ms_ease-out]","data-testid":u,children:[t.jsx("span",{className:"text-sm font-medium text-default-500 w-6 shrink-0",children:Iu(e)}),t.jsx(R,{icon:Mu[n.type],width:20,height:20,className:"text-default-700 shrink-0","aria-hidden":"true"}),t.jsx("span",{className:"flex-1 truncate","data-testid":`${u}-label`,children:n.label}),t.jsx("span",{className:"font-semibold tabular-nums","data-testid":`${u}-amount`,children:pe(n.amount,s,a)}),t.jsx(c.Chip,{size:"sm",radius:"full",variant:"flat",color:Lu[n.status],startContent:n.status==="recorded"?t.jsx(R,{icon:"lucide:check-circle",width:14,height:14,"aria-hidden":"true"}):n.status==="failed"?t.jsx(R,{icon:"lucide:alert-circle",width:14,height:14,"aria-hidden":"true"}):void 0,"data-testid":`${u}-status`,children:o}),f&&(r?f:t.jsx(c.Tooltip,{content:d,placement:"left",children:t.jsx("span",{tabIndex:0,"aria-label":d,children:f})}))]})},Pu=`
|
|
16
|
+
`,"aria-label":`Zoom level ${e}%`,children:[e,"%"]})}),t.jsx(c.Tooltip,{content:"Zoom in",placement:"top",offset:10,children:t.jsx(H,{size:"sm",radius:"sm",color:"default",variant:"bordered",isIconOnly:!0,isDisabled:u,onPress:o,"aria-label":"Zoom in",children:t.jsx(G.ZoomIn,{size:16})})})]})}function Ko({editor:e,isDisabled:n=!1}){const[s,a]=p.useState(!1),[r,i]=p.useState(""),[o,l]=p.useState(""),[d,u]=p.useState(!1),f=e.isActive("link"),m=h=>{if(h){const{from:y,to:w}=e.state.selection,b=e.isActive("link");let j="";if(b){const C=e.schema.marks.link,v=e.state.doc.resolve(y),k=ts.getMarkRange(v,C);k&&(j=e.state.doc.textBetween(k.from,k.to,""))}else j=e.state.doc.textBetween(y,w,"");const N=e.getAttributes("link").href||"";i(j),l(N),u(b)}a(h)},x=()=>{if(o.trim()){const{from:h,to:y}=e.state.selection,w=e.schema.marks.link,b=e.state.doc.resolve(h),j=ts.getMarkRange(b,w),N=j?.from??h,C=j?.to??y,v=e.state.doc.textBetween(N,C,"");r.trim()&&r!==v?e.chain().focus().setTextSelection({from:N,to:C}).deleteSelection().insertContent(`<a href="${o.trim()}">${r.trim()}</a>`).run():e.chain().focus().extendMarkRange("link").updateAttributes("link",{href:o.trim()}).run()}a(!1)};return t.jsxs(c.Popover,{isOpen:s,onOpenChange:m,placement:"bottom",children:[t.jsx(c.PopoverTrigger,{children:t.jsx(H,{size:"sm",radius:"sm",variant:f?"solid":"bordered",color:f?"primary":"default",isIconOnly:!0,isDisabled:n,"aria-label":"Link",children:t.jsx(G.Link,{size:16})})}),t.jsx(c.PopoverContent,{children:t.jsxs("div",{className:"flex flex-col gap-3 p-3 w-72",children:[t.jsx(c.Input,{size:"sm",variant:"bordered",label:"Name",labelPlacement:"outside",placeholder:"Link text",value:r,onChange:h=>i(h.target.value),classNames:{inputWrapper:"focus-within:border-default-400"}}),t.jsx(c.Input,{size:"sm",variant:"bordered",label:"Link",labelPlacement:"outside",placeholder:"https://example.com",value:o,onChange:h=>l(h.target.value),onKeyDown:h=>h.key==="Enter"&&x(),classNames:{inputWrapper:"focus-within:border-default-400"}}),t.jsx(H,{size:"sm",color:"primary",onPress:x,isDisabled:!o.trim(),children:d?"Update":"Apply"})]})})]})}function Qo({children:e,id:n,label:s,className:a,useButtonGroup:r=!0}){return r?t.jsx(c.ButtonGroup,{size:"sm",id:n,"aria-label":s,className:a,children:e}):t.jsx("div",{id:n,role:"group","aria-label":s,className:`flex items-center gap-2 ${a||""}`,children:e})}function _a(e,n){const s=p.useMemo(()=>{if(!e)return{};const i={};return Array.from(new Set(n.map(l=>ut(l)))).forEach(l=>{const d=_e[l];if(d)try{const u=d.canExecute?.(e)??!0,f=d.isActive?.(e)??!1;i[l]={isActive:f,isDisabled:!u,canExecute:u}}catch(u){console.warn(`Extension not available for modifier: ${l}`,u),i[l]={isActive:!1,isDisabled:!0,canExecute:!1}}}),i},[e,n]),[a,r]=p.useState(s);return p.useEffect(()=>{if(!e)return;const i=()=>{const o={};Array.from(new Set(n.map(d=>ut(d)))).forEach(d=>{const u=_e[d];if(u)try{const f=u.canExecute?.(e)??!0,m=u.isActive?.(e)??!1;o[d]={isActive:m,isDisabled:!f,canExecute:f}}catch(f){console.warn(`Extension not available for modifier: ${d}`,f),o[d]={isActive:!1,isDisabled:!0,canExecute:!1}}}),r(o)};return e.on("selectionUpdate",i),e.on("transaction",i),()=>{e.off("selectionUpdate",i),e.off("transaction",i)}},[e,n,s]),a}function Pa(e,n){const s=p.useCallback((o,l)=>{if(!e)return;const d=_e[o];if(d)try{d.execute({editor:e,config:l}),n?.({type:"toggle",modifier:o})}catch(u){console.warn(`Failed to execute command for modifier: ${o}`,u)}},[e,n]),a=p.useCallback(o=>{s(o)},[s]),r=p.useCallback((o,l)=>{if(!e)return!1;const d=_e[o];try{return d?.canExecute?.(e,l)??!1}catch(u){return console.warn(`Failed to check canExecute for modifier: ${o}`,u),!1}},[e]),i=p.useCallback((o,l)=>{if(!e)return!1;const d=_e[o];try{return d?.isActive?.(e,l)??!1}catch(u){return console.warn(`Failed to check isActive for modifier: ${o}`,u),!1}},[e]);return{executeCommand:s,toggleModifier:a,canExecute:r,isActive:i}}function Zo(e=ve.default){const[n,s]=p.useState(e),a=p.useCallback((l=ve.step)=>{s(d=>Math.min(ve.max,d+l))},[]),r=p.useCallback((l=ve.step)=>{s(d=>Math.max(ve.min,d-l))},[]),i=p.useCallback(()=>{s(ve.default)},[]),o=p.useCallback(l=>{const d=Math.max(ve.min,Math.min(ve.max,l));s(d)},[]);return{zoom:n,setZoom:o,zoomIn:a,zoomOut:r,resetZoom:i,isMinZoom:n<=ve.min,isMaxZoom:n>=ve.max,isDefaultZoom:n===ve.default}}const Xo=["bold","italic","strike","underline","code"];function Jo({editor:e,modifiers:n,onToolbarAction:s}){const a=_a(e,n),{toggleModifier:r}=Pa(e,s);if(!e)return null;const i=n.map(o=>ut(o)).filter(o=>Xo.includes(o));return i.length===0?null:t.jsx(Qo,{id:"text-formatting",label:"Text formatting",children:i.map(o=>{const l=a[o],d=Qe(o);return t.jsx(qe,{icon:d,label:o.charAt(0).toUpperCase()+o.slice(1),isActive:l?.isActive,isDisabled:l?.isDisabled,onClick:()=>r(o)},o)})})}function ec({editor:e,modifiers:n,zoom:s=100,onZoomChange:a,sticky:r=!0,className:i,onToolbarAction:o}){const l=_a(e,n),{toggleModifier:d,executeCommand:u}=Pa(e,o);if(!e)return null;const f=n.map(A=>ut(A)),m=f.some(A=>["bold","italic","strike","underline","code"].includes(A)),x=f.some(A=>["textColor","highlight"].includes(A)),h=f.includes("heading"),y=f.includes("textAlign"),w=f.some(A=>["bulletList","orderedList","taskList"].includes(A)),b=f.includes("blockquote"),j=f.includes("codeBlock"),N=f.includes("link"),C=f.includes("horizontalRule"),v=f.some(A=>["undo","redo"].includes(A)),k=s!==void 0&&a!==void 0,L=r?"sticky top-0 z-10":"";return t.jsx("div",{className:`w-full p-2 bg-background border-b border-divider ${L} ${i||""}`,children:t.jsxs("div",{className:"flex flex-row flex-wrap gap-2 w-full items-center",children:[m&&t.jsxs(t.Fragment,{children:[t.jsx(Jo,{editor:e,modifiers:n,onToolbarAction:o}),(x||h||y||w||b||j||N||C||v||k)&&t.jsx(He,{})]}),x&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[f.includes("textColor")&&t.jsx(ws,{editor:e,type:"textColor",label:"Text color",isDisabled:l.textColor?.isDisabled}),f.includes("highlight")&&t.jsx(ws,{editor:e,type:"highlight",label:"Highlight",isDisabled:l.highlight?.isDisabled})]}),(h||y||w||b||j||N||C||v||k)&&t.jsx(He,{})]}),h&&t.jsxs(t.Fragment,{children:[t.jsx(zo,{editor:e}),(y||w||b||j||N||C||v||k)&&t.jsx(He,{})]}),y&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"flex items-center gap-1",children:["left","center","right","justify"].map(A=>{const M=Wo[A],E=e.isActive({textAlign:A});return t.jsx(qe,{icon:M,label:`Align ${A}`,isActive:E,onClick:()=>u("textAlign",{type:"textAlign",alignment:A})},A)})}),(w||b||j||N||C||v||k)&&t.jsx(He,{})]}),w&&t.jsxs(t.Fragment,{children:[t.jsx(Bo,{editor:e,types:f.filter(A=>["bulletList","orderedList","taskList"].includes(A))}),(b||j||N||C||v||k)&&t.jsx(He,{})]}),(b||j||N||C)&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[b&&t.jsx(qe,{icon:Qe("blockquote"),label:"Blockquote",isActive:l.blockquote?.isActive,isDisabled:l.blockquote?.isDisabled,onClick:()=>d("blockquote")}),j&&t.jsx(qe,{icon:Qe("codeBlock"),label:"Code block",isActive:l.codeBlock?.isActive,isDisabled:l.codeBlock?.isDisabled,onClick:()=>d("codeBlock")}),N&&t.jsx(Ko,{editor:e,isDisabled:l.link?.isDisabled}),C&&t.jsx(qe,{icon:Qe("horizontalRule"),label:"Horizontal rule",onClick:()=>d("horizontalRule")})]}),(v||k)&&t.jsx(He,{})]}),v&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1",children:[f.includes("undo")&&t.jsx(qe,{icon:Qe("undo"),label:"Undo",isDisabled:l.undo?.isDisabled,onClick:()=>d("undo")}),f.includes("redo")&&t.jsx(qe,{icon:Qe("redo"),label:"Redo",isDisabled:l.redo?.isDisabled,onClick:()=>d("redo")})]}),k&&t.jsx(He,{})]}),k&&t.jsx(Go,{zoom:s,onZoomChange:A=>{a?.(A),o?.({type:"zoom",modifier:`${A}%`})}})]})})}const st={bold:{category:"mark",extension:Si.Bold,priority:100},italic:{category:"mark",extension:Ai.Italic,priority:100},strike:{category:"mark",extension:$i.Strike,priority:100},underline:{category:"mark",extension:Di.Underline,priority:100},code:{category:"mark",extension:Ei.Code,priority:100},textColor:{category:"mark",extension:Fi.Color,defaultOptions:{types:["textStyle","heading","paragraph","listItem","taskItem","blockquote"]},priority:90},highlight:{category:"mark",extension:Mi.Highlight,defaultOptions:{multicolor:!0},priority:90},link:{category:"mark",extension:Li.Link,defaultOptions:{autolink:!0,linkOnPaste:!0,openOnClick:!1,HTMLAttributes:{class:"text-primary underline cursor-pointer"}},priority:100},heading:{category:"node",extension:Ii.Heading,defaultOptions:{levels:[1,2,3,4,5,6]},priority:100},bulletList:{category:"node",extension:Pi.BulletList,defaultOptions:{HTMLAttributes:{class:"list-disc"}},priority:90},orderedList:{category:"node",extension:Oi.OrderedList,defaultOptions:{HTMLAttributes:{class:"list-decimal"}},priority:90},taskList:{category:"node",extension:Ri.TaskList,defaultOptions:{HTMLAttributes:{class:"task-list"}},priority:90},codeBlock:{category:"node",extension:Vi.CodeBlock,priority:100},blockquote:{category:"node",extension:Ui.Blockquote,priority:100},horizontalRule:{category:"node",extension:Hi.HorizontalRule,priority:100},hardBreak:{category:"node",extension:qi.HardBreak,priority:100},undo:{category:"extension",extension:ns.History,priority:50},redo:{category:"extension",extension:ns.History,priority:50},textAlign:{category:"extension",extension:Wi.TextAlign,defaultOptions:{types:["heading","paragraph","listItem","bulletList","orderedList","taskList","taskItem","blockquote"],alignments:["left","center","right","justify"],defaultAlignment:"left"},priority:80},clearMarks:{category:"extension",extension:null,priority:50},clearNodes:{category:"extension",extension:null,priority:50}},tc=[Yi.Document,Gi.Text,_i.Paragraph,Ti.TextStyle.configure({HTMLAttributes:{}}),Bi.ListItem.configure({HTMLAttributes:{}}),zi.TaskItem.configure({nested:!0}),Ki.Dropcursor,Qi.Gapcursor];function nc(e){const n=[],s=new Set,a=new Set;tc.forEach(l=>{l&&(n.push(l),a.add(l.name))});const r=e.map(l=>ut(l)),i=new Set;return r.forEach(l=>{const d=st[l];d?.requiredExtensions&&d.requiredExtensions.forEach(u=>{i.add(u)})}),i.forEach(l=>{if(s.has(l))return;const d=st[l];if(!d||d.extension===null)return;const u=d.extension.name;if(a.has(u)){s.add(l);return}const f=d.defaultOptions?d.extension.configure(d.defaultOptions):d.extension;n.push(f),s.add(l),a.add(u)}),r.forEach(l=>{if(s.has(l))return;const d=st[l];if(!d){console.warn(`Extension config not found for modifier: ${l}`);return}if(d.extension===null){s.add(l);return}const u=d.extension.name;if(a.has(u)){s.add(l);return}const f=d.defaultOptions?d.extension.configure(d.defaultOptions):d.extension;n.push(f),s.add(l),a.add(u)}),n.sort((l,d)=>{const u=Object.values(st).find(h=>h?.extension?.name===l.name),f=Object.values(st).find(h=>h?.extension?.name===d.name),m=u?.priority??100;return(f?.priority??100)-m})}const Oa={simple:["bold","italic","bulletList","orderedList","undo","redo"],blog:["bold","italic","underline",{type:"heading",level:2},{type:"heading",level:3},"textAlign","bulletList","orderedList","link","blockquote","undo","redo"],documentation:["bold","italic","strike","underline","code","clearMarks",{type:"heading",level:1},{type:"heading",level:2},{type:"heading",level:3},{type:"heading",level:4},{type:"heading",level:5},{type:"heading",level:6},"textAlign","bulletList","orderedList","taskList","link","textColor","highlight","codeBlock","blockquote","horizontalRule","hardBreak","undo","redo"],comment:["bold","italic","link","undo","redo"],full:["bold","italic","strike","underline","code","clearMarks",{type:"heading",level:1},{type:"heading",level:2},{type:"heading",level:3},{type:"heading",level:4},{type:"heading",level:5},{type:"heading",level:6},"textAlign","bulletList","orderedList","taskList","link","textColor","highlight","codeBlock","blockquote","horizontalRule","hardBreak","undo","redo"]},sc={h1:`font-size: ${de.fontSize["4xl"]}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h2:`font-size: ${de.fontSize["2xl"]}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h3:`font-size: ${de.fontSize.xl}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h4:`font-size: ${de.fontSize.lg}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h5:`font-size: ${de.fontSize.base}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,h6:`font-size: ${de.fontSize.sm}; font-weight: ${de.fontWeight.semibold}; line-height: ${de.lineHeight.tight}; margin: ${le.md} 0 ${le.sm} 0;`,p:`min-height: ${de.lineHeight.normal}em; margin: 0;`,ul:`list-style-type: disc; list-style-position: outside; padding-left: ${le.xl}; margin: ${le.md} 0;`,ol:`list-style-type: decimal; list-style-position: outside; padding-left: ${le.xl}; margin: ${le.md} 0;`,li:`display: list-item; margin: ${le.xs} 0;`,strong:`font-weight: ${de.fontWeight.bold};`,em:"font-style: italic;",s:"text-decoration: line-through;",u:"text-decoration: underline;",code:`background-color: ${be.neutral.gray[100]}; border-radius: 0.4rem; font-size: ${de.fontSize.sm}; padding: 0.25em 0.3em; font-family: ${de.fontFamily.mono};`,pre:`background: ${be.neutral.gray[800]}; border-radius: ${le.sm}; color: ${be.neutral.gray[100]}; font-family: ${de.fontFamily.mono}; margin: ${le.lg} 0; padding: 0.75rem ${le.md}; overflow-x: auto;`,blockquote:`border-left: 3px solid ${be.neutral.gray[300]}; margin: ${le.lg} 0; padding-left: ${le.md}; color: ${be.neutral.gray[500]};`,hr:`border: none; border-top: 1px solid ${be.neutral.gray[200]}; margin: ${le.xl} 0;`,a:`color: ${be.brand.primary.DEFAULT}; text-decoration: underline; cursor: pointer;`,mark:`background-color: ${be.palettes.warning[200]}; border-radius: ${le.xs}; padding: 0 0.125rem;`,label:`display: flex; align-items: center; gap: ${le.sm}; cursor: pointer;`,input:"cursor: pointer; margin: 0;"},ac={taskList:"list-style: none; padding-left: 0; margin: 1rem 0;",taskItem:"display: flex; align-items: flex-start; gap: 0.5rem; margin: 0.5rem 0;"};function rc(e){if(!e)return e;let n=e;for(const[s,a]of Object.entries(ac)){const r=new RegExp(`(<(?:ul|li)[^>]*data-type="${s}"[^>]*)>`,"gi");n=n.replace(r,(i,o)=>i.includes('style="')?i.replace(/style="([^"]*)"/,`style="$1 ${a}"`):`${o} style="${a}">`)}for(const[s,a]of Object.entries(sc)){const r=new RegExp(`<${s}(\\s[^>]*)?>`,"gi");n=n.replace(r,i=>{if(i.includes('data-type="taskList"')||i.includes('data-type="taskItem"'))return i;if(i.includes('style="'))return i.replace(/style="([^"]*)"/,`style="$1 ${a}"`);if(i.includes("style='"))return i.replace(/style='([^']*)'/,`style='$1 ${a}'`);{const o=i.indexOf(">");return`${i.slice(0,o)} style="${a}"${i.slice(o)}`}})}return n}const ic=({modifiers:e,zoom:n,onZoomChange:s,onToolbarAction:a})=>{const{editor:r}=vn.useCurrentEditor();return t.jsx(ec,{editor:r,modifiers:e,zoom:n,onZoomChange:s,onToolbarAction:a})},lc=({showCharacterCount:e,showWordCount:n})=>{const{editor:s}=vn.useCurrentEditor();if(!s||!e&&!n)return null;const a=s.getText(),r=a.length,i=a.split(/\s+/).filter(o=>o.length>0).length;return t.jsxs("div",{className:"flex gap-4 text-xs text-default-500 px-2 pb-1",children:[e&&t.jsxs("span",{children:[r," characters"]}),n&&t.jsxs("span",{children:[i," words"]})]})},mn=p.forwardRef((e,n)=>{const{minRows:s=10,maxRows:a=30,disableAutosize:r=!1,showCharacterCount:i=!1,showWordCount:o=!1,showToolbar:l=!0,modifiers:d=Oa.full,variant:u="bordered",initialContent:f,content:m,onContentChange:x,onUpdate:h,onToolbarAction:y,isReadOnly:w=!1,isDisabled:b=!1,includeInlineStyles:j=!0,...N}=e,{zoom:C,setZoom:v}=Zo(),k=js.lineHeight,L=s*k,A=r?void 0:a*k,M=p.useMemo(()=>nc(d),[d]),{Component:E,label:I,shouldLabelBeOutside:$,getBaseProps:D,getLabelProps:T,getInputWrapperProps:_}=c.useInput({...N,variant:u,ref:n,isMultiline:!0}),Y=I?t.jsx("label",{...T(),children:I}):null,B=p.useCallback(({editor:V})=>{const Z=V.getHTML(),J=j?rc(Z):Z,re=V.getJSON(),q=V.getText(),Q=q.length,K=q.split(/\s+/).filter(oe=>oe.length>0).length,ee={html:J,json:re,text:q,characters:Q,words:K};if(x?.(ee),h?.(ee),"onChange"in N&&typeof N.onChange=="function"){const oe={target:{value:J},currentTarget:{value:J}};N.onChange(oe)}},[x,h,N,j]);return t.jsxs(E,{...D(),children:[$?Y:null,t.jsx("div",{..._(),className:c.cn(_().className,"flex flex-col w-full p-0 gap-0 rich-text-editor"),style:{maxHeight:A?`${A+js.toolbarHeight}px`:void 0,overflow:A?"auto":void 0},children:t.jsx(vn.EditorProvider,{editable:!w&&!b,slotBefore:l?t.jsx(ic,{modifiers:d,zoom:C,onZoomChange:v,onToolbarAction:y}):void 0,slotAfter:t.jsx(lc,{showCharacterCount:i,showWordCount:o}),editorContainerProps:{className:"w-full flex-1 outline-none",style:{minHeight:`${L}px`,fontSize:`${C}%`,display:"flex",flexDirection:"column"}},editorProps:{attributes:{class:"focus:outline-none w-full h-full"}},extensions:M,content:m||f||e.defaultValue||"",onUpdate:B})})]})});mn.displayName="TipTapEditor";const Ra=p.forwardRef((e,n)=>{const{adapter:s="tiptap",variant:a="bordered",...r}=e;return s==="tiptap"?t.jsx(mn,{...r,variant:a,ref:n}):(console.warn(`Adapter "${s}" is not supported. Using TipTap.`),t.jsx(mn,{...r,variant:a,ref:n}))});Ra.displayName="RichTextArea";function oc(e,n="en-US",s="USD"){try{return new Intl.NumberFormat(n,{style:"currency",currency:s,minimumFractionDigits:0,maximumFractionDigits:2}).format(e)}catch(a){return console.warn(`Invalid currency formatting: ${a}`),`${s} ${e.toFixed(2)}`}}const Ns=[{id:"100",amount:100},{id:"250",amount:250},{id:"500",amount:500},{id:"1000",amount:1e3},{id:"2000",amount:2e3}],cc={title:"Donation Amount",customAmountPlaceholder:"Custom donation amount",customAmountAriaLabel:"Custom donation amount",addDonationButton:"Add Donation"},za=({presetAmounts:e=Ns,selectedDonation:n,defaultSelectedDonation:s=null,onChange:a,onAddDonation:r,currency:i="USD",locale:o="en-US",showCustomAmount:l=!0,minCustomAmount:d=.5,maxCustomAmount:u=1e6,labels:f,mobileColumns:m=2,desktopColumns:x=3,isDisabled:h=!1,buttonVariant:y="bordered",buttonColor:w="default",inputVariant:b="bordered",size:j="md",className:N="",showCard:C=!0})=>{const v={...cc,...f},k=Array.isArray(e)?e:Ns,L={2:"grid-cols-2",3:"grid-cols-3"},A={3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6"},M=`${L[m]} ${A[x]}`,[E,I]=Mt(n,s,a),[$,D]=p.useState(""),[T,_]=p.useState(!1),[Y,B]=p.useState(0),V=p.useCallback(Q=>{if(h)return;const K={amount:Q.amount,isCustom:!1,presetId:Q.id};I(K),D(""),_(!1),B(ee=>ee+1),r?.(K)},[h,I,r]),Z=p.useCallback(Q=>{if(h)return;if(D(Q!==void 0?String(Q):""),r){I(null);return}if(Q===void 0||isNaN(Q)){I(null);return}I({amount:Q,isCustom:!0})},[h,I,r]),J=p.useCallback(()=>{if(h)return;const Q=$!==""?parseFloat($):void 0;Q===void 0||isNaN(Q)||r?.({amount:Q,isCustom:!0})},[h,$,r]),re=p.useMemo(()=>({style:"currency",currency:i,currencyDisplay:"symbol"}),[i]),q=t.jsxs("div",{className:"space-y-4","data-testid":"donation-amounts-root",children:[v.title&&t.jsx("h2",{className:"text-base font-semibold","data-testid":"donation-amounts-title",children:v.title}),k.length>0&&t.jsx("div",{className:c.cn("grid gap-3",M),"data-testid":"donation-amounts-presets",children:k.map(Q=>{const K=E!==null&&!E.isCustom&&E.presetId===Q.id;return t.jsx(H,{color:K?"primary":w,variant:K?"solid":y,className:"w-full",onPress:()=>V(Q),isDisabled:h,"data-testid":`donation-amounts-preset-${Q.id}`,children:Q.label||oc(Q.amount,o,i)},Q.id)})}),l&&t.jsxs("div",{className:"flex gap-3 items-start",children:[t.jsx(c.NumberInput,{placeholder:v.customAmountPlaceholder,"aria-label":v.customAmountAriaLabel,onInput:r?()=>{I(null),_(!0)}:void 0,variant:b,radius:"full",size:j,minValue:d,maxValue:u,step:.01,formatOptions:re,value:$!==""?parseFloat($):void 0,onValueChange:Z,isDisabled:h,className:"flex-1 [&_[data-slot=input-wrapper]]:!h-10 [&_[data-slot=input-wrapper]]:!min-h-10","data-testid":"donation-amounts-custom-input",hideStepper:!0},r?`custom-${Y}`:E?.isCustom===!1?E.presetId:"custom"),r&&t.jsx(H,{color:"primary",variant:"solid",radius:"full",size:j,className:"shrink-0",onPress:J,isDisabled:h||!T,"data-testid":"donation-amounts-add-button",children:v.addDonationButton})]})]});return C?t.jsx(c.Card,{className:c.cn("w-full",N),"data-testid":"donation-amounts-card",children:t.jsx(c.CardBody,{children:q})}):t.jsx("div",{className:c.cn("w-full",N),"data-testid":"donation-amounts-plain",children:q})};za.displayName="DonationAmounts";const dc=e=>{const n=Math.max(0,e),s=Math.floor(n/60).toString().padStart(2,"0"),a=(n%60).toString().padStart(2,"0");return`${s}:${a} minutes`},uc=e=>{switch(e){case"warning":return G.Clock;case"error":return G.AlertCircle;case"success":return G.CheckCircle;default:return G.Clock}},fc=e=>{switch(e){case"primary":return"bg-primary-500";case"secondary":return"bg-gray-700";case"success":return"bg-green-600";case"warning":return"bg-amber-500";case"danger":return"bg-red-600";default:return"bg-primary-500"}},Ba=p.forwardRef(({timeLeft:e,defaultTimeLeft:n=1200,onTimeChange:s,onExpire:a,variant:r="info",color:i="primary",message:o="Your cart expires in:",showIcon:l=!0,icon:d,position:u="fixed",autoStart:f=!0,formatTime:m=dc,className:x,...h},y)=>{const[w,b]=Mt(e!==void 0?Math.max(0,e):void 0,Math.max(0,n),s),j=p.useRef(null),N=p.useRef(!1);p.useEffect(()=>()=>{j.current&&clearInterval(j.current)},[]),p.useEffect(()=>{if(!f||w<=0){j.current&&(clearInterval(j.current),j.current=null);return}return j.current=setInterval(()=>{b(L=>L<=1?(j.current&&(clearInterval(j.current),j.current=null),N.current||(N.current=!0,a?.()),0):L-1)},1e3),()=>{j.current&&(clearInterval(j.current),j.current=null)}},[f,w,b,a]),p.useEffect(()=>{w>0&&(N.current=!1)},[w]);const C=d||uc(r),v=fc(i),k={fixed:"fixed top-0 left-0",sticky:"sticky top-0",static:"static"};return t.jsx("div",{ref:y,role:"banner","aria-live":"polite","aria-label":`${o} ${m(w)}`,"data-testid":"expire-cart-timer",className:c.cn("w-full text-white z-50",v,k[u],x),...h,children:t.jsx("div",{className:"container mx-auto px-4 py-3 sm:py-2.5","data-testid":"expire-cart-timer-container",children:t.jsxs("div",{className:"flex items-center justify-between gap-3 sm:gap-4",children:[t.jsxs("div",{className:"flex items-center gap-3 sm:gap-2.5 flex-1 min-w-0","data-testid":"expire-cart-timer-left",children:[l&&t.jsx("div",{className:"flex-shrink-0 w-[0.875rem] h-[0.875rem] sm:w-4 sm:h-4 rounded-full bg-white flex items-center justify-center overflow-hidden","data-testid":"expire-cart-timer-icon-wrapper",children:t.jsx(C,{className:"text-primary-500 sm:text-primary-600","aria-hidden":"true",size:14,"data-testid":"expire-cart-timer-icon"})}),t.jsx("p",{className:"text-sm sm:text-base font-medium text-white","data-testid":"expire-cart-timer-message",children:o})]}),t.jsx("div",{className:"flex-shrink-0","data-testid":"expire-cart-timer-right",children:t.jsx("span",{className:"text-sm sm:text-base font-semibold text-white","aria-label":`Time remaining: ${m(w)}`,"data-testid":"expire-cart-timer-value",children:m(w)})})]})})})});Ba.displayName="ExpireCartTimer";const Yt=({icon:e,children:n,testId:s})=>t.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600","data-testid":s,children:[t.jsx(R,{icon:e,width:20,className:"text-default-500"}),t.jsx("span",{children:n})]}),mc=({classes:e="",name:n,imageUrl:s,eventDate:a,eventTime:r,location:i,description:o,showImage:l=!1,compact:d=!1,imageLoading:u="eager",showMoreButtonClassName:f,labels:m})=>{const[x,h]=p.useState(!1),[y,w]=p.useState(!1),b=p.useRef(null);return p.useEffect(()=>{const j=()=>{if(b.current){const N=b.current.scrollHeight>b.current.clientHeight;w(N)}};return j(),window.addEventListener("resize",j),()=>window.removeEventListener("resize",j)},[o]),t.jsxs(c.Card,{className:c.cn("border-0 shadow-none",e),"data-testid":"event-details-root",children:[t.jsxs(c.CardHeader,{className:c.cn("pt-2 pb-0 flex-col items-start",d?"space-y-1":"space-y-2"),"data-testid":"event-details-header",children:[l&&s&&t.jsx("div",{className:c.cn("w-full overflow-hidden rounded-xl","aspect-[3/1]"),"data-testid":"event-details-image-wrapper",children:t.jsx(c.Image,{removeWrapper:!0,loading:u,alt:`Event image for ${n}`,className:"w-full h-full object-cover object-center",src:s,"data-testid":"event-details-image"})}),t.jsx("h2",{className:c.cn("font-semibold text-gray-800",d?"text-base":"text-xl"),"data-testid":"event-details-title",children:n})]}),t.jsxs(c.CardBody,{className:c.cn("space-y-3",d?"py-1 space-y-2":"py-3"),"data-testid":"event-details-body",children:[t.jsx("h3",{className:c.cn("font-semibold text-base text-gray-700",d?"text-sm":""),"data-testid":"event-details-info-label",children:m.eventInformation}),t.jsxs("div",{className:"flex flex-wrap gap-4","data-testid":"event-details-info",children:[a&&t.jsx(Yt,{icon:"solar:calendar-minimalistic-linear",testId:"event-details-date",children:a}),r&&t.jsx(Yt,{icon:"solar:clock-circle-linear",testId:"event-details-time",children:r}),i&&t.jsx(Yt,{icon:"solar:map-point-linear",testId:"event-details-location",children:i})]}),o&&t.jsxs("div",{className:"relative","data-testid":"event-details-description-wrapper",children:[t.jsxs("div",{className:"relative",children:[t.jsx("div",{ref:b,className:c.cn("text-sm text-gray-700 leading-relaxed transition-all",d?"text-xs":"",!x&&"line-clamp-3"),"data-testid":"event-details-description",dangerouslySetInnerHTML:{__html:o}}),!x&&y&&t.jsx("div",{className:"absolute inset-x-0 -bottom-1 h-8 bg-gradient-to-t from-white via-white/70 to-transparent pointer-events-none","data-testid":"event-details-description-fade"})]}),(y||x)&&t.jsx("div",{className:"flex justify-end mt-1",children:t.jsx(H,{onPress:()=>h(!x),variant:"light",className:c.cn("text-primary",f),size:d?"sm":"md",startContent:t.jsx(R,{icon:x?"solar:eye-closed-linear":"solar:eye-linear",width:d?16:20}),"data-testid":"event-details-toggle-description",children:x?m.showLess||"Hide":m.showMore||"Show"})})]})]})]})};function hn(e,n="en-US",s="USD"){try{return new Intl.NumberFormat(n,{style:"currency",currency:s,minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}catch(a){return console.warn(`Invalid currency formatting: ${a}`),`${s} ${e.toFixed(2)}`}}function hc(e){const n=e.replace(/[^\d.,-]/g,""),s=n.match(/,\d{1,2}$/);let a;s?a=n.replace(/\./g,"").replace(",","."):a=n.replace(/,/g,"");const r=parseFloat(a);return isNaN(r)?null:r}const xc={person:"Person",people:"People",tickets:"Tickets:",soldOut:"Sold Out",maxReached:"Maximum number of tickets allowed reached",ruleBlocked:"Unavailable for selected ticket options",disabled:"Ticket selection is unavailable"},Ge=e=>typeof e=="number"&&!isNaN(e),Nt=({offer:e,quantity:n,defaultQuantity:s=0,onQuantityChange:a,currency:r="USD",locale:i="en-US",labels:o,slots:l,isDisabled:d=!1,buttonVariant:u="bordered",buttonColor:f="default",showCard:m=!0,showDescription:x=!0,showPeopleCount:h=!0,showPrice:y=!0,priceDisplay:w,classNames:b={},"data-testid":j,selectedColor:N="default",compact:C=!1,isSoldOut:v,isMaxReached:k,isRuleBlocked:L,statusTone:A="default",statusLabel:M,disabledReason:E,disabled:I})=>{const $=p.useMemo(()=>({...xc,...o}),[o]),[D,T]=p.useState(s),_=n!==void 0?n:D,Y=!!(d||I),B=C||!!e.compact,V=p.useMemo(()=>typeof v=="boolean"?v:typeof e.isSoldOut=="boolean"?e.isSoldOut:!Ge(e.totalTicketsSold)||!Ge(e.ticketsAllowed)?!1:e.totalTicketsSold>=e.ticketsAllowed,[v,e.isSoldOut,e.totalTicketsSold,e.ticketsAllowed]),Z=p.useMemo(()=>typeof k=="boolean"?k:typeof e.isMaxReached=="boolean"?e.isMaxReached:V||!Ge(e.ticketsAllowed)?!1:_>=e.ticketsAllowed-(e.totalTicketsSold??0),[k,e.isMaxReached,V,e.ticketsAllowed,e.totalTicketsSold,_]),J=p.useMemo(()=>typeof L=="boolean"?L:typeof e.isRuleBlocked=="boolean"?e.isRuleBlocked:!1,[L,e.isRuleBlocked]),re=E||e.disabledReason,q=Y||V||J,Q=ne=>{if(q||ne>0&&Z)return;const xe=Math.max(0,_+ne);n===void 0&&T(xe),a?.(e.id,xe)},K=p.useMemo(()=>{if(V)return"soldOut";if(J)return"ruleBlocked";if(Y)return"disabled"},[V,J,Y]),ee=p.useMemo(()=>A||(V||J?"danger":Z?"warning":"default"),[A,V,J,Z]),oe=p.useMemo(()=>{if(K)return K==="ruleBlocked"?M||re||$.ruleBlocked:K==="soldOut"?M||re||$.soldOut:K==="disabled"?M||re||$.disabled:M||$.maxReached},[K,M,re,$]),X={soldOut:"danger",ruleBlocked:ee,disabled:"default",maxReached:"warning"},ue={soldOut:"offer-card-sold-out-chip",maxReached:"offer-card-max-reached-chip",ruleBlocked:"offer-card-ruleBlocked-chip",disabled:"offer-card-disabled-chip"},te=()=>l?.renderName?l.renderName(e.name,e):t.jsx("h2",{"data-testid":"offer-card-name",className:c.cn("text-base font-medium",B&&"text-sm",b.name),children:e.name}),ye=()=>{if(!y)return null;const ne=w?.price??e.price,xe=w?.originalPrice,Te=hn(ne,i,r);if(l?.renderPrice)return l.renderPrice(ne,Te,e);if(Ge(xe)&&Ge(ne)&&xe>ne){const ge=hn(xe,i,r);return t.jsxs("div",{"data-testid":"offer-card-price",className:c.cn("flex items-center gap-2 mt-1",B&&"mt-0.5",b.price),children:[t.jsxs("span",{className:"sr-only",children:["Original price ",ge,", discounted price ",Te]}),t.jsx("span",{"aria-hidden":"true","data-testid":"offer-card-original-price",className:c.cn("text-gray-400 line-through text-sm",B&&"text-xs",b.originalPrice),children:ge}),t.jsx("span",{"aria-hidden":"true","data-testid":"offer-card-discounted-price",className:c.cn("text-primary text-base font-semibold",B&&"text-sm",b.discountedPrice),children:Te})]})}return t.jsx("p",{"data-testid":"offer-card-price",className:c.cn("text-primary text-base mt-1",B&&"text-sm mt-0.5",b.price),children:Te})},De=()=>!x||!e.description?null:l?.renderDescription?l.renderDescription(e.description,e):t.jsx("p",{"data-testid":"offer-card-description",className:c.cn("mb-4 text-sm text-gray-700 leading-relaxed",B&&"mb-2 text-xs text-gray-600",b.description),children:e.description}),ke=()=>{if(!h||!Ge(e.numberOfPeople)||e.numberOfPeople<=0)return null;const ne=e.numberOfPeople===1?$.person:$.people;return l?.renderPeopleCount?l.renderPeopleCount(e.numberOfPeople,ne,e):t.jsxs("p",{"data-testid":"offer-card-people-count",className:c.cn("text-sm text-gray-600 flex items-center mt-2",B&&"mt-1 text-xs",b.peopleCount),children:[t.jsx(R,{icon:e.numberOfPeople<=1?"solar:user-rounded-outline":"solar:users-group-rounded-outline",width:20,className:"mr-1"}),e.numberOfPeople," ",ne]})},Pe=()=>{const ne=_===0||q,xe=Z||q;return l?.renderQuantitySelector?l.renderQuantitySelector({quantity:_,onIncrement:()=>Q(1),onDecrement:()=>Q(-1),isDecrementDisabled:ne,isIncrementDisabled:xe,isDisabled:q}):t.jsxs("div",{className:c.cn("flex items-center gap-2",b.quantitySelector),children:[t.jsx(H,{"data-testid":"offer-card-decrement-button",onPress:()=>Q(-1),isDisabled:ne,variant:u,color:_>0?N:f,radius:"full",isIconOnly:!0,size:B?"md":"sm","aria-label":"Decrease quantity",children:t.jsx(R,{icon:"gravity-ui:minus",width:16})}),t.jsx("span",{"data-testid":"offer-card-quantity",className:c.cn("min-w-[2rem] text-center font-medium",B&&"text-sm"),children:_}),t.jsx(H,{"data-testid":"offer-card-increment-button",onPress:()=>Q(1),isDisabled:xe,variant:u,color:_>0?N:f,radius:"full",isIconOnly:!0,size:B?"md":"sm","aria-label":"Increase quantity",children:t.jsx(R,{icon:"gravity-ui:plus",width:16})})]})},Oe=(ne,xe)=>l?.renderDisabledState?l.renderDisabledState(ne,xe):ne==="soldOut"&&l?.renderSoldOut?l.renderSoldOut(xe):ne==="maxReached"&&l?.renderMaxReachedAlert?l.renderMaxReachedAlert(xe):t.jsx(c.Chip,{"data-testid":ue[ne],color:X[ne],variant:ne==="maxReached"?"flat":"solid",className:c.cn("gap-2 px-4",ne==="maxReached"?"h-8":"h-10",ne==="soldOut"&&b.soldOut,ne==="maxReached"&&b.maxReachedAlert,B&&"h-8"),startContent:t.jsx(R,{icon:"gravity-ui:triangle-exclamation-fill",width:14}),children:t.jsx("span",{className:"font-medium text-sm",children:xe})}),Ve=t.jsxs("div",{className:c.cn("grid grid-cols-1 md:grid-cols-1 xl:grid-cols-3 lg:grid-cols-3 items-start",B?"gap-1":"gap-2"),children:[t.jsxs("div",{className:c.cn("h-full col-span-2",q||Z?"opacity-50 pointer-events-none select-none":""),children:[te(),ye(),t.jsxs("div",{className:c.cn("md:col-span-1 xl:col-span-2 lg:col-span-1",B?"mb-1":"mb-2"),children:[ke(),De()]})]}),t.jsx("div",{className:c.cn("space-x-2 pt-0 pb-2 md:p-2 h-full flex items-center justify-start md:justify-start lg:justify-end",B&&"space-x-1 pb-1 md:p-1",b.compactFooter),children:K&&oe?Oe(K,oe):Pe()})]}),Me=Z&&!V&&!J&&!Y?t.jsx(Ce.motion.div,{className:c.cn("w-full sm:max-w-[60%] md:max-w-[60%] lg:max-w-[60%]",b.compactFooter),initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.3},children:Oe("maxReached",oe||$.maxReached)}):null;return m?t.jsxs(c.Card,{className:c.cn("w-full",B&&b.compact,b.base),"data-testid":j||`offer-card-${e.id}`,children:[t.jsx(c.CardBody,{className:c.cn("pt-1 pb-0",B?"pb-0.5":"",b.body),children:Ve}),t.jsx(Ce.AnimatePresence,{children:Me&&t.jsx(c.CardFooter,{className:c.cn("w-full mt-0 pt-0",B?"pt-1":"",b.footer),children:Me})})]}):t.jsxs("div",{className:c.cn("w-full",B&&b.compact,b.base),"data-testid":j||`offer-card-${e.id}`,children:[t.jsx("div",{className:c.cn("pt-1 pb-0",B?"pb-0.5":"",b.body),children:Ve}),t.jsx(Ce.AnimatePresence,{children:Me&&t.jsx("div",{className:c.cn("w-full mt-0 pt-0",B?"pt-1":"",b.footer),children:Me})})]})};Nt.displayName="OfferCard";const Va=({message:e="No offers available.",icon:n="solar:ticket-sale-outline",iconSize:s=48,showCard:a=!0,classNames:r={},renderEmpty:i})=>{if(i){const l=i();return a?t.jsx(c.Card,{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{"data-testid":"offer-card-empty-body",children:l})}):t.jsx("div",{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:l})}const o=t.jsxs("div",{"data-testid":"offer-card-empty-content",className:c.cn("flex flex-col items-center justify-center p-8 text-center text-gray-500",r.content),children:[t.jsx(R,{"data-testid":"offer-card-empty-icon",icon:n,width:s,className:c.cn("mb-4",r.icon)}),t.jsx("h3",{"data-testid":"offer-card-empty-message",className:c.cn("text-lg",r.message),children:e})]});return a?t.jsx(c.Card,{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{"data-testid":"offer-card-empty-body",children:o})}):t.jsx("div",{"data-testid":"offer-card-empty",className:c.cn("w-full",r.base),children:o})};Va.displayName="OfferCardEmpty";const pc={title:"Error Fetching Offers",description:"An error occurred while fetching offers."},Ua=({error:e,labels:n,showCard:s=!0,color:a="danger",classNames:r={}})=>{const i={...pc,...n},o=t.jsx(c.Alert,{"data-testid":"offer-card-error-alert",color:a,title:i.title,description:e||i.description,className:r.alert});return s?t.jsx(c.Card,{"data-testid":"offer-card-error",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{"data-testid":"offer-card-error-body",children:o})}):t.jsx("div",{"data-testid":"offer-card-error",className:c.cn("w-full",r.base),children:o})};Ua.displayName="OfferCardError";const gc={1:"space-y-1",2:"space-y-2",3:"space-y-3",4:"space-y-4",5:"space-y-5",6:"space-y-6"},Ha=({quantity:e=2,gap:n=4,classNames:s={}})=>{const a=gc[n];return t.jsx("div",{"data-testid":"offer-card-skeleton-container",className:c.cn(a,s.base),children:Array.from({length:e}).map((r,i)=>t.jsxs(c.Card,{"data-testid":`offer-card-skeleton-${i}`,className:c.cn("w-full",s.card),children:[t.jsx(c.CardHeader,{"data-testid":`offer-card-skeleton-header-${i}`,className:"flex justify-between items-start pb-0",children:t.jsxs("div",{className:"space-y-2 w-full",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-title-${i}`,className:"w-1/3 rounded-lg",children:t.jsx("div",{className:"h-4 bg-default-200 rounded-lg"})}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-subtitle-${i}`,className:"w-1/4 rounded-lg",children:t.jsx("div",{className:"h-3 bg-default-300 rounded-lg"})})]})}),t.jsx(c.CardBody,{"data-testid":`offer-card-skeleton-body-${i}`,className:"pt-2 pb-0",children:t.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-3 gap-2 items-start",children:[t.jsxs("div",{className:"xl:col-span-2 space-y-2",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-people-${i}`,className:"w-1/4 rounded-lg",children:t.jsx("div",{className:"h-4 bg-default-300 rounded-lg"})}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-description-${i}`,className:"w-3/4 rounded-lg",children:t.jsx("div",{className:"h-4 bg-default-200 rounded-lg"})})]}),t.jsx("div",{className:"flex items-start justify-end",children:t.jsxs("div",{"data-testid":`offer-card-skeleton-controls-${i}`,className:"flex items-center justify-end gap-2 w-full px-4 py-2",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-label-${i}`,className:"w-24 h-4 rounded-md bg-default-200"}),t.jsxs("div",{className:"flex gap-2",children:[t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-btn-dec-${i}`,className:"w-8 h-8 rounded-md bg-default-300"}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-btn-qty-${i}`,className:"w-8 h-8 rounded-md bg-default-200"}),t.jsx(c.Skeleton,{"data-testid":`offer-card-skeleton-btn-inc-${i}`,className:"w-8 h-8 rounded-md bg-default-300"})]})]})})]})})]},i))})};Ha.displayName="OfferCardSkeleton";const qa={hidden:{opacity:0},show:{opacity:1,transition:{staggerChildren:.15,delayChildren:.1}}},Wa={hidden:{opacity:0,y:8},show:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}},exit:{opacity:0,y:-5,transition:{duration:.35,ease:"easeIn"}}},bc={1:"gap-1",2:"gap-2",3:"gap-3",4:"gap-4",5:"gap-5",6:"gap-6"},Ya=({offers:e=[],mapOffer:n,selection:s,defaultSelection:a={},onSelectionChange:r,onQuantityChange:i,currency:o="USD",locale:l="en-US",labels:d,slots:u,isDisabled:f=!1,buttonVariant:m="bordered",buttonColor:x="default",showCard:h=!0,animated:y=!0,gap:w=2,compact:b=!1,classNames:j={}})=>{const[N,C]=p.useState(a),v=s!==void 0?s:N,k=p.useCallback(($,D)=>{const T={...v,[$]:Math.max(0,D)};s===void 0&&C(T),r?.(T),i?.($,T[$])},[v,s,r,i]),L=[...e].sort(($,D)=>($.position??0)-(D.position??0)),A=$=>{const D=n?n($):$,T=(v??{})[D.id]||0;return{offer:D,quantity:T,onQuantityChange:k,currency:o,locale:l,labels:d,slots:u,isDisabled:f,buttonVariant:m,buttonColor:x,showCard:h,compact:b}},M=bc[w],E=c.cn("grid mx-auto pt-2",M,j.base),I=$=>{const D=A($);return t.jsx(Nt,{offer:D.offer,quantity:D.quantity,onQuantityChange:D.onQuantityChange,currency:D.currency,locale:D.locale,labels:D.labels,slots:D.slots,isDisabled:D.isDisabled,buttonVariant:D.buttonVariant,buttonColor:D.buttonColor,showCard:D.showCard,compact:D.compact,classNames:j.card},D.offer.id)};return y?t.jsx(Ce.motion.div,{"data-testid":"offer-card-list",className:E,variants:qa,initial:"hidden",animate:"show",children:t.jsx(Ce.AnimatePresence,{children:L.map($=>{const D=A($);return t.jsx(Ce.motion.div,{"data-testid":`offer-card-list-item-${D.offer.id}`,className:j.cardWrapper,variants:Wa,exit:{opacity:0,y:-20},transition:{duration:.3},children:t.jsx(Nt,{offer:D.offer,quantity:D.quantity,onQuantityChange:k,currency:o,locale:l,labels:d,slots:u,isDisabled:f,buttonVariant:m,buttonColor:x,showCard:h,compact:b||D.offer.compact,classNames:j.card})},D.offer.id)})})}):t.jsx("div",{"data-testid":"offer-card-list",className:E,children:L.map(I)})};Ya.displayName="OfferCardList";var ft=e=>e.type==="checkbox",We=e=>e instanceof Date,Se=e=>e==null;const Ga=e=>typeof e=="object";var he=e=>!Se(e)&&!Array.isArray(e)&&Ga(e)&&!We(e),Ka=e=>he(e)&&e.target?ft(e.target)?e.target.checked:e.target.value:e,yc=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Qa=(e,n)=>e.has(yc(n)),vc=e=>{const n=e.constructor&&e.constructor.prototype;return he(n)&&n.hasOwnProperty("isPrototypeOf")},Mn=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function fe(e){if(e instanceof Date)return new Date(e);const n=typeof FileList<"u"&&e instanceof FileList;if(Mn&&(e instanceof Blob||n))return e;const s=Array.isArray(e);if(!s&&!(he(e)&&vc(e)))return e;const a=s?[]:Object.create(Object.getPrototypeOf(e));for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(a[r]=fe(e[r]));return a}var Tt=e=>/^\w*$/.test(e),ce=e=>e===void 0,Ln=e=>Array.isArray(e)?e.filter(Boolean):[],Tn=e=>Ln(e.replace(/["|']|\]/g,"").split(/\.|\[/)),z=(e,n,s)=>{if(!n||!he(e))return s;const a=(Tt(n)?[n]:Tn(n)).reduce((r,i)=>Se(r)?r:r[i],e);return ce(a)||a===e?ce(e[n])?s:e[n]:a},Ae=e=>typeof e=="boolean",Ne=e=>typeof e=="function",ie=(e,n,s)=>{let a=-1;const r=Tt(n)?[n]:Tn(n),i=r.length,o=i-1;for(;++a<i;){const l=r[a];let d=s;if(a!==o){const u=e[l];d=he(u)||Array.isArray(u)?u:isNaN(+r[a+1])?{}:[]}if(l==="__proto__"||l==="constructor"||l==="prototype")return;e[l]=d,e=e[l]}};const Ct={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},Ee={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Ie={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Za=p.createContext(null);Za.displayName="HookFormControlContext";const In=()=>p.useContext(Za);var Xa=(e,n,s,a=!0)=>{const r={defaultValues:n._defaultValues};for(const i in e)Object.defineProperty(r,i,{get:()=>{const o=i;return n._proxyFormState[o]!==Ee.all&&(n._proxyFormState[o]=!a||Ee.all),s&&(s[o]=!0),e[o]}});return r};const _n=typeof window<"u"?p.useLayoutEffect:p.useEffect;function jc(e){const n=In(),{control:s=n,disabled:a,name:r,exact:i}=e||{},[o,l]=p.useState(s._formState),d=p.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return _n(()=>s._subscribe({name:r,formState:d.current,exact:i,callback:u=>{!a&&l({...s._formState,...u})}}),[r,a,i]),p.useEffect(()=>{d.current.isValid&&s._setValid(!0)},[s]),p.useMemo(()=>Xa(o,s,d.current,!1),[o,s])}var $e=e=>typeof e=="string",xn=(e,n,s,a,r)=>$e(e)?(a&&n.watch.add(e),z(s,e,r)):Array.isArray(e)?e.map(i=>(a&&n.watch.add(i),z(s,i))):(a&&(n.watchAll=!0),s),pn=e=>Se(e)||!Ga(e);function Fe(e,n,s=new WeakSet){if(pn(e)||pn(n))return Object.is(e,n);if(We(e)&&We(n))return Object.is(e.getTime(),n.getTime());const a=Object.keys(e),r=Object.keys(n);if(a.length!==r.length)return!1;if(s.has(e)||s.has(n))return!0;s.add(e),s.add(n);for(const i of a){const o=e[i];if(!r.includes(i))return!1;if(i!=="ref"){const l=n[i];if(We(o)&&We(l)||he(o)&&he(l)||Array.isArray(o)&&Array.isArray(l)?!Fe(o,l,s):!Object.is(o,l))return!1}}return!0}function wc(e){const n=In(),{control:s=n,name:a,defaultValue:r,disabled:i,exact:o,compute:l}=e||{},d=p.useRef(r),u=p.useRef(l),f=p.useRef(void 0),m=p.useRef(s),x=p.useRef(a);u.current=l;const[h,y]=p.useState(()=>{const v=s._getWatch(a,d.current);return u.current?u.current(v):v}),w=p.useCallback(v=>{const k=xn(a,s._names,v||s._formValues,!1,d.current);return u.current?u.current(k):k},[s._formValues,s._names,a]),b=p.useCallback(v=>{if(!i){const k=xn(a,s._names,v||s._formValues,!1,d.current);if(u.current){const L=u.current(k);Fe(L,f.current)||(y(L),f.current=L)}else y(k)}},[s._formValues,s._names,i,a]);_n(()=>((m.current!==s||!Fe(x.current,a))&&(m.current=s,x.current=a,b()),s._subscribe({name:a,formState:{values:!0},exact:o,callback:v=>{b(v.values)}})),[s,o,a,b]),p.useEffect(()=>s._removeUnmounted());const j=m.current!==s,N=x.current,C=p.useMemo(()=>{if(i)return null;const v=!j&&!Fe(N,a);return j||v?w():null},[i,j,a,N,w]);return C!==null?C:h}function Nc(e){const n=In(),{name:s,disabled:a,control:r=n,shouldUnregister:i,defaultValue:o,exact:l=!0}=e,d=Qa(r._names.array,s),u=p.useMemo(()=>z(r._formValues,s,z(r._defaultValues,s,o)),[r,s,o]),f=wc({control:r,name:s,defaultValue:u,exact:l}),m=jc({control:r,name:s,exact:l}),x=p.useRef(e),h=p.useRef(void 0),y=p.useRef(r.register(s,{...e.rules,value:f,...Ae(e.disabled)?{disabled:e.disabled}:{}}));x.current=e;const w=p.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!z(m.errors,s)},isDirty:{enumerable:!0,get:()=>!!z(m.dirtyFields,s)},isTouched:{enumerable:!0,get:()=>!!z(m.touchedFields,s)},isValidating:{enumerable:!0,get:()=>!!z(m.validatingFields,s)},error:{enumerable:!0,get:()=>z(m.errors,s)}}),[m,s]),b=p.useCallback(v=>y.current.onChange({target:{value:Ka(v),name:s},type:Ct.CHANGE}),[s]),j=p.useCallback(()=>y.current.onBlur({target:{value:z(r._formValues,s),name:s},type:Ct.BLUR}),[s,r._formValues]),N=p.useCallback(v=>{const k=z(r._fields,s);k&&k._f&&v&&(k._f.ref={focus:()=>Ne(v.focus)&&v.focus(),select:()=>Ne(v.select)&&v.select(),setCustomValidity:L=>Ne(v.setCustomValidity)&&v.setCustomValidity(L),reportValidity:()=>Ne(v.reportValidity)&&v.reportValidity()})},[r._fields,s]),C=p.useMemo(()=>({name:s,value:f,...Ae(a)||m.disabled?{disabled:m.disabled||a}:{},onChange:b,onBlur:j,ref:N}),[s,a,m.disabled,b,j,N,f]);return p.useEffect(()=>{const v=r._options.shouldUnregister||i,k=h.current;k&&k!==s&&!d&&r.unregister(k),r.register(s,{...x.current.rules,...Ae(x.current.disabled)?{disabled:x.current.disabled}:{}});const L=(A,M)=>{const E=z(r._fields,A);E&&E._f&&(E._f.mount=M)};if(L(s,!0),v){const A=fe(z(r._options.defaultValues,s,x.current.defaultValue));ie(r._defaultValues,s,A),ce(z(r._formValues,s))&&ie(r._formValues,s,A)}return!d&&r.register(s),h.current=s,()=>{(d?v&&!r._state.action:v)?r.unregister(s):L(s,!1)}},[s,r,d,i]),p.useEffect(()=>{r._setDisabledField({disabled:a,name:s})},[a,s,r]),p.useMemo(()=>({field:C,formState:m,fieldState:w}),[C,m,w])}const Cc=p.createContext(null);Cc.displayName="HookFormContext";var kc=(e,n,s,a,r)=>n?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[a]:r||!0}}:{},lt=e=>Array.isArray(e)?e:[e],Cs=()=>{let e=[];return{get observers(){return e},next:r=>{for(const i of e)i.next&&i.next(r)},subscribe:r=>(e.push(r),{unsubscribe:()=>{e=e.filter(i=>i!==r)}}),unsubscribe:()=>{e=[]}}};function Ja(e,n){const s={};for(const a in e)if(e.hasOwnProperty(a)){const r=e[a],i=n[a];if(r&&he(r)&&i){const o=Ja(r,i);he(o)&&(s[a]=o)}else e[a]&&(s[a]=i)}return s}var we=e=>he(e)&&!Object.keys(e).length,Pn=e=>e.type==="file",kt=e=>{if(!Mn)return!1;const n=e?e.ownerDocument:0;return e instanceof(n&&n.defaultView?n.defaultView.HTMLElement:HTMLElement)},er=e=>e.type==="select-multiple",On=e=>e.type==="radio",Sc=e=>On(e)||ft(e),Gt=e=>kt(e)&&e.isConnected;function Ac(e,n){const s=n.slice(0,-1).length;let a=0;for(;a<s;)e=ce(e)?a++:e[n[a++]];return e}function $c(e){for(const n in e)if(e.hasOwnProperty(n)&&!ce(e[n]))return!1;return!0}function me(e,n){const s=Array.isArray(n)?n:Tt(n)?[n]:Tn(n),a=s.length===1?e:Ac(e,s),r=s.length-1,i=s[r];return a&&delete a[i],r!==0&&(he(a)&&we(a)||Array.isArray(a)&&$c(a))&&me(e,s.slice(0,-1)),e}var Dc=e=>{for(const n in e)if(Ne(e[n]))return!0;return!1};function tr(e){return Array.isArray(e)||he(e)&&!Dc(e)}function gn(e,n={}){for(const s in e){const a=e[s];tr(a)?(n[s]=Array.isArray(a)?[]:{},gn(a,n[s])):ce(a)||(n[s]=!0)}return n}function Ze(e,n,s){s||(s=gn(n));for(const a in e){const r=e[a];if(tr(r))ce(n)||pn(s[a])?s[a]=gn(r,Array.isArray(r)?[]:{}):Ze(r,Se(n)?{}:n[a],s[a]);else{const i=n[a];s[a]=!Fe(r,i)}}return s}const ks={value:!1,isValid:!1},Ss={value:!0,isValid:!0};var nr=e=>{if(Array.isArray(e)){if(e.length>1){const n=e.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:n,isValid:!!n.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ce(e[0].attributes.value)?ce(e[0].value)||e[0].value===""?Ss:{value:e[0].value,isValid:!0}:Ss:ks}return ks},sr=(e,{valueAsNumber:n,valueAsDate:s,setValueAs:a})=>ce(e)?e:n?e===""?NaN:e&&+e:s&&$e(e)?new Date(e):a?a(e):e;const As={isValid:!1,value:null};var ar=e=>Array.isArray(e)?e.reduce((n,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:n,As):As;function $s(e){const n=e.ref;return Pn(n)?n.files:On(n)?ar(e.refs).value:er(n)?[...n.selectedOptions].map(({value:s})=>s):ft(n)?nr(e.refs).value:sr(ce(n.value)?e.ref.value:n.value,e)}var Ec=(e,n,s,a)=>{const r={};for(const i of e){const o=z(n,i);o&&ie(r,i,o._f)}return{criteriaMode:s,names:[...e],fields:r,shouldUseNativeValidation:a}},St=e=>e instanceof RegExp,at=e=>ce(e)?e:St(e)?e.source:he(e)?St(e.value)?e.value.source:e.value:e,Ds=e=>({isOnSubmit:!e||e===Ee.onSubmit,isOnBlur:e===Ee.onBlur,isOnChange:e===Ee.onChange,isOnAll:e===Ee.all,isOnTouch:e===Ee.onTouched});const Es="AsyncFunction";var Fc=e=>!!e&&!!e.validate&&!!(Ne(e.validate)&&e.validate.constructor.name===Es||he(e.validate)&&Object.values(e.validate).find(n=>n.constructor.name===Es)),Mc=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Fs=(e,n,s)=>!s&&(n.watchAll||n.watch.has(e)||[...n.watch].some(a=>e.startsWith(a)&&/^\.\w+/.test(e.slice(a.length))));const ot=(e,n,s,a)=>{for(const r of s||Object.keys(e)){const i=z(e,r);if(i){const{_f:o,...l}=i;if(o){if(o.refs&&o.refs[0]&&n(o.refs[0],r)&&!a)return!0;if(o.ref&&n(o.ref,o.name)&&!a)return!0;if(ot(l,n))break}else if(he(l)&&ot(l,n))break}}};function Ms(e,n,s){const a=z(e,s);if(a||Tt(s))return{error:a,name:s};const r=s.split(".");for(;r.length;){const i=r.join("."),o=z(n,i),l=z(e,i);if(o&&!Array.isArray(o)&&s!==i)return{name:s};if(l&&l.type)return{name:i,error:l};if(l&&l.root&&l.root.type)return{name:`${i}.root`,error:l.root};r.pop()}return{name:s}}var Lc=(e,n,s,a)=>{s(e);const{name:r,...i}=e;return we(i)||Object.keys(i).length>=Object.keys(n).length||Object.keys(i).find(o=>n[o]===(!a||Ee.all))},Tc=(e,n,s)=>!e||!n||e===n||lt(e).some(a=>a&&(s?a===n:a.startsWith(n)||n.startsWith(a))),Ic=(e,n,s,a,r)=>r.isOnAll?!1:!s&&r.isOnTouch?!(n||e):(s?a.isOnBlur:r.isOnBlur)?!e:(s?a.isOnChange:r.isOnChange)?e:!0,_c=(e,n)=>!Ln(z(e,n)).length&&me(e,n),Pc=(e,n,s)=>{const a=lt(z(e,s));return ie(a,"root",n[s]),ie(e,s,a),e};function Ls(e,n,s="validate"){if($e(e)||Array.isArray(e)&&e.every($e)||Ae(e)&&!e)return{type:s,message:$e(e)?e:"",ref:n}}var Ke=e=>he(e)&&!St(e)?e:{value:e,message:""},Ts=async(e,n,s,a,r,i)=>{const{ref:o,refs:l,required:d,maxLength:u,minLength:f,min:m,max:x,pattern:h,validate:y,name:w,valueAsNumber:b,mount:j}=e._f,N=z(s,w);if(!j||n.has(w))return{};const C=l?l[0]:o,v=D=>{r&&C.reportValidity&&(C.setCustomValidity(Ae(D)?"":D||""),C.reportValidity())},k={},L=On(o),A=ft(o),M=L||A,E=(b||Pn(o))&&ce(o.value)&&ce(N)||kt(o)&&o.value===""||N===""||Array.isArray(N)&&!N.length,I=kc.bind(null,w,a,k),$=(D,T,_,Y=Ie.maxLength,B=Ie.minLength)=>{const V=D?T:_;k[w]={type:D?Y:B,message:V,ref:o,...I(D?Y:B,V)}};if(i?!Array.isArray(N)||!N.length:d&&(!M&&(E||Se(N))||Ae(N)&&!N||A&&!nr(l).isValid||L&&!ar(l).isValid)){const{value:D,message:T}=$e(d)?{value:!!d,message:d}:Ke(d);if(D&&(k[w]={type:Ie.required,message:T,ref:C,...I(Ie.required,T)},!a))return v(T),k}if(!E&&(!Se(m)||!Se(x))){let D,T;const _=Ke(x),Y=Ke(m);if(!Se(N)&&!isNaN(N)){const B=o.valueAsNumber||N&&+N;Se(_.value)||(D=B>_.value),Se(Y.value)||(T=B<Y.value)}else{const B=o.valueAsDate||new Date(N),V=re=>new Date(new Date().toDateString()+" "+re),Z=o.type=="time",J=o.type=="week";$e(_.value)&&N&&(D=Z?V(N)>V(_.value):J?N>_.value:B>new Date(_.value)),$e(Y.value)&&N&&(T=Z?V(N)<V(Y.value):J?N<Y.value:B<new Date(Y.value))}if((D||T)&&($(!!D,_.message,Y.message,Ie.max,Ie.min),!a))return v(k[w].message),k}if((u||f)&&!E&&($e(N)||i&&Array.isArray(N))){const D=Ke(u),T=Ke(f),_=!Se(D.value)&&N.length>+D.value,Y=!Se(T.value)&&N.length<+T.value;if((_||Y)&&($(_,D.message,T.message),!a))return v(k[w].message),k}if(h&&!E&&$e(N)){const{value:D,message:T}=Ke(h);if(St(D)&&!N.match(D)&&(k[w]={type:Ie.pattern,message:T,ref:o,...I(Ie.pattern,T)},!a))return v(T),k}if(y){if(Ne(y)){const D=await y(N,s),T=Ls(D,C);if(T&&(k[w]={...T,...I(Ie.validate,T.message)},!a))return v(T.message),k}else if(he(y)){let D={};for(const T in y){if(!we(D)&&!a)break;const _=Ls(await y[T](N,s),C,T);_&&(D={..._,...I(T,_.message)},v(_.message),a&&(k[w]=D))}if(!we(D)&&(k[w]={ref:C,...D},!a))return k}}return v(!0),k};const Oc={mode:Ee.onSubmit,reValidateMode:Ee.onChange,shouldFocusError:!0};function Rc(e={}){let n={...Oc,...e},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:Ne(n.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:n.errors||{},disabled:n.disabled||!1},a={},r=he(n.defaultValues)||he(n.values)?fe(n.defaultValues||n.values)||{}:{},i=n.shouldUnregister?{}:fe(r),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},d,u=0;const f={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={...f};let x={...m};const h={array:Cs(),state:Cs()},y=n.criteriaMode===Ee.all,w=g=>S=>{clearTimeout(u),u=setTimeout(g,S)},b=async g=>{if(!o.keepIsValid&&!n.disabled&&(m.isValid||x.isValid||g)){let S;n.resolver?(S=we((await M()).errors),j()):S=await I(a,!0),S!==s.isValid&&h.state.next({isValid:S})}},j=(g,S)=>{!n.disabled&&(m.isValidating||m.validatingFields||x.isValidating||x.validatingFields)&&((g||Array.from(l.mount)).forEach(F=>{F&&(S?ie(s.validatingFields,F,S):me(s.validatingFields,F))}),h.state.next({validatingFields:s.validatingFields,isValidating:!we(s.validatingFields)}))},N=(g,S=[],F,U,O=!0,P=!0)=>{if(U&&F&&!n.disabled){if(o.action=!0,P&&Array.isArray(z(a,g))){const W=F(z(a,g),U.argA,U.argB);O&&ie(a,g,W)}if(P&&Array.isArray(z(s.errors,g))){const W=F(z(s.errors,g),U.argA,U.argB);O&&ie(s.errors,g,W),_c(s.errors,g)}if((m.touchedFields||x.touchedFields)&&P&&Array.isArray(z(s.touchedFields,g))){const W=F(z(s.touchedFields,g),U.argA,U.argB);O&&ie(s.touchedFields,g,W)}(m.dirtyFields||x.dirtyFields)&&(s.dirtyFields=Ze(r,i)),h.state.next({name:g,isDirty:D(g,S),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else ie(i,g,S)},C=(g,S)=>{ie(s.errors,g,S),h.state.next({errors:s.errors})},v=g=>{s.errors=g,h.state.next({errors:s.errors,isValid:!1})},k=(g,S,F,U)=>{const O=z(a,g);if(O){const P=z(i,g,ce(F)?z(r,g):F);ce(P)||U&&U.defaultChecked||S?ie(i,g,S?P:$s(O._f)):Y(g,P),o.mount&&!o.action&&b()}},L=(g,S,F,U,O)=>{let P=!1,W=!1;const se={name:g};if(!n.disabled){if(!F||U){(m.isDirty||x.isDirty)&&(W=s.isDirty,s.isDirty=se.isDirty=D(),P=W!==se.isDirty);const ae=Fe(z(r,g),S);W=!!z(s.dirtyFields,g),ae?me(s.dirtyFields,g):ie(s.dirtyFields,g,!0),se.dirtyFields=s.dirtyFields,P=P||(m.dirtyFields||x.dirtyFields)&&W!==!ae}if(F){const ae=z(s.touchedFields,g);ae||(ie(s.touchedFields,g,F),se.touchedFields=s.touchedFields,P=P||(m.touchedFields||x.touchedFields)&&ae!==F)}P&&O&&h.state.next(se)}return P?se:{}},A=(g,S,F,U)=>{const O=z(s.errors,g),P=(m.isValid||x.isValid)&&Ae(S)&&s.isValid!==S;if(n.delayError&&F?(d=w(()=>C(g,F)),d(n.delayError)):(clearTimeout(u),d=null,F?ie(s.errors,g,F):me(s.errors,g)),(F?!Fe(O,F):O)||!we(U)||P){const W={...U,...P&&Ae(S)?{isValid:S}:{},errors:s.errors,name:g};s={...s,...W},h.state.next(W)}},M=async g=>(j(g,!0),await n.resolver(i,n.context,Ec(g||l.mount,a,n.criteriaMode,n.shouldUseNativeValidation))),E=async g=>{const{errors:S}=await M(g);if(j(g),g)for(const F of g){const U=z(S,F);U?ie(s.errors,F,U):me(s.errors,F)}else s.errors=S;return S},I=async(g,S,F={valid:!0})=>{for(const U in g){const O=g[U];if(O){const{_f:P,...W}=O;if(P){const se=l.array.has(P.name),ae=O._f&&Fc(O._f);ae&&m.validatingFields&&j([P.name],!0);const je=await Ts(O,l.disabled,i,y,n.shouldUseNativeValidation&&!S,se);if(ae&&m.validatingFields&&j([P.name]),je[P.name]&&(F.valid=!1,S||e.shouldUseNativeValidation))break;!S&&(z(je,P.name)?se?Pc(s.errors,je,P.name):ie(s.errors,P.name,je[P.name]):me(s.errors,P.name))}!we(W)&&await I(W,S,F)}}return F.valid},$=()=>{for(const g of l.unMount){const S=z(a,g);S&&(S._f.refs?S._f.refs.every(F=>!Gt(F)):!Gt(S._f.ref))&&te(g)}l.unMount=new Set},D=(g,S)=>!n.disabled&&(g&&S&&ie(i,g,S),!Fe(q(),r)),T=(g,S,F)=>xn(g,l,{...o.mount?i:ce(S)?r:$e(g)?{[g]:S}:S},F,S),_=g=>Ln(z(o.mount?i:r,g,n.shouldUnregister?z(r,g,[]):[])),Y=(g,S,F={})=>{const U=z(a,g);let O=S;if(U){const P=U._f;P&&(!P.disabled&&ie(i,g,sr(S,P)),O=kt(P.ref)&&Se(S)?"":S,er(P.ref)?[...P.ref.options].forEach(W=>W.selected=O.includes(W.value)):P.refs?ft(P.ref)?P.refs.forEach(W=>{(!W.defaultChecked||!W.disabled)&&(Array.isArray(O)?W.checked=!!O.find(se=>se===W.value):W.checked=O===W.value||!!O)}):P.refs.forEach(W=>W.checked=W.value===O):Pn(P.ref)?P.ref.value="":(P.ref.value=O,P.ref.type||h.state.next({name:g,values:fe(i)})))}(F.shouldDirty||F.shouldTouch)&&L(g,O,F.shouldTouch,F.shouldDirty,!0),F.shouldValidate&&re(g)},B=(g,S,F)=>{for(const U in S){if(!S.hasOwnProperty(U))return;const O=S[U],P=g+"."+U,W=z(a,P);(l.array.has(g)||he(O)||W&&!W._f)&&!We(O)?B(P,O,F):Y(P,O,F)}},V=(g,S,F={})=>{const U=z(a,g),O=l.array.has(g),P=fe(S);ie(i,g,P),O?(h.array.next({name:g,values:fe(i)}),(m.isDirty||m.dirtyFields||x.isDirty||x.dirtyFields)&&F.shouldDirty&&h.state.next({name:g,dirtyFields:Ze(r,i),isDirty:D(g,P)})):U&&!U._f&&!Se(P)?B(g,P,F):Y(g,P,F),Fs(g,l)?h.state.next({...s,name:g,values:fe(i)}):h.state.next({name:o.mount?g:void 0,values:fe(i)})},Z=async g=>{o.mount=!0;const S=g.target;let F=S.name,U=!0;const O=z(a,F),P=ae=>{U=Number.isNaN(ae)||We(ae)&&isNaN(ae.getTime())||Fe(ae,z(i,F,ae))},W=Ds(n.mode),se=Ds(n.reValidateMode);if(O){let ae,je;const Ue=S.type?$s(O._f):Ka(g),Re=g.type===Ct.BLUR||g.type===Ct.FOCUS_OUT,Ni=!Mc(O._f)&&!n.resolver&&!z(s.errors,F)&&!O._f.deps||Ic(Re,z(s.touchedFields,F),s.isSubmitted,se,W),_t=Fs(F,l,Re);ie(i,F,Ue),Re?(!S||!S.readOnly)&&(O._f.onBlur&&O._f.onBlur(g),d&&d(0)):O._f.onChange&&O._f.onChange(g);const Pt=L(F,Ue,Re),Ci=!we(Pt)||_t;if(!Re&&h.state.next({name:F,type:g.type,values:fe(i)}),Ni)return(m.isValid||x.isValid)&&(n.mode==="onBlur"?Re&&b():Re||b()),Ci&&h.state.next({name:F,..._t?{}:Pt});if(!Re&&_t&&h.state.next({...s}),n.resolver){const{errors:Jn}=await M([F]);if(j([F]),P(Ue),U){const ki=Ms(s.errors,a,F),es=Ms(Jn,a,ki.name||F);ae=es.error,F=es.name,je=we(Jn)}}else j([F],!0),ae=(await Ts(O,l.disabled,i,y,n.shouldUseNativeValidation))[F],j([F]),P(Ue),U&&(ae?je=!1:(m.isValid||x.isValid)&&(je=await I(a,!0)));U&&(O._f.deps&&(!Array.isArray(O._f.deps)||O._f.deps.length>0)&&re(O._f.deps),A(F,je,ae,Pt))}},J=(g,S)=>{if(z(s.errors,S)&&g.focus)return g.focus(),1},re=async(g,S={})=>{let F,U;const O=lt(g);if(n.resolver){const P=await E(ce(g)?g:O);F=we(P),U=g?!O.some(W=>z(P,W)):F}else g?(U=(await Promise.all(O.map(async P=>{const W=z(a,P);return await I(W&&W._f?{[P]:W}:W)}))).every(Boolean),!(!U&&!s.isValid)&&b()):U=F=await I(a);return h.state.next({...!$e(g)||(m.isValid||x.isValid)&&F!==s.isValid?{}:{name:g},...n.resolver||!g?{isValid:F}:{},errors:s.errors}),S.shouldFocus&&!U&&ot(a,J,g?O:l.mount),U},q=(g,S)=>{let F={...o.mount?i:r};return S&&(F=Ja(S.dirtyFields?s.dirtyFields:s.touchedFields,F)),ce(g)?F:$e(g)?z(F,g):g.map(U=>z(F,U))},Q=(g,S)=>({invalid:!!z((S||s).errors,g),isDirty:!!z((S||s).dirtyFields,g),error:z((S||s).errors,g),isValidating:!!z(s.validatingFields,g),isTouched:!!z((S||s).touchedFields,g)}),K=g=>{g&<(g).forEach(S=>me(s.errors,S)),h.state.next({errors:g?s.errors:{}})},ee=(g,S,F)=>{const U=(z(a,g,{_f:{}})._f||{}).ref,O=z(s.errors,g)||{},{ref:P,message:W,type:se,...ae}=O;ie(s.errors,g,{...ae,...S,ref:U}),h.state.next({name:g,errors:s.errors,isValid:!1}),F&&F.shouldFocus&&U&&U.focus&&U.focus()},oe=(g,S)=>Ne(g)?h.state.subscribe({next:F=>"values"in F&&g(T(void 0,S),F)}):T(g,S,!0),X=g=>h.state.subscribe({next:S=>{Tc(g.name,S.name,g.exact)&&Lc(S,g.formState||m,Te,g.reRenderRoot)&&g.callback({values:{...i},...s,...S,defaultValues:r})}}).unsubscribe,ue=g=>(o.mount=!0,x={...x,...g.formState},X({...g,formState:{...f,...g.formState}})),te=(g,S={})=>{for(const F of g?lt(g):l.mount)l.mount.delete(F),l.array.delete(F),S.keepValue||(me(a,F),me(i,F)),!S.keepError&&me(s.errors,F),!S.keepDirty&&me(s.dirtyFields,F),!S.keepTouched&&me(s.touchedFields,F),!S.keepIsValidating&&me(s.validatingFields,F),!n.shouldUnregister&&!S.keepDefaultValue&&me(r,F);h.state.next({values:fe(i)}),h.state.next({...s,...S.keepDirty?{isDirty:D()}:{}}),!S.keepIsValid&&b()},ye=({disabled:g,name:S})=>{if(Ae(g)&&o.mount||g||l.disabled.has(S)){const O=l.disabled.has(S)!==!!g;g?l.disabled.add(S):l.disabled.delete(S),O&&o.mount&&!o.action&&b()}},De=(g,S={})=>{let F=z(a,g);const U=Ae(S.disabled)||Ae(n.disabled);return ie(a,g,{...F||{},_f:{...F&&F._f?F._f:{ref:{name:g}},name:g,mount:!0,...S}}),l.mount.add(g),F?ye({disabled:Ae(S.disabled)?S.disabled:n.disabled,name:g}):k(g,!0,S.value),{...U?{disabled:S.disabled||n.disabled}:{},...n.progressive?{required:!!S.required,min:at(S.min),max:at(S.max),minLength:at(S.minLength),maxLength:at(S.maxLength),pattern:at(S.pattern)}:{},name:g,onChange:Z,onBlur:Z,ref:O=>{if(O){De(g,S),F=z(a,g);const P=ce(O.value)&&O.querySelectorAll&&O.querySelectorAll("input,select,textarea")[0]||O,W=Sc(P),se=F._f.refs||[];if(W?se.find(ae=>ae===P):P===F._f.ref)return;ie(a,g,{_f:{...F._f,...W?{refs:[...se.filter(Gt),P,...Array.isArray(z(r,g))?[{}]:[]],ref:{type:P.type,name:g}}:{ref:P}}}),k(g,!1,void 0,P)}else F=z(a,g,{}),F._f&&(F._f.mount=!1),(n.shouldUnregister||S.shouldUnregister)&&!(Qa(l.array,g)&&o.action)&&l.unMount.add(g)}}},ke=()=>n.shouldFocusError&&ot(a,J,l.mount),Pe=g=>{Ae(g)&&(h.state.next({disabled:g}),ot(a,(S,F)=>{const U=z(a,F);U&&(S.disabled=U._f.disabled||g,Array.isArray(U._f.refs)&&U._f.refs.forEach(O=>{O.disabled=U._f.disabled||g}))},0,!1))},Oe=(g,S)=>async F=>{let U;F&&(F.preventDefault&&F.preventDefault(),F.persist&&F.persist());let O=fe(i);if(h.state.next({isSubmitting:!0}),n.resolver){const{errors:P,values:W}=await M();j(),s.errors=P,O=fe(W)}else await I(a);if(l.disabled.size)for(const P of l.disabled)me(O,P);if(me(s.errors,"root"),we(s.errors)){h.state.next({errors:{}});try{await g(O,F)}catch(P){U=P}}else S&&await S({...s.errors},F),ke(),setTimeout(ke);if(h.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:we(s.errors)&&!U,submitCount:s.submitCount+1,errors:s.errors}),U)throw U},Ve=(g,S={})=>{z(a,g)&&(ce(S.defaultValue)?V(g,fe(z(r,g))):(V(g,S.defaultValue),ie(r,g,fe(S.defaultValue))),S.keepTouched||me(s.touchedFields,g),S.keepDirty||(me(s.dirtyFields,g),s.isDirty=S.defaultValue?D(g,fe(z(r,g))):D()),S.keepError||(me(s.errors,g),m.isValid&&b()),h.state.next({...s}))},Me=(g,S={})=>{const F=g?fe(g):r,U=fe(F),O=we(g),P=O?r:U;if(S.keepDefaultValues||(r=F),!S.keepValues){if(S.keepDirtyValues){const W=new Set([...l.mount,...Object.keys(Ze(r,i))]);for(const se of Array.from(W)){const ae=z(s.dirtyFields,se),je=z(i,se),Ue=z(P,se);ae&&!ce(je)?ie(P,se,je):!ae&&!ce(Ue)&&V(se,Ue)}}else{if(Mn&&ce(g))for(const W of l.mount){const se=z(a,W);if(se&&se._f){const ae=Array.isArray(se._f.refs)?se._f.refs[0]:se._f.ref;if(kt(ae)){const je=ae.closest("form");if(je){je.reset();break}}}}if(S.keepFieldsRef)for(const W of l.mount)V(W,z(P,W));else a={}}i=n.shouldUnregister?S.keepDefaultValues?fe(r):{}:fe(P),h.array.next({values:{...P}}),h.state.next({values:{...P}})}l={mount:S.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!m.isValid||!!S.keepIsValid||!!S.keepDirtyValues||!n.shouldUnregister&&!we(P),o.watch=!!n.shouldUnregister,o.keepIsValid=!!S.keepIsValid,o.action=!1,S.keepErrors||(s.errors={}),h.state.next({submitCount:S.keepSubmitCount?s.submitCount:0,isDirty:O?!1:S.keepDirty?s.isDirty:!!(S.keepDefaultValues&&!Fe(g,r)),isSubmitted:S.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:O?{}:S.keepDirtyValues?S.keepDefaultValues&&i?Ze(r,i):s.dirtyFields:S.keepDefaultValues&&g?Ze(r,g):S.keepDirty?s.dirtyFields:{},touchedFields:S.keepTouched?s.touchedFields:{},errors:S.keepErrors?s.errors:{},isSubmitSuccessful:S.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:r})},ne=(g,S)=>Me(Ne(g)?g(i):g,{...n.resetOptions,...S}),xe=(g,S={})=>{const F=z(a,g),U=F&&F._f;if(U){const O=U.refs?U.refs[0]:U.ref;O.focus&&setTimeout(()=>{O.focus(),S.shouldSelect&&Ne(O.select)&&O.select()})}},Te=g=>{s={...s,...g}},ge={control:{register:De,unregister:te,getFieldState:Q,handleSubmit:Oe,setError:ee,_subscribe:X,_runSchema:M,_updateIsValidating:j,_focusError:ke,_getWatch:T,_getDirty:D,_setValid:b,_setFieldArray:N,_setDisabledField:ye,_setErrors:v,_getFieldArray:_,_reset:Me,_resetDefaultValues:()=>Ne(n.defaultValues)&&n.defaultValues().then(g=>{ne(g,n.resetOptions),h.state.next({isLoading:!1})}),_removeUnmounted:$,_disableForm:Pe,_subjects:h,_proxyFormState:m,get _fields(){return a},get _formValues(){return i},get _state(){return o},set _state(g){o=g},get _defaultValues(){return r},get _names(){return l},set _names(g){l=g},get _formState(){return s},get _options(){return n},set _options(g){n={...n,...g}}},subscribe:ue,trigger:re,register:De,handleSubmit:Oe,watch:oe,setValue:V,getValues:q,reset:ne,resetField:Ve,clearErrors:K,unregister:te,setError:ee,setFocus:xe,getFieldState:Q};return{...ge,formControl:ge}}function zc(e={}){const n=p.useRef(void 0),s=p.useRef(void 0),[a,r]=p.useState({isDirty:!1,isValidating:!1,isLoading:Ne(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:Ne(e.defaultValues)?void 0:e.defaultValues});if(!n.current)if(e.formControl)n.current={...e.formControl,formState:a},e.defaultValues&&!Ne(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:o,...l}=Rc(e);n.current={...l,formState:a}}const i=n.current.control;return i._options=e,_n(()=>{const o=i._subscribe({formState:i._proxyFormState,callback:()=>r({...i._formState}),reRenderRoot:!0});return r(l=>({...l,isReady:!0})),i._formState.isReady=!0,o},[i]),p.useEffect(()=>i._disableForm(e.disabled),[i,e.disabled]),p.useEffect(()=>{e.mode&&(i._options.mode=e.mode),e.reValidateMode&&(i._options.reValidateMode=e.reValidateMode)},[i,e.mode,e.reValidateMode]),p.useEffect(()=>{e.errors&&(i._setErrors(e.errors),i._focusError())},[i,e.errors]),p.useEffect(()=>{e.shouldUnregister&&i._subjects.state.next({values:i._getWatch()})},[i,e.shouldUnregister]),p.useEffect(()=>{if(i._proxyFormState.isDirty){const o=i._getDirty();o!==a.isDirty&&i._subjects.state.next({isDirty:o})}},[i,a.isDirty]),p.useEffect(()=>{var o;e.values&&!Fe(e.values,s.current)?(i._reset(e.values,{keepFieldsRef:!0,...i._options.resetOptions}),!((o=i._options.resetOptions)===null||o===void 0)&&o.keepIsValid||i._setValid(),s.current=e.values,r(l=>({...l}))):i._resetDefaultValues()},[i,e.values]),p.useEffect(()=>{i._state.mount||(i._setValid(),i._state.mount=!0),i._state.watch&&(i._state.watch=!1,i._subjects.state.next({...i._formState})),i._removeUnmounted()}),n.current.formState=p.useMemo(()=>Xa(a,i),[i,a]),n.current}function Bc(e,n=3){return e%1===0?e.toString():e.toFixed(n).replace(/\.?0+$/,"")}function Vc(e,n="en-US",s="USD"){try{return new Intl.NumberFormat(n,{style:"currency",currency:s,minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}catch(a){return console.warn(`Invalid currency formatting: ${a}`),`${s} ${e.toFixed(2)}`}}function Uc(e="USD",n="en-US"){try{return new Intl.NumberFormat(n,{style:"currency",currency:e}).formatToParts(0).find(i=>i.type==="currency")?.value??"$"}catch{return"$"}}function Hc(e){const n=e.replace(/[^\d.,-]/g,""),s=n.match(/,\d{1,2}$/);let a;s?a=n.replace(/\./g,"").replace(",","."):a=n.replace(/,/g,"");const r=parseFloat(a);return isNaN(r)?null:r}function qc(e,n,s=.001){const a=e-n,r=Math.abs(a)<=s;return{difference:a,isBalanced:r,isUnderAllocated:!r&&a>0,isOverAllocated:!r&&a<0}}function Rn(){return`dist-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}Rn();const Wc={amount:"Amount",glAccount:"GL Account",taxDeductible:"Tax Deductible",amountPlaceholder:"0.00",glAccountPlaceholder:"Search GL Account",noGlAccountsFound:"No GL Accounts found. Try another search term",searching:"Searching for GL Accounts...",amountTooltip:"Enter the amount for this distribution",glAccountTooltip:"Select the General Ledger account for this distribution",taxDeductibleTooltip:"Check if this distribution is tax deductible",deleteButton:"Delete",currencySymbol:"$"},Kt=()=>({id:Rn(),amount:0,glAccount:null,isTaxDeductible:!1}),rr=({distribution:e,defaultDistribution:n,glAccounts:s=[],isLoadingGlAccounts:a=!1,onSearchGlAccounts:r,onDistributionChange:i,onAmountChange:o,onGlAccountChange:l,onTaxDeductibleChange:d,onDelete:u,canDelete:f=!0,canEditTaxDeductible:m=!0,isDisabled:x=!1,labels:h,classNames:y={},"data-testid":w,control:b,name:j,rules:N})=>{const C={...Wc,...h},v=b!==void 0&&j!==void 0,k=zc({defaultValues:{_internal:n||Kt()}}),L=Nc({control:v?b:k.control,name:v?j:"_internal",rules:v?N:void 0}),[A,M]=p.useState(n||Kt()),E=v?L.field.value??Kt():e??A,I=v&&!!L.fieldState?.error,$=v&&(L.fieldState?.isTouched??!1),D=I||$,T=D&&(!E.amount||E.amount<=0),_=D&&!E.glAccount,[Y,B]=p.useState(E.glAccount?.name||""),V=p.useCallback(ee=>{const oe={...E,...ee};v&&L.field.onChange(oe),!v&&e===void 0&&M(oe),i?.(oe)},[E,e,i,v,L]),Z=p.useCallback(ee=>{const oe=ee||0;V({amount:oe}),o?.(oe)},[V,o]),J=p.useCallback(ee=>{B(ee),r?.(ee)},[r]),re=p.useCallback(ee=>{if(ee===null){V({glAccount:null}),l?.(null);return}const X=s.find(ue=>String(ue.id)===String(ee))||null;V({glAccount:X}),l?.(X)},[s,V,l]),q=p.useCallback(()=>{B(""),V({glAccount:null}),l?.(null)},[V,l]),Q=p.useCallback(ee=>{V({isTaxDeductible:ee}),d?.(ee)},[V,d]),K=p.useCallback(()=>{u?.()},[u]);return t.jsx(c.Card,{radius:"md",shadow:"sm","data-testid":w||"revenue-distribution-card",className:c.cn(y.base),children:t.jsxs(c.CardBody,{className:c.cn("flex flex-row flex-nowrap items-start gap-4",y.body),children:[t.jsx("div",{className:c.cn("shrink-0",y.amountContainer),children:t.jsx(c.NumberInput,{"data-testid":`${w||"revenue-distribution-card"}-amount-input`,label:t.jsxs("span",{className:"flex items-center gap-1",children:[C.amount,t.jsx(c.Tooltip,{content:C.amountTooltip,children:t.jsx(R,{icon:"solar:info-circle-linear",className:"text-default-400 cursor-help",width:16})})]}),value:E.amount||void 0,onValueChange:Z,labelPlacement:"outside",placeholder:C.amountPlaceholder,isWheelDisabled:!0,hideStepper:!0,variant:"bordered",isDisabled:x,isInvalid:T,errorMessage:T?"Amount is required":void 0,minValue:0,step:.01,className:y.amountInput,startContent:t.jsx("div",{className:"pointer-events-none flex items-center",children:t.jsx("span",{className:"text-default-400 text-small",children:C.currencySymbol})})})}),t.jsx("div",{className:c.cn("grow",y.glAccountContainer),children:t.jsx(c.Autocomplete,{"data-testid":`${w||"revenue-distribution-card"}-gl-account-input`,label:t.jsxs("span",{className:"flex items-center gap-1",children:[C.glAccount,t.jsx(c.Tooltip,{content:C.glAccountTooltip,children:t.jsx(R,{icon:"solar:info-circle-linear",className:"text-default-400 cursor-help",width:16})})]}),isLoading:a,isClearable:!0,labelPlacement:"outside",variant:"bordered",items:s,menuTrigger:"input",inputValue:E.glAccount?.name??Y,selectedKey:E.glAccount?.id??null,isDisabled:x,isInvalid:_,errorMessage:_?"GL Account is required":void 0,listboxProps:{emptyContent:a?C.searching:C.noGlAccountsFound},placeholder:C.glAccountPlaceholder,onInputChange:J,onSelectionChange:re,onClear:q,className:y.glAccountInput,children:ee=>t.jsx(c.AutocompleteItem,{textValue:ee.name,children:t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{children:ee.name}),ee.code&&t.jsx("span",{className:"text-xs text-default-400",children:ee.code})]})},ee.id)})}),t.jsx("div",{className:c.cn("shrink-0 pt-6 flex items-center",y.taxDeductibleContainer),children:t.jsx(c.Checkbox,{radius:"full","data-testid":`${w||"revenue-distribution-card"}-tax-deductible`,isSelected:E.isTaxDeductible,onValueChange:Q,isDisabled:x||!m,className:y.taxDeductibleCheckbox,children:C.taxDeductible})}),t.jsx("div",{className:c.cn("shrink-0 pt-6",y.deleteContainer),children:t.jsx(H,{"data-testid":`${w||"revenue-distribution-card"}-delete-button`,size:"sm",color:"danger",variant:"flat",isDisabled:x||!f,onPress:K,startContent:t.jsx(R,{icon:"solar:trash-bin-trash-linear",width:16}),className:c.cn("text-danger",y.deleteButton),children:C.deleteButton})})]})})};rr.displayName="RevenueDistributionCard";const ir=({message:e="No distributions configured",icon:n="solar:document-text-outline",iconSize:s=48,showCard:a=!0,classNames:r={},renderEmpty:i})=>{if(i)return t.jsx(t.Fragment,{children:i()});const o=t.jsxs("div",{className:c.cn("flex flex-col items-center justify-center py-8",r.content),children:[t.jsx(R,{icon:n,width:s,className:c.cn("text-default-300 mb-4",r.icon)}),t.jsx("p",{className:c.cn("text-default-500 text-sm text-center",r.message),children:e})]});return a?t.jsx(c.Card,{radius:"sm",shadow:"sm","data-testid":"revenue-distribution-empty",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{children:o})}):t.jsx("div",{"data-testid":"revenue-distribution-empty",className:c.cn("w-full",r.base),children:o})};ir.displayName="RevenueDistributionEmpty";const Yc={title:"Error Loading Distributions",description:"An error occurred while loading the distribution configuration. Please try again."},lr=({error:e,labels:n,showCard:s=!0,color:a="danger",classNames:r={}})=>{const i={...Yc,...n},o=t.jsx(c.Alert,{"data-testid":"revenue-distribution-error-alert",color:a,title:i.title,description:e||i.description,className:r.alert});return s?t.jsx(c.Card,{radius:"sm",shadow:"sm","data-testid":"revenue-distribution-error",className:c.cn("w-full",r.base),children:t.jsx(c.CardBody,{children:o})}):t.jsx("div",{"data-testid":"revenue-distribution-error",className:c.cn("w-full",r.base),children:o})};lr.displayName="RevenueDistributionError";const or=({rows:e=1,showCard:n=!0,classNames:s={}})=>{const a=Array.from({length:e},(i,o)=>o),r=i=>t.jsxs("div",{className:c.cn("flex flex-row flex-nowrap items-end gap-4",s.row),children:[t.jsxs("div",{className:"shrink-0 flex flex-col gap-1",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(c.Skeleton,{className:"h-4 w-14 rounded-md"}),t.jsx(c.Skeleton,{className:"h-4 w-4 rounded-full"})]}),t.jsx(c.Skeleton,{className:"h-10 w-32 rounded-lg"})]}),t.jsxs("div",{className:"grow flex flex-col gap-1",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(c.Skeleton,{className:"h-4 w-20 rounded-md"}),t.jsx(c.Skeleton,{className:"h-4 w-4 rounded-full"})]}),t.jsx(c.Skeleton,{className:"h-10 w-full rounded-lg"})]}),t.jsxs("div",{className:"shrink-0 pb-2 flex items-center gap-2",children:[t.jsx(c.Skeleton,{className:"h-5 w-5 rounded-full"}),t.jsx(c.Skeleton,{className:"h-4 w-24 rounded-md"})]}),t.jsx("div",{className:"shrink-0 pb-2",children:t.jsx(c.Skeleton,{className:"h-8 w-20 rounded-lg"})})]},i);return n?t.jsx("div",{className:c.cn("flex flex-col gap-3",s.base),children:a.map(i=>t.jsx(c.Card,{radius:"md",shadow:"sm","data-testid":`revenue-distribution-skeleton-${i}`,children:t.jsx(c.CardBody,{children:r(i)})},i))}):t.jsx("div",{"data-testid":"revenue-distribution-skeleton",className:c.cn("flex flex-col gap-3",s.base),children:a.map(i=>r(i))})};or.displayName="RevenueDistributionSkeleton";function zn({isOpen:e,labels:n,icon:s,isConfirming:a=!1,confirmColor:r="danger",iconTone:i="danger",portalContainer:o,shouldBlockScroll:l,classNames:d,onClose:u,onConfirm:f}){return t.jsx(c.Modal,{isOpen:e,size:"md",placement:"center",portalContainer:o,shouldBlockScroll:l,classNames:{...d,base:c.cn("max-w-[440px] rounded-3xl",d?.base),closeButton:c.cn("right-5 top-5 text-zinc-500",d?.closeButton)},onOpenChange:m=>!m&&u(),children:t.jsxs(c.ModalContent,{children:[t.jsxs(c.ModalHeader,{className:"flex flex-col items-start gap-4 px-7 pb-0 pt-7",children:[s&&t.jsx("span",{className:c.cn("flex h-12 w-12 shrink-0 items-center justify-center rounded-full",i==="warning"?"bg-brand/15 text-brand":"bg-danger-100 text-danger-600"),children:s}),t.jsx("span",{className:"text-lg font-semibold leading-6 text-zinc-950",children:n.title})]}),t.jsx(c.ModalBody,{className:"px-7 pb-3 pt-4",children:t.jsx("div",{className:"text-sm leading-6 text-zinc-500",children:n.description})}),t.jsxs(c.ModalFooter,{className:"grid grid-cols-2 gap-3 px-7 pb-7 pt-3",children:[t.jsx(H,{type:"button",size:"md",variant:"bordered",radius:"full",className:"h-10 border-zinc-200 bg-white text-sm font-normal text-zinc-900",onPress:u,children:n.cancel}),t.jsx(H,{type:"button",size:"md",color:r,radius:"full",className:c.cn("h-10 text-sm font-normal text-white",r==="danger"?"bg-danger-600":"bg-brand"),isLoading:a,onPress:f,children:n.confirm})]})]})})}const Gc=()=>({id:crypto.randomUUID(),fund:null,percentage:0});function Is(e){return!e.fund&&Number(e.percentage||0)<=0}function Kc({mode:e,assignments:n}){const s=n.filter(i=>i.fund),a=s.reduce((i,o)=>i+Number(o.percentage||0),0),r=n.some(i=>!i.fund||Number(i.percentage||0)<=0);return s.length>=1&&!r&&Math.round(a*100)/100===100}const Qc={title:"Payment assignment",saved:"Saved",singleFund:"Single fund",splitFunds:"Split across multiple funds",saveAssignment:"Save assignment",assignSpecificFund:"Assign specific fund",addFund:"Add account",emptySingle:"You have not assign any specific fund for this opportunity",emptySplit:"Select a fund and assign percentages that total 100%",selectedFund:"Selected fund",percentage:"Percentage",total:"Total",totalError:"Select a fund for each row and enter percentages that total 100%.",removeFund:"Remove fund",modalTitle:"Select an specific fund",searchPlaceholder:"Search...",glCode:"GL Code",accountName:"Specific Fund Name",type:"Type",actions:"Actions",select:"Select",noFunds:"No specific funds available",modifyAssignedFundsTitle:"Modify Assigned Funds",modifyAssignedFundsDescription:"Changing the assigned funds will only affect up and coming payments.",modifyAssignedFundsWarning:"Payments already paid will still keep the previous configuration.",modifyAssignedFundsCancel:"Cancel",modifyAssignedFundsConfirm:"Continue"},cr={base:"min-h-11 rounded-full bg-zinc-100 px-4 py-2 shadow-none",iconWrapper:"!h-4 !w-4 shrink-0 !bg-transparent !shadow-none !border-0 text-zinc-900",alertIcon:"!static !h-4 !w-4 !translate-x-0 !translate-y-0 text-zinc-900",mainWrapper:"min-w-0",title:"text-sm font-normal text-zinc-900"},rt={...cr,base:"min-h-11 rounded-2xl px-4 py-2 shadow-none",title:"text-sm font-medium"},Zc={inputWrapper:"h-9 rounded-xl border border-zinc-200 bg-white shadow-none hover:border-zinc-300 data-[hover=true]:border-zinc-300 group-data-[focus=true]:border-zinc-400 group-data-[focus-visible=true]:ring-0"},Xc={wrapper:"!absolute !inset-0 !z-50 !h-auto !w-auto !items-center !justify-center !p-4",backdrop:"!absolute !inset-0 !z-40 !h-auto !w-auto rounded-2xl"};function Jc(){return t.jsxs("svg",{"aria-hidden":"true",className:"size-4 text-zinc-500",fill:"none",viewBox:"0 0 16 16",children:[t.jsx("rect",{x:"3",y:"3",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("rect",{x:"9",y:"3",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("rect",{x:"3",y:"9",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("rect",{x:"9",y:"9",width:"4",height:"4",rx:"1",stroke:"currentColor",strokeWidth:"1.4"})]})}const ed=e=>Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e*100)/100)):0,td=e=>e.fund!==null;function nd({assignments:e,funds:n,labels:s,classNames:a,isSaving:r=!1,hasSavedAssignments:i=!1,showSavedIndicator:o=!1,isCollapsed:l,isFundPickerOpen:d=!1,activeAssignmentId:u=null,modalPortalContainer:f,footer:m,onAssignmentsChange:x,onOpenFundPicker:h,onCloseFundPicker:y,onCollapseChange:w,onSave:b}){const[j,N]=p.useState(null),C=f??j??void 0,v={...Qc,...s},k=e.filter(X=>!Is(X)),A=k.filter(td).length>0,M=p.useMemo(()=>e.filter(X=>!Is(X)).reduce((X,ue)=>X+Number(ue.percentage||0),0),[e]),E=Math.round(M*100)/100,I=k.some(X=>!X.fund||Number(X.percentage||0)<=0),$=A&&(E!==100||I),D=`${v.totalError} (${v.total} ${Number(M.toFixed(2))}%)`,T=Kc({mode:"split",assignments:e}),_=A&&E>=100,[Y,B]=p.useState(!1),[V,Z]=p.useState(!1),J=t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Jc,{}),t.jsx("span",{className:"text-base font-medium leading-6 text-zinc-950",children:v.title}),o?t.jsx(c.Chip,{size:"sm",radius:"full",color:"success",variant:"flat",children:v.saved}):null]}),re=(X,ue)=>{x(e.map(te=>te.id===X?{...te,...ue}:te))},q=()=>{_||x([...e,Gc()])},Q=X=>{e.length<=1||x(e.filter(ue=>ue.id!==X))},K=()=>{if(!r){if(!T){Z(!0);return}if(!i){b();return}B(!0)}},ee=()=>{B(!1),b()},oe=X=>{const ue=u??e.find(te=>!te.fund)?.id??e[0]?.id;ue&&(x(e.map(te=>te.id===ue?{...te,fund:X}:te)),y())};return t.jsxs("div",{ref:N,className:c.cn("vvt-pa relative min-w-0 w-full font-sans text-zinc-900 [container-type:inline-size]",d&&!f&&"min-h-[560px]",a?.root),children:[t.jsx(c.Accordion,{variant:"splitted",defaultSelectedKeys:l===void 0?["installment-fund-assignment"]:void 0,selectedKeys:l===void 0?void 0:new Set(l?[]:["installment-fund-assignment"]),className:c.cn("w-full gap-0 px-0",a?.panel),itemClasses:{base:"w-full rounded-2xl border border-zinc-200 bg-white p-0 shadow-sm",trigger:c.cn("px-4 py-4",a?.header),title:"w-full",content:"w-full px-4 pb-4 pt-0",indicator:"text-zinc-500 [&>svg]:size-4"},onSelectionChange:X=>w?.(!(X==="all"||Array.from(X).length>0)),children:t.jsx(c.AccordionItem,{"aria-label":v.title,title:J,children:t.jsxs("div",{className:c.cn("flex w-full flex-col gap-4",a?.content),children:[t.jsxs("div",{className:"flex w-full flex-col gap-4",children:[!A&&t.jsx(c.Alert,{icon:t.jsx(R,{icon:"solar:info-circle-outline",className:"size-4"}),hideIconWrapper:!0,isClosable:!1,classNames:cr,color:"default",variant:"flat",title:v.emptySplit}),A&&t.jsx(sd,{assignments:e,labels:v,total:M,hasTotalError:V&&!T||$,validationMessage:D,onSelectFund:X=>h(X),onRemoveFund:Q,onPercentageChange:(X,ue)=>re(X,{percentage:ed(ue)})}),t.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[t.jsx(H,{type:"button",size:"lg",color:"default",radius:"full",className:"h-11 bg-zinc-950 px-4 text-lg font-normal text-white disabled:opacity-50 [@container(max-width:479px)]:w-full",startContent:t.jsx(G.Plus,{className:"size-5",strokeWidth:2}),isDisabled:_,onPress:()=>A?q():h(),children:v.assignSpecificFund}),t.jsx(H,{type:"button","data-testid":"installment-fund-assignment-save-button",size:"md",color:"primary",radius:"full",className:"ml-auto h-10 min-w-40 px-4 text-sm font-medium [@container(max-width:479px)]:w-full",startContent:r?void 0:t.jsx(R,{icon:"solar:cloud-upload-outline",className:"size-4"}),isLoading:r,isDisabled:!T||r,onPress:K,children:v.saveAssignment})]})]}),m]})},"installment-fund-assignment")}),d&&t.jsx(ad,{funds:n,labels:v,selectedFundIds:e.map(X=>X.fund?.id).filter(Boolean),portalContainer:C,onSelect:oe,onClose:y}),t.jsx(zn,{isOpen:Y,labels:{title:v.modifyAssignedFundsTitle,description:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:v.modifyAssignedFundsDescription}),t.jsx("p",{className:"mt-3",children:v.modifyAssignedFundsWarning})]}),cancel:v.modifyAssignedFundsCancel,confirm:v.modifyAssignedFundsConfirm},icon:t.jsx(R,{icon:"solar:info-circle-outline",className:"size-7"}),iconTone:"warning",confirmColor:"primary",portalContainer:C,shouldBlockScroll:!1,classNames:Xc,onClose:()=>B(!1),onConfirm:ee})]})}function sd({assignments:e,labels:n,total:s,hasTotalError:a,validationMessage:r,onSelectFund:i,onRemoveFund:o,onPercentageChange:l}){return t.jsxs("div",{className:"flex flex-col gap-3",children:[e.map((d,u)=>t.jsxs("div",{"data-testid":"installment-fund-assignment-row",className:"flex min-h-15 w-full flex-wrap items-center gap-3 rounded-2xl border border-zinc-200 bg-white px-3 py-2",children:[t.jsx("div",{className:c.cn("flex min-h-11 min-w-0 basis-full items-center gap-2","[@container(min-width:560px)]:basis-0 [@container(min-width:560px)]:flex-1 [@container(min-width:560px)]:gap-4"),children:d.fund?t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"min-w-0 break-words rounded-2xl bg-zinc-100 px-4 py-1.5 text-sm text-zinc-950",children:[d.fund.glCode," - ",d.fund.accountName]}),t.jsx(H,{type:"button",variant:"light",color:"primary",radius:"full",className:"flex-none px-2 text-sm font-normal",onPress:()=>i(d.id),children:"Replace"})]}):t.jsx(H,{type:"button",size:"lg",variant:"light",radius:"full",className:"max-w-full justify-start px-4 text-lg font-normal text-zinc-900",startContent:t.jsx(G.Plus,{className:"size-5",strokeWidth:2}),onPress:()=>i(d.id),children:n.assignSpecificFund})}),t.jsx("label",{className:"flex min-w-0 flex-1 items-center [@container(min-width:560px)]:w-48 [@container(min-width:560px)]:flex-none",children:t.jsx(c.Input,{variant:"bordered",type:"number",min:0,max:100,step:.01,value:String(d.percentage||""),onChange:f=>l(d.id,Number(f.target.value)),endContent:t.jsx("span",{className:"text-sm text-zinc-500",children:"%"}),classNames:Zc})}),e.length>1&&t.jsx(H,{type:"button",isIconOnly:!0,variant:"flat",radius:"full",className:c.cn("h-10 w-10 flex-none p-0",u===0?"bg-danger-100 text-danger-500 opacity-60":"bg-danger-600 text-white"),style:{height:40,minWidth:40,width:40},isDisabled:u===0,onPress:()=>o(d.id),"aria-label":n.removeFund,children:t.jsx(R,{icon:"solar:trash-bin-minimalistic-outline",className:"size-5"})})]},d.id)),t.jsx(c.Alert,{icon:t.jsx(R,{icon:a?"solar:info-circle-outline":"solar:check-circle-outline",className:"size-4"}),hideIconWrapper:!0,isClosable:!1,color:a?"warning":"success",variant:"flat",classNames:{...rt,base:c.cn(rt.base,a?"bg-warning-50 text-warning-700":"bg-success-50 text-success-700"),iconWrapper:c.cn(rt.iconWrapper,a?"text-warning-700":"text-success-700"),alertIcon:c.cn(rt.alertIcon,a?"text-warning-700":"text-success-700"),title:c.cn(rt.title,a?"text-warning-700":"text-success-700")},title:a?r:`${n.total} ${Number(s.toFixed(2))}%`})]})}function ad({funds:e,labels:n,selectedFundIds:s,portalContainer:a,onSelect:r,onClose:i}){const[o,l]=p.useState(""),d=e.filter(u=>{if(s.includes(u.id))return!1;const f=o.trim().toLowerCase();return f?`${u.glCode} ${u.accountName} ${u.type}`.toLowerCase().includes(f):!0});return t.jsx(c.Modal,{isOpen:!0,size:"3xl",placement:"center",scrollBehavior:"inside",shouldBlockScroll:!1,portalContainer:a,classNames:{wrapper:"!absolute !inset-0 !z-50 !h-auto !w-auto !items-center !justify-center !p-4",backdrop:"!absolute !inset-0 !z-40 !h-auto !w-auto rounded-2xl",base:"max-h-[calc(100%-2rem)] w-full max-w-3xl rounded-3xl",closeButton:"right-6 top-6 text-zinc-500"},onOpenChange:u=>!u&&i(),children:t.jsxs(c.ModalContent,{className:"max-h-full",children:[t.jsx(c.ModalHeader,{className:"px-6 pr-12 pt-6 text-xl font-semibold leading-7 text-zinc-950",children:n.modalTitle}),t.jsxs(c.ModalBody,{className:"flex min-h-0 flex-1 flex-col px-6 pb-6",children:[t.jsx(c.Input,{variant:"bordered","aria-label":n.searchPlaceholder,value:o,placeholder:n.searchPlaceholder,onChange:u=>l(u.target.value),startContent:t.jsx(R,{icon:"solar:magnifer-outline",className:"size-5 text-zinc-500"}),classNames:{input:"text-sm placeholder:text-zinc-500",inputWrapper:"h-10 rounded-2xl border border-zinc-200 bg-white px-4 shadow-none hover:border-zinc-300 data-[hover=true]:border-zinc-300 group-data-[focus=true]:border-zinc-400 group-data-[focus-visible=true]:ring-0"}}),t.jsxs("div",{className:"mt-4 min-h-0 flex-1 overflow-auto [container-type:inline-size]",children:[t.jsxs("div",{className:"hidden grid-cols-[1fr_1.3fr_0.6fr] gap-5 border-b border-zinc-200 px-3 pb-3 text-sm font-medium leading-5 text-zinc-900 [@container(min-width:520px)]:grid",children:[t.jsx("span",{children:n.glCode}),t.jsx("span",{children:n.accountName}),t.jsx("span",{children:n.actions})]}),d.length===0&&t.jsx("div",{className:"p-4 text-sm text-zinc-500",children:n.noFunds}),d.map(u=>t.jsxs("div",{"data-testid":"installment-fund-picker-row",className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 border-b border-zinc-100 px-3 py-2.5 text-sm leading-5 text-zinc-900 last:border-b-0 [@container(min-width:520px)]:grid-cols-[1fr_1.3fr_0.6fr] [@container(min-width:520px)]:gap-5 [@container(min-width:520px)]:border-b-0",children:[t.jsx("span",{className:"col-start-1 row-start-1 font-medium [@container(min-width:520px)]:font-normal",children:u.glCode}),t.jsx("span",{className:"col-start-1 row-start-2 min-w-0 break-words text-zinc-600 [@container(min-width:520px)]:col-start-2 [@container(min-width:520px)]:row-start-1 [@container(min-width:520px)]:text-zinc-900",children:u.accountName}),t.jsx(H,{type:"button",size:"sm",variant:"bordered",radius:"full",className:"col-start-2 row-span-2 row-start-1 h-9 min-w-20 border-zinc-200 bg-white text-sm font-medium text-zinc-900 [@container(min-width:520px)]:col-start-3 [@container(min-width:520px)]:row-span-1 [@container(min-width:520px)]:min-w-24",onPress:()=>r(u),children:n.select})]},u.id))]})]})]})})}function rd(){return t.jsxs("section",{className:"flex w-full flex-col gap-4 rounded-2xl border border-zinc-200 bg-white p-4 shadow-sm","aria-busy":"true",children:[t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-7 w-56 rounded-lg"}),t.jsx(c.Skeleton,{className:"size-8 rounded-full"})]}),t.jsxs("div",{className:"flex items-center justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-10 w-72 rounded-full"}),t.jsx(c.Skeleton,{className:"h-10 w-40 rounded-full"})]}),t.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_160px] items-center gap-4 rounded-2xl border border-zinc-100 p-3",children:[t.jsx(c.Skeleton,{className:"h-8 w-full max-w-xs rounded-full"}),t.jsx(c.Skeleton,{className:"h-8 w-full rounded-xl"})]}),t.jsx(c.Skeleton,{className:"h-11 w-40 rounded-full"})]})}const id={totalAmount:"Total Amount:",remainingBalance:"Remaining Balance",amountReceived:"Amount Received:"};function ld({totalAmount:e,remainingBalance:n,amountReceived:s,currency:a="USD",locale:r="en-US",labels:i,className:o}){const l={...id,...i},d=new Intl.NumberFormat(r,{style:"currency",currency:a});return t.jsx("div",{className:c.cn("w-full rounded-2xl border border-zinc-200 bg-white px-4 py-2.5 font-sans text-base leading-6",o),children:t.jsxs("div",{className:"flex w-full flex-wrap items-center gap-x-5 gap-y-2",children:[t.jsx(Qt,{label:l.totalAmount,value:d.format(e)}),t.jsx(Qt,{label:l.remainingBalance,value:d.format(n)}),t.jsx(Qt,{label:l.amountReceived,value:d.format(s)})]})})}function Qt({label:e,value:n}){return t.jsxs("div",{className:"flex items-center gap-3 whitespace-nowrap",children:[t.jsx("span",{className:"font-medium text-zinc-700",children:e}),t.jsx("span",{className:"font-normal text-zinc-950",children:n})]})}const od={monthly:1,quarterly:3,annual:12},dr=e=>{const[n,s,a]=e.split("-").map(Number);return{year:n,month:s,day:a}},cd=(e,n)=>new Date(e,n+1,0).getDate(),dd=e=>{const n=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${n}-${s}-${a}`},ud=(e,n)=>{const{year:s,month:a,day:r}=dr(e),i=a-1+n,o=s+Math.floor(i/12),l=(i%12+12)%12,d=Math.min(r,cd(o,l));return new Date(o,l,d)},fd=(e,n)=>{const{year:s,month:a,day:r}=dr(e),i=new Date(s,a-1,r);return i.setDate(i.getDate()+n),i};function ur(e,n){const s=Math.max(1,Math.floor(n.numberOfInstallments||1)),a=Math.round(e*100),r=Math.floor(a/s),i=a-r*s,o=od[n.frequency];return Array.from({length:s},(l,d)=>{const u=n.frequency==="weekly"?fd(n.firstInstallmentDate,d*7):ud(n.firstInstallmentDate,d*(o??1));return{id:crypto.randomUUID(),dueDate:dd(u),amount:(r+(d===0?i:0))/100}})}function md(e){return new Set(e.map((n,s)=>{const a=e[s+1]?.dueDate;return n.dueDate&&a&&n.dueDate>a?n.id:null}).filter(n=>!!n))}function hd(e){return{missingDateRows:new Set(e.filter(n=>!n.dueDate).map(n=>n.id)),invalidDateRows:md(e),invalidAmountRows:new Set(e.filter(n=>Number(n.amount||0)<=0).map(n=>n.id))}}function xd(e){return e.missingDateRows.size>0||e.invalidDateRows.size>0||e.invalidAmountRows.size>0}function pd(e,n){const s=e[0];return!s||!n||s.dueDate===n?e:[{...s,dueDate:n},...e.slice(1)]}const gd={title:"Payments",saved:"Saved",automaticMode:"Auto",manualMode:"Manual",createInstallments:"Create Payments",generateSchedule:"Generate Schedule",saveInstallments:"Save Payments",cancelEdit:"Cancel",addInstallment:"Add Payment",emptyAutomatic:"No payments have been generated for this opportunity",emptyManual:"Add payments with custom dates and amounts",numberOfInstallments:"Number of payments",frequency:"Frequency",dayOfMonth:"Day of month",firstInstallmentDate:"First payment date",installment:"Payment",dueDate:"Due date",amount:"Amount",total:"Total",remaining:"Remaining",deleteInstallment:"Delete installment",weekly:"Weekly",monthly:"Monthly",quarterly:"Quarterly",annual:"Annual",totalError:"Payment total must equal the total amount",totalIncreaseWarning:"Saving will update the donation/contribution total to match the scheduled payments.",totalIncreaseConfirmationTitle:"Update Donation Total",totalIncreaseConfirmationDescription:"The scheduled payments total is greater than the current donation/contribution total. Saving will update the donation/contribution total to match the scheduled payments.",totalIncreaseConfirmationCancel:"Cancel",totalIncreaseConfirmationConfirm:"Save Payments",dateOrderError:"Payment date must be on or before the next payment date.",dueDateRequiredError:"Payment date is required.",amountGreaterThanZeroError:"Payment amount must be greater than 0."},bd=["weekly","monthly","quarterly","annual"],yd=Array.from({length:31},(e,n)=>n+1),vd=["numberOfInstallments","frequency","firstInstallmentDate"],_s=()=>({id:crypto.randomUUID(),dueDate:new Date().toISOString().slice(0,10),amount:0}),At=e=>Math.round(e*100)/100,jd=(e,n)=>{const s=new Date(`${e}T00:00:00`);return Number.isNaN(s.getTime())?e:new Intl.DateTimeFormat(n,{month:"short",day:"numeric",year:"numeric"}).format(s)},It=e=>{if(!e)return null;try{return ho(e)}catch{return null}},wd=e=>It(e)?.day??1,Nd=(e,n)=>new Date(e,n,0).getDate(),Cd=(e,n)=>{const s=It(e);if(!s)return e;const a=Math.min(n,Nd(s.year,s.month));return s.set({day:a}).toString()},Ps=e=>{const n=e%100>=11&&e%100<=13?"th":e%10===1?"st":e%10===2?"nd":e%10===3?"rd":"th";return`${e}${n}`};function kd({mode:e,donationAmount:n,currency:s="USD",locale:a="en-US",installments:r,automaticSettings:i,defaultTab:o="automatic",showTitle:l=!0,showCard:d=!0,showSavePayment:u=!0,showTabs:f=!0,inputs:m=vd,startDate:x,firstInstallmentDateOverride:h,labels:y,classNames:w,isSaving:b=!1,showSavedIndicator:j=!1,isModeSwitchDisabled:N=!1,onModeChange:C,onAutomaticSettingsChange:v,onInstallmentsChange:k,onSave:L,onCancel:A}){const[M,E]=p.useState(o),I={...gd,...y},$=e??M,D=p.useMemo(()=>new Intl.NumberFormat(a,{style:"currency",currency:s}),[s,a]),T=p.useMemo(()=>({...i,firstInstallmentDate:m.includes("firstInstallmentDate")?i.firstInstallmentDate:m.includes("dayOfMonth")?i.firstInstallmentDate||x||"":x||i.firstInstallmentDate}),[i,m,x]),_=$==="automatic"?pd(ur(n,T),m.includes("firstInstallmentDate")?void 0:h):r,Y=p.useMemo(()=>At(_.reduce((te,ye)=>te+Number(ye.amount||0),0)),[_]),B=Math.abs(Y-n)>.009,V=At(n-Y)<=0,Z=p.useMemo(()=>hd(r),[r]),J=$==="manual"&&xd(Z),re=B||J,q=l?t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(G.CircleDollarSign,{className:"size-4 text-zinc-500",strokeWidth:1.75}),t.jsx("span",{className:"text-base font-medium leading-6 text-zinc-950",children:I.title}),j?t.jsx(c.Chip,{size:"sm",radius:"full",color:"success",variant:"flat",children:I.saved}):null]}):void 0,Q=te=>{te!==$&&(e||E(te),C?.(te),te==="manual"&&r.length===0&&k([_s()]))},K=(te,ye)=>{r.find(ke=>ke.id===te)?.status!=="paid"&&k(r.map(ke=>ke.id===te?{...ke,...ye}:ke))},ee=()=>{k([...r,_s()])},oe=te=>{r.find(De=>De.id===te)?.status!=="paid"&&k(r.filter(De=>De.id!==te))},X=()=>{b||re||L?.()},ue=t.jsxs("div",{className:c.cn("flex w-full flex-col gap-4",w?.content),children:[f||u||A?t.jsxs("div",{className:"flex w-full items-center justify-between gap-6",children:[f?t.jsx(Sd,{mode:$,labels:I,onModeChange:Q,isDisabled:N,className:w?.tabs}):null,t.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[A?t.jsx(H,{type:"button","data-testid":"installment-schedule-cancel-button",size:"md",variant:"bordered",radius:"full",className:"min-w-28",isDisabled:b,onPress:A,children:I.cancelEdit}):null,u?t.jsx(H,{type:"button","data-testid":"installment-schedule-save-button",size:"md",color:"primary",radius:"full",className:"min-w-36",startContent:b?void 0:t.jsx(R,{icon:"solar:cloud-upload-outline",className:"size-4"}),isLoading:b,isDisabled:b||re,onPress:X,children:I.saveInstallments}):null]})]}):null,t.jsxs("div",{className:c.cn("flex w-full flex-col gap-4",w?.preview),children:[$==="automatic"&&t.jsx(Ad,{settings:T,inputs:m,labels:I,className:w?.controls,onSettingsChange:v}),_.length===0&&t.jsx(c.Alert,{isClosable:!1,color:"default",variant:"flat",radius:"full",title:$==="automatic"?I.emptyAutomatic:I.emptyManual}),_.length>0&&t.jsx($d,{mode:$,installments:_,rowErrors:Z,labels:I,formatter:D,locale:a,onUpdateInstallment:K,onRemoveInstallment:oe}),$==="manual"&&t.jsx("div",{className:"flex flex-wrap gap-3",children:t.jsx(H,{type:"button",size:"md",variant:"bordered",radius:"full",className:"h-10 border-zinc-200 bg-white px-4 text-sm font-normal text-zinc-900",startContent:t.jsx(G.Plus,{className:"size-5",strokeWidth:2}),isDisabled:V,onPress:ee,children:I.addInstallment})}),t.jsx(Md,{total:Y,donationAmount:n,hasTotalMismatch:B,mode:$,installments:_,formatter:D,labels:I,className:w?.summary})]})]});return t.jsx("div",{className:c.cn("vvt-ps relative font-sans text-zinc-900",w?.root),children:d?t.jsx(c.Accordion,{variant:"splitted",defaultSelectedKeys:["installment-schedule"],className:c.cn("w-full gap-0 px-0",w?.panel),itemClasses:{base:"w-full rounded-2xl border border-zinc-200 bg-white p-0 shadow-sm",trigger:c.cn("px-4 py-4",w?.header),title:"w-full",content:"w-full px-4 pb-4 pt-0",indicator:"text-zinc-500 [&>svg]:size-4"},children:t.jsx(c.AccordionItem,{"aria-label":I.title,title:q,children:ue},"installment-schedule")}):ue})}function Sd({mode:e,labels:n,className:s,isDisabled:a=!1,onModeChange:r}){return t.jsxs(c.Tabs,{"aria-label":n.title,selectedKey:e,isDisabled:a,color:"primary",size:"lg",radius:"full",className:c.cn("w-fit",s),onSelectionChange:i=>r(i),children:[t.jsx(c.Tab,{title:n.automaticMode},"automatic"),t.jsx(c.Tab,{title:n.manualMode},"manual")]})}function Ad({settings:e,inputs:n,labels:s,className:a,onSettingsChange:r}){const i=o=>{if(o==="numberOfInstallments")return t.jsx("div",{className:"min-w-0",children:t.jsx(c.Input,{variant:"bordered",label:s.numberOfInstallments,labelPlacement:"outside",type:"number",min:1,step:1,value:e.numberOfInstallments>0?String(e.numberOfInstallments):"",onWheel:l=>l.currentTarget.blur(),onChange:l=>{const d=l.target.value;r({...e,numberOfInstallments:d===""?0:Math.max(1,Number(d))})}})},o);if(o==="frequency")return t.jsx("div",{className:"min-w-0",children:t.jsx(Le,{variant:"bordered",label:s.frequency,labelPlacement:"outside",selectedKeys:[e.frequency],onSelectionChange:l=>{const d=Array.from(l)[0];typeof d=="string"&&r({...e,frequency:d})},children:bd.map(l=>t.jsx(c.SelectItem,{textValue:s[l],children:s[l]},l))})},o);if(o==="dayOfMonth"){const l=String(wd(e.firstInstallmentDate));return t.jsx("div",{className:"min-w-0",children:t.jsx(Le,{variant:"bordered",label:s.dayOfMonth,labelPlacement:"outside",selectedKeys:[l],onSelectionChange:d=>{const u=Number(Array.from(d)[0]);Number.isFinite(u)&&r({...e,firstInstallmentDate:Cd(e.firstInstallmentDate,u)})},children:yd.map(d=>t.jsx(c.SelectItem,{textValue:Ps(d),children:Ps(d)},String(d)))})},o)}return t.jsx("div",{className:"min-w-0",children:t.jsx(Fn,{variant:"bordered",label:s.firstInstallmentDate,labelPlacement:"outside",value:It(e.firstInstallmentDate),onChange:l=>r({...e,firstInstallmentDate:l?l.toString():""}),startContent:t.jsx(R,{icon:"solar:calendar-outline",className:"size-4 text-zinc-500"})})},o)};return n.length===0?null:t.jsx("div",{className:c.cn("grid gap-4",a),style:{gridTemplateColumns:"repeat(auto-fit, minmax(min(100%, 14rem), 1fr))"},children:n.map(i)})}function $d({mode:e,installments:n,rowErrors:s,labels:a,formatter:r,locale:i,onUpdateInstallment:o,onRemoveInstallment:l}){return e==="automatic"?t.jsx("div",{className:"rounded-2xl border border-zinc-200 bg-zinc-50 p-4",children:t.jsx("div",{className:c.cn("flex flex-col gap-3",n.length>5&&"max-h-[264px] overflow-y-auto pr-2"),children:n.map((d,u)=>t.jsxs("div",{className:c.cn("flex min-h-10 items-center justify-between rounded-xl px-4 py-2 text-base",u===0&&"border border-primary/25 bg-primary/5 text-primary"),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("span",{children:["#",u+1]}),t.jsx("span",{children:"▪"}),t.jsx("span",{children:jd(d.dueDate,i)}),u===0&&n.length>1&&t.jsx(c.Chip,{size:"sm",color:"primary",variant:"solid",radius:"full",children:"First charge"})]}),t.jsx("span",{className:"text-zinc-950",children:r.format(d.amount)})]},d.id))})}):t.jsx("div",{className:"flex flex-col gap-2",children:n.map((d,u)=>{const f=s.missingDateRows.has(d.id),m=s.invalidDateRows.has(d.id),x=s.invalidAmountRows.has(d.id);return t.jsx("div",{className:"flex w-full flex-col gap-1",children:t.jsxs("div",{className:"grid w-full grid-cols-[2rem_minmax(0,1fr)_minmax(0,1fr)_2.25rem] items-start gap-4",children:[t.jsx("span",{className:"pt-2 text-sm font-medium text-zinc-500",children:u+1}),t.jsx("div",{className:"min-w-0 flex-1",children:t.jsx(Fn,{variant:"bordered","aria-label":`${a.dueDate} ${u+1}`,isDisabled:d.status==="paid",isInvalid:f||m,errorMessage:f?a.dueDateRequiredError:m?a.dateOrderError:void 0,value:It(d.dueDate),onChange:h=>o(d.id,{dueDate:h?h.toString():""})})}),t.jsx("div",{className:"min-w-0 flex-1",children:t.jsx(Ed,{amount:d.amount,ariaLabel:`${a.amount} ${u+1}`,isDisabled:d.status==="paid",isInvalid:x,errorMessage:a.amountGreaterThanZeroError,onAmountChange:h=>o(d.id,{amount:h})})}),t.jsx(Fd,{isDisabled:n.length<=1,isPaid:d.status==="paid",label:a.deleteInstallment,onRemove:()=>l(d.id)})]})},d.id)})})}const Dd=/^\d*(?:[.,]\d{0,2})?$/;function Ed({amount:e,ariaLabel:n,isDisabled:s,isInvalid:a,errorMessage:r,onAmountChange:i}){const[o,l]=p.useState(null);return t.jsx(c.Input,{variant:"bordered","aria-label":n,type:"text",inputMode:"decimal",autoComplete:"off",isDisabled:s,isInvalid:a,errorMessage:a?r:void 0,value:o??(e?String(e):""),onChange:d=>{const u=d.target.value.trim();if(!Dd.test(u))return;l(u);const f=Number(u.replace(",","."));i(At(Number.isFinite(f)?f:0))},onBlur:()=>l(null),startContent:t.jsx("span",{className:"text-zinc-900",children:"$"})})}function Fd({isDisabled:e,isPaid:n,label:s,onRemove:a}){const r=t.jsx(H,{type:"button",isIconOnly:!0,variant:"flat",radius:"full",className:"h-9 w-9 flex-none bg-danger-100 p-0 text-danger-600",style:{height:36,minWidth:36,width:36},isDisabled:e||n,onPress:a,"aria-label":s,children:t.jsx(R,{icon:"solar:trash-bin-minimalistic-outline",className:"size-5"})});return n?t.jsx(c.Tooltip,{content:"This payment cannot be edited or deleted because it has already been paid.",placement:"top",children:t.jsx("span",{className:"inline-flex",children:r})}):r}function Md({total:e,donationAmount:n,hasTotalMismatch:s,mode:a,installments:r,formatter:i,labels:o,className:l}){const d=r.length,u=r[0]?.amount??0,f=r[1]?.amount??u,m=d>1&&Math.round(u*100)!==Math.round(f*100),x=At(n-e),h=Math.max(x,0),y=Math.max(-x,0),w=s?t.jsxs("span",{children:[o.totalError,". Total scheduled: ",t.jsx("strong",{children:i.format(e)})," /"," ",t.jsx("strong",{children:i.format(n)}),"."]}):a==="automatic"?m?t.jsxs("span",{children:["Saving will create ",t.jsx("strong",{children:d})," scheduled payment records:"," ",t.jsx("strong",{children:i.format(u)})," first charge and"," ",t.jsx("strong",{children:i.format(f)})," for each remaining charge."]}):t.jsxs("span",{children:["Saving will create ",t.jsx("strong",{children:d})," scheduled payment records of"," ",t.jsx("strong",{children:i.format(u)})," each."]}):t.jsxs("span",{children:["Total scheduled: ",t.jsx("strong",{children:i.format(e)})," /"," ",t.jsx("strong",{children:i.format(n)}),"."]}),b=a==="automatic"?`Total: ${i.format(e)}`:y>0?`Exceeds by: ${i.format(y)}`:`${o.remaining}: ${i.format(h)}`;return t.jsx(c.Alert,{isClosable:!1,color:s?"danger":"default",variant:"flat",radius:"full",className:l,endContent:t.jsx("span",{className:"whitespace-nowrap",children:b}),title:w})}function Ld(){return t.jsxs("section",{className:"flex w-full flex-col gap-4 rounded-2xl border border-zinc-200 bg-white p-4 shadow-sm","aria-busy":"true",children:[t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-7 w-56 rounded-lg"}),t.jsx(c.Skeleton,{className:"size-8 rounded-full"})]}),t.jsxs("div",{className:"flex items-center justify-between gap-3",children:[t.jsx(c.Skeleton,{className:"h-10 w-72 rounded-full"}),t.jsx(c.Skeleton,{className:"h-10 w-40 rounded-full"})]}),t.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",children:[t.jsxs("div",{className:"flex w-full max-w-[280px] flex-col gap-2",children:[t.jsx(c.Skeleton,{className:"h-4 w-36 rounded-md"}),t.jsx(c.Skeleton,{className:"h-9 w-full rounded-xl"})]}),t.jsx(c.Skeleton,{className:"h-9 w-36 rounded-full"})]}),t.jsx("div",{className:"flex flex-col gap-3",children:Array.from({length:4}).map((e,n)=>t.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_160px] items-center gap-4 rounded-2xl border border-zinc-100 p-3",children:[t.jsx(c.Skeleton,{className:"h-8 w-full max-w-xs rounded-full"}),t.jsx(c.Skeleton,{className:"h-8 w-full rounded-xl"})]},n))})]})}const Os={paid:"bg-emerald-50 text-emerald-700",scheduled:"bg-blue-50 text-blue-700",schedule:"bg-blue-50 text-blue-700",payment_due:"bg-amber-50 text-amber-700",overdue:"bg-orange-50 text-orange-700",failed:"bg-red-50 text-red-700",refunded:"bg-zinc-100 text-zinc-600",disputed:"bg-purple-50 text-purple-700",canceled:"bg-zinc-100 text-zinc-600",processing:"bg-sky-50 text-sky-700",pending_confirmation:"bg-indigo-50 text-indigo-700"},fr={paid:"Paid",scheduled:"Scheduled",schedule:"Scheduled",payment_due:"Payment Due",overdue:"Overdue",failed:"Failed",refunded:"Refunded",disputed:"Disputed",canceled:"Canceled",processing:"Processing",pending_confirmation:"Pending Confirmation"},Td={title:"Payments",saved:"Saved",searchLabel:"Search a payment",searchPlaceholder:"Search a payment by name, ID, or date...",editInstallments:"Edit Payment",installmentId:"Payment",amount:"Amount",scheduledDate:"Scheduled Date",paidOn:"Paid on",status:"Status",actions:"Actions",payNow:"Pay now",sendLink:"Send Link",sendLinkDescription:"Send a payment link to the contact",dangerZone:"Danger zone",deleteInstallment:"Delete Payment",deleteInstallmentDescription:"Remove Payment from Opportunity",deleteInstallmentConfirmationTitle:"Delete Payment",deleteInstallmentConfirmationDescription:t.jsxs(t.Fragment,{children:["Are you sure you want to delete this payment? ",t.jsx("strong",{children:"This action cannot be undone."})]}),deleteInstallmentConfirmationCancel:"Cancel",deleteInstallmentConfirmationConfirm:"Confirm",noInstallmentsFound:"No payments found."},Id={wrapper:"!absolute !inset-0 !z-50 !items-center !justify-center !p-4",backdrop:"!absolute !inset-0 !z-40 rounded-2xl"},_d=[];function Pd({installments:e,currency:n,locale:s="en-US",showTitle:a=!0,showCard:r=!0,showEditPayment:i=!0,showDelete:o=!0,payNowHiddenStatuses:l=_d,showSavedIndicator:d=!1,labels:u,isSaving:f=!1,onEditInstallments:m,onPayInstallment:x,onDeleteInstallment:h}){const[y,w]=p.useState(null),b={...Td,...u},[j,N]=p.useState(""),C=new Intl.NumberFormat(s,{style:"currency",currency:n}),v=a?t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(G.CircleDollarSign,{className:"size-4 text-zinc-500",strokeWidth:1.75}),t.jsx("span",{className:"text-base font-medium leading-6 text-zinc-950",children:b.title}),d?t.jsx(c.Chip,{size:"sm",radius:"full",color:"success",variant:"flat",children:b.saved}):null]}):void 0,k=p.useMemo(()=>{const A=j.trim().toLowerCase();return A?e.filter(M=>{const E=M.status??"scheduled";return[Zt(M),M.id,M.amount,M.dueDate,vt(M.dueDate,s),Xt(M,b.paidOn,s),E,fr[E]??E].join(" ").toLowerCase().includes(A)}):e},[s,e,j,b.paidOn]),L=t.jsxs("div",{className:"flex min-w-0 w-full flex-col gap-4 overflow-x-hidden [container-type:inline-size]",children:[t.jsxs("div",{className:"flex min-w-0 w-full flex-wrap items-end justify-between gap-4",children:[t.jsxs("div",{className:"min-w-0 w-full max-w-[280px]",children:[t.jsx("label",{className:"mb-1 block text-sm font-normal text-zinc-950",children:b.searchLabel}),t.jsx(c.Input,{variant:"bordered",size:"md",value:j,placeholder:b.searchPlaceholder,onChange:A=>N(A.target.value),startContent:t.jsx(R,{icon:"solar:magnifer-outline",className:"size-4 text-zinc-500"})})]}),i?t.jsx(H,{type:"button",variant:"bordered",radius:"full",size:"md",className:"h-10 border-zinc-200 bg-white px-4 text-sm font-normal text-zinc-900",startContent:t.jsx(R,{icon:"solar:pen-outline",className:"size-4"}),isLoading:f,onPress:m,children:b.editInstallments}):null]}),t.jsx("div",{className:c.cn("hidden [@container(max-width:767px)]:block",k.length>3&&"max-h-[560px] overflow-y-auto pr-1"),children:t.jsxs("div",{className:"flex flex-col gap-2",children:[k.map((A,M)=>{const E=A.status??"scheduled",I=Zt(A),$=Xt(A,b.paidOn,s);return t.jsx(c.Card,{radius:"lg",shadow:"none",className:"border border-default-200",children:t.jsxs(c.CardBody,{className:"gap-3 p-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsxs("p",{className:"text-xs text-default-500",children:["#",M+1]}),t.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:I||`PMT-${M+1}`})]}),t.jsx(Rs,{status:E})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[t.jsxs("div",{children:[t.jsx("p",{className:"text-xs text-default-500",children:b.amount}),t.jsx("p",{className:"font-medium text-foreground",children:C.format(A.amount)})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("p",{className:"text-xs text-default-500",children:b.scheduledDate}),t.jsx("p",{className:"font-medium text-foreground",children:vt(A.dueDate,s)}),$?t.jsx("p",{className:"text-xs text-default-500",children:$}):null]})]}),t.jsx(zs,{status:E,installment:A,labels:b,portalContainer:y??void 0,showDelete:o,payNowHiddenStatuses:l,onPayInstallment:x,onDeleteInstallment:h})]})},A.id)}),k.length===0&&t.jsx("div",{className:"rounded-lg border border-default-200 px-4 py-6 text-center text-sm text-default-500",children:b.noInstallmentsFound})]})}),t.jsx("div",{className:c.cn("w-full overflow-x-hidden [@container(max-width:767px)]:hidden",k.length>5&&"max-h-[344px] overflow-y-auto pr-1"),children:t.jsxs("table",{className:"w-full table-fixed border-collapse text-left text-sm",children:[t.jsxs("colgroup",{children:[t.jsx("col",{className:"w-12"}),t.jsx("col",{}),t.jsx("col",{className:"w-24"}),t.jsx("col",{className:"w-36"}),t.jsx("col",{className:"w-36"}),t.jsx("col",{className:"w-44"})]}),t.jsx("thead",{children:t.jsxs("tr",{className:"sticky top-0 z-10 border-b border-zinc-200 bg-white text-zinc-900",children:[t.jsx("th",{className:"px-2 py-3 font-medium",children:"#"}),t.jsx("th",{className:"px-2 py-3 font-medium",children:b.installmentId}),t.jsx("th",{className:"px-2 py-3 font-medium",children:b.amount}),t.jsx("th",{className:"px-2 py-3 font-medium",children:b.scheduledDate}),t.jsx("th",{className:"whitespace-nowrap px-2 py-3 font-medium",children:b.status}),t.jsx("th",{className:"whitespace-nowrap py-3 pl-4 pr-2 font-medium",children:b.actions})]})}),t.jsxs("tbody",{children:[k.map((A,M)=>{const E=A.status??"scheduled",I=Zt(A),$=Xt(A,b.paidOn,s);return t.jsxs("tr",{className:"text-zinc-500",children:[t.jsx("td",{className:"px-2 py-3",children:M+1}),t.jsx("td",{className:"overflow-hidden px-2 py-3",children:t.jsx("span",{className:"block w-full truncate",children:I||`PMT-${M+1}`})}),t.jsx("td",{className:"px-2 py-3",children:C.format(A.amount)}),t.jsxs("td",{className:"px-2 py-3",children:[vt(A.dueDate,s),$?t.jsx("span",{className:"block text-xs",children:$}):null]}),t.jsx("td",{className:"whitespace-nowrap px-2 py-3",children:t.jsx(Rs,{status:E})}),t.jsx("td",{className:"whitespace-nowrap py-3 pl-4 pr-2",children:t.jsx(zs,{status:E,installment:A,labels:b,portalContainer:y??void 0,showDelete:o,payNowHiddenStatuses:l,onPayInstallment:x,onDeleteInstallment:h})})]},A.id)}),k.length===0&&t.jsx("tr",{children:t.jsx("td",{colSpan:6,className:"px-2 py-6 text-center text-zinc-500",children:b.noInstallmentsFound})})]})]})})]});return t.jsx("div",{ref:w,className:"vvt-ps relative min-w-0 w-full overflow-x-hidden [container-type:inline-size] font-sans text-zinc-900",children:r?t.jsx(c.Accordion,{variant:"splitted",defaultSelectedKeys:["installment-table"],className:"min-w-0 w-full gap-0 px-0",itemClasses:{base:"min-w-0 w-full overflow-x-hidden rounded-2xl border border-zinc-200 bg-white p-0 shadow-sm",trigger:"px-4 py-4",title:"w-full",content:"min-w-0 w-full overflow-x-hidden px-4 pb-4 pt-0",indicator:"text-zinc-500 [&>svg]:size-4"},children:t.jsx(c.AccordionItem,{"aria-label":b.title,title:v,children:L},"installment-table")}):L})}function Zt(e){return e.name?.trim()||e.id}function Xt(e,n,s){return e.status!=="paid"||!e.fulfilledAt?null:`${n} ${vt(e.fulfilledAt,s)}`}function Rs({status:e}){return t.jsx(c.Chip,{size:"md",radius:"lg",className:c.cn("justify-center px-4",Os[e]??Os.scheduled),startContent:t.jsx(Rd,{status:e}),children:fr[e]??e})}function zs({status:e,installment:n,labels:s,portalContainer:a,showDelete:r,payNowHiddenStatuses:i,onPayInstallment:o,onDeleteInstallment:l}){const d=!i.includes(e);return t.jsxs("div",{className:"flex min-w-36 items-center justify-start gap-2",children:[d?t.jsx(H,{type:"button",size:"md",color:"primary",variant:"solid",radius:"full",className:"min-w-[104px] shrink-0",isDisabled:e==="paid",startContent:t.jsx(R,{icon:"solar:dollar-minimalistic-outline",className:"size-4"}),onPress:()=>o?.(n),children:s.payNow}):null,t.jsx(Od,{isFulfilled:e==="paid",showDelete:r,labels:s,portalContainer:a,onDelete:()=>l(n.id)})]})}function Od({isFulfilled:e,showDelete:n,labels:s,portalContainer:a,onDelete:r}){const[i,o]=p.useState(!1);return t.jsxs(t.Fragment,{children:[t.jsxs(c.Dropdown,{placement:"bottom-end",radius:"lg",children:[t.jsx(c.DropdownTrigger,{children:t.jsx(H,{type:"button",isIconOnly:!0,size:"sm",variant:"light",className:"text-zinc-900","aria-label":"More actions",children:t.jsx(R,{icon:"solar:menu-dots-bold",className:"size-4"})})}),t.jsxs(c.DropdownMenu,{"aria-label":"Installment actions",disabledKeys:e?["send-link","delete"]:[],className:"w-72 p-2",onAction:l=>{l==="delete"&&n&&!e&&o(!0)},children:[t.jsx(c.DropdownSection,{title:"Actions",showDivider:n,children:t.jsx(c.DropdownItem,{textValue:s.sendLink,description:s.sendLinkDescription,startContent:t.jsx(R,{icon:"solar:link-outline",className:"size-5 text-zinc-500"}),children:s.sendLink},"send-link")}),n?t.jsx(c.DropdownSection,{title:s.dangerZone,children:t.jsx(c.DropdownItem,{textValue:s.deleteInstallment,className:"text-danger-600",color:"danger",description:s.deleteInstallmentDescription,startContent:t.jsx(R,{icon:"solar:trash-bin-minimalistic-outline",className:"size-5"}),children:s.deleteInstallment},"delete")}):null]})]}),n?t.jsx(zn,{isOpen:i,labels:{title:s.deleteInstallmentConfirmationTitle,description:s.deleteInstallmentConfirmationDescription,cancel:s.deleteInstallmentConfirmationCancel,confirm:s.deleteInstallmentConfirmationConfirm},icon:t.jsx(R,{icon:"solar:danger-triangle-outline",className:"size-7"}),confirmColor:"danger",portalContainer:a,shouldBlockScroll:!1,classNames:Id,onClose:()=>o(!1),onConfirm:()=>{o(!1),r()}}):null]})}function Rd({status:e}){return e==="paid"?t.jsx(R,{icon:"solar:check-circle-bold",className:"size-3"}):e==="failed"?t.jsx(R,{icon:"solar:close-circle-bold",className:"size-3"}):e==="processing"?t.jsx(R,{icon:"solar:refresh-circle-bold",className:"size-3"}):e==="pending_confirmation"?t.jsx(R,{icon:"solar:clock-circle-bold",className:"size-3"}):t.jsx(R,{icon:"solar:calendar-outline",className:"size-3"})}const zd=/^\d{4}-\d{2}-\d{2}$/;function vt(e,n){const s=zd.test(e)?new Date(`${e}T00:00:00`):new Date(e);return Number.isNaN(s.getTime())?e:new Intl.DateTimeFormat(n,{month:"short",day:"numeric",year:"numeric"}).format(s)}const Bd={title:"Select Membership",renewalTitle:"Automatic Renewal",renewalDescription:"Membership will automatically renew at the end of each period"},Vd=({cards:e,locale:n,currency:s,listHeightClassName:a="",labels:r,showRenewal:i=!0,defaultRenewalValue:o=!1,initialSelectedMembershipId:l=null,allowReselect:d=!0,onRenewalChange:u,onCardSelect:f,className:m=""})=>{const x=Array.isArray(e)?e:[],[h,y]=p.useState(l),[w,b]=p.useState(o),j={...Bd,...r};p.useEffect(()=>{y(l)},[l]);const N=v=>{if(v===h){d&&f?.(v);return}y(v),f?.(v)},C=v=>{b(v),u?.(v)};return t.jsxs("div",{className:c.cn("w-full flex flex-col gap-4 items-start p-4 h-svh",m),"data-testid":"membership-select-cards",children:[t.jsx("span",{className:"hidden","data-testid":"membership-select-cards-selected-id",children:h??""}),t.jsx("p",{className:"text-2xl font-semibold text-left","data-testid":"membership-select-cards-title",children:j.title}),i&&t.jsx(pr,{title:j.renewalTitle,description:j.renewalDescription,value:w,onValueChange:C}),t.jsx("div",{className:c.cn("w-full min-h-0 flex flex-col gap-4 overflow-y-auto",a===""?"flex-1":c.cn("shrink-0",a)),"data-testid":"membership-select-cards-list",children:x.map(v=>t.jsx(mr,{itemKey:v.id,name:v.name,type:v.type,price:v.price,locale:n,currency:s,isSelected:h===v.id,onSelect:N},v.id))})]})},mr=({itemKey:e,name:n,type:s,price:a,locale:r="en-US",currency:i="USD",showPrice:o=!0,isSelected:l=!1,onSelect:d,compact:u=!1,isDisabled:f=!1,disabledReason:m,statusLabel:x,statusTone:h="default",className:y=""})=>{const w=new Intl.NumberFormat(r,{style:"currency",currency:i,minimumFractionDigits:0,maximumFractionDigits:2}).format(a),b=!!d&&!f,j=m||x,N=()=>{b&&d?.(e)};return t.jsx(c.Card,{shadow:"none",isPressable:!!d,onPress:N,className:c.cn("w-full min-h-fit border rounded-3xl",l?"border-primary bg-primary/5":"border-default",f?"opacity-60":"",u?"rounded-2xl":"",y),"data-testid":"item-card","data-selected":l,isDisabled:f,children:t.jsxs("div",{className:c.cn("px-4 py-8 flex gap-6 items-center justify-between",u&&"px-3 py-3 gap-4"),children:[t.jsxs("div",{className:"w-max flex flex-col gap-1 items-start",children:[t.jsx("p",{className:c.cn("font-semibold text-left",u?"text-sm":"text-xl"),"data-testid":"item-card-name",children:n}),s&&t.jsx("div",{"data-testid":"item-card-type",className:"w-fit bg-default-300 px-4 py-2 text-sm rounded-xl",children:t.jsx("p",{className:"text-center",children:s})}),j&&t.jsx(c.Chip,{"data-testid":"item-card-status",color:h,size:"sm",variant:"flat",className:"px-2",children:j})]}),o&&t.jsx("p",{className:c.cn("font-semibold text-right",u?"text-lg":"text-2xl"),"data-testid":"item-card-price",children:w})]})})},Bs="w-full bg-gray-100",Vs={variant:"light",color:"default"},hr=({id:e,title:n,media:s,imageUrl:a,imageAlt:r,imageClassName:i="",imageAspect:o="aspect-[4/3]",meta:l=[],price:d,action:u,footer:f,onPress:m,isPressable:x=!1,isDisabled:h=!1,compact:y=!1,className:w="",bodyClassName:b="",footerClassName:j="",dataTestId:N})=>{const C=!!(d&&d.value),v=!!u?.label,k=x&&!!m&&!v,L=!k,A=v?{variant:u?.variant??Vs.variant,color:u?.color??Vs.color,size:u?.size??"sm",isDisabled:h||u?.isDisabled,startContent:u?.icon?t.jsx(R,{icon:u.icon,width:16}):void 0}:null,M=s??(a?t.jsx("div",{className:c.cn("relative overflow-hidden rounded-xl",o,Bs,i),children:t.jsx(c.Image,{removeWrapper:!0,src:a,alt:r||n,className:"size-full object-cover",classNames:{wrapper:"absolute inset-0"}})}):t.jsx("div",{className:c.cn("relative overflow-hidden rounded-xl",o,Bs,"grid place-items-center",i),"data-testid":`catalog-item-card-${e??"media"}-fallback`,children:t.jsx(R,{icon:"solar:ticket-outline",width:48,className:"text-default-400"})}));return t.jsxs(c.Card,{"data-testid":N||`catalog-item-card-${e??"item"}`,className:c.cn("w-full overflow-hidden",w),isPressable:k,onPress:m,isDisabled:h,shadow:"sm",radius:"lg",children:[t.jsx("div",{children:M}),t.jsxs(c.CardBody,{className:c.cn("gap-3",y?"p-3":"p-4",b),children:[t.jsx("h3",{"data-testid":`catalog-item-card-title-${e??""}`,className:c.cn("line-clamp-2 text-base font-semibold text-gray-900",y?"text-sm":""),children:n}),l.length>0?t.jsx("div",{className:"flex flex-col gap-1.5 text-sm text-gray-600","data-testid":`catalog-item-card-meta-${e??""}`,children:l.map((E,I)=>t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(R,{icon:E.icon,className:"size-4 text-gray-400",width:16}),t.jsx("span",{children:E.label})]},`${E.label}-${I}`))}):null,(C||v)&&t.jsxs("div",{className:c.cn("flex items-center justify-end gap-2 pt-1 text-sm",y?"pt-0.5":"",j),children:[C?t.jsxs("span",{className:c.cn("mr-auto text-gray-500",y?"text-xs":""),"data-testid":`catalog-item-card-price-${e??""}`,children:[d?.label&&t.jsxs("span",{children:[d.label," "]}),t.jsx("span",{className:"font-semibold text-brand",children:d?.value})]}):t.jsx("span",{className:"ml-auto","aria-hidden":!0}),v&&L?t.jsx(H,{className:c.cn("rounded-full",u?.className),onPress:u?.onPress,variant:A?.variant,color:A?.color,size:A?.size,startContent:A?.startContent,isDisabled:A?.isDisabled,"aria-label":u?.ariaLabel||u?.label,children:u?.label}):null]}),f?t.jsx("div",{className:"pt-1",children:f}):null]})]})};hr.displayName="CatalogItemCard";const Ud={card:"gap-3 rounded-xl border border-dashed px-6 py-12",panel:"px-6 py-[72px]"},Hd={card:"size-12 rounded-2xl",panel:"size-[76px] rounded-[20px] border mb-[18px]"},qd={card:"text-base font-medium text-default-900",panel:"text-[17px] font-semibold text-acct-ink"},Wd={card:"max-w-sm text-sm text-default-600",panel:"max-w-[380px] text-sm text-acct-sub mt-1.5"},Yd={card:"mt-1",panel:"mt-[22px]"},Gd="bg-acct-page border-acct-border text-acct-muted",Kd={empty:"solar:inbox-line-duotone",error:"solar:danger-triangle-outline",success:"solar:check-circle-bold"},Qd={empty:"border-default-200 bg-white",error:"border-danger-200 bg-white",success:"border-success-100 bg-success-50/40",loading:"border-default-200 bg-white"},Zd={empty:"bg-default-100 text-default-400",error:"bg-danger-50 text-danger-600",success:"bg-success-100 text-success-700",loading:"bg-primary-50 text-primary"},Xd={empty:"status",error:"alert",success:"status",loading:"status"},Jd={empty:"polite",error:"assertive",success:"polite",loading:"polite"};function eu(e,n,s,a){if(n===!1)return null;if(e==="loading"&&n===void 0)return t.jsx(c.Spinner,{size:"lg",color:"primary",className:a.spinner});if(p.isValidElement(n))return t.jsx(t.Fragment,{children:n});const r=typeof n=="string"?n:Kd[e];return r?t.jsx(R,{icon:r,width:s,height:s,"aria-hidden":"true",className:a.icon}):null}function et({variant:e="empty",surface:n="card",title:s,titleAs:a="p",description:r,icon:i,actions:o,role:l=Xd[e],ariaLive:d=Jd[e],iconSize:u=24,className:f,classNames:m={},"data-testid":x="feedback-state"}){const h=eu(e,i,u,m);return t.jsxs("div",{role:l,"aria-live":d,"data-variant":e,"data-testid":x,"data-surface":n,className:c.cn("flex flex-col items-center justify-center text-center",Ud[n],n==="card"?Qd[e]:"bg-transparent",f,m.base),children:[h?t.jsx("span",{"aria-hidden":"true","data-testid":`${x}-icon`,className:c.cn("inline-flex items-center justify-center",Hd[n],e==="success"&&n==="card"&&"rounded-full",n==="panel"?Gd:Zd[e],m.iconWrapper),children:h}):null,t.jsxs("div",{className:c.cn("flex flex-col items-center",n==="card"&&"gap-1"),children:[t.jsx(a,{"data-testid":`${x}-title`,className:c.cn(qd[n],m.title),children:s}),r?t.jsx("p",{"data-testid":`${x}-description`,className:c.cn(Wd[n],m.description),children:r}):null]}),o?t.jsx("div",{"data-testid":`${x}-actions`,className:c.cn("flex flex-wrap items-center justify-center gap-2",Yd[n],m.actions),children:o}):null]})}function Bn(e){return t.jsx(et,{...e,variant:"empty"})}function Vn(e){return t.jsx(et,{...e,variant:"error"})}function Un(e){return t.jsx(et,{...e,variant:"loading"})}function xr(e){return t.jsx(et,{...e,variant:"success"})}et.displayName="FeedbackState";Bn.displayName="EmptyState";Vn.displayName="ErrorState";Un.displayName="LoadingState";xr.displayName="SuccessState";const pr=({title:e,value:n,description:s,onValueChange:a,className:r=""})=>{const i=p.useId();return t.jsxs("div",{className:c.cn("w-full flex flex-row items-center",e||s?"justify-between gap-6":"justify-start",r),"data-testid":"toggle",children:[t.jsxs("div",{className:"flex flex-col items-start",children:[e&&t.jsx("label",{htmlFor:i,className:"font-medium text-left","data-testid":"toggle-title",children:e}),s&&t.jsx("p",{className:"text-left text-gray-500","data-testid":"toggle-description",children:s})]}),t.jsx(c.Switch,{id:i,isSelected:n,onValueChange:a,"data-testid":"toggle-switch"})]})},tu={ticketSelectionTitle:"Choose tickets to be upgraded",ticketsAllowedToRedeem:"Tickets allowed to redeem:",ticketsSelectedToRedeem:"Tickets selected to redeem",noUpgradeTicketsAvailable:"No upgrade tickets available to select",selectAllButtonLabel:"Select All"},nu=(e,n)=>new Intl.NumberFormat(e,{style:"currency",currency:n}),gr=e=>Object.values(e).reduce((n,s)=>n+Object.values(s).reduce((a,r)=>a+Object.values(r).reduce((i,o)=>i+o.selectedQuantity,0),0),0),su=e=>e.reduce((n,s)=>n+s.dates.reduce((a,r)=>a+r.tickets.reduce((i,o)=>i+o.max,0),0),0),Hn=e=>e.flatMap(n=>n.dates.flatMap(s=>s.tickets.map(a=>({exhibition:n,dateGroup:s,ticket:a})))),Us=(e,n,s)=>{const a={};let r=s?n??su(e):0;for(const{exhibition:i,dateGroup:o,ticket:l}of Hn(e)){a[i.id]??={},a[i.id][o.id]??={};const d=s?Math.min(l.max,r):0;a[i.id][o.id][l.id]={id:l.id,selectedQuantity:d,originalPrice:l.originalPrice,discountedPrice:l.price},r-=d}return a},Hs=(e,n,s)=>`${e}::${n}::${s}`,au=(e,n,s)=>{const a=gr(n);for(const{exhibition:r,dateGroup:i,ticket:o}of Hn(e)){const l=n[r.id]?.[i.id]?.[o.id]?.selectedQuantity??0,d=s===void 0?o.max:Math.min(o.max,s-(a-l));if(d>0&&l<d)return!1}return!0},ru=({initialQuantity:e=1,minQuantity:n=1,maxQuantity:s=10,onChange:a,disabled:r=!1})=>{const i=Math.max(n,Math.min(s,e)),[o,l]=p.useState(()=>String(i)),[d,u]=p.useState(!1),f=d?o:String(i),m=()=>{r||i>=s||a?.(i+1)},x=()=>{r||i<=n||a?.(i-1)},h=v=>{if(r)return;l(v.target.value);const k=parseInt(v.target.value,10);isNaN(k)||a?.(Math.max(n,Math.min(s,k)))},y=v=>{const k=parseInt(v.target.value,10);if(u(!1),isNaN(k)){a?.(n);return}const L=Math.max(n,Math.min(s,k));L!==k?a?.(L):l(String(L))},w=i<=n,b=i>=s,j="w-10 h-10 flex items-center justify-center border-0 rounded-full cursor-pointer transition-colors duration-150 text-white text-2xl font-regular",N="bg-primary hover:bg-primary/80",C="bg-primary/40 cursor-not-allowed";return t.jsxs("div",{className:"flex items-center gap-4","data-testid":"quantity-selector",children:[t.jsx("button",{type:"button",onClick:x,disabled:r||w,className:c.cn(j,r||w?C:N),"aria-label":"Decrement quantity","data-testid":"quantity-decrement",children:"-"}),t.jsx("input",{type:"number",value:f,onChange:h,onFocus:()=>u(!0),onBlur:y,disabled:r,min:n,max:s,step:"1",className:"w-12 h-10 rounded-md border-0 bg-zinc-100 text-center text-2xl font-medium text-zinc-900 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none","aria-label":`Selected quantity: ${i}`,"data-testid":"quantity-input"}),t.jsx("button",{type:"button",onClick:m,disabled:r||b,className:c.cn(j,r||b?C:N),"aria-label":"Increment quantity","data-testid":"quantity-increment",children:"+"})]})},iu=({label:e,checked:n=!1,onChange:s,disabled:a=!1})=>{const r=()=>{a||s?.(!n)};return t.jsxs("button",{type:"button",onClick:r,disabled:a,role:"checkbox","aria-checked":n,"data-testid":"checkbox-button","data-checked":n,className:c.cn("flex items-center gap-1.5 px-4 py-3 border-0 rounded-full cursor-pointer text-sm min-h-[30px]","outline-none select-none transition-colors bg-zinc-100 hover:bg-zinc-200 text-primary",a&&"cursor-not-allowed opacity-60"),children:[t.jsxs("span",{className:"relative flex items-center justify-center w-5 h-5 flex-shrink-0",children:[t.jsx("input",{type:"checkbox",checked:n,onChange:()=>{},disabled:a,className:"absolute opacity-0 w-0 h-0 pointer-events-none",tabIndex:-1,readOnly:!0}),t.jsx("span",{className:c.cn("block w-3.5 h-3.5 rounded-sm relative",n?"bg-primary":"bg-white ring-1 ring-zinc-300"),children:n&&t.jsx("span",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[60%] rotate-45 w-[3px] h-[5px] border border-white border-t-0 border-l-0","aria-hidden":"true"})})]}),t.jsx("p",{className:"flex-1 m-0 text-left leading-snug",children:e})]})},lu=({item:e,quantity:n,onChange:s,getTotalSelectedTickets:a,userMaxLimit:r,settings:i,labels:o})=>{const l=()=>{if(!a||r===void 0)return e.max;const m=a();return Math.min(e.max,r-(m-n))},d=i?.locale??"en-US",u=i?.currency??"USD",f=nu(d,u);return t.jsxs("div",{children:[t.jsxs("div",{className:"flex items-center justify-between bg-white px-3 py-2.5 gap-8","data-testid":"upgrade-ticket-item",children:[t.jsxs("div",{className:"min-w-0 flex flex-1 flex-col gap-2",children:[t.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[t.jsxs("h3",{className:"min-w-0 text-base font-semibold text-zinc-900 m-0","data-testid":"ticket-name",children:[e.name,typeof e.purchasedQuantity=="number"&&e.purchasedQuantity>1?t.jsx("span",{"data-testid":"ticket-purchased-quantity",children:` x${e.purchasedQuantity}`}):null]}),t.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[t.jsx("h3",{className:"line-through text-zinc-500 text-[0.9rem] font-normal m-0","data-testid":"ticket-original-price",children:f.format(e.originalPrice)}),t.jsx("h3",{className:"text-base font-semibold text-zinc-900 m-0","data-testid":"ticket-discounted-price",children:f.format(e.price)})]})]}),e.membershipName?t.jsx("div",{"data-testid":"ticket-membership-name",className:"max-w-full self-start rounded-2xl bg-default-100 px-3 py-1 text-xs text-default-700",title:e.membershipName,children:t.jsx("p",{className:"max-w-full truncate text-center",children:e.membershipName})}):null,t.jsx("div",{className:"text-sm text-zinc-500",children:t.jsxs("p",{className:"m-0","data-testid":"ticket-max",children:[o.ticketsAllowedToRedeem," ",e.max]})})]}),t.jsx(ru,{initialQuantity:n,minQuantity:0,maxQuantity:l(),onChange:s})]}),e.membershipAlert?t.jsx(c.Alert,{"data-testid":"ticket-membership-alert",color:"warning",variant:"flat",radius:"full",className:"ticket-selection-membership-alert mb-2 w-full max-w-full py-0 shadow-none",classNames:{base:"ticket-selection-membership-alert-base !min-h-8 !items-center !bg-[#F5CB24]/15 !text-[#5B2C0F] shadow-none",mainWrapper:"ticket-selection-membership-alert-main-wrapper m-0 min-h-8 !py-0 !px-0",alertIcon:"ticket-selection-membership-alert-icon w-4 h-4 !text-[#5B2C0F]",iconWrapper:"ticket-selection-membership-alert-icon-wrapper !min-w-0 !bg-transparent !border-none !shadow-none !rounded-none !p-0 !m-0 !w-4 !h-4",description:"ticket-selection-membership-alert-description !ms-2 !my-2 !text-[#5B2C0F]"},description:t.jsx("span",{className:"ticket-selection-membership-alert-description-text block w-full whitespace-normal break-words text-sm leading-4 text-[#5B2C0F]",children:e.membershipAlert})}):null]})},ou=({exhibitionId:e,dateGroup:n,isLast:s=!1,onQuantityChange:a,getTicketQuantity:r,getTotalSelectedTickets:i,userMaxLimit:o,settings:l,labels:d})=>t.jsxs("div",{className:c.cn("flex flex-col gap-2 pb-3",!s&&"border-b border-zinc-200"),"data-testid":"upgrade-ticket-date-group",children:[t.jsx("p",{className:"m-0 text-sm text-left text-zinc-500","data-testid":"upgrade-ticket-date",children:n.date}),n.tickets.map((u,f)=>t.jsxs("div",{children:[t.jsx(lu,{item:u,quantity:r(e,n.id,u.id),onChange:m=>a(e,n.id,u.id,m),getTotalSelectedTickets:i,userMaxLimit:o,settings:l,labels:d}),f<n.tickets.length-1?t.jsx(c.Divider,{className:"bg-zinc-200","data-testid":"upgrade-ticket-divider"}):null]},u.id))]}),cu=({title:e,exhibition:n,onQuantityChange:s,getTicketQuantity:a,getTotalSelectedTickets:r,userMaxLimit:i,settings:o,labels:l,initialExpanded:d=!1})=>{const[u,f]=p.useState(d),m=n.dates.reduce((h,y)=>h+y.tickets.reduce((w,b)=>w+a(n.id,y.id,b.id),0),0),x=n.dates.some(h=>h.tickets.length>0);return t.jsxs("div",{className:"w-full overflow-hidden border-b border-zinc-200","data-testid":"upgrade-ticket-header",children:[t.jsx("button",{type:"button",className:"flex items-center w-full px-5 py-4 border-0 cursor-pointer transition-all bg-white hover:bg-zinc-100",onClick:()=>f(!u),"aria-expanded":u,"aria-controls":`upgrade-items-${n.id}`,"data-testid":"upgrade-ticket-header-button",children:t.jsxs("div",{className:"flex justify-between items-center w-full gap-6",children:[t.jsx("h4",{className:"m-0 text-base font-semibold text-left text-zinc-900","data-testid":"upgrade-ticket-header-title",children:e}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsxs("p",{className:"m-0 text-sm text-right text-zinc-500","data-testid":"upgrade-ticket-header-count",children:[m," ",l.ticketsSelectedToRedeem]}),t.jsx("span",{className:c.cn("inline-flex items-center justify-center text-zinc-500 text-xl transition-transform duration-200",u&&"rotate-180"),"aria-hidden":"true",children:t.jsx(R,{icon:"mdi:chevron-down"})})]})]})}),t.jsx("div",{id:`upgrade-items-${n.id}`,className:c.cn("transition-all duration-300 overflow-hidden",u?"max-h-[1000px] opacity-100":"max-h-0 opacity-0"),"aria-hidden":!u,children:u&&t.jsx("div",{className:"px-5 flex flex-col gap-6","data-testid":"upgrade-ticket-items",children:x?n.dates.map((h,y)=>t.jsx(ou,{exhibitionId:n.id,dateGroup:h,isLast:y===n.dates.length-1,onQuantityChange:s,getTicketQuantity:a,getTotalSelectedTickets:r,userMaxLimit:i,settings:o,labels:l},h.id)):t.jsx("div",{className:"px-5 py-10 text-center",children:t.jsx("p",{className:"m-0 text-zinc-500 italic",children:l.noUpgradeTicketsAvailable})})})})]})},du=({initialExpanded:e=!1,userMaxLimit:n,labels:s,settings:a,ticketSelectionData:r,className:i="",onSelectionChange:o})=>{const l=p.useMemo(()=>r??[],[r]),d={...tu,...s},[u,f]=p.useState(()=>Us(l,n,!0)),m=p.useRef(!1),x=p.useMemo(()=>{const N=Hn(l).map(({exhibition:C,dateGroup:v,ticket:k})=>[Hs(C.id,v.id,k.id),k]);return new Map(N)},[l]),h=au(l,u,n),y=(N,C,v)=>u[N]?.[C]?.[v]?.selectedQuantity??0,w=()=>gr(u),b=(N,C,v,k)=>{const L=y(N,C,v),A=w()-L;if(n!==void 0&&A+k>n)return;const M=x.get(Hs(N,C,v));if(!M)return;const E={...u,[N]:{...u[N],[C]:{...u[N]?.[C],[v]:{id:v,selectedQuantity:k,originalPrice:M.originalPrice,discountedPrice:M.price}}}};f(E),o?.(E)},j=N=>{const C=Us(l,n,N);f(C),o?.(C)};return p.useEffect(()=>{!m.current&&h&&(o?.(u),m.current=!0)},[h,u,o]),t.jsxs("div",{className:c.cn("flex flex-col w-full font-sans",i),"data-testid":"ticket-selection",children:[t.jsxs("div",{className:"flex items-center justify-between py-2 gap-4","data-testid":"ticket-selection-header",children:[t.jsx("h3",{className:"text-xl font-semibold m-0","data-testid":"ticket-selection-title",children:d.ticketSelectionTitle}),t.jsx(iu,{label:d.selectAllButtonLabel,checked:h,onChange:j})]}),l.map(N=>t.jsx(cu,{title:N.exhibitionName,exhibition:N,onQuantityChange:b,getTicketQuantity:y,getTotalSelectedTickets:w,userMaxLimit:n,settings:a,labels:d,initialExpanded:e},N.id))]})},Jt={confirm:"Confirm",clear:"Clear",noLabel:"Filters"},en=e=>{const n={};for(const s of e)s.type==="checkbox"?n[s.id]=[...s.selectedValues]:n[s.id]=s.selectedValue?[s.selectedValue]:[];return n},uu=(e,n)=>{const s={};for(const a of n){if(a.type==="checkbox"){s[a.id]=e[a.id]??[...a.selectedValues];continue}const r=e[a.id]??[];s[a.id]=r.length>0?r[0]:null}return s},fu=e=>e.type==="checkbox"?e.selectedValues.length>0:e.selectedValue!==null,br=({triggerLabel:e,triggerAriaLabel:n,triggerIcon:s="solar:tuning-square-outline",triggerVariant:a="bordered",triggerColor:r="default",triggerSize:i="sm",triggerClassName:o,popoverClassName:l,className:d,sections:u,onConfirm:f,onClear:m,appliedCount:x,countAriaLabel:h,countDisplay:y="badge",confirmLabel:w=Jt.confirm,clearLabel:b=Jt.clear,isOpen:j,defaultOpen:N=!1,onOpenChange:C,isDisabled:v=!1,closeOnConfirm:k=!0,keepOpenAfterClear:L=!1})=>{const[A,M]=p.useState(N),[E,I]=p.useState(()=>en(u)),$=j??A,D=x??u.filter(q=>fu(q)).length,T=q=>{q&&I(en(u)),j||M(q),C?.(q)},_=(q,Q)=>{I(K=>({...K,[q.id]:Q}))},Y=(q,Q)=>{I(K=>({...K,[q.id]:Q?[Q]:[]}))},B=async()=>{I(en(u.map(q=>q.type==="checkbox"?{...q,selectedValues:[]}:{...q,selectedValue:null}))),await m(),L||T(!1)},V=async()=>{const q=uu(E,u);await f(q),k&&T(!1)},Z=q=>{if(q.type==="checkbox")return t.jsx(c.CheckboxGroup,{label:q.label,value:E[q.id]??[],onValueChange:K=>_(q,K),children:q.options.map(K=>t.jsx(c.Checkbox,{value:K.value,isDisabled:K.isDisabled,children:K.label},K.value))},q.id);const Q=E[q.id]?.[0]??"";return t.jsx(c.RadioGroup,{label:q.label,value:Q,onValueChange:K=>Y(q,K||null),children:q.options.map(K=>t.jsx(c.Radio,{value:K.value,isDisabled:K.isDisabled,children:K.label},K.value))},q.id)},J=p.useMemo(()=>D>0?h?.(D)||`${D} filters applied`:void 0,[h,D]),re=p.useMemo(()=>D===0?e||Jt.noLabel:h?h(D):`${e} (${D})`,[D,e,h]);return t.jsx("div",{className:d,children:t.jsxs(c.Popover,{isOpen:$,onOpenChange:T,placement:"bottom-end",children:[t.jsx(c.PopoverTrigger,{children:t.jsxs(H,{isDisabled:v,variant:a,color:r,size:i,className:o,"aria-label":n,"aria-haspopup":"dialog","aria-expanded":$,children:[t.jsx(R,{icon:s,width:16}),t.jsx("span",{children:e}),y==="badge"&&D>0?t.jsx("span",{className:"ml-1 inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-gray-900 px-1.5 text-xs font-medium text-white","aria-label":J,children:D}):y==="summary"&&re!==e?t.jsx("span",{className:"text-xs",children:re}):null]})}),t.jsx(c.PopoverContent,{className:l,children:t.jsxs("div",{className:"flex w-full flex-col gap-5 px-4 py-4",children:[u.map(q=>Z(q)),t.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-gray-200 pt-3",children:[t.jsx(H,{variant:"light",color:"default",size:"sm",onPress:B,children:b}),t.jsx(H,{color:"primary",size:"sm",onPress:V,children:w})]})]})})]})})};br.displayName="FilterPopover";const mu="No sessions available for this date",hu=e=>e==="sold-out"||e==="closed"?"danger":"success",xu=e=>{const n=e.seatsRemaining;return e.status==="sold-out"||e.status==="closed"?"Sold out":e.status==="limited"?typeof n=="number"?`${n} left`:"Limited":typeof n=="number"?`${n} seats available`:"Available"},qs=e=>e.isDisabled?!0:e.status==="sold-out"||e.status==="closed",pu=(e,n)=>n&&e.some(s=>s.date===n)?n:e[0]?.date??null,yr=({heading:e,subheading:n,days:s,selectedDate:a,onDateSelect:r,quickDates:i,selectedSessionId:o=null,onSessionSelect:l,emptyStateMessage:d=mu,statusLabel:u,statusTone:f,sessionAriaLabel:m,dayButtonClassName:x,calendarSlot:h,dayGroupAriaLabel:y,sessionGridAriaLabel:w,className:b,headingClassName:j,subheadingClassName:N})=>{const C=pu(s,a),v=s.find(E=>E.date===C),k=i??s.map(E=>({date:E.date,label:E.label})),L=v?.sessions??[],A=E=>E===C?"solid":"bordered",M=E=>{if(!qs(E)){if(E.id===o){l(null);return}l(E.id)}};return t.jsxs("section",{className:c.cn("flex flex-col gap-4 rounded-xl bg-white p-3 sm:p-4",b),"data-testid":"session-timeline-root",children:[t.jsxs("header",{className:"flex flex-col gap-1",children:[t.jsx("h2",{className:c.cn("text-base font-semibold text-gray-900",j),children:e}),n?t.jsx("p",{className:c.cn("text-sm text-gray-700",N),children:n}):null]}),t.jsxs("div",{className:"flex flex-wrap items-center gap-2",role:"group","aria-label":y||"Session days",children:[k.map(E=>t.jsx(H,{size:"sm",variant:A(E.date),color:"default",className:c.cn("rounded-full",x),isDisabled:E.isDisabled,onPress:()=>{r(E.date)},children:t.jsx("span",{children:E.label})},E.date)),h?t.jsx("div",{children:h}):null]}),t.jsxs("ul",{className:"grid grid-cols-1 gap-2 sm:grid-cols-3","aria-label":w||"Sessions",children:[L.length===0?t.jsx("li",{className:"rounded-lg bg-white px-4 py-6 text-center text-sm text-gray-600 sm:col-span-3",children:d}):null,L.map(E=>{const I=qs(E),$=E.id===o;return t.jsx("li",{className:"rounded-xl",children:t.jsx(c.Card,{shadow:"sm",radius:"lg",isPressable:!I,onPress:()=>{M(E)},"aria-disabled":I,"aria-pressed":I?void 0:$,className:c.cn("w-full",I?"bg-gray-100 opacity-70":"",$?"w-full ring-2 ring-gray-900":""),"aria-label":m?m(E,{isSelected:$,isUnavailable:I}):I?`${E.startTime} ${E.endTime} sold out`:`${E.startTime} ${E.endTime} available`,children:t.jsxs(c.CardBody,{className:"flex flex-col items-center gap-3 p-4 text-center",children:[t.jsxs("span",{className:"text-sm font-semibold text-gray-900",children:[E.startTime," – ",E.endTime]}),t.jsx(c.Chip,{size:"sm",color:f?f(E):hu(E.status),variant:"flat",children:u?u(E):xu(E)})]})})},E.id)})]})]})};yr.displayName="SessionTimeline";const gu=(e,n)=>typeof e=="string"?t.jsx(R,{icon:e,className:"size-5","aria-hidden":"true"}):e||n||null,vr=({title:e,subtitle:n,eyebrow:s,icon:a,initials:r,actions:i,titleAs:o="h1",className:l,classNames:d={},"data-testid":u="page-header"})=>{const f=gu(a,r);return t.jsxs("header",{"data-testid":u,className:c.cn("flex flex-wrap items-start justify-between gap-4",l,d.base),children:[t.jsxs("div",{className:"flex items-center gap-4",children:[f?t.jsx("div",{"aria-hidden":"true","data-testid":`${u}-icon`,className:c.cn("flex size-12 shrink-0 items-center justify-center rounded-xl bg-gray-900 text-sm font-semibold text-white",d.iconWrapper),children:f}):null,t.jsxs("div",{children:[s?t.jsx("p",{"data-testid":`${u}-eyebrow`,className:c.cn("text-brand text-sm font-medium uppercase tracking-wide",d.eyebrow),children:s}):null,t.jsx(o,{"data-testid":`${u}-title`,className:c.cn("text-3xl font-semibold text-gray-950",d.title),children:e}),n?t.jsx("p",{"data-testid":`${u}-subtitle`,className:c.cn("mt-1 text-sm text-gray-600",d.subtitle),children:n}):null]})]}),i?t.jsx("div",{"data-testid":`${u}-actions`,className:c.cn("flex flex-wrap items-center gap-2",d.actions),children:i}):null]})};vr.displayName="PageHeader";const bu={active:"success",success:"success",draft:"warning",pending:"warning",warning:"warning",danger:"danger",archived:"default",inactive:"default",neutral:"default"},yu={active:{fg:"#057A54",bg:"#E6F4EF"},success:{fg:"#057A54",bg:"#E6F4EF"},draft:{fg:"#B7791F",bg:"#FBF0DD"},pending:{fg:"#B7791F",bg:"#FBF0DD"},warning:{fg:"#B7791F",bg:"#FBF0DD"},danger:{fg:"#B62214",bg:"#FBEAE8"},archived:{fg:"#9CA3AF",bg:"#F1F2F4"},inactive:{fg:"#9CA3AF",bg:"#F1F2F4"},neutral:{fg:"#9CA3AF",bg:"#F1F2F4"}},jr=({status:e,label:n,variant:s="flat",size:a="sm",color:r,startContent:i,className:o,"data-testid":l="status-chip"})=>{if(s==="dot"){const d=yu[e];return t.jsxs("span",{"data-testid":l,"data-status":e,className:c.cn("inline-flex items-center gap-1.5 whitespace-nowrap rounded-full px-2.5 py-[3px] text-[12px] font-semibold leading-[1.4]",o),style:{color:d.fg,backgroundColor:d.bg},children:[t.jsx("span",{"aria-hidden":"true",className:"size-1.5 shrink-0 rounded-full",style:{backgroundColor:"currentColor"}}),n]})}return t.jsx(c.Chip,{color:r??bu[e],variant:s,size:a,startContent:i,"data-testid":l,"data-status":e,className:c.cn("font-medium",o),children:n})};jr.displayName="StatusChip";const vu={sm:"gap-1 rounded-md px-2 py-0.5 text-[11.5px] leading-normal",md:"gap-1.5 rounded-lg px-2.5 py-1 text-xs leading-normal"},qn=({label:e,value:n,size:s="sm",className:a,"data-testid":r="key-value-chip"})=>t.jsxs("span",{"data-testid":r,className:c.cn("inline-flex items-baseline whitespace-nowrap border border-default-200 bg-default-100",vu[s],a),children:[t.jsx("span",{className:"font-medium text-default-400",children:e}),t.jsx("span",{className:"font-semibold text-default-700",children:n})]});qn.displayName="KeyValueChip";const wr=({columns:e,rows:n=6,label:s="Loading",barHeight:a=12,alignLastRight:r=!1,className:i,classNames:o={},"data-testid":l="table-skeleton"})=>t.jsxs("div",{role:"status","aria-busy":"true","data-testid":l,className:c.cn("w-full",i,o.base),children:[t.jsx("span",{className:"sr-only",children:s}),t.jsx("div",{"aria-hidden":"true",children:Array.from({length:n}).map((d,u)=>t.jsx("div",{"data-testid":`${l}-row`,className:c.cn("flex items-center gap-3 border-t border-default-100 px-5 py-4",o.row),children:e.map((f,m)=>{const x=m===e.length-1;return t.jsx("div",{className:c.cn(f==="fill"?"flex-1":"shrink-0",r&&x&&"flex justify-end"),style:f==="fill"?void 0:{width:f},children:t.jsx("div",{className:c.cn("animate-pulse rounded bg-default-200",o.bar),style:{height:a,width:f==="fill"?"60%":f}})},m)})},u))})]});wr.displayName="TableSkeleton";const Nr="text-left text-[11px] font-semibold uppercase tracking-[.04em] text-acct-sub px-4 pt-4 pb-3 whitespace-nowrap bg-transparent",Cr="px-4 text-[13.5px] text-acct-ink2 align-middle",kr="border-t border-acct-hair transition-colors duration-150 hover:bg-acct-page data-[hover=true]:bg-acct-page",Sr="w-full",Ar="border-t border-acct-border px-5 py-3.5",$r=({columns:e,children:n,emptyContent:s,footer:a,ariaLabel:r,className:i,classNames:o={},"data-testid":l="admin-table"})=>t.jsxs("div",{className:c.cn(i,o.base),"data-testid":l,children:[t.jsxs(c.Table,{"aria-label":r,removeWrapper:!0,classNames:{table:c.cn(Sr,o.table),th:c.cn(Nr,o.th),tr:c.cn(kr,o.tr),td:c.cn(Cr,o.td)},children:[t.jsx(c.TableHeader,{columns:e,children:d=>t.jsx(c.TableColumn,{align:d.align==="right"?"end":"start",width:d.width,children:d.label},d.key)}),t.jsx(c.TableBody,{emptyContent:s,children:n})]}),a?t.jsx("div",{"data-testid":`${l}-footer`,className:c.cn(Ar,o.footer),children:a}):null]});$r.displayName="AdminTable";const ju={md:"w-[280px]",lg:"w-[360px]"},Dr=({searchValue:e,onSearchChange:n,searchLabel:s,searchPlaceholder:a,searchIcon:r,children:i,trailing:o,searchWidth:l="md",className:d,"data-testid":u="admin-toolbar"})=>t.jsxs("div",{role:"search","data-testid":u,className:c.cn("flex flex-wrap items-center gap-3 mb-4",d),children:[t.jsx(c.Input,{type:"search","aria-label":s,placeholder:a??s,value:e,onValueChange:n,startContent:r?t.jsx("span",{"aria-hidden":"true",className:"flex text-acct-muted",children:r}):void 0,"data-testid":`${u}-search`,variant:"bordered",radius:"none",classNames:{base:ju[l],inputWrapper:["h-10 min-h-10 !h-10 rounded-[11px] border border-acct-border bg-acct-surface px-3","data-[hover=true]:border-acct-rust-border","group-data-[focus=true]:border-acct-rust"].join(" "),input:"text-[13.5px] text-acct-ink"}}),i,o?t.jsx("div",{className:"ml-auto",children:o}):null]});Dr.displayName="AdminToolbar";const wu="ml-0.5 inline-flex min-w-[18px] items-center justify-center rounded-full bg-primary px-1.5 text-xs font-semibold text-primary-foreground",Nu="h-9 gap-1.5 rounded-full border border-gray-200 bg-white px-3.5 text-sm font-medium text-gray-700 hover:bg-gray-50 data-[pressed=true]:bg-gray-50",Er=p.forwardRef(function({icon:n,children:s,count:a,className:r,testId:i,...o},l){return t.jsxs(H,{ref:l,"data-testid":i,variant:"light",size:"sm",className:c.cn(Nu,r),...o,children:[t.jsx(R,{icon:n,className:"size-4 text-gray-500","aria-hidden":!0}),t.jsx("span",{children:s}),a!==void 0&&a>0&&t.jsx("span",{className:wu,children:a})]})});Er.displayName="ToolbarButton";function Fr({items:e,value:n,onChange:s,ariaLabel:a,className:r,"data-testid":i="underline-tabs"}){return t.jsx(c.Tabs,{"aria-label":a,variant:"underlined",selectedKey:n,onSelectionChange:o=>s(String(o)),"data-testid":i,classNames:{base:c.cn("w-full mb-6",r),tabList:"gap-7 w-full relative rounded-none p-0 border-b border-acct-border",cursor:"w-full bg-acct-rust",tab:"max-w-fit px-0.5 h-auto pb-3",tabContent:"text-[15px] font-medium text-acct-sub group-data-[selected=true]:font-semibold group-data-[selected=true]:text-acct-rust",panel:"p-0"},children:e.map(o=>t.jsx(c.Tab,{title:o.label,"data-testid":`${i}-${o.key}`,children:o.content},o.key))})}Fr.displayName="UnderlineTabs";const Wn="text-[11px] font-semibold uppercase tracking-[.04em] text-acct-muted mb-1.5",Yn="font-normal normal-case tracking-normal",Mr=["h-[38px] min-h-[38px] !h-[38px] rounded-[11px] border border-acct-border bg-acct-surface px-3","data-[hover=true]:border-acct-rust-border","group-data-[focus=true]:border-acct-rust"].join(" "),Lr="text-[13.5px] text-acct-ink",Tr="bg-acct-page text-acct-muted cursor-default",Ir="mt-[5px] text-xs text-acct-sub",_r="mt-[5px] text-xs text-acct-danger",Pr=({children:e,suffix:n,className:s,"data-testid":a="admin-field-label"})=>t.jsxs("div",{"data-testid":a,className:c.cn(Wn,s),children:[e,n?t.jsxs("span",{className:Yn,children:[" ",n]}):null]});Pr.displayName="AdminFieldLabel";const Or=({label:e,labelSuffix:n,value:s,onChange:a,placeholder:r,disabled:i=!1,readOnly:o=!1,mono:l=!1,autoFocus:d=!1,hint:u,invalid:f=!1,className:m,"data-testid":x="admin-text-field"})=>t.jsx(c.Input,{labelPlacement:e?"outside":void 0,label:e&&n?t.jsxs(t.Fragment,{children:[e,t.jsxs("span",{className:Yn,children:[" ",n]})]}):e,value:s,placeholder:r,isDisabled:i,isReadOnly:o,autoFocus:d,isInvalid:f,description:!f&&u?u:void 0,errorMessage:f?u:void 0,onValueChange:a,"data-testid":x,variant:"bordered",radius:"none",classNames:{base:c.cn("w-full",m),label:Wn,inputWrapper:Mr,input:c.cn(Lr,(l||o)&&"font-mono",o&&Tr),description:Ir,errorMessage:_r}});Or.displayName="AdminTextField";const Cu={sm:"size-6 min-w-6",md:"size-[30px] min-w-[30px]"},Rr=({actions:e,size:n="md",className:s,"data-testid":a="row-actions"})=>t.jsx("div",{role:"presentation","data-testid":a,className:c.cn("inline-flex gap-0.5",s),onClick:r=>r.stopPropagation(),children:e.map(r=>t.jsx(H,{isIconOnly:!0,variant:"light",radius:"sm",size:"sm",onPress:r.onPress,isDisabled:r.disabled,"aria-label":r.label,title:r.label,"data-testid":`${a}-${r.key}`,className:c.cn("text-acct-sub data-[hover=true]:bg-acct-hair",Cu[n]),children:r.icon},r.key))});Rr.displayName="RowActions";const zr=({children:e,placeholder:n="Select…",onOpen:s,onClear:a,ariaLabel:r,icon:i,trailingIcon:o,clearIcon:l,disabled:d=!1,className:u,"data-testid":f="picker-row"})=>{const m=e!=null;return t.jsxs("div",{"data-testid":f,className:c.cn("flex w-full min-h-10 items-center rounded-[10px] border border-acct-border bg-acct-surface px-[11px] transition-colors duration-150",d?"opacity-60":"hover:border-acct-rust-border",u),children:[t.jsxs(H,{variant:"light",radius:"none",disableAnimation:!0,onPress:s,isDisabled:d,"aria-haspopup":"dialog","aria-label":r,"data-testid":`${f}-trigger`,className:"flex h-auto min-h-0 min-w-0 flex-1 items-center justify-start gap-2.5 bg-transparent px-0 py-2 text-left text-inherit data-[hover=true]:bg-transparent",children:[i?t.jsx("span",{className:"flex shrink-0 text-acct-muted",children:i}):null,m?t.jsx("span",{className:"flex min-w-0 items-center gap-2",children:e}):t.jsx("span",{className:"text-[13.5px] font-semibold text-acct-sub",children:n}),o?t.jsx("span",{className:"ml-auto flex shrink-0 text-acct-muted",children:o}):null]}),m&&a?t.jsx(H,{isIconOnly:!0,variant:"light",radius:"sm",size:"sm",onPress:a,isDisabled:d,"aria-label":`Clear ${r}`,title:"Clear","data-testid":`${f}-clear`,className:"ml-1.5 size-6 min-w-6 shrink-0 text-acct-muted data-[hover=true]:bg-acct-hair",children:l}):null]})};zr.displayName="PickerRow";function Br(e,n,s){if(s<=0||n<=0||e<=0)return{from:0,to:0};const a=(e-1)*n+1;return a>s?{from:0,to:0}:{from:a,to:Math.min(s,e*n)}}const Vr=({page:e,pageSize:n,total:s,unit:a,announce:r=!0,className:i,classNames:o={},"data-testid":l="pagination-summary"})=>{const{from:d,to:u}=Br(e,n,s),f=c.cn("font-semibold text-default-700",o.emphasis);return t.jsxs("p",{"data-testid":l,"aria-live":r?"polite":void 0,className:c.cn("text-sm text-default-500",i,o.base),children:["Showing"," ",t.jsx("span",{"data-testid":`${l}-range`,className:f,children:d===0?0:`${d}–${u}`})," ","of"," ",t.jsx("span",{"data-testid":`${l}-total`,className:f,children:s}),a?t.jsxs(t.Fragment,{children:[" ",a]}):null]})};Vr.displayName="PaginationSummary";const Ur=({isLoading:e=!1,isError:n=!1,isEmpty:s=!1,loadingTitle:a="Loading…",loadingContent:r,errorTitle:i="Something went wrong",errorDescription:o,retryLabel:l="Retry",onRetry:d,errorActions:u,errorContent:f,emptyTitle:m="Nothing here yet",emptyDescription:x,emptyIcon:h,emptyActions:y,emptyContent:w,children:b,className:j,classNames:N={},"data-testid":C="list-panel"})=>{const v={base:c.cn("border-0 bg-transparent py-12",N.state)};let k;return e?k=r??t.jsx(Un,{title:a,classNames:v,"data-testid":`${C}-loading`}):n?k=f??t.jsx(Vn,{title:i,description:o,classNames:v,"data-testid":`${C}-error`,actions:u??(d?t.jsx(H,{color:"primary",variant:"flat",onPress:d,children:l}):void 0)}):s?k=w??t.jsx(Bn,{title:m,description:x,icon:h,actions:y,classNames:v,"data-testid":`${C}-empty`}):k=b,t.jsx("section",{"data-testid":C,className:c.cn("rounded-xl bg-white p-2 shadow-sm",j,N.base),children:k})};Ur.displayName="ListPanel";const ku=350,Su={receivedLabel:"Cash Received",receivedPlaceholder:"$0.00",changeLabel:"Change",changeMessageTemplate:"You have to give back the client {change} in change",insufficientMessageTemplate:"Amount received must be at least {due}"},tn=(e,n)=>Object.entries(n).reduce((s,[a,r])=>s.replace(`{${a}}`,r),e),Au=({dueAmount:e,received:n,defaultReceived:s=null,onChange:a,locale:r="en-US",labels:i,isDisabled:o=!1,maxAmount:l,autoFocus:d=!1,className:u,"data-testid":f="cash-tender-form"})=>{const m={...Su,...i},x=Lt(e.currency,r),h=n!==void 0,[y,w]=p.useState(s??null),b=h?n:y,j=p.useMemo(()=>{const T=typeof b=="number"&&Number.isFinite(b)?b:0,_=fn(T,e.value,e.currency,r);return{received:T,change:_>0?_:0,isValid:T>=e.value&&T>0}},[b,e.value,e.currency,r]),N=p.useCallback(T=>{const _=T.currentTarget;requestAnimationFrame(()=>{_.isConnected&&_.select()})},[]),C=p.useCallback(T=>{if(o)return;const _=T.replace(/[^\d.,]/g,"").replace(",","."),Y=_===""?null:Number.parseFloat(_),B=Y===null||Number.isNaN(Y)?null:Y;if(B!==null&&l!==void 0&&B>l)return;h||w(B);const V=typeof B=="number"&&Number.isFinite(B)?B:0,Z=fn(V,e.value,e.currency,r);a?.({received:V,change:Z>0?Z:0,isValid:V>=e.value&&V>0})},[h,o,e.value,e.currency,r,a,l]),v=b==null?"":String(b),k=j.isValid&&j.change>0,L=!j.isValid&&j.received>0,A=pe(j.change,r,e.currency),M=pe(e.value,r,e.currency),[E,I]=p.useState(""),$=p.useRef(null);p.useEffect(()=>{$.current&&clearTimeout($.current);const T=k?tn(m.changeMessageTemplate,{change:A}):"",_=k?ku:0;return $.current=setTimeout(()=>I(T),_),()=>{$.current&&clearTimeout($.current)}},[k,A,m.changeMessageTemplate]);const D=`${f}-received`;return t.jsxs("div",{className:c.cn("flex flex-col gap-3",u),"data-testid":f,children:[t.jsx(c.Input,{id:D,label:m.receivedLabel,labelPlacement:"outside",type:"text",inputMode:x===0?"numeric":"decimal",pattern:x===0?"[0-9]*":"[0-9]*[.,]?[0-9]*",value:v,onChange:T=>C(T.target.value),onFocus:N,placeholder:m.receivedPlaceholder,isDisabled:o,isInvalid:L,errorMessage:L?tn(m.insufficientMessageTemplate,{due:M}):void 0,variant:"bordered",radius:"lg",autoFocus:d,"data-testid":`${f}-received-input`}),k&&t.jsx(c.Alert,{"data-testid":`${f}-change-alert`,color:"primary",variant:"flat",radius:"lg",title:m.changeLabel,description:tn(m.changeMessageTemplate,{change:A}),icon:t.jsx(R,{icon:"lucide:info",width:20,height:20,"aria-hidden":"true"}),"aria-live":"off",classNames:{base:"bg-info-50 text-info-700",title:"font-semibold",description:"text-sm leading-relaxed",iconWrapper:"bg-transparent shadow-none border-0"}}),t.jsx("span",{role:"status","aria-live":"polite",className:"sr-only",children:E})]})},$u={checkNumberLabel:"Check Number",checkNumberPlaceholder:"e.g. 11234",bankNameLabel:"Bank Name",bankNamePlaceholder:"e.g. Chase Bank",dateLabel:"Date",checkNumberRequiredMessage:"Check number is required"},Ws=()=>{const e=new Date,n=s=>String(s).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}`},Hr=({dueAmount:e,value:n,defaultValue:s,onChange:a,labels:r,hideDate:i=!1,hideBankName:o=!1,isDisabled:l=!1,checkNumberMaxLength:d=34,bankNameMaxLength:u=100,autoFocus:f=!1,className:m,"data-testid":x="check-tender-form"})=>{const h={...$u,...r},y=n!==void 0,[w,b]=p.useState({checkNumber:s?.checkNumber??"",bankName:s?.bankName??"",date:s?.date??Ws()}),[j,N]=p.useState(!!s?.checkNumber),C=p.useMemo(()=>y?{checkNumber:n?.checkNumber??"",bankName:n?.bankName??"",date:n?.date??Ws()}:w,[y,n,w]),v=p.useCallback($=>{y||b($);const D=$.checkNumber.trim(),T={amount:e.value,checkNumber:D,bankName:$.bankName.trim()||void 0,date:i?void 0:$.date,isValid:D.length>0&&e.value>0};a?.(T)},[y,e.value,i,a]),k=p.useCallback($=>D=>{l||($==="checkNumber"&&D.length>0&&N(!0),v({...C,[$]:D}))},[C,v,l]),L=p.useCallback(()=>{l||N(!0)},[l]),A=j&&C.checkNumber.trim()==="",M=`${x}-check-number`,E=`${x}-bank-name`,I=`${x}-date`;return t.jsxs("div",{className:c.cn("grid grid-cols-1 sm:grid-cols-2 gap-4",m),"data-testid":x,children:[t.jsx(c.Input,{id:M,label:h.checkNumberLabel,labelPlacement:"outside",type:"text",value:C.checkNumber,onChange:$=>k("checkNumber")($.target.value),onBlur:L,placeholder:h.checkNumberPlaceholder,maxLength:d,isRequired:!0,isInvalid:A,errorMessage:A?h.checkNumberRequiredMessage:void 0,isDisabled:l,variant:"bordered",radius:"lg",autoFocus:f,"data-testid":`${x}-check-number-input`}),!o&&t.jsx(c.Input,{id:E,label:h.bankNameLabel,labelPlacement:"outside",type:"text",value:C.bankName,onChange:$=>k("bankName")($.target.value),placeholder:h.bankNamePlaceholder,maxLength:u,isDisabled:l,variant:"bordered",radius:"lg","data-testid":`${x}-bank-name-input`}),!i&&t.jsx(c.Input,{id:I,label:h.dateLabel,labelPlacement:"outside",type:"date",value:C.date,onChange:$=>k("date")($.target.value),isDisabled:l,variant:"bordered",radius:"lg","data-testid":`${x}-date-input`,className:"sm:col-span-2"})]})};Hr.displayName="CheckTenderForm";const Du={methodLabel:"Method",methodPlaceholder:"Select a payment method",referenceLabel:"Reference",referencePlaceholder:"e.g. Voucher #1234",methodRequiredMessage:"Method is required"},Eu=[{value:"ach",label:"ACH"},{value:"wire",label:"Wire"},{value:"gift_card",label:"Gift Card"},{value:"voucher",label:"Voucher"},{value:"other",label:"Other"}],qr=({dueAmount:e,methodOptions:n=Eu,value:s,defaultValue:a,onChange:r,labels:i,showReference:o=!1,isDisabled:l=!1,className:d,"data-testid":u="other-tender-form"})=>{const f={...Du,...i},m=s!==void 0,[x,h]=p.useState({method:a?.method??"",reference:a?.reference??""}),y=p.useMemo(()=>m?{method:s?.method??"",reference:s?.reference??""}:x,[m,s,x]),w=p.useCallback(k=>n.find(L=>L.value===k)?.label??"",[n]),b=p.useCallback(k=>{m||h(k);const L=w(k.method),A={amount:e.value,method:k.method,description:L,reference:k.reference.trim()||void 0,isValid:k.method!==""};r?.(A)},[m,e.value,r,w]),j=p.useCallback(k=>{if(l)return;const L=typeof k=="string"?k:Array.from(k)[0]?.toString()??"";b({...y,method:L})},[y,b,l]),N=p.useCallback(k=>{l||b({...y,reference:k})},[y,b,l]),C=`${u}-method`,v=`${u}-reference`;return t.jsxs("div",{className:c.cn("flex flex-col gap-3",d),"data-testid":u,children:[t.jsx(Le,{id:C,label:f.methodLabel,labelPlacement:"outside",placeholder:f.methodPlaceholder,selectedKeys:y.method?[y.method]:[],onSelectionChange:j,isDisabled:l,isRequired:!0,variant:"bordered",radius:"lg","data-testid":`${u}-method-select`,popoverProps:{placement:"bottom-start",classNames:{content:"bg-white border border-default-200 shadow-lg rounded-xl p-1"}},listboxProps:{classNames:{list:"max-h-[var(--popover-available-height,40vh)] overflow-y-auto"},itemClasses:{base:["rounded-lg","px-3 py-2","text-default-800","data-[hover=true]:bg-default-100","data-[selectable=true]:focus:bg-default-100","data-[selected=true]:bg-primary-50","data-[selected=true]:text-primary","data-[selected=true]:font-medium"]}},children:n.map(k=>t.jsx(c.SelectItem,{"data-testid":`${u}-method-option-${k.value}`,children:k.label},k.value))}),o&&t.jsx(c.Input,{id:v,label:f.referenceLabel,labelPlacement:"outside",type:"text",value:y.reference,onChange:k=>N(k.target.value),placeholder:f.referencePlaceholder,isDisabled:l,variant:"bordered",radius:"lg","data-testid":`${u}-reference-input`})]})};qr.displayName="OtherTenderForm";const Fu={collectedHeading:"Collected",remainingLabel:"Remaining:",completeLabel:"Complete",removeAriaLabel:"Remove this tender",removeTooltipForRecorded:"Already recorded",statusPending:"Pending",statusRecorded:"Approved",statusFailed:"Failed"},Mu={card:"lucide:credit-card",cash:"lucide:dollar-sign",check:"lucide:edit-3",other:"lucide:more-horizontal"},Lu={pending:"warning",recorded:"success",failed:"danger"},Tu=e=>e==="pending"||e==="recorded",Iu=e=>`#${e+1}`,Wr=({total:e,tenders:n,onRemove:s,locale:a="en-US",labels:r,hideCollectedList:i=!1,className:o,"data-testid":l="split-payment-summary"})=>{const d={...Fu,...r},{collected:u,remaining:f,isComplete:m}=p.useMemo(()=>{const h=n.reduce((w,b)=>Tu(b.status)?w+b.amount:w,0),y=Math.max(e.value-h,0);return{collected:h,remaining:y,isComplete:h>=e.value&&e.value>0}},[n,e.value]),x=h=>h==="pending"?d.statusPending:h==="recorded"?d.statusRecorded:d.statusFailed;return t.jsxs("div",{className:c.cn("flex flex-col gap-4",o),"data-testid":l,children:[t.jsxs("div",{className:"rounded-2xl bg-default-100 px-6 py-5 text-center","data-testid":`${l}-remaining-banner`,children:[t.jsx("div",{className:"text-sm text-default-600",children:m?d.completeLabel:d.remainingLabel}),t.jsx("div",{className:"mt-1 text-4xl font-bold tracking-tight","data-testid":`${l}-remaining-amount`,children:pe(m?u:f,a,e.currency)})]}),!i&&n.length>0&&t.jsxs("div",{className:"flex flex-col gap-2","data-testid":`${l}-collected-list`,children:[t.jsx("h3",{className:"text-base font-semibold",children:d.collectedHeading}),n.map((h,y)=>t.jsx(_u,{index:y,tender:h,locale:a,currency:e.currency,removable:!!s&&h.status!=="recorded",onRemove:s?()=>s(h.id):void 0,statusLabel:x(h.status),removeAriaLabel:d.removeAriaLabel,recordedTooltip:d.removeTooltipForRecorded,dataTestId:`${l}-row-${y}`},h.id))]})]})};Wr.displayName="SplitPaymentSummary";const _u=({index:e,tender:n,locale:s,currency:a,removable:r,onRemove:i,statusLabel:o,removeAriaLabel:l,recordedTooltip:d,dataTestId:u})=>{const f=i?t.jsx(H,{isIconOnly:!0,variant:"light",radius:"full",size:"sm",onPress:i,isDisabled:!r,"aria-label":l,"data-testid":`${u}-remove`,className:c.cn(r?"text-default-700 hover:bg-default-200":"text-default-300"),children:t.jsx(R,{icon:"lucide:x",width:18,height:18,"aria-hidden":"true"})}):null;return t.jsxs("div",{className:"flex items-center gap-3 rounded-xl bg-default-50 px-4 py-3 motion-safe:animate-[pp-row-in_200ms_ease-out]","data-testid":u,children:[t.jsx("span",{className:"text-sm font-medium text-default-500 w-6 shrink-0",children:Iu(e)}),t.jsx(R,{icon:Mu[n.type],width:20,height:20,className:"text-default-700 shrink-0","aria-hidden":"true"}),t.jsx("span",{className:"flex-1 truncate","data-testid":`${u}-label`,children:n.label}),t.jsx("span",{className:"font-semibold tabular-nums","data-testid":`${u}-amount`,children:pe(n.amount,s,a)}),t.jsx(c.Chip,{size:"sm",radius:"full",variant:"flat",color:Lu[n.status],startContent:n.status==="recorded"?t.jsx(R,{icon:"lucide:check-circle",width:14,height:14,"aria-hidden":"true"}):n.status==="failed"?t.jsx(R,{icon:"lucide:alert-circle",width:14,height:14,"aria-hidden":"true"}):void 0,"data-testid":`${u}-status`,children:o}),f&&(r?f:t.jsx(c.Tooltip,{content:d,placement:"left",children:t.jsx("span",{tabIndex:0,"aria-label":d,children:f})}))]})},Pu=`
|
|
17
17
|
@keyframes pp-modal-in {
|
|
18
18
|
from { opacity: 0; transform: scale(0.96); }
|
|
19
19
|
to { opacity: 1; transform: scale(1); }
|
package/dist/index.js
CHANGED
|
@@ -7111,8 +7111,8 @@ const Ld = {
|
|
|
7111
7111
|
}, Md = {
|
|
7112
7112
|
inputWrapper: "h-9 rounded-xl border border-zinc-200 bg-white shadow-none hover:border-zinc-300 data-[hover=true]:border-zinc-300 group-data-[focus=true]:border-zinc-400 group-data-[focus-visible=true]:ring-0"
|
|
7113
7113
|
}, _d = {
|
|
7114
|
-
wrapper: "!absolute !inset-0 !z-50 !items-center !justify-center !p-4",
|
|
7115
|
-
backdrop: "!absolute !inset-0 !z-40 rounded-2xl"
|
|
7114
|
+
wrapper: "!absolute !inset-0 !z-50 !h-auto !w-auto !items-center !justify-center !p-4",
|
|
7115
|
+
backdrop: "!absolute !inset-0 !z-40 !h-auto !w-auto rounded-2xl"
|
|
7116
7116
|
};
|
|
7117
7117
|
function Td() {
|
|
7118
7118
|
return /* @__PURE__ */ u(
|
|
@@ -7241,7 +7241,7 @@ function Wh({
|
|
|
7241
7241
|
{
|
|
7242
7242
|
ref: k,
|
|
7243
7243
|
className: p(
|
|
7244
|
-
"vvt-pa relative font-sans text-zinc-900",
|
|
7244
|
+
"vvt-pa relative min-w-0 w-full font-sans text-zinc-900 [container-type:inline-size]",
|
|
7245
7245
|
c && !f && "min-h-[560px]",
|
|
7246
7246
|
r?.root
|
|
7247
7247
|
),
|
|
@@ -7296,7 +7296,7 @@ function Wh({
|
|
|
7296
7296
|
size: "lg",
|
|
7297
7297
|
color: "default",
|
|
7298
7298
|
radius: "full",
|
|
7299
|
-
className: "h-11 bg-zinc-950 px-4 text-lg font-normal text-white disabled:opacity-50",
|
|
7299
|
+
className: "h-11 bg-zinc-950 px-4 text-lg font-normal text-white disabled:opacity-50 [@container(max-width:479px)]:w-full",
|
|
7300
7300
|
startContent: /* @__PURE__ */ a(Jn, { className: "size-5", strokeWidth: 2 }),
|
|
7301
7301
|
isDisabled: P,
|
|
7302
7302
|
onPress: () => A ? q() : h(),
|
|
@@ -7311,7 +7311,7 @@ function Wh({
|
|
|
7311
7311
|
size: "md",
|
|
7312
7312
|
color: "primary",
|
|
7313
7313
|
radius: "full",
|
|
7314
|
-
className: "ml-auto h-10 min-w-40
|
|
7314
|
+
className: "ml-auto h-10 min-w-40 px-4 text-sm font-medium [@container(max-width:479px)]:w-full",
|
|
7315
7315
|
startContent: i ? void 0 : /* @__PURE__ */ a(z, { icon: "solar:cloud-upload-outline", className: "size-4" }),
|
|
7316
7316
|
isLoading: i,
|
|
7317
7317
|
isDisabled: !T || i,
|
|
@@ -7377,17 +7377,18 @@ function Od({
|
|
|
7377
7377
|
e.map((c, d) => /* @__PURE__ */ u(
|
|
7378
7378
|
"div",
|
|
7379
7379
|
{
|
|
7380
|
-
|
|
7380
|
+
"data-testid": "installment-fund-assignment-row",
|
|
7381
|
+
className: "flex min-h-15 w-full flex-wrap items-center gap-3 rounded-2xl border border-zinc-200 bg-white px-3 py-2",
|
|
7381
7382
|
children: [
|
|
7382
7383
|
/* @__PURE__ */ a(
|
|
7383
7384
|
"div",
|
|
7384
7385
|
{
|
|
7385
7386
|
className: p(
|
|
7386
|
-
"flex min-h-11 min-w-0
|
|
7387
|
-
"gap-4"
|
|
7387
|
+
"flex min-h-11 min-w-0 basis-full items-center gap-2",
|
|
7388
|
+
"[@container(min-width:560px)]:basis-0 [@container(min-width:560px)]:flex-1 [@container(min-width:560px)]:gap-4"
|
|
7388
7389
|
),
|
|
7389
7390
|
children: c.fund ? /* @__PURE__ */ u(xe, { children: [
|
|
7390
|
-
/* @__PURE__ */ u("span", { className: "rounded-
|
|
7391
|
+
/* @__PURE__ */ u("span", { className: "min-w-0 break-words rounded-2xl bg-zinc-100 px-4 py-1.5 text-sm text-zinc-950", children: [
|
|
7391
7392
|
c.fund.glCode,
|
|
7392
7393
|
" - ",
|
|
7393
7394
|
c.fund.accountName
|
|
@@ -7397,8 +7398,9 @@ function Od({
|
|
|
7397
7398
|
{
|
|
7398
7399
|
type: "button",
|
|
7399
7400
|
variant: "light",
|
|
7401
|
+
color: "primary",
|
|
7400
7402
|
radius: "full",
|
|
7401
|
-
className: "px-2 text-sm font-normal
|
|
7403
|
+
className: "flex-none px-2 text-sm font-normal",
|
|
7402
7404
|
onPress: () => s(c.id),
|
|
7403
7405
|
children: "Replace"
|
|
7404
7406
|
}
|
|
@@ -7410,7 +7412,7 @@ function Od({
|
|
|
7410
7412
|
size: "lg",
|
|
7411
7413
|
variant: "light",
|
|
7412
7414
|
radius: "full",
|
|
7413
|
-
className: "justify-start px-4 text-lg font-normal text-zinc-900",
|
|
7415
|
+
className: "max-w-full justify-start px-4 text-lg font-normal text-zinc-900",
|
|
7414
7416
|
startContent: /* @__PURE__ */ a(Jn, { className: "size-5", strokeWidth: 2 }),
|
|
7415
7417
|
onPress: () => s(c.id),
|
|
7416
7418
|
children: t.assignSpecificFund
|
|
@@ -7418,7 +7420,7 @@ function Od({
|
|
|
7418
7420
|
)
|
|
7419
7421
|
}
|
|
7420
7422
|
),
|
|
7421
|
-
/* @__PURE__ */ a("label", { className: "flex w-
|
|
7423
|
+
/* @__PURE__ */ a("label", { className: "flex min-w-0 flex-1 items-center [@container(min-width:560px)]:w-48 [@container(min-width:560px)]:flex-none", children: /* @__PURE__ */ a(
|
|
7422
7424
|
we,
|
|
7423
7425
|
{
|
|
7424
7426
|
variant: "bordered",
|
|
@@ -7515,14 +7517,14 @@ function Rd({
|
|
|
7515
7517
|
shouldBlockScroll: !1,
|
|
7516
7518
|
portalContainer: r,
|
|
7517
7519
|
classNames: {
|
|
7518
|
-
wrapper: "!absolute !inset-0 !z-50 !items-center !justify-center !p-4",
|
|
7519
|
-
backdrop: "!absolute !inset-0 !z-40 rounded-2xl",
|
|
7520
|
-
base: "max-h-[calc(100%-2rem)] max-w-3xl rounded-3xl",
|
|
7520
|
+
wrapper: "!absolute !inset-0 !z-50 !h-auto !w-auto !items-center !justify-center !p-4",
|
|
7521
|
+
backdrop: "!absolute !inset-0 !z-40 !h-auto !w-auto rounded-2xl",
|
|
7522
|
+
base: "max-h-[calc(100%-2rem)] w-full max-w-3xl rounded-3xl",
|
|
7521
7523
|
closeButton: "right-6 top-6 text-zinc-500"
|
|
7522
7524
|
},
|
|
7523
7525
|
onOpenChange: (d) => !d && s(),
|
|
7524
7526
|
children: /* @__PURE__ */ u(Yn, { className: "max-h-full", children: [
|
|
7525
|
-
/* @__PURE__ */ a(Gn, { className: "px-6 pt-6 text-xl font-semibold leading-7 text-zinc-950", children: t.modalTitle }),
|
|
7527
|
+
/* @__PURE__ */ a(Gn, { className: "px-6 pr-12 pt-6 text-xl font-semibold leading-7 text-zinc-950", children: t.modalTitle }),
|
|
7526
7528
|
/* @__PURE__ */ u(Kn, { className: "flex min-h-0 flex-1 flex-col px-6 pb-6", children: [
|
|
7527
7529
|
/* @__PURE__ */ a(
|
|
7528
7530
|
we,
|
|
@@ -7539,8 +7541,8 @@ function Rd({
|
|
|
7539
7541
|
}
|
|
7540
7542
|
}
|
|
7541
7543
|
),
|
|
7542
|
-
/* @__PURE__ */ u("div", { className: "mt-4 min-h-0 flex-1 overflow-auto", children: [
|
|
7543
|
-
/* @__PURE__ */ u("div", { className: "
|
|
7544
|
+
/* @__PURE__ */ u("div", { className: "mt-4 min-h-0 flex-1 overflow-auto [container-type:inline-size]", children: [
|
|
7545
|
+
/* @__PURE__ */ u("div", { className: "hidden grid-cols-[1fr_1.3fr_0.6fr] gap-5 border-b border-zinc-200 px-3 pb-3 text-sm font-medium leading-5 text-zinc-900 [@container(min-width:520px)]:grid", children: [
|
|
7544
7546
|
/* @__PURE__ */ a("span", { children: t.glCode }),
|
|
7545
7547
|
/* @__PURE__ */ a("span", { children: t.accountName }),
|
|
7546
7548
|
/* @__PURE__ */ a("span", { children: t.actions })
|
|
@@ -7549,10 +7551,11 @@ function Rd({
|
|
|
7549
7551
|
c.map((d) => /* @__PURE__ */ u(
|
|
7550
7552
|
"div",
|
|
7551
7553
|
{
|
|
7552
|
-
|
|
7554
|
+
"data-testid": "installment-fund-picker-row",
|
|
7555
|
+
className: "grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 border-b border-zinc-100 px-3 py-2.5 text-sm leading-5 text-zinc-900 last:border-b-0 [@container(min-width:520px)]:grid-cols-[1fr_1.3fr_0.6fr] [@container(min-width:520px)]:gap-5 [@container(min-width:520px)]:border-b-0",
|
|
7553
7556
|
children: [
|
|
7554
|
-
/* @__PURE__ */ a("span", { children: d.glCode }),
|
|
7555
|
-
/* @__PURE__ */ a("span", { children: d.accountName }),
|
|
7557
|
+
/* @__PURE__ */ a("span", { className: "col-start-1 row-start-1 font-medium [@container(min-width:520px)]:font-normal", children: d.glCode }),
|
|
7558
|
+
/* @__PURE__ */ a("span", { className: "col-start-1 row-start-2 min-w-0 break-words text-zinc-600 [@container(min-width:520px)]:col-start-2 [@container(min-width:520px)]:row-start-1 [@container(min-width:520px)]:text-zinc-900", children: d.accountName }),
|
|
7556
7559
|
/* @__PURE__ */ a(
|
|
7557
7560
|
H,
|
|
7558
7561
|
{
|
|
@@ -7560,7 +7563,7 @@ function Rd({
|
|
|
7560
7563
|
size: "sm",
|
|
7561
7564
|
variant: "bordered",
|
|
7562
7565
|
radius: "full",
|
|
7563
|
-
className: "h-9 min-w-
|
|
7566
|
+
className: "col-start-2 row-span-2 row-start-1 h-9 min-w-20 border-zinc-200 bg-white text-sm font-medium text-zinc-900 [@container(min-width:520px)]:col-start-3 [@container(min-width:520px)]:row-span-1 [@container(min-width:520px)]:min-w-24",
|
|
7564
7567
|
onPress: () => i(d),
|
|
7565
7568
|
children: t.select
|
|
7566
7569
|
}
|