@ram_28/kf-ai-sdk 1.0.3 → 1.0.5

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,7 +1,7 @@
1
- "use strict";var ca=Object.defineProperty;var ua=(e,r,t)=>r in e?ca(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var ze=(e,r,t)=>ua(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),Ce=require("@tanstack/react-query"),da=require("react-hook-form");function fa(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const Ie=fa(l);let He={baseUrl:"",headers:{"Content-Type":"application/json"}};function ma(e){He.baseUrl=e}function pa(e){He.headers={...He.headers,...e}}function sr(){return{...He.headers}}function gr(){return He.baseUrl||""}function fr(e){if(e==null)return e;if(Array.isArray(e))return e.map(r=>fr(r));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const r={};for(const[t,a]of Object.entries(e))r[t]=fr(a);return r}return e}function ve(e){const r=He.baseUrl,t=He.headers;return{async get(a){const n=await fetch(`${r}/api/app/${e}/${a}/read`,{method:"GET",headers:t});if(!n.ok)throw new Error(`Failed to get ${e} ${a}: ${n.statusText}`);const s=await n.json();return fr(s.Data)},async create(a){const n=await fetch(`${r}/api/app/${e}/create`,{method:"POST",headers:t,body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to create ${e}: ${n.statusText}`);return n.json()},async update(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/update`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to update ${e} ${a}: ${s.statusText}`);return s.json()},async delete(a){const n=await fetch(`${r}/api/app/${e}/${a}/delete`,{method:"DELETE",headers:t});if(!n.ok)throw new Error(`Failed to delete ${e} ${a}: ${n.statusText}`);return n.json()},async list(a){const n={Type:"List",...a},s=await fetch(`${r}/api/app/${e}/list`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to list ${e}: ${s.statusText}`);return{Data:(await s.json()).Data.map(m=>fr(m))}},async count(a){var u,d;const n={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(a==null?void 0:a.Filter)&&{Filter:a.Filter}},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to count ${e}: ${s.statusText}`);return{Count:((d=(u=(await s.json()).Data)==null?void 0:u[0])==null?void 0:d.count__id)??0}},async draft(a){const n=await fetch(`${r}/api/app/${e}/draft`,{method:"POST",headers:t,body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to create draft for ${e}: ${n.statusText}`);return n.json()},async draftUpdate(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/draft`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to update draft for ${e} ${a}: ${s.statusText}`);return s.json()},async draftPatch(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/draft`,{method:"PATCH",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to patch draft for ${e} ${a}: ${s.statusText}`);return s.json()},async metric(a){const n={Type:"Metric",...a},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to get metrics for ${e}: ${s.statusText}`);return s.json()},async pivot(a){const n={Type:"Pivot",...a},s=await fetch(`${r}/api/app/${e}/pivot`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to get pivot data for ${e}: ${s.statusText}`);return s.json()},async fields(){const a=await fetch(`${r}/api/app/${e}/fields`,{method:"GET",headers:t});if(!a.ok)throw new Error(`Failed to get fields for ${e}: ${a.statusText}`);return a.json()},async fetchField(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/field/${n}/fetch`,{method:"GET",headers:t});if(!s.ok)throw new Error(`Failed to fetch field ${n} for ${e}: ${s.statusText}`);return(await s.json()).Data}}}function ga(e){return{$__dt__:e.getTime()/1e3}}function ha(e){return new Date(e.$__dt__*1e3)}function ba(e){return{$__d__:e.toISOString().split("T")[0]}}function ya(e){return new Date(e.$__d__)}async function Xr(e){try{const r=gr(),t=sr(),a=await fetch(`${r}/api/app/meta/bdo/${e}`,{method:"GET",headers:t});if(!a.ok)throw new Error(`Failed to fetch schema for ${e}: ${a.statusText}`);const n=await a.json();if(!n||typeof n!="object")throw new Error(`Invalid BDO schema response for ${e}`);return n}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load BDO schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function wa(e){try{const r=gr(),t=sr(),a=e!=null&&e.Filter||e!=null&&e.Sort?"POST":"GET",n=await fetch(`${r}/api/app/metadata/list`,{method:a,headers:t,...a==="POST"&&e&&{body:JSON.stringify(e)}});if(!n.ok)throw new Error(`Failed to list metadata: ${n.statusText}`);return await n.json()}catch(r){throw console.error("Metadata list error:",r),new Error(`Failed to list metadata: ${r instanceof Error?r.message:"Unknown error"}`)}}function Zr(e){return typeof e=="string"?e:typeof e=="object"&&e!==null?new Intl.NumberFormat("en-US",{style:"currency",currency:e.currency}).format(e.value):"Invalid Currency"}function Ca(e){const r=e.match(/^(?:([A-Z]{3})\s+(\d+\.?\d*))|(?:(\d+\.?\d*)\s+([A-Z]{3}))$/);if(r){const t=r[1]||r[4],a=parseFloat(r[2]||r[3]);if(!isNaN(a))return{value:a,currency:t}}return null}function et(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const t={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",t).format(e)}function rt(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const t={short:{dateStyle:"short",timeStyle:"short"},medium:{dateStyle:"medium",timeStyle:"medium"},long:{dateStyle:"long",timeStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",t).format(e)}function tt(e,r=2){return typeof e!="number"||isNaN(e)?"Invalid Number":e.toFixed(r)}function at(e,r=2){try{return JSON.stringify(e,null,r)}catch{return"Invalid JSON"}}function nt(e,r,t=", "){return Array.isArray(e)?r?e.map(r).join(t):e.map(a=>String(a)).join(t):"Invalid Array"}function ot(e,r){return typeof e!="boolean"?"Invalid Boolean":e?(r==null?void 0:r.trueLabel)||"Yes":(r==null?void 0:r.falseLabel)||"No"}function va(e,r=50){return typeof e!="string"?"Invalid String":e.length<=r?e:e.slice(0,r-3)+"..."}function st(e,r){if(typeof e!="string")return"Invalid Text";const t=e.split(`
1
+ "use strict";var oa=Object.defineProperty;var sa=(e,r,t)=>r in e?oa(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var Ke=(e,r,t)=>sa(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),Ce=require("@tanstack/react-query"),ia=require("react-hook-form");function la(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const $e=la(l);let He={baseUrl:"",headers:{"Content-Type":"application/json"}};function ca(e){He.baseUrl=e}function ua(e){He.headers={...He.headers,...e}}function sr(){return{...He.headers}}function pr(){return He.baseUrl||""}function dr(e){if(e==null)return e;if(Array.isArray(e))return e.map(r=>dr(r));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const r={};for(const[t,a]of Object.entries(e))r[t]=dr(a);return r}return e}function ve(e){const r=He.baseUrl,t=He.headers;return{async get(a){const n=await fetch(`${r}/api/app/${e}/${a}/read`,{method:"GET",headers:t});if(!n.ok)throw new Error(`Failed to get ${e} ${a}: ${n.statusText}`);const s=await n.json();return dr(s.Data)},async create(a){const n=await fetch(`${r}/api/app/${e}/create`,{method:"POST",headers:t,body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to create ${e}: ${n.statusText}`);return n.json()},async update(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/update`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to update ${e} ${a}: ${s.statusText}`);return s.json()},async delete(a){const n=await fetch(`${r}/api/app/${e}/${a}/delete`,{method:"DELETE",headers:t});if(!n.ok)throw new Error(`Failed to delete ${e} ${a}: ${n.statusText}`);return n.json()},async list(a){const n={Type:"List",...a},s=await fetch(`${r}/api/app/${e}/list`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to list ${e}: ${s.statusText}`);return{Data:(await s.json()).Data.map(m=>dr(m))}},async count(a){var u,d;const n={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(a==null?void 0:a.Filter)&&{Filter:a.Filter}},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to count ${e}: ${s.statusText}`);return{Count:((d=(u=(await s.json()).Data)==null?void 0:u[0])==null?void 0:d.count__id)??0}},async draft(a){const n=await fetch(`${r}/api/app/${e}/draft`,{method:"POST",headers:t,body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to create draft for ${e}: ${n.statusText}`);return n.json()},async draftUpdate(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/draft`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to update draft for ${e} ${a}: ${s.statusText}`);return s.json()},async draftPatch(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/draft`,{method:"PATCH",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to patch draft for ${e} ${a}: ${s.statusText}`);return s.json()},async metric(a){const n={Type:"Metric",...a},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to get metrics for ${e}: ${s.statusText}`);return s.json()},async pivot(a){const n={Type:"Pivot",...a},s=await fetch(`${r}/api/app/${e}/pivot`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to get pivot data for ${e}: ${s.statusText}`);return s.json()},async fields(){const a=await fetch(`${r}/api/app/${e}/fields`,{method:"GET",headers:t});if(!a.ok)throw new Error(`Failed to get fields for ${e}: ${a.statusText}`);return a.json()},async fetchField(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/field/${n}/fetch`,{method:"GET",headers:t});if(!s.ok)throw new Error(`Failed to fetch field ${n} for ${e}: ${s.statusText}`);return(await s.json()).Data}}}function da(e){return{$__dt__:e.getTime()/1e3}}function fa(e){return new Date(e.$__dt__*1e3)}function ma(e){return{$__d__:e.toISOString().split("T")[0]}}function pa(e){return new Date(e.$__d__)}async function Xr(e){try{const r=pr(),t=sr(),a=await fetch(`${r}/api/app/meta/bdo/${e}`,{method:"GET",headers:t});if(!a.ok)throw new Error(`Failed to fetch schema for ${e}: ${a.statusText}`);const n=await a.json();if(!n||typeof n!="object")throw new Error(`Invalid BDO schema response for ${e}`);return n}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load BDO schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function ga(e){try{const r=pr(),t=sr(),a=e!=null&&e.Filter||e!=null&&e.Sort?"POST":"GET",n=await fetch(`${r}/api/app/metadata/list`,{method:a,headers:t,...a==="POST"&&e&&{body:JSON.stringify(e)}});if(!n.ok)throw new Error(`Failed to list metadata: ${n.statusText}`);return await n.json()}catch(r){throw console.error("Metadata list error:",r),new Error(`Failed to list metadata: ${r instanceof Error?r.message:"Unknown error"}`)}}function Zr(e){return typeof e=="string"?e:typeof e=="object"&&e!==null?new Intl.NumberFormat("en-US",{style:"currency",currency:e.currency}).format(e.value):"Invalid Currency"}function ha(e){const r=e.match(/^(?:([A-Z]{3})\s+(\d+\.?\d*))|(?:(\d+\.?\d*)\s+([A-Z]{3}))$/);if(r){const t=r[1]||r[4],a=parseFloat(r[2]||r[3]);if(!isNaN(a))return{value:a,currency:t}}return null}function et(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const t={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",t).format(e)}function rt(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const t={short:{dateStyle:"short",timeStyle:"short"},medium:{dateStyle:"medium",timeStyle:"medium"},long:{dateStyle:"long",timeStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",t).format(e)}function tt(e,r=2){return typeof e!="number"||isNaN(e)?"Invalid Number":e.toFixed(r)}function at(e,r=2){try{return JSON.stringify(e,null,r)}catch{return"Invalid JSON"}}function nt(e,r,t=", "){return Array.isArray(e)?r?e.map(r).join(t):e.map(a=>String(a)).join(t):"Invalid Array"}function ot(e,r){return typeof e!="boolean"?"Invalid Boolean":e?(r==null?void 0:r.trueLabel)||"Yes":(r==null?void 0:r.falseLabel)||"No"}function ba(e,r=50){return typeof e!="string"?"Invalid String":e.length<=r?e:e.slice(0,r-3)+"..."}function st(e,r){if(typeof e!="string")return"Invalid Text";const t=e.split(`
2
2
  `);return r&&t.length>r?t.slice(0,r).join(`
3
3
  `)+`
4
- ...`:e}function Ea(e,r){if(e==null)return"";switch(r||(typeof e=="boolean"?r="boolean":typeof e=="number"?r="number":e instanceof Date?r="datetime":Array.isArray(e)?r="array":typeof e=="object"?r="json":r="string"),r){case"id":case"string":return String(e);case"textarea":return st(String(e));case"number":return tt(e);case"boolean":return ot(e);case"date":return et(e);case"datetime":return rt(e);case"currency":return Zr(e);case"json":return at(e);case"array":return nt(e);default:return String(e)}}function it(e){var r,t,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(r=0;r<n;r++)e[r]&&(t=it(e[r]))&&(a&&(a+=" "),a+=t)}else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function Sa(){for(var e,r,t=0,a="",n=arguments.length;t<n;t++)(e=arguments[t])&&(r=it(e))&&(a&&(a+=" "),a+=r);return a}const ka=(e,r)=>{const t=new Array(e.length+r.length);for(let a=0;a<e.length;a++)t[a]=e[a];for(let a=0;a<r.length;a++)t[e.length+a]=r[a];return t},xa=(e,r)=>({classGroupId:e,validator:r}),lt=(e=new Map,r=null,t)=>({nextPart:e,validators:r,classGroupId:t}),mr="-",Ir=[],Oa="arbitrary..",Na=e=>{const r=Ta(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Ra(i);const m=i.split(mr),u=m[0]===""&&m.length>1?1:0;return ct(m,u,r)},getConflictingClassGroupIds:(i,m)=>{if(m){const u=a[i],d=t[i];return u?d?ka(d,u):u:d||Ir}return t[i]||Ir}}},ct=(e,r,t)=>{if(e.length-r===0)return t.classGroupId;const n=e[r],s=t.nextPart.get(n);if(s){const d=ct(e,r+1,s);if(d)return d}const i=t.validators;if(i===null)return;const m=r===0?e.join(mr):e.slice(r).join(mr),u=i.length;for(let d=0;d<u;d++){const y=i[d];if(y.validator(m))return y.classGroupId}},Ra=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),t=r.indexOf(":"),a=r.slice(0,t);return a?Oa+a:void 0})(),Ta=e=>{const{theme:r,classGroups:t}=e;return Aa(t,r)},Aa=(e,r)=>{const t=lt();for(const a in e){const n=e[a];Rr(n,t,a,r)}return t},Rr=(e,r,t,a)=>{const n=e.length;for(let s=0;s<n;s++){const i=e[s];Fa(i,r,t,a)}},Fa=(e,r,t,a)=>{if(typeof e=="string"){Da(e,r,t);return}if(typeof e=="function"){Va(e,r,t,a);return}_a(e,r,t,a)},Da=(e,r,t)=>{const a=e===""?r:ut(r,e);a.classGroupId=t},Va=(e,r,t,a)=>{if(Pa(e)){Rr(e(a),r,t,a);return}r.validators===null&&(r.validators=[]),r.validators.push(xa(t,e))},_a=(e,r,t,a)=>{const n=Object.entries(e),s=n.length;for(let i=0;i<s;i++){const[m,u]=n[i];Rr(u,ut(r,m),t,a)}},ut=(e,r)=>{let t=e;const a=r.split(mr),n=a.length;for(let s=0;s<n;s++){const i=a[s];let m=t.nextPart.get(i);m||(m=lt(),t.nextPart.set(i,m)),t=m}return t},Pa=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,$a=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=Object.create(null),a=Object.create(null);const n=(s,i)=>{t[s]=i,r++,r>e&&(r=0,a=t,t=Object.create(null))};return{get(s){let i=t[s];if(i!==void 0)return i;if((i=a[s])!==void 0)return n(s,i),i},set(s,i){s in t?t[s]=i:n(s,i)}}},kr="!",jr=":",Ia=[],Lr=(e,r,t,a,n)=>({modifiers:e,hasImportantModifier:r,baseClassName:t,maybePostfixModifierPosition:a,isExternal:n}),ja=e=>{const{prefix:r,experimentalParseClassName:t}=e;let a=n=>{const s=[];let i=0,m=0,u=0,d;const y=n.length;for(let w=0;w<y;w++){const H=n[w];if(i===0&&m===0){if(H===jr){s.push(n.slice(u,w)),u=w+1;continue}if(H==="/"){d=w;continue}}H==="["?i++:H==="]"?i--:H==="("?m++:H===")"&&m--}const D=s.length===0?n:n.slice(u);let _=D,F=!1;D.endsWith(kr)?(_=D.slice(0,-1),F=!0):D.startsWith(kr)&&(_=D.slice(1),F=!0);const G=d&&d>u?d-u:void 0;return Lr(s,F,_,G)};if(r){const n=r+jr,s=a;a=i=>i.startsWith(n)?s(i.slice(n.length)):Lr(Ia,!1,i,void 0,!0)}if(t){const n=a;a=s=>t({className:s,parseClassName:n})}return a},La=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((t,a)=>{r.set(t,1e6+a)}),t=>{const a=[];let n=[];for(let s=0;s<t.length;s++){const i=t[s],m=i[0]==="[",u=r.has(i);m||u?(n.length>0&&(n.sort(),a.push(...n),n=[]),a.push(i)):n.push(i)}return n.length>0&&(n.sort(),a.push(...n)),a}},qa=e=>({cache:$a(e.cacheSize),parseClassName:ja(e),sortModifiers:La(e),...Na(e)}),Ua=/\s+/,Ba=(e,r)=>{const{parseClassName:t,getClassGroupId:a,getConflictingClassGroupIds:n,sortModifiers:s}=r,i=[],m=e.trim().split(Ua);let u="";for(let d=m.length-1;d>=0;d-=1){const y=m[d],{isExternal:D,modifiers:_,hasImportantModifier:F,baseClassName:G,maybePostfixModifierPosition:w}=t(y);if(D){u=y+(u.length>0?" "+u:u);continue}let H=!!w,q=a(H?G.substring(0,w):G);if(!q){if(!H){u=y+(u.length>0?" "+u:u);continue}if(q=a(G),!q){u=y+(u.length>0?" "+u:u);continue}H=!1}const $=_.length===0?"":_.length===1?_[0]:s(_).join(":"),L=F?$+kr:$,te=L+q;if(i.indexOf(te)>-1)continue;i.push(te);const ae=n(q,H);for(let T=0;T<ae.length;++T){const g=ae[T];i.push(L+g)}u=y+(u.length>0?" "+u:u)}return u},Ma=(...e)=>{let r=0,t,a,n="";for(;r<e.length;)(t=e[r++])&&(a=dt(t))&&(n&&(n+=" "),n+=a);return n},dt=e=>{if(typeof e=="string")return e;let r,t="";for(let a=0;a<e.length;a++)e[a]&&(r=dt(e[a]))&&(t&&(t+=" "),t+=r);return t},Ka=(e,...r)=>{let t,a,n,s;const i=u=>{const d=r.reduce((y,D)=>D(y),e());return t=qa(d),a=t.cache.get,n=t.cache.set,s=m,m(u)},m=u=>{const d=a(u);if(d)return d;const y=Ba(u,t);return n(u,y),y};return s=i,(...u)=>s(Ma(...u))},za=[],de=e=>{const r=t=>t[e]||za;return r.isThemeGetter=!0,r},ft=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,mt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ga=/^\d+\/\d+$/,Ha=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Qa=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ya=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Wa=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ja=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,er=e=>Ga.test(e),M=e=>!!e&&!Number.isNaN(Number(e)),qe=e=>!!e&&Number.isInteger(Number(e)),vr=e=>e.endsWith("%")&&M(e.slice(0,-1)),Pe=e=>Ha.test(e),Xa=()=>!0,Za=e=>Qa.test(e)&&!Ya.test(e),pt=()=>!1,en=e=>Wa.test(e),rn=e=>Ja.test(e),tn=e=>!x(e)&&!O(e),an=e=>rr(e,bt,pt),x=e=>ft.test(e),Ge=e=>rr(e,yt,Za),Er=e=>rr(e,cn,M),qr=e=>rr(e,gt,pt),nn=e=>rr(e,ht,rn),ur=e=>rr(e,wt,en),O=e=>mt.test(e),ar=e=>tr(e,yt),on=e=>tr(e,un),Ur=e=>tr(e,gt),sn=e=>tr(e,bt),ln=e=>tr(e,ht),dr=e=>tr(e,wt,!0),rr=(e,r,t)=>{const a=ft.exec(e);return a?a[1]?r(a[1]):t(a[2]):!1},tr=(e,r,t=!1)=>{const a=mt.exec(e);return a?a[1]?r(a[1]):t:!1},gt=e=>e==="position"||e==="percentage",ht=e=>e==="image"||e==="url",bt=e=>e==="length"||e==="size"||e==="bg-size",yt=e=>e==="length",cn=e=>e==="number",un=e=>e==="family-name",wt=e=>e==="shadow",dn=()=>{const e=de("color"),r=de("font"),t=de("text"),a=de("font-weight"),n=de("tracking"),s=de("leading"),i=de("breakpoint"),m=de("container"),u=de("spacing"),d=de("radius"),y=de("shadow"),D=de("inset-shadow"),_=de("text-shadow"),F=de("drop-shadow"),G=de("blur"),w=de("perspective"),H=de("aspect"),q=de("ease"),$=de("animate"),L=()=>["auto","avoid","all","avoid-page","page","left","right","column"],te=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],ae=()=>[...te(),O,x],T=()=>["auto","hidden","clip","visible","scroll"],g=()=>["auto","contain","none"],c=()=>[O,x,u],C=()=>[er,"full","auto",...c()],v=()=>[qe,"none","subgrid",O,x],N=()=>["auto",{span:["full",qe,O,x]},qe,O,x],j=()=>[qe,"auto",O,x],K=()=>["auto","min","max","fr",O,x],Y=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ee=()=>["start","end","center","stretch","center-safe","end-safe"],U=()=>["auto",...c()],Z=()=>[er,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],A=()=>[e,O,x],fe=()=>[...te(),Ur,qr,{position:[O,x]}],Re=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pe=()=>["auto","cover","contain",sn,an,{size:[O,x]}],Ee=()=>[vr,ar,Ge],R=()=>["","none","full",d,O,x],ne=()=>["",M,ar,Ge],Se=()=>["solid","dashed","dotted","double"],me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],P=()=>[M,vr,Ur,qr],ke=()=>["","none",G,O,x],be=()=>["none",M,O,x],ge=()=>["none",M,O,x],Te=()=>[M,O,x],xe=()=>[er,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Pe],breakpoint:[Pe],color:[Xa],container:[Pe],"drop-shadow":[Pe],ease:["in","out","in-out"],font:[tn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Pe],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Pe],shadow:[Pe],spacing:["px",M],text:[Pe],"text-shadow":[Pe],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",er,x,O,H]}],container:["container"],columns:[{columns:[M,x,O,m]}],"break-after":[{"break-after":L()}],"break-before":[{"break-before":L()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:ae()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:g()}],"overscroll-x":[{"overscroll-x":g()}],"overscroll-y":[{"overscroll-y":g()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{start:C()}],end:[{end:C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[qe,"auto",O,x]}],basis:[{basis:[er,"full","auto",m,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[M,er,"auto","initial","none",x]}],grow:[{grow:["",M,O,x]}],shrink:[{shrink:["",M,O,x]}],order:[{order:[qe,"first","last","none",O,x]}],"grid-cols":[{"grid-cols":v()}],"col-start-end":[{col:N()}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":v()}],"row-start-end":[{row:N()}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":K()}],"auto-rows":[{"auto-rows":K()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...Y(),"normal"]}],"justify-items":[{"justify-items":[...ee(),"normal"]}],"justify-self":[{"justify-self":["auto",...ee()]}],"align-content":[{content:["normal",...Y()]}],"align-items":[{items:[...ee(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ee(),{baseline:["","last"]}]}],"place-content":[{"place-content":Y()}],"place-items":[{"place-items":[...ee(),"baseline"]}],"place-self":[{"place-self":["auto",...ee()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:U()}],mx:[{mx:U()}],my:[{my:U()}],ms:[{ms:U()}],me:[{me:U()}],mt:[{mt:U()}],mr:[{mr:U()}],mb:[{mb:U()}],ml:[{ml:U()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:Z()}],w:[{w:[m,"screen",...Z()]}],"min-w":[{"min-w":[m,"screen","none",...Z()]}],"max-w":[{"max-w":[m,"screen","none","prose",{screen:[i]},...Z()]}],h:[{h:["screen","lh",...Z()]}],"min-h":[{"min-h":["screen","lh","none",...Z()]}],"max-h":[{"max-h":["screen","lh",...Z()]}],"font-size":[{text:["base",t,ar,Ge]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,O,Er]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",vr,x]}],"font-family":[{font:[on,x,r]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,O,x]}],"line-clamp":[{"line-clamp":[M,"none",O,Er]}],leading:[{leading:[s,...c()]}],"list-image":[{"list-image":["none",O,x]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",O,x]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:A()}],"text-color":[{text:A()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Se(),"wavy"]}],"text-decoration-thickness":[{decoration:[M,"from-font","auto",O,Ge]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[M,"auto",O,x]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",O,x]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",O,x]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:fe()}],"bg-repeat":[{bg:Re()}],"bg-size":[{bg:pe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qe,O,x],radial:["",O,x],conic:[qe,O,x]},ln,nn]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:Ee()}],"gradient-via-pos":[{via:Ee()}],"gradient-to-pos":[{to:Ee()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Se(),"hidden","none"]}],"divide-style":[{divide:[...Se(),"hidden","none"]}],"border-color":[{border:A()}],"border-color-x":[{"border-x":A()}],"border-color-y":[{"border-y":A()}],"border-color-s":[{"border-s":A()}],"border-color-e":[{"border-e":A()}],"border-color-t":[{"border-t":A()}],"border-color-r":[{"border-r":A()}],"border-color-b":[{"border-b":A()}],"border-color-l":[{"border-l":A()}],"divide-color":[{divide:A()}],"outline-style":[{outline:[...Se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[M,O,x]}],"outline-w":[{outline:["",M,ar,Ge]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",y,dr,ur]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",D,dr,ur]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[M,Ge]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",_,dr,ur]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[M,O,x]}],"mix-blend":[{"mix-blend":[...me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[M]}],"mask-image-linear-from-pos":[{"mask-linear-from":P()}],"mask-image-linear-to-pos":[{"mask-linear-to":P()}],"mask-image-linear-from-color":[{"mask-linear-from":A()}],"mask-image-linear-to-color":[{"mask-linear-to":A()}],"mask-image-t-from-pos":[{"mask-t-from":P()}],"mask-image-t-to-pos":[{"mask-t-to":P()}],"mask-image-t-from-color":[{"mask-t-from":A()}],"mask-image-t-to-color":[{"mask-t-to":A()}],"mask-image-r-from-pos":[{"mask-r-from":P()}],"mask-image-r-to-pos":[{"mask-r-to":P()}],"mask-image-r-from-color":[{"mask-r-from":A()}],"mask-image-r-to-color":[{"mask-r-to":A()}],"mask-image-b-from-pos":[{"mask-b-from":P()}],"mask-image-b-to-pos":[{"mask-b-to":P()}],"mask-image-b-from-color":[{"mask-b-from":A()}],"mask-image-b-to-color":[{"mask-b-to":A()}],"mask-image-l-from-pos":[{"mask-l-from":P()}],"mask-image-l-to-pos":[{"mask-l-to":P()}],"mask-image-l-from-color":[{"mask-l-from":A()}],"mask-image-l-to-color":[{"mask-l-to":A()}],"mask-image-x-from-pos":[{"mask-x-from":P()}],"mask-image-x-to-pos":[{"mask-x-to":P()}],"mask-image-x-from-color":[{"mask-x-from":A()}],"mask-image-x-to-color":[{"mask-x-to":A()}],"mask-image-y-from-pos":[{"mask-y-from":P()}],"mask-image-y-to-pos":[{"mask-y-to":P()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[O,x]}],"mask-image-radial-from-pos":[{"mask-radial-from":P()}],"mask-image-radial-to-pos":[{"mask-radial-to":P()}],"mask-image-radial-from-color":[{"mask-radial-from":A()}],"mask-image-radial-to-color":[{"mask-radial-to":A()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":te()}],"mask-image-conic-pos":[{"mask-conic":[M]}],"mask-image-conic-from-pos":[{"mask-conic-from":P()}],"mask-image-conic-to-pos":[{"mask-conic-to":P()}],"mask-image-conic-from-color":[{"mask-conic-from":A()}],"mask-image-conic-to-color":[{"mask-conic-to":A()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:fe()}],"mask-repeat":[{mask:Re()}],"mask-size":[{mask:pe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",O,x]}],filter:[{filter:["","none",O,x]}],blur:[{blur:ke()}],brightness:[{brightness:[M,O,x]}],contrast:[{contrast:[M,O,x]}],"drop-shadow":[{"drop-shadow":["","none",F,dr,ur]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",M,O,x]}],"hue-rotate":[{"hue-rotate":[M,O,x]}],invert:[{invert:["",M,O,x]}],saturate:[{saturate:[M,O,x]}],sepia:[{sepia:["",M,O,x]}],"backdrop-filter":[{"backdrop-filter":["","none",O,x]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[M,O,x]}],"backdrop-contrast":[{"backdrop-contrast":[M,O,x]}],"backdrop-grayscale":[{"backdrop-grayscale":["",M,O,x]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[M,O,x]}],"backdrop-invert":[{"backdrop-invert":["",M,O,x]}],"backdrop-opacity":[{"backdrop-opacity":[M,O,x]}],"backdrop-saturate":[{"backdrop-saturate":[M,O,x]}],"backdrop-sepia":[{"backdrop-sepia":["",M,O,x]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",O,x]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[M,"initial",O,x]}],ease:[{ease:["linear","initial",q,O,x]}],delay:[{delay:[M,O,x]}],animate:[{animate:["none",$,O,x]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,O,x]}],"perspective-origin":[{"perspective-origin":ae()}],rotate:[{rotate:be()}],"rotate-x":[{"rotate-x":be()}],"rotate-y":[{"rotate-y":be()}],"rotate-z":[{"rotate-z":be()}],scale:[{scale:ge()}],"scale-x":[{"scale-x":ge()}],"scale-y":[{"scale-y":ge()}],"scale-z":[{"scale-z":ge()}],"scale-3d":["scale-3d"],skew:[{skew:Te()}],"skew-x":[{"skew-x":Te()}],"skew-y":[{"skew-y":Te()}],transform:[{transform:[O,x,"","none","gpu","cpu"]}],"transform-origin":[{origin:ae()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:xe()}],"translate-x":[{"translate-x":xe()}],"translate-y":[{"translate-y":xe()}],"translate-z":[{"translate-z":xe()}],"translate-none":["translate-none"],accent:[{accent:A()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:A()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",O,x]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",O,x]}],fill:[{fill:["none",...A()]}],"stroke-w":[{stroke:[M,ar,Ge,Er]}],stroke:[{stroke:["none",...A()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},fn=Ka(dn);function Ve(...e){return fn(Sa(e))}const mn=()=>crypto.randomUUID(),Ct=e=>e==="And"||e==="Or"||e==="Not",vt=(e,r)=>{const t=[];if(e.operator||t.push("Operator is required"),e.operator&&Ct(e.operator))!e.children||!Array.isArray(e.children)?t.push("Logical operators require a children array"):e.children.length===0?t.push("Logical operators require at least one child condition"):e.operator==="Not"&&e.children.length>1&&t.push("Not operator can only have one child condition"),e.children&&Array.isArray(e.children)&&e.children.forEach((a,n)=>{const s=vt(a,r);s.isValid||t.push(...s.errors.map(i=>`Child ${n+1}: ${i}`))}),e.lhsField&&t.push("Logical operators should not have lhsField"),e.rhsValue!==void 0&&t.push("Logical operators should not have rhsValue");else{if(e.lhsField||t.push("Field is required for condition operators"),e.operator&&e.rhsValue!==void 0)switch(e.operator){case"Between":case"NotBetween":(!Array.isArray(e.rhsValue)||e.rhsValue.length!==2)&&t.push("Between operators require an array of two values");break;case"IN":case"NIN":(!Array.isArray(e.rhsValue)||e.rhsValue.length===0)&&t.push("IN/NIN operators require a non-empty array");break;case"Empty":case"NotEmpty":break;default:(e.rhsValue===null||e.rhsValue===void 0||e.rhsValue==="")&&t.push("Value is required for this operator");break}if(r&&e.lhsField&&e.operator){const a=r[e.lhsField];if(a&&(a.allowedOperators.includes(e.operator)||t.push(`Operator ${e.operator} is not allowed for field ${e.lhsField}`),a.validateValue&&e.rhsValue!==void 0)){const n=a.validateValue(e.rhsValue,e.operator);n.isValid||t.push(...n.errors)}}e.children&&e.children.length>0&&t.push("Condition operators should not have children")}return{isValid:t.length===0,errors:t}},Et=e=>Ct(e.operator)?{Operator:e.operator,Condition:(e.children||[]).filter(r=>r.isValid).map(r=>Et(r))}:{Operator:e.operator,LHSField:e.lhsField,RHSValue:e.rhsValue,RHSType:e.rhsType||"Constant"},pn=(e,r)=>{if(e.length===0)return;const t=e.filter(a=>a.isValid);if(t.length!==0)return{Operator:r,Condition:t.map(a=>Et(a))}};function Tr(e={}){const[r,t]=l.useState({logicalOperator:e.initialLogicalOperator||"And",conditions:e.initialConditions||[]}),[a]=l.useState({logicalOperator:e.initialLogicalOperator||"And",conditions:e.initialConditions||[]}),n=l.useCallback(g=>vt(g,e.fieldDefinitions),[e.fieldDefinitions]),s=l.useCallback(()=>{const g=[];return r.conditions.forEach(c=>{const C=n(c);C.isValid||g.push(...C.errors.map(v=>`Condition ${c.id}: ${v}`))}),{isValid:g.length===0,errors:g}},[r.conditions,n]),i=l.useCallback(g=>{const c=mn(),C=g,v=n(C),N={...C,id:c,isValid:v.isValid,validationErrors:v.errors};return t(j=>({...j,conditions:[...j.conditions,N]})),e.onConditionAdd&&e.onConditionAdd(N),c},[n,e]),m=l.useCallback((g,c)=>{let C=!1;const v=c;return t(N=>({...N,conditions:N.conditions.map(j=>{if(j.id===g){C=!0;const K={...j,...v},Y=n(K),ee={...K,isValid:Y.isValid,validationErrors:Y.errors};return e.onConditionUpdate&&e.onConditionUpdate(ee),ee}return j})})),C},[n,e]),u=l.useCallback(g=>{let c=!1;return t(C=>({...C,conditions:C.conditions.filter(v=>v.id===g?(c=!0,e.onConditionRemove&&e.onConditionRemove(g),!1):!0)})),c},[e]),d=l.useCallback(()=>{t(g=>({...g,conditions:[]}))},[]),y=l.useCallback(g=>r.conditions.find(c=>c.id===g),[r.conditions]),D=l.useCallback(g=>{t(c=>({...c,logicalOperator:g}))},[]),_=l.useCallback(g=>{const c=g.map(C=>{const v=n(C);return{...C,isValid:v.isValid,validationErrors:v.errors}});t(C=>({...C,conditions:c}))},[n]),F=l.useCallback((g,c)=>{let C=!1;const v=c;return t(N=>({...N,conditions:N.conditions.map(j=>{if(j.id===g){C=!0;const K=n(v);return{...v,id:g,isValid:K.isValid,validationErrors:K.errors}}return j})})),C},[n]),G=l.useCallback(()=>({logicalOperator:r.logicalOperator,conditions:r.conditions.map(g=>({...g}))}),[r]),w=l.useCallback(g=>{const c=g.conditions.map(C=>{const v=n(C);return{...C,isValid:v.isValid,validationErrors:v.errors}});t({logicalOperator:g.logicalOperator,conditions:c})},[n]),H=l.useCallback(()=>{t({...a})},[a]),q=l.useMemo(()=>pn(r.conditions,r.logicalOperator),[r.conditions,r.logicalOperator]),$=l.useMemo(()=>{const g=[];return r.conditions.forEach(c=>{!c.isValid&&c.validationErrors&&c.validationErrors.forEach(C=>{g.push({conditionId:c.id,field:c.lhsField||"",message:C})})}),g},[r.conditions]),L=l.useMemo(()=>r.conditions.every(g=>g.isValid),[r.conditions]),te=l.useCallback(()=>r.conditions.length,[r.conditions]),ae=l.useMemo(()=>r.conditions.length>0,[r.conditions]),T=l.useMemo(()=>!0,[]);return l.useEffect(()=>{e.onValidationError&&$.length>0&&e.onValidationError($)},[$,e]),{conditions:r.conditions,logicalOperator:r.logicalOperator,filterPayload:q,isValid:L,validationErrors:$,addCondition:i,updateCondition:m,removeCondition:u,clearConditions:d,getCondition:y,setLogicalOperator:D,setConditions:_,replaceCondition:F,validateCondition:n,validateAllConditions:s,exportState:G,importState:w,resetToInitial:H,getConditionCount:te,hasConditions:ae,canAddCondition:T}}const St=(e,r)=>{const t=[];switch(r){case"Between":case"NotBetween":if(!Array.isArray(e)||e.length!==2)t.push("Between operators require exactly two numeric values");else{const[a,n]=e;typeof a!="number"||typeof n!="number"?t.push("Between values must be numbers"):a>=n&&t.push("First value must be less than second value")}break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of numbers"):e.every(a=>typeof a=="number")||t.push("All values in array must be numbers");break;case"Empty":case"NotEmpty":break;default:(typeof e!="number"||isNaN(e))&&t.push("Value must be a valid number");break}return{isValid:t.length===0,errors:t}},kt=(e,r)=>{const t=[],a=s=>s instanceof Date&&!isNaN(s.getTime()),n=s=>{if(s instanceof Date)return s;if(typeof s=="string"||typeof s=="number"){const i=new Date(s);return a(i)?i:null}return null};switch(r){case"Between":case"NotBetween":if(!Array.isArray(e)||e.length!==2)t.push("Between operators require exactly two date values");else{const[s,i]=e.map(n);!s||!i?t.push("Between values must be valid dates"):s>=i&&t.push("Start date must be before end date")}break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of dates"):e.every(s=>n(s))||t.push("All values in array must be valid dates");break;case"Empty":case"NotEmpty":break;default:n(e)||t.push("Value must be a valid date");break}return{isValid:t.length===0,errors:t}},xt=(e,r)=>{const t=[],a=i=>i&&typeof i=="object"&&typeof i.value=="number"&&typeof i.currency=="string"&&i.currency.length===3,n=i=>typeof i=="string"&&/^\d+(\.\d{2})?\s[A-Z]{3}$/.test(i),s=i=>a(i)||n(i)||typeof i=="number";switch(r){case"Between":case"NotBetween":!Array.isArray(e)||e.length!==2?t.push("Between operators require exactly two currency values"):e.every(s)||t.push("Between values must be valid currency amounts");break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of currency values"):e.every(s)||t.push("All values in array must be valid currency amounts");break;case"Empty":case"NotEmpty":break;default:s(e)||t.push("Value must be a valid currency amount");break}return{isValid:t.length===0,errors:t}},Ot=(e,r)=>{const t=[];switch(r){case"Between":case"NotBetween":t.push("Between operators are not supported for string fields");break;case"GT":case"GTE":case"LT":case"LTE":t.push("Comparison operators are not supported for string fields");break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of strings"):e.every(a=>typeof a=="string")||t.push("All values in array must be strings");break;case"MinLength":(typeof e!="number"||e<0)&&t.push("MinLength value must be a non-negative number");break;case"MaxLength":(typeof e!="number"||e<0)&&t.push("MaxLength value must be a non-negative number");break;case"Empty":case"NotEmpty":break;default:typeof e!="string"&&t.push("Value must be a string");break}return{isValid:t.length===0,errors:t}},Nt=(e,r)=>{const t=[];if(!["EQ","NE","IN","NIN","Empty","NotEmpty"].includes(r))return t.push(`Operator ${r} is not supported for boolean fields`),{isValid:!1,errors:t};switch(r){case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of boolean values"):e.every(n=>typeof n=="boolean")||t.push("All values in array must be boolean");break;case"Empty":case"NotEmpty":break;default:typeof e!="boolean"&&t.push("Value must be a boolean (true or false)");break}return{isValid:t.length===0,errors:t}},Rt=(e,r,t)=>{const a=[];if(!t||t.length===0)return a.push("No select options defined for this field"),{isValid:!1,errors:a};const n=t.map(i=>i.value),s=i=>n.includes(i);switch(r){case"Between":case"NotBetween":case"GT":case"GTE":case"LT":case"LTE":a.push(`Operator ${r} is not supported for select fields`);break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?a.push("IN/NIN operators require a non-empty array of values"):e.every(s)||a.push("All values must be from the available options");break;case"Empty":case"NotEmpty":break;default:s(e)||a.push("Value must be one of the available options");break}return{isValid:a.length===0,errors:a}},Ue=e=>{switch(e){case"string":return{type:"string",allowedOperators:["EQ","NE","Contains","NotContains","IN","NIN","Empty","NotEmpty","MinLength","MaxLength"],validateValue:Ot};case"number":return{type:"number",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:St};case"date":return{type:"date",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:kt};case"boolean":return{type:"boolean",allowedOperators:["EQ","NE","IN","NIN","Empty","NotEmpty"],validateValue:Nt};case"currency":return{type:"currency",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:xt};case"select":const r={type:"select",allowedOperators:["EQ","NE","IN","NIN","Empty","NotEmpty"],selectOptions:[]};return r.validateValue=(t,a)=>Rt(t,a,r.selectOptions),r;default:return Ue("string")}},gn=e=>{const r={};return!e||typeof e!="object"||Object.keys(e).forEach(t=>{const a=e[t],n=t;typeof a=="string"?r[n]=Ue("string"):typeof a=="number"?r[n]=Ue("number"):typeof a=="boolean"?r[n]=Ue("boolean"):a instanceof Date?r[n]=Ue("date"):a&&typeof a=="object"&&"value"in a&&"currency"in a?r[n]=Ue("currency"):r[n]=Ue("string")}),r},ir=e=>e==="And"||e==="Or"||e==="Not",Tt=e=>ir(e.operator)?{Operator:e.operator,Condition:(e.children||[]).filter(r=>r.isValid).map(r=>Tt(r))}:{Operator:e.operator,LHSField:e.lhsField,RHSValue:e.rhsValue,RHSType:e.rhsType||"Constant"},At=(e,r)=>{if(e.length===0)return;const t=e.filter(a=>a.isValid);if(t.length!==0)return{Operator:r,Condition:t.map(Tt)}},hn=e=>At(e.conditions,e.logicalOperator),Ar=e=>e?!e.Operator||!["And","Or","Not"].includes(e.Operator)||!Array.isArray(e.Condition)||e.Condition.length===0||e.Operator==="Not"&&e.Condition.length!==1?!1:e.Condition.every(r=>{if(!r.Operator)return!1;if(ir(r.Operator))return Ar(r);{const t=r;return t.LHSField!==void 0&&t.RHSValue!==void 0&&(t.RHSType===void 0||["Constant","BOField","AppVariable"].includes(t.RHSType))}}):!0,Ft=e=>{if(ir(e.Operator))return{Operator:e.Operator,Condition:e.Condition.map(Ft)};{const r=e;return{Operator:r.Operator,LHSField:r.LHSField,RHSValue:r.RHSValue,RHSType:r.RHSType}}},Dt=e=>{if(e)return{Operator:e.Operator,Condition:e.Condition.map(Ft)}},bn=(e,r)=>{const t=e.filter(n=>n!==void 0&&Ar(n));if(t.length===0)return;if(t.length===1)return Dt(t[0]);const a=t.flatMap(n=>n.Condition);return{Operator:r,Condition:a}},Vt=e=>{if(ir(e.Operator)){const t=e.Condition.map(Vt);return t.length===1?e.Operator==="Not"?`NOT (${t[0]})`:t[0]:`(${t.join(` ${e.Operator} `)})`}else{const r=e,t=Array.isArray(r.RHSValue)?`[${r.RHSValue.join(", ")}]`:String(r.RHSValue);return`${r.LHSField} ${r.Operator} ${t}`}},yn=e=>{if(!e)return"No filters";const r=e.Condition.map(Vt);return r.length===1?r[0]:`(${r.join(` ${e.Operator} `)})`},_t=(e,r)=>{if(e.Operator!==r.Operator)return!1;if(ir(e.Operator)){const t=e,a=r;return t.Condition.length!==a.Condition.length?!1:t.Condition.every((n,s)=>_t(n,a.Condition[s]))}else{const t=e,a=r;return t.LHSField===a.LHSField&&JSON.stringify(t.RHSValue)===JSON.stringify(a.RHSValue)&&t.RHSType===a.RHSType}},wn=(e,r)=>!e&&!r?!0:!e||!r||e.Operator!==r.Operator||e.Condition.length!==r.Condition.length?!1:e.Condition.every((t,a)=>_t(t,r.Condition[a]));function Cn(e){var R,ne,Se,me,P,ke,be,ge,Te,xe,je;const[r,t]=l.useState({query:""}),[a,n]=l.useState({field:((ne=(R=e.initialState)==null?void 0:R.sorting)==null?void 0:ne.field)||null,direction:((me=(Se=e.initialState)==null?void 0:Se.sorting)==null?void 0:me.direction)||null}),[s,i]=l.useState({global:((P=e.initialState)==null?void 0:P.globalFilter)||""}),[m,u]=l.useState({pageNo:((be=(ke=e.initialState)==null?void 0:ke.pagination)==null?void 0:be.pageNo)||1,pageSize:((Te=(ge=e.initialState)==null?void 0:ge.pagination)==null?void 0:Te.pageSize)||10}),d=Tr({initialConditions:(xe=e.initialState)==null?void 0:xe.filters,initialLogicalOperator:((je=e.initialState)==null?void 0:je.filterOperator)||"And",fieldDefinitions:e.fieldDefinitions,validateOnChange:!0,onValidationError:e.onFilterError,onConditionAdd:()=>{u(V=>({...V,pageNo:1}))},onConditionUpdate:()=>{u(V=>({...V,pageNo:1}))},onConditionRemove:()=>{u(V=>({...V,pageNo:1}))}}),y=l.useMemo(()=>{const V={};return r.query&&(V.Search=r.query),d.filterPayload&&(V.Filter=d.filterPayload),V},[r.query,d.filterPayload]),D=l.useMemo(()=>{const V={...y};return a.field&&a.direction&&(V.Sort=[{[String(a.field)]:a.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(V.Page=m.pageNo,V.PageSize=m.pageSize),V},[y,a,m,e.enablePagination]),{data:_,isLoading:F,isFetching:G,error:w,refetch:H}=Ce.useQuery({queryKey:["table",e.source,D],queryFn:async()=>{try{const V=await ve(e.source).list(D);return e.onSuccess&&e.onSuccess(V.Data),V}catch(V){throw e.onError&&e.onError(V),V}},staleTime:0,gcTime:0}),{data:q,isLoading:$,isFetching:L,error:te,refetch:ae}=Ce.useQuery({queryKey:["table-count",e.source,y],queryFn:async()=>{try{return await ve(e.source).count(y)}catch(V){throw e.onError&&e.onError(V),V}},staleTime:0,gcTime:0}),T=l.useMemo(()=>(_==null?void 0:_.Data)||[],[_]),g=l.useMemo(()=>(q==null?void 0:q.Count)||0,[q]),c=l.useMemo(()=>Math.ceil(g/m.pageSize),[g,m.pageSize]),C=l.useCallback(V=>{n(oe=>{if(oe.field===V){if(oe.direction==="asc")return{field:V,direction:"desc"};if(oe.direction==="desc")return{field:null,direction:null}}return{field:V,direction:"asc"}})},[]),v=l.useCallback(()=>{n({field:null,direction:null})},[]),N=l.useCallback((V,oe)=>{n({field:V,direction:oe})},[]),j=l.useCallback(V=>{t({query:V}),u(oe=>({...oe,pageNo:1}))},[]),K=l.useCallback(()=>{t({query:""})},[]),Y=l.useCallback(V=>{i(oe=>({...oe,global:V})),u(oe=>({...oe,pageNo:1}))},[]),ee=l.useCallback(()=>{i({global:""})},[]),U=m.pageNo<c,Z=m.pageNo>1,A=l.useCallback(()=>{U&&u(V=>({...V,pageNo:V.pageNo+1}))},[U]),fe=l.useCallback(()=>{Z&&u(V=>({...V,pageNo:V.pageNo-1}))},[Z]),Re=l.useCallback(V=>{const oe=Math.max(1,Math.min(V,c));u(ye=>({...ye,pageNo:oe}))},[c]),pe=l.useCallback(V=>{u(oe=>({...oe,pageSize:V,pageNo:1}))},[]),Ee=l.useCallback(async()=>{const[V]=await Promise.all([H(),ae()]);return V.data||{Data:[]}},[H,ae]);return{rows:T,totalItems:g,isLoading:F||$,isFetching:G||L,error:w||te,search:{query:r.query,setQuery:j,clear:K},sort:{field:a.field,direction:a.direction,toggle:C,clear:v,set:N},globalFilter:{value:s.global,setValue:Y,clear:ee},filter:{conditions:d.conditions,logicalOperator:d.logicalOperator,isValid:d.isValid,validationErrors:d.validationErrors,hasConditions:d.hasConditions,addCondition:d.addCondition,updateCondition:d.updateCondition,removeCondition:d.removeCondition,clearConditions:d.clearConditions,getCondition:d.getCondition,setLogicalOperator:d.setLogicalOperator,setConditions:d.setConditions,replaceCondition:d.replaceCondition,validateCondition:d.validateCondition,validateAllConditions:d.validateAllConditions,exportState:d.exportState,importState:d.importState,resetToInitial:d.resetToInitial,getConditionCount:d.getConditionCount},pagination:{currentPage:m.pageNo,pageSize:m.pageSize,totalPages:c,totalItems:g,canGoNext:U,canGoPrevious:Z,goToNext:A,goToPrevious:fe,goToPage:Re,setPageSize:pe},refetch:Ee}}function vn(){const e=new Date;return{NOW:e,TODAY:new Date(e.getFullYear(),e.getMonth(),e.getDate()),CURRENT_USER:{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"},CURRENT_USER_ID:1}}const En={CONCAT:(...e)=>e.map(r=>String(r||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,r,t)=>{const a=String(e||"");return t!==void 0?a.substring(r,r+t):a.substring(r)},CONTAINS:(e,r)=>String(e||"").includes(String(r||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,r)=>{const t=new Date(e),a=new Date(r),n=Math.abs(t.getTime()-a.getTime());return Math.ceil(n/(1e3*60*60*24))},ADD_DAYS:(e,r)=>{const t=new Date(e);return t.setDate(t.getDate()+r),t},ADD_MONTHS:(e,r)=>{const t=new Date(e);return t.setMonth(t.getMonth()+r),t},SUM:(...e)=>e.reduce((r,t)=>r+(Number(t)||0),0),AVG:(...e)=>{const r=e.filter(t=>!isNaN(Number(t)));return r.length>0?r.reduce((t,a)=>t+Number(a),0)/r.length:0},MIN:(...e)=>Math.min(...e.map(r=>Number(r)||0)),MAX:(...e)=>Math.max(...e.map(r=>Number(r)||0)),ROUND:e=>Math.round(Number(e)||0),FLOOR:e=>Math.floor(Number(e)||0),CEIL:e=>Math.ceil(Number(e)||0),ABS:e=>Math.abs(Number(e)||0),IF:(e,r,t)=>e?r:t,IS_NULL:e=>e==null,IS_EMPTY:e=>!e||String(e).trim()==="",IS_NUMBER:e=>!isNaN(Number(e))&&e!==""&&e!==null&&e!==void 0,IS_DATE:e=>{const r=new Date(e);return!isNaN(r.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const r=Math.random()*16|0;return(e=="x"?r:r&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,r)=>Array.isArray(e)?e.includes(r):!1,ARRAY_JOIN:(e,r=",")=>Array.isArray(e)?e.join(r):""};function Be(e,r){var t;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const d=r.systemValues[e.Name];return Sr(d,e.Property.Name)}return r.systemValues[e.Name];case"Identifier":if(e.Property){const d=Br(e,r);return Sr(d,e.Property.Name)}return Br(e,r);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const a=Be(e.Arguments[0],r),n=(t=e.Arguments[0].Property)==null?void 0:t.Name;return n?Sr(a,n):a;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const s=Be(e.Arguments[0],r),i=Be(e.Arguments[1],r);return Sn(e.Operator,s,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return kn(e.Operator,e.Arguments,r);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const m=En[e.Callee];if(!m)throw new Error(`Unknown function: ${e.Callee}`);const u=(e.Arguments||[]).map(d=>Be(d,r));return m(...u);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return Be(e.Arguments[0],r);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Br(e,r){const{Name:t,Source:a}=e;if(!t)throw new Error("Identifier requires Name");switch(a){case"Input":default:return r.formValues[t]}}function Sr(e,r){if(!(!e||typeof e!="object"))return e[r]}function Sn(e,r,t){const a=n=>n==null?0:typeof n=="number"?n:typeof n=="object"&&n!==null&&"value"in n?Number(n.value)||0:Number(n)||0;switch(e){case"==":return r==t;case"!=":return r!=t;case">":return a(r)>a(t);case"<":return a(r)<a(t);case">=":return a(r)>=a(t);case"<=":return a(r)<=a(t);case"+":return a(r)+a(t);case"-":return a(r)-a(t);case"*":return a(r)*a(t);case"/":const n=a(t);return n!==0?a(r)/n:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function kn(e,r,t){switch(e){case"AND":return r.every(a=>!!Be(a,t));case"OR":return r.some(a=>!!Be(a,t));default:throw new Error(`Unknown logical operator: ${e}`)}}function Pt(e,r,t={}){const a={formValues:r,systemValues:vn(),referenceData:t};try{return Be(e,a)}catch(n){return console.warn("Expression evaluation failed:",n),!1}}function xn(e,r,t={}){const a=[];for(const n of e)try{Pt(n.Condition.ExpressionTree,r,t)||a.push({isValid:!1,message:n.Message,fieldName:n.Id})}catch(s){console.warn(`Cross-field validation rule ${n.Id} failed:`,s)}return a}function On(e,r={},t={}){try{return Pt(e,r,t)}catch(a){return console.warn("Default value calculation failed:",a),null}}function Mr(e,r){var m,u,d;const t=((m=e.Expression)==null?void 0:m.toLowerCase())||"",a=((u=e.Name)==null?void 0:u.toLowerCase())||"",n=((d=e.Id)==null?void 0:d.toLowerCase())||"",s=r.toLowerCase();return a.includes("required")||n.includes("required")?!0:[`${s} != null`,`${s} != ''`,`trim(${s}) != ''`,`${s}!=null`,`${s}!=''`].some(y=>t.includes(y))}function Nn(e){const r={...e};r.Rules||(r.Rules={Validation:{},Computation:{},BusinessLogic:{}}),r.Rules.Validation||(r.Rules.Validation={}),r.Rules.Computation||(r.Rules.Computation={}),r.Rules.BusinessLogic||(r.Rules.BusinessLogic={});const t={...r.Fields};return Object.entries(t).forEach(([a,n])=>{let s=n.Required||!1;if(n.Validation&&Array.isArray(n.Validation))if(n.Validation.length>0&&typeof n.Validation[0]=="object"){const i=[];n.Validation.forEach(m=>{r.Rules.Validation[m.Id]=m,i.push(m.Id),Mr(m,a)&&(s=!0)}),t[a]={...n,Validation:i,Required:s}}else n.Validation.forEach(m=>{var d;const u=(d=r.Rules.Validation)==null?void 0:d[m];u&&Mr(u,a)&&(s=!0)}),s&&!n.Required&&(t[a]={...n,Required:!0});if(n.Formula){const i=`RULE_COMPUTE_${a.toUpperCase()}`;r.Rules.Computation[i]={Id:i,Name:n.Formula.Id||`Compute ${a}`,Description:n.Formula.Description||`Computes value for ${a}`,Expression:n.Formula.Expression,ExpressionTree:n.Formula.ExpressionTree,ResultType:n.Type}}}),r.Fields=t,r}function Rn(e){var t,a,n;const r={validation:{},computation:{},businessLogic:{}};return(t=e.Rules)!=null&&t.Validation&&(r.validation={...e.Rules.Validation}),(a=e.Rules)!=null&&a.Computation&&(r.computation={...e.Rules.Computation}),(n=e.Rules)!=null&&n.BusinessLogic&&(r.businessLogic={...e.Rules.BusinessLogic}),r}function Tn(e){var a;const r={};if(!((a=e.Rules)!=null&&a.Computation))return r;const t=Object.entries(e.Fields).filter(([n,s])=>s.Computed).map(([n])=>n);return t.sort((n,s)=>s.length-n.length),Object.entries(e.Rules.Computation).forEach(([n,s])=>{const i=n.toUpperCase().replace(/[_-]/g,"");for(const u of t){const d=u.toUpperCase().replace(/[_-]/g,"");if(i.includes(d)){r[n]=u;return}}const m=`${s.Name||""} ${s.Description||""}`.toLowerCase();for(const u of t)if(m.includes(u.toLowerCase())){r[n]=u;return}}),r}function An(e,r){const t={};Object.keys(e.Fields).forEach(n=>{t[n]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([n,s])=>{s.Validation&&Array.isArray(s.Validation)&&s.Validation.forEach(m=>{r.validation[m]?t[n].validation.push(m):r.computation[m]?t[n].computation.push(m):r.businessLogic[m]&&t[n].businessLogic.push(m)}),s.Formula&&Object.entries(r.computation).forEach(([i,m])=>{var u;m.Expression===((u=s.Formula)==null?void 0:u.Expression)&&(t[n].computation.includes(i)||t[n].computation.push(i))})});const a=Tn(e);return Object.entries(a).forEach(([n,s])=>{t[s]&&!t[s].computation.includes(n)&&t[s].computation.push(n)}),t}function Fn(e,r){const t={},a={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(n=>{var u,d,y,D,_,F;if(!r||!((u=e.RolePermission)!=null&&u[r])){t[n]=a;return}const s=e.RolePermission[r],i=((d=s.Editable)==null?void 0:d.includes(n))||((y=s.Editable)==null?void 0:y.includes("*"))||!1,m=((D=s.ReadOnly)==null?void 0:D.includes(n))||((_=s.ReadOnly)==null?void 0:_.includes("*"))||i;t[n]={editable:i&&!((F=s.ReadOnly)!=null&&F.includes(n)),readable:m,hidden:!m}}),t}function Dn(e){return{Id:"legacy_schema",Name:"Legacy Schema",Kind:"BusinessObject",Description:"Converted from legacy schema format",Rules:{Validation:{},Computation:{},BusinessLogic:{}},Fields:Object.fromEntries(Object.entries(e).map(([r,t])=>[r,{...t,Id:r,Name:t.Description||r,Validation:[]}])),RolePermission:{},Roles:{}}}function Vn(e,r){switch(e){case"String":return r.toLowerCase().includes("email")?"email":r.toLowerCase().includes("password")?"password":"text";case"Number":return"number";case"Boolean":return"checkbox";case"Date":return"date";case"DateTime":return"datetime-local";case"Reference":return"reference";case"Array":case"Object":return"textarea";default:return"text"}}function $t(e){return e.replace(/([A-Z])/g," $1").replace(/^./,r=>r.toUpperCase()).replace(/_/g," ").trim()}function _n(e,r,t){const a={};switch(r.Required&&(a.required={value:!0,message:`${$t(e)} is required`}),r.Type){case"Number":a.valueAsNumber=!0;break;case"Date":case"DateTime":a.valueAsDate=!0;break}return r.Validation&&r.Validation.length>0&&(a.validate=()=>!0),a}function Pn(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(r=>({value:r.Value,label:r.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function $n(e,r={}){if(!e.DefaultValue)switch(e.Type){case"Boolean":return!1;case"Number":return 0;case"String":return"";case"Array":return[];case"Object":return{};default:return}return On(e.DefaultValue.ExpressionTree,r)}function In(e,r,t,a={},n,s){const i={editable:!0,readable:!0,hidden:!1},u=s||{validation:[],computation:[],businessLogic:[]},d=r.Computed||!!r.Formula||u.computation.length>0,y=_n(e,r);return d&&(y.disabled=!0),{name:e,type:Vn(r.Type,e),label:r.Name||$t(e),required:r.Required||!1,computed:d,defaultValue:$n(r,a),options:Pn(r),validation:y,description:r.Description,backendField:r,permission:n||i,rules:u}}function jn(e,r={},t){let a="Kind"in e&&e.Kind==="BusinessObject"?e:Dn(e);a=Nn(a);const n={},s=[],i=[],m=[],u=[],d=Rn(a),y=An(a,d),D=Fn(a,t);for(const[_,F]of Object.entries(a.Fields)){if(_.startsWith("_")&&!["_id"].includes(_))continue;const G=D[_];if(G.hidden)continue;const w=In(_,F,a.Fields,r,G,y[_]||{validation:[],computation:[],businessLogic:[]});n[_]=w,s.push(_),w.computed&&i.push(_),w.required&&m.push(_)}return{fields:n,fieldOrder:s,computedFields:i,requiredFields:m,crossFieldValidation:u,rules:d,fieldRules:y,rolePermissions:a.RolePermission}}function Ln(e){var t;if(e.type!=="reference"||!((t=e.backendField.Values)!=null&&t.Reference))return null;const r=e.backendField.Values.Reference;return{businessObject:r.BusinessObject,fields:r.Fields||["_id"],filters:r.Filters,sort:r.Sort}}function qn(e){const r={};for(const[t,a]of Object.entries(e.fields))if(a.type==="reference"){const n=Ln(a);n&&(r[t]=n)}return r}async function Un(e){try{const t=(await Xr(e)).BOBlob;if(!t||typeof t!="object"||!t.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return t}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load form schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Bn(e,r=3){let t;for(let a=1;a<=r;a++)try{return await Un(e)}catch(n){if(t=n,a<r){const s=Math.min(1e3*Math.pow(2,a-1),5e3);await new Promise(i=>setTimeout(i,s));continue}}throw t}async function Mn(e,r){try{return await ve(e).get(r)}catch(t){throw console.error(`Record fetch error for ${e}/${r}:`,t),new Error(`Failed to load record: ${t instanceof Error?t.message:"Unknown error"}`)}}async function Kn(e,r,t,a){try{let n;if(r==="create")return n=await ve(e).create(t),{success:!0,data:n,recordId:n._id||a};if(r==="update"){if(!a)throw new Error("Record ID is required for update operations");return n=await ve(e).update(a,t),{success:!0,data:n,recordId:n._id||a}}else throw new Error(`Unsupported operation: ${r}`)}catch(n){return console.error("Form submission error:",n),{success:!1,error:new Error(`Failed to ${r} record: ${n instanceof Error?n.message:"Unknown error"}`)}}}async function zn(e,r=["_id"],t,a){try{const n={};return t&&(n.Filter=t),a&&(n.Sort=a),r.length>0&&(n.Field=r),(await ve(e).list(n)).Data||[]}catch(n){return console.error(`Reference data fetch error for ${e}:`,n),[]}}async function Gn(e){const r={},t=Object.entries(e).map(async([n,s])=>{try{const i=await zn(s.businessObject,s.fields,s.filters,s.sort);return[n,i]}catch(i){return console.warn(`Failed to fetch reference data for ${n}:`,i),[n,[]]}});return(await Promise.allSettled(t)).forEach(n=>{if(n.status==="fulfilled"){const[s,i]=n.value;r[s]=Array.isArray(i)?i:[]}}),r}function Hn(e,r,t="create",a){const n={};return Object.keys(e).forEach(s=>{const i=s,m=e[i];if(!r.includes(s)&&m!==void 0){if(t==="create"){n[i]=m;return}if(t==="update"){if(!a){n[i]=m;return}const u=a[i];JSON.stringify(m)!==JSON.stringify(u)&&(n[i]=m)}}}),n}const xr=new Map;function Qn(e,r,t=10){xr.set(e,{data:r,timestamp:Date.now(),ttl:t*60*1e3})}function Yn(e){const r=xr.get(e);return r?Date.now()-r.timestamp>r.ttl?(xr.delete(e),null):r.data:null}async function Wn(e){const r=`schema:${e}`,t=Yn(r);if(t)return t;const a=await Bn(e);return Qn(r,a,30),a}class Kr{constructor(r=1e3){ze(this,"cache",new Map);ze(this,"maxSize");this.maxSize=r}get(r){const t=this.cache.get(r);return t!==void 0&&(this.cache.delete(r),this.cache.set(r,t)),t}set(r,t){if(this.cache.has(r))this.cache.delete(r);else if(this.cache.size>=this.maxSize){const a=this.cache.keys().next().value;this.cache.delete(a)}this.cache.set(r,t)}clear(){this.cache.clear()}}function Jn(e){const r=new Set;function t(a){switch(a.Type){case"Identifier":a.Name&&!a.Name.startsWith("$")&&r.add(a.Name);break;case"MemberExpression":a.Arguments&&a.Arguments.forEach(t);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":a.Arguments&&a.Arguments.forEach(t);break}}return t(e),r}class Xn{constructor(){ze(this,"resultCache",new Kr(500));ze(this,"dependencyCache",new Kr(200));ze(this,"compiledExpressions",new Map)}createCacheKey(r,t){const a=JSON.stringify(r),n=JSON.stringify(t);return`${a}:${n}`}getDependencies(r){const t=JSON.stringify(r);let a=this.dependencyCache.get(t);return a||(a=Jn(r),this.dependencyCache.set(t,a)),a}getCachedResult(r,t,a){if(!a)return;const n=this.getDependencies(r);for(const i of n)if(t[i]!==a[i])return;const s=this.createCacheKey(r,t);return this.resultCache.get(s)}evaluate(r,t,a){const n=this.getCachedResult(r,t,a);if(n!==void 0)return n;const s=this.evaluateNode(r,t),i=this.createCacheKey(r,t);return this.resultCache.set(i,s),s}evaluateNode(r,t){switch(r.Type){case"Literal":return r.Value;case"Identifier":return this.getIdentifierValue(r,t);case"BinaryExpression":return this.evaluateBinaryExpression(r,t);case"LogicalExpression":return this.evaluateLogicalExpression(r,t);case"CallExpression":return this.evaluateCallExpression(r,t);case"MemberExpression":return this.evaluateMemberExpression(r,t);default:throw new Error(`Unsupported expression type: ${r.Type}`)}}getIdentifierValue(r,t){if(r.Name){if(r.Name==="NOW")return new Date;if(r.Name==="TODAY"){const a=new Date;return new Date(a.getFullYear(),a.getMonth(),a.getDate())}return r.Name==="CURRENT_USER_ID"?1:r.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:t[r.Name]}}evaluateBinaryExpression(r,t){if(!r.Arguments||r.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const a=this.evaluateNode(r.Arguments[0],t),n=this.evaluateNode(r.Arguments[1],t);switch(r.Operator){case"==":return a==n;case"!=":return a!=n;case"===":return a===n;case"!==":return a!==n;case"<":return Number(a)<Number(n);case"<=":return Number(a)<=Number(n);case">":return Number(a)>Number(n);case">=":return Number(a)>=Number(n);case"+":return Number(a)+Number(n);case"-":return Number(a)-Number(n);case"*":return Number(a)*Number(n);case"/":return Number(a)/Number(n);case"%":return Number(a)%Number(n);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}evaluateLogicalExpression(r,t){if(!r.Arguments||r.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(r.Operator){case"AND":for(const a of r.Arguments)if(!this.evaluateNode(a,t))return!1;return!0;case"OR":for(const a of r.Arguments)if(this.evaluateNode(a,t))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}evaluateCallExpression(r,t){var n;if(!r.Callee)throw new Error("Call expression requires a function name");const a=((n=r.Arguments)==null?void 0:n.map(s=>this.evaluateNode(s,t)))||[];switch(r.Callee){case"CONCAT":return a.map(d=>String(d||"")).join("");case"TRIM":return String(a[0]||"").trim();case"LENGTH":return String(a[0]||"").length;case"UPPER":return String(a[0]||"").toUpperCase();case"LOWER":return String(a[0]||"").toLowerCase();case"CONTAINS":return String(a[0]||"").includes(String(a[1]||""));case"MATCHES":return new RegExp(String(a[1])).test(String(a[0]||""));case"SUM":return a.reduce((d,y)=>d+(Number(y)||0),0);case"AVG":const s=a.filter(d=>!isNaN(Number(d)));return s.length>0?s.reduce((d,y)=>d+Number(y),0)/s.length:0;case"MIN":return Math.min(...a.map(d=>Number(d)||0));case"MAX":return Math.max(...a.map(d=>Number(d)||0));case"ROUND":return Math.round(Number(a[0])||0);case"FLOOR":return Math.floor(Number(a[0])||0);case"CEIL":return Math.ceil(Number(a[0])||0);case"ABS":return Math.abs(Number(a[0])||0);case"YEAR":return new Date(a[0]).getFullYear();case"MONTH":return new Date(a[0]).getMonth()+1;case"DAY":return new Date(a[0]).getDate();case"DATE_DIFF":const i=new Date(a[0]),m=new Date(a[1]),u=Math.abs(i.getTime()-m.getTime());return Math.ceil(u/(1e3*60*60*24));case"IF":return a[0]?a[1]:a[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${r.Callee}`)}}evaluateMemberExpression(r,t){var s;if(!r.Arguments||r.Arguments.length===0)throw new Error("Member expression requires arguments");const a=this.evaluateNode(r.Arguments[0],t),n=(s=r.Arguments[0].Property)==null?void 0:s.Name;return n&&a&&typeof a=="object"?a[n]:a}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const It=new Xn;function Zn(e,r,t,a,n){if(!t||t.length===0)return{isValid:!0};const s={...a,[e]:r};for(const i of t)try{if(!It.evaluate(i.ExpressionTree,s,n))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(m){console.warn(`Validation rule ${i.Id} failed to evaluate:`,m)}return{isValid:!0}}function zr(e){return Array.from(It.getDependencies(e))}function eo(e){const{source:r,operation:t,recordId:a,defaultValues:n={},mode:s="onBlur",enabled:i=!0,userRole:m,onSuccess:u,onError:d,onSchemaError:y,onSubmitError:D,skipSchemaFetch:_=!1,schema:F,draftOnEveryChange:G=!1}=e,[w,H]=l.useState(null),[q,$]=l.useState({}),[L,te]=l.useState(null),[ae,T]=l.useState(!1),[g]=l.useState({}),c=l.useRef(!1),C=l.useRef(null),v=l.useRef(null),N=l.useRef(u),j=l.useRef(d),K=l.useRef(D),Y=l.useRef(y);l.useEffect(()=>{N.current=u},[u]),l.useEffect(()=>{j.current=d},[d]),l.useEffect(()=>{K.current=D},[D]),l.useEffect(()=>{Y.current=y},[y]);const{data:ee,isLoading:U,error:Z,refetch:A}=Ce.useQuery({queryKey:["form-schema",r],queryFn:()=>_?Promise.resolve(F||{}):Wn(r),enabled:i&&(!_||!!F),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:fe,isLoading:Re,error:pe}=Ce.useQuery({queryKey:["form-record",r,a],queryFn:()=>Mn(r,a),enabled:i&&t==="update"&&!!a,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),Ee=l.useMemo(()=>{const f={...n};if(t==="update"&&fe&&Object.assign(f,fe),w)for(const[b,k]of Object.entries(w.fields))k.defaultValue!==void 0&&!(b in f)&&(f[b]=k.defaultValue);return f},[n,fe,t,w]),R=da.useForm({mode:s,defaultValues:n,values:t==="update"&&fe?Ee:void 0});l.useEffect(()=>{var f;if(ee)try{const b=jn(ee,{},m);H(b);const k=qn(b);Object.keys(k).length>0&&Gn(k).then($).catch(console.warn)}catch(b){console.error("Schema processing failed:",b),(f=Y.current)==null||f.call(Y,b)}},[ee,m]),l.useEffect(()=>{var f;Z&&((f=Y.current)==null||f.call(Y,Z))},[Z]),l.useEffect(()=>{var f;pe&&((f=j.current)==null||f.call(j,pe))},[pe]);const ne=l.useMemo(()=>{if(!w)return[];const f=new Set,b=new Set(w.computedFields);return Object.entries(w.fieldRules).forEach(([k,W])=>{W.computation.forEach(B=>{const J=w.rules.computation[B];J!=null&&J.ExpressionTree&&zr(J.ExpressionTree).forEach(ce=>{w.fields[ce]&&ce!==k&&!b.has(ce)&&f.add(ce)})})}),w.computedFields.forEach(k=>{const W=w.fields[k];W.backendField.Formula&&zr(W.backendField.Formula.ExpressionTree).forEach(J=>{w.fields[J]&&J!==k&&!b.has(J)&&f.add(J)})}),Array.from(f)},[w]),Se=l.useCallback(async f=>{!w||ne.length===0||!(G||ne.includes(f))||c.current||(C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{if(!w||c.current)return;const k=R.getValues();(async()=>{c.current=!0;try{const B=ve(r),J={};t==="update"&&a&&"_id"in k&&(J._id=k._id);const se=v.current??(t==="update"?fe:null)??{},ce=new Set(w.computedFields||[]);Object.keys(k).forEach(ue=>{if(ue==="_id"||ce.has(ue))return;const he=k[ue],Je=se[ue];JSON.stringify(he)!==JSON.stringify(Je)&&(he!==""&&he!==null&&he!==void 0)&&(J[ue]=he)});const Ae=J,De={...v.current};Object.keys(k).forEach(ue=>{ce.has(ue)||(De[ue]=k[ue])}),v.current=De;const Le=t==="update"&&a?await B.draftPatch(a,Ae):await B.draft(Ae);Le&&typeof Le=="object"&&(Object.entries(Le).forEach(([ue,he])=>{k[ue]!==he&&R.setValue(ue,he,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(Le).forEach(([ue,he])=>{ce.has(ue)&&(v.current[ue]=he)}))}catch(B){console.warn("Failed to compute fields via API:",B)}finally{c.current=!1}})()},300))},[w,t,a,fe,r,R,ne,G]),me=l.useCallback(async()=>{if(!w)return!1;const f=R.getValues();if(!await R.trigger())return!1;const k=w.crossFieldValidation.map(B=>({Id:B.Id,Condition:{ExpressionTree:B.ExpressionTree},Message:B.Message||`Validation failed for ${B.Name}`})),W=xn(k,f,q);return W.length>0?(W.forEach((B,J)=>{R.setError(`root.crossField${J}`,{type:"validate",message:B.message})}),!1):!0},[w,R.getValues,R.trigger,R.setError,q]),P=l.useCallback(async()=>{var f,b,k;if(!w)throw new Error("Schema not loaded");T(!0),te(null);try{if(!await me())throw new Error("Form validation failed");const B=R.getValues(),J=Hn(B,w.computedFields,t,fe),se=await Kn(r,t,J,a);if(!se.success)throw se.error||new Error("Submission failed");(f=N.current)==null||f.call(N,se.data||B),t==="create"&&R.reset()}catch(W){const B=W;throw te(B),(b=K.current)==null||b.call(K,B),(k=j.current)==null||k.call(j,B),W}finally{T(!1)}},[w,me,R,r,t,a,fe]),ke=l.useCallback(()=>R.handleSubmit(async()=>{await P()}),[R,P]),be=l.useCallback(f=>(w==null?void 0:w.fields[f])||null,[w]),ge=l.useCallback(()=>{if(!w)return{};const f={};return Object.entries(w.fields).forEach(([b,k])=>{f[b]=k}),f},[w]),Te=l.useCallback(f=>!!(w!=null&&w.fields[f]),[w]),xe=l.useCallback(f=>(w==null?void 0:w.requiredFields.includes(f))||!1,[w]),je=l.useCallback(f=>(w==null?void 0:w.computedFields.includes(f))||!1,[w]),V=l.useCallback(async()=>{await A()},[A]),oe=l.useCallback(()=>{R.clearErrors(),te(null)},[R]),ye=U||t==="update"&&Re,Qe=ye||ae,Me=Z||pe,_e=!!(Me||L),Ye=l.useMemo(()=>(w==null?void 0:w.computedFields)||[],[w]),We=l.useMemo(()=>(w==null?void 0:w.requiredFields)||[],[w]),p=l.useMemo(()=>{if(!w)return{};const f={};return Object.entries(w.fields).forEach(([b,k])=>{const W={};switch(k.required&&(W.required=`${k.label} is required`),k.permission.editable||(W.disabled=!0),k.type){case"number":W.valueAsNumber=!0;break;case"date":case"datetime-local":W.valueAsDate=!0;break}const B=k.rules.validation;B.length>0&&(W.validate={expressionValidation:J=>{const se=R.getValues();for(const ce of B){const Ae=w.rules.validation[ce];if(Ae){const De=Zn(b,J,[Ae],se,g);if(!De.isValid)return De.message||Ae.Message||"Invalid value"}}return!0}}),f[b]=W}),f},[w,R,q]);return{register:l.useCallback((f,b)=>{const k=p[f],W=b==null?void 0:b.onBlur,B=async J=>{W&&await W(J);let se=!0;s==="onBlur"||s==="onTouched"||s==="all"?se=await R.trigger(f):se=!R.getFieldState(f,R.formState).error,se&&await Se(f)};return R.register(f,{...k,...b,onBlur:B})},[R,p,Se,s]),handleSubmit:ke,watch:R.watch,setValue:R.setValue,reset:R.reset,errors:R.formState.errors,isValid:R.formState.isValid,isDirty:R.formState.isDirty,isSubmitting:R.formState.isSubmitting||ae,isSubmitSuccessful:R.formState.isSubmitSuccessful,formState:R.formState,isLoadingInitialData:ye,isLoadingRecord:Re,isLoading:Qe,loadError:Me,submitError:L,hasError:_e,schema:ee,processedSchema:w,computedFields:Ye,requiredFields:We,getField:be,getFields:ge,hasField:Te,isFieldRequired:xe,isFieldComputed:je,submit:P,refreshSchema:V,validateForm:me,clearErrors:oe}}const Gr=50,Hr=5,Qr=5;function ro({onCardMove:e,onError:r,columns:t,announceMove:a}){const[n,s]=l.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=l.useRef(null),m=l.useRef(null),u=l.useRef(null),d=l.useCallback(()=>{s({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),m.current&&(clearTimeout(m.current),m.current=null)},[]),y=l.useCallback(T=>t.find(g=>g._id===T)||null,[t]),D=l.useCallback(T=>{for(const g of t){const c=g.cards.find(C=>C._id===T);if(c)return{card:c,column:g}}return null},[t]),_=l.useCallback((T,g)=>{var c,C;try{const v=T.target,N=y(g.columnId);if(!N)throw new Error("Source column not found");(c=T.dataTransfer)==null||c.setData("text/plain",g._id),(C=T.dataTransfer)==null||C.setData("application/json",JSON.stringify(g));const j=v.cloneNode(!0);j.style.cssText=`
4
+ ...`:e}function ya(e,r){if(e==null)return"";switch(r||(typeof e=="boolean"?r="boolean":typeof e=="number"?r="number":e instanceof Date?r="datetime":Array.isArray(e)?r="array":typeof e=="object"?r="json":r="string"),r){case"id":case"string":return String(e);case"textarea":return st(String(e));case"number":return tt(e);case"boolean":return ot(e);case"date":return et(e);case"datetime":return rt(e);case"currency":return Zr(e);case"json":return at(e);case"array":return nt(e);default:return String(e)}}function it(e){var r,t,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(r=0;r<n;r++)e[r]&&(t=it(e[r]))&&(a&&(a+=" "),a+=t)}else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function wa(){for(var e,r,t=0,a="",n=arguments.length;t<n;t++)(e=arguments[t])&&(r=it(e))&&(a&&(a+=" "),a+=r);return a}const Ca=(e,r)=>{const t=new Array(e.length+r.length);for(let a=0;a<e.length;a++)t[a]=e[a];for(let a=0;a<r.length;a++)t[e.length+a]=r[a];return t},va=(e,r)=>({classGroupId:e,validator:r}),lt=(e=new Map,r=null,t)=>({nextPart:e,validators:r,classGroupId:t}),fr="-",$r=[],Ea="arbitrary..",Sa=e=>{const r=xa(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return ka(i);const m=i.split(fr),u=m[0]===""&&m.length>1?1:0;return ct(m,u,r)},getConflictingClassGroupIds:(i,m)=>{if(m){const u=a[i],d=t[i];return u?d?Ca(d,u):u:d||$r}return t[i]||$r}}},ct=(e,r,t)=>{if(e.length-r===0)return t.classGroupId;const n=e[r],s=t.nextPart.get(n);if(s){const d=ct(e,r+1,s);if(d)return d}const i=t.validators;if(i===null)return;const m=r===0?e.join(fr):e.slice(r).join(fr),u=i.length;for(let d=0;d<u;d++){const y=i[d];if(y.validator(m))return y.classGroupId}},ka=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),t=r.indexOf(":"),a=r.slice(0,t);return a?Ea+a:void 0})(),xa=e=>{const{theme:r,classGroups:t}=e;return Oa(t,r)},Oa=(e,r)=>{const t=lt();for(const a in e){const n=e[a];Or(n,t,a,r)}return t},Or=(e,r,t,a)=>{const n=e.length;for(let s=0;s<n;s++){const i=e[s];Na(i,r,t,a)}},Na=(e,r,t,a)=>{if(typeof e=="string"){Ra(e,r,t);return}if(typeof e=="function"){Ta(e,r,t,a);return}Aa(e,r,t,a)},Ra=(e,r,t)=>{const a=e===""?r:ut(r,e);a.classGroupId=t},Ta=(e,r,t,a)=>{if(Fa(e)){Or(e(a),r,t,a);return}r.validators===null&&(r.validators=[]),r.validators.push(va(t,e))},Aa=(e,r,t,a)=>{const n=Object.entries(e),s=n.length;for(let i=0;i<s;i++){const[m,u]=n[i];Or(u,ut(r,m),t,a)}},ut=(e,r)=>{let t=e;const a=r.split(fr),n=a.length;for(let s=0;s<n;s++){const i=a[s];let m=t.nextPart.get(i);m||(m=lt(),t.nextPart.set(i,m)),t=m}return t},Fa=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Da=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=Object.create(null),a=Object.create(null);const n=(s,i)=>{t[s]=i,r++,r>e&&(r=0,a=t,t=Object.create(null))};return{get(s){let i=t[s];if(i!==void 0)return i;if((i=a[s])!==void 0)return n(s,i),i},set(s,i){s in t?t[s]=i:n(s,i)}}},Sr="!",Ir=":",Va=[],jr=(e,r,t,a,n)=>({modifiers:e,hasImportantModifier:r,baseClassName:t,maybePostfixModifierPosition:a,isExternal:n}),_a=e=>{const{prefix:r,experimentalParseClassName:t}=e;let a=n=>{const s=[];let i=0,m=0,u=0,d;const y=n.length;for(let w=0;w<y;w++){const H=n[w];if(i===0&&m===0){if(H===Ir){s.push(n.slice(u,w)),u=w+1;continue}if(H==="/"){d=w;continue}}H==="["?i++:H==="]"?i--:H==="("?m++:H===")"&&m--}const D=s.length===0?n:n.slice(u);let _=D,F=!1;D.endsWith(Sr)?(_=D.slice(0,-1),F=!0):D.startsWith(Sr)&&(_=D.slice(1),F=!0);const G=d&&d>u?d-u:void 0;return jr(s,F,_,G)};if(r){const n=r+Ir,s=a;a=i=>i.startsWith(n)?s(i.slice(n.length)):jr(Va,!1,i,void 0,!0)}if(t){const n=a;a=s=>t({className:s,parseClassName:n})}return a},Pa=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((t,a)=>{r.set(t,1e6+a)}),t=>{const a=[];let n=[];for(let s=0;s<t.length;s++){const i=t[s],m=i[0]==="[",u=r.has(i);m||u?(n.length>0&&(n.sort(),a.push(...n),n=[]),a.push(i)):n.push(i)}return n.length>0&&(n.sort(),a.push(...n)),a}},$a=e=>({cache:Da(e.cacheSize),parseClassName:_a(e),sortModifiers:Pa(e),...Sa(e)}),Ia=/\s+/,ja=(e,r)=>{const{parseClassName:t,getClassGroupId:a,getConflictingClassGroupIds:n,sortModifiers:s}=r,i=[],m=e.trim().split(Ia);let u="";for(let d=m.length-1;d>=0;d-=1){const y=m[d],{isExternal:D,modifiers:_,hasImportantModifier:F,baseClassName:G,maybePostfixModifierPosition:w}=t(y);if(D){u=y+(u.length>0?" "+u:u);continue}let H=!!w,q=a(H?G.substring(0,w):G);if(!q){if(!H){u=y+(u.length>0?" "+u:u);continue}if(q=a(G),!q){u=y+(u.length>0?" "+u:u);continue}H=!1}const $=_.length===0?"":_.length===1?_[0]:s(_).join(":"),L=F?$+Sr:$,te=L+q;if(i.indexOf(te)>-1)continue;i.push(te);const ae=n(q,H);for(let T=0;T<ae.length;++T){const g=ae[T];i.push(L+g)}u=y+(u.length>0?" "+u:u)}return u},La=(...e)=>{let r=0,t,a,n="";for(;r<e.length;)(t=e[r++])&&(a=dt(t))&&(n&&(n+=" "),n+=a);return n},dt=e=>{if(typeof e=="string")return e;let r,t="";for(let a=0;a<e.length;a++)e[a]&&(r=dt(e[a]))&&(t&&(t+=" "),t+=r);return t},qa=(e,...r)=>{let t,a,n,s;const i=u=>{const d=r.reduce((y,D)=>D(y),e());return t=$a(d),a=t.cache.get,n=t.cache.set,s=m,m(u)},m=u=>{const d=a(u);if(d)return d;const y=ja(u,t);return n(u,y),y};return s=i,(...u)=>s(La(...u))},Ua=[],de=e=>{const r=t=>t[e]||Ua;return r.isThemeGetter=!0,r},ft=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,mt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ba=/^\d+\/\d+$/,Ma=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ka=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,za=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ga=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ha=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,er=e=>Ba.test(e),M=e=>!!e&&!Number.isNaN(Number(e)),Le=e=>!!e&&Number.isInteger(Number(e)),Cr=e=>e.endsWith("%")&&M(e.slice(0,-1)),Pe=e=>Ma.test(e),Qa=()=>!0,Ya=e=>Ka.test(e)&&!za.test(e),pt=()=>!1,Wa=e=>Ga.test(e),Ja=e=>Ha.test(e),Xa=e=>!x(e)&&!O(e),Za=e=>rr(e,bt,pt),x=e=>ft.test(e),ze=e=>rr(e,yt,Ya),vr=e=>rr(e,nn,M),Lr=e=>rr(e,gt,pt),en=e=>rr(e,ht,Ja),cr=e=>rr(e,wt,Wa),O=e=>mt.test(e),ar=e=>tr(e,yt),rn=e=>tr(e,on),qr=e=>tr(e,gt),tn=e=>tr(e,bt),an=e=>tr(e,ht),ur=e=>tr(e,wt,!0),rr=(e,r,t)=>{const a=ft.exec(e);return a?a[1]?r(a[1]):t(a[2]):!1},tr=(e,r,t=!1)=>{const a=mt.exec(e);return a?a[1]?r(a[1]):t:!1},gt=e=>e==="position"||e==="percentage",ht=e=>e==="image"||e==="url",bt=e=>e==="length"||e==="size"||e==="bg-size",yt=e=>e==="length",nn=e=>e==="number",on=e=>e==="family-name",wt=e=>e==="shadow",sn=()=>{const e=de("color"),r=de("font"),t=de("text"),a=de("font-weight"),n=de("tracking"),s=de("leading"),i=de("breakpoint"),m=de("container"),u=de("spacing"),d=de("radius"),y=de("shadow"),D=de("inset-shadow"),_=de("text-shadow"),F=de("drop-shadow"),G=de("blur"),w=de("perspective"),H=de("aspect"),q=de("ease"),$=de("animate"),L=()=>["auto","avoid","all","avoid-page","page","left","right","column"],te=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],ae=()=>[...te(),O,x],T=()=>["auto","hidden","clip","visible","scroll"],g=()=>["auto","contain","none"],c=()=>[O,x,u],C=()=>[er,"full","auto",...c()],v=()=>[Le,"none","subgrid",O,x],N=()=>["auto",{span:["full",Le,O,x]},Le,O,x],j=()=>[Le,"auto",O,x],K=()=>["auto","min","max","fr",O,x],Y=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ee=()=>["start","end","center","stretch","center-safe","end-safe"],U=()=>["auto",...c()],Z=()=>[er,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],A=()=>[e,O,x],fe=()=>[...te(),qr,Lr,{position:[O,x]}],Re=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pe=()=>["auto","cover","contain",tn,Za,{size:[O,x]}],Ee=()=>[Cr,ar,ze],R=()=>["","none","full",d,O,x],ne=()=>["",M,ar,ze],Se=()=>["solid","dashed","dotted","double"],me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],P=()=>[M,Cr,qr,Lr],ke=()=>["","none",G,O,x],be=()=>["none",M,O,x],ge=()=>["none",M,O,x],Te=()=>[M,O,x],xe=()=>[er,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Pe],breakpoint:[Pe],color:[Qa],container:[Pe],"drop-shadow":[Pe],ease:["in","out","in-out"],font:[Xa],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Pe],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Pe],shadow:[Pe],spacing:["px",M],text:[Pe],"text-shadow":[Pe],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",er,x,O,H]}],container:["container"],columns:[{columns:[M,x,O,m]}],"break-after":[{"break-after":L()}],"break-before":[{"break-before":L()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:ae()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:g()}],"overscroll-x":[{"overscroll-x":g()}],"overscroll-y":[{"overscroll-y":g()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{start:C()}],end:[{end:C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[Le,"auto",O,x]}],basis:[{basis:[er,"full","auto",m,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[M,er,"auto","initial","none",x]}],grow:[{grow:["",M,O,x]}],shrink:[{shrink:["",M,O,x]}],order:[{order:[Le,"first","last","none",O,x]}],"grid-cols":[{"grid-cols":v()}],"col-start-end":[{col:N()}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":v()}],"row-start-end":[{row:N()}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":K()}],"auto-rows":[{"auto-rows":K()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...Y(),"normal"]}],"justify-items":[{"justify-items":[...ee(),"normal"]}],"justify-self":[{"justify-self":["auto",...ee()]}],"align-content":[{content:["normal",...Y()]}],"align-items":[{items:[...ee(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ee(),{baseline:["","last"]}]}],"place-content":[{"place-content":Y()}],"place-items":[{"place-items":[...ee(),"baseline"]}],"place-self":[{"place-self":["auto",...ee()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:U()}],mx:[{mx:U()}],my:[{my:U()}],ms:[{ms:U()}],me:[{me:U()}],mt:[{mt:U()}],mr:[{mr:U()}],mb:[{mb:U()}],ml:[{ml:U()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:Z()}],w:[{w:[m,"screen",...Z()]}],"min-w":[{"min-w":[m,"screen","none",...Z()]}],"max-w":[{"max-w":[m,"screen","none","prose",{screen:[i]},...Z()]}],h:[{h:["screen","lh",...Z()]}],"min-h":[{"min-h":["screen","lh","none",...Z()]}],"max-h":[{"max-h":["screen","lh",...Z()]}],"font-size":[{text:["base",t,ar,ze]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,O,vr]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Cr,x]}],"font-family":[{font:[rn,x,r]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,O,x]}],"line-clamp":[{"line-clamp":[M,"none",O,vr]}],leading:[{leading:[s,...c()]}],"list-image":[{"list-image":["none",O,x]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",O,x]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:A()}],"text-color":[{text:A()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Se(),"wavy"]}],"text-decoration-thickness":[{decoration:[M,"from-font","auto",O,ze]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[M,"auto",O,x]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",O,x]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",O,x]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:fe()}],"bg-repeat":[{bg:Re()}],"bg-size":[{bg:pe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Le,O,x],radial:["",O,x],conic:[Le,O,x]},an,en]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:Ee()}],"gradient-via-pos":[{via:Ee()}],"gradient-to-pos":[{to:Ee()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Se(),"hidden","none"]}],"divide-style":[{divide:[...Se(),"hidden","none"]}],"border-color":[{border:A()}],"border-color-x":[{"border-x":A()}],"border-color-y":[{"border-y":A()}],"border-color-s":[{"border-s":A()}],"border-color-e":[{"border-e":A()}],"border-color-t":[{"border-t":A()}],"border-color-r":[{"border-r":A()}],"border-color-b":[{"border-b":A()}],"border-color-l":[{"border-l":A()}],"divide-color":[{divide:A()}],"outline-style":[{outline:[...Se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[M,O,x]}],"outline-w":[{outline:["",M,ar,ze]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",y,ur,cr]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",D,ur,cr]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[M,ze]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",_,ur,cr]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[M,O,x]}],"mix-blend":[{"mix-blend":[...me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[M]}],"mask-image-linear-from-pos":[{"mask-linear-from":P()}],"mask-image-linear-to-pos":[{"mask-linear-to":P()}],"mask-image-linear-from-color":[{"mask-linear-from":A()}],"mask-image-linear-to-color":[{"mask-linear-to":A()}],"mask-image-t-from-pos":[{"mask-t-from":P()}],"mask-image-t-to-pos":[{"mask-t-to":P()}],"mask-image-t-from-color":[{"mask-t-from":A()}],"mask-image-t-to-color":[{"mask-t-to":A()}],"mask-image-r-from-pos":[{"mask-r-from":P()}],"mask-image-r-to-pos":[{"mask-r-to":P()}],"mask-image-r-from-color":[{"mask-r-from":A()}],"mask-image-r-to-color":[{"mask-r-to":A()}],"mask-image-b-from-pos":[{"mask-b-from":P()}],"mask-image-b-to-pos":[{"mask-b-to":P()}],"mask-image-b-from-color":[{"mask-b-from":A()}],"mask-image-b-to-color":[{"mask-b-to":A()}],"mask-image-l-from-pos":[{"mask-l-from":P()}],"mask-image-l-to-pos":[{"mask-l-to":P()}],"mask-image-l-from-color":[{"mask-l-from":A()}],"mask-image-l-to-color":[{"mask-l-to":A()}],"mask-image-x-from-pos":[{"mask-x-from":P()}],"mask-image-x-to-pos":[{"mask-x-to":P()}],"mask-image-x-from-color":[{"mask-x-from":A()}],"mask-image-x-to-color":[{"mask-x-to":A()}],"mask-image-y-from-pos":[{"mask-y-from":P()}],"mask-image-y-to-pos":[{"mask-y-to":P()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[O,x]}],"mask-image-radial-from-pos":[{"mask-radial-from":P()}],"mask-image-radial-to-pos":[{"mask-radial-to":P()}],"mask-image-radial-from-color":[{"mask-radial-from":A()}],"mask-image-radial-to-color":[{"mask-radial-to":A()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":te()}],"mask-image-conic-pos":[{"mask-conic":[M]}],"mask-image-conic-from-pos":[{"mask-conic-from":P()}],"mask-image-conic-to-pos":[{"mask-conic-to":P()}],"mask-image-conic-from-color":[{"mask-conic-from":A()}],"mask-image-conic-to-color":[{"mask-conic-to":A()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:fe()}],"mask-repeat":[{mask:Re()}],"mask-size":[{mask:pe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",O,x]}],filter:[{filter:["","none",O,x]}],blur:[{blur:ke()}],brightness:[{brightness:[M,O,x]}],contrast:[{contrast:[M,O,x]}],"drop-shadow":[{"drop-shadow":["","none",F,ur,cr]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",M,O,x]}],"hue-rotate":[{"hue-rotate":[M,O,x]}],invert:[{invert:["",M,O,x]}],saturate:[{saturate:[M,O,x]}],sepia:[{sepia:["",M,O,x]}],"backdrop-filter":[{"backdrop-filter":["","none",O,x]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[M,O,x]}],"backdrop-contrast":[{"backdrop-contrast":[M,O,x]}],"backdrop-grayscale":[{"backdrop-grayscale":["",M,O,x]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[M,O,x]}],"backdrop-invert":[{"backdrop-invert":["",M,O,x]}],"backdrop-opacity":[{"backdrop-opacity":[M,O,x]}],"backdrop-saturate":[{"backdrop-saturate":[M,O,x]}],"backdrop-sepia":[{"backdrop-sepia":["",M,O,x]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",O,x]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[M,"initial",O,x]}],ease:[{ease:["linear","initial",q,O,x]}],delay:[{delay:[M,O,x]}],animate:[{animate:["none",$,O,x]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,O,x]}],"perspective-origin":[{"perspective-origin":ae()}],rotate:[{rotate:be()}],"rotate-x":[{"rotate-x":be()}],"rotate-y":[{"rotate-y":be()}],"rotate-z":[{"rotate-z":be()}],scale:[{scale:ge()}],"scale-x":[{"scale-x":ge()}],"scale-y":[{"scale-y":ge()}],"scale-z":[{"scale-z":ge()}],"scale-3d":["scale-3d"],skew:[{skew:Te()}],"skew-x":[{"skew-x":Te()}],"skew-y":[{"skew-y":Te()}],transform:[{transform:[O,x,"","none","gpu","cpu"]}],"transform-origin":[{origin:ae()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:xe()}],"translate-x":[{"translate-x":xe()}],"translate-y":[{"translate-y":xe()}],"translate-z":[{"translate-z":xe()}],"translate-none":["translate-none"],accent:[{accent:A()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:A()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",O,x]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",O,x]}],fill:[{fill:["none",...A()]}],"stroke-w":[{stroke:[M,ar,ze,vr]}],stroke:[{stroke:["none",...A()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},ln=qa(sn);function Ve(...e){return ln(wa(e))}const cn=()=>crypto.randomUUID(),Ct=e=>e==="And"||e==="Or"||e==="Not",vt=(e,r)=>{const t=[];if(e.operator||t.push("Operator is required"),e.operator&&Ct(e.operator))!e.children||!Array.isArray(e.children)?t.push("Logical operators require a children array"):e.children.length===0?t.push("Logical operators require at least one child condition"):e.operator==="Not"&&e.children.length>1&&t.push("Not operator can only have one child condition"),e.children&&Array.isArray(e.children)&&e.children.forEach((a,n)=>{const s=vt(a,r);s.isValid||t.push(...s.errors.map(i=>`Child ${n+1}: ${i}`))}),e.lhsField&&t.push("Logical operators should not have lhsField"),e.rhsValue!==void 0&&t.push("Logical operators should not have rhsValue");else{if(e.lhsField||t.push("Field is required for condition operators"),e.operator&&e.rhsValue!==void 0)switch(e.operator){case"Between":case"NotBetween":(!Array.isArray(e.rhsValue)||e.rhsValue.length!==2)&&t.push("Between operators require an array of two values");break;case"IN":case"NIN":(!Array.isArray(e.rhsValue)||e.rhsValue.length===0)&&t.push("IN/NIN operators require a non-empty array");break;case"Empty":case"NotEmpty":break;default:(e.rhsValue===null||e.rhsValue===void 0||e.rhsValue==="")&&t.push("Value is required for this operator");break}if(r&&e.lhsField&&e.operator){const a=r[e.lhsField];if(a&&(a.allowedOperators.includes(e.operator)||t.push(`Operator ${e.operator} is not allowed for field ${e.lhsField}`),a.validateValue&&e.rhsValue!==void 0)){const n=a.validateValue(e.rhsValue,e.operator);n.isValid||t.push(...n.errors)}}e.children&&e.children.length>0&&t.push("Condition operators should not have children")}return{isValid:t.length===0,errors:t}},Et=e=>Ct(e.operator)?{Operator:e.operator,Condition:(e.children||[]).filter(r=>r.isValid).map(r=>Et(r))}:{Operator:e.operator,LHSField:e.lhsField,RHSValue:e.rhsValue,RHSType:e.rhsType||"Constant"},un=(e,r)=>{if(e.length===0)return;const t=e.filter(a=>a.isValid);if(t.length!==0)return{Operator:r,Condition:t.map(a=>Et(a))}};function Nr(e={}){const[r,t]=l.useState({logicalOperator:e.initialLogicalOperator||"And",conditions:e.initialConditions||[]}),[a]=l.useState({logicalOperator:e.initialLogicalOperator||"And",conditions:e.initialConditions||[]}),n=l.useCallback(g=>vt(g,e.fieldDefinitions),[e.fieldDefinitions]),s=l.useCallback(()=>{const g=[];return r.conditions.forEach(c=>{const C=n(c);C.isValid||g.push(...C.errors.map(v=>`Condition ${c.id}: ${v}`))}),{isValid:g.length===0,errors:g}},[r.conditions,n]),i=l.useCallback(g=>{const c=cn(),C=g,v=n(C),N={...C,id:c,isValid:v.isValid,validationErrors:v.errors};return t(j=>({...j,conditions:[...j.conditions,N]})),e.onConditionAdd&&e.onConditionAdd(N),c},[n,e]),m=l.useCallback((g,c)=>{let C=!1;const v=c;return t(N=>({...N,conditions:N.conditions.map(j=>{if(j.id===g){C=!0;const K={...j,...v},Y=n(K),ee={...K,isValid:Y.isValid,validationErrors:Y.errors};return e.onConditionUpdate&&e.onConditionUpdate(ee),ee}return j})})),C},[n,e]),u=l.useCallback(g=>{let c=!1;return t(C=>({...C,conditions:C.conditions.filter(v=>v.id===g?(c=!0,e.onConditionRemove&&e.onConditionRemove(g),!1):!0)})),c},[e]),d=l.useCallback(()=>{t(g=>({...g,conditions:[]}))},[]),y=l.useCallback(g=>r.conditions.find(c=>c.id===g),[r.conditions]),D=l.useCallback(g=>{t(c=>({...c,logicalOperator:g}))},[]),_=l.useCallback(g=>{const c=g.map(C=>{const v=n(C);return{...C,isValid:v.isValid,validationErrors:v.errors}});t(C=>({...C,conditions:c}))},[n]),F=l.useCallback((g,c)=>{let C=!1;const v=c;return t(N=>({...N,conditions:N.conditions.map(j=>{if(j.id===g){C=!0;const K=n(v);return{...v,id:g,isValid:K.isValid,validationErrors:K.errors}}return j})})),C},[n]),G=l.useCallback(()=>({logicalOperator:r.logicalOperator,conditions:r.conditions.map(g=>({...g}))}),[r]),w=l.useCallback(g=>{const c=g.conditions.map(C=>{const v=n(C);return{...C,isValid:v.isValid,validationErrors:v.errors}});t({logicalOperator:g.logicalOperator,conditions:c})},[n]),H=l.useCallback(()=>{t({...a})},[a]),q=l.useMemo(()=>un(r.conditions,r.logicalOperator),[r.conditions,r.logicalOperator]),$=l.useMemo(()=>{const g=[];return r.conditions.forEach(c=>{!c.isValid&&c.validationErrors&&c.validationErrors.forEach(C=>{g.push({conditionId:c.id,field:c.lhsField||"",message:C})})}),g},[r.conditions]),L=l.useMemo(()=>r.conditions.every(g=>g.isValid),[r.conditions]),te=l.useCallback(()=>r.conditions.length,[r.conditions]),ae=l.useMemo(()=>r.conditions.length>0,[r.conditions]),T=l.useMemo(()=>!0,[]);return l.useEffect(()=>{e.onValidationError&&$.length>0&&e.onValidationError($)},[$,e]),{conditions:r.conditions,logicalOperator:r.logicalOperator,filterPayload:q,isValid:L,validationErrors:$,addCondition:i,updateCondition:m,removeCondition:u,clearConditions:d,getCondition:y,setLogicalOperator:D,setConditions:_,replaceCondition:F,validateCondition:n,validateAllConditions:s,exportState:G,importState:w,resetToInitial:H,getConditionCount:te,hasConditions:ae,canAddCondition:T}}const St=(e,r)=>{const t=[];switch(r){case"Between":case"NotBetween":if(!Array.isArray(e)||e.length!==2)t.push("Between operators require exactly two numeric values");else{const[a,n]=e;typeof a!="number"||typeof n!="number"?t.push("Between values must be numbers"):a>=n&&t.push("First value must be less than second value")}break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of numbers"):e.every(a=>typeof a=="number")||t.push("All values in array must be numbers");break;case"Empty":case"NotEmpty":break;default:(typeof e!="number"||isNaN(e))&&t.push("Value must be a valid number");break}return{isValid:t.length===0,errors:t}},kt=(e,r)=>{const t=[],a=s=>s instanceof Date&&!isNaN(s.getTime()),n=s=>{if(s instanceof Date)return s;if(typeof s=="string"||typeof s=="number"){const i=new Date(s);return a(i)?i:null}return null};switch(r){case"Between":case"NotBetween":if(!Array.isArray(e)||e.length!==2)t.push("Between operators require exactly two date values");else{const[s,i]=e.map(n);!s||!i?t.push("Between values must be valid dates"):s>=i&&t.push("Start date must be before end date")}break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of dates"):e.every(s=>n(s))||t.push("All values in array must be valid dates");break;case"Empty":case"NotEmpty":break;default:n(e)||t.push("Value must be a valid date");break}return{isValid:t.length===0,errors:t}},xt=(e,r)=>{const t=[],a=i=>i&&typeof i=="object"&&typeof i.value=="number"&&typeof i.currency=="string"&&i.currency.length===3,n=i=>typeof i=="string"&&/^\d+(\.\d{2})?\s[A-Z]{3}$/.test(i),s=i=>a(i)||n(i)||typeof i=="number";switch(r){case"Between":case"NotBetween":!Array.isArray(e)||e.length!==2?t.push("Between operators require exactly two currency values"):e.every(s)||t.push("Between values must be valid currency amounts");break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of currency values"):e.every(s)||t.push("All values in array must be valid currency amounts");break;case"Empty":case"NotEmpty":break;default:s(e)||t.push("Value must be a valid currency amount");break}return{isValid:t.length===0,errors:t}},Ot=(e,r)=>{const t=[];switch(r){case"Between":case"NotBetween":t.push("Between operators are not supported for string fields");break;case"GT":case"GTE":case"LT":case"LTE":t.push("Comparison operators are not supported for string fields");break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of strings"):e.every(a=>typeof a=="string")||t.push("All values in array must be strings");break;case"MinLength":(typeof e!="number"||e<0)&&t.push("MinLength value must be a non-negative number");break;case"MaxLength":(typeof e!="number"||e<0)&&t.push("MaxLength value must be a non-negative number");break;case"Empty":case"NotEmpty":break;default:typeof e!="string"&&t.push("Value must be a string");break}return{isValid:t.length===0,errors:t}},Nt=(e,r)=>{const t=[];if(!["EQ","NE","IN","NIN","Empty","NotEmpty"].includes(r))return t.push(`Operator ${r} is not supported for boolean fields`),{isValid:!1,errors:t};switch(r){case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of boolean values"):e.every(n=>typeof n=="boolean")||t.push("All values in array must be boolean");break;case"Empty":case"NotEmpty":break;default:typeof e!="boolean"&&t.push("Value must be a boolean (true or false)");break}return{isValid:t.length===0,errors:t}},Rt=(e,r,t)=>{const a=[];if(!t||t.length===0)return a.push("No select options defined for this field"),{isValid:!1,errors:a};const n=t.map(i=>i.value),s=i=>n.includes(i);switch(r){case"Between":case"NotBetween":case"GT":case"GTE":case"LT":case"LTE":a.push(`Operator ${r} is not supported for select fields`);break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?a.push("IN/NIN operators require a non-empty array of values"):e.every(s)||a.push("All values must be from the available options");break;case"Empty":case"NotEmpty":break;default:s(e)||a.push("Value must be one of the available options");break}return{isValid:a.length===0,errors:a}},qe=e=>{switch(e){case"string":return{type:"string",allowedOperators:["EQ","NE","Contains","NotContains","IN","NIN","Empty","NotEmpty","MinLength","MaxLength"],validateValue:Ot};case"number":return{type:"number",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:St};case"date":return{type:"date",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:kt};case"boolean":return{type:"boolean",allowedOperators:["EQ","NE","IN","NIN","Empty","NotEmpty"],validateValue:Nt};case"currency":return{type:"currency",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:xt};case"select":const r={type:"select",allowedOperators:["EQ","NE","IN","NIN","Empty","NotEmpty"],selectOptions:[]};return r.validateValue=(t,a)=>Rt(t,a,r.selectOptions),r;default:return qe("string")}},dn=e=>{const r={};return!e||typeof e!="object"||Object.keys(e).forEach(t=>{const a=e[t],n=t;typeof a=="string"?r[n]=qe("string"):typeof a=="number"?r[n]=qe("number"):typeof a=="boolean"?r[n]=qe("boolean"):a instanceof Date?r[n]=qe("date"):a&&typeof a=="object"&&"value"in a&&"currency"in a?r[n]=qe("currency"):r[n]=qe("string")}),r},ir=e=>e==="And"||e==="Or"||e==="Not",Tt=e=>ir(e.operator)?{Operator:e.operator,Condition:(e.children||[]).filter(r=>r.isValid).map(r=>Tt(r))}:{Operator:e.operator,LHSField:e.lhsField,RHSValue:e.rhsValue,RHSType:e.rhsType||"Constant"},At=(e,r)=>{if(e.length===0)return;const t=e.filter(a=>a.isValid);if(t.length!==0)return{Operator:r,Condition:t.map(Tt)}},fn=e=>At(e.conditions,e.logicalOperator),Rr=e=>e?!e.Operator||!["And","Or","Not"].includes(e.Operator)||!Array.isArray(e.Condition)||e.Condition.length===0||e.Operator==="Not"&&e.Condition.length!==1?!1:e.Condition.every(r=>{if(!r.Operator)return!1;if(ir(r.Operator))return Rr(r);{const t=r;return t.LHSField!==void 0&&t.RHSValue!==void 0&&(t.RHSType===void 0||["Constant","BOField","AppVariable"].includes(t.RHSType))}}):!0,Ft=e=>{if(ir(e.Operator))return{Operator:e.Operator,Condition:e.Condition.map(Ft)};{const r=e;return{Operator:r.Operator,LHSField:r.LHSField,RHSValue:r.RHSValue,RHSType:r.RHSType}}},Dt=e=>{if(e)return{Operator:e.Operator,Condition:e.Condition.map(Ft)}},mn=(e,r)=>{const t=e.filter(n=>n!==void 0&&Rr(n));if(t.length===0)return;if(t.length===1)return Dt(t[0]);const a=t.flatMap(n=>n.Condition);return{Operator:r,Condition:a}},Vt=e=>{if(ir(e.Operator)){const t=e.Condition.map(Vt);return t.length===1?e.Operator==="Not"?`NOT (${t[0]})`:t[0]:`(${t.join(` ${e.Operator} `)})`}else{const r=e,t=Array.isArray(r.RHSValue)?`[${r.RHSValue.join(", ")}]`:String(r.RHSValue);return`${r.LHSField} ${r.Operator} ${t}`}},pn=e=>{if(!e)return"No filters";const r=e.Condition.map(Vt);return r.length===1?r[0]:`(${r.join(` ${e.Operator} `)})`},_t=(e,r)=>{if(e.Operator!==r.Operator)return!1;if(ir(e.Operator)){const t=e,a=r;return t.Condition.length!==a.Condition.length?!1:t.Condition.every((n,s)=>_t(n,a.Condition[s]))}else{const t=e,a=r;return t.LHSField===a.LHSField&&JSON.stringify(t.RHSValue)===JSON.stringify(a.RHSValue)&&t.RHSType===a.RHSType}},gn=(e,r)=>!e&&!r?!0:!e||!r||e.Operator!==r.Operator||e.Condition.length!==r.Condition.length?!1:e.Condition.every((t,a)=>_t(t,r.Condition[a]));function hn(e){var R,ne,Se,me,P,ke,be,ge,Te,xe,Ie;const[r,t]=l.useState({query:""}),[a,n]=l.useState({field:((ne=(R=e.initialState)==null?void 0:R.sorting)==null?void 0:ne.field)||null,direction:((me=(Se=e.initialState)==null?void 0:Se.sorting)==null?void 0:me.direction)||null}),[s,i]=l.useState({global:((P=e.initialState)==null?void 0:P.globalFilter)||""}),[m,u]=l.useState({pageNo:((be=(ke=e.initialState)==null?void 0:ke.pagination)==null?void 0:be.pageNo)||1,pageSize:((Te=(ge=e.initialState)==null?void 0:ge.pagination)==null?void 0:Te.pageSize)||10}),d=Nr({initialConditions:(xe=e.initialState)==null?void 0:xe.filters,initialLogicalOperator:((Ie=e.initialState)==null?void 0:Ie.filterOperator)||"And",fieldDefinitions:e.fieldDefinitions,validateOnChange:!0,onValidationError:e.onFilterError,onConditionAdd:()=>{u(V=>({...V,pageNo:1}))},onConditionUpdate:()=>{u(V=>({...V,pageNo:1}))},onConditionRemove:()=>{u(V=>({...V,pageNo:1}))}}),y=l.useMemo(()=>{const V={};return r.query&&(V.Search=r.query),d.filterPayload&&(V.Filter=d.filterPayload),V},[r.query,d.filterPayload]),D=l.useMemo(()=>{const V={...y};return a.field&&a.direction&&(V.Sort=[{[String(a.field)]:a.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(V.Page=m.pageNo,V.PageSize=m.pageSize),V},[y,a,m,e.enablePagination]),{data:_,isLoading:F,isFetching:G,error:w,refetch:H}=Ce.useQuery({queryKey:["table",e.source,D],queryFn:async()=>{try{const V=await ve(e.source).list(D);return e.onSuccess&&e.onSuccess(V.Data),V}catch(V){throw e.onError&&e.onError(V),V}},staleTime:0,gcTime:0}),{data:q,isLoading:$,isFetching:L,error:te,refetch:ae}=Ce.useQuery({queryKey:["table-count",e.source,y],queryFn:async()=>{try{return await ve(e.source).count(y)}catch(V){throw e.onError&&e.onError(V),V}},staleTime:0,gcTime:0}),T=l.useMemo(()=>(_==null?void 0:_.Data)||[],[_]),g=l.useMemo(()=>(q==null?void 0:q.Count)||0,[q]),c=l.useMemo(()=>Math.ceil(g/m.pageSize),[g,m.pageSize]),C=l.useCallback(V=>{n(oe=>{if(oe.field===V){if(oe.direction==="asc")return{field:V,direction:"desc"};if(oe.direction==="desc")return{field:null,direction:null}}return{field:V,direction:"asc"}})},[]),v=l.useCallback(()=>{n({field:null,direction:null})},[]),N=l.useCallback((V,oe)=>{n({field:V,direction:oe})},[]),j=l.useCallback(V=>{t({query:V}),u(oe=>({...oe,pageNo:1}))},[]),K=l.useCallback(()=>{t({query:""})},[]),Y=l.useCallback(V=>{i(oe=>({...oe,global:V})),u(oe=>({...oe,pageNo:1}))},[]),ee=l.useCallback(()=>{i({global:""})},[]),U=m.pageNo<c,Z=m.pageNo>1,A=l.useCallback(()=>{U&&u(V=>({...V,pageNo:V.pageNo+1}))},[U]),fe=l.useCallback(()=>{Z&&u(V=>({...V,pageNo:V.pageNo-1}))},[Z]),Re=l.useCallback(V=>{const oe=Math.max(1,Math.min(V,c));u(ye=>({...ye,pageNo:oe}))},[c]),pe=l.useCallback(V=>{u(oe=>({...oe,pageSize:V,pageNo:1}))},[]),Ee=l.useCallback(async()=>{const[V]=await Promise.all([H(),ae()]);return V.data||{Data:[]}},[H,ae]);return{rows:T,totalItems:g,isLoading:F||$,isFetching:G||L,error:w||te,search:{query:r.query,setQuery:j,clear:K},sort:{field:a.field,direction:a.direction,toggle:C,clear:v,set:N},globalFilter:{value:s.global,setValue:Y,clear:ee},filter:{conditions:d.conditions,logicalOperator:d.logicalOperator,isValid:d.isValid,validationErrors:d.validationErrors,hasConditions:d.hasConditions,addCondition:d.addCondition,updateCondition:d.updateCondition,removeCondition:d.removeCondition,clearConditions:d.clearConditions,getCondition:d.getCondition,setLogicalOperator:d.setLogicalOperator,setConditions:d.setConditions,replaceCondition:d.replaceCondition,validateCondition:d.validateCondition,validateAllConditions:d.validateAllConditions,exportState:d.exportState,importState:d.importState,resetToInitial:d.resetToInitial,getConditionCount:d.getConditionCount},pagination:{currentPage:m.pageNo,pageSize:m.pageSize,totalPages:c,totalItems:g,canGoNext:U,canGoPrevious:Z,goToNext:A,goToPrevious:fe,goToPage:Re,setPageSize:pe},refetch:Ee}}function bn(){const e=new Date;return{NOW:e,TODAY:new Date(e.getFullYear(),e.getMonth(),e.getDate()),CURRENT_USER:{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"},CURRENT_USER_ID:1}}const yn={CONCAT:(...e)=>e.map(r=>String(r||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,r,t)=>{const a=String(e||"");return t!==void 0?a.substring(r,r+t):a.substring(r)},CONTAINS:(e,r)=>String(e||"").includes(String(r||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,r)=>{const t=new Date(e),a=new Date(r),n=Math.abs(t.getTime()-a.getTime());return Math.ceil(n/(1e3*60*60*24))},ADD_DAYS:(e,r)=>{const t=new Date(e);return t.setDate(t.getDate()+r),t},ADD_MONTHS:(e,r)=>{const t=new Date(e);return t.setMonth(t.getMonth()+r),t},SUM:(...e)=>e.reduce((r,t)=>r+(Number(t)||0),0),AVG:(...e)=>{const r=e.filter(t=>!isNaN(Number(t)));return r.length>0?r.reduce((t,a)=>t+Number(a),0)/r.length:0},MIN:(...e)=>Math.min(...e.map(r=>Number(r)||0)),MAX:(...e)=>Math.max(...e.map(r=>Number(r)||0)),ROUND:e=>Math.round(Number(e)||0),FLOOR:e=>Math.floor(Number(e)||0),CEIL:e=>Math.ceil(Number(e)||0),ABS:e=>Math.abs(Number(e)||0),IF:(e,r,t)=>e?r:t,IS_NULL:e=>e==null,IS_EMPTY:e=>!e||String(e).trim()==="",IS_NUMBER:e=>!isNaN(Number(e))&&e!==""&&e!==null&&e!==void 0,IS_DATE:e=>{const r=new Date(e);return!isNaN(r.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const r=Math.random()*16|0;return(e=="x"?r:r&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,r)=>Array.isArray(e)?e.includes(r):!1,ARRAY_JOIN:(e,r=",")=>Array.isArray(e)?e.join(r):""};function Ue(e,r){var t;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const d=r.systemValues[e.Name];return Er(d,e.Property.Name)}return r.systemValues[e.Name];case"Identifier":if(e.Property){const d=Ur(e,r);return Er(d,e.Property.Name)}return Ur(e,r);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const a=Ue(e.Arguments[0],r),n=(t=e.Arguments[0].Property)==null?void 0:t.Name;return n?Er(a,n):a;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const s=Ue(e.Arguments[0],r),i=Ue(e.Arguments[1],r);return wn(e.Operator,s,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return Cn(e.Operator,e.Arguments,r);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const m=yn[e.Callee];if(!m)throw new Error(`Unknown function: ${e.Callee}`);const u=(e.Arguments||[]).map(d=>Ue(d,r));return m(...u);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return Ue(e.Arguments[0],r);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Ur(e,r){const{Name:t,Source:a}=e;if(!t)throw new Error("Identifier requires Name");switch(a){case"Input":default:return r.formValues[t]}}function Er(e,r){if(!(!e||typeof e!="object"))return e[r]}function wn(e,r,t){const a=n=>n==null?0:typeof n=="number"?n:typeof n=="object"&&n!==null&&"value"in n?Number(n.value)||0:Number(n)||0;switch(e){case"==":return r==t;case"!=":return r!=t;case">":return a(r)>a(t);case"<":return a(r)<a(t);case">=":return a(r)>=a(t);case"<=":return a(r)<=a(t);case"+":return a(r)+a(t);case"-":return a(r)-a(t);case"*":return a(r)*a(t);case"/":const n=a(t);return n!==0?a(r)/n:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function Cn(e,r,t){switch(e){case"AND":return r.every(a=>!!Ue(a,t));case"OR":return r.some(a=>!!Ue(a,t));default:throw new Error(`Unknown logical operator: ${e}`)}}function Pt(e,r,t={}){const a={formValues:r,systemValues:bn(),referenceData:t};try{return Ue(e,a)}catch(n){return console.warn("Expression evaluation failed:",n),!1}}function vn(e,r,t={}){const a=[];for(const n of e)try{Pt(n.Condition.ExpressionTree,r,t)||a.push({isValid:!1,message:n.Message,fieldName:n.Id})}catch(s){console.warn(`Cross-field validation rule ${n.Id} failed:`,s)}return a}function En(e,r={},t={}){try{return Pt(e,r,t)}catch(a){return console.warn("Default value calculation failed:",a),null}}function Br(e,r){var m,u,d;const t=((m=e.Expression)==null?void 0:m.toLowerCase())||"",a=((u=e.Name)==null?void 0:u.toLowerCase())||"",n=((d=e.Id)==null?void 0:d.toLowerCase())||"",s=r.toLowerCase();return a.includes("required")||n.includes("required")?!0:[`${s} != null`,`${s} != ''`,`trim(${s}) != ''`,`${s}!=null`,`${s}!=''`].some(y=>t.includes(y))}function Sn(e){const r={...e};r.Rules||(r.Rules={Validation:{},Computation:{},BusinessLogic:{}}),r.Rules.Validation||(r.Rules.Validation={}),r.Rules.Computation||(r.Rules.Computation={}),r.Rules.BusinessLogic||(r.Rules.BusinessLogic={});const t={...r.Fields};return Object.entries(t).forEach(([a,n])=>{let s=n.Required||!1;if(n.Validation&&Array.isArray(n.Validation))if(n.Validation.length>0&&typeof n.Validation[0]=="object"){const i=[];n.Validation.forEach(m=>{r.Rules.Validation[m.Id]=m,i.push(m.Id),Br(m,a)&&(s=!0)}),t[a]={...n,Validation:i,Required:s}}else n.Validation.forEach(m=>{var d;const u=(d=r.Rules.Validation)==null?void 0:d[m];u&&Br(u,a)&&(s=!0)}),s&&!n.Required&&(t[a]={...n,Required:!0});if(n.Formula){const i=`RULE_COMPUTE_${a.toUpperCase()}`;r.Rules.Computation[i]={Id:i,Name:n.Formula.Id||`Compute ${a}`,Description:n.Formula.Description||`Computes value for ${a}`,Expression:n.Formula.Expression,ExpressionTree:n.Formula.ExpressionTree,ResultType:n.Type}}}),r.Fields=t,r}function kn(e){var t,a,n;const r={validation:{},computation:{},businessLogic:{}};return(t=e.Rules)!=null&&t.Validation&&(r.validation={...e.Rules.Validation}),(a=e.Rules)!=null&&a.Computation&&(r.computation={...e.Rules.Computation}),(n=e.Rules)!=null&&n.BusinessLogic&&(r.businessLogic={...e.Rules.BusinessLogic}),r}function xn(e){var a;const r={};if(!((a=e.Rules)!=null&&a.Computation))return r;const t=Object.entries(e.Fields).filter(([n,s])=>s.Computed).map(([n])=>n);return t.sort((n,s)=>s.length-n.length),Object.entries(e.Rules.Computation).forEach(([n,s])=>{const i=n.toUpperCase().replace(/[_-]/g,"");for(const u of t){const d=u.toUpperCase().replace(/[_-]/g,"");if(i.includes(d)){r[n]=u;return}}const m=`${s.Name||""} ${s.Description||""}`.toLowerCase();for(const u of t)if(m.includes(u.toLowerCase())){r[n]=u;return}}),r}function On(e,r){const t={};Object.keys(e.Fields).forEach(n=>{t[n]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([n,s])=>{s.Validation&&Array.isArray(s.Validation)&&s.Validation.forEach(m=>{r.validation[m]?t[n].validation.push(m):r.computation[m]?t[n].computation.push(m):r.businessLogic[m]&&t[n].businessLogic.push(m)}),s.Formula&&Object.entries(r.computation).forEach(([i,m])=>{var u;m.Expression===((u=s.Formula)==null?void 0:u.Expression)&&(t[n].computation.includes(i)||t[n].computation.push(i))})});const a=xn(e);return Object.entries(a).forEach(([n,s])=>{t[s]&&!t[s].computation.includes(n)&&t[s].computation.push(n)}),t}function Nn(e,r){const t={},a={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(n=>{var u,d,y,D,_,F;if(!r||!((u=e.RolePermission)!=null&&u[r])){t[n]=a;return}const s=e.RolePermission[r],i=((d=s.Editable)==null?void 0:d.includes(n))||((y=s.Editable)==null?void 0:y.includes("*"))||!1,m=((D=s.ReadOnly)==null?void 0:D.includes(n))||((_=s.ReadOnly)==null?void 0:_.includes("*"))||i;t[n]={editable:i&&!((F=s.ReadOnly)!=null&&F.includes(n)),readable:m,hidden:!m}}),t}function Rn(e){return{Id:"legacy_schema",Name:"Legacy Schema",Kind:"BusinessObject",Description:"Converted from legacy schema format",Rules:{Validation:{},Computation:{},BusinessLogic:{}},Fields:Object.fromEntries(Object.entries(e).map(([r,t])=>[r,{...t,Id:r,Name:t.Description||r,Validation:[]}])),RolePermission:{},Roles:{}}}function Tn(e,r){switch(e){case"String":return r.toLowerCase().includes("email")?"email":r.toLowerCase().includes("password")?"password":"text";case"Number":return"number";case"Boolean":return"checkbox";case"Date":return"date";case"DateTime":return"datetime-local";case"Reference":return"reference";case"Array":case"Object":return"textarea";default:return"text"}}function $t(e){return e.replace(/([A-Z])/g," $1").replace(/^./,r=>r.toUpperCase()).replace(/_/g," ").trim()}function An(e,r,t){const a={};switch(r.Required&&(a.required={value:!0,message:`${$t(e)} is required`}),r.Type){case"Number":a.valueAsNumber=!0;break;case"Date":case"DateTime":a.valueAsDate=!0;break}return r.Validation&&r.Validation.length>0&&(a.validate=()=>!0),a}function Fn(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(r=>({value:r.Value,label:r.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function Dn(e,r={}){if(!e.DefaultValue)switch(e.Type){case"Boolean":return!1;case"Number":return 0;case"String":return"";case"Array":return[];case"Object":return{};default:return}return En(e.DefaultValue.ExpressionTree,r)}function Vn(e,r,t,a={},n,s){const i={editable:!0,readable:!0,hidden:!1},u=s||{validation:[],computation:[],businessLogic:[]},d=r.Computed||!!r.Formula||u.computation.length>0,y=An(e,r);return d&&(y.disabled=!0),{name:e,type:Tn(r.Type,e),label:r.Name||$t(e),required:r.Required||!1,computed:d,defaultValue:Dn(r,a),options:Fn(r),validation:y,description:r.Description,backendField:r,permission:n||i,rules:u}}function _n(e,r={},t){let a="Kind"in e&&e.Kind==="BusinessObject"?e:Rn(e);a=Sn(a);const n={},s=[],i=[],m=[],u=[],d=kn(a),y=On(a,d),D=Nn(a,t);for(const[_,F]of Object.entries(a.Fields)){if(_.startsWith("_")&&!["_id"].includes(_))continue;const G=D[_];if(G.hidden)continue;const w=Vn(_,F,a.Fields,r,G,y[_]||{validation:[],computation:[],businessLogic:[]});n[_]=w,s.push(_),w.computed&&i.push(_),w.required&&m.push(_)}return{fields:n,fieldOrder:s,computedFields:i,requiredFields:m,crossFieldValidation:u,rules:d,fieldRules:y,rolePermissions:a.RolePermission}}function Pn(e){var t;if(e.type!=="reference"||!((t=e.backendField.Values)!=null&&t.Reference))return null;const r=e.backendField.Values.Reference;return{businessObject:r.BusinessObject,fields:r.Fields||["_id"],filters:r.Filters,sort:r.Sort}}function $n(e){const r={};for(const[t,a]of Object.entries(e.fields))if(a.type==="reference"){const n=Pn(a);n&&(r[t]=n)}return r}async function In(e){try{const t=(await Xr(e)).BOBlob;if(!t||typeof t!="object"||!t.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return t}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load form schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function jn(e,r=3){let t;for(let a=1;a<=r;a++)try{return await In(e)}catch(n){if(t=n,a<r){const s=Math.min(1e3*Math.pow(2,a-1),5e3);await new Promise(i=>setTimeout(i,s));continue}}throw t}async function Ln(e,r){try{return await ve(e).get(r)}catch(t){throw console.error(`Record fetch error for ${e}/${r}:`,t),new Error(`Failed to load record: ${t instanceof Error?t.message:"Unknown error"}`)}}async function qn(e,r,t,a){try{let n;if(r==="create")return n=await ve(e).create(t),{success:!0,data:n,recordId:n._id||a};if(r==="update"){if(!a)throw new Error("Record ID is required for update operations");return n=await ve(e).update(a,t),{success:!0,data:n,recordId:n._id||a}}else throw new Error(`Unsupported operation: ${r}`)}catch(n){return console.error("Form submission error:",n),{success:!1,error:new Error(`Failed to ${r} record: ${n instanceof Error?n.message:"Unknown error"}`)}}}async function Un(e,r=["_id"],t,a){try{const n={};return t&&(n.Filter=t),a&&(n.Sort=a),r.length>0&&(n.Field=r),(await ve(e).list(n)).Data||[]}catch(n){return console.error(`Reference data fetch error for ${e}:`,n),[]}}async function Bn(e){const r={},t=Object.entries(e).map(async([n,s])=>{try{const i=await Un(s.businessObject,s.fields,s.filters,s.sort);return[n,i]}catch(i){return console.warn(`Failed to fetch reference data for ${n}:`,i),[n,[]]}});return(await Promise.allSettled(t)).forEach(n=>{if(n.status==="fulfilled"){const[s,i]=n.value;r[s]=Array.isArray(i)?i:[]}}),r}function Mn(e,r,t="create",a){const n={};return Object.keys(e).forEach(s=>{const i=s,m=e[i];if(!r.includes(s)&&m!==void 0){if(t==="create"){n[i]=m;return}if(t==="update"){if(!a){n[i]=m;return}const u=a[i];JSON.stringify(m)!==JSON.stringify(u)&&(n[i]=m)}}}),n}const kr=new Map;function Kn(e,r,t=10){kr.set(e,{data:r,timestamp:Date.now(),ttl:t*60*1e3})}function zn(e){const r=kr.get(e);return r?Date.now()-r.timestamp>r.ttl?(kr.delete(e),null):r.data:null}async function Gn(e){const r=`schema:${e}`,t=zn(r);if(t)return t;const a=await jn(e);return Kn(r,a,30),a}class Mr{constructor(r=1e3){Ke(this,"cache",new Map);Ke(this,"maxSize");this.maxSize=r}get(r){const t=this.cache.get(r);return t!==void 0&&(this.cache.delete(r),this.cache.set(r,t)),t}set(r,t){if(this.cache.has(r))this.cache.delete(r);else if(this.cache.size>=this.maxSize){const a=this.cache.keys().next().value;this.cache.delete(a)}this.cache.set(r,t)}clear(){this.cache.clear()}}function Hn(e){const r=new Set;function t(a){switch(a.Type){case"Identifier":a.Name&&!a.Name.startsWith("$")&&r.add(a.Name);break;case"MemberExpression":a.Arguments&&a.Arguments.forEach(t);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":a.Arguments&&a.Arguments.forEach(t);break}}return t(e),r}class Qn{constructor(){Ke(this,"resultCache",new Mr(500));Ke(this,"dependencyCache",new Mr(200));Ke(this,"compiledExpressions",new Map)}createCacheKey(r,t){const a=JSON.stringify(r),n=JSON.stringify(t);return`${a}:${n}`}getDependencies(r){const t=JSON.stringify(r);let a=this.dependencyCache.get(t);return a||(a=Hn(r),this.dependencyCache.set(t,a)),a}getCachedResult(r,t,a){if(!a)return;const n=this.getDependencies(r);for(const i of n)if(t[i]!==a[i])return;const s=this.createCacheKey(r,t);return this.resultCache.get(s)}evaluate(r,t,a){const n=this.getCachedResult(r,t,a);if(n!==void 0)return n;const s=this.evaluateNode(r,t),i=this.createCacheKey(r,t);return this.resultCache.set(i,s),s}evaluateNode(r,t){switch(r.Type){case"Literal":return r.Value;case"Identifier":return this.getIdentifierValue(r,t);case"BinaryExpression":return this.evaluateBinaryExpression(r,t);case"LogicalExpression":return this.evaluateLogicalExpression(r,t);case"CallExpression":return this.evaluateCallExpression(r,t);case"MemberExpression":return this.evaluateMemberExpression(r,t);default:throw new Error(`Unsupported expression type: ${r.Type}`)}}getIdentifierValue(r,t){if(r.Name){if(r.Name==="NOW")return new Date;if(r.Name==="TODAY"){const a=new Date;return new Date(a.getFullYear(),a.getMonth(),a.getDate())}return r.Name==="CURRENT_USER_ID"?1:r.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:t[r.Name]}}evaluateBinaryExpression(r,t){if(!r.Arguments||r.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const a=this.evaluateNode(r.Arguments[0],t),n=this.evaluateNode(r.Arguments[1],t);switch(r.Operator){case"==":return a==n;case"!=":return a!=n;case"===":return a===n;case"!==":return a!==n;case"<":return Number(a)<Number(n);case"<=":return Number(a)<=Number(n);case">":return Number(a)>Number(n);case">=":return Number(a)>=Number(n);case"+":return Number(a)+Number(n);case"-":return Number(a)-Number(n);case"*":return Number(a)*Number(n);case"/":return Number(a)/Number(n);case"%":return Number(a)%Number(n);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}evaluateLogicalExpression(r,t){if(!r.Arguments||r.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(r.Operator){case"AND":for(const a of r.Arguments)if(!this.evaluateNode(a,t))return!1;return!0;case"OR":for(const a of r.Arguments)if(this.evaluateNode(a,t))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}evaluateCallExpression(r,t){var n;if(!r.Callee)throw new Error("Call expression requires a function name");const a=((n=r.Arguments)==null?void 0:n.map(s=>this.evaluateNode(s,t)))||[];switch(r.Callee){case"CONCAT":return a.map(d=>String(d||"")).join("");case"TRIM":return String(a[0]||"").trim();case"LENGTH":return String(a[0]||"").length;case"UPPER":return String(a[0]||"").toUpperCase();case"LOWER":return String(a[0]||"").toLowerCase();case"CONTAINS":return String(a[0]||"").includes(String(a[1]||""));case"MATCHES":return new RegExp(String(a[1])).test(String(a[0]||""));case"SUM":return a.reduce((d,y)=>d+(Number(y)||0),0);case"AVG":const s=a.filter(d=>!isNaN(Number(d)));return s.length>0?s.reduce((d,y)=>d+Number(y),0)/s.length:0;case"MIN":return Math.min(...a.map(d=>Number(d)||0));case"MAX":return Math.max(...a.map(d=>Number(d)||0));case"ROUND":return Math.round(Number(a[0])||0);case"FLOOR":return Math.floor(Number(a[0])||0);case"CEIL":return Math.ceil(Number(a[0])||0);case"ABS":return Math.abs(Number(a[0])||0);case"YEAR":return new Date(a[0]).getFullYear();case"MONTH":return new Date(a[0]).getMonth()+1;case"DAY":return new Date(a[0]).getDate();case"DATE_DIFF":const i=new Date(a[0]),m=new Date(a[1]),u=Math.abs(i.getTime()-m.getTime());return Math.ceil(u/(1e3*60*60*24));case"IF":return a[0]?a[1]:a[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${r.Callee}`)}}evaluateMemberExpression(r,t){var s;if(!r.Arguments||r.Arguments.length===0)throw new Error("Member expression requires arguments");const a=this.evaluateNode(r.Arguments[0],t),n=(s=r.Arguments[0].Property)==null?void 0:s.Name;return n&&a&&typeof a=="object"?a[n]:a}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const It=new Qn;function Yn(e,r,t,a,n){if(!t||t.length===0)return{isValid:!0};const s={...a,[e]:r};for(const i of t)try{if(!It.evaluate(i.ExpressionTree,s,n))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(m){console.warn(`Validation rule ${i.Id} failed to evaluate:`,m)}return{isValid:!0}}function Kr(e){return Array.from(It.getDependencies(e))}function Wn(e){const{source:r,operation:t,recordId:a,defaultValues:n={},mode:s="onBlur",enabled:i=!0,userRole:m,onSuccess:u,onError:d,onSchemaError:y,onSubmitError:D,skipSchemaFetch:_=!1,schema:F,draftOnEveryChange:G=!1}=e,[w,H]=l.useState(null),[q,$]=l.useState({}),[L,te]=l.useState(null),[ae,T]=l.useState(!1),[g]=l.useState({}),c=l.useRef(!1),C=l.useRef(null),v=l.useRef(null),N=l.useRef(u),j=l.useRef(d),K=l.useRef(D),Y=l.useRef(y);l.useEffect(()=>{N.current=u},[u]),l.useEffect(()=>{j.current=d},[d]),l.useEffect(()=>{K.current=D},[D]),l.useEffect(()=>{Y.current=y},[y]);const{data:ee,isLoading:U,error:Z,refetch:A}=Ce.useQuery({queryKey:["form-schema",r],queryFn:()=>_?Promise.resolve(F||{}):Gn(r),enabled:i&&(!_||!!F),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:fe,isLoading:Re,error:pe}=Ce.useQuery({queryKey:["form-record",r,a],queryFn:()=>Ln(r,a),enabled:i&&t==="update"&&!!a,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),Ee=l.useMemo(()=>{const f={...n};if(t==="update"&&fe&&Object.assign(f,fe),w)for(const[b,k]of Object.entries(w.fields))k.defaultValue!==void 0&&!(b in f)&&(f[b]=k.defaultValue);return f},[n,fe,t,w]),R=ia.useForm({mode:s,defaultValues:n,values:t==="update"&&fe?Ee:void 0});l.useEffect(()=>{var f;if(ee)try{const b=_n(ee,{},m);H(b);const k=$n(b);Object.keys(k).length>0&&Bn(k).then($).catch(console.warn)}catch(b){console.error("Schema processing failed:",b),(f=Y.current)==null||f.call(Y,b)}},[ee,m]),l.useEffect(()=>{var f;Z&&((f=Y.current)==null||f.call(Y,Z))},[Z]),l.useEffect(()=>{var f;pe&&((f=j.current)==null||f.call(j,pe))},[pe]);const ne=l.useMemo(()=>{if(!w)return[];const f=new Set,b=new Set(w.computedFields);return Object.entries(w.fieldRules).forEach(([k,W])=>{W.computation.forEach(B=>{const J=w.rules.computation[B];J!=null&&J.ExpressionTree&&Kr(J.ExpressionTree).forEach(ce=>{w.fields[ce]&&ce!==k&&!b.has(ce)&&f.add(ce)})})}),w.computedFields.forEach(k=>{const W=w.fields[k];W.backendField.Formula&&Kr(W.backendField.Formula.ExpressionTree).forEach(J=>{w.fields[J]&&J!==k&&!b.has(J)&&f.add(J)})}),Array.from(f)},[w]),Se=l.useCallback(async f=>{!w||ne.length===0||!(G||ne.includes(f))||c.current||(C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{if(!w||c.current)return;const k=R.getValues();(async()=>{c.current=!0;try{const B=ve(r),J={};t==="update"&&a&&"_id"in k&&(J._id=k._id);const se=v.current??(t==="update"?fe:null)??{},ce=new Set(w.computedFields||[]);Object.keys(k).forEach(ue=>{if(ue==="_id"||ce.has(ue))return;const he=k[ue],Je=se[ue];JSON.stringify(he)!==JSON.stringify(Je)&&(he!==""&&he!==null&&he!==void 0)&&(J[ue]=he)});const Ae=J,De={...v.current};Object.keys(k).forEach(ue=>{ce.has(ue)||(De[ue]=k[ue])}),v.current=De;const je=t==="update"&&a?await B.draftPatch(a,Ae):await B.draft(Ae);je&&typeof je=="object"&&(Object.entries(je).forEach(([ue,he])=>{k[ue]!==he&&R.setValue(ue,he,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(je).forEach(([ue,he])=>{ce.has(ue)&&(v.current[ue]=he)}))}catch(B){console.warn("Failed to compute fields via API:",B)}finally{c.current=!1}})()},300))},[w,t,a,fe,r,R,ne,G]),me=l.useCallback(async()=>{if(!w)return!1;const f=R.getValues();if(!await R.trigger())return!1;const k=w.crossFieldValidation.map(B=>({Id:B.Id,Condition:{ExpressionTree:B.ExpressionTree},Message:B.Message||`Validation failed for ${B.Name}`})),W=vn(k,f,q);return W.length>0?(W.forEach((B,J)=>{R.setError(`root.crossField${J}`,{type:"validate",message:B.message})}),!1):!0},[w,R.getValues,R.trigger,R.setError,q]),P=l.useCallback(async()=>{var f,b,k;if(!w)throw new Error("Schema not loaded");T(!0),te(null);try{if(!await me())throw new Error("Form validation failed");const B=R.getValues(),J=Mn(B,w.computedFields,t,fe),se=await qn(r,t,J,a);if(!se.success)throw se.error||new Error("Submission failed");(f=N.current)==null||f.call(N,se.data||B),t==="create"&&R.reset()}catch(W){const B=W;throw te(B),(b=K.current)==null||b.call(K,B),(k=j.current)==null||k.call(j,B),W}finally{T(!1)}},[w,me,R,r,t,a,fe]),ke=l.useCallback(()=>R.handleSubmit(async()=>{await P()}),[R,P]),be=l.useCallback(f=>(w==null?void 0:w.fields[f])||null,[w]),ge=l.useCallback(()=>{if(!w)return{};const f={};return Object.entries(w.fields).forEach(([b,k])=>{f[b]=k}),f},[w]),Te=l.useCallback(f=>!!(w!=null&&w.fields[f]),[w]),xe=l.useCallback(f=>(w==null?void 0:w.requiredFields.includes(f))||!1,[w]),Ie=l.useCallback(f=>(w==null?void 0:w.computedFields.includes(f))||!1,[w]),V=l.useCallback(async()=>{await A()},[A]),oe=l.useCallback(()=>{R.clearErrors(),te(null)},[R]),ye=U||t==="update"&&Re,Qe=ye||ae,Be=Z||pe,_e=!!(Be||L),Ye=l.useMemo(()=>(w==null?void 0:w.computedFields)||[],[w]),We=l.useMemo(()=>(w==null?void 0:w.requiredFields)||[],[w]),p=l.useMemo(()=>{if(!w)return{};const f={};return Object.entries(w.fields).forEach(([b,k])=>{const W={};switch(k.required&&(W.required=`${k.label} is required`),k.permission.editable||(W.disabled=!0),k.type){case"number":W.valueAsNumber=!0;break;case"date":case"datetime-local":W.valueAsDate=!0;break}const B=k.rules.validation;B.length>0&&(W.validate={expressionValidation:J=>{const se=R.getValues();for(const ce of B){const Ae=w.rules.validation[ce];if(Ae){const De=Yn(b,J,[Ae],se,g);if(!De.isValid)return De.message||Ae.Message||"Invalid value"}}return!0}}),f[b]=W}),f},[w,R,q]);return{register:l.useCallback((f,b)=>{const k=p[f],W=b==null?void 0:b.onBlur,B=async J=>{W&&await W(J);let se=!0;s==="onBlur"||s==="onTouched"||s==="all"?se=await R.trigger(f):se=!R.getFieldState(f,R.formState).error,se&&await Se(f)};return R.register(f,{...k,...b,onBlur:B})},[R,p,Se,s]),handleSubmit:ke,watch:R.watch,setValue:R.setValue,reset:R.reset,errors:R.formState.errors,isValid:R.formState.isValid,isDirty:R.formState.isDirty,isSubmitting:R.formState.isSubmitting||ae,isSubmitSuccessful:R.formState.isSubmitSuccessful,formState:R.formState,isLoadingInitialData:ye,isLoadingRecord:Re,isLoading:Qe,loadError:Be,submitError:L,hasError:_e,schema:ee,processedSchema:w,computedFields:Ye,requiredFields:We,getField:be,getFields:ge,hasField:Te,isFieldRequired:xe,isFieldComputed:Ie,submit:P,refreshSchema:V,validateForm:me,clearErrors:oe}}const zr=50,Gr=5,Hr=5;function Jn({onCardMove:e,onError:r,columns:t,announceMove:a}){const[n,s]=l.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=l.useRef(null),m=l.useRef(null),u=l.useRef(null),d=l.useCallback(()=>{s({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),m.current&&(clearTimeout(m.current),m.current=null)},[]),y=l.useCallback(T=>t.find(g=>g._id===T)||null,[t]),D=l.useCallback(T=>{for(const g of t){const c=g.cards.find(C=>C._id===T);if(c)return{card:c,column:g}}return null},[t]),_=l.useCallback((T,g)=>{var c,C;try{const v=T.target,N=y(g.columnId);if(!N)throw new Error("Source column not found");(c=T.dataTransfer)==null||c.setData("text/plain",g._id),(C=T.dataTransfer)==null||C.setData("application/json",JSON.stringify(g));const j=v.cloneNode(!0);j.style.cssText=`
5
5
  position: fixed;
6
6
  top: -1000px;
7
7
  left: -1000px;
@@ -13,7 +13,7 @@
13
13
  max-width: 300px;
14
14
  background: white;
15
15
  border-radius: 8px;
16
- `,document.body.appendChild(j),i.current=j,T.dataTransfer&&T.dataTransfer.setDragImage(j,T.offsetX||50,T.offsetY||20),s({isDragging:!0,draggedCard:g,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:N._id}),a==null||a(g,N.title,"being moved")}catch(v){r==null||r(v instanceof Error?v:new Error("Drag start failed")),d()}},[y,r,d,a]),F=l.useCallback((T,g)=>{if(T.preventDefault(),!n.isDragging||!n.draggedCard)return;const c=g?y(g):null;s(C=>({...C,dragOverColumn:(c==null?void 0:c._id)||null,dragOverPosition:null})),H(T)},[n.isDragging,n.draggedCard,y]),G=l.useCallback((T,g)=>{if(T.preventDefault(),!(!n.isDragging||!n.draggedCard))try{const c=n.draggedCard,C=n.dragSourceColumn,v=y(g),N=y(C);if(!v||!N)throw new Error("Target or source column not found");if(C===g){d();return}if(v.limit&&v.cards.length>=v.limit)throw new Error(`Column "${v.title}" has reached its limit of ${v.limit} cards`);e==null||e(c,C,g),a==null||a(c,N.title,v.title)}catch(c){r==null||r(c instanceof Error?c:new Error("Drop failed"))}finally{d()}},[n,y,e,r,d,a]),w=l.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),d()},[d]),H=l.useCallback(T=>{const g=T.target.closest(".kanban-container");if(!g)return;const c=g.getBoundingClientRect(),C=T.clientX-c.left,v=c.width;let N=0;if(C<Gr?N=-Hr:C>v-Gr&&(N=Hr),N!==0){m.current&&clearTimeout(m.current);const j=()=>{g.scrollLeft+=N,m.current=setTimeout(j,16)};m.current=setTimeout(j,100)}else m.current&&(clearTimeout(m.current),m.current=null)},[]),q=l.useCallback((T,g)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(T.key))return;T.preventDefault();const c=D(g._id);if(!c)return;const{column:C}=c,v=t.findIndex(N=>N._id===C._id);try{switch(T.key){case"ArrowLeft":if(v>0){const N=t[v-1];e==null||e(g,C._id,N._id),a==null||a(g,C.title,N.title)}break;case"ArrowRight":if(v<t.length-1){const N=t[v+1];e==null||e(g,C._id,N._id),a==null||a(g,C.title,N.title)}break;case"ArrowUp":a==null||a(g,"current position","position above");break;case"ArrowDown":a==null||a(g,"current position","position below");break;case"Enter":case"Space":a==null||a(g,C.title,"drag mode");break;case"Escape":a==null||a(g,"drag mode","cancelled");break}}catch(N){r==null||r(N instanceof Error?N:new Error("Keyboard navigation failed"))}},[D,t,e,r,a]),$=l.useCallback((T,g)=>{const c=T.touches[0];u.current={x:c.clientX,y:c.clientY,card:g}},[]),L=l.useCallback(T=>{if(!u.current)return;const g=T.touches[0],c=Math.abs(g.clientX-u.current.x),C=Math.abs(g.clientY-u.current.y);if(c>Qr||C>Qr){const v=u.current.card,N=y(v.columnId);if(!N)return;s({isDragging:!0,draggedCard:v,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:N._id}),a==null||a(v,N.title,"being moved")}},[y,a]),te=l.useCallback(T=>{if(!n.isDragging||!n.draggedCard||!u.current){u.current=null;return}try{const g=T.changedTouches[0],c=document.elementFromPoint(g.clientX,g.clientY),C=c==null?void 0:c.closest("[data-column-id]");if(C){const v=C.dataset.columnId,N=n.draggedCard,j=n.dragSourceColumn,K=y(v),Y=y(j);if(K&&Y&&j!==v){if(K.limit&&K.cards.length>=K.limit)throw new Error(`Column "${K.title}" has reached its limit of ${K.limit} cards`);e==null||e(N,j,v),a==null||a(N,Y.title,K.title)}}}catch(g){r==null||r(g instanceof Error?g:new Error("Touch drop failed"))}finally{u.current=null,d()}},[n,y,e,r,d,a]),ae=l.useCallback((T,g,c)=>{const C=`Moved "${T.title}" from ${g} to ${c}`,v=document.createElement("div");v.setAttribute("aria-live","polite"),v.setAttribute("aria-atomic","true"),v.className="sr-only",v.textContent=C,document.body.appendChild(v),setTimeout(()=>{document.body.removeChild(v)},1e3),console.log(`Kanban: ${C}`)},[]);return l.useEffect(()=>()=>{m.current&&clearTimeout(m.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:n.isDragging,draggedCard:n.draggedCard,dragOverColumn:n.dragOverColumn,dragOverPosition:n.dragOverPosition,dragSourceColumn:n.dragSourceColumn,handleDragStart:_,handleDragOver:F,handleDrop:G,handleDragEnd:w,handleKeyDown:q,handleTouchStart:$,handleTouchMove:L,handleTouchEnd:te,announceMove:a||ae,reset:d}}function to(e){var _e,Ye,We;const{columns:r,cardSource:t,source:a,enableDragDrop:n=!0,cardFieldDefinitions:s,initialState:i,onCardMove:m,onCardCreate:u,onCardUpdate:d,onCardDelete:y,onError:D,onFilterError:_}=e,F=a||t;if(!F)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[G,w]=l.useState({query:(i==null?void 0:i.search)||""}),[H]=l.useState({field:((_e=i==null?void 0:i.sorting)==null?void 0:_e.field)||null,direction:((Ye=i==null?void 0:i.sorting)==null?void 0:Ye.direction)||null}),[q,$]=l.useState(()=>{const p={};return r.forEach(E=>{p[E.id]=10}),p}),L=l.useRef(D),te=l.useRef(m),ae=l.useRef(u),T=l.useRef(d),g=l.useRef(y);l.useEffect(()=>{L.current=D,te.current=m,ae.current=u,T.current=d,g.current=y},[D,m,u,d,y]);const c=Ce.useQueryClient(),C=Tr({initialConditions:i==null?void 0:i.filters,initialLogicalOperator:(i==null?void 0:i.filterOperator)||"And",fieldDefinitions:s,validateOnChange:!0,onValidationError:_}),v=l.useCallback(p=>{const E={LHSField:"columnId",Operator:"EQ",RHSValue:p,RHSType:"Constant"},f=C.filterPayload;let b;f?f.Operator==="And"?b={...f,Condition:[...f.Condition||[],E]}:b={Operator:"And",Condition:[f,E]}:b={Operator:"And",Condition:[E]};const k={Page:1,PageSize:q[p]||10,Filter:b};return H.field&&H.direction?k.Sort=[{[String(H.field)]:H.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:k.Sort=[{columnId:"ASC"},{position:"ASC"}],G.query&&(k.Search=G.query),k},[C.filterPayload,q,H,G.query]),N=Ce.useQueries({queries:r.map(p=>{const E=v(p.id);return{queryKey:["kanban-cards",F,p.id,E],queryFn:async()=>{try{return await ve(F).list(E)}catch(f){throw f}},placeholderData:Ce.keepPreviousData,staleTime:30*1e3}})}),j=N.some(p=>p.isLoading),K=N.some(p=>p.isFetching),Y=((We=N.find(p=>p.error))==null?void 0:We.error)||null,ee=async()=>{await Promise.all(N.map(p=>p.refetch()))},U=l.useMemo(()=>{const p={};return G.query&&(p.Search=G.query),C.filterPayload&&(p.Filter=C.filterPayload),p},[G.query,C.filterPayload]),{data:Z,isLoading:A,error:fe}=Ce.useQuery({queryKey:["kanban-count",F,U],queryFn:async()=>{try{return await ve(F).count(U)}catch(p){throw L.current&&L.current(p),p}},staleTime:30*1e3,gcTime:60*1e3}),Re=Ce.useMutation({mutationFn:async p=>{const E=p.position??999999;return(await ve(F).create({...p,position:E}))._id},onMutate:async p=>{const E=p.columnId,f=v(E),b=["kanban-cards",F,E,f];await c.cancelQueries({queryKey:b});const k=c.getQueryData(b);if(k){const W=k.Data,B=p.position??W.length,J=`temp-${Date.now()}`,se={...p,_id:J,position:B,_created_at:new Date,_modified_at:new Date};c.setQueryData(b,{...k,Data:[...k.Data,se]})}return{previousCards:k,queryKey:b}},onSuccess:async(p,E,f)=>{var b;f!=null&&f.queryKey&&await c.invalidateQueries({queryKey:f.queryKey}),(b=ae.current)==null||b.call(ae,{_id:p,...E})},onError:(p,E,f)=>{var b;f!=null&&f.previousCards&&(f!=null&&f.queryKey)&&c.setQueryData(f.queryKey,f.previousCards),(b=L.current)==null||b.call(L,p)},onSettled:(p,E,f)=>{const b=f.columnId,k=v(b);c.invalidateQueries({queryKey:["kanban-cards",F,b,k]})}}),pe=Ce.useMutation({mutationFn:async({id:p,updates:E})=>(await ve(F).update(p,E),{id:p,updates:E}),onMutate:async()=>(await c.cancelQueries({queryKey:["kanban-cards",F]}),{}),onSuccess:async p=>{var E;(E=T.current)==null||E.call(T,{_id:p.id,...p.updates})},onError:(p,E,f)=>{var b;(b=L.current)==null||b.call(L,p)},onSettled:()=>{c.invalidateQueries({queryKey:["kanban-cards",F]})}}),Ee=Ce.useMutation({mutationFn:async p=>(await ve(F).delete(p),p),onMutate:async()=>(await c.cancelQueries({queryKey:["kanban-cards",F]}),{}),onSuccess:async p=>{var E;(E=g.current)==null||E.call(g,p)},onError:(p,E,f)=>{var b;(b=L.current)==null||b.call(L,p)},onSettled:()=>{c.invalidateQueries({queryKey:["kanban-cards",F]})}}),R=Ce.useMutation({mutationFn:async({cardId:p,fromColumnId:E,toColumnId:f,position:b})=>{const k={columnId:f,...b!==void 0&&{position:b}};return await ve(F).update(p,k),{cardId:p,fromColumnId:E,toColumnId:f,position:b}},onMutate:async({cardId:p,fromColumnId:E,toColumnId:f,position:b})=>{const k=v(E),W=v(f),B=["kanban-cards",F,E,k],J=["kanban-cards",F,f,W];await c.cancelQueries({queryKey:B}),await c.cancelQueries({queryKey:J});const se=c.getQueryData(B),ce=c.getQueryData(J);if(se&&ce){const Ae=se.Data.find(De=>De._id===p);if(Ae){const De={...se,Data:se.Data.filter(he=>he._id!==p)},Le={...Ae,columnId:f,position:b??ce.Data.length,_modified_at:new Date},ue={...ce,Data:[...ce.Data,Le].sort((he,Je)=>he.position-Je.position)};c.setQueryData(B,De),c.setQueryData(J,ue)}}return{previousFromData:se,previousToData:ce,fromQueryKey:B,toQueryKey:J,fromColumnId:E,toColumnId:f}},onSuccess:async p=>{var E;(E=te.current)==null||E.call(te,{_id:p.cardId},p.fromColumnId,p.toColumnId)},onError:(p,E,f)=>{var b;f!=null&&f.previousFromData&&(f!=null&&f.fromQueryKey)&&c.setQueryData(f.fromQueryKey,f.previousFromData),f!=null&&f.previousToData&&(f!=null&&f.toQueryKey)&&c.setQueryData(f.toQueryKey,f.previousToData),(b=L.current)==null||b.call(L,p)},onSettled:(p,E,f)=>{const b=v(f.fromColumnId),k=v(f.toColumnId);c.invalidateQueries({queryKey:["kanban-cards",F,f.fromColumnId,b]}),c.invalidateQueries({queryKey:["kanban-cards",F,f.toColumnId,k]})}}),ne=Ce.useMutation({mutationFn:async({cardIds:p,columnId:E})=>{const f=p.map((b,k)=>({id:b,position:k,columnId:E}));await Promise.all(f.map(b=>ve(F).update(b.id,{position:b.position,columnId:b.columnId})))},onMutate:async({columnId:p})=>{const E=v(p),f=["kanban-cards",F,p,E];return await c.cancelQueries({queryKey:f}),{}},onSuccess:()=>{},onError:(p,E,f)=>{var b;(b=L.current)==null||b.call(L,p)},onSettled:(p,E,f)=>{const b=v(f.columnId);c.invalidateQueries({queryKey:["kanban-cards",F,f.columnId,b]})}}),Se=l.useCallback(async(p,E,f)=>{try{await R.mutateAsync({cardId:p._id,fromColumnId:E,toColumnId:f,position:void 0})}catch{}},[R]),me=l.useMemo(()=>r.sort((p,E)=>p.position-E.position).map((p,E)=>{var k;const b=((k=N[E].data)==null?void 0:k.Data)||[];return{_id:p.id,title:p.title,position:p.position,color:p.color,limit:p.limit,cards:b.sort((W,B)=>W.position-B.position),_created_at:new Date,_modified_at:new Date}}),[r,N]),P=ro({onCardMove:Se,onError:L.current,columns:me,announceMove:(p,E,f)=>{console.log(`Kanban: Moved "${p.title}" from ${E} to ${f}`)}}),ke=l.useCallback(p=>{var E,f;return{draggable:!0,role:"option","aria-selected":n&&((E=P.draggedCard)==null?void 0:E._id)===p._id,"aria-grabbed":n&&((f=P.draggedCard)==null?void 0:f._id)===p._id,onDragStart:b=>{if(!n)return;b.dataTransfer.setData("text/plain",JSON.stringify(p));const k=b.nativeEvent||b;P.handleDragStart(k,p)},onDragEnd:P.handleDragEnd,onKeyDown:b=>{if(!n)return;const k=b.nativeEvent||b;P.handleKeyDown(k,p)}}},[n,P]),be=l.useCallback(p=>({"data-column-id":p,role:"listbox",onDragOver:E=>{if(!n)return;const f=E.nativeEvent||E;P.handleDragOver(f,p)},onDrop:E=>{if(!n)return;const f=E.nativeEvent||E;P.handleDrop(f,p)}}),[n,P]),ge=l.useCallback(p=>{w({query:p})},[]),Te=l.useCallback(()=>{w({query:""})},[]),xe=(Z==null?void 0:Z.Count)||0,je=j||A,V=K,oe=Re.isPending||pe.isPending||Ee.isPending||R.isPending||ne.isPending,ye=Y||fe,Qe=l.useCallback(async()=>{await ee()},[ee]),Me=l.useCallback(async()=>{await c.invalidateQueries({predicate:p=>p.queryKey[0]==="kanban-cards"||p.queryKey[0]==="kanban-count"})},[c]);return l.useEffect(()=>{ye&&L.current&&L.current(ye)},[ye]),{columns:me,totalCards:xe,isLoading:je,isFetching:V,isUpdating:oe,error:ye,createCard:Re.mutateAsync,updateCard:l.useCallback(async(p,E)=>{await pe.mutateAsync({id:p,updates:E})},[pe]),deleteCard:l.useCallback(async p=>{await Ee.mutateAsync(p)},[Ee]),moveCard:l.useCallback(async(p,E,f,b)=>{if(!b){for(const k of me)if(k.cards.find(B=>B._id===p)){b=k._id;break}if(!b)throw new Error(`Card ${p} not found in any column`)}await R.mutateAsync({cardId:p,fromColumnId:b,toColumnId:E,position:f})},[R,me]),reorderCards:l.useCallback(async(p,E)=>{await ne.mutateAsync({cardIds:p,columnId:E})},[ne]),searchQuery:G.query,setSearchQuery:ge,clearSearch:Te,filter:C,isDragging:n?P.isDragging:!1,draggedCard:n?P.draggedCard:null,dragOverColumn:n?P.dragOverColumn:null,handleDragStart:n?P.handleDragStart:()=>{},handleDragOver:n?P.handleDragOver:()=>{},handleDrop:n?P.handleDrop:()=>{},handleDragEnd:n?P.handleDragEnd:()=>{},handleKeyDown:n?P.handleKeyDown:()=>{},getCardProps:n?ke:p=>({}),getColumnProps:n?be:p=>({}),loadMore:l.useCallback(p=>{$(E=>({...E,[p]:(E[p]||10)+10}))},[]),refetch:Qe,refresh:Me}}l.createContext(null);var Or={exports:{}},nr={};/**
16
+ `,document.body.appendChild(j),i.current=j,T.dataTransfer&&T.dataTransfer.setDragImage(j,T.offsetX||50,T.offsetY||20),s({isDragging:!0,draggedCard:g,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:N._id}),a==null||a(g,N.title,"being moved")}catch(v){r==null||r(v instanceof Error?v:new Error("Drag start failed")),d()}},[y,r,d,a]),F=l.useCallback((T,g)=>{if(T.preventDefault(),!n.isDragging||!n.draggedCard)return;const c=g?y(g):null;s(C=>({...C,dragOverColumn:(c==null?void 0:c._id)||null,dragOverPosition:null})),H(T)},[n.isDragging,n.draggedCard,y]),G=l.useCallback((T,g)=>{if(T.preventDefault(),!(!n.isDragging||!n.draggedCard))try{const c=n.draggedCard,C=n.dragSourceColumn,v=y(g),N=y(C);if(!v||!N)throw new Error("Target or source column not found");if(C===g){d();return}if(v.limit&&v.cards.length>=v.limit)throw new Error(`Column "${v.title}" has reached its limit of ${v.limit} cards`);e==null||e(c,C,g),a==null||a(c,N.title,v.title)}catch(c){r==null||r(c instanceof Error?c:new Error("Drop failed"))}finally{d()}},[n,y,e,r,d,a]),w=l.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),d()},[d]),H=l.useCallback(T=>{const g=T.target.closest(".kanban-container");if(!g)return;const c=g.getBoundingClientRect(),C=T.clientX-c.left,v=c.width;let N=0;if(C<zr?N=-Gr:C>v-zr&&(N=Gr),N!==0){m.current&&clearTimeout(m.current);const j=()=>{g.scrollLeft+=N,m.current=setTimeout(j,16)};m.current=setTimeout(j,100)}else m.current&&(clearTimeout(m.current),m.current=null)},[]),q=l.useCallback((T,g)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(T.key))return;T.preventDefault();const c=D(g._id);if(!c)return;const{column:C}=c,v=t.findIndex(N=>N._id===C._id);try{switch(T.key){case"ArrowLeft":if(v>0){const N=t[v-1];e==null||e(g,C._id,N._id),a==null||a(g,C.title,N.title)}break;case"ArrowRight":if(v<t.length-1){const N=t[v+1];e==null||e(g,C._id,N._id),a==null||a(g,C.title,N.title)}break;case"ArrowUp":a==null||a(g,"current position","position above");break;case"ArrowDown":a==null||a(g,"current position","position below");break;case"Enter":case"Space":a==null||a(g,C.title,"drag mode");break;case"Escape":a==null||a(g,"drag mode","cancelled");break}}catch(N){r==null||r(N instanceof Error?N:new Error("Keyboard navigation failed"))}},[D,t,e,r,a]),$=l.useCallback((T,g)=>{const c=T.touches[0];u.current={x:c.clientX,y:c.clientY,card:g}},[]),L=l.useCallback(T=>{if(!u.current)return;const g=T.touches[0],c=Math.abs(g.clientX-u.current.x),C=Math.abs(g.clientY-u.current.y);if(c>Hr||C>Hr){const v=u.current.card,N=y(v.columnId);if(!N)return;s({isDragging:!0,draggedCard:v,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:N._id}),a==null||a(v,N.title,"being moved")}},[y,a]),te=l.useCallback(T=>{if(!n.isDragging||!n.draggedCard||!u.current){u.current=null;return}try{const g=T.changedTouches[0],c=document.elementFromPoint(g.clientX,g.clientY),C=c==null?void 0:c.closest("[data-column-id]");if(C){const v=C.dataset.columnId,N=n.draggedCard,j=n.dragSourceColumn,K=y(v),Y=y(j);if(K&&Y&&j!==v){if(K.limit&&K.cards.length>=K.limit)throw new Error(`Column "${K.title}" has reached its limit of ${K.limit} cards`);e==null||e(N,j,v),a==null||a(N,Y.title,K.title)}}}catch(g){r==null||r(g instanceof Error?g:new Error("Touch drop failed"))}finally{u.current=null,d()}},[n,y,e,r,d,a]),ae=l.useCallback((T,g,c)=>{const C=`Moved "${T.title}" from ${g} to ${c}`,v=document.createElement("div");v.setAttribute("aria-live","polite"),v.setAttribute("aria-atomic","true"),v.className="sr-only",v.textContent=C,document.body.appendChild(v),setTimeout(()=>{document.body.removeChild(v)},1e3),console.log(`Kanban: ${C}`)},[]);return l.useEffect(()=>()=>{m.current&&clearTimeout(m.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:n.isDragging,draggedCard:n.draggedCard,dragOverColumn:n.dragOverColumn,dragOverPosition:n.dragOverPosition,dragSourceColumn:n.dragSourceColumn,handleDragStart:_,handleDragOver:F,handleDrop:G,handleDragEnd:w,handleKeyDown:q,handleTouchStart:$,handleTouchMove:L,handleTouchEnd:te,announceMove:a||ae,reset:d}}function Xn(e){var _e,Ye,We;const{columns:r,cardSource:t,source:a,enableDragDrop:n=!0,cardFieldDefinitions:s,initialState:i,onCardMove:m,onCardCreate:u,onCardUpdate:d,onCardDelete:y,onError:D,onFilterError:_}=e,F=a||t;if(!F)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[G,w]=l.useState({query:(i==null?void 0:i.search)||""}),[H]=l.useState({field:((_e=i==null?void 0:i.sorting)==null?void 0:_e.field)||null,direction:((Ye=i==null?void 0:i.sorting)==null?void 0:Ye.direction)||null}),[q,$]=l.useState(()=>{const p={};return r.forEach(E=>{p[E.id]=10}),p}),L=l.useRef(D),te=l.useRef(m),ae=l.useRef(u),T=l.useRef(d),g=l.useRef(y);l.useEffect(()=>{L.current=D,te.current=m,ae.current=u,T.current=d,g.current=y},[D,m,u,d,y]);const c=Ce.useQueryClient(),C=Nr({initialConditions:i==null?void 0:i.filters,initialLogicalOperator:(i==null?void 0:i.filterOperator)||"And",fieldDefinitions:s,validateOnChange:!0,onValidationError:_}),v=l.useCallback(p=>{const E={LHSField:"columnId",Operator:"EQ",RHSValue:p,RHSType:"Constant"},f=C.filterPayload;let b;f?f.Operator==="And"?b={...f,Condition:[...f.Condition||[],E]}:b={Operator:"And",Condition:[f,E]}:b={Operator:"And",Condition:[E]};const k={Page:1,PageSize:q[p]||10,Filter:b};return H.field&&H.direction?k.Sort=[{[String(H.field)]:H.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:k.Sort=[{columnId:"ASC"},{position:"ASC"}],G.query&&(k.Search=G.query),k},[C.filterPayload,q,H,G.query]),N=Ce.useQueries({queries:r.map(p=>{const E=v(p.id);return{queryKey:["kanban-cards",F,p.id,E],queryFn:async()=>{try{return await ve(F).list(E)}catch(f){throw f}},placeholderData:Ce.keepPreviousData,staleTime:30*1e3}})}),j=N.some(p=>p.isLoading),K=N.some(p=>p.isFetching),Y=((We=N.find(p=>p.error))==null?void 0:We.error)||null,ee=async()=>{await Promise.all(N.map(p=>p.refetch()))},U=l.useMemo(()=>{const p={};return G.query&&(p.Search=G.query),C.filterPayload&&(p.Filter=C.filterPayload),p},[G.query,C.filterPayload]),{data:Z,isLoading:A,error:fe}=Ce.useQuery({queryKey:["kanban-count",F,U],queryFn:async()=>{try{return await ve(F).count(U)}catch(p){throw L.current&&L.current(p),p}},staleTime:30*1e3,gcTime:60*1e3}),Re=Ce.useMutation({mutationFn:async p=>{const E=p.position??999999;return(await ve(F).create({...p,position:E}))._id},onMutate:async p=>{const E=p.columnId,f=v(E),b=["kanban-cards",F,E,f];await c.cancelQueries({queryKey:b});const k=c.getQueryData(b);if(k){const W=k.Data,B=p.position??W.length,J=`temp-${Date.now()}`,se={...p,_id:J,position:B,_created_at:new Date,_modified_at:new Date};c.setQueryData(b,{...k,Data:[...k.Data,se]})}return{previousCards:k,queryKey:b}},onSuccess:async(p,E,f)=>{var b;f!=null&&f.queryKey&&await c.invalidateQueries({queryKey:f.queryKey}),(b=ae.current)==null||b.call(ae,{_id:p,...E})},onError:(p,E,f)=>{var b;f!=null&&f.previousCards&&(f!=null&&f.queryKey)&&c.setQueryData(f.queryKey,f.previousCards),(b=L.current)==null||b.call(L,p)},onSettled:(p,E,f)=>{const b=f.columnId,k=v(b);c.invalidateQueries({queryKey:["kanban-cards",F,b,k]})}}),pe=Ce.useMutation({mutationFn:async({id:p,updates:E})=>(await ve(F).update(p,E),{id:p,updates:E}),onMutate:async()=>(await c.cancelQueries({queryKey:["kanban-cards",F]}),{}),onSuccess:async p=>{var E;(E=T.current)==null||E.call(T,{_id:p.id,...p.updates})},onError:(p,E,f)=>{var b;(b=L.current)==null||b.call(L,p)},onSettled:()=>{c.invalidateQueries({queryKey:["kanban-cards",F]})}}),Ee=Ce.useMutation({mutationFn:async p=>(await ve(F).delete(p),p),onMutate:async()=>(await c.cancelQueries({queryKey:["kanban-cards",F]}),{}),onSuccess:async p=>{var E;(E=g.current)==null||E.call(g,p)},onError:(p,E,f)=>{var b;(b=L.current)==null||b.call(L,p)},onSettled:()=>{c.invalidateQueries({queryKey:["kanban-cards",F]})}}),R=Ce.useMutation({mutationFn:async({cardId:p,fromColumnId:E,toColumnId:f,position:b})=>{const k={columnId:f,...b!==void 0&&{position:b}};return await ve(F).update(p,k),{cardId:p,fromColumnId:E,toColumnId:f,position:b}},onMutate:async({cardId:p,fromColumnId:E,toColumnId:f,position:b})=>{const k=v(E),W=v(f),B=["kanban-cards",F,E,k],J=["kanban-cards",F,f,W];await c.cancelQueries({queryKey:B}),await c.cancelQueries({queryKey:J});const se=c.getQueryData(B),ce=c.getQueryData(J);if(se&&ce){const Ae=se.Data.find(De=>De._id===p);if(Ae){const De={...se,Data:se.Data.filter(he=>he._id!==p)},je={...Ae,columnId:f,position:b??ce.Data.length,_modified_at:new Date},ue={...ce,Data:[...ce.Data,je].sort((he,Je)=>he.position-Je.position)};c.setQueryData(B,De),c.setQueryData(J,ue)}}return{previousFromData:se,previousToData:ce,fromQueryKey:B,toQueryKey:J,fromColumnId:E,toColumnId:f}},onSuccess:async p=>{var E;(E=te.current)==null||E.call(te,{_id:p.cardId},p.fromColumnId,p.toColumnId)},onError:(p,E,f)=>{var b;f!=null&&f.previousFromData&&(f!=null&&f.fromQueryKey)&&c.setQueryData(f.fromQueryKey,f.previousFromData),f!=null&&f.previousToData&&(f!=null&&f.toQueryKey)&&c.setQueryData(f.toQueryKey,f.previousToData),(b=L.current)==null||b.call(L,p)},onSettled:(p,E,f)=>{const b=v(f.fromColumnId),k=v(f.toColumnId);c.invalidateQueries({queryKey:["kanban-cards",F,f.fromColumnId,b]}),c.invalidateQueries({queryKey:["kanban-cards",F,f.toColumnId,k]})}}),ne=Ce.useMutation({mutationFn:async({cardIds:p,columnId:E})=>{const f=p.map((b,k)=>({id:b,position:k,columnId:E}));await Promise.all(f.map(b=>ve(F).update(b.id,{position:b.position,columnId:b.columnId})))},onMutate:async({columnId:p})=>{const E=v(p),f=["kanban-cards",F,p,E];return await c.cancelQueries({queryKey:f}),{}},onSuccess:()=>{},onError:(p,E,f)=>{var b;(b=L.current)==null||b.call(L,p)},onSettled:(p,E,f)=>{const b=v(f.columnId);c.invalidateQueries({queryKey:["kanban-cards",F,f.columnId,b]})}}),Se=l.useCallback(async(p,E,f)=>{try{await R.mutateAsync({cardId:p._id,fromColumnId:E,toColumnId:f,position:void 0})}catch{}},[R]),me=l.useMemo(()=>r.sort((p,E)=>p.position-E.position).map((p,E)=>{var k;const b=((k=N[E].data)==null?void 0:k.Data)||[];return{_id:p.id,title:p.title,position:p.position,color:p.color,limit:p.limit,cards:b.sort((W,B)=>W.position-B.position),_created_at:new Date,_modified_at:new Date}}),[r,N]),P=Jn({onCardMove:Se,onError:L.current,columns:me,announceMove:(p,E,f)=>{console.log(`Kanban: Moved "${p.title}" from ${E} to ${f}`)}}),ke=l.useCallback(p=>{var E,f;return{draggable:!0,role:"option","aria-selected":n&&((E=P.draggedCard)==null?void 0:E._id)===p._id,"aria-grabbed":n&&((f=P.draggedCard)==null?void 0:f._id)===p._id,onDragStart:b=>{if(!n)return;b.dataTransfer.setData("text/plain",JSON.stringify(p));const k=b.nativeEvent||b;P.handleDragStart(k,p)},onDragEnd:P.handleDragEnd,onKeyDown:b=>{if(!n)return;const k=b.nativeEvent||b;P.handleKeyDown(k,p)}}},[n,P]),be=l.useCallback(p=>({"data-column-id":p,role:"listbox",onDragOver:E=>{if(!n)return;const f=E.nativeEvent||E;P.handleDragOver(f,p)},onDrop:E=>{if(!n)return;const f=E.nativeEvent||E;P.handleDrop(f,p)}}),[n,P]),ge=l.useCallback(p=>{w({query:p})},[]),Te=l.useCallback(()=>{w({query:""})},[]),xe=(Z==null?void 0:Z.Count)||0,Ie=j||A,V=K,oe=Re.isPending||pe.isPending||Ee.isPending||R.isPending||ne.isPending,ye=Y||fe,Qe=l.useCallback(async()=>{await ee()},[ee]),Be=l.useCallback(async()=>{await c.invalidateQueries({predicate:p=>p.queryKey[0]==="kanban-cards"||p.queryKey[0]==="kanban-count"})},[c]);return l.useEffect(()=>{ye&&L.current&&L.current(ye)},[ye]),{columns:me,totalCards:xe,isLoading:Ie,isFetching:V,isUpdating:oe,error:ye,createCard:Re.mutateAsync,updateCard:l.useCallback(async(p,E)=>{await pe.mutateAsync({id:p,updates:E})},[pe]),deleteCard:l.useCallback(async p=>{await Ee.mutateAsync(p)},[Ee]),moveCard:l.useCallback(async(p,E,f,b)=>{if(!b){for(const k of me)if(k.cards.find(B=>B._id===p)){b=k._id;break}if(!b)throw new Error(`Card ${p} not found in any column`)}await R.mutateAsync({cardId:p,fromColumnId:b,toColumnId:E,position:f})},[R,me]),reorderCards:l.useCallback(async(p,E)=>{await ne.mutateAsync({cardIds:p,columnId:E})},[ne]),searchQuery:G.query,setSearchQuery:ge,clearSearch:Te,filter:C,isDragging:n?P.isDragging:!1,draggedCard:n?P.draggedCard:null,dragOverColumn:n?P.dragOverColumn:null,handleDragStart:n?P.handleDragStart:()=>{},handleDragOver:n?P.handleDragOver:()=>{},handleDrop:n?P.handleDrop:()=>{},handleDragEnd:n?P.handleDragEnd:()=>{},handleKeyDown:n?P.handleKeyDown:()=>{},getCardProps:n?ke:p=>({}),getColumnProps:n?be:p=>({}),loadMore:l.useCallback(p=>{$(E=>({...E,[p]:(E[p]||10)+10}))},[]),refetch:Qe,refresh:Be}}l.createContext(null);var xr={exports:{}},nr={};/**
17
17
  * @license React
18
18
  * react-jsx-runtime.production.min.js
19
19
  *
@@ -21,7 +21,7 @@
21
21
  *
22
22
  * This source code is licensed under the MIT license found in the
23
23
  * LICENSE file in the root directory of this source tree.
24
- */var Yr;function ao(){if(Yr)return nr;Yr=1;var e=l,r=Symbol.for("react.element"),t=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,n=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function i(m,u,d){var y,D={},_=null,F=null;d!==void 0&&(_=""+d),u.key!==void 0&&(_=""+u.key),u.ref!==void 0&&(F=u.ref);for(y in u)a.call(u,y)&&!s.hasOwnProperty(y)&&(D[y]=u[y]);if(m&&m.defaultProps)for(y in u=m.defaultProps,u)D[y]===void 0&&(D[y]=u[y]);return{$$typeof:r,type:m,key:_,ref:F,props:D,_owner:n.current}}return nr.Fragment=t,nr.jsx=i,nr.jsxs=i,nr}var or={};/**
24
+ */var Qr;function Zn(){if(Qr)return nr;Qr=1;var e=l,r=Symbol.for("react.element"),t=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,n=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function i(m,u,d){var y,D={},_=null,F=null;d!==void 0&&(_=""+d),u.key!==void 0&&(_=""+u.key),u.ref!==void 0&&(F=u.ref);for(y in u)a.call(u,y)&&!s.hasOwnProperty(y)&&(D[y]=u[y]);if(m&&m.defaultProps)for(y in u=m.defaultProps,u)D[y]===void 0&&(D[y]=u[y]);return{$$typeof:r,type:m,key:_,ref:F,props:D,_owner:n.current}}return nr.Fragment=t,nr.jsx=i,nr.jsxs=i,nr}var or={};/**
25
25
  * @license React
26
26
  * react-jsx-runtime.development.js
27
27
  *
@@ -29,17 +29,17 @@
29
29
  *
30
30
  * This source code is licensed under the MIT license found in the
31
31
  * LICENSE file in the root directory of this source tree.
32
- */var Wr;function no(){return Wr||(Wr=1,process.env.NODE_ENV!=="production"&&function(){var e=l,r=Symbol.for("react.element"),t=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),m=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),F=Symbol.for("react.offscreen"),G=Symbol.iterator,w="@@iterator";function H(o){if(o===null||typeof o!="object")return null;var h=G&&o[G]||o[w];return typeof h=="function"?h:null}var q=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function $(o){{for(var h=arguments.length,S=new Array(h>1?h-1:0),I=1;I<h;I++)S[I-1]=arguments[I];L("error",o,S)}}function L(o,h,S){{var I=q.ReactDebugCurrentFrame,X=I.getStackAddendum();X!==""&&(h+="%s",S=S.concat([X]));var re=S.map(function(Q){return String(Q)});re.unshift("Warning: "+h),Function.prototype.apply.call(console[o],console,re)}}var te=!1,ae=!1,T=!1,g=!1,c=!1,C;C=Symbol.for("react.module.reference");function v(o){return!!(typeof o=="string"||typeof o=="function"||o===a||o===s||c||o===n||o===d||o===y||g||o===F||te||ae||T||typeof o=="object"&&o!==null&&(o.$$typeof===_||o.$$typeof===D||o.$$typeof===i||o.$$typeof===m||o.$$typeof===u||o.$$typeof===C||o.getModuleId!==void 0))}function N(o,h,S){var I=o.displayName;if(I)return I;var X=h.displayName||h.name||"";return X!==""?S+"("+X+")":S}function j(o){return o.displayName||"Context"}function K(o){if(o==null)return null;if(typeof o.tag=="number"&&$("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case a:return"Fragment";case t:return"Portal";case s:return"Profiler";case n:return"StrictMode";case d:return"Suspense";case y:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case m:var h=o;return j(h)+".Consumer";case i:var S=o;return j(S._context)+".Provider";case u:return N(o,o.render,"ForwardRef");case D:var I=o.displayName||null;return I!==null?I:K(o.type)||"Memo";case _:{var X=o,re=X._payload,Q=X._init;try{return K(Q(re))}catch{return null}}}return null}var Y=Object.assign,ee=0,U,Z,A,fe,Re,pe,Ee;function R(){}R.__reactDisabledLog=!0;function ne(){{if(ee===0){U=console.log,Z=console.info,A=console.warn,fe=console.error,Re=console.group,pe=console.groupCollapsed,Ee=console.groupEnd;var o={configurable:!0,enumerable:!0,value:R,writable:!0};Object.defineProperties(console,{info:o,log:o,warn:o,error:o,group:o,groupCollapsed:o,groupEnd:o})}ee++}}function Se(){{if(ee--,ee===0){var o={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Y({},o,{value:U}),info:Y({},o,{value:Z}),warn:Y({},o,{value:A}),error:Y({},o,{value:fe}),group:Y({},o,{value:Re}),groupCollapsed:Y({},o,{value:pe}),groupEnd:Y({},o,{value:Ee})})}ee<0&&$("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var me=q.ReactCurrentDispatcher,P;function ke(o,h,S){{if(P===void 0)try{throw Error()}catch(X){var I=X.stack.trim().match(/\n( *(at )?)/);P=I&&I[1]||""}return`
32
+ */var Yr;function eo(){return Yr||(Yr=1,process.env.NODE_ENV!=="production"&&function(){var e=l,r=Symbol.for("react.element"),t=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),m=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),F=Symbol.for("react.offscreen"),G=Symbol.iterator,w="@@iterator";function H(o){if(o===null||typeof o!="object")return null;var h=G&&o[G]||o[w];return typeof h=="function"?h:null}var q=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function $(o){{for(var h=arguments.length,S=new Array(h>1?h-1:0),I=1;I<h;I++)S[I-1]=arguments[I];L("error",o,S)}}function L(o,h,S){{var I=q.ReactDebugCurrentFrame,X=I.getStackAddendum();X!==""&&(h+="%s",S=S.concat([X]));var re=S.map(function(Q){return String(Q)});re.unshift("Warning: "+h),Function.prototype.apply.call(console[o],console,re)}}var te=!1,ae=!1,T=!1,g=!1,c=!1,C;C=Symbol.for("react.module.reference");function v(o){return!!(typeof o=="string"||typeof o=="function"||o===a||o===s||c||o===n||o===d||o===y||g||o===F||te||ae||T||typeof o=="object"&&o!==null&&(o.$$typeof===_||o.$$typeof===D||o.$$typeof===i||o.$$typeof===m||o.$$typeof===u||o.$$typeof===C||o.getModuleId!==void 0))}function N(o,h,S){var I=o.displayName;if(I)return I;var X=h.displayName||h.name||"";return X!==""?S+"("+X+")":S}function j(o){return o.displayName||"Context"}function K(o){if(o==null)return null;if(typeof o.tag=="number"&&$("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case a:return"Fragment";case t:return"Portal";case s:return"Profiler";case n:return"StrictMode";case d:return"Suspense";case y:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case m:var h=o;return j(h)+".Consumer";case i:var S=o;return j(S._context)+".Provider";case u:return N(o,o.render,"ForwardRef");case D:var I=o.displayName||null;return I!==null?I:K(o.type)||"Memo";case _:{var X=o,re=X._payload,Q=X._init;try{return K(Q(re))}catch{return null}}}return null}var Y=Object.assign,ee=0,U,Z,A,fe,Re,pe,Ee;function R(){}R.__reactDisabledLog=!0;function ne(){{if(ee===0){U=console.log,Z=console.info,A=console.warn,fe=console.error,Re=console.group,pe=console.groupCollapsed,Ee=console.groupEnd;var o={configurable:!0,enumerable:!0,value:R,writable:!0};Object.defineProperties(console,{info:o,log:o,warn:o,error:o,group:o,groupCollapsed:o,groupEnd:o})}ee++}}function Se(){{if(ee--,ee===0){var o={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Y({},o,{value:U}),info:Y({},o,{value:Z}),warn:Y({},o,{value:A}),error:Y({},o,{value:fe}),group:Y({},o,{value:Re}),groupCollapsed:Y({},o,{value:pe}),groupEnd:Y({},o,{value:Ee})})}ee<0&&$("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var me=q.ReactCurrentDispatcher,P;function ke(o,h,S){{if(P===void 0)try{throw Error()}catch(X){var I=X.stack.trim().match(/\n( *(at )?)/);P=I&&I[1]||""}return`
33
33
  `+P+o}}var be=!1,ge;{var Te=typeof WeakMap=="function"?WeakMap:Map;ge=new Te}function xe(o,h){if(!o||be)return"";{var S=ge.get(o);if(S!==void 0)return S}var I;be=!0;var X=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var re;re=me.current,me.current=null,ne();try{if(h){var Q=function(){throw Error()};if(Object.defineProperty(Q.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Q,[])}catch(Oe){I=Oe}Reflect.construct(o,[],Q)}else{try{Q.call()}catch(Oe){I=Oe}o.call(Q.prototype)}}else{try{throw Error()}catch(Oe){I=Oe}o()}}catch(Oe){if(Oe&&I&&typeof Oe.stack=="string"){for(var z=Oe.stack.split(`
34
34
  `),we=I.stack.split(`
35
35
  `),ie=z.length-1,le=we.length-1;ie>=1&&le>=0&&z[ie]!==we[le];)le--;for(;ie>=1&&le>=0;ie--,le--)if(z[ie]!==we[le]){if(ie!==1||le!==1)do if(ie--,le--,le<0||z[ie]!==we[le]){var Fe=`
36
- `+z[ie].replace(" at new "," at ");return o.displayName&&Fe.includes("<anonymous>")&&(Fe=Fe.replace("<anonymous>",o.displayName)),typeof o=="function"&&ge.set(o,Fe),Fe}while(ie>=1&&le>=0);break}}}finally{be=!1,me.current=re,Se(),Error.prepareStackTrace=X}var Ze=o?o.displayName||o.name:"",Ke=Ze?ke(Ze):"";return typeof o=="function"&&ge.set(o,Ke),Ke}function je(o,h,S){return xe(o,!1)}function V(o){var h=o.prototype;return!!(h&&h.isReactComponent)}function oe(o,h,S){if(o==null)return"";if(typeof o=="function")return xe(o,V(o));if(typeof o=="string")return ke(o);switch(o){case d:return ke("Suspense");case y:return ke("SuspenseList")}if(typeof o=="object")switch(o.$$typeof){case u:return je(o.render);case D:return oe(o.type,h,S);case _:{var I=o,X=I._payload,re=I._init;try{return oe(re(X),h,S)}catch{}}}return""}var ye=Object.prototype.hasOwnProperty,Qe={},Me=q.ReactDebugCurrentFrame;function _e(o){if(o){var h=o._owner,S=oe(o.type,o._source,h?h.type:null);Me.setExtraStackFrame(S)}else Me.setExtraStackFrame(null)}function Ye(o,h,S,I,X){{var re=Function.call.bind(ye);for(var Q in o)if(re(o,Q)){var z=void 0;try{if(typeof o[Q]!="function"){var we=Error((I||"React class")+": "+S+" type `"+Q+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof o[Q]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw we.name="Invariant Violation",we}z=o[Q](h,Q,I,S,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ie){z=ie}z&&!(z instanceof Error)&&(_e(X),$("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",I||"React class",S,Q,typeof z),_e(null)),z instanceof Error&&!(z.message in Qe)&&(Qe[z.message]=!0,_e(X),$("Failed %s type: %s",S,z.message),_e(null))}}}var We=Array.isArray;function p(o){return We(o)}function E(o){{var h=typeof Symbol=="function"&&Symbol.toStringTag,S=h&&o[Symbol.toStringTag]||o.constructor.name||"Object";return S}}function f(o){try{return b(o),!1}catch{return!0}}function b(o){return""+o}function k(o){if(f(o))return $("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",E(o)),b(o)}var W=q.ReactCurrentOwner,B={key:!0,ref:!0,__self:!0,__source:!0},J,se;function ce(o){if(ye.call(o,"ref")){var h=Object.getOwnPropertyDescriptor(o,"ref").get;if(h&&h.isReactWarning)return!1}return o.ref!==void 0}function Ae(o){if(ye.call(o,"key")){var h=Object.getOwnPropertyDescriptor(o,"key").get;if(h&&h.isReactWarning)return!1}return o.key!==void 0}function De(o,h){typeof o.ref=="string"&&W.current}function Le(o,h){{var S=function(){J||(J=!0,$("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",h))};S.isReactWarning=!0,Object.defineProperty(o,"key",{get:S,configurable:!0})}}function ue(o,h){{var S=function(){se||(se=!0,$("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",h))};S.isReactWarning=!0,Object.defineProperty(o,"ref",{get:S,configurable:!0})}}var he=function(o,h,S,I,X,re,Q){var z={$$typeof:r,type:o,key:h,ref:S,props:Q,_owner:re};return z._store={},Object.defineProperty(z._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(z,"_self",{configurable:!1,enumerable:!1,writable:!1,value:I}),Object.defineProperty(z,"_source",{configurable:!1,enumerable:!1,writable:!1,value:X}),Object.freeze&&(Object.freeze(z.props),Object.freeze(z)),z};function Je(o,h,S,I,X){{var re,Q={},z=null,we=null;S!==void 0&&(k(S),z=""+S),Ae(h)&&(k(h.key),z=""+h.key),ce(h)&&(we=h.ref,De(h,X));for(re in h)ye.call(h,re)&&!B.hasOwnProperty(re)&&(Q[re]=h[re]);if(o&&o.defaultProps){var ie=o.defaultProps;for(re in ie)Q[re]===void 0&&(Q[re]=ie[re])}if(z||we){var le=typeof o=="function"?o.displayName||o.name||"Unknown":o;z&&Le(Q,le),we&&ue(Q,le)}return he(o,z,we,X,I,W.current,Q)}}var cr=q.ReactCurrentOwner,br=q.ReactDebugCurrentFrame;function Xe(o){if(o){var h=o._owner,S=oe(o.type,o._source,h?h.type:null);br.setExtraStackFrame(S)}else br.setExtraStackFrame(null)}var yr;yr=!1;function wr(o){return typeof o=="object"&&o!==null&&o.$$typeof===r}function Fr(){{if(cr.current){var o=K(cr.current.type);if(o)return`
36
+ `+z[ie].replace(" at new "," at ");return o.displayName&&Fe.includes("<anonymous>")&&(Fe=Fe.replace("<anonymous>",o.displayName)),typeof o=="function"&&ge.set(o,Fe),Fe}while(ie>=1&&le>=0);break}}}finally{be=!1,me.current=re,Se(),Error.prepareStackTrace=X}var Ze=o?o.displayName||o.name:"",Me=Ze?ke(Ze):"";return typeof o=="function"&&ge.set(o,Me),Me}function Ie(o,h,S){return xe(o,!1)}function V(o){var h=o.prototype;return!!(h&&h.isReactComponent)}function oe(o,h,S){if(o==null)return"";if(typeof o=="function")return xe(o,V(o));if(typeof o=="string")return ke(o);switch(o){case d:return ke("Suspense");case y:return ke("SuspenseList")}if(typeof o=="object")switch(o.$$typeof){case u:return Ie(o.render);case D:return oe(o.type,h,S);case _:{var I=o,X=I._payload,re=I._init;try{return oe(re(X),h,S)}catch{}}}return""}var ye=Object.prototype.hasOwnProperty,Qe={},Be=q.ReactDebugCurrentFrame;function _e(o){if(o){var h=o._owner,S=oe(o.type,o._source,h?h.type:null);Be.setExtraStackFrame(S)}else Be.setExtraStackFrame(null)}function Ye(o,h,S,I,X){{var re=Function.call.bind(ye);for(var Q in o)if(re(o,Q)){var z=void 0;try{if(typeof o[Q]!="function"){var we=Error((I||"React class")+": "+S+" type `"+Q+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof o[Q]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw we.name="Invariant Violation",we}z=o[Q](h,Q,I,S,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ie){z=ie}z&&!(z instanceof Error)&&(_e(X),$("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",I||"React class",S,Q,typeof z),_e(null)),z instanceof Error&&!(z.message in Qe)&&(Qe[z.message]=!0,_e(X),$("Failed %s type: %s",S,z.message),_e(null))}}}var We=Array.isArray;function p(o){return We(o)}function E(o){{var h=typeof Symbol=="function"&&Symbol.toStringTag,S=h&&o[Symbol.toStringTag]||o.constructor.name||"Object";return S}}function f(o){try{return b(o),!1}catch{return!0}}function b(o){return""+o}function k(o){if(f(o))return $("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",E(o)),b(o)}var W=q.ReactCurrentOwner,B={key:!0,ref:!0,__self:!0,__source:!0},J,se;function ce(o){if(ye.call(o,"ref")){var h=Object.getOwnPropertyDescriptor(o,"ref").get;if(h&&h.isReactWarning)return!1}return o.ref!==void 0}function Ae(o){if(ye.call(o,"key")){var h=Object.getOwnPropertyDescriptor(o,"key").get;if(h&&h.isReactWarning)return!1}return o.key!==void 0}function De(o,h){typeof o.ref=="string"&&W.current}function je(o,h){{var S=function(){J||(J=!0,$("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",h))};S.isReactWarning=!0,Object.defineProperty(o,"key",{get:S,configurable:!0})}}function ue(o,h){{var S=function(){se||(se=!0,$("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",h))};S.isReactWarning=!0,Object.defineProperty(o,"ref",{get:S,configurable:!0})}}var he=function(o,h,S,I,X,re,Q){var z={$$typeof:r,type:o,key:h,ref:S,props:Q,_owner:re};return z._store={},Object.defineProperty(z._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(z,"_self",{configurable:!1,enumerable:!1,writable:!1,value:I}),Object.defineProperty(z,"_source",{configurable:!1,enumerable:!1,writable:!1,value:X}),Object.freeze&&(Object.freeze(z.props),Object.freeze(z)),z};function Je(o,h,S,I,X){{var re,Q={},z=null,we=null;S!==void 0&&(k(S),z=""+S),Ae(h)&&(k(h.key),z=""+h.key),ce(h)&&(we=h.ref,De(h,X));for(re in h)ye.call(h,re)&&!B.hasOwnProperty(re)&&(Q[re]=h[re]);if(o&&o.defaultProps){var ie=o.defaultProps;for(re in ie)Q[re]===void 0&&(Q[re]=ie[re])}if(z||we){var le=typeof o=="function"?o.displayName||o.name||"Unknown":o;z&&je(Q,le),we&&ue(Q,le)}return he(o,z,we,X,I,W.current,Q)}}var lr=q.ReactCurrentOwner,hr=q.ReactDebugCurrentFrame;function Xe(o){if(o){var h=o._owner,S=oe(o.type,o._source,h?h.type:null);hr.setExtraStackFrame(S)}else hr.setExtraStackFrame(null)}var br;br=!1;function yr(o){return typeof o=="object"&&o!==null&&o.$$typeof===r}function Ar(){{if(lr.current){var o=K(lr.current.type);if(o)return`
37
37
 
38
- Check the render method of \``+o+"`."}return""}}function Zt(o){return""}var Dr={};function ea(o){{var h=Fr();if(!h){var S=typeof o=="string"?o:o.displayName||o.name;S&&(h=`
38
+ Check the render method of \``+o+"`."}return""}}function Yt(o){return""}var Fr={};function Wt(o){{var h=Ar();if(!h){var S=typeof o=="string"?o:o.displayName||o.name;S&&(h=`
39
39
 
40
- Check the top-level render call using <`+S+">.")}return h}}function Vr(o,h){{if(!o._store||o._store.validated||o.key!=null)return;o._store.validated=!0;var S=ea(h);if(Dr[S])return;Dr[S]=!0;var I="";o&&o._owner&&o._owner!==cr.current&&(I=" It was passed a child from "+K(o._owner.type)+"."),Xe(o),$('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',S,I),Xe(null)}}function _r(o,h){{if(typeof o!="object")return;if(p(o))for(var S=0;S<o.length;S++){var I=o[S];wr(I)&&Vr(I,h)}else if(wr(o))o._store&&(o._store.validated=!0);else if(o){var X=H(o);if(typeof X=="function"&&X!==o.entries)for(var re=X.call(o),Q;!(Q=re.next()).done;)wr(Q.value)&&Vr(Q.value,h)}}}function ra(o){{var h=o.type;if(h==null||typeof h=="string")return;var S;if(typeof h=="function")S=h.propTypes;else if(typeof h=="object"&&(h.$$typeof===u||h.$$typeof===D))S=h.propTypes;else return;if(S){var I=K(h);Ye(S,o.props,"prop",I,o)}else if(h.PropTypes!==void 0&&!yr){yr=!0;var X=K(h);$("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",X||"Unknown")}typeof h.getDefaultProps=="function"&&!h.getDefaultProps.isReactClassApproved&&$("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ta(o){{for(var h=Object.keys(o.props),S=0;S<h.length;S++){var I=h[S];if(I!=="children"&&I!=="key"){Xe(o),$("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",I),Xe(null);break}}o.ref!==null&&(Xe(o),$("Invalid attribute `ref` supplied to `React.Fragment`."),Xe(null))}}var Pr={};function $r(o,h,S,I,X,re){{var Q=v(o);if(!Q){var z="";(o===void 0||typeof o=="object"&&o!==null&&Object.keys(o).length===0)&&(z+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var we=Zt();we?z+=we:z+=Fr();var ie;o===null?ie="null":p(o)?ie="array":o!==void 0&&o.$$typeof===r?(ie="<"+(K(o.type)||"Unknown")+" />",z=" Did you accidentally export a JSX literal instead of a component?"):ie=typeof o,$("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ie,z)}var le=Je(o,h,S,X,re);if(le==null)return le;if(Q){var Fe=h.children;if(Fe!==void 0)if(I)if(p(Fe)){for(var Ze=0;Ze<Fe.length;Ze++)_r(Fe[Ze],o);Object.freeze&&Object.freeze(Fe)}else $("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else _r(Fe,o)}if(ye.call(h,"key")){var Ke=K(o),Oe=Object.keys(h).filter(function(la){return la!=="key"}),Cr=Oe.length>0?"{key: someKey, "+Oe.join(": ..., ")+": ...}":"{key: someKey}";if(!Pr[Ke+Cr]){var ia=Oe.length>0?"{"+Oe.join(": ..., ")+": ...}":"{}";$(`A props object containing a "key" prop is being spread into JSX:
40
+ Check the top-level render call using <`+S+">.")}return h}}function Dr(o,h){{if(!o._store||o._store.validated||o.key!=null)return;o._store.validated=!0;var S=Wt(h);if(Fr[S])return;Fr[S]=!0;var I="";o&&o._owner&&o._owner!==lr.current&&(I=" It was passed a child from "+K(o._owner.type)+"."),Xe(o),$('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',S,I),Xe(null)}}function Vr(o,h){{if(typeof o!="object")return;if(p(o))for(var S=0;S<o.length;S++){var I=o[S];yr(I)&&Dr(I,h)}else if(yr(o))o._store&&(o._store.validated=!0);else if(o){var X=H(o);if(typeof X=="function"&&X!==o.entries)for(var re=X.call(o),Q;!(Q=re.next()).done;)yr(Q.value)&&Dr(Q.value,h)}}}function Jt(o){{var h=o.type;if(h==null||typeof h=="string")return;var S;if(typeof h=="function")S=h.propTypes;else if(typeof h=="object"&&(h.$$typeof===u||h.$$typeof===D))S=h.propTypes;else return;if(S){var I=K(h);Ye(S,o.props,"prop",I,o)}else if(h.PropTypes!==void 0&&!br){br=!0;var X=K(h);$("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",X||"Unknown")}typeof h.getDefaultProps=="function"&&!h.getDefaultProps.isReactClassApproved&&$("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Xt(o){{for(var h=Object.keys(o.props),S=0;S<h.length;S++){var I=h[S];if(I!=="children"&&I!=="key"){Xe(o),$("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",I),Xe(null);break}}o.ref!==null&&(Xe(o),$("Invalid attribute `ref` supplied to `React.Fragment`."),Xe(null))}}var _r={};function Pr(o,h,S,I,X,re){{var Q=v(o);if(!Q){var z="";(o===void 0||typeof o=="object"&&o!==null&&Object.keys(o).length===0)&&(z+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var we=Yt();we?z+=we:z+=Ar();var ie;o===null?ie="null":p(o)?ie="array":o!==void 0&&o.$$typeof===r?(ie="<"+(K(o.type)||"Unknown")+" />",z=" Did you accidentally export a JSX literal instead of a component?"):ie=typeof o,$("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ie,z)}var le=Je(o,h,S,X,re);if(le==null)return le;if(Q){var Fe=h.children;if(Fe!==void 0)if(I)if(p(Fe)){for(var Ze=0;Ze<Fe.length;Ze++)Vr(Fe[Ze],o);Object.freeze&&Object.freeze(Fe)}else $("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Vr(Fe,o)}if(ye.call(h,"key")){var Me=K(o),Oe=Object.keys(h).filter(function(na){return na!=="key"}),wr=Oe.length>0?"{key: someKey, "+Oe.join(": ..., ")+": ...}":"{key: someKey}";if(!_r[Me+wr]){var aa=Oe.length>0?"{"+Oe.join(": ..., ")+": ...}":"{}";$(`A props object containing a "key" prop is being spread into JSX:
41
41
  let props = %s;
42
42
  <%s {...props} />
43
43
  React keys must be passed directly to JSX without using spread:
44
44
  let props = %s;
45
- <%s key={someKey} {...props} />`,Cr,Ke,ia,Ke),Pr[Ke+Cr]=!0}}return o===a?ta(le):ra(le),le}}function aa(o,h,S){return $r(o,h,S,!0)}function na(o,h,S){return $r(o,h,S,!1)}var oa=na,sa=aa;or.Fragment=a,or.jsx=oa,or.jsxs=sa}()),or}process.env.NODE_ENV==="production"?Or.exports=ao():Or.exports=no();var Ne=Or.exports;const jt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...r}));jt.displayName="Kanban";const Lt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...r}));Lt.displayName="KanbanColumn";const qt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("mb-3 flex items-center justify-between",e),...r}));qt.displayName="KanbanColumnHeader";const Ut=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("h3",{ref:t,className:Ve("text-sm font-semibold text-gray-700",e),...r}));Ut.displayName="KanbanColumnTitle";const Bt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("flex-1 space-y-2 overflow-y-auto",e),...r}));Bt.displayName="KanbanColumnContent";const Mt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...r}));Mt.displayName="KanbanCard";const Kt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("font-medium text-gray-900 mb-1",e),...r}));Kt.displayName="KanbanCardTitle";const zt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("text-sm text-gray-600",e),...r}));zt.displayName="KanbanCardDescription";const Gt=Ie.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("mt-3 pt-3 border-t border-gray-200",e),...r}));Gt.displayName="KanbanColumnFooter";const Ht={sessionEndpoint:"/api/id",providers:{google:{loginPath:"/api/auth/google/login",logoutPath:"/api/auth/logout"}},defaultProvider:"google",autoRedirect:!0,sessionCheckInterval:0,retry:{count:3,delay:1e3},staleTime:5*60*1e3,refetchOnWindowFocus:!0,refetchOnReconnect:!0};let $e={...Ht};function Qt(e){$e={...$e,...e,providers:{...$e.providers,...e.providers},retry:{...$e.retry,...e.retry}}}function oo(e,r){$e.providers[e]=r}function lr(){return{...$e}}function hr(){return $e.baseUrl||gr()}function Yt(e){return $e.providers[e]}function so(){$e={...Ht}}class pr extends Error{constructor(t,a){super(t);ze(this,"statusCode");this.name="AuthenticationError",this.statusCode=a}}async function Wt(){const e=lr(),r=hr(),t=sr(),a=await fetch(`${r}${e.sessionEndpoint}`,{method:"GET",headers:t,credentials:"include"});if(!a.ok)throw a.status===401||a.status===403?new pr("Not authenticated",a.status):new pr(`Session check failed: ${a.statusText}`,a.status);return await a.json()}function Nr(e,r){return new Promise(()=>{const t=lr(),a=hr();if(!a)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const n=e||t.defaultProvider,s=Yt(n);if(!s){const m=Object.keys(t.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${n}" is not configured. Available providers: ${m}`)}if(!s.loginPath)throw new Error(`Login path not configured for provider "${n}". Configure it with: configureAuth({ providers: { ${n}: { loginPath: '/api/auth/...' } } })`);let i;try{i=new URL(`${a}${s.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${a}", Login path: "${s.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(r!=null&&r.callbackUrl||t.callbackUrl)&&i.searchParams.set("callbackUrl",(r==null?void 0:r.callbackUrl)||t.callbackUrl||window.location.href),r!=null&&r.params&&Object.entries(r.params).forEach(([m,u])=>{i.searchParams.set(m,u)}),window.location.href=i.toString()})}async function Jt(e){const r=lr(),t=hr(),a=sr(),n=Yt(r.defaultProvider),s=n==null?void 0:n.logoutPath;if(s&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${t}${s}`,{method:"POST",headers:a,credentials:"include"})}catch(i){console.warn("Logout endpoint call failed:",i)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:r.loginRedirectUrl&&(window.location.href=r.loginRedirectUrl)}const Xt=l.createContext(null),Jr=["auth","session"];function io({children:e,config:r,onAuthChange:t,onError:a,loadingComponent:n,unauthenticatedComponent:s,skipInitialCheck:i=!1}){const m=l.useRef(!1);r&&!m.current&&(Qt(r),m.current=!0);const u=Ce.useQueryClient(),d=lr(),{data:y,isLoading:D,error:_,refetch:F,isFetching:G}=Ce.useQuery({queryKey:Jr,queryFn:Wt,enabled:!i,retry:(U,Z)=>Z instanceof pr&&(Z.statusCode===401||Z.statusCode===403)?!1:U<d.retry.count,retryDelay:d.retry.delay,staleTime:d.staleTime,gcTime:d.staleTime*2,refetchOnWindowFocus:d.refetchOnWindowFocus??!0,refetchOnReconnect:d.refetchOnReconnect??!0,refetchInterval:d.sessionCheckInterval||!1}),[w,H]=l.useState(null),q=l.useMemo(()=>D||G?"loading":y!=null&&y.userDetails?"authenticated":"unauthenticated",[D,G,y]),$=(y==null?void 0:y.userDetails)||null,L=(y==null?void 0:y.staticBaseUrl)||null,te=(y==null?void 0:y.buildId)||null,ae=q==="authenticated",T=l.useRef(t);T.current=t;const g=l.useRef(a);g.current=a,l.useEffect(()=>{var U;D||(U=T.current)==null||U.call(T,q,$)},[q,$,D]),l.useEffect(()=>{var U;_&&(H(_),(U=g.current)==null||U.call(g,_))},[_]),l.useEffect(()=>{q==="unauthenticated"&&d.autoRedirect&&!D&&Nr()},[q,D,d.autoRedirect]);const c=l.useCallback((U,Z)=>{Nr(U,Z)},[]),C=l.useCallback(async U=>{u.removeQueries({queryKey:Jr}),await Jt(U)},[u]),v=l.useCallback(async()=>{if(G)return y||null;try{return(await F()).data||null}catch(U){return H(U),null}},[F,G,y]),N=l.useCallback(U=>($==null?void 0:$.Role)===U,[$]),j=l.useCallback(U=>U.includes(($==null?void 0:$.Role)||""),[$]),K=l.useCallback(()=>{H(null)},[]),Y=l.useCallback(()=>{F()},[F]),ee=l.useMemo(()=>({user:$,staticBaseUrl:L,buildId:te,status:q,isAuthenticated:ae,isLoading:D,login:c,logout:C,refreshSession:v,hasRole:N,hasAnyRole:j,error:w,clearError:K,_forceCheck:Y}),[$,L,te,q,ae,D,c,C,v,N,j,w,K,Y]);return q==="loading"&&n?Ne.jsx(Ne.Fragment,{children:n}):q==="unauthenticated"&&!d.autoRedirect&&s?Ne.jsx(Ne.Fragment,{children:s}):Ne.jsx(Xt.Provider,{value:ee,children:e})}function lo(){const e=l.useContext(Xt);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function co(){const e=lo();return l.useMemo(()=>({user:e.user,staticBaseUrl:e.staticBaseUrl,buildId:e.buildId,status:e.status,isAuthenticated:e.isAuthenticated,isLoading:e.isLoading,login:e.login,logout:e.logout,refreshSession:e.refreshSession,hasRole:e.hasRole,hasAnyRole:e.hasAnyRole,error:e.error,clearError:e.clearError}),[e.user,e.staticBaseUrl,e.buildId,e.status,e.isAuthenticated,e.isLoading,e.login,e.logout,e.refreshSession,e.hasRole,e.hasAnyRole,e.error,e.clearError])}exports.AuthProvider=io;exports.AuthenticationError=pr;exports.Kanban=jt;exports.KanbanCard=Mt;exports.KanbanCardDescription=zt;exports.KanbanCardTitle=Kt;exports.KanbanColumn=Lt;exports.KanbanColumnContent=Bt;exports.KanbanColumnFooter=Gt;exports.KanbanColumnHeader=qt;exports.KanbanColumnTitle=Ut;exports.api=ve;exports.areFilterPayloadsEqual=wn;exports.buildFilterPayload=At;exports.buildFilterPayloadFromState=hn;exports.cloneFilterPayload=Dt;exports.cn=Ve;exports.configureAuth=Qt;exports.createFieldDefinitionsFromSample=gn;exports.decodeDate=ya;exports.decodeDatetime=ha;exports.encodeDate=ba;exports.encodeDatetime=ga;exports.fetchSession=Wt;exports.filterPayloadToString=yn;exports.formatArray=nt;exports.formatBoolean=ot;exports.formatCurrency=Zr;exports.formatDate=et;exports.formatDateTime=rt;exports.formatFieldValue=Ea;exports.formatJSON=at;exports.formatNumber=tt;exports.formatTextArea=st;exports.getApiBaseUrl=gr;exports.getAuthBaseUrl=hr;exports.getAuthConfig=lr;exports.getBdoSchema=Xr;exports.getDefaultFieldDefinition=Ue;exports.getDefaultHeaders=sr;exports.initiateLogin=Nr;exports.listMetadata=wa;exports.mergeFilterPayloads=bn;exports.parseCurrency=Ca;exports.performLogout=Jt;exports.resetAuthConfig=so;exports.setApiBaseUrl=ma;exports.setAuthProvider=oo;exports.setDefaultHeaders=pa;exports.truncateString=va;exports.useAuth=co;exports.useFilter=Tr;exports.useForm=eo;exports.useKanban=to;exports.useTable=Cn;exports.validateBooleanValue=Nt;exports.validateCurrencyValue=xt;exports.validateDateValue=kt;exports.validateFilterPayload=Ar;exports.validateNumberValue=St;exports.validateSelectValue=Rt;exports.validateStringValue=Ot;
45
+ <%s key={someKey} {...props} />`,wr,Me,aa,Me),_r[Me+wr]=!0}}return o===a?Xt(le):Jt(le),le}}function Zt(o,h,S){return Pr(o,h,S,!0)}function ea(o,h,S){return Pr(o,h,S,!1)}var ra=ea,ta=Zt;or.Fragment=a,or.jsx=ra,or.jsxs=ta}()),or}process.env.NODE_ENV==="production"?xr.exports=Zn():xr.exports=eo();var Ne=xr.exports;const jt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...r}));jt.displayName="Kanban";const Lt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...r}));Lt.displayName="KanbanColumn";const qt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("mb-3 flex items-center justify-between",e),...r}));qt.displayName="KanbanColumnHeader";const Ut=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("h3",{ref:t,className:Ve("text-sm font-semibold text-gray-700",e),...r}));Ut.displayName="KanbanColumnTitle";const Bt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("flex-1 space-y-2 overflow-y-auto",e),...r}));Bt.displayName="KanbanColumnContent";const Mt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...r}));Mt.displayName="KanbanCard";const Kt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("font-medium text-gray-900 mb-1",e),...r}));Kt.displayName="KanbanCardTitle";const zt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("text-sm text-gray-600",e),...r}));zt.displayName="KanbanCardDescription";const Gt=$e.forwardRef(({className:e,...r},t)=>Ne.jsx("div",{ref:t,className:Ve("mt-3 pt-3 border-t border-gray-200",e),...r}));Gt.displayName="KanbanColumnFooter";const ro={sessionEndpoint:"/api/id",providers:{google:{loginPath:"/api/auth/google/login",logoutPath:"/api/auth/logout"}},defaultProvider:"google",autoRedirect:!1,sessionCheckInterval:0,retry:{count:3,delay:1e3},staleTime:5*60*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!0};let Ge={...ro};function to(e){Ge={...Ge,...e,providers:{...Ge.providers,...e.providers},retry:{...Ge.retry,...e.retry}}}function gr(){return{...Ge}}function Tr(){return Ge.baseUrl||pr()||(typeof window<"u"?window.location.origin:"")}function Ht(e){return Ge.providers[e]}class mr extends Error{constructor(t,a){super(t);Ke(this,"statusCode");this.name="AuthenticationError",this.statusCode=a}}async function ao(){const e=gr(),r=Tr(),t=sr(),a=await fetch(`${r}${e.sessionEndpoint}`,{method:"GET",headers:t,credentials:"include"});if(!a.ok)throw a.status===401||a.status===403?new mr("Not authenticated",a.status):new mr(`Session check failed: ${a.statusText}`,a.status);return await a.json()}function Wr(e,r){return new Promise(()=>{const t=gr(),a=Tr();if(!a)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const n=e||t.defaultProvider,s=Ht(n);if(!s){const m=Object.keys(t.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${n}" is not configured. Available providers: ${m}`)}if(!s.loginPath)throw new Error(`Login path not configured for provider "${n}". Configure it with: configureAuth({ providers: { ${n}: { loginPath: '/api/auth/...' } } })`);let i;try{i=new URL(`${a}${s.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${a}", Login path: "${s.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(r!=null&&r.callbackUrl||t.callbackUrl)&&i.searchParams.set("callbackUrl",(r==null?void 0:r.callbackUrl)||t.callbackUrl||window.location.href),r!=null&&r.params&&Object.entries(r.params).forEach(([m,u])=>{i.searchParams.set(m,u)}),window.location.href=i.toString()})}async function no(e){const r=gr(),t=Tr(),a=sr(),n=Ht(r.defaultProvider),s=n==null?void 0:n.logoutPath;if(s&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${t}${s}`,{method:"POST",headers:a,credentials:"include"})}catch(i){console.warn("Logout endpoint call failed:",i)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:r.loginRedirectUrl&&(window.location.href=r.loginRedirectUrl)}const Qt=l.createContext(null),Jr=["auth","session"];function oo({children:e,config:r,onAuthChange:t,onError:a,loadingComponent:n,unauthenticatedComponent:s,skipInitialCheck:i=!1}){const m=l.useRef(!1);r&&!m.current&&(to(r),m.current=!0);const u=Ce.useQueryClient(),d=gr(),{data:y,isLoading:D,error:_,refetch:F,isFetching:G}=Ce.useQuery({queryKey:Jr,queryFn:ao,enabled:!i,retry:(U,Z)=>Z instanceof mr&&(Z.statusCode===401||Z.statusCode===403)?!1:U<d.retry.count,retryDelay:d.retry.delay,staleTime:d.staleTime,gcTime:d.staleTime*2,refetchOnWindowFocus:d.refetchOnWindowFocus??!0,refetchOnReconnect:d.refetchOnReconnect??!0,refetchInterval:d.sessionCheckInterval||!1}),[w,H]=l.useState(null),q=l.useMemo(()=>D||G?"loading":y!=null&&y.userDetails?"authenticated":"unauthenticated",[D,G,y]),$=(y==null?void 0:y.userDetails)||null,L=(y==null?void 0:y.staticBaseUrl)||null,te=(y==null?void 0:y.buildId)||null,ae=q==="authenticated",T=l.useRef(t);T.current=t;const g=l.useRef(a);g.current=a,l.useEffect(()=>{var U;D||(U=T.current)==null||U.call(T,q,$)},[q,$,D]),l.useEffect(()=>{var U;_&&(H(_),(U=g.current)==null||U.call(g,_))},[_]),l.useEffect(()=>{q==="unauthenticated"&&d.autoRedirect&&!D&&Wr()},[q,D,d.autoRedirect]);const c=l.useCallback((U,Z)=>{Wr(U,Z)},[]),C=l.useCallback(async U=>{u.removeQueries({queryKey:Jr}),await no(U)},[u]),v=l.useCallback(async()=>{if(G)return y||null;try{return(await F()).data||null}catch(U){return H(U),null}},[F,G,y]),N=l.useCallback(U=>($==null?void 0:$.Role)===U,[$]),j=l.useCallback(U=>U.includes(($==null?void 0:$.Role)||""),[$]),K=l.useCallback(()=>{H(null)},[]),Y=l.useCallback(()=>{F()},[F]),ee=l.useMemo(()=>({user:$,staticBaseUrl:L,buildId:te,status:q,isAuthenticated:ae,isLoading:D,login:c,logout:C,refreshSession:v,hasRole:N,hasAnyRole:j,error:w,clearError:K,_forceCheck:Y}),[$,L,te,q,ae,D,c,C,v,N,j,w,K,Y]);return q==="loading"&&n?Ne.jsx(Ne.Fragment,{children:n}):q==="unauthenticated"&&!d.autoRedirect&&s?Ne.jsx(Ne.Fragment,{children:s}):Ne.jsx(Qt.Provider,{value:ee,children:e})}function so(){const e=l.useContext(Qt);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function io(){const e=so();return l.useMemo(()=>({user:e.user,staticBaseUrl:e.staticBaseUrl,buildId:e.buildId,status:e.status,isAuthenticated:e.isAuthenticated,isLoading:e.isLoading,login:e.login,logout:e.logout,refreshSession:e.refreshSession,hasRole:e.hasRole,hasAnyRole:e.hasAnyRole,error:e.error,clearError:e.clearError}),[e.user,e.staticBaseUrl,e.buildId,e.status,e.isAuthenticated,e.isLoading,e.login,e.logout,e.refreshSession,e.hasRole,e.hasAnyRole,e.error,e.clearError])}exports.AuthProvider=oo;exports.AuthenticationError=mr;exports.Kanban=jt;exports.KanbanCard=Mt;exports.KanbanCardDescription=zt;exports.KanbanCardTitle=Kt;exports.KanbanColumn=Lt;exports.KanbanColumnContent=Bt;exports.KanbanColumnFooter=Gt;exports.KanbanColumnHeader=qt;exports.KanbanColumnTitle=Ut;exports.api=ve;exports.areFilterPayloadsEqual=gn;exports.buildFilterPayload=At;exports.buildFilterPayloadFromState=fn;exports.cloneFilterPayload=Dt;exports.cn=Ve;exports.createFieldDefinitionsFromSample=dn;exports.decodeDate=pa;exports.decodeDatetime=fa;exports.encodeDate=ma;exports.encodeDatetime=da;exports.filterPayloadToString=pn;exports.formatArray=nt;exports.formatBoolean=ot;exports.formatCurrency=Zr;exports.formatDate=et;exports.formatDateTime=rt;exports.formatFieldValue=ya;exports.formatJSON=at;exports.formatNumber=tt;exports.formatTextArea=st;exports.getApiBaseUrl=pr;exports.getBdoSchema=Xr;exports.getDefaultFieldDefinition=qe;exports.getDefaultHeaders=sr;exports.listMetadata=ga;exports.mergeFilterPayloads=mn;exports.parseCurrency=ha;exports.setApiBaseUrl=ca;exports.setDefaultHeaders=ua;exports.truncateString=ba;exports.useAuth=io;exports.useFilter=Nr;exports.useForm=Wn;exports.useKanban=Xn;exports.useTable=hn;exports.validateBooleanValue=Nt;exports.validateCurrencyValue=xt;exports.validateDateValue=kt;exports.validateFilterPayload=Rr;exports.validateNumberValue=St;exports.validateSelectValue=Rt;exports.validateStringValue=Ot;