import{s as F,ad as b,r as y,j as s,d as g,B as C,f as j,aO as v,aP as S}from"./index-DLIdDvtv.js";import{r as w}from"./customFields-D3GHnLUB.js";import{C as I}from"./calendar-CC4EfbAP.js";import{I as N}from"./input-hEr-DKad.js";import{P as T,a as R,b as q}from"./popover-DoWpMTtN.js";import{S as P,a as O,b as E,c as D,d as A}from"./select-0XKWeVb4.js";import{T as V}from"./textarea-CUBXR3lZ.js";import{C as $}from"./calendar-DwFQA7Pt.js";function te(e){return e.map(t=>({field_name:t.field_name,label:t.label,scope:t.scope,...t.additional_fee!=null&&Number.isFinite(t.additional_fee)&&t.additional_fee>0?{additional_fee:t.additional_fee}:{}}))}function se(e){return{accommodation:"hotel",experience:"experience",dining:"dining",transfer:"transfer"}[e]}function re(e,t){const r=/airport/i;return r.test(e??"")?"airport_to_city":r.test(t??"")?"city_to_airport":"city_to_city"}const L=/^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})-/i;function ne(e){const t=e.productId!=null?String(e.productId).trim():"";if(t)return t;const r=e.id.match(L);return r==null?void 0:r[1]}function ae(e,t){const r={};for(const n of e)if(n.is_active&&n.is_required){const a=t[n.field_name];(a==null||a==="")&&(r[n.field_name]=`${n.label} is required`)}return r}const M="id, field_name, label, field_type, placeholder, is_required, options, product_ids, product_categories, transfer_subcategories, display_order, is_active, scope, additional_fee, created_at";async function B(e){var o,i;const{data:t,error:r}=await F.from("custom_field_definitions").select(M).eq("is_active",!0).eq("scope",e.scope).order("display_order",{ascending:!0});if(r)throw r;const a=(t??[]).map(w);if(e.scope!=="product")return a;const u=((o=e.productCategory)==null?void 0:o.trim())??"",l=((i=e.productId)==null?void 0:i.trim())??"";return a.filter(c=>{const p=u.length>0&&c.product_categories.some(m=>m===u),d=l.length>0&&c.product_ids.includes(l);return!(!p&&!d||p&&u==="transfer"&&e.transferSubcategory&&c.transfer_subcategories.length>0&&!c.transfer_subcategories.includes(e.transferSubcategory))})}function Y(e){var a,u;const t=((a=e.productCategory)==null?void 0:a.trim())??"",r=((u=e.productId)==null?void 0:u.trim())??"",n=e.scope==="cart"||t.length>0||r.length>0;return{queryKey:["storefront-custom-fields",e.scope,t||null,r||null,e.transferSubcategory??null],enabled:n,staleTime:5*60*1e3,queryFn:()=>B(e)}}function ie(e){return b(Y(e))}const x="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70";function k(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Q(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(typeof e=="string"&&e.trim()){const t=v(e.trim());if(S(t))return t}}function _({message:e}){return e?s.jsx("p",{className:"text-sm text-destructive font-sans",children:e}):null}function U({field:e,value:t,onChange:r,error:n,disabled:a}){var p;const l=`${y.useId()}-${e.field_name}`,o=(p=e.placeholder)!=null&&p.trim()?e.placeholder:void 0,i=e.field_type,c=y.useMemo(()=>k(e.options),[e.options]);if(i==="select"){const d=typeof t=="string"?t:"",m=c.includes(d)?d:void 0;return s.jsxs("div",{"data-name":"CustomFieldRenderer",className:"space-y-2",children:[s.jsxs("div",{className:x,children:[e.label,e.is_required?s.jsx("span",{className:"text-destructive",children:" *"}):null]}),c.length===0?s.jsx("p",{className:"text-sm text-muted-foreground font-sans",children:"No options configured."}):s.jsxs(P,{value:m,onValueChange:f=>r(e.field_name,f),disabled:a,children:[s.jsx(O,{className:"font-sans","aria-invalid":!!n,children:s.jsx(E,{placeholder:o??"Select…"})}),s.jsx(D,{children:c.map((f,h)=>s.jsx(A,{value:f,children:f},`${f}-${h}`))})]}),s.jsx(_,{message:n})]})}if(i==="textarea")return s.jsxs("div",{"data-name":"CustomFieldRenderer",className:"space-y-2",children:[s.jsxs("label",{htmlFor:l,className:g(x,"flex items-center gap-0.5"),children:[e.label,e.is_required?s.jsx("span",{className:"text-destructive",children:"*"}):null]}),s.jsx(V,{id:l,rows:3,value:typeof t=="string"?t:t==null?"":String(t),onChange:d=>r(e.field_name,d.target.value),placeholder:o,disabled:a,"aria-invalid":!!n,className:"font-sans text-sm"}),s.jsx(_,{message:n})]});if(i==="number"){const d=typeof t=="number"&&Number.isFinite(t)?String(t):typeof t=="string"?t:"";return s.jsxs("div",{"data-name":"CustomFieldRenderer",className:"space-y-2",children:[s.jsxs("label",{htmlFor:l,className:g(x,"flex items-center gap-0.5"),children:[e.label,e.is_required?s.jsx("span",{className:"text-destructive",children:"*"}):null]}),s.jsx(N,{id:l,type:"number",value:d,onChange:m=>{const f=m.target.value;if(f==="")r(e.field_name,null);else{const h=Number(f);r(e.field_name,Number.isFinite(h)?h:f)}},placeholder:o,disabled:a,"aria-invalid":!!n,className:"font-sans"}),s.jsx(_,{message:n})]})}return i==="date"?s.jsx(G,{field:e,value:t,onChange:r,error:n,disabled:a,inputId:l,placeholder:o}):s.jsxs("div",{"data-name":"CustomFieldRenderer",className:"space-y-2",children:[s.jsxs("label",{htmlFor:l,className:g(x,"flex items-center gap-0.5"),children:[e.label,e.is_required?s.jsx("span",{className:"text-destructive",children:"*"}):null]}),s.jsx(N,{id:l,type:"text",value:typeof t=="string"?t:t==null?"":String(t),onChange:d=>r(e.field_name,d.target.value),placeholder:o,disabled:a,"aria-invalid":!!n,className:"font-sans"}),s.jsx(_,{message:n})]})}function G({field:e,value:t,onChange:r,error:n,disabled:a,inputId:u,placeholder:l}){const o=Q(t),[i,c]=y.useState(!1),p=1920,d=new Date().getFullYear()+10;return s.jsxs("div",{"data-name":"CustomFieldRenderer",className:"space-y-2",children:[s.jsxs("label",{htmlFor:u,className:g(x,"flex items-center gap-0.5"),children:[e.label,e.is_required?s.jsx("span",{className:"text-destructive",children:"*"}):null]}),s.jsxs(T,{open:i,onOpenChange:m=>{a||c(m)},children:[s.jsx(R,{asChild:!0,children:s.jsxs(C,{id:u,type:"button",variant:"outline",disabled:a,"aria-invalid":!!n,className:g("w-full justify-start text-left font-normal font-sans",!o&&"text-muted-foreground"),children:[s.jsx($,{className:"mr-2 h-4 w-4 shrink-0 opacity-70","aria-hidden":!0}),o?j(o,"PPP"):l??"Pick a date"]})}),s.jsx(q,{className:"w-auto p-0",align:"start",children:s.jsx(I,{mode:"single",captionLayout:"dropdown",fromYear:p,toYear:d,selected:o,onSelect:m=>{r(e.field_name,m?j(m,"yyyy-MM-dd"):""),c(!1)},initialFocus:!0,className:"pointer-events-auto p-3",classNames:{caption_dropdowns:"flex gap-2 justify-center",dropdown_month:"relative",dropdown_year:"relative"}})})]}),s.jsx(_,{message:n})]})}function oe({fields:e,values:t,onChange:r,errors:n,disabled:a,singleColumn:u,className:l}){const o=y.useMemo(()=>[...e].filter(i=>i.is_active).sort((i,c)=>{const p=Number.isFinite(i.display_order)?i.display_order:0,d=Number.isFinite(c.display_order)?c.display_order:0;return p-d}),[e]);return s.jsx("div",{"data-name":"CustomFieldsForm",className:g(u?"grid grid-cols-1 gap-4":"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",l),children:o.map(i=>s.jsx("div",{className:"min-w-0 sm:col-span-1",children:s.jsx(U,{field:i,value:t[i.field_name],onChange:r,error:n==null?void 0:n[i.field_name],disabled:a})},i.id))})}export{oe as C,ne as a,te as c,Y as g,se as p,re as t,ie as u,ae as v};