ynotsoft-dynamic-form 1.0.13 → 1.0.14

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 CHANGED
@@ -1,47 +1,47 @@
1
- var Je=Object.create;var Q=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var et=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty;var ot=(e,r)=>{for(var c in r)Q(e,c,{get:r[c],enumerable:!0})},ue=(e,r,c,g)=>{if(r&&typeof r=="object"||typeof r=="function")for(let d of Ze(r))!tt.call(e,d)&&d!==c&&Q(e,d,{get:()=>r[d],enumerable:!(g=Qe(r,d))||g.enumerable});return e};var I=(e,r,c)=>(c=e!=null?Je(et(e)):{},ue(r||!e||!e.__esModule?Q(c,"default",{value:e,enumerable:!0}):c,e)),rt=e=>ue(Q({},"__esModule",{value:!0}),e);var kt={};ot(kt,{DynamicForm:()=>se,DynamicFormComponent:()=>se,MyButton:()=>Z,MyButtonComponent:()=>Z,default:()=>Nt});module.exports=rt(kt);var pe=require("react/jsx-runtime");function Z({children:e,onClick:r}){return(0,pe.jsx)("button",{onClick:r,children:e})}var E=require("react"),Ke=require("react-hot-toast"),me=I(require("dayjs"),1);var be=I(require("axios"),1),te=I(require("react-hot-toast"),1);var ee={REACT_API_URL:"http://localhost:5000/"};var ge=be.default.create({baseURL:ee.REACT_API_URL,headers:{"Content-Type":"application/json"}});ge.interceptors.response.use(e=>e.data,e=>{var r;if(e.response&&e.response.status===403)return te.default.error("You are not authorized to access this resource."),Promise.reject("You are not authorized to access this resource.");if(e.response)return te.default.error("An error occurred"),Promise.reject(((r=e.response.data)==null?void 0:r.message)||"An error occurred");te.default.error(e.message)});var he=ge;var ye=require("react/jsx-runtime");function at(e){return(0,ye.jsx)("input",{type:"hidden",name:e.name,value:e.value},e.name)}var xe=at;var fe=I(require("react-select"),1),ve=I(require("react-select/animated"),1),Ne=require("react/jsx-runtime");function st({field:e,formValues:r,handleChange:c,touched:g,errors:d,handleBlur:a}){let l=e.disabled&&e.disabled(r),p=e.options||[],s=(0,ve.default)(),b=r[e.name]||[];return(0,Ne.jsx)(fe.default,{components:s,isMulti:!0,isDisabled:l,name:e.label,value:b,onChange:v=>c(e.name,v),options:p,placeholder:e.placeholder,closeMenuOnSelect:!1})}var we=st;var h=I(require("@radix-ui/react-select"),1),It=require("react"),ke=require("@heroicons/react/20/solid"),w=require("react/jsx-runtime");function nt({field:e,formValues:r,handleChange:c,handleBlur:g}){var p;let d=r[e.name]||"",a=typeof e.disabled=="function"?e.disabled(r):e.disabled,l=e.options||[];return(0,w.jsxs)(h.Root,{value:d,onValueChange:s=>c(e.name,s),disabled:a,children:[(0,w.jsxs)(h.Trigger,{id:e.name,onBlur:()=>g(e.name),className:`inline-flex items-center justify-between w-full px-3 py-2 border rounded-md text-sm transition-all
2
- ${a?"bg-gray-100 text-gray-500 cursor-not-allowed":"border-gray-300 hover:border-gray-400 focus:ring-2 focus:ring-blue-500"}
3
- `,children:[(0,w.jsx)(h.Value,{placeholder:e.placeholder||`Select ${((p=e.label)==null?void 0:p.toLowerCase())||""}`}),(0,w.jsx)(h.Icon,{className:"ml-2 text-gray-500",children:(0,w.jsx)(ke.ChevronDownIcon,{className:"w-4 h-4"})})]}),(0,w.jsx)(h.Portal,{children:(0,w.jsxs)(h.Content,{className:"bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[var(--radix-select-trigger-width)]",position:"popper",sideOffset:5,children:[(0,w.jsx)(h.ScrollUpButton,{className:"flex items-center justify-center h-6 text-gray-500 bg-gray-50",children:(0,w.jsx)(h.Arrow,{className:"fill-white stroke-gray-200"})}),(0,w.jsxs)(h.Viewport,{className:"p-1",children:[e.groupLabel&&(0,w.jsx)(h.Group,{children:(0,w.jsx)(h.Label,{className:"px-2 py-1 text-xs text-gray-500 uppercase tracking-wide",children:e.groupLabel})}),l.map(s=>(0,w.jsx)(h.Item,{value:s.value,className:`relative flex items-center px-3 py-2 text-sm rounded cursor-pointer select-none
1
+ var We=Object.create;var Q=Object.defineProperty;var qe=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,Ke=Object.prototype.hasOwnProperty;var Xe=(e,a)=>{for(var r in a)Q(e,r,{get:a[r],enumerable:!0})},me=(e,a,r,h)=>{if(a&&typeof a=="object"||typeof a=="function")for(let u of Ve(a))!Ke.call(e,u)&&u!==r&&Q(e,u,{get:()=>a[u],enumerable:!(h=qe(a,u))||h.enumerable});return e};var E=(e,a,r)=>(r=e!=null?We(Ye(e)):{},me(a||!e||!e.__esModule?Q(r,"default",{value:e,enumerable:!0}):r,e)),Je=e=>me(Q({},"__esModule",{value:!0}),e);var xt={};Xe(xt,{DynamicForm:()=>oe,DynamicFormComponent:()=>oe,default:()=>ht});module.exports=Je(xt);var M=require("react"),ce=require("react-hot-toast"),de=E(require("dayjs"),1);var pe=require("react/jsx-runtime");function Qe(e){return(0,pe.jsx)("input",{type:"hidden",name:e.name,value:e.value},e.name)}var ue=Qe;var be=E(require("react-select"),1),ge=E(require("react-select/animated"),1),xe=require("react/jsx-runtime");function Ze({field:e,formValues:a,handleChange:r,touched:h,errors:u,handleBlur:d}){let l=e.disabled&&e.disabled(a),i=e.options||[],s=(0,ge.default)(),b=a[e.name]||[];return(0,xe.jsx)(be.default,{components:s,isMulti:!0,isDisabled:l,name:e.label,value:b,onChange:f=>r(e.name,f),options:i,placeholder:e.placeholder,closeMenuOnSelect:!1})}var he=Ze;var g=E(require("@radix-ui/react-select"),1),wt=require("react"),ye=require("@heroicons/react/20/solid"),w=require("react/jsx-runtime");function et({field:e,formValues:a,handleChange:r,handleBlur:h}){var i;let u=a[e.name]||"",d=typeof e.disabled=="function"?e.disabled(a):e.disabled,l=e.options||[];return(0,w.jsxs)(g.Root,{value:u,onValueChange:s=>r(e.name,s),disabled:d,children:[(0,w.jsxs)(g.Trigger,{id:e.name,onBlur:()=>h(e.name),className:`inline-flex items-center justify-between w-full px-3 py-2 border rounded-md text-sm transition-all
2
+ ${d?"bg-gray-100 text-gray-500 cursor-not-allowed":"border-gray-300 hover:border-gray-400 focus:ring-2 focus:ring-blue-500"}
3
+ `,children:[(0,w.jsx)(g.Value,{placeholder:e.placeholder||`Select ${((i=e.label)==null?void 0:i.toLowerCase())||""}`}),(0,w.jsx)(g.Icon,{className:"ml-2 text-gray-500",children:(0,w.jsx)(ye.ChevronDownIcon,{className:"w-4 h-4"})})]}),(0,w.jsx)(g.Portal,{children:(0,w.jsxs)(g.Content,{className:"bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[var(--radix-select-trigger-width)]",position:"popper",sideOffset:5,children:[(0,w.jsx)(g.ScrollUpButton,{className:"flex items-center justify-center h-6 text-gray-500 bg-gray-50",children:(0,w.jsx)(g.Arrow,{className:"fill-white stroke-gray-200"})}),(0,w.jsxs)(g.Viewport,{className:"p-1",children:[e.groupLabel&&(0,w.jsx)(g.Group,{children:(0,w.jsx)(g.Label,{className:"px-2 py-1 text-xs text-gray-500 uppercase tracking-wide",children:e.groupLabel})}),l.map(s=>(0,w.jsx)(g.Item,{value:s.value,className:`relative flex items-center px-3 py-2 text-sm rounded cursor-pointer select-none
4
4
  data-[state=checked]:bg-blue-50
5
5
  data-[state=checked]:text-blue-600
6
- `,children:(0,w.jsx)(h.ItemText,{children:s.label})},s.value)),e.separator&&(0,w.jsx)(h.Separator,{className:"my-1 h-px bg-gray-200"})]}),(0,w.jsx)(h.Arrow,{className:"fill-white stroke-gray-200"})]})})]})}var Ce=nt;var Bt=require("react"),Fe=require("react/jsx-runtime");function lt({field:e,formValues:r,handleChange:c,handleBlur:g,touched:d,errors:a}){let l=e.readOnly&&e.disabled;return(0,Fe.jsx)("input",{...e.props,type:"email",value:r[e.name]||"",onChange:s=>c(e.name,s.target.value),onBlur:()=>g(e.name),disabled:l,name:e.name,placeholder:e.placeholder,className:`w-full px-3 py-2 border rounded-md ${!1?"border-red-500":"border-gray-300"} ${l?"bg-gray-100 text-gray-500 cursor-not-allowed":""}`})}var Se=lt;var At=require("react"),Re=require("react/jsx-runtime");function it({field:e,formValues:r,handleChange:c,handleBlur:g,touched:d,errors:a}){console.log("Rendering InputField for",e);let l=e.readOnly||e.disabled;return(0,Re.jsx)("input",{...e.props,id:e.name,type:e.type||"text",value:r[e.name]||"",onChange:s=>c(e.name,s.target.value),onBlur:()=>g(e.name),disabled:l,name:e.name,placeholder:e.placeholder,min:e.minLength,max:e.maxLength,className:`flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${!1?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${l?"bg-gray-50 text-gray-500":"bg-background"}`})}var le=it;var Ut=require("react"),ie=require("react/jsx-runtime");function ct({field:e,formValues:r}){let c=r[e.name]||e.content||"";return(0,ie.jsx)("div",{className:`mb-4 ${e.fieldClass?e.fieldClass:"col-span-full"}`,id:e.name.toLowerCase()+"_id",children:(0,ie.jsx)("div",{className:"w-full px-3 py-2 border rounded-md overflow-y-auto max-h-40 prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:c}})},e.name)}var $e=ct;var T=require("react/jsx-runtime");function dt({field:e,formValues:r,handleChange:c,handleBlur:g,touched:d,errors:a}){let l=e.disabled&&e.disabled(r),p=!1;return(0,T.jsxs)("div",{className:"mt-1 space-x-2",children:[(0,T.jsx)("input",{...e.props,id:"id_"+e.name,type:"checkbox",checked:r[e.name]||!1,onChange:s=>c(e.name,s.target.checked),onBlur:()=>g(e.name),disabled:l,className:`rounded border-gray-300 ${l?"opacity-50 cursor-not-allowed":""}`}),(0,T.jsxs)("label",{className:"",htmlFor:"id_"+e.name,children:[e.label,e.required&&(0,T.jsx)("span",{className:"text-red-500",children:"*"})]}),p&&(0,T.jsx)("p",{className:"mt-1 text-sm text-red-500",children:p})]})}var Pe=dt;var _=I(require("@radix-ui/react-popover"),1),Le=require("react"),Ie=require("react-day-picker"),Gt=require("react-day-picker/dist/style.css"),S=require("react/jsx-runtime");function mt({field:e,formValues:r,handleChange:c,handleBlur:g}){let[d,a]=(0,Le.useState)(!1),l=r[e.name]??{from:null,to:null},p=b=>c(e.name,b),s=()=>c(e.name,{from:null,to:null});return(0,S.jsx)("div",{children:(0,S.jsxs)(_.Root,{open:d,onOpenChange:a,children:[(0,S.jsx)(_.Trigger,{asChild:!0,children:(0,S.jsxs)("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":d,onClick:()=>a(!0),onKeyDown:b=>b.key==="Enter"&&a(!0),className:`
6
+ `,children:(0,w.jsx)(g.ItemText,{children:s.label})},s.value)),e.separator&&(0,w.jsx)(g.Separator,{className:"my-1 h-px bg-gray-200"})]}),(0,w.jsx)(g.Arrow,{className:"fill-white stroke-gray-200"})]})})]})}var ve=et;var Ct=require("react"),we=require("react/jsx-runtime");function tt({field:e,formValues:a,handleChange:r,handleBlur:h,touched:u,errors:d}){let l=e.readOnly&&e.disabled;return(0,we.jsx)("input",{...e.props,type:"email",value:a[e.name]||"",onChange:s=>r(e.name,s.target.value),onBlur:()=>h(e.name),disabled:l,name:e.name,placeholder:e.placeholder,className:`w-full px-3 py-2 border rounded-md ${!1?"border-red-500":"border-gray-300"} ${l?"bg-gray-100 text-gray-500 cursor-not-allowed":""}`})}var fe=tt;var Rt=require("react"),Ne=require("react/jsx-runtime");function ot({field:e,formValues:a,handleChange:r,handleBlur:h,touched:u,errors:d}){console.log("Rendering InputField for",e);let l=e.readOnly||e.disabled;return(0,Ne.jsx)("input",{...e.props,id:e.name,type:e.type||"text",value:a[e.name]||"",onChange:s=>r(e.name,s.target.value),onBlur:()=>h(e.name),disabled:l,name:e.name,placeholder:e.placeholder,min:e.minLength,max:e.maxLength,className:`flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${!1?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${l?"bg-gray-50 text-gray-500":"bg-background"}`})}var ne=ot;var Lt=require("react"),se=require("react/jsx-runtime");function rt({field:e,formValues:a}){let r=a[e.name]||e.content||"";return(0,se.jsx)("div",{className:`mb-4 ${e.fieldClass?e.fieldClass:"col-span-full"}`,id:e.name.toLowerCase()+"_id",children:(0,se.jsx)("div",{className:"w-full px-3 py-2 border rounded-md overflow-y-auto max-h-40 prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:r}})},e.name)}var ke=rt;var O=require("react/jsx-runtime");function at({field:e,formValues:a,handleChange:r,handleBlur:h,touched:u,errors:d}){let l=e.disabled&&e.disabled(a),i=!1;return(0,O.jsxs)("div",{className:"mt-1 space-x-2",children:[(0,O.jsx)("input",{...e.props,id:"id_"+e.name,type:"checkbox",checked:a[e.name]||!1,onChange:s=>r(e.name,s.target.checked),onBlur:()=>h(e.name),disabled:l,className:`rounded border-gray-300 ${l?"opacity-50 cursor-not-allowed":""}`}),(0,O.jsxs)("label",{className:"",htmlFor:"id_"+e.name,children:[e.label,e.required&&(0,O.jsx)("span",{className:"text-red-500",children:"*"})]}),i&&(0,O.jsx)("p",{className:"mt-1 text-sm text-red-500",children:i})]})}var Ce=at;var H=E(require("@radix-ui/react-popover"),1),Se=require("react"),Fe=require("react-day-picker"),Bt=require("react-day-picker/dist/style.css"),F=require("react/jsx-runtime");function nt({field:e,formValues:a,handleChange:r,handleBlur:h}){let[u,d]=(0,Se.useState)(!1),l=a[e.name]??{from:null,to:null},i=b=>r(e.name,b),s=()=>r(e.name,{from:null,to:null});return(0,F.jsx)("div",{children:(0,F.jsxs)(H.Root,{open:u,onOpenChange:d,children:[(0,F.jsx)(H.Trigger,{asChild:!0,children:(0,F.jsxs)("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":u,onClick:()=>d(!0),onKeyDown:b=>b.key==="Enter"&&d(!0),className:`
7
7
  inline-flex items-center justify-between gap-2
8
8
  w-full h-9 rounded-md border border-gray-300 bg-white
9
9
  px-3 py-2 text-sm font-normal shadow-sm
10
10
  hover:bg-gray-50 hover:text-gray-900
11
11
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2
12
12
  disabled:cursor-not-allowed disabled:opacity-50
13
- `,children:[l.from?l.to?(0,S.jsxs)("span",{children:[l.from.toLocaleDateString()," \u2013 ",l.to.toLocaleDateString()]}):(0,S.jsx)("span",{children:l.from.toLocaleDateString()}):(0,S.jsx)("span",{className:"text-muted-foreground",children:e.placeholder||"Select date range"}),(0,S.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-chevron-down opacity-70",children:(0,S.jsx)("path",{d:"m6 9 6 6 6-6"})})]})}),(0,S.jsxs)(_.Content,{align:"start",sideOffset:2,className:"z-50 rounded-md border border-gray-200 bg-white p-0 shadow-md w-auto",children:[(0,S.jsx)(Ie.DayPicker,{mode:"range",selected:l,onSelect:p,showOutsideDays:!0,className:"rounded-md bg-white p-3 text-xs"}),(0,S.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 p-3",children:[(0,S.jsx)("button",{type:"button",onClick:s,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),(0,S.jsx)("button",{type:"button",onClick:()=>a(!1),className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})]})})}var Me=mt;var Vt=require("react"),ce=require("react-hot-toast");var x=require("react/jsx-runtime");function ut({field:e,formValues:r,touched:c,errors:g,fileUploads:d,setFileUploads:a,fileInputRefs:l,handleChange:p,onFieldsChange:s}){let b=c[e.name]&&g[e.name],v=e.type==="multifile",$=d[e.name]||{},C=r[e.name],B=v?C||[]:[C].filter(Boolean),P=e.disabled&&e.disabled(r),O=`px-4 py-2 bg-gray-100 border rounded hover:bg-gray-200 ${P?"cursor-not-allowed":""}`,V=`${ee.REACT_API_URL}uploads`,D=i=>{if(i===0)return"0 Bytes";let t=1024,o=["Bytes","KB","MB","GB"],n=Math.floor(Math.log(i)/Math.log(t));return parseFloat((i/Math.pow(t,n)).toFixed(2))+" "+o[n]},U=async(i,t)=>{let o=new FormData;o.append("file",i);let n=await fetch(`${V}`,{method:"POST",body:o});if(!n.ok)throw ce.toast.error("Upload failed"),new Error("Upload failed");return await n.json()},y=async(i,t)=>{if(!t)return;if(i.maxSize&&t.size>i.maxSize)throw new Error(`File size must not exceed ${D(i.maxSize)}`);let o=await U(t,i.name),n={...r,[i.name]:o};p(i.name,o),s(n)},L=async(i,t)=>{let o=r[i.name]||[];if(o.length+t.length>i.maxFiles)throw new Error(`Maximum ${i.maxFiles} files allowed`);t.forEach(k=>{if(i.maxSize&&k.size>i.maxSize)throw new Error(`Each file must not exceed ${D(i.maxSize)}`)});let n=await Promise.all(t.map(k=>U(k,i.name))),m=[...o,...n];p(i.name,m),s({...r,[i.name]:m})},J=async(i,t)=>{let o=Array.from(t);try{e.type==="file"?await y(e,o[0]):e.type==="multifile"&&await L(e,o),l.current[i]&&(l.current[i].value="")}catch(n){ce.toast.error(`Upload failed: ${n.message}`)}},ne=async(i,t)=>{let o;e.type==="file"?o="":o=(r[i]||[]).filter(m=>m!==t),p(i,o),s({...r,[i]:o}),l.current[i]&&(l.current[i].value="")};return(0,x.jsxs)("div",{className:`mb-4 ${e.fieldClass||"col-span-full"}`,children:[(0,x.jsxs)("label",{className:"block font-medium mb-1",children:[e.label,e.required&&(0,x.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,x.jsxs)("div",{className:"space-y-2",children:[(0,x.jsxs)("div",{className:"items-center space-x-2",children:[(0,x.jsxs)("button",{type:"button",disabled:P,onClick:()=>l.current[e.name].click(),className:O,children:["Choose ",v?"Files":"File"]}),v&&B.length>0&&(0,x.jsxs)("span",{className:"text-sm text-gray-600",children:[B.length," of ",e.maxFiles," files uploaded"]})]}),(0,x.jsx)("input",{ref:i=>l.current[e.name]=i,type:"file",accept:e.accept,multiple:v,className:"hidden",onChange:i=>J(e.name,i.target.files)}),(0,x.jsx)("div",{className:"space-y-2",children:B.map((i,t)=>{let o=Object.values($).find(n=>n.file===i);return(0,x.jsxs)("div",{className:"flex items-center justify-between p-2 bg-gray-50 rounded",children:[(0,x.jsxs)("div",{className:"flex items-center space-x-2",children:[o&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("span",{className:"text-sm",children:o.fileName}),(0,x.jsxs)("span",{className:"text-xs text-gray-500",children:["(",D(o.fileSize),")"]})]}),!o&&(0,x.jsx)("span",{className:"text-sm",children:i.original_name})]}),(0,x.jsx)("button",{type:"button",onClick:()=>ne(e.name,i),className:"text-red-500 hover:text-red-700 ml-3",children:"Remove"})]},i)})}),Object.entries($).map(([i,t])=>t.status==="uploading"?(0,x.jsxs)("div",{className:"relative pt-1",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("span",{className:"text-xs font-semibold inline-block text-blue-600",children:["Uploading ",i]}),(0,x.jsxs)("span",{className:"text-xs font-semibold inline-block text-blue-600",children:[t.progress,"%"]})]}),(0,x.jsx)("div",{className:"overflow-hidden h-2 mt-1 text-xs flex rounded bg-blue-200",children:(0,x.jsx)("div",{className:"shadow-none flex flex-col text-center whitespace-nowrap text-white justify-center bg-blue-500",style:{width:`${t.progress}%`}})})]},i):null)]}),b&&(0,x.jsx)("p",{className:"mt-1 text-sm text-red-500",children:b})]},e.name)}var de=ut;var oe=require("react"),H=require("react/jsx-runtime");function pt({field:e,formValues:r,handleChange:c,handleBlur:g,touched:d,errors:a,charCount:l,setCharCounts:p}){let s=(0,oe.useRef)(null),b=r[e.name]||"",v=typeof e.disabled=="function"?e.disabled(r):e.disabled||e.readOnly,$=d!=null&&d[e.name]&&(a!=null&&a[e.name])?a[e.name]:null,C=()=>{let P=s.current;P&&(P.style.height="auto",P.style.height=`${P.scrollHeight+2}px`)};(0,oe.useEffect)(()=>{C()},[b]);let B=P=>{c(e.name,P.target.value),C(),p&&p(O=>({...O,[e.name]:P.target.value.length}))};return(0,H.jsxs)("div",{className:"space-y-2",children:[(0,H.jsx)("textarea",{...e.props,ref:s,id:e.name,name:e.name,placeholder:e.placeholder||"",value:b,onChange:B,onBlur:()=>g(e.name),disabled:v,maxLength:e.maxLength,rows:e.rows||3,className:`flex w-full rounded-md border px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 resize-none overflow-y-auto ${$?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${v?"bg-gray-50 text-gray-500":"bg-background"}`,style:{minHeight:"80px",maxHeight:"400px"}}),(0,H.jsx)("div",{className:"flex justify-between items-center",children:e.maxLength&&!e.readOnly&&(0,H.jsxs)("span",{className:"text-xs text-gray-500",children:[l||0,"/",e.maxLength," characters"]})})]})}var Ee=pt;var Qt=require("react"),q=require("react/jsx-runtime");function bt({field:e,formValues:r,handleChange:c,handleBlur:g,touched:d,errors:a}){return(0,q.jsxs)("div",{children:[(0,q.jsx)("input",{type:"datetime-local",value:e.value||"",onChange:l=>c(e.name,l.target.value),onBlur:g,className:"border rounded px-3 py-2 w-full",placeholder:"Select date and time"}),(0,q.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Note: Install @mui/x-date-pickers for enhanced date picker functionality"})]})}var Be=bt;var re=require("@radix-ui/react-separator"),A=require("react/jsx-runtime");function gt({field:e}){return e!=null&&e.label?(0,A.jsxs)("div",{className:"relative flex items-center py-4",children:[(0,A.jsx)(re.Separator,{className:"flex-1 h-px bg-gray-300"}),(0,A.jsx)("span",{className:"px-3 font-medium text-gray-600 bg-white",children:e.label}),(0,A.jsx)(re.Separator,{className:"flex-1 h-px bg-gray-300"})]}):(0,A.jsx)(re.Separator,{className:"my-4 h-px bg-gray-300"})}var De=gt;var oo=require("react"),j=I(require("@radix-ui/react-radio-group"),1),M=require("react/jsx-runtime");function ht({field:e,formValues:r,handleChange:c,handleBlur:g}){let d=r[e.name]||"",a=typeof e.disabled=="function"?e.disabled(r):e.disabled,l=e.options||[],p=e.inline||!1;return(0,M.jsx)(j.Root,{value:d,onValueChange:s=>c(e.name,s),onBlur:()=>g(e.name),disabled:a,className:p?"flex flex-wrap gap-4":"space-y-3","aria-label":e.label||e.name,children:l.map(s=>{let b=typeof s=="object"?s.value:s,v=typeof s=="object"?s.label:s,$=typeof s=="object"?s.description:null,C=`${e.name}-${b}`;return(0,M.jsxs)("div",{className:"relative flex items-start",children:[(0,M.jsx)("div",{className:"flex h-6 items-center",children:(0,M.jsx)(j.Item,{value:b,id:C,disabled:a,className:`
13
+ `,children:[l.from?l.to?(0,F.jsxs)("span",{children:[l.from.toLocaleDateString()," \u2013 ",l.to.toLocaleDateString()]}):(0,F.jsx)("span",{children:l.from.toLocaleDateString()}):(0,F.jsx)("span",{className:"text-muted-foreground",children:e.placeholder||"Select date range"}),(0,F.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-chevron-down opacity-70",children:(0,F.jsx)("path",{d:"m6 9 6 6 6-6"})})]})}),(0,F.jsxs)(H.Content,{align:"start",sideOffset:2,className:"z-50 rounded-md border border-gray-200 bg-white p-0 shadow-md w-auto",children:[(0,F.jsx)(Fe.DayPicker,{mode:"range",selected:l,onSelect:i,showOutsideDays:!0,className:"rounded-md bg-white p-3 text-xs"}),(0,F.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 p-3",children:[(0,F.jsx)("button",{type:"button",onClick:s,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),(0,F.jsx)("button",{type:"button",onClick:()=>d(!1),className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})]})})}var Re=nt;var zt=require("react"),le=require("react-hot-toast"),x=require("react/jsx-runtime");function st({field:e,formValues:a,touched:r,errors:h,fileUploads:u,setFileUploads:d,fileInputRefs:l,handleChange:i,onFieldsChange:s,api_URL:b}){let f=r[e.name]&&h[e.name],k=e.type==="multifile",C=u[e.name]||{},B=a[e.name],R=k?B||[]:[B].filter(Boolean),D=e.disabled&&e.disabled(a),q=`px-4 py-2 bg-gray-100 border rounded hover:bg-gray-200 ${D?"cursor-not-allowed":""}`,U=b?`${b}uploads`:null;!U&&e.uploadEndpoint&&console.error(`api_URL prop is required when using FileField with upload functionality for field "${e.name}"`);let z=c=>{if(c===0)return"0 Bytes";let t=1024,o=["Bytes","KB","MB","GB"],n=Math.floor(Math.log(c)/Math.log(t));return parseFloat((c/Math.pow(t,n)).toFixed(2))+" "+o[n]},y=async(c,t)=>{let o=new FormData;o.append("file",c);let n=await fetch(`${U}`,{method:"POST",body:o});if(!n.ok)throw le.toast.error("Upload failed"),new Error("Upload failed");return await n.json()},L=async(c,t)=>{if(!t)return;if(c.maxSize&&t.size>c.maxSize)throw new Error(`File size must not exceed ${z(c.maxSize)}`);let o=await y(t,c.name),n={...a,[c.name]:o};i(c.name,o),s(n)},re=async(c,t)=>{let o=a[c.name]||[];if(o.length+t.length>c.maxFiles)throw new Error(`Maximum ${c.maxFiles} files allowed`);t.forEach(S=>{if(c.maxSize&&S.size>c.maxSize)throw new Error(`Each file must not exceed ${z(c.maxSize)}`)});let n=await Promise.all(t.map(S=>y(S,c.name))),m=[...o,...n];i(c.name,m),s({...a,[c.name]:m})},J=async(c,t)=>{let o=Array.from(t);try{e.type==="file"?await L(e,o[0]):e.type==="multifile"&&await re(e,o),l.current[c]&&(l.current[c].value="")}catch(n){le.toast.error(`Upload failed: ${n.message}`)}},ae=async(c,t)=>{let o;e.type==="file"?o="":o=(a[c]||[]).filter(m=>m!==t),i(c,o),s({...a,[c]:o}),l.current[c]&&(l.current[c].value="")};return(0,x.jsxs)("div",{className:`mb-4 ${e.fieldClass||"col-span-full"}`,children:[(0,x.jsxs)("label",{className:"block font-medium mb-1",children:[e.label,e.required&&(0,x.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,x.jsxs)("div",{className:"space-y-2",children:[(0,x.jsxs)("div",{className:"items-center space-x-2",children:[(0,x.jsxs)("button",{type:"button",disabled:D,onClick:()=>l.current[e.name].click(),className:q,children:["Choose ",k?"Files":"File"]}),k&&R.length>0&&(0,x.jsxs)("span",{className:"text-sm text-gray-600",children:[R.length," of ",e.maxFiles," files uploaded"]})]}),(0,x.jsx)("input",{ref:c=>l.current[e.name]=c,type:"file",accept:e.accept,multiple:k,className:"hidden",onChange:c=>J(e.name,c.target.files)}),(0,x.jsx)("div",{className:"space-y-2",children:R.map((c,t)=>{let o=Object.values(C).find(n=>n.file===c);return(0,x.jsxs)("div",{className:"flex items-center justify-between p-2 bg-gray-50 rounded",children:[(0,x.jsxs)("div",{className:"flex items-center space-x-2",children:[o&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("span",{className:"text-sm",children:o.fileName}),(0,x.jsxs)("span",{className:"text-xs text-gray-500",children:["(",z(o.fileSize),")"]})]}),!o&&(0,x.jsx)("span",{className:"text-sm",children:c.original_name})]}),(0,x.jsx)("button",{type:"button",onClick:()=>ae(e.name,c),className:"text-red-500 hover:text-red-700 ml-3",children:"Remove"})]},c)})}),Object.entries(C).map(([c,t])=>t.status==="uploading"?(0,x.jsxs)("div",{className:"relative pt-1",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("span",{className:"text-xs font-semibold inline-block text-blue-600",children:["Uploading ",c]}),(0,x.jsxs)("span",{className:"text-xs font-semibold inline-block text-blue-600",children:[t.progress,"%"]})]}),(0,x.jsx)("div",{className:"overflow-hidden h-2 mt-1 text-xs flex rounded bg-blue-200",children:(0,x.jsx)("div",{className:"shadow-none flex flex-col text-center whitespace-nowrap text-white justify-center bg-blue-500",style:{width:`${t.progress}%`}})})]},c):null)]}),f&&(0,x.jsx)("p",{className:"mt-1 text-sm text-red-500",children:f})]},e.name)}var ie=st;var Z=require("react"),j=require("react/jsx-runtime");function lt({field:e,formValues:a,handleChange:r,handleBlur:h,touched:u,errors:d,charCount:l,setCharCounts:i}){let s=(0,Z.useRef)(null),b=a[e.name]||"",f=typeof e.disabled=="function"?e.disabled(a):e.disabled||e.readOnly,k=u!=null&&u[e.name]&&(d!=null&&d[e.name])?d[e.name]:null,C=()=>{let R=s.current;R&&(R.style.height="auto",R.style.height=`${R.scrollHeight+2}px`)};(0,Z.useEffect)(()=>{C()},[b]);let B=R=>{r(e.name,R.target.value),C(),i&&i(D=>({...D,[e.name]:R.target.value.length}))};return(0,j.jsxs)("div",{className:"space-y-2",children:[(0,j.jsx)("textarea",{...e.props,ref:s,id:e.name,name:e.name,placeholder:e.placeholder||"",value:b,onChange:B,onBlur:()=>h(e.name),disabled:f,maxLength:e.maxLength,rows:e.rows||3,className:`flex w-full rounded-md border px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 resize-none overflow-y-auto ${k?"border-red-500 focus-visible:ring-red-500":"border-input focus-visible:ring-blue-500"} ${f?"bg-gray-50 text-gray-500":"bg-background"}`,style:{minHeight:"80px",maxHeight:"400px"}}),(0,j.jsx)("div",{className:"flex justify-between items-center",children:e.maxLength&&!e.readOnly&&(0,j.jsxs)("span",{className:"text-xs text-gray-500",children:[l||0,"/",e.maxLength," characters"]})})]})}var $e=lt;var Ht=require("react"),Y=require("react/jsx-runtime");function it({field:e,formValues:a,handleChange:r,handleBlur:h,touched:u,errors:d}){return(0,Y.jsxs)("div",{children:[(0,Y.jsx)("input",{type:"datetime-local",value:e.value||"",onChange:l=>r(e.name,l.target.value),onBlur:h,className:"border rounded px-3 py-2 w-full",placeholder:"Select date and time"}),(0,Y.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Note: Install @mui/x-date-pickers for enhanced date picker functionality"})]})}var Pe=it;var ee=require("@radix-ui/react-separator"),T=require("react/jsx-runtime");function ct({field:e}){return e!=null&&e.label?(0,T.jsxs)("div",{className:"relative flex items-center py-4",children:[(0,T.jsx)(ee.Separator,{className:"flex-1 h-px bg-gray-300"}),(0,T.jsx)("span",{className:"px-3 font-medium text-gray-600 bg-white",children:e.label}),(0,T.jsx)(ee.Separator,{className:"flex-1 h-px bg-gray-300"})]}):(0,T.jsx)(ee.Separator,{className:"my-4 h-px bg-gray-300"})}var Le=ct;var Wt=require("react"),G=E(require("@radix-ui/react-radio-group"),1),I=require("react/jsx-runtime");function dt({field:e,formValues:a,handleChange:r,handleBlur:h}){let u=a[e.name]||"",d=typeof e.disabled=="function"?e.disabled(a):e.disabled,l=e.options||[],i=e.inline||!1;return(0,I.jsx)(G.Root,{value:u,onValueChange:s=>r(e.name,s),onBlur:()=>h(e.name),disabled:d,className:i?"flex flex-wrap gap-4":"space-y-3","aria-label":e.label||e.name,children:l.map(s=>{let b=typeof s=="object"?s.value:s,f=typeof s=="object"?s.label:s,k=typeof s=="object"?s.description:null,C=`${e.name}-${b}`;return(0,I.jsxs)("div",{className:"relative flex items-start",children:[(0,I.jsx)("div",{className:"flex h-6 items-center",children:(0,I.jsx)(G.Item,{value:b,id:C,disabled:d,className:`
14
14
  relative size-4 rounded-full border transition-all
15
- ${a?"border-gray-300 bg-gray-100 cursor-not-allowed":"border-gray-300 bg-white hover:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"}
15
+ ${d?"border-gray-300 bg-gray-100 cursor-not-allowed":"border-gray-300 bg-white hover:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"}
16
16
  data-[state=checked]:border-blue-600 data-[state=checked]:bg-blue-600
17
- `,children:(0,M.jsx)(j.Indicator,{className:"flex items-center justify-center w-full h-full relative after:content-[''] after:block after:w-1.5 after:h-1.5 after:rounded-full after:bg-white"})})}),(0,M.jsxs)("div",{className:"ml-3 text-sm",children:[(0,M.jsx)("label",{htmlFor:C,className:`font-medium ${a?"text-gray-500":"text-gray-900 cursor-pointer"}`,children:v}),$&&!p&&(0,M.jsx)("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`,children:$})]})]},b)})})}var Te=ht;var so=require("react"),K=require("react/jsx-runtime");function xt({field:e}){let r=e.text||e.label||"",c=e.description||"",g=e.size||"lg",d=e.underline||!1,a=e.align||"left",l=e.className||"",p={sm:"text-base font-semibold",md:"text-lg font-semibold",lg:"text-xl font-bold",xl:"text-2xl font-bold","2xl":"text-3xl font-bold","3xl":"text-4xl font-bold","4xl":"text-5xl font-bold"},s={left:"text-left",center:"text-center",right:"text-right"},b=`
18
- ${p[g]||p.lg}
19
- ${s[a]||s.left}
20
- ${d?"border-b-2 border-gray-300 pb-2":""}
17
+ `,children:(0,I.jsx)(G.Indicator,{className:"flex items-center justify-center w-full h-full relative after:content-[''] after:block after:w-1.5 after:h-1.5 after:rounded-full after:bg-white"})})}),(0,I.jsxs)("div",{className:"ml-3 text-sm",children:[(0,I.jsx)("label",{htmlFor:C,className:`font-medium ${d?"text-gray-500":"text-gray-900 cursor-pointer"}`,children:f}),k&&!i&&(0,I.jsx)("p",{className:`text-sm ${d?"text-gray-400":"text-gray-500"}`,children:k})]})]},b)})})}var Ie=dt;var Yt=require("react"),K=require("react/jsx-runtime");function mt({field:e}){let a=e.text||e.label||"",r=e.description||"",h=e.size||"lg",u=e.underline||!1,d=e.align||"left",l=e.className||"",i={sm:"text-base font-semibold",md:"text-lg font-semibold",lg:"text-xl font-bold",xl:"text-2xl font-bold","2xl":"text-3xl font-bold","3xl":"text-4xl font-bold","4xl":"text-5xl font-bold"},s={left:"text-left",center:"text-center",right:"text-right"},b=`
18
+ ${i[h]||i.lg}
19
+ ${s[d]||s.left}
20
+ ${u?"border-b-2 border-gray-300 pb-2":""}
21
21
  ${l}
22
22
  text-gray-900
23
- `.trim(),v=`
23
+ `.trim(),f=`
24
24
  mt-1 text-sm text-gray-600
25
- ${s[a]||s.left}
26
- `.trim();return(0,K.jsxs)("div",{className:"my-4",children:[(0,K.jsx)("h2",{className:b,children:r}),c&&(0,K.jsx)("p",{className:v,children:c})]})}var Ae=xt;var G=I(require("@radix-ui/react-popover"),1),ze=require("react"),Oe=require("react-day-picker"),io=require("react-day-picker/dist/style.css"),F=require("react/jsx-runtime");function yt({field:e,formValues:r,handleChange:c,handleBlur:g}){let[d,a]=(0,ze.useState)(!1),l=r[e.name]??null,p=b=>c(e.name,b),s=()=>c(e.name,null);return(0,F.jsx)("div",{children:(0,F.jsxs)(G.Root,{open:d,onOpenChange:a,children:[(0,F.jsx)(G.Trigger,{asChild:!0,children:(0,F.jsxs)("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":d,onClick:()=>a(!0),onKeyDown:b=>b.key==="Enter"&&a(!0),className:`
25
+ ${s[d]||s.left}
26
+ `.trim();return(0,K.jsxs)("div",{className:"my-4",children:[(0,K.jsx)("h2",{className:b,children:a}),r&&(0,K.jsx)("p",{className:f,children:r})]})}var Me=mt;var _=E(require("@radix-ui/react-popover"),1),Ee=require("react"),Be=require("react-day-picker"),Jt=require("react-day-picker/dist/style.css"),$=require("react/jsx-runtime");function ut({field:e,formValues:a,handleChange:r,handleBlur:h}){let[u,d]=(0,Ee.useState)(!1),l=a[e.name]??null,i=b=>r(e.name,b),s=()=>r(e.name,null);return(0,$.jsx)("div",{children:(0,$.jsxs)(_.Root,{open:u,onOpenChange:d,children:[(0,$.jsx)(_.Trigger,{asChild:!0,children:(0,$.jsxs)("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":u,onClick:()=>d(!0),onKeyDown:b=>b.key==="Enter"&&d(!0),className:`
27
27
  inline-flex items-center justify-between gap-2
28
28
  w-full h-9 rounded-md border border-gray-300 bg-white
29
29
  px-3 py-2 text-sm font-normal shadow-sm
30
30
  hover:bg-gray-50 hover:text-gray-900
31
31
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2
32
32
  disabled:cursor-not-allowed disabled:opacity-50
33
- `,children:[l?(0,F.jsx)("span",{children:l.toLocaleDateString()}):(0,F.jsx)("span",{className:"text-muted-foreground",children:e.placeholder||"Select date"}),(0,F.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-chevron-down opacity-70",children:(0,F.jsx)("path",{d:"m6 9 6 6 6-6"})})]})}),(0,F.jsxs)(G.Content,{align:"start",sideOffset:2,className:"z-50 rounded-md border border-gray-200 bg-white p-0 shadow-md w-auto",children:[(0,F.jsx)(Oe.DayPicker,{mode:"single",selected:l,onSelect:p,showOutsideDays:!0,className:"rounded-md bg-white p-3 text-xs"}),(0,F.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 p-3",children:[(0,F.jsx)("button",{type:"button",onClick:s,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),(0,F.jsx)("button",{type:"button",onClick:()=>a(!1),className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})]})})}var Ue=yt;var z=I(require("react"),1),W=I(require("@radix-ui/react-popover"),1),u=require("react/jsx-runtime");function ft({field:e,formValues:r,handleChange:c,handleBlur:g}){let[d,a]=(0,z.useState)(!1),[l,p]=(0,z.useState)("12"),[s,b]=(0,z.useState)("00"),[v,$]=(0,z.useState)("PM"),C=r[e.name]||"";z.default.useEffect(()=>{if(C){let y=C.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);y&&(p(y[1].padStart(2,"0")),b(y[2]),$(y[3].toUpperCase()))}},[C]);let B=()=>{let y=`${l}:${s} ${v}`;c(e.name,y),a(!1)},P=()=>{c(e.name,""),p("12"),b("00"),$("PM")},O=()=>{let y=parseInt(l);p((y%12+1).toString().padStart(2,"0"))},V=()=>{let y=parseInt(l);p((y===1?12:y-1).toString().padStart(2,"0"))},D=()=>{let y=parseInt(s);b(((y+5)%60).toString().padStart(2,"0"))},U=()=>{let y=parseInt(s);b((y===0?55:y-5).toString().padStart(2,"0"))};return(0,u.jsx)("div",{children:(0,u.jsxs)(W.Root,{open:d,onOpenChange:a,children:[(0,u.jsx)(W.Trigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":d,onClick:()=>a(!0),className:`
33
+ `,children:[l?(0,$.jsx)("span",{children:l.toLocaleDateString()}):(0,$.jsx)("span",{className:"text-muted-foreground",children:e.placeholder||"Select date"}),(0,$.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-chevron-down opacity-70",children:(0,$.jsx)("path",{d:"m6 9 6 6 6-6"})})]})}),(0,$.jsxs)(_.Content,{align:"start",sideOffset:2,className:"z-50 rounded-md border border-gray-200 bg-white p-0 shadow-md w-auto",children:[(0,$.jsx)(Be.DayPicker,{mode:"single",selected:l,onSelect:i,showOutsideDays:!0,className:"rounded-md bg-white p-3 text-xs"}),(0,$.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 p-3",children:[(0,$.jsx)("button",{type:"button",onClick:s,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),(0,$.jsx)("button",{type:"button",onClick:()=>d(!1),className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})]})})}var De=ut;var A=E(require("react"),1),W=E(require("@radix-ui/react-popover"),1),p=require("react/jsx-runtime");function pt({field:e,formValues:a,handleChange:r,handleBlur:h}){let[u,d]=(0,A.useState)(!1),[l,i]=(0,A.useState)("12"),[s,b]=(0,A.useState)("00"),[f,k]=(0,A.useState)("PM"),C=a[e.name]||"";A.default.useEffect(()=>{if(C){let y=C.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);y&&(i(y[1].padStart(2,"0")),b(y[2]),k(y[3].toUpperCase()))}},[C]);let B=()=>{let y=`${l}:${s} ${f}`;r(e.name,y),d(!1)},R=()=>{r(e.name,""),i("12"),b("00"),k("PM")},D=()=>{let y=parseInt(l);i((y%12+1).toString().padStart(2,"0"))},q=()=>{let y=parseInt(l);i((y===1?12:y-1).toString().padStart(2,"0"))},U=()=>{let y=parseInt(s);b(((y+5)%60).toString().padStart(2,"0"))},z=()=>{let y=parseInt(s);b((y===0?55:y-5).toString().padStart(2,"0"))};return(0,p.jsx)("div",{children:(0,p.jsxs)(W.Root,{open:u,onOpenChange:d,children:[(0,p.jsx)(W.Trigger,{asChild:!0,children:(0,p.jsxs)("button",{type:"button",id:e.name,"aria-haspopup":"dialog","aria-expanded":u,onClick:()=>d(!0),className:`
34
34
  inline-flex items-center justify-between gap-2
35
35
  w-full h-9 rounded-md border border-gray-300 bg-white
36
36
  px-3 py-2 text-sm font-normal shadow-sm
37
37
  hover:bg-gray-50 hover:text-gray-900
38
38
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2
39
39
  disabled:cursor-not-allowed disabled:opacity-50
40
- `,children:[C?(0,u.jsx)("span",{children:C}):(0,u.jsx)("span",{className:"text-gray-400",children:e.placeholder||"Select time"}),(0,u.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-clock opacity-70",children:[(0,u.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,u.jsx)("polyline",{points:"12 6 12 12 16 14"})]})]})}),(0,u.jsx)(W.Content,{align:"start",sideOffset:2,className:"z-50 rounded-md border border-gray-200 bg-white p-4 shadow-md w-64",children:(0,u.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,u.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,u.jsxs)("div",{className:"flex flex-col items-center",children:[(0,u.jsx)("button",{type:"button",onClick:O,className:"p-1 hover:bg-gray-100 rounded",children:(0,u.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,u.jsx)("polyline",{points:"18 15 12 9 6 15"})})}),(0,u.jsx)("input",{type:"text",value:l,onChange:y=>{let L=y.target.value.replace(/\D/g,"");(L===""||parseInt(L)>=1&&parseInt(L)<=12)&&p(L.padStart(2,"0"))},className:"w-14 text-center text-2xl font-semibold border-0 focus:outline-none focus:ring-2 focus:ring-blue-500 rounded py-2",maxLength:"2"}),(0,u.jsx)("button",{type:"button",onClick:V,className:"p-1 hover:bg-gray-100 rounded",children:(0,u.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,u.jsx)("polyline",{points:"6 9 12 15 18 9"})})})]}),(0,u.jsx)("span",{className:"text-2xl font-semibold",children:":"}),(0,u.jsxs)("div",{className:"flex flex-col items-center",children:[(0,u.jsx)("button",{type:"button",onClick:D,className:"p-1 hover:bg-gray-100 rounded",children:(0,u.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,u.jsx)("polyline",{points:"18 15 12 9 6 15"})})}),(0,u.jsx)("input",{type:"text",value:s,onChange:y=>{let L=y.target.value.replace(/\D/g,"");(L===""||parseInt(L)>=0&&parseInt(L)<=59)&&b(L.padStart(2,"0"))},className:"w-14 text-center text-2xl font-semibold border-0 focus:outline-none focus:ring-2 focus:ring-blue-500 rounded py-2",maxLength:"2"}),(0,u.jsx)("button",{type:"button",onClick:U,className:"p-1 hover:bg-gray-100 rounded",children:(0,u.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,u.jsx)("polyline",{points:"6 9 12 15 18 9"})})})]}),(0,u.jsxs)("div",{className:"flex flex-col gap-1 ml-2",children:[(0,u.jsx)("button",{type:"button",onClick:()=>$("AM"),className:`
40
+ `,children:[C?(0,p.jsx)("span",{children:C}):(0,p.jsx)("span",{className:"text-gray-400",children:e.placeholder||"Select time"}),(0,p.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-clock opacity-70",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,p.jsx)("polyline",{points:"12 6 12 12 16 14"})]})]})}),(0,p.jsx)(W.Content,{align:"start",sideOffset:2,className:"z-50 rounded-md border border-gray-200 bg-white p-4 shadow-md w-64",children:(0,p.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,p.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,p.jsxs)("div",{className:"flex flex-col items-center",children:[(0,p.jsx)("button",{type:"button",onClick:D,className:"p-1 hover:bg-gray-100 rounded",children:(0,p.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,p.jsx)("polyline",{points:"18 15 12 9 6 15"})})}),(0,p.jsx)("input",{type:"text",value:l,onChange:y=>{let L=y.target.value.replace(/\D/g,"");(L===""||parseInt(L)>=1&&parseInt(L)<=12)&&i(L.padStart(2,"0"))},className:"w-14 text-center text-2xl font-semibold border-0 focus:outline-none focus:ring-2 focus:ring-blue-500 rounded py-2",maxLength:"2"}),(0,p.jsx)("button",{type:"button",onClick:q,className:"p-1 hover:bg-gray-100 rounded",children:(0,p.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,p.jsx)("polyline",{points:"6 9 12 15 18 9"})})})]}),(0,p.jsx)("span",{className:"text-2xl font-semibold",children:":"}),(0,p.jsxs)("div",{className:"flex flex-col items-center",children:[(0,p.jsx)("button",{type:"button",onClick:U,className:"p-1 hover:bg-gray-100 rounded",children:(0,p.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,p.jsx)("polyline",{points:"18 15 12 9 6 15"})})}),(0,p.jsx)("input",{type:"text",value:s,onChange:y=>{let L=y.target.value.replace(/\D/g,"");(L===""||parseInt(L)>=0&&parseInt(L)<=59)&&b(L.padStart(2,"0"))},className:"w-14 text-center text-2xl font-semibold border-0 focus:outline-none focus:ring-2 focus:ring-blue-500 rounded py-2",maxLength:"2"}),(0,p.jsx)("button",{type:"button",onClick:z,className:"p-1 hover:bg-gray-100 rounded",children:(0,p.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,p.jsx)("polyline",{points:"6 9 12 15 18 9"})})})]}),(0,p.jsxs)("div",{className:"flex flex-col gap-1 ml-2",children:[(0,p.jsx)("button",{type:"button",onClick:()=>k("AM"),className:`
41
41
  px-3 py-1 text-sm font-medium rounded
42
- ${v==="AM"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}
43
- `,children:"AM"}),(0,u.jsx)("button",{type:"button",onClick:()=>$("PM"),className:`
42
+ ${f==="AM"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}
43
+ `,children:"AM"}),(0,p.jsx)("button",{type:"button",onClick:()=>k("PM"),className:`
44
44
  px-3 py-1 text-sm font-medium rounded
45
- ${v==="PM"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}
46
- `,children:"PM"})]})]}),(0,u.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 pt-3",children:[(0,u.jsx)("button",{type:"button",onClick:P,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),(0,u.jsx)("button",{type:"button",onClick:B,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})})]})})}var _e=ft;var po=require("react");var ae=require("@heroicons/react/20/solid"),He=require("@heroicons/react/20/solid"),je=require("@heroicons/react/24/outline");var N=require("react/jsx-runtime");function Ge({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-red-50 border border-red-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(ae.XCircleIcon,{"aria-hidden":"true",className:"size-5 text-red-500 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-red-900",children:e})]})})}function We({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-amber-50 border border-amber-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(je.ExclamationCircleIcon,{"aria-hidden":"true",className:"size-5 text-amber-600 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-amber-900",children:e})]})})}function Ve({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-green-50 border border-green-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(He.CheckCircleIcon,{"aria-hidden":"true",className:"size-5 text-green-600 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-green-900",children:e})]})})}function Ye({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-blue-50 border border-blue-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(ae.InformationCircleIcon,{"aria-hidden":"true",className:"size-5 text-blue-600 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-blue-900",children:e})]})})}var X=require("react/jsx-runtime");function vt({field:e}){let{variant:r="info",message:c,content:g}=e,d=c||g||"";switch(r.toLowerCase()){case"error":case"danger":return(0,X.jsx)(Ge,{message:d});case"success":return(0,X.jsx)(Ve,{message:d});case"warning":case"warn":return(0,X.jsx)(We,{message:d});case"info":case"information":default:return(0,X.jsx)(Ye,{message:d})}}var qe=vt;var Xe=require("@radix-ui/react-label"),R=require("react/jsx-runtime"),wt=({formDefinition:e,sendFormValues:r,children:c,defaultValues:g={},onFieldsChange:d=()=>{}})=>{let[a,l]=(0,E.useState)({...g}),[p,s]=(0,E.useState)({}),[b,v]=(0,E.useState)({}),[$,C]=(0,E.useState)({}),B=["hidden","html","linebreak","header","alert"],P=(0,E.useMemo)(()=>({file:de,multifile:de,dateRange:Me,date:Ue,dayTimePicker:Be,time:_e,hidden:xe,multiselect:we,select:Ce,email:Se,litertext:$e,checkbox:Pe,radiogroup:Te,input:le,textarea:Ee,header:Ae,alert:qe,linebreak:De}),[]),O={},V=async(t,o=null)=>{try{let n=await he(`/${t.optionsUrl}`);console.log(n);let m=[];t.type==="select"?m=[{value:"",label:`Select ${t.label.toLowerCase()}`},...n.data]:m=[...n.data.map(k=>({value:k.value,label:k.label}))],e.fields.forEach(k=>{k.name===t.name&&(k.options=m)})}catch(n){console.error(`Failed to load options for ${t.name}:`,n)}finally{}};(0,E.useEffect)(()=>{if(e!=null&&e.fields&&e.fields.length>0){if(!e.fields.some(n=>n.value))return;e.fields.forEach(n=>{n.optionsUrl&&V(n)});let o={};e.fields.forEach(n=>{o[n.name]=g[n.name]??n.value??(n.type==="multiselect"?[]:"")}),l(o)}},[e]);let D=(t,o,n)=>{if(t.disabled&&t.disabled(n))return null;if(t.required){if(!o)return`${t.label} is required`;if(Array.isArray(o)&&o.length===0)return`Please select at least one ${t.label.toLowerCase()}`}if(t.validate){let m=t.validate(o,n);if(m)return m}if(t.type==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return"Please enter a valid email address";if(t.type==="number"){if(t.min!==void 0&&o<t.min)return`${t.label} must be at least ${t.min}`;if(t.max!==void 0&&o>t.max)return`${t.label} must be no more than ${t.max}`}return t.type==="date"&&!(0,me.default)(o).isValid()?`${t.label} must be a valid date`:t.maxLength&&o&&o.length>t.maxLength?`${t.label} must not exceed ${t.maxLength} characters`:null},U=(t,o)=>{let n=e.fields.find(f=>f.name===t);if(!n)return;let m={...a};console.log(o),n.type==="multiselect"?m[t]=Array.isArray(o)?o:Array.from(o.target.selectedOptions).map(f=>f.value):n.type==="dateRange"?(console.log(o),m[t]=[{startDate:o[0].from,endDate:o[0].to,key:"selection"}]):n.type==="dayTimePicker"?m[t]=o?(0,me.default)(o).format("YYYY-MM-DD HH:mm:ss"):"":m[t]=o,n.type==="select"&&e.fields.forEach(f=>{f.showIf&&!f.showIf(m)&&(m[f.name]=f.type==="multiselect"?[]:"")}),e.fields.forEach(f=>{f.disabled&&f.disabled(m)&&(m[f.name]=f.type==="multiselect"?[]:"")}),l(m);let k={};e.fields.forEach(f=>{if(!f.showIf||f.showIf(m)){let Y=D(f,m[f.name],m);Y&&(k[f.name]=Y)}}),s(k)},y=t=>{v({...b,[t]:!0})},L=t=>{t.preventDefault();let o={};e.fields.forEach(m=>{o[m.name]=!0}),v(o);let n={};e.fields.forEach(m=>{if((!m.showIf||m.showIf(a))&&(!m.disabled||!m.disabled(a))){let k=D(m,a[m.name],a);k&&(n[m.name]=k)}}),s(n),Object.keys(n).length===0?r(a):Ke.toast.error("Please correct the errors in the form")};(0,E.useEffect)(()=>{d(a)},[a,d]);let J={green:"border-green-500 bg-green-50",blue:"border-blue-500 bg-blue-50",red:"border-red-500 bg-red-50",yellow:"border-yellow-500 bg-yellow-50",purple:"border-purple-500 bg-purple-50",indigo:"border-indigo-500 bg-indigo-50",gray:"border-gray-500 bg-gray-50",pink:"border-pink-500 bg-pink-50",orange:"border-orange-500 bg-orange-50"};function ne(t,o,n){if(B.includes(o.type))return(0,R.jsx)("div",{className:o.fieldClass||"col-span-8",children:t});let m=o.containerStyle,k=o.color||"blue",f=m==="card"?`rounded-lg border text-card-foreground shadow-sm p-4 ${o.containerClassName||J[k]||J.blue}`:"",Y=(0,R.jsxs)(R.Fragment,{children:[o.label&&(0,R.jsxs)(Xe.Label,{htmlFor:o.name,className:"block text-sm font-medium mb-1",children:[o.label,o.required&&(0,R.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,R.jsx)("div",{children:t}),n&&(0,R.jsx)("p",{className:"mt-1 text-sm text-red-500",children:n})]});return(0,R.jsx)("div",{className:`mb-4 ${o.fieldClass||"col-span-8"}`,children:m==="card"?(0,R.jsx)("div",{className:f,children:Y}):Y})}let i=t=>{if(t.showIf&&!t.showIf(a))return null;let o=P[t.type]||le;a[t.name]===void 0&&(a[t.name]=t.value!==void 0?t.value:t.type==="multiselect"?[]:"");let n=b[t.name]&&p[t.name]?p[t.name]:null;return ne((0,R.jsx)(o,{field:t,formValues:a,handleChange:U,handleBlur:()=>y(t.name),setCharCounts:C,charCount:$[t.name]||0}),t)};return(0,R.jsxs)("form",{onSubmit:L,className:"grid grid-cols-12 gap-x-4 mx-auto",children:[e?e.fields.map(i):(0,R.jsx)("div",{children:"Loading..."}),c]})},se=wt;var Nt=se;0&&(module.exports={DynamicForm,DynamicFormComponent,MyButton,MyButtonComponent});
45
+ ${f==="PM"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}
46
+ `,children:"PM"})]})]}),(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-gray-200 pt-3",children:[(0,p.jsx)("button",{type:"button",onClick:R,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-300 bg-white hover:bg-gray-100 hover:text-gray-900 h-9 px-4 py-2",children:"Clear"}),(0,p.jsx)("button",{type:"button",onClick:B,className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-blue-600 text-white hover:bg-blue-700 h-9 px-4 py-2",children:"Done"})]})]})})]})})}var ze=pt;var to=require("react");var te=require("@heroicons/react/20/solid"),Oe=require("@heroicons/react/20/solid"),Te=require("@heroicons/react/24/outline");var N=require("react/jsx-runtime");function Ae({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-red-50 border border-red-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(te.XCircleIcon,{"aria-hidden":"true",className:"size-5 text-red-500 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-red-900",children:e})]})})}function Ue({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-amber-50 border border-amber-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(Te.ExclamationCircleIcon,{"aria-hidden":"true",className:"size-5 text-amber-600 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-amber-900",children:e})]})})}function He({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-green-50 border border-green-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(Oe.CheckCircleIcon,{"aria-hidden":"true",className:"size-5 text-green-600 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-green-900",children:e})]})})}function je({message:e}){return(0,N.jsx)("div",{className:"rounded-lg bg-blue-50 border border-blue-100 p-4 shadow-sm",children:(0,N.jsxs)("div",{className:"flex items-center gap-3",children:[(0,N.jsx)(te.InformationCircleIcon,{"aria-hidden":"true",className:"size-5 text-blue-600 shrink-0"}),(0,N.jsx)("span",{className:"text-sm font-medium text-blue-900",children:e})]})})}var X=require("react/jsx-runtime");function bt({field:e}){let{variant:a="info",message:r,content:h}=e,u=r||h||"";switch(a.toLowerCase()){case"error":case"danger":return(0,X.jsx)(Ae,{message:u});case"success":return(0,X.jsx)(He,{message:u});case"warning":case"warn":return(0,X.jsx)(Ue,{message:u});case"info":case"information":default:return(0,X.jsx)(je,{message:u})}}var Ge=bt;var _e=require("@radix-ui/react-label"),P=require("react/jsx-runtime"),gt=({apiClient:e,api_URL:a,formDefinition:r,sendFormValues:h,children:u,defaultValues:d={},onFieldsChange:l=()=>{}})=>{let[i,s]=(0,M.useState)({...d}),[b,f]=(0,M.useState)({}),[k,C]=(0,M.useState)({}),[B,R]=(0,M.useState)({}),D=["hidden","html","linebreak","header","alert"],q=(0,M.useMemo)(()=>({file:ie,multifile:ie,dateRange:Re,date:De,dayTimePicker:Pe,time:ze,hidden:ue,multiselect:he,select:ve,email:fe,litertext:ke,checkbox:Ce,radiogroup:Ie,input:ne,textarea:$e,header:Me,alert:Ge,linebreak:Le}),[]),U=async(t,o=null)=>{if(!e){let n=`apiClient prop is required when using fields with optionsUrl. Field "${t.name}" requires optionsUrl but no apiClient was provided.`;console.error(n),ce.toast.error(n);return}try{let n=await e(`/${t.optionsUrl}`);console.log(n);let m=[];t.type==="select"?m=[{value:"",label:`Select ${t.label.toLowerCase()}`},...n.data]:m=[...n.data.map(S=>({value:S.value,label:S.label}))],r.fields.forEach(S=>{S.name===t.name&&(S.options=m)})}catch(n){console.error(`Failed to load options for ${t.name}:`,n)}finally{}};(0,M.useEffect)(()=>{if(r!=null&&r.fields&&r.fields.length>0){if(!r.fields.some(n=>n.value))return;r.fields.forEach(n=>{n.optionsUrl&&U(n)});let o={};r.fields.forEach(n=>{o[n.name]=d[n.name]??n.value??(n.type==="multiselect"?[]:"")}),s(o)}},[r]);let z=(t,o,n)=>{if(t.disabled&&t.disabled(n))return null;if(t.required){if(!o)return`${t.label} is required`;if(Array.isArray(o)&&o.length===0)return`Please select at least one ${t.label.toLowerCase()}`}if(t.validate){let m=t.validate(o,n);if(m)return m}if(t.type==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return"Please enter a valid email address";if(t.type==="number"){if(t.min!==void 0&&o<t.min)return`${t.label} must be at least ${t.min}`;if(t.max!==void 0&&o>t.max)return`${t.label} must be no more than ${t.max}`}return t.type==="date"&&!(0,de.default)(o).isValid()?`${t.label} must be a valid date`:t.maxLength&&o&&o.length>t.maxLength?`${t.label} must not exceed ${t.maxLength} characters`:null},y=(t,o)=>{let n=r.fields.find(v=>v.name===t);if(!n)return;let m={...i};console.log(o),n.type==="multiselect"?m[t]=Array.isArray(o)?o:Array.from(o.target.selectedOptions).map(v=>v.value):n.type==="dateRange"?(console.log(o),m[t]=[{startDate:o[0].from,endDate:o[0].to,key:"selection"}]):n.type==="dayTimePicker"?m[t]=o?(0,de.default)(o).format("YYYY-MM-DD HH:mm:ss"):"":m[t]=o,n.type==="select"&&r.fields.forEach(v=>{v.showIf&&!v.showIf(m)&&(m[v.name]=v.type==="multiselect"?[]:"")}),r.fields.forEach(v=>{v.disabled&&v.disabled(m)&&(m[v.name]=v.type==="multiselect"?[]:"")}),s(m);let S={};r.fields.forEach(v=>{if(!v.showIf||v.showIf(m)){let V=z(v,m[v.name],m);V&&(S[v.name]=V)}}),f(S)},L=t=>{C({...k,[t]:!0})},re=t=>{t.preventDefault();let o={};r.fields.forEach(m=>{o[m.name]=!0}),C(o);let n={};r.fields.forEach(m=>{if((!m.showIf||m.showIf(i))&&(!m.disabled||!m.disabled(i))){let S=z(m,i[m.name],i);S&&(n[m.name]=S)}}),f(n),Object.keys(n).length===0?h(i):ce.toast.error("Please correct the errors in the form")};(0,M.useEffect)(()=>{l(i)},[i,l]);let J={green:"border-green-500 bg-green-50",blue:"border-blue-500 bg-blue-50",red:"border-red-500 bg-red-50",yellow:"border-yellow-500 bg-yellow-50",purple:"border-purple-500 bg-purple-50",indigo:"border-indigo-500 bg-indigo-50",gray:"border-gray-500 bg-gray-50",pink:"border-pink-500 bg-pink-50",orange:"border-orange-500 bg-orange-50"};function ae(t,o,n){if(D.includes(o.type))return(0,P.jsx)("div",{className:o.fieldClass||"col-span-8",children:t});let m=o.containerStyle,S=o.color||"blue",v=m==="card"?`rounded-lg border text-card-foreground shadow-sm p-4 ${o.containerClassName||J[S]||J.blue}`:"",V=(0,P.jsxs)(P.Fragment,{children:[o.label&&(0,P.jsxs)(_e.Label,{htmlFor:o.name,className:"block text-sm font-medium mb-1",children:[o.label,o.required&&(0,P.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,P.jsx)("div",{children:t}),n&&(0,P.jsx)("p",{className:"mt-1 text-sm text-red-500",children:n})]});return(0,P.jsx)("div",{className:`mb-4 ${o.fieldClass||"col-span-8"}`,children:m==="card"?(0,P.jsx)("div",{className:v,children:V}):V})}let c=t=>{if(t.showIf&&!t.showIf(i))return null;let o=q[t.type]||ne;i[t.name]===void 0&&(i[t.name]=t.value!==void 0?t.value:t.type==="multiselect"?[]:"");let n=k[t.name]&&b[t.name]?b[t.name]:null;return ae((0,P.jsx)(o,{field:t,formValues:i,handleChange:y,handleBlur:()=>L(t.name),setCharCounts:R,charCount:B[t.name]||0,api_URL:a}),t)};return(0,P.jsxs)("form",{onSubmit:re,className:"grid grid-cols-12 gap-x-4 mx-auto",children:[r?r.fields.map(c):(0,P.jsx)("div",{children:"Loading..."}),u]})},oe=gt;var ht=oe;0&&(module.exports={DynamicForm,DynamicFormComponent});
47
47
  //# sourceMappingURL=index.cjs.map