@ram_28/kf-ai-sdk 1.0.8 → 1.0.10

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.
Files changed (29) hide show
  1. package/dist/components/hooks/index.d.ts +2 -1
  2. package/dist/components/hooks/index.d.ts.map +1 -1
  3. package/dist/components/hooks/useForm/apiClient.d.ts +4 -4
  4. package/dist/components/hooks/useForm/apiClient.d.ts.map +1 -1
  5. package/dist/components/hooks/useForm/expressionValidator.utils.d.ts +3 -3
  6. package/dist/components/hooks/useForm/expressionValidator.utils.d.ts.map +1 -1
  7. package/dist/components/hooks/useForm/index.d.ts +7 -4
  8. package/dist/components/hooks/useForm/index.d.ts.map +1 -1
  9. package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts +5 -5
  10. package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts.map +1 -1
  11. package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts +7 -6
  12. package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts.map +1 -1
  13. package/dist/components/hooks/useForm/schemaParser.utils.d.ts +8 -8
  14. package/dist/components/hooks/useForm/schemaParser.utils.d.ts.map +1 -1
  15. package/dist/components/hooks/useForm/types.d.ts +130 -112
  16. package/dist/components/hooks/useForm/types.d.ts.map +1 -1
  17. package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
  18. package/dist/index.cjs +13 -13
  19. package/dist/index.mjs +2082 -2067
  20. package/package.json +1 -1
  21. package/sdk/components/hooks/index.ts +24 -4
  22. package/sdk/components/hooks/useForm/apiClient.ts +5 -5
  23. package/sdk/components/hooks/useForm/expressionValidator.utils.ts +11 -11
  24. package/sdk/components/hooks/useForm/index.ts +41 -45
  25. package/sdk/components/hooks/useForm/optimizedExpressionValidator.utils.ts +7 -7
  26. package/sdk/components/hooks/useForm/ruleClassifier.utils.ts +21 -20
  27. package/sdk/components/hooks/useForm/schemaParser.utils.ts +36 -41
  28. package/sdk/components/hooks/useForm/types.ts +156 -141
  29. package/sdk/components/hooks/useForm/useForm.ts +155 -142
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var Jt=Object.defineProperty;var Ht=(e,r,n)=>r in e?Jt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n;var Ge=(e,r,n)=>Ht(e,typeof r!="symbol"?r+"":r,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),Ce=require("@tanstack/react-query"),Xt=require("react-hook-form");function Zt(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const Ve=Zt(c);let We={baseUrl:"",headers:{"Content-Type":"application/json"}};function en(e){We.baseUrl=e}function rn(e){We.headers={...We.headers,...e}}function sr(){return{...We.headers}}function pr(){return We.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[n,t]of Object.entries(e))r[n]=dr(t);return r}return e}function Ee(e){const r=We.baseUrl,n=We.headers;return{async get(t){const a=await fetch(`${r}/api/app/${e}/${t}/read`,{method:"GET",headers:n});if(!a.ok)throw new Error(`Failed to get ${e} ${t}: ${a.statusText}`);const s=await a.json();return dr(s.Data)},async create(t){const a=await fetch(`${r}/api/app/${e}/create`,{method:"POST",headers:n,body:JSON.stringify(t)});if(!a.ok)throw new Error(`Failed to create ${e}: ${a.statusText}`);return a.json()},async update(t,a){const s=await fetch(`${r}/api/app/${e}/${t}/update`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to update ${e} ${t}: ${s.statusText}`);return s.json()},async delete(t){const a=await fetch(`${r}/api/app/${e}/${t}/delete`,{method:"DELETE",headers:n});if(!a.ok)throw new Error(`Failed to delete ${e} ${t}: ${a.statusText}`);return a.json()},async list(t){const a={Type:"List",...t},s=await fetch(`${r}/api/app/${e}/list`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to list ${e}: ${s.statusText}`);return{Data:(await s.json()).Data.map(u=>dr(u))}},async count(t){var l,f;const a={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(t==null?void 0:t.Filter)&&{Filter:t.Filter}},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to count ${e}: ${s.statusText}`);return{Count:((f=(l=(await s.json()).Data)==null?void 0:l[0])==null?void 0:f.count__id)??0}},async draft(t){const a=await fetch(`${r}/api/app/${e}/draft`,{method:"POST",headers:n,body:JSON.stringify(t)});if(!a.ok)throw new Error(`Failed to create draft for ${e}: ${a.statusText}`);return a.json()},async draftUpdate(t,a){const s=await fetch(`${r}/api/app/${e}/${t}/draft`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to update draft for ${e} ${t}: ${s.statusText}`);return s.json()},async draftPatch(t,a){const s=await fetch(`${r}/api/app/${e}/${t}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to patch draft for ${e} ${t}: ${s.statusText}`);return s.json()},async metric(t){const a={Type:"Metric",...t},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to get metrics for ${e}: ${s.statusText}`);return s.json()},async pivot(t){const a={Type:"Pivot",...t},s=await fetch(`${r}/api/app/${e}/pivot`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!s.ok)throw new Error(`Failed to get pivot data for ${e}: ${s.statusText}`);return s.json()},async fields(){const t=await fetch(`${r}/api/app/${e}/fields`,{method:"GET",headers:n});if(!t.ok)throw new Error(`Failed to get fields for ${e}: ${t.statusText}`);return t.json()},async fetchField(t,a){const s=await fetch(`${r}/api/app/${e}/${t}/field/${a}/fetch`,{method:"GET",headers:n});if(!s.ok)throw new Error(`Failed to fetch field ${a} for ${e}: ${s.statusText}`);return(await s.json()).Data}}}function tn(e){return{$__dt__:e.getTime()/1e3}}function nn(e){return new Date(e.$__dt__*1e3)}function an(e){return{$__d__:e.toISOString().split("T")[0]}}function on(e){return new Date(e.$__d__)}async function Zr(e){try{const r=pr(),n=sr(),t=await fetch(`${r}/api/app/meta/bdo/${e}`,{method:"GET",headers:n});if(!t.ok)throw new Error(`Failed to fetch schema for ${e}: ${t.statusText}`);const a=await t.json();if(!a||typeof a!="object")throw new Error(`Invalid BDO schema response for ${e}`);return a}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 sn(e){try{const r=pr(),n=sr(),t=e!=null&&e.Filter||e!=null&&e.Sort?"POST":"GET",a=await fetch(`${r}/api/app/metadata/list`,{method:t,headers:n,...t==="POST"&&e&&{body:JSON.stringify(e)}});if(!a.ok)throw new Error(`Failed to list metadata: ${a.statusText}`);return await a.json()}catch(r){throw console.error("Metadata list error:",r),new Error(`Failed to list metadata: ${r instanceof Error?r.message:"Unknown error"}`)}}function et(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 cn(e){const r=e.match(/^(?:([A-Z]{3})\s+(\d+\.?\d*))|(?:(\d+\.?\d*)\s+([A-Z]{3}))$/);if(r){const n=r[1]||r[4],t=parseFloat(r[2]||r[3]);if(!isNaN(t))return{value:t,currency:n}}return null}function rt(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const n={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",n).format(e)}function tt(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const n={short:{dateStyle:"short",timeStyle:"short"},medium:{dateStyle:"medium",timeStyle:"medium"},long:{dateStyle:"long",timeStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",n).format(e)}function nt(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 ot(e,r,n=", "){return Array.isArray(e)?r?e.map(r).join(n):e.map(t=>String(t)).join(n):"Invalid Array"}function st(e,r){return typeof e!="boolean"?"Invalid Boolean":e?(r==null?void 0:r.trueLabel)||"Yes":(r==null?void 0:r.falseLabel)||"No"}function ln(e,r=50){return typeof e!="string"?"Invalid String":e.length<=r?e:e.slice(0,r-3)+"..."}function it(e,r){if(typeof e!="string")return"Invalid Text";const n=e.split(`
2
- `);return r&&n.length>r?n.slice(0,r).join(`
1
+ "use strict";var Hr=Object.defineProperty;var Xr=(e,t,n)=>t in e?Hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ve=(e,t,n)=>Xr(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),be=require("@tanstack/react-query"),Zr=require("react-hook-form");function en(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Pe=en(l);let Me={baseUrl:"",headers:{"Content-Type":"application/json"}};function tn(e){Me.baseUrl=e}function rn(e){Me.headers={...Me.headers,...e}}function nt(){return{...Me.headers}}function lt(){return Me.baseUrl||""}function ot(e){if(e==null)return e;if(Array.isArray(e))return e.map(t=>ot(t));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const t={};for(const[n,r]of Object.entries(e))t[n]=ot(r);return t}return e}function ye(e){const t=Me.baseUrl,n=Me.headers;return{async get(r){const a=await fetch(`${t}/api/app/${e}/${r}/read`,{method:"GET",headers:n});if(!a.ok)throw new Error(`Failed to get ${e} ${r}: ${a.statusText}`);const o=await a.json();return ot(o.Data)},async create(r){const a=await fetch(`${t}/api/app/${e}/create`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to create ${e}: ${a.statusText}`);return a.json()},async update(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/update`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to update ${e} ${r}: ${o.statusText}`);return o.json()},async delete(r){const a=await fetch(`${t}/api/app/${e}/${r}/delete`,{method:"DELETE",headers:n});if(!a.ok)throw new Error(`Failed to delete ${e} ${r}: ${a.statusText}`);return a.json()},async list(r){const a={Type:"List",...r},o=await fetch(`${t}/api/app/${e}/list`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to list ${e}: ${o.statusText}`);return{Data:(await o.json()).Data.map(d=>ot(d))}},async count(r){var u,f;const a={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(r==null?void 0:r.Filter)&&{Filter:r.Filter}},o=await fetch(`${t}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to count ${e}: ${o.statusText}`);return{Count:((f=(u=(await o.json()).Data)==null?void 0:u[0])==null?void 0:f.count__id)??0}},async draft(r){const a=await fetch(`${t}/api/app/${e}/draft`,{method:"POST",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to create draft for ${e}: ${a.statusText}`);return a.json()},async draftUpdate(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/draft`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to update draft for ${e} ${r}: ${o.statusText}`);return o.json()},async draftPatch(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to patch draft for ${e} ${r}: ${o.statusText}`);return o.json()},async metric(r){const a={Type:"Metric",...r},o=await fetch(`${t}/api/app/${e}/metric`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to get metrics for ${e}: ${o.statusText}`);return o.json()},async pivot(r){const a={Type:"Pivot",...r},o=await fetch(`${t}/api/app/${e}/pivot`,{method:"POST",headers:n,body:JSON.stringify(a)});if(!o.ok)throw new Error(`Failed to get pivot data for ${e}: ${o.statusText}`);return o.json()},async fields(){const r=await fetch(`${t}/api/app/${e}/fields`,{method:"GET",headers:n});if(!r.ok)throw new Error(`Failed to get fields for ${e}: ${r.statusText}`);return r.json()},async fetchField(r,a){const o=await fetch(`${t}/api/app/${e}/${r}/field/${a}/fetch`,{method:"GET",headers:n});if(!o.ok)throw new Error(`Failed to fetch field ${a} for ${e}: ${o.statusText}`);return(await o.json()).Data}}}function nn(e){return{$__dt__:e.getTime()/1e3}}function an(e){return new Date(e.$__dt__*1e3)}function sn(e){return{$__d__:e.toISOString().split("T")[0]}}function on(e){return new Date(e.$__d__)}async function Xt(e){try{const t=lt(),n=nt(),r=await fetch(`${t}/api/app/meta/bdo/${e}`,{method:"GET",headers:n});if(!r.ok)throw new Error(`Failed to fetch schema for ${e}: ${r.statusText}`);const a=await r.json();if(!a||typeof a!="object")throw new Error(`Invalid BDO schema response for ${e}`);return a}catch(t){throw console.error(`Schema fetch error for ${e}:`,t),new Error(`Failed to load BDO schema: ${t instanceof Error?t.message:"Unknown error"}`)}}async function cn(e){try{const t=lt(),n=nt(),r=e!=null&&e.Filter||e!=null&&e.Sort?"POST":"GET",a=await fetch(`${t}/api/app/metadata/list`,{method:r,headers:n,...r==="POST"&&e&&{body:JSON.stringify(e)}});if(!a.ok)throw new Error(`Failed to list metadata: ${a.statusText}`);return await a.json()}catch(t){throw console.error("Metadata list error:",t),new Error(`Failed to list metadata: ${t instanceof Error?t.message:"Unknown error"}`)}}function Zt(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 ln(e){const t=e.match(/^(?:([A-Z]{3})\s+(\d+\.?\d*))|(?:(\d+\.?\d*)\s+([A-Z]{3}))$/);if(t){const n=t[1]||t[4],r=parseFloat(t[2]||t[3]);if(!isNaN(r))return{value:r,currency:n}}return null}function er(e,t="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const n={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"}}[t];return new Intl.DateTimeFormat("en-US",n).format(e)}function tr(e,t="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const n={short:{dateStyle:"short",timeStyle:"short"},medium:{dateStyle:"medium",timeStyle:"medium"},long:{dateStyle:"long",timeStyle:"long"}}[t];return new Intl.DateTimeFormat("en-US",n).format(e)}function rr(e,t=2){return typeof e!="number"||isNaN(e)?"Invalid Number":e.toFixed(t)}function nr(e,t=2){try{return JSON.stringify(e,null,t)}catch{return"Invalid JSON"}}function ar(e,t,n=", "){return Array.isArray(e)?t?e.map(t).join(n):e.map(r=>String(r)).join(n):"Invalid Array"}function sr(e,t){return typeof e!="boolean"?"Invalid Boolean":e?(t==null?void 0:t.trueLabel)||"Yes":(t==null?void 0:t.falseLabel)||"No"}function un(e,t=50){return typeof e!="string"?"Invalid String":e.length<=t?e:e.slice(0,t-3)+"..."}function or(e,t){if(typeof e!="string")return"Invalid Text";const n=e.split(`
2
+ `);return t&&n.length>t?n.slice(0,t).join(`
3
3
  `)+`
4
- ...`:e}function un(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 it(String(e));case"number":return nt(e);case"boolean":return st(e);case"date":return rt(e);case"datetime":return tt(e);case"currency":return et(e);case"json":return at(e);case"array":return ot(e);default:return String(e)}}function ct(e){var r,n,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(r=0;r<a;r++)e[r]&&(n=ct(e[r]))&&(t&&(t+=" "),t+=n)}else for(n in e)e[n]&&(t&&(t+=" "),t+=n);return t}function dn(){for(var e,r,n=0,t="",a=arguments.length;n<a;n++)(e=arguments[n])&&(r=ct(e))&&(t&&(t+=" "),t+=r);return t}const fn=(e,r)=>{const n=new Array(e.length+r.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let t=0;t<r.length;t++)n[e.length+t]=r[t];return n},mn=(e,r)=>({classGroupId:e,validator:r}),lt=(e=new Map,r=null,n)=>({nextPart:e,validators:r,classGroupId:n}),fr="-",Ir=[],pn="arbitrary..",gn=e=>{const r=bn(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return hn(i);const u=i.split(fr),l=u[0]===""&&u.length>1?1:0;return ut(u,l,r)},getConflictingClassGroupIds:(i,u)=>{if(u){const l=t[i],f=n[i];return l?f?fn(f,l):l:f||Ir}return n[i]||Ir}}},ut=(e,r,n)=>{if(e.length-r===0)return n.classGroupId;const a=e[r],s=n.nextPart.get(a);if(s){const f=ut(e,r+1,s);if(f)return f}const i=n.validators;if(i===null)return;const u=r===0?e.join(fr):e.slice(r).join(fr),l=i.length;for(let f=0;f<l;f++){const g=i[f];if(g.validator(u))return g.classGroupId}},hn=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),n=r.indexOf(":"),t=r.slice(0,n);return t?pn+t:void 0})(),bn=e=>{const{theme:r,classGroups:n}=e;return yn(n,r)},yn=(e,r)=>{const n=lt();for(const t in e){const a=e[t];Or(a,n,t,r)}return n},Or=(e,r,n,t)=>{const a=e.length;for(let s=0;s<a;s++){const i=e[s];wn(i,r,n,t)}},wn=(e,r,n,t)=>{if(typeof e=="string"){vn(e,r,n);return}if(typeof e=="function"){Cn(e,r,n,t);return}En(e,r,n,t)},vn=(e,r,n)=>{const t=e===""?r:dt(r,e);t.classGroupId=n},Cn=(e,r,n,t)=>{if(kn(e)){Or(e(t),r,n,t);return}r.validators===null&&(r.validators=[]),r.validators.push(mn(n,e))},En=(e,r,n,t)=>{const a=Object.entries(e),s=a.length;for(let i=0;i<s;i++){const[u,l]=a[i];Or(l,dt(r,u),n,t)}},dt=(e,r)=>{let n=e;const t=r.split(fr),a=t.length;for(let s=0;s<a;s++){const i=t[s];let u=n.nextPart.get(i);u||(u=lt(),n.nextPart.set(i,u)),n=u}return n},kn=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Sn=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,n=Object.create(null),t=Object.create(null);const a=(s,i)=>{n[s]=i,r++,r>e&&(r=0,t=n,n=Object.create(null))};return{get(s){let i=n[s];if(i!==void 0)return i;if((i=t[s])!==void 0)return a(s,i),i},set(s,i){s in n?n[s]=i:a(s,i)}}},kr="!",Vr=":",xn=[],Lr=(e,r,n,t,a)=>({modifiers:e,hasImportantModifier:r,baseClassName:n,maybePostfixModifierPosition:t,isExternal:a}),Rn=e=>{const{prefix:r,experimentalParseClassName:n}=e;let t=a=>{const s=[];let i=0,u=0,l=0,f;const g=a.length;for(let h=0;h<g;h++){const ne=a[h];if(i===0&&u===0){if(ne===Vr){s.push(a.slice(l,h)),l=h+1;continue}if(ne==="/"){f=h;continue}}ne==="["?i++:ne==="]"?i--:ne==="("?u++:ne===")"&&u--}const E=s.length===0?a:a.slice(l);let _=E,G=!1;E.endsWith(kr)?(_=E.slice(0,-1),G=!0):E.startsWith(kr)&&(_=E.slice(1),G=!0);const Y=f&&f>l?f-l:void 0;return Lr(s,G,_,Y)};if(r){const a=r+Vr,s=t;t=i=>i.startsWith(a)?s(i.slice(a.length)):Lr(xn,!1,i,void 0,!0)}if(n){const a=t;t=s=>n({className:s,parseClassName:a})}return t},Tn=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((n,t)=>{r.set(n,1e6+t)}),n=>{const t=[];let a=[];for(let s=0;s<n.length;s++){const i=n[s],u=i[0]==="[",l=r.has(i);u||l?(a.length>0&&(a.sort(),t.push(...a),a=[]),t.push(i)):a.push(i)}return a.length>0&&(a.sort(),t.push(...a)),t}},On=e=>({cache:Sn(e.cacheSize),parseClassName:Rn(e),sortModifiers:Tn(e),...gn(e)}),Dn=/\s+/,An=(e,r)=>{const{parseClassName:n,getClassGroupId:t,getConflictingClassGroupIds:a,sortModifiers:s}=r,i=[],u=e.trim().split(Dn);let l="";for(let f=u.length-1;f>=0;f-=1){const g=u[f],{isExternal:E,modifiers:_,hasImportantModifier:G,baseClassName:Y,maybePostfixModifierPosition:h}=n(g);if(E){l=g+(l.length>0?" "+l:l);continue}let ne=!!h,C=t(ne?Y.substring(0,h):Y);if(!C){if(!ne){l=g+(l.length>0?" "+l:l);continue}if(C=t(Y),!C){l=g+(l.length>0?" "+l:l);continue}ne=!1}const O=_.length===0?"":_.length===1?_[0]:s(_).join(":"),U=G?O+kr:O,V=U+C;if(i.indexOf(V)>-1)continue;i.push(V);const X=a(C,ne);for(let y=0;y<X.length;++y){const k=X[y];i.push(U+k)}l=g+(l.length>0?" "+l:l)}return l},Fn=(...e)=>{let r=0,n,t,a="";for(;r<e.length;)(n=e[r++])&&(t=ft(n))&&(a&&(a+=" "),a+=t);return a},ft=e=>{if(typeof e=="string")return e;let r,n="";for(let t=0;t<e.length;t++)e[t]&&(r=ft(e[t]))&&(n&&(n+=" "),n+=r);return n},_n=(e,...r)=>{let n,t,a,s;const i=l=>{const f=r.reduce((g,E)=>E(g),e());return n=On(f),t=n.cache.get,a=n.cache.set,s=u,u(l)},u=l=>{const f=t(l);if(f)return f;const g=An(l,n);return a(l,g),g};return s=i,(...l)=>s(Fn(...l))},Nn=[],pe=e=>{const r=n=>n[e]||Nn;return r.isThemeGetter=!0,r},mt=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,pt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Pn=/^\d+\/\d+$/,$n=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jn=/\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$/,In=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Vn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ln=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Xe=e=>Pn.test(e),L=e=>!!e&&!Number.isNaN(Number(e)),Me=e=>!!e&&Number.isInteger(Number(e)),vr=e=>e.endsWith("%")&&L(e.slice(0,-1)),Ie=e=>$n.test(e),Un=()=>!0,qn=e=>jn.test(e)&&!In.test(e),gt=()=>!1,Mn=e=>Vn.test(e),Kn=e=>Ln.test(e),zn=e=>!R(e)&&!T(e),Bn=e=>Ze(e,yt,gt),R=e=>mt.test(e),Ye=e=>Ze(e,wt,qn),Cr=e=>Ze(e,Jn,L),Ur=e=>Ze(e,ht,gt),Gn=e=>Ze(e,bt,Kn),lr=e=>Ze(e,vt,Mn),T=e=>pt.test(e),tr=e=>er(e,wt),Yn=e=>er(e,Hn),qr=e=>er(e,ht),Qn=e=>er(e,yt),Wn=e=>er(e,bt),ur=e=>er(e,vt,!0),Ze=(e,r,n)=>{const t=mt.exec(e);return t?t[1]?r(t[1]):n(t[2]):!1},er=(e,r,n=!1)=>{const t=pt.exec(e);return t?t[1]?r(t[1]):n:!1},ht=e=>e==="position"||e==="percentage",bt=e=>e==="image"||e==="url",yt=e=>e==="length"||e==="size"||e==="bg-size",wt=e=>e==="length",Jn=e=>e==="number",Hn=e=>e==="family-name",vt=e=>e==="shadow",Xn=()=>{const e=pe("color"),r=pe("font"),n=pe("text"),t=pe("font-weight"),a=pe("tracking"),s=pe("leading"),i=pe("breakpoint"),u=pe("container"),l=pe("spacing"),f=pe("radius"),g=pe("shadow"),E=pe("inset-shadow"),_=pe("text-shadow"),G=pe("drop-shadow"),Y=pe("blur"),h=pe("perspective"),ne=pe("aspect"),C=pe("ease"),O=pe("animate"),U=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],X=()=>[...V(),T,R],y=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto","contain","none"],m=()=>[T,R,l],A=()=>[Xe,"full","auto",...m()],N=()=>[Me,"none","subgrid",T,R],j=()=>["auto",{span:["full",Me,T,R]},Me,T,R],M=()=>[Me,"auto",T,R],Q=()=>["auto","min","max","fr",T,R],Z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],se=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...m()],ie=()=>[Xe,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...m()],D=()=>[e,T,R],le=()=>[...V(),qr,Ur,{position:[T,R]}],be=()=>["no-repeat",{repeat:["","x","y","space","round"]}],fe=()=>["auto","cover","contain",Qn,Bn,{size:[T,R]}],ye=()=>[vr,tr,Ye],F=()=>["","none","full",f,T,R],ae=()=>["",L,tr,Ye],ee=()=>["solid","dashed","dotted","double"],we=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>[L,vr,qr,Ur],ke=()=>["","none",Y,T,R],P=()=>["none",L,T,R],ce=()=>["none",L,T,R],Oe=()=>[L,T,R],De=()=>[Xe,"full",...m()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ie],breakpoint:[Ie],color:[Un],container:[Ie],"drop-shadow":[Ie],ease:["in","out","in-out"],font:[zn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ie],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ie],shadow:[Ie],spacing:["px",L],text:[Ie],"text-shadow":[Ie],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Xe,R,T,ne]}],container:["container"],columns:[{columns:[L,R,T,u]}],"break-after":[{"break-after":U()}],"break-before":[{"break-before":U()}],"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:X()}],overflow:[{overflow:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:k()}],"overscroll-x":[{"overscroll-x":k()}],"overscroll-y":[{"overscroll-y":k()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[Me,"auto",T,R]}],basis:[{basis:[Xe,"full","auto",u,...m()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[L,Xe,"auto","initial","none",R]}],grow:[{grow:["",L,T,R]}],shrink:[{shrink:["",L,T,R]}],order:[{order:[Me,"first","last","none",T,R]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:j()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:j()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Q()}],"auto-rows":[{"auto-rows":Q()}],gap:[{gap:m()}],"gap-x":[{"gap-x":m()}],"gap-y":[{"gap-y":m()}],"justify-content":[{justify:[...Z(),"normal"]}],"justify-items":[{"justify-items":[...se(),"normal"]}],"justify-self":[{"justify-self":["auto",...se()]}],"align-content":[{content:["normal",...Z()]}],"align-items":[{items:[...se(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...se(),{baseline:["","last"]}]}],"place-content":[{"place-content":Z()}],"place-items":[{"place-items":[...se(),"baseline"]}],"place-self":[{"place-self":["auto",...se()]}],p:[{p:m()}],px:[{px:m()}],py:[{py:m()}],ps:[{ps:m()}],pe:[{pe:m()}],pt:[{pt:m()}],pr:[{pr:m()}],pb:[{pb:m()}],pl:[{pl:m()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":m()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":m()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[u,"screen",...ie()]}],"min-w":[{"min-w":[u,"screen","none",...ie()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[i]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",n,tr,Ye]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,T,Cr]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",vr,R]}],"font-family":[{font:[Yn,R,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:[a,T,R]}],"line-clamp":[{"line-clamp":[L,"none",T,Cr]}],leading:[{leading:[s,...m()]}],"list-image":[{"list-image":["none",T,R]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",T,R]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[L,"from-font","auto",T,Ye]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[L,"auto",T,R]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:m()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",T,R]}],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",T,R]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:be()}],"bg-size":[{bg:fe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Me,T,R],radial:["",T,R],conic:[Me,T,R]},Wn,Gn]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:ye()}],"gradient-via-pos":[{via:ye()}],"gradient-to-pos":[{to:ye()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:ae()}],"border-w-x":[{"border-x":ae()}],"border-w-y":[{"border-y":ae()}],"border-w-s":[{"border-s":ae()}],"border-w-e":[{"border-e":ae()}],"border-w-t":[{"border-t":ae()}],"border-w-r":[{"border-r":ae()}],"border-w-b":[{"border-b":ae()}],"border-w-l":[{"border-l":ae()}],"divide-x":[{"divide-x":ae()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ae()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[L,T,R]}],"outline-w":[{outline:["",L,tr,Ye]}],"outline-color":[{outline:D()}],shadow:[{shadow:["","none",g,ur,lr]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":["none",E,ur,lr]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:ae()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[L,Ye]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":ae()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":["none",_,ur,lr]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[L,T,R]}],"mix-blend":[{"mix-blend":[...we(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":we()}],"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":[L]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[T,R]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"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":V()}],"mask-image-conic-pos":[{"mask-conic":[L]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:be()}],"mask-size":[{mask:fe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",T,R]}],filter:[{filter:["","none",T,R]}],blur:[{blur:ke()}],brightness:[{brightness:[L,T,R]}],contrast:[{contrast:[L,T,R]}],"drop-shadow":[{"drop-shadow":["","none",G,ur,lr]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:["",L,T,R]}],"hue-rotate":[{"hue-rotate":[L,T,R]}],invert:[{invert:["",L,T,R]}],saturate:[{saturate:[L,T,R]}],sepia:[{sepia:["",L,T,R]}],"backdrop-filter":[{"backdrop-filter":["","none",T,R]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[L,T,R]}],"backdrop-contrast":[{"backdrop-contrast":[L,T,R]}],"backdrop-grayscale":[{"backdrop-grayscale":["",L,T,R]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[L,T,R]}],"backdrop-invert":[{"backdrop-invert":["",L,T,R]}],"backdrop-opacity":[{"backdrop-opacity":[L,T,R]}],"backdrop-saturate":[{"backdrop-saturate":[L,T,R]}],"backdrop-sepia":[{"backdrop-sepia":["",L,T,R]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":m()}],"border-spacing-x":[{"border-spacing-x":m()}],"border-spacing-y":[{"border-spacing-y":m()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",T,R]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[L,"initial",T,R]}],ease:[{ease:["linear","initial",C,T,R]}],delay:[{delay:[L,T,R]}],animate:[{animate:["none",O,T,R]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[h,T,R]}],"perspective-origin":[{"perspective-origin":X()}],rotate:[{rotate:P()}],"rotate-x":[{"rotate-x":P()}],"rotate-y":[{"rotate-y":P()}],"rotate-z":[{"rotate-z":P()}],scale:[{scale:ce()}],"scale-x":[{"scale-x":ce()}],"scale-y":[{"scale-y":ce()}],"scale-z":[{"scale-z":ce()}],"scale-3d":["scale-3d"],skew:[{skew:Oe()}],"skew-x":[{"skew-x":Oe()}],"skew-y":[{"skew-y":Oe()}],transform:[{transform:[T,R,"","none","gpu","cpu"]}],"transform-origin":[{origin:X()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:De()}],"translate-x":[{"translate-x":De()}],"translate-y":[{"translate-y":De()}],"translate-z":[{"translate-z":De()}],"translate-none":["translate-none"],accent:[{accent:D()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:D()}],"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",T,R]}],"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":m()}],"scroll-mx":[{"scroll-mx":m()}],"scroll-my":[{"scroll-my":m()}],"scroll-ms":[{"scroll-ms":m()}],"scroll-me":[{"scroll-me":m()}],"scroll-mt":[{"scroll-mt":m()}],"scroll-mr":[{"scroll-mr":m()}],"scroll-mb":[{"scroll-mb":m()}],"scroll-ml":[{"scroll-ml":m()}],"scroll-p":[{"scroll-p":m()}],"scroll-px":[{"scroll-px":m()}],"scroll-py":[{"scroll-py":m()}],"scroll-ps":[{"scroll-ps":m()}],"scroll-pe":[{"scroll-pe":m()}],"scroll-pt":[{"scroll-pt":m()}],"scroll-pr":[{"scroll-pr":m()}],"scroll-pb":[{"scroll-pb":m()}],"scroll-pl":[{"scroll-pl":m()}],"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",T,R]}],fill:[{fill:["none",...D()]}],"stroke-w":[{stroke:[L,tr,Ye,Cr]}],stroke:[{stroke:["none",...D()]}],"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"]}},Zn=_n(Xn);function Pe(...e){return Zn(dn(e))}const Fe=e=>"Condition"in e,Ct=e=>"LHSField"in e,ea=Fe,ra=Ct;let ta=0;const or=()=>`filter_${Date.now()}_${++ta}`,na=e=>e.id?e:{...e,id:or()},Et=e=>e.map(r=>{const n=na(r);return Fe(n)?{...n,Condition:Et(n.Condition)}:n}),kt=e=>e.map(r=>{if(Fe(r)){const{id:a,...s}=r;return{...s,Condition:kt(r.Condition)}}const{id:n,...t}=r;return t}),St=(e,r)=>{for(const n of e){if(n.id===r)return n;if(Fe(n)){const t=St(n.Condition,r);if(t)return t}}},Sr=(e,r,n)=>e.map(t=>t.id===r?n(t):Fe(t)?{...t,Condition:Sr(t.Condition,r,n)}:t),xt=(e,r)=>e.filter(n=>n.id!==r).map(n=>Fe(n)?{...n,Condition:xt(n.Condition,r)}:n),xr=(e,r,n)=>e.map(t=>t.id===r&&Fe(t)?{...t,Condition:[...t.Condition,n]}:Fe(t)?{...t,Condition:xr(t.Condition,r,n)}:t);function Dr(e={}){const[r,n]=c.useState(()=>Et(e.initialConditions||[])),[t,a]=c.useState(e.initialOperator||"And"),s=c.useMemo(()=>{if(r.length!==0)return{Operator:t,Condition:kt(r)}},[r,t]),i=r.length>0,u=c.useCallback(C=>{const O=or(),U={...C,id:O};return n(V=>[...V,U]),O},[]),l=c.useCallback(C=>{const O=or(),U={id:O,Operator:C,Condition:[]};return n(V=>[...V,U]),O},[]),f=c.useCallback((C,O)=>{const U=or(),V={...O,id:U};return n(X=>xr(X,C,V)),U},[]),g=c.useCallback((C,O)=>{const U=or(),V={id:U,Operator:O,Condition:[]};return n(X=>xr(X,C,V)),U},[]),E=c.useCallback((C,O)=>{n(U=>Sr(U,C,V=>Fe(V)?V:{...V,...O}))},[]),_=c.useCallback((C,O)=>{n(U=>Sr(U,C,V=>Fe(V)?{...V,Operator:O}:V))},[]),G=c.useCallback(C=>{n(O=>xt(O,C))},[]),Y=c.useCallback(C=>St(r,C),[r]),h=c.useCallback(()=>{n([])},[]),ne=c.useCallback(C=>{a(C)},[]);return{operator:t,items:r,payload:s,hasConditions:i,add:u,addGroup:l,addTo:f,addGroupTo:g,update:E,updateOperator:_,remove:G,get:Y,clear:h,setOperator:ne,conditions:r}}function aa(e){var le,be,fe,ye,F,ae,ee,we,H,ke;const[r,n]=c.useState({query:""}),[t,a]=c.useState({field:((be=(le=e.initialState)==null?void 0:le.sorting)==null?void 0:be.field)||null,direction:((ye=(fe=e.initialState)==null?void 0:fe.sorting)==null?void 0:ye.direction)||null}),[s,i]=c.useState({pageNo:((ae=(F=e.initialState)==null?void 0:F.pagination)==null?void 0:ae.pageNo)||1,pageSize:((we=(ee=e.initialState)==null?void 0:ee.pagination)==null?void 0:we.pageSize)||10}),u=Dr({initialConditions:(H=e.initialState)==null?void 0:H.filters,initialOperator:((ke=e.initialState)==null?void 0:ke.filterOperator)||"And"}),l=c.useMemo(()=>{const P={};return r.query&&(P.Search=r.query),u.payload&&(P.Filter=u.payload),P},[r.query,u.payload]),f=c.useMemo(()=>{const P={...l};return t.field&&t.direction&&(P.Sort=[{[String(t.field)]:t.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(P.Page=s.pageNo,P.PageSize=s.pageSize),P},[l,t,s,e.enablePagination]),{data:g,isLoading:E,isFetching:_,error:G,refetch:Y}=Ce.useQuery({queryKey:["table",e.source,f],queryFn:async()=>{try{const P=await Ee(e.source).list(f);return e.onSuccess&&e.onSuccess(P.Data),P}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),{data:h,isLoading:ne,isFetching:C,error:O,refetch:U}=Ce.useQuery({queryKey:["table-count",e.source,l],queryFn:async()=>{try{return await Ee(e.source).count(l)}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),V=c.useMemo(()=>(g==null?void 0:g.Data)||[],[g]),X=c.useMemo(()=>(h==null?void 0:h.Count)||0,[h]),y=c.useMemo(()=>Math.ceil(X/s.pageSize),[X,s.pageSize]),k=c.useCallback(P=>{a(ce=>{if(ce.field===P){if(ce.direction==="asc")return{field:P,direction:"desc"};if(ce.direction==="desc")return{field:null,direction:null}}return{field:P,direction:"asc"}})},[]),m=c.useCallback(()=>{a({field:null,direction:null})},[]),A=c.useCallback((P,ce)=>{a({field:P,direction:ce})},[]),N=c.useCallback(P=>{n({query:P}),i(ce=>({...ce,pageNo:1}))},[]),j=c.useCallback(()=>{n({query:""})},[]),M=s.pageNo<y,Q=s.pageNo>1,Z=c.useCallback(()=>{M&&i(P=>({...P,pageNo:P.pageNo+1}))},[M]),se=c.useCallback(()=>{Q&&i(P=>({...P,pageNo:P.pageNo-1}))},[Q]),q=c.useCallback(P=>{const ce=Math.max(1,Math.min(P,y));i(Oe=>({...Oe,pageNo:ce}))},[y]),ie=c.useCallback(P=>{i(ce=>({...ce,pageSize:P,pageNo:1}))},[]),D=c.useCallback(async()=>{const[P]=await Promise.all([Y(),U()]);return P.data||{Data:[]}},[Y,U]);return{rows:V,totalItems:X,isLoading:E||ne,isFetching:_||C,error:G||O,search:{query:r.query,setQuery:N,clear:j},sort:{field:t.field,direction:t.direction,toggle:k,clear:m,set:A},filter:u,pagination:{currentPage:s.pageNo,pageSize:s.pageSize,totalPages:y,totalItems:X,canGoNext:M,canGoPrevious:Q,goToNext:Z,goToPrevious:se,goToPage:q,setPageSize:ie},refetch:D}}function oa(){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 sa={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,n)=>{const t=String(e||"");return n!==void 0?t.substring(r,r+n):t.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 n=new Date(e),t=new Date(r),a=Math.abs(n.getTime()-t.getTime());return Math.ceil(a/(1e3*60*60*24))},ADD_DAYS:(e,r)=>{const n=new Date(e);return n.setDate(n.getDate()+r),n},ADD_MONTHS:(e,r)=>{const n=new Date(e);return n.setMonth(n.getMonth()+r),n},SUM:(...e)=>e.reduce((r,n)=>r+(Number(n)||0),0),AVG:(...e)=>{const r=e.filter(n=>!isNaN(Number(n)));return r.length>0?r.reduce((n,t)=>n+Number(t),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,n)=>e?r:n,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 Ke(e,r){var n;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const f=r.systemValues[e.Name];return Er(f,e.Property.Name)}return r.systemValues[e.Name];case"Identifier":if(e.Property){const f=Mr(e,r);return Er(f,e.Property.Name)}return Mr(e,r);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const t=Ke(e.Arguments[0],r),a=(n=e.Arguments[0].Property)==null?void 0:n.Name;return a?Er(t,a):t;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const s=Ke(e.Arguments[0],r),i=Ke(e.Arguments[1],r);return ia(e.Operator,s,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return ca(e.Operator,e.Arguments,r);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const u=sa[e.Callee];if(!u)throw new Error(`Unknown function: ${e.Callee}`);const l=(e.Arguments||[]).map(f=>Ke(f,r));return u(...l);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return Ke(e.Arguments[0],r);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Mr(e,r){const{Name:n,Source:t}=e;if(!n)throw new Error("Identifier requires Name");switch(t){case"Input":default:return r.formValues[n]}}function Er(e,r){if(!(!e||typeof e!="object"))return e[r]}function ia(e,r,n){const t=a=>a==null?0:typeof a=="number"?a:typeof a=="object"&&a!==null&&"value"in a?Number(a.value)||0:Number(a)||0;switch(e){case"==":return r==n;case"!=":return r!=n;case">":return t(r)>t(n);case"<":return t(r)<t(n);case">=":return t(r)>=t(n);case"<=":return t(r)<=t(n);case"+":return t(r)+t(n);case"-":return t(r)-t(n);case"*":return t(r)*t(n);case"/":const a=t(n);return a!==0?t(r)/a:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function ca(e,r,n){switch(e){case"AND":return r.every(t=>!!Ke(t,n));case"OR":return r.some(t=>!!Ke(t,n));default:throw new Error(`Unknown logical operator: ${e}`)}}function Rt(e,r,n={}){const t={formValues:r,systemValues:oa(),referenceData:n};try{return Ke(e,t)}catch(a){return console.warn("Expression evaluation failed:",a),!1}}function la(e,r,n={}){const t=[];for(const a of e)try{Rt(a.Condition.ExpressionTree,r,n)||t.push({isValid:!1,message:a.Message,fieldName:a.Id})}catch(s){console.warn(`Cross-field validation rule ${a.Id} failed:`,s)}return t}function ua(e,r={},n={}){try{return Rt(e,r,n)}catch(t){return console.warn("Default value calculation failed:",t),null}}function Kr(e,r){var u,l,f;const n=((u=e.Expression)==null?void 0:u.toLowerCase())||"",t=((l=e.Name)==null?void 0:l.toLowerCase())||"",a=((f=e.Id)==null?void 0:f.toLowerCase())||"",s=r.toLowerCase();return t.includes("required")||a.includes("required")?!0:[`${s} != null`,`${s} != ''`,`trim(${s}) != ''`,`${s}!=null`,`${s}!=''`].some(g=>n.includes(g))}function da(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 n={...r.Fields};return Object.entries(n).forEach(([t,a])=>{let s=a.Required||!1;if(a.Validation&&Array.isArray(a.Validation))if(a.Validation.length>0&&typeof a.Validation[0]=="object"){const i=[];a.Validation.forEach(u=>{r.Rules.Validation[u.Id]=u,i.push(u.Id),Kr(u,t)&&(s=!0)}),n[t]={...a,Validation:i,Required:s}}else a.Validation.forEach(u=>{var f;const l=(f=r.Rules.Validation)==null?void 0:f[u];l&&Kr(l,t)&&(s=!0)}),s&&!a.Required&&(n[t]={...a,Required:!0});if(a.Formula){const i=`RULE_COMPUTE_${t.toUpperCase()}`;r.Rules.Computation[i]={Id:i,Name:a.Formula.Id||`Compute ${t}`,Description:a.Formula.Description||`Computes value for ${t}`,Expression:a.Formula.Expression,ExpressionTree:a.Formula.ExpressionTree,ResultType:a.Type}}}),r.Fields=n,r}function fa(e){var n,t,a;const r={validation:{},computation:{},businessLogic:{}};return(n=e.Rules)!=null&&n.Validation&&(r.validation={...e.Rules.Validation}),(t=e.Rules)!=null&&t.Computation&&(r.computation={...e.Rules.Computation}),(a=e.Rules)!=null&&a.BusinessLogic&&(r.businessLogic={...e.Rules.BusinessLogic}),r}function ma(e){var t;const r={};if(!((t=e.Rules)!=null&&t.Computation))return r;const n=Object.entries(e.Fields).filter(([a,s])=>s.Computed).map(([a])=>a);return n.sort((a,s)=>s.length-a.length),Object.entries(e.Rules.Computation).forEach(([a,s])=>{const i=a.toUpperCase().replace(/[_-]/g,"");for(const l of n){const f=l.toUpperCase().replace(/[_-]/g,"");if(i.includes(f)){r[a]=l;return}}const u=`${s.Name||""} ${s.Description||""}`.toLowerCase();for(const l of n)if(u.includes(l.toLowerCase())){r[a]=l;return}}),r}function pa(e,r){const n={};Object.keys(e.Fields).forEach(a=>{n[a]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([a,s])=>{s.Validation&&Array.isArray(s.Validation)&&s.Validation.forEach(u=>{r.validation[u]?n[a].validation.push(u):r.computation[u]?n[a].computation.push(u):r.businessLogic[u]&&n[a].businessLogic.push(u)}),s.Formula&&Object.entries(r.computation).forEach(([i,u])=>{var l;u.Expression===((l=s.Formula)==null?void 0:l.Expression)&&(n[a].computation.includes(i)||n[a].computation.push(i))})});const t=ma(e);return Object.entries(t).forEach(([a,s])=>{n[s]&&!n[s].computation.includes(a)&&n[s].computation.push(a)}),n}function ga(e,r){const n={},t={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(a=>{var l,f,g,E,_,G;if(!r||!((l=e.RolePermission)!=null&&l[r])){n[a]=t;return}const s=e.RolePermission[r],i=((f=s.Editable)==null?void 0:f.includes(a))||((g=s.Editable)==null?void 0:g.includes("*"))||!1,u=((E=s.ReadOnly)==null?void 0:E.includes(a))||((_=s.ReadOnly)==null?void 0:_.includes("*"))||i;n[a]={editable:i&&!((G=s.ReadOnly)!=null&&G.includes(a)),readable:u,hidden:!u}}),n}function ha(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,n])=>[r,{...n,Id:r,Name:n.Description||r,Validation:[]}])),RolePermission:{},Roles:{}}}function ba(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 Tt(e){return e.replace(/([A-Z])/g," $1").replace(/^./,r=>r.toUpperCase()).replace(/_/g," ").trim()}function ya(e,r,n){const t={};switch(r.Required&&(t.required={value:!0,message:`${Tt(e)} is required`}),r.Type){case"Number":t.valueAsNumber=!0;break;case"Date":case"DateTime":t.valueAsDate=!0;break}return r.Validation&&r.Validation.length>0&&(t.validate=()=>!0),t}function wa(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 va(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 ua(e.DefaultValue.ExpressionTree,r)}function Ca(e,r,n,t={},a,s){const i={editable:!0,readable:!0,hidden:!1},l=s||{validation:[],computation:[],businessLogic:[]},f=r.Computed||!!r.Formula||l.computation.length>0,g=ya(e,r);return f&&(g.disabled=!0),{name:e,type:ba(r.Type,e),label:r.Name||Tt(e),required:r.Required||!1,computed:f,defaultValue:va(r,t),options:wa(r),validation:g,description:r.Description,backendField:r,permission:a||i,rules:l}}function Ea(e,r={},n){let t="Kind"in e&&e.Kind==="BusinessObject"?e:ha(e);t=da(t);const a={},s=[],i=[],u=[],l=[],f=fa(t),g=pa(t,f),E=ga(t,n);for(const[_,G]of Object.entries(t.Fields)){if(_.startsWith("_")&&!["_id"].includes(_))continue;const Y=E[_];if(Y.hidden)continue;const h=Ca(_,G,t.Fields,r,Y,g[_]||{validation:[],computation:[],businessLogic:[]});a[_]=h,s.push(_),h.computed&&i.push(_),h.required&&u.push(_)}return{fields:a,fieldOrder:s,computedFields:i,requiredFields:u,crossFieldValidation:l,rules:f,fieldRules:g,rolePermissions:t.RolePermission}}function ka(e){var n;if(e.type!=="reference"||!((n=e.backendField.Values)!=null&&n.Reference))return null;const r=e.backendField.Values.Reference;return{businessObject:r.BusinessObject,fields:r.Fields||["_id"],filters:r.Filters,sort:r.Sort}}function Sa(e){const r={};for(const[n,t]of Object.entries(e.fields))if(t.type==="reference"){const a=ka(t);a&&(r[n]=a)}return r}async function xa(e){try{const n=(await Zr(e)).BOBlob;if(!n||typeof n!="object"||!n.Fields)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 form schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Ra(e,r=3){let n;for(let t=1;t<=r;t++)try{return await xa(e)}catch(a){if(n=a,t<r){const s=Math.min(1e3*Math.pow(2,t-1),5e3);await new Promise(i=>setTimeout(i,s));continue}}throw n}async function Ta(e,r){try{return await Ee(e).get(r)}catch(n){throw console.error(`Record fetch error for ${e}/${r}:`,n),new Error(`Failed to load record: ${n instanceof Error?n.message:"Unknown error"}`)}}async function Oa(e,r,n,t){try{let a;if(r==="create")return a=await Ee(e).create(n),{success:!0,data:a,recordId:a._id||t};if(r==="update"){if(!t)throw new Error("Record ID is required for update operations");return a=await Ee(e).update(t,n),{success:!0,data:a,recordId:a._id||t}}else throw new Error(`Unsupported operation: ${r}`)}catch(a){return console.error("Form submission error:",a),{success:!1,error:new Error(`Failed to ${r} record: ${a instanceof Error?a.message:"Unknown error"}`)}}}async function Da(e,r=["_id"],n,t){try{const a={};return n&&(a.Filter=n),t&&(a.Sort=t),r.length>0&&(a.Field=r),(await Ee(e).list(a)).Data||[]}catch(a){return console.error(`Reference data fetch error for ${e}:`,a),[]}}async function Aa(e){const r={},n=Object.entries(e).map(async([a,s])=>{try{const i=await Da(s.businessObject,s.fields,s.filters,s.sort);return[a,i]}catch(i){return console.warn(`Failed to fetch reference data for ${a}:`,i),[a,[]]}});return(await Promise.allSettled(n)).forEach(a=>{if(a.status==="fulfilled"){const[s,i]=a.value;r[s]=Array.isArray(i)?i:[]}}),r}function Fa(e,r,n="create",t){const a={};return Object.keys(e).forEach(s=>{const i=s,u=e[i];if(!r.includes(s)&&u!==void 0){if(n==="create"){a[i]=u;return}if(n==="update"){if(!t){a[i]=u;return}const l=t[i];JSON.stringify(u)!==JSON.stringify(l)&&(a[i]=u)}}}),a}const Rr=new Map;function _a(e,r,n=10){Rr.set(e,{data:r,timestamp:Date.now(),ttl:n*60*1e3})}function Na(e){const r=Rr.get(e);return r?Date.now()-r.timestamp>r.ttl?(Rr.delete(e),null):r.data:null}async function Pa(e){const r=`schema:${e}`,n=Na(r);if(n)return n;const t=await Ra(e);return _a(r,t,30),t}class zr{constructor(r=1e3){Ge(this,"cache",new Map);Ge(this,"maxSize");this.maxSize=r}get(r){const n=this.cache.get(r);return n!==void 0&&(this.cache.delete(r),this.cache.set(r,n)),n}set(r,n){if(this.cache.has(r))this.cache.delete(r);else if(this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;this.cache.delete(t)}this.cache.set(r,n)}clear(){this.cache.clear()}}function $a(e){const r=new Set;function n(t){switch(t.Type){case"Identifier":t.Name&&!t.Name.startsWith("$")&&r.add(t.Name);break;case"MemberExpression":t.Arguments&&t.Arguments.forEach(n);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":t.Arguments&&t.Arguments.forEach(n);break}}return n(e),r}class ja{constructor(){Ge(this,"resultCache",new zr(500));Ge(this,"dependencyCache",new zr(200));Ge(this,"compiledExpressions",new Map)}createCacheKey(r,n){const t=JSON.stringify(r),a=JSON.stringify(n);return`${t}:${a}`}getDependencies(r){const n=JSON.stringify(r);let t=this.dependencyCache.get(n);return t||(t=$a(r),this.dependencyCache.set(n,t)),t}getCachedResult(r,n,t){if(!t)return;const a=this.getDependencies(r);for(const i of a)if(n[i]!==t[i])return;const s=this.createCacheKey(r,n);return this.resultCache.get(s)}evaluate(r,n,t){const a=this.getCachedResult(r,n,t);if(a!==void 0)return a;const s=this.evaluateNode(r,n),i=this.createCacheKey(r,n);return this.resultCache.set(i,s),s}evaluateNode(r,n){switch(r.Type){case"Literal":return r.Value;case"Identifier":return this.getIdentifierValue(r,n);case"BinaryExpression":return this.evaluateBinaryExpression(r,n);case"LogicalExpression":return this.evaluateLogicalExpression(r,n);case"CallExpression":return this.evaluateCallExpression(r,n);case"MemberExpression":return this.evaluateMemberExpression(r,n);default:throw new Error(`Unsupported expression type: ${r.Type}`)}}getIdentifierValue(r,n){if(r.Name){if(r.Name==="NOW")return new Date;if(r.Name==="TODAY"){const t=new Date;return new Date(t.getFullYear(),t.getMonth(),t.getDate())}return r.Name==="CURRENT_USER_ID"?1:r.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:n[r.Name]}}evaluateBinaryExpression(r,n){if(!r.Arguments||r.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const t=this.evaluateNode(r.Arguments[0],n),a=this.evaluateNode(r.Arguments[1],n);switch(r.Operator){case"==":return t==a;case"!=":return t!=a;case"===":return t===a;case"!==":return t!==a;case"<":return Number(t)<Number(a);case"<=":return Number(t)<=Number(a);case">":return Number(t)>Number(a);case">=":return Number(t)>=Number(a);case"+":return Number(t)+Number(a);case"-":return Number(t)-Number(a);case"*":return Number(t)*Number(a);case"/":return Number(t)/Number(a);case"%":return Number(t)%Number(a);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}evaluateLogicalExpression(r,n){if(!r.Arguments||r.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(r.Operator){case"AND":for(const t of r.Arguments)if(!this.evaluateNode(t,n))return!1;return!0;case"OR":for(const t of r.Arguments)if(this.evaluateNode(t,n))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}evaluateCallExpression(r,n){var a;if(!r.Callee)throw new Error("Call expression requires a function name");const t=((a=r.Arguments)==null?void 0:a.map(s=>this.evaluateNode(s,n)))||[];switch(r.Callee){case"CONCAT":return t.map(f=>String(f||"")).join("");case"TRIM":return String(t[0]||"").trim();case"LENGTH":return String(t[0]||"").length;case"UPPER":return String(t[0]||"").toUpperCase();case"LOWER":return String(t[0]||"").toLowerCase();case"CONTAINS":return String(t[0]||"").includes(String(t[1]||""));case"MATCHES":return new RegExp(String(t[1])).test(String(t[0]||""));case"SUM":return t.reduce((f,g)=>f+(Number(g)||0),0);case"AVG":const s=t.filter(f=>!isNaN(Number(f)));return s.length>0?s.reduce((f,g)=>f+Number(g),0)/s.length:0;case"MIN":return Math.min(...t.map(f=>Number(f)||0));case"MAX":return Math.max(...t.map(f=>Number(f)||0));case"ROUND":return Math.round(Number(t[0])||0);case"FLOOR":return Math.floor(Number(t[0])||0);case"CEIL":return Math.ceil(Number(t[0])||0);case"ABS":return Math.abs(Number(t[0])||0);case"YEAR":return new Date(t[0]).getFullYear();case"MONTH":return new Date(t[0]).getMonth()+1;case"DAY":return new Date(t[0]).getDate();case"DATE_DIFF":const i=new Date(t[0]),u=new Date(t[1]),l=Math.abs(i.getTime()-u.getTime());return Math.ceil(l/(1e3*60*60*24));case"IF":return t[0]?t[1]:t[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${r.Callee}`)}}evaluateMemberExpression(r,n){var s;if(!r.Arguments||r.Arguments.length===0)throw new Error("Member expression requires arguments");const t=this.evaluateNode(r.Arguments[0],n),a=(s=r.Arguments[0].Property)==null?void 0:s.Name;return a&&t&&typeof t=="object"?t[a]:t}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Ot=new ja;function Ia(e,r,n,t,a){if(!n||n.length===0)return{isValid:!0};const s={...t,[e]:r};for(const i of n)try{if(!Ot.evaluate(i.ExpressionTree,s,a))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(u){console.warn(`Validation rule ${i.Id} failed to evaluate:`,u)}return{isValid:!0}}function Br(e){return Array.from(Ot.getDependencies(e))}function Va(e){const{source:r,operation:n,recordId:t,defaultValues:a={},mode:s="onBlur",enabled:i=!0,userRole:u,onSuccess:l,onError:f,onSchemaError:g,onSubmitError:E,skipSchemaFetch:_=!1,schema:G,draftOnEveryChange:Y=!1}=e,[h,ne]=c.useState(null),[C,O]=c.useState({}),[U,V]=c.useState(null),[X,y]=c.useState(!1),[k]=c.useState({}),m=c.useRef(!1),A=c.useRef(null),N=c.useRef(null),j=c.useRef(l),M=c.useRef(f),Q=c.useRef(E),Z=c.useRef(g);c.useEffect(()=>{j.current=l},[l]),c.useEffect(()=>{M.current=f},[f]),c.useEffect(()=>{Q.current=E},[E]),c.useEffect(()=>{Z.current=g},[g]);const{data:se,isLoading:q,error:ie,refetch:D}=Ce.useQuery({queryKey:["form-schema",r],queryFn:()=>_?Promise.resolve(G||{}):Pa(r),enabled:i&&(!_||!!G),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:le,isLoading:be,error:fe}=Ce.useQuery({queryKey:["form-record",r,t],queryFn:()=>Ta(r,t),enabled:i&&n==="update"&&!!t,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),ye=c.useMemo(()=>{const w={...a};if(n==="update"&&le&&Object.assign(w,le),h)for(const[K,$]of Object.entries(h.fields))$.defaultValue!==void 0&&!(K in w)&&(w[K]=$.defaultValue);return w},[a,le,n,h]),F=Xt.useForm({mode:s,defaultValues:a,values:n==="update"&&le?ye:void 0});c.useEffect(()=>{var w;if(se)try{const K=Ea(se,{},u);ne(K);const $=Sa(K);Object.keys($).length>0&&Aa($).then(O).catch(console.warn)}catch(K){console.error("Schema processing failed:",K),(w=Z.current)==null||w.call(Z,K)}},[se,u]),c.useEffect(()=>{var w;ie&&((w=Z.current)==null||w.call(Z,ie))},[ie]),c.useEffect(()=>{var w;fe&&((w=M.current)==null||w.call(M,fe))},[fe]);const ae=c.useMemo(()=>{if(!h)return[];const w=new Set,K=new Set(h.computedFields);return Object.entries(h.fieldRules).forEach(([$,J])=>{J.computation.forEach(z=>{const re=h.rules.computation[z];re!=null&&re.ExpressionTree&&Br(re.ExpressionTree).forEach(he=>{h.fields[he]&&he!==$&&!K.has(he)&&w.add(he)})})}),h.computedFields.forEach($=>{const J=h.fields[$];J.backendField.Formula&&Br(J.backendField.Formula.ExpressionTree).forEach(re=>{h.fields[re]&&re!==$&&!K.has(re)&&w.add(re)})}),Array.from(w)},[h]),ee=c.useCallback(async w=>{!h||ae.length===0||!(Y||ae.includes(w))||m.current||(A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{if(!h||m.current)return;const $=F.getValues();(async()=>{m.current=!0;try{const z=Ee(r),re={};n==="update"&&t&&"_id"in $&&(re._id=$._id);const ge=N.current??(n==="update"?le:null)??{},he=new Set(h.computedFields||[]);Object.keys($).forEach(me=>{if(me==="_id"||he.has(me))return;const Re=$[me],ir=ge[me];JSON.stringify(Re)!==JSON.stringify(ir)&&(Re!==""&&Re!==null&&Re!==void 0)&&(re[me]=Re)});const Ae=re,je={...N.current};Object.keys($).forEach(me=>{he.has(me)||(je[me]=$[me])}),N.current=je;const Ne=n==="update"&&t?await z.draftPatch(t,Ae):await z.draft(Ae);Ne&&typeof Ne=="object"&&(Object.entries(Ne).forEach(([me,Re])=>{$[me]!==Re&&F.setValue(me,Re,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(Ne).forEach(([me,Re])=>{he.has(me)&&(N.current[me]=Re)}))}catch(z){console.warn("Failed to compute fields via API:",z)}finally{m.current=!1}})()},300))},[h,n,t,le,r,F,ae,Y]),we=c.useCallback(async()=>{if(!h)return!1;const w=F.getValues();if(!await F.trigger())return!1;const $=h.crossFieldValidation.map(z=>({Id:z.Id,Condition:{ExpressionTree:z.ExpressionTree},Message:z.Message||`Validation failed for ${z.Name}`})),J=la($,w,C);return J.length>0?(J.forEach((z,re)=>{F.setError(`root.crossField${re}`,{type:"validate",message:z.message})}),!1):!0},[h,F.getValues,F.trigger,F.setError,C]),H=c.useCallback(async()=>{var w,K,$;if(!h)throw new Error("Schema not loaded");y(!0),V(null);try{if(!await we())throw new Error("Form validation failed");const z=F.getValues(),re=Fa(z,h.computedFields,n,le),ge=await Oa(r,n,re,t);if(!ge.success)throw ge.error||new Error("Submission failed");(w=j.current)==null||w.call(j,ge.data||z),n==="create"&&F.reset()}catch(J){const z=J;throw V(z),(K=Q.current)==null||K.call(Q,z),($=M.current)==null||$.call(M,z),J}finally{y(!1)}},[h,we,F,r,n,t,le]),ke=c.useCallback(()=>F.handleSubmit(async()=>{await H()}),[F,H]),P=c.useCallback(w=>(h==null?void 0:h.fields[w])||null,[h]),ce=c.useCallback(()=>{if(!h)return{};const w={};return Object.entries(h.fields).forEach(([K,$])=>{w[K]=$}),w},[h]),Oe=c.useCallback(w=>!!(h!=null&&h.fields[w]),[h]),De=c.useCallback(w=>(h==null?void 0:h.requiredFields.includes(w))||!1,[h]),rr=c.useCallback(w=>(h==null?void 0:h.computedFields.includes(w))||!1,[h]),Le=c.useCallback(async()=>{await D()},[D]),Ue=c.useCallback(()=>{F.clearErrors(),V(null)},[F]),_e=q||n==="update"&&be,ze=_e||X,qe=ie||fe,$e=!!(qe||U),d=c.useMemo(()=>(h==null?void 0:h.computedFields)||[],[h]),v=c.useMemo(()=>(h==null?void 0:h.requiredFields)||[],[h]),b=c.useMemo(()=>{if(!h)return{};const w={};return Object.entries(h.fields).forEach(([K,$])=>{const J={};switch($.required&&(J.required=`${$.label} is required`),$.permission.editable||(J.disabled=!0),$.type){case"number":J.valueAsNumber=!0;break;case"date":case"datetime-local":J.valueAsDate=!0;break}const z=$.rules.validation;z.length>0&&(J.validate={expressionValidation:re=>{const ge=F.getValues();for(const he of z){const Ae=h.rules.validation[he];if(Ae){const je=Ia(K,re,[Ae],ge,k);if(!je.isValid)return je.message||Ae.Message||"Invalid value"}}return!0}}),w[K]=J}),w},[h,F,C]);return{register:c.useCallback((w,K)=>{const $=b[w],J=K==null?void 0:K.onBlur,z=async re=>{J&&await J(re);let ge=!0;s==="onBlur"||s==="onTouched"||s==="all"?ge=await F.trigger(w):ge=!F.getFieldState(w,F.formState).error,ge&&await ee(w)};return F.register(w,{...$,...K,onBlur:z})},[F,b,ee,s]),handleSubmit:ke,watch:F.watch,setValue:F.setValue,reset:F.reset,errors:F.formState.errors,isValid:F.formState.isValid,isDirty:F.formState.isDirty,isSubmitting:F.formState.isSubmitting||X,isSubmitSuccessful:F.formState.isSubmitSuccessful,formState:F.formState,isLoadingInitialData:_e,isLoadingRecord:be,isLoading:ze,loadError:qe,submitError:U,hasError:$e,schema:se,processedSchema:h,computedFields:d,requiredFields:v,getField:P,getFields:ce,hasField:Oe,isFieldRequired:De,isFieldComputed:rr,submit:H,refreshSchema:Le,validateForm:we,clearErrors:Ue}}const Gr=50,Yr=5,Qr=5;function La({onCardMove:e,onError:r,columns:n,announceMove:t}){const[a,s]=c.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=c.useRef(null),u=c.useRef(null),l=c.useRef(null),f=c.useCallback(()=>{s({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),u.current&&(clearTimeout(u.current),u.current=null)},[]),g=c.useCallback(y=>n.find(k=>k._id===y)||null,[n]),E=c.useCallback(y=>{for(const k of n){const m=k.cards.find(A=>A._id===y);if(m)return{card:m,column:k}}return null},[n]),_=c.useCallback((y,k)=>{var m,A;try{const N=y.target,j=g(k.columnId);if(!j)throw new Error("Source column not found");(m=y.dataTransfer)==null||m.setData("text/plain",k._id),(A=y.dataTransfer)==null||A.setData("application/json",JSON.stringify(k));const M=N.cloneNode(!0);M.style.cssText=`
4
+ ...`:e}function dn(e,t){if(e==null)return"";switch(t||(typeof e=="boolean"?t="boolean":typeof e=="number"?t="number":e instanceof Date?t="datetime":Array.isArray(e)?t="array":typeof e=="object"?t="json":t="string"),t){case"id":case"string":return String(e);case"textarea":return or(String(e));case"number":return rr(e);case"boolean":return sr(e);case"date":return er(e);case"datetime":return tr(e);case"currency":return Zt(e);case"json":return nr(e);case"array":return ar(e);default:return String(e)}}function ir(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=ir(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function fn(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=ir(e))&&(r&&(r+=" "),r+=t);return r}const mn=(e,t)=>{const n=new Array(e.length+t.length);for(let r=0;r<e.length;r++)n[r]=e[r];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},pn=(e,t)=>({classGroupId:e,validator:t}),cr=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),it="-",$t=[],gn="arbitrary..",hn=e=>{const t=yn(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return bn(i);const d=i.split(it),u=d[0]===""&&d.length>1?1:0;return lr(d,u,t)},getConflictingClassGroupIds:(i,d)=>{if(d){const u=r[i],f=n[i];return u?f?mn(f,u):u:f||$t}return n[i]||$t}}},lr=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],o=n.nextPart.get(a);if(o){const f=lr(e,t+1,o);if(f)return f}const i=n.validators;if(i===null)return;const d=t===0?e.join(it):e.slice(t).join(it),u=i.length;for(let f=0;f<u;f++){const b=i[f];if(b.validator(d))return b.classGroupId}},bn=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?gn+r:void 0})(),yn=e=>{const{theme:t,classGroups:n}=e;return wn(n,t)},wn=(e,t)=>{const n=cr();for(const r in e){const a=e[r];xt(a,n,r,t)}return n},xt=(e,t,n,r)=>{const a=e.length;for(let o=0;o<a;o++){const i=e[o];vn(i,t,n,r)}},vn=(e,t,n,r)=>{if(typeof e=="string"){Cn(e,t,n);return}if(typeof e=="function"){Sn(e,t,n,r);return}kn(e,t,n,r)},Cn=(e,t,n)=>{const r=e===""?t:ur(t,e);r.classGroupId=n},Sn=(e,t,n,r)=>{if(En(e)){xt(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(pn(n,e))},kn=(e,t,n,r)=>{const a=Object.entries(e),o=a.length;for(let i=0;i<o;i++){const[d,u]=a[i];xt(u,ur(t,d),n,r)}},ur=(e,t)=>{let n=e;const r=t.split(it),a=r.length;for(let o=0;o<a;o++){const i=r[o];let d=n.nextPart.get(i);d||(d=cr(),n.nextPart.set(i,d)),n=d}return n},En=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,xn=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(o,i)=>{n[o]=i,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(o){let i=n[o];if(i!==void 0)return i;if((i=r[o])!==void 0)return a(o,i),i},set(o,i){o in n?n[o]=i:a(o,i)}}},Ct="!",jt=":",Rn=[],It=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),Tn=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const o=[];let i=0,d=0,u=0,f;const b=a.length;for(let B=0;B<b;B++){const Z=a[B];if(i===0&&d===0){if(Z===jt){o.push(a.slice(u,B)),u=B+1;continue}if(Z==="/"){f=B;continue}}Z==="["?i++:Z==="]"?i--:Z==="("?d++:Z===")"&&d--}const k=o.length===0?a:a.slice(u);let m=k,Y=!1;k.endsWith(Ct)?(m=k.slice(0,-1),Y=!0):k.startsWith(Ct)&&(m=k.slice(1),Y=!0);const z=f&&f>u?f-u:void 0;return It(o,Y,m,z)};if(t){const a=t+jt,o=r;r=i=>i.startsWith(a)?o(i.slice(a.length)):It(Rn,!1,i,void 0,!0)}if(n){const a=r;r=o=>n({className:o,parseClassName:a})}return r},On=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let o=0;o<n.length;o++){const i=n[o],d=i[0]==="[",u=t.has(i);d||u?(a.length>0&&(a.sort(),r.push(...a),a=[]),r.push(i)):a.push(i)}return a.length>0&&(a.sort(),r.push(...a)),r}},An=e=>({cache:xn(e.cacheSize),parseClassName:Tn(e),sortModifiers:On(e),...hn(e)}),Dn=/\s+/,Fn=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:o}=t,i=[],d=e.trim().split(Dn);let u="";for(let f=d.length-1;f>=0;f-=1){const b=d[f],{isExternal:k,modifiers:m,hasImportantModifier:Y,baseClassName:z,maybePostfixModifierPosition:B}=n(b);if(k){u=b+(u.length>0?" "+u:u);continue}let Z=!!B,C=r(Z?z.substring(0,B):z);if(!C){if(!Z){u=b+(u.length>0?" "+u:u);continue}if(C=r(z),!C){u=b+(u.length>0?" "+u:u);continue}Z=!1}const T=m.length===0?"":m.length===1?m[0]:o(m).join(":"),U=Y?T+Ct:T,L=U+C;if(i.indexOf(L)>-1)continue;i.push(L);const Q=a(C,Z);for(let y=0;y<Q.length;++y){const S=Q[y];i.push(U+S)}u=b+(u.length>0?" "+u:u)}return u},_n=(...e)=>{let t=0,n,r,a="";for(;t<e.length;)(n=e[t++])&&(r=dr(n))&&(a&&(a+=" "),a+=r);return a},dr=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=dr(e[r]))&&(n&&(n+=" "),n+=t);return n},Nn=(e,...t)=>{let n,r,a,o;const i=u=>{const f=t.reduce((b,k)=>k(b),e());return n=An(f),r=n.cache.get,a=n.cache.set,o=d,d(u)},d=u=>{const f=r(u);if(f)return f;const b=Fn(u,n);return a(u,b),b};return o=i,(...u)=>o(_n(...u))},Pn=[],me=e=>{const t=n=>n[e]||Pn;return t.isThemeGetter=!0,t},fr=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,mr=/^\((?:(\w[\w-]*):)?(.+)\)$/i,$n=/^\d+\/\d+$/,jn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,In=/\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$/,Ln=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Vn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Un=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ye=e=>$n.test(e),M=e=>!!e&&!Number.isNaN(Number(e)),$e=e=>!!e&&Number.isInteger(Number(e)),yt=e=>e.endsWith("%")&&M(e.slice(0,-1)),Ne=e=>jn.test(e),qn=()=>!0,Mn=e=>In.test(e)&&!Ln.test(e),pr=()=>!1,zn=e=>Vn.test(e),Kn=e=>Un.test(e),Bn=e=>!x(e)&&!R(e),Gn=e=>Qe(e,br,pr),x=e=>fr.test(e),Ue=e=>Qe(e,yr,Mn),wt=e=>Qe(e,Hn,M),Lt=e=>Qe(e,gr,pr),Yn=e=>Qe(e,hr,Kn),at=e=>Qe(e,wr,zn),R=e=>mr.test(e),Ze=e=>Je(e,yr),Wn=e=>Je(e,Xn),Vt=e=>Je(e,gr),Qn=e=>Je(e,br),Jn=e=>Je(e,hr),st=e=>Je(e,wr,!0),Qe=(e,t,n)=>{const r=fr.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Je=(e,t,n=!1)=>{const r=mr.exec(e);return r?r[1]?t(r[1]):n:!1},gr=e=>e==="position"||e==="percentage",hr=e=>e==="image"||e==="url",br=e=>e==="length"||e==="size"||e==="bg-size",yr=e=>e==="length",Hn=e=>e==="number",Xn=e=>e==="family-name",wr=e=>e==="shadow",Zn=()=>{const e=me("color"),t=me("font"),n=me("text"),r=me("font-weight"),a=me("tracking"),o=me("leading"),i=me("breakpoint"),d=me("container"),u=me("spacing"),f=me("radius"),b=me("shadow"),k=me("inset-shadow"),m=me("text-shadow"),Y=me("drop-shadow"),z=me("blur"),B=me("perspective"),Z=me("aspect"),C=me("ease"),T=me("animate"),U=()=>["auto","avoid","all","avoid-page","page","left","right","column"],L=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Q=()=>[...L(),R,x],y=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],h=()=>[R,x,u],O=()=>[Ye,"full","auto",...h()],N=()=>[$e,"none","subgrid",R,x],_=()=>["auto",{span:["full",$e,R,x]},$e,R,x],J=()=>[$e,"auto",R,x],H=()=>["auto","min","max","fr",R,x],ce=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],D=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...h()],le=()=>[Ye,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...h()],A=()=>[e,R,x],we=()=>[...L(),Vt,Lt,{position:[R,x]}],ve=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pe=()=>["auto","cover","contain",Qn,Gn,{size:[R,x]}],ge=()=>[yt,Ze,Ue],se=()=>["","none","full",f,R,x],oe=()=>["",M,Ze,Ue],re=()=>["solid","dashed","dotted","double"],xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[M,yt,Vt,Lt],Ce=()=>["","none",z,R,x],F=()=>["none",M,R,x],ie=()=>["none",M,R,x],Oe=()=>[M,R,x],Ae=()=>[Ye,"full",...h()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ne],breakpoint:[Ne],color:[qn],container:[Ne],"drop-shadow":[Ne],ease:["in","out","in-out"],font:[Bn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ne],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ne],shadow:[Ne],spacing:["px",M],text:[Ne],"text-shadow":[Ne],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ye,x,R,Z]}],container:["container"],columns:[{columns:[M,x,R,d]}],"break-after":[{"break-after":U()}],"break-before":[{"break-before":U()}],"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:Q()}],overflow:[{overflow:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{start:O()}],end:[{end:O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[$e,"auto",R,x]}],basis:[{basis:[Ye,"full","auto",d,...h()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[M,Ye,"auto","initial","none",x]}],grow:[{grow:["",M,R,x]}],shrink:[{shrink:["",M,R,x]}],order:[{order:[$e,"first","last","none",R,x]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:_()}],"col-start":[{"col-start":J()}],"col-end":[{"col-end":J()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:_()}],"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":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:h()}],"gap-x":[{"gap-x":h()}],"gap-y":[{"gap-y":h()}],"justify-content":[{justify:[...ce(),"normal"]}],"justify-items":[{"justify-items":[...D(),"normal"]}],"justify-self":[{"justify-self":["auto",...D()]}],"align-content":[{content:["normal",...ce()]}],"align-items":[{items:[...D(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...D(),{baseline:["","last"]}]}],"place-content":[{"place-content":ce()}],"place-items":[{"place-items":[...D(),"baseline"]}],"place-self":[{"place-self":["auto",...D()]}],p:[{p:h()}],px:[{px:h()}],py:[{py:h()}],ps:[{ps:h()}],pe:[{pe:h()}],pt:[{pt:h()}],pr:[{pr:h()}],pb:[{pb:h()}],pl:[{pl:h()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":h()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":h()}],"space-y-reverse":["space-y-reverse"],size:[{size:le()}],w:[{w:[d,"screen",...le()]}],"min-w":[{"min-w":[d,"screen","none",...le()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[i]},...le()]}],h:[{h:["screen","lh",...le()]}],"min-h":[{"min-h":["screen","lh","none",...le()]}],"max-h":[{"max-h":["screen","lh",...le()]}],"font-size":[{text:["base",n,Ze,Ue]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,R,wt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",yt,x]}],"font-family":[{font:[Wn,x,t]}],"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:[a,R,x]}],"line-clamp":[{"line-clamp":[M,"none",R,wt]}],leading:[{leading:[o,...h()]}],"list-image":[{"list-image":["none",R,x]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",R,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:[...re(),"wavy"]}],"text-decoration-thickness":[{decoration:[M,"from-font","auto",R,Ue]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[M,"auto",R,x]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:h()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",R,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",R,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:we()}],"bg-repeat":[{bg:ve()}],"bg-size":[{bg:pe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},$e,R,x],radial:["",R,x],conic:[$e,R,x]},Jn,Yn]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:ge()}],"gradient-via-pos":[{via:ge()}],"gradient-to-pos":[{to:ge()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:se()}],"rounded-s":[{"rounded-s":se()}],"rounded-e":[{"rounded-e":se()}],"rounded-t":[{"rounded-t":se()}],"rounded-r":[{"rounded-r":se()}],"rounded-b":[{"rounded-b":se()}],"rounded-l":[{"rounded-l":se()}],"rounded-ss":[{"rounded-ss":se()}],"rounded-se":[{"rounded-se":se()}],"rounded-ee":[{"rounded-ee":se()}],"rounded-es":[{"rounded-es":se()}],"rounded-tl":[{"rounded-tl":se()}],"rounded-tr":[{"rounded-tr":se()}],"rounded-br":[{"rounded-br":se()}],"rounded-bl":[{"rounded-bl":se()}],"border-w":[{border:oe()}],"border-w-x":[{"border-x":oe()}],"border-w-y":[{"border-y":oe()}],"border-w-s":[{"border-s":oe()}],"border-w-e":[{"border-e":oe()}],"border-w-t":[{"border-t":oe()}],"border-w-r":[{"border-r":oe()}],"border-w-b":[{"border-b":oe()}],"border-w-l":[{"border-l":oe()}],"divide-x":[{"divide-x":oe()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":oe()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...re(),"hidden","none"]}],"divide-style":[{divide:[...re(),"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:[...re(),"none","hidden"]}],"outline-offset":[{"outline-offset":[M,R,x]}],"outline-w":[{outline:["",M,Ze,Ue]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",b,st,at]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",k,st,at]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:oe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[M,Ue]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":oe()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",m,st,at]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[M,R,x]}],"mix-blend":[{"mix-blend":[...xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xe()}],"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":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"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":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"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":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"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":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"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":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"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":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"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":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[R,x]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"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":L()}],"mask-image-conic-pos":[{"mask-conic":[M]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"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:we()}],"mask-repeat":[{mask:ve()}],"mask-size":[{mask:pe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",R,x]}],filter:[{filter:["","none",R,x]}],blur:[{blur:Ce()}],brightness:[{brightness:[M,R,x]}],contrast:[{contrast:[M,R,x]}],"drop-shadow":[{"drop-shadow":["","none",Y,st,at]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",M,R,x]}],"hue-rotate":[{"hue-rotate":[M,R,x]}],invert:[{invert:["",M,R,x]}],saturate:[{saturate:[M,R,x]}],sepia:[{sepia:["",M,R,x]}],"backdrop-filter":[{"backdrop-filter":["","none",R,x]}],"backdrop-blur":[{"backdrop-blur":Ce()}],"backdrop-brightness":[{"backdrop-brightness":[M,R,x]}],"backdrop-contrast":[{"backdrop-contrast":[M,R,x]}],"backdrop-grayscale":[{"backdrop-grayscale":["",M,R,x]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[M,R,x]}],"backdrop-invert":[{"backdrop-invert":["",M,R,x]}],"backdrop-opacity":[{"backdrop-opacity":[M,R,x]}],"backdrop-saturate":[{"backdrop-saturate":[M,R,x]}],"backdrop-sepia":[{"backdrop-sepia":["",M,R,x]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":h()}],"border-spacing-x":[{"border-spacing-x":h()}],"border-spacing-y":[{"border-spacing-y":h()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",R,x]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[M,"initial",R,x]}],ease:[{ease:["linear","initial",C,R,x]}],delay:[{delay:[M,R,x]}],animate:[{animate:["none",T,R,x]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[B,R,x]}],"perspective-origin":[{"perspective-origin":Q()}],rotate:[{rotate:F()}],"rotate-x":[{"rotate-x":F()}],"rotate-y":[{"rotate-y":F()}],"rotate-z":[{"rotate-z":F()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":["scale-3d"],skew:[{skew:Oe()}],"skew-x":[{"skew-x":Oe()}],"skew-y":[{"skew-y":Oe()}],transform:[{transform:[R,x,"","none","gpu","cpu"]}],"transform-origin":[{origin:Q()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ae()}],"translate-x":[{"translate-x":Ae()}],"translate-y":[{"translate-y":Ae()}],"translate-z":[{"translate-z":Ae()}],"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",R,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":h()}],"scroll-mx":[{"scroll-mx":h()}],"scroll-my":[{"scroll-my":h()}],"scroll-ms":[{"scroll-ms":h()}],"scroll-me":[{"scroll-me":h()}],"scroll-mt":[{"scroll-mt":h()}],"scroll-mr":[{"scroll-mr":h()}],"scroll-mb":[{"scroll-mb":h()}],"scroll-ml":[{"scroll-ml":h()}],"scroll-p":[{"scroll-p":h()}],"scroll-px":[{"scroll-px":h()}],"scroll-py":[{"scroll-py":h()}],"scroll-ps":[{"scroll-ps":h()}],"scroll-pe":[{"scroll-pe":h()}],"scroll-pt":[{"scroll-pt":h()}],"scroll-pr":[{"scroll-pr":h()}],"scroll-pb":[{"scroll-pb":h()}],"scroll-pl":[{"scroll-pl":h()}],"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",R,x]}],fill:[{fill:["none",...A()]}],"stroke-w":[{stroke:[M,Ze,Ue,wt]}],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"]}},ea=Nn(Zn);function Fe(...e){return ea(fn(e))}const De=e=>"Condition"in e,vr=e=>"LHSField"in e,ta=De,ra=vr;let na=0;const rt=()=>`filter_${Date.now()}_${++na}`,aa=e=>e.id?e:{...e,id:rt()},Cr=e=>e.map(t=>{const n=aa(t);return De(n)?{...n,Condition:Cr(n.Condition)}:n}),Sr=e=>e.map(t=>{if(De(t)){const{id:a,...o}=t;return{...o,Condition:Sr(t.Condition)}}const{id:n,...r}=t;return r}),kr=(e,t)=>{for(const n of e){if(n.id===t)return n;if(De(n)){const r=kr(n.Condition,t);if(r)return r}}},St=(e,t,n)=>e.map(r=>r.id===t?n(r):De(r)?{...r,Condition:St(r.Condition,t,n)}:r),Er=(e,t)=>e.filter(n=>n.id!==t).map(n=>De(n)?{...n,Condition:Er(n.Condition,t)}:n),kt=(e,t,n)=>e.map(r=>r.id===t&&De(r)?{...r,Condition:[...r.Condition,n]}:De(r)?{...r,Condition:kt(r.Condition,t,n)}:r);function Rt(e={}){const[t,n]=l.useState(()=>Cr(e.initialConditions||[])),[r,a]=l.useState(e.initialOperator||"And"),o=l.useMemo(()=>{if(t.length!==0)return{Operator:r,Condition:Sr(t)}},[t,r]),i=t.length>0,d=l.useCallback(C=>{const T=rt(),U={...C,id:T};return n(L=>[...L,U]),T},[]),u=l.useCallback(C=>{const T=rt(),U={id:T,Operator:C,Condition:[]};return n(L=>[...L,U]),T},[]),f=l.useCallback((C,T)=>{const U=rt(),L={...T,id:U};return n(Q=>kt(Q,C,L)),U},[]),b=l.useCallback((C,T)=>{const U=rt(),L={id:U,Operator:T,Condition:[]};return n(Q=>kt(Q,C,L)),U},[]),k=l.useCallback((C,T)=>{n(U=>St(U,C,L=>De(L)?L:{...L,...T}))},[]),m=l.useCallback((C,T)=>{n(U=>St(U,C,L=>De(L)?{...L,Operator:T}:L))},[]),Y=l.useCallback(C=>{n(T=>Er(T,C))},[]),z=l.useCallback(C=>kr(t,C),[t]),B=l.useCallback(()=>{n([])},[]),Z=l.useCallback(C=>{a(C)},[]);return{operator:r,items:t,payload:o,hasConditions:i,add:d,addGroup:u,addTo:f,addGroupTo:b,update:k,updateOperator:m,remove:Y,get:z,clear:B,setOperator:Z,conditions:t}}function sa(e){var we,ve,pe,ge,se,oe,re,xe,ee,Ce;const[t,n]=l.useState({query:""}),[r,a]=l.useState({field:((ve=(we=e.initialState)==null?void 0:we.sorting)==null?void 0:ve.field)||null,direction:((ge=(pe=e.initialState)==null?void 0:pe.sorting)==null?void 0:ge.direction)||null}),[o,i]=l.useState({pageNo:((oe=(se=e.initialState)==null?void 0:se.pagination)==null?void 0:oe.pageNo)||1,pageSize:((xe=(re=e.initialState)==null?void 0:re.pagination)==null?void 0:xe.pageSize)||10}),d=Rt({initialConditions:(ee=e.initialState)==null?void 0:ee.filters,initialOperator:((Ce=e.initialState)==null?void 0:Ce.filterOperator)||"And"}),u=l.useMemo(()=>{const F={};return t.query&&(F.Search=t.query),d.payload&&(F.Filter=d.payload),F},[t.query,d.payload]),f=l.useMemo(()=>{const F={...u};return r.field&&r.direction&&(F.Sort=[{[String(r.field)]:r.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(F.Page=o.pageNo,F.PageSize=o.pageSize),F},[u,r,o,e.enablePagination]),{data:b,isLoading:k,isFetching:m,error:Y,refetch:z}=be.useQuery({queryKey:["table",e.source,f],queryFn:async()=>{try{const F=await ye(e.source).list(f);return e.onSuccess&&e.onSuccess(F.Data),F}catch(F){throw e.onError&&e.onError(F),F}},staleTime:0,gcTime:0}),{data:B,isLoading:Z,isFetching:C,error:T,refetch:U}=be.useQuery({queryKey:["table-count",e.source,u],queryFn:async()=>{try{return await ye(e.source).count(u)}catch(F){throw e.onError&&e.onError(F),F}},staleTime:0,gcTime:0}),L=l.useMemo(()=>(b==null?void 0:b.Data)||[],[b]),Q=l.useMemo(()=>(B==null?void 0:B.Count)||0,[B]),y=l.useMemo(()=>Math.ceil(Q/o.pageSize),[Q,o.pageSize]),S=l.useCallback(F=>{a(ie=>{if(ie.field===F){if(ie.direction==="asc")return{field:F,direction:"desc"};if(ie.direction==="desc")return{field:null,direction:null}}return{field:F,direction:"asc"}})},[]),h=l.useCallback(()=>{a({field:null,direction:null})},[]),O=l.useCallback((F,ie)=>{a({field:F,direction:ie})},[]),N=l.useCallback(F=>{n({query:F}),i(ie=>({...ie,pageNo:1}))},[]),_=l.useCallback(()=>{n({query:""})},[]),J=o.pageNo<y,H=o.pageNo>1,ce=l.useCallback(()=>{J&&i(F=>({...F,pageNo:F.pageNo+1}))},[J]),D=l.useCallback(()=>{H&&i(F=>({...F,pageNo:F.pageNo-1}))},[H]),q=l.useCallback(F=>{const ie=Math.max(1,Math.min(F,y));i(Oe=>({...Oe,pageNo:ie}))},[y]),le=l.useCallback(F=>{i(ie=>({...ie,pageSize:F,pageNo:1}))},[]),A=l.useCallback(async()=>{const[F]=await Promise.all([z(),U()]);return F.data||{Data:[]}},[z,U]);return{rows:L,totalItems:Q,isLoading:k||Z,isFetching:m||C,error:Y||T,search:{query:t.query,setQuery:N,clear:_},sort:{field:r.field,direction:r.direction,toggle:S,clear:h,set:O},filter:d,pagination:{currentPage:o.pageNo,pageSize:o.pageSize,totalPages:y,totalItems:Q,canGoNext:J,canGoPrevious:H,goToNext:ce,goToPrevious:D,goToPage:q,setPageSize:le},refetch:A}}function oa(){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 ia={CONCAT:(...e)=>e.map(t=>String(t||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,t,n)=>{const r=String(e||"");return n!==void 0?r.substring(t,t+n):r.substring(t)},CONTAINS:(e,t)=>String(e||"").includes(String(t||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,t)=>{const n=new Date(e),r=new Date(t),a=Math.abs(n.getTime()-r.getTime());return Math.ceil(a/(1e3*60*60*24))},ADD_DAYS:(e,t)=>{const n=new Date(e);return n.setDate(n.getDate()+t),n},ADD_MONTHS:(e,t)=>{const n=new Date(e);return n.setMonth(n.getMonth()+t),n},SUM:(...e)=>e.reduce((t,n)=>t+(Number(n)||0),0),AVG:(...e)=>{const t=e.filter(n=>!isNaN(Number(n)));return t.length>0?t.reduce((n,r)=>n+Number(r),0)/t.length:0},MIN:(...e)=>Math.min(...e.map(t=>Number(t)||0)),MAX:(...e)=>Math.max(...e.map(t=>Number(t)||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,t,n)=>e?t:n,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 t=new Date(e);return!isNaN(t.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,t)=>Array.isArray(e)?e.includes(t):!1,ARRAY_JOIN:(e,t=",")=>Array.isArray(e)?e.join(t):""};function je(e,t){var n;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const f=t.systemValues[e.Name];return vt(f,e.Property.Name)}return t.systemValues[e.Name];case"Identifier":if(e.Property){const f=Ut(e,t);return vt(f,e.Property.Name)}return Ut(e,t);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const r=je(e.Arguments[0],t),a=(n=e.Arguments[0].Property)==null?void 0:n.Name;return a?vt(r,a):r;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const o=je(e.Arguments[0],t),i=je(e.Arguments[1],t);return ca(e.Operator,o,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return la(e.Operator,e.Arguments,t);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const d=ia[e.Callee];if(!d)throw new Error(`Unknown function: ${e.Callee}`);const u=(e.Arguments||[]).map(f=>je(f,t));return d(...u);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return je(e.Arguments[0],t);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Ut(e,t){const{Name:n,Source:r}=e;if(!n)throw new Error("Identifier requires Name");switch(r){case"Input":default:return t.formValues[n]}}function vt(e,t){if(!(!e||typeof e!="object"))return e[t]}function ca(e,t,n){const r=a=>a==null?0:typeof a=="number"?a:typeof a=="object"&&a!==null&&"value"in a?Number(a.value)||0:Number(a)||0;switch(e){case"==":return t==n;case"!=":return t!=n;case">":return r(t)>r(n);case"<":return r(t)<r(n);case">=":return r(t)>=r(n);case"<=":return r(t)<=r(n);case"+":return r(t)+r(n);case"-":return r(t)-r(n);case"*":return r(t)*r(n);case"/":const a=r(n);return a!==0?r(t)/a:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function la(e,t,n){switch(e){case"AND":return t.every(r=>!!je(r,n));case"OR":return t.some(r=>!!je(r,n));default:throw new Error(`Unknown logical operator: ${e}`)}}function xr(e,t,n={}){const r={formValues:t,systemValues:oa(),referenceData:n};try{return je(e,r)}catch(a){return console.warn("Expression evaluation failed:",a),!1}}function qt(e,t,n={}){const r=[];for(const a of e)try{xr(a.Condition.ExpressionTree,t,n)||r.push({isValid:!1,message:a.Message,fieldName:a.Id})}catch(o){console.warn(`Cross-field validation rule ${a.Id} failed:`,o)}return r}function ua(e,t={},n={}){try{return xr(e,t,n)}catch(r){return console.warn("Default value calculation failed:",r),null}}function Mt(e,t){var d,u,f;const n=((d=e.Expression)==null?void 0:d.toLowerCase())||"",r=((u=e.Name)==null?void 0:u.toLowerCase())||"",a=((f=e.Id)==null?void 0:f.toLowerCase())||"",o=t.toLowerCase();return r.includes("required")||a.includes("required")?!0:[`${o} != null`,`${o} != ''`,`trim(${o}) != ''`,`${o}!=null`,`${o}!=''`].some(b=>n.includes(b))}function da(e){const t={...e};t.Rules||(t.Rules={Validation:{},Computation:{},BusinessLogic:{}}),t.Rules.Validation||(t.Rules.Validation={}),t.Rules.Computation||(t.Rules.Computation={}),t.Rules.BusinessLogic||(t.Rules.BusinessLogic={});const n={...t.Fields};return Object.entries(n).forEach(([r,a])=>{let o=a.Required||!1;if(a.Validation&&Array.isArray(a.Validation))if(a.Validation.length>0&&typeof a.Validation[0]=="object"){const i=[];a.Validation.forEach(d=>{t.Rules.Validation[d.Id]=d,i.push(d.Id),Mt(d,r)&&(o=!0)}),n[r]={...a,Validation:i,Required:o}}else a.Validation.forEach(d=>{var f;const u=(f=t.Rules.Validation)==null?void 0:f[d];u&&Mt(u,r)&&(o=!0)}),o&&!a.Required&&(n[r]={...a,Required:!0});if(a.Formula){const i=`RULE_COMPUTE_${r.toUpperCase()}`;t.Rules.Computation[i]={Id:i,Name:a.Formula.Id||`Compute ${r}`,Description:a.Formula.Description||`Computes value for ${r}`,Expression:a.Formula.Expression,ExpressionTree:a.Formula.ExpressionTree,ResultType:a.Type}}}),t.Fields=n,t}function fa(e){var n,r,a;const t={validation:{},computation:{},businessLogic:{}};return(n=e.Rules)!=null&&n.Validation&&(t.validation={...e.Rules.Validation}),(r=e.Rules)!=null&&r.Computation&&(t.computation={...e.Rules.Computation}),(a=e.Rules)!=null&&a.BusinessLogic&&(t.businessLogic={...e.Rules.BusinessLogic}),t}function ma(e){var r;const t={};if(!((r=e.Rules)!=null&&r.Computation))return t;const n=Object.entries(e.Fields).filter(([a,o])=>o.Computed).map(([a])=>a);return n.sort((a,o)=>o.length-a.length),Object.entries(e.Rules.Computation).forEach(([a,o])=>{const i=a.toUpperCase().replace(/[_-]/g,"");for(const u of n){const f=u.toUpperCase().replace(/[_-]/g,"");if(i.includes(f)){t[a]=u;return}}const d=`${o.Name||""} ${o.Description||""}`.toLowerCase();for(const u of n)if(d.includes(u.toLowerCase())){t[a]=u;return}}),t}function pa(e,t){const n={};Object.keys(e.Fields).forEach(a=>{n[a]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([a,o])=>{o.Validation&&Array.isArray(o.Validation)&&o.Validation.forEach(d=>{t.validation[d]?n[a].validation.push(d):t.computation[d]?n[a].computation.push(d):t.businessLogic[d]&&n[a].businessLogic.push(d)}),o.Formula&&Object.entries(t.computation).forEach(([i,d])=>{var u;d.Expression===((u=o.Formula)==null?void 0:u.Expression)&&(n[a].computation.includes(i)||n[a].computation.push(i))})});const r=ma(e);return Object.entries(r).forEach(([a,o])=>{n[o]&&!n[o].computation.includes(a)&&n[o].computation.push(a)}),n}function ga(e,t){const n={},r={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(a=>{var u,f,b,k,m,Y;if(!t||!((u=e.RolePermission)!=null&&u[t])){n[a]=r;return}const o=e.RolePermission[t],i=((f=o.Editable)==null?void 0:f.includes(a))||((b=o.Editable)==null?void 0:b.includes("*"))||!1,d=((k=o.ReadOnly)==null?void 0:k.includes(a))||((m=o.ReadOnly)==null?void 0:m.includes("*"))||i;n[a]={editable:i&&!((Y=o.ReadOnly)!=null&&Y.includes(a)),readable:d,hidden:!d}}),n}function ha(e,t){switch(e){case"String":return t.toLowerCase().includes("email")?"email":t.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 Rr(e){return e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).replace(/_/g," ").trim()}function ba(e,t,n){const r={};switch(t.Required&&(r.required={value:!0,message:`${Rr(e)} is required`}),t.Type){case"Number":r.valueAsNumber=!0;break;case"Date":case"DateTime":r.valueAsDate=!0;break}return t.Validation&&t.Validation.length>0&&(r.validate=()=>!0),r}function ya(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(t=>({value:t.Value,label:t.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function wa(e,t={}){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 ua(e.DefaultValue.ExpressionTree,t)}function va(e,t,n,r={},a,o){const i={editable:!0,readable:!0,hidden:!1},u=o||{validation:[],computation:[],businessLogic:[]},f=t.Computed||!!t.Formula||u.computation.length>0,b=ba(e,t);return f&&(b.disabled=!0),{name:e,type:ha(t.Type,e),label:t.Name||Rr(e),required:t.Required||!1,computed:f,defaultValue:wa(t,r),options:ya(t),validation:b,description:t.Description,_bdoField:t,permission:a||i,rules:u}}function Ca(e,t={},n){let r=e;r=da(r);const a={},o=[],i=[],d=[],u=[],f=fa(r),b=pa(r,f),k=ga(r,n);for(const[m,Y]of Object.entries(r.Fields)){if(m.startsWith("_")&&!["_id"].includes(m))continue;const z=k[m];if(z.hidden)continue;const B=va(m,Y,r.Fields,t,z,b[m]||{validation:[],computation:[],businessLogic:[]});a[m]=B,o.push(m),B.computed&&i.push(m),B.required&&d.push(m)}return{fields:a,fieldOrder:o,computedFields:i,requiredFields:d,crossFieldValidation:u,rules:f,fieldRules:b,rolePermissions:r.RolePermission}}function Sa(e){var n;if(e.type!=="reference"||!((n=e._bdoField.Values)!=null&&n.Reference))return null;const t=e._bdoField.Values.Reference;return{businessObject:t.BusinessObject,fields:t.Fields||["_id"],filters:t.Filters,sort:t.Sort}}function ka(e){const t={};for(const[n,r]of Object.entries(e.fields))if(r.type==="reference"){const a=Sa(r);a&&(t[n]=a)}return t}async function Ea(e){try{const n=(await Xt(e)).BOBlob;if(!n||typeof n!="object"||!n.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return n}catch(t){throw console.error(`Schema fetch error for ${e}:`,t),new Error(`Failed to load form schema: ${t instanceof Error?t.message:"Unknown error"}`)}}async function xa(e,t=3){let n;for(let r=1;r<=t;r++)try{return await Ea(e)}catch(a){if(n=a,r<t){const o=Math.min(1e3*Math.pow(2,r-1),5e3);await new Promise(i=>setTimeout(i,o));continue}}throw n}async function Ra(e,t){try{return await ye(e).get(t)}catch(n){throw console.error(`Record fetch error for ${e}/${t}:`,n),new Error(`Failed to load record: ${n instanceof Error?n.message:"Unknown error"}`)}}async function Ta(e,t,n,r){try{let a;if(t==="create")return a=await ye(e).create(n),{success:!0,data:a,recordId:a._id||r};if(t==="update"){if(!r)throw new Error("Record ID is required for update operations");return a=await ye(e).update(r,n),{success:!0,data:a,recordId:a._id||r}}else throw new Error(`Unsupported operation: ${t}`)}catch(a){return console.error("Form submission error:",a),{success:!1,error:new Error(`Failed to ${t} record: ${a instanceof Error?a.message:"Unknown error"}`)}}}async function Oa(e,t=["_id"],n,r){try{const a={};return n&&(a.Filter=n),r&&(a.Sort=r),t.length>0&&(a.Field=t),(await ye(e).list(a)).Data||[]}catch(a){return console.error(`Reference data fetch error for ${e}:`,a),[]}}async function Aa(e){const t={},n=Object.entries(e).map(async([a,o])=>{try{const i=await Oa(o.businessObject,o.fields,o.filters,o.sort);return[a,i]}catch(i){return console.warn(`Failed to fetch reference data for ${a}:`,i),[a,[]]}});return(await Promise.allSettled(n)).forEach(a=>{if(a.status==="fulfilled"){const[o,i]=a.value;t[o]=Array.isArray(i)?i:[]}}),t}function Da(e,t,n="create",r){const a={};return Object.keys(e).forEach(o=>{const i=o,d=e[i];if(!t.includes(o)&&d!==void 0){if(n==="create"){a[i]=d;return}if(n==="update"){if(!r){a[i]=d;return}const u=r[i];JSON.stringify(d)!==JSON.stringify(u)&&(a[i]=d)}}}),a}function Fa(e){var t,n,r,a;return typeof e=="string"?e:e!=null&&e.message?e.message:(n=(t=e==null?void 0:e.response)==null?void 0:t.data)!=null&&n.message?e.response.data.message:(a=(r=e==null?void 0:e.response)==null?void 0:r.data)!=null&&a.error?e.response.data.error:"An unexpected error occurred"}function _a(e){var t,n;return!navigator.onLine||(e==null?void 0:e.code)==="NETWORK_ERROR"||((t=e==null?void 0:e.message)==null?void 0:t.toLowerCase().includes("network"))||((n=e==null?void 0:e.message)==null?void 0:n.toLowerCase().includes("fetch"))}function Na(e){var t,n,r;return(e==null?void 0:e.status)===400||((t=e==null?void 0:e.response)==null?void 0:t.status)===400||((n=e==null?void 0:e.message)==null?void 0:n.toLowerCase().includes("validation"))||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("invalid"))}const We=new Map;function Pa(e,t,n=10){We.set(e,{data:t,timestamp:Date.now(),ttl:n*60*1e3})}function $a(e){const t=We.get(e);return t?Date.now()-t.timestamp>t.ttl?(We.delete(e),null):t.data:null}function ja(e){e?Array.from(We.keys()).filter(n=>n.startsWith(e)).forEach(n=>We.delete(n)):We.clear()}async function Ia(e){const t=`schema:${e}`,n=$a(t);if(n)return n;const r=await xa(e);return Pa(t,r,30),r}class zt{constructor(t=1e3){Ve(this,"cache",new Map);Ve(this,"maxSize");this.maxSize=t}get(t){const n=this.cache.get(t);return n!==void 0&&(this.cache.delete(t),this.cache.set(t,n)),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){const r=this.cache.keys().next().value;this.cache.delete(r)}this.cache.set(t,n)}clear(){this.cache.clear()}}function La(e){const t=new Set;function n(r){switch(r.Type){case"Identifier":r.Name&&!r.Name.startsWith("$")&&t.add(r.Name);break;case"MemberExpression":r.Arguments&&r.Arguments.forEach(n);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":r.Arguments&&r.Arguments.forEach(n);break}}return n(e),t}class Va{constructor(){Ve(this,"resultCache",new zt(500));Ve(this,"dependencyCache",new zt(200));Ve(this,"compiledExpressions",new Map)}createCacheKey(t,n){const r=JSON.stringify(t),a=JSON.stringify(n);return`${r}:${a}`}getDependencies(t){const n=JSON.stringify(t);let r=this.dependencyCache.get(n);return r||(r=La(t),this.dependencyCache.set(n,r)),r}getCachedResult(t,n,r){if(!r)return;const a=this.getDependencies(t);for(const i of a)if(n[i]!==r[i])return;const o=this.createCacheKey(t,n);return this.resultCache.get(o)}evaluate(t,n,r){const a=this.getCachedResult(t,n,r);if(a!==void 0)return a;const o=this.evaluateNode(t,n),i=this.createCacheKey(t,n);return this.resultCache.set(i,o),o}evaluateNode(t,n){switch(t.Type){case"Literal":return t.Value;case"Identifier":return this.getIdentifierValue(t,n);case"BinaryExpression":return this.evaluateBinaryExpression(t,n);case"LogicalExpression":return this.evaluateLogicalExpression(t,n);case"CallExpression":return this.evaluateCallExpression(t,n);case"MemberExpression":return this.evaluateMemberExpression(t,n);default:throw new Error(`Unsupported expression type: ${t.Type}`)}}getIdentifierValue(t,n){if(t.Name){if(t.Name==="NOW")return new Date;if(t.Name==="TODAY"){const r=new Date;return new Date(r.getFullYear(),r.getMonth(),r.getDate())}return t.Name==="CURRENT_USER_ID"?1:t.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:n[t.Name]}}evaluateBinaryExpression(t,n){if(!t.Arguments||t.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const r=this.evaluateNode(t.Arguments[0],n),a=this.evaluateNode(t.Arguments[1],n);switch(t.Operator){case"==":return r==a;case"!=":return r!=a;case"===":return r===a;case"!==":return r!==a;case"<":return Number(r)<Number(a);case"<=":return Number(r)<=Number(a);case">":return Number(r)>Number(a);case">=":return Number(r)>=Number(a);case"+":return Number(r)+Number(a);case"-":return Number(r)-Number(a);case"*":return Number(r)*Number(a);case"/":return Number(r)/Number(a);case"%":return Number(r)%Number(a);default:throw new Error(`Unsupported binary operator: ${t.Operator}`)}}evaluateLogicalExpression(t,n){if(!t.Arguments||t.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(t.Operator){case"AND":for(const r of t.Arguments)if(!this.evaluateNode(r,n))return!1;return!0;case"OR":for(const r of t.Arguments)if(this.evaluateNode(r,n))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${t.Operator}`)}}evaluateCallExpression(t,n){var a;if(!t.Callee)throw new Error("Call expression requires a function name");const r=((a=t.Arguments)==null?void 0:a.map(o=>this.evaluateNode(o,n)))||[];switch(t.Callee){case"CONCAT":return r.map(f=>String(f||"")).join("");case"TRIM":return String(r[0]||"").trim();case"LENGTH":return String(r[0]||"").length;case"UPPER":return String(r[0]||"").toUpperCase();case"LOWER":return String(r[0]||"").toLowerCase();case"CONTAINS":return String(r[0]||"").includes(String(r[1]||""));case"MATCHES":return new RegExp(String(r[1])).test(String(r[0]||""));case"SUM":return r.reduce((f,b)=>f+(Number(b)||0),0);case"AVG":const o=r.filter(f=>!isNaN(Number(f)));return o.length>0?o.reduce((f,b)=>f+Number(b),0)/o.length:0;case"MIN":return Math.min(...r.map(f=>Number(f)||0));case"MAX":return Math.max(...r.map(f=>Number(f)||0));case"ROUND":return Math.round(Number(r[0])||0);case"FLOOR":return Math.floor(Number(r[0])||0);case"CEIL":return Math.ceil(Number(r[0])||0);case"ABS":return Math.abs(Number(r[0])||0);case"YEAR":return new Date(r[0]).getFullYear();case"MONTH":return new Date(r[0]).getMonth()+1;case"DAY":return new Date(r[0]).getDate();case"DATE_DIFF":const i=new Date(r[0]),d=new Date(r[1]),u=Math.abs(i.getTime()-d.getTime());return Math.ceil(u/(1e3*60*60*24));case"IF":return r[0]?r[1]:r[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${t.Callee}`)}}evaluateMemberExpression(t,n){var o;if(!t.Arguments||t.Arguments.length===0)throw new Error("Member expression requires arguments");const r=this.evaluateNode(t.Arguments[0],n),a=(o=t.Arguments[0].Property)==null?void 0:o.Name;return a&&r&&typeof r=="object"?r[a]:r}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Tr=new Va;function Ua(e,t,n,r,a){if(!n||n.length===0)return{isValid:!0};const o={...r,[e]:t};for(const i of n)try{if(!Tr.evaluate(i.ExpressionTree,o,a))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(d){console.warn(`Validation rule ${i.Id} failed to evaluate:`,d)}return{isValid:!0}}function Kt(e){return Array.from(Tr.getDependencies(e))}function qa(e){const{source:t,operation:n,recordId:r,defaultValues:a={},mode:o="onBlur",enabled:i=!0,userRole:d,onSchemaError:u,skipSchemaFetch:f=!1,schema:b,draftOnEveryChange:k=!1}=e,[m,Y]=l.useState(null),[z,B]=l.useState({}),[Z,C]=l.useState(!1),[T]=l.useState({}),U=l.useRef(!1),L=l.useRef(null),Q=l.useRef(null),y=l.useRef(u);l.useEffect(()=>{y.current=u},[u]);const{data:S,isLoading:h,error:O,refetch:N}=be.useQuery({queryKey:["form-schema",t],queryFn:()=>f?Promise.resolve(b||{}):Ia(t),enabled:i&&(!f||!!b),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:_,isLoading:J,error:H}=be.useQuery({queryKey:["form-record",t,r],queryFn:()=>Ra(t,r),enabled:i&&n==="update"&&!!r,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),ce=l.useMemo(()=>{const P={...a};if(n==="update"&&_&&Object.assign(P,_),m)for(const[j,I]of Object.entries(m.fields))I.defaultValue!==void 0&&!(j in P)&&(P[j]=I.defaultValue);return P},[a,_,n,m]),D=Zr.useForm({mode:o,defaultValues:a,values:n==="update"&&_?ce:void 0});l.useEffect(()=>{var P;if(S)try{const j=Ca(S,{},d);Y(j);const I=ka(j);Object.keys(I).length>0&&Aa(I).then(B).catch(console.warn)}catch(j){console.error("Schema processing failed:",j),(P=y.current)==null||P.call(y,j)}},[S,d]),l.useEffect(()=>{var P;O&&((P=y.current)==null||P.call(y,O))},[O]);const q=l.useMemo(()=>{if(!m)return[];const P=new Set,j=new Set(m.computedFields);return Object.entries(m.fieldRules).forEach(([I,X])=>{X.computation.forEach(W=>{const c=m.rules.computation[W];c!=null&&c.ExpressionTree&&Kt(c.ExpressionTree).forEach(p=>{m.fields[p]&&p!==I&&!j.has(p)&&P.add(p)})})}),m.computedFields.forEach(I=>{const X=m.fields[I];X._bdoField.Formula&&Kt(X._bdoField.Formula.ExpressionTree).forEach(c=>{m.fields[c]&&c!==I&&!j.has(c)&&P.add(c)})}),Array.from(P)},[m]),le=l.useCallback(async P=>{!m||q.length===0||!(k||q.includes(P))||U.current||(L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{if(!m||U.current)return;const I=D.getValues();(async()=>{U.current=!0;try{const W=ye(t),c={};n==="update"&&r&&"_id"in I&&(c._id=I._id);const w=Q.current??(n==="update"?_:null)??{},p=new Set(m.computedFields||[]);Object.keys(I).forEach(ne=>{if(ne==="_id"||p.has(ne))return;const de=I[ne],Re=w[ne];JSON.stringify(de)!==JSON.stringify(Re)&&(de!==""&&de!==null&&de!==void 0)&&(c[ne]=de)});const v=c,V={...Q.current};Object.keys(I).forEach(ne=>{p.has(ne)||(V[ne]=I[ne])}),Q.current=V;const Se=n==="update"&&r?await W.draftPatch(r,v):await W.draft(v);Se&&typeof Se=="object"&&(Object.entries(Se).forEach(([ne,de])=>{I[ne]!==de&&D.setValue(ne,de,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(Se).forEach(([ne,de])=>{p.has(ne)&&(Q.current[ne]=de)}))}catch(W){console.warn("Failed to compute fields via API:",W)}finally{U.current=!1}})()},300))},[m,n,r,_,t,D,q,k]),A=l.useCallback(async()=>{if(!m)return!1;const P=D.getValues();if(!await D.trigger())return!1;const I=m.crossFieldValidation.map(W=>({Id:W.Id,Condition:{ExpressionTree:W.ExpressionTree},Message:W.Message||`Validation failed for ${W.Name}`})),X=qt(I,P,z);return X.length>0?(X.forEach((W,c)=>{D.setError(`root.crossField${c}`,{type:"validate",message:W.message})}),!1):!0},[m,D.getValues,D.trigger,D.setError,z]),we=l.useCallback((P,j)=>D.handleSubmit(async(I,X)=>{if(!m){const W=new Error("Schema not loaded");j==null||j(W,X);return}C(!0);try{const W=m.crossFieldValidation.map(v=>({Id:v.Id,Condition:{ExpressionTree:v.ExpressionTree},Message:v.Message||`Validation failed for ${v.Name}`})),c=qt(W,I,z);if(c.length>0){c.forEach((v,V)=>{D.setError(`root.crossField${V}`,{type:"validate",message:v.message})}),j==null||j(D.formState.errors,X);return}const w=Da(I,m.computedFields,n,_),p=await Ta(t,n,w,r);if(!p.success)throw p.error||new Error("Submission failed");n==="create"&&D.reset(),await(P==null?void 0:P(p.data||I,X))}catch(W){j==null||j(W,X)}finally{C(!1)}},(I,X)=>{j==null||j(I,X)}),[D,m,z,t,n,r,_]),ve=l.useCallback(P=>(m==null?void 0:m.fields[P])||null,[m]),pe=l.useCallback(()=>{if(!m)return{};const P={};return Object.entries(m.fields).forEach(([j,I])=>{P[j]=I}),P},[m]),ge=l.useCallback(P=>!!(m!=null&&m.fields[P]),[m]),se=l.useCallback(P=>(m==null?void 0:m.requiredFields.includes(P))||!1,[m]),oe=l.useCallback(P=>(m==null?void 0:m.computedFields.includes(P))||!1,[m]),re=l.useCallback(async()=>{await N()},[N]),xe=l.useCallback(()=>{D.clearErrors()},[D]),ee=h||n==="update"&&J,Ce=ee||Z,F=O||H,ie=!!F,Oe=l.useMemo(()=>(m==null?void 0:m.computedFields)||[],[m]),Ae=l.useMemo(()=>(m==null?void 0:m.requiredFields)||[],[m]),ze=l.useMemo(()=>{if(!m)return{};const P={};return Object.entries(m.fields).forEach(([j,I])=>{const X={};switch(I.required&&(X.required=`${I.label} is required`),I.permission.editable||(X.disabled=!0),I.type){case"number":X.valueAsNumber=!0;break;case"date":case"datetime-local":X.valueAsDate=!0;break}const W=I.rules.validation;W.length>0&&(X.validate={expressionValidation:c=>{const w=D.getValues();for(const p of W){const v=m.rules.validation[p];if(v){const V=Ua(j,c,[v],w,T);if(!V.isValid)return V.message||v.Message||"Invalid value"}}return!0}}),P[j]=X}),P},[m,D,z]);return{register:l.useCallback((P,j)=>{const I=ze[P],X=j==null?void 0:j.onBlur,W=async c=>{X&&await X(c);let w=!0;o==="onBlur"||o==="onTouched"||o==="all"?w=await D.trigger(P):w=!D.getFieldState(P,D.formState).error,w&&await le(P)};return D.register(P,{...I,...j,onBlur:W})},[D,ze,le,o]),handleSubmit:we,watch:D.watch,setValue:D.setValue,reset:D.reset,errors:D.formState.errors,isValid:D.formState.isValid,isDirty:D.formState.isDirty,isSubmitting:D.formState.isSubmitting||Z,isSubmitSuccessful:D.formState.isSubmitSuccessful,formState:D.formState,isLoadingInitialData:ee,isLoadingRecord:J,isLoading:Ce,loadError:F,hasError:ie,schema:S,schemaConfig:m,computedFields:Oe,requiredFields:Ae,getField:ve,getFields:pe,hasField:ge,isFieldRequired:se,isFieldComputed:oe,refreshSchema:re,validateForm:A,clearErrors:xe}}const Bt=50,Gt=5,Yt=5;function Ma({onCardMove:e,onError:t,columns:n,announceMove:r}){const[a,o]=l.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=l.useRef(null),d=l.useRef(null),u=l.useRef(null),f=l.useCallback(()=>{o({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),d.current&&(clearTimeout(d.current),d.current=null)},[]),b=l.useCallback(y=>n.find(S=>S._id===y)||null,[n]),k=l.useCallback(y=>{for(const S of n){const h=S.cards.find(O=>O._id===y);if(h)return{card:h,column:S}}return null},[n]),m=l.useCallback((y,S)=>{var h,O;try{const N=y.target,_=b(S.columnId);if(!_)throw new Error("Source column not found");(h=y.dataTransfer)==null||h.setData("text/plain",S._id),(O=y.dataTransfer)==null||O.setData("application/json",JSON.stringify(S));const J=N.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(M),i.current=M,y.dataTransfer&&y.dataTransfer.setDragImage(M,y.offsetX||50,y.offsetY||20),s({isDragging:!0,draggedCard:k,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:j._id}),t==null||t(k,j.title,"being moved")}catch(N){r==null||r(N instanceof Error?N:new Error("Drag start failed")),f()}},[g,r,f,t]),G=c.useCallback((y,k)=>{if(y.preventDefault(),!a.isDragging||!a.draggedCard)return;const m=k?g(k):null;s(A=>({...A,dragOverColumn:(m==null?void 0:m._id)||null,dragOverPosition:null})),ne(y)},[a.isDragging,a.draggedCard,g]),Y=c.useCallback((y,k)=>{if(y.preventDefault(),!(!a.isDragging||!a.draggedCard))try{const m=a.draggedCard,A=a.dragSourceColumn,N=g(k),j=g(A);if(!N||!j)throw new Error("Target or source column not found");if(A===k){f();return}if(N.limit&&N.cards.length>=N.limit)throw new Error(`Column "${N.title}" has reached its limit of ${N.limit} cards`);e==null||e(m,A,k),t==null||t(m,j.title,N.title)}catch(m){r==null||r(m instanceof Error?m:new Error("Drop failed"))}finally{f()}},[a,g,e,r,f,t]),h=c.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),f()},[f]),ne=c.useCallback(y=>{const k=y.target.closest(".kanban-container");if(!k)return;const m=k.getBoundingClientRect(),A=y.clientX-m.left,N=m.width;let j=0;if(A<Gr?j=-Yr:A>N-Gr&&(j=Yr),j!==0){u.current&&clearTimeout(u.current);const M=()=>{k.scrollLeft+=j,u.current=setTimeout(M,16)};u.current=setTimeout(M,100)}else u.current&&(clearTimeout(u.current),u.current=null)},[]),C=c.useCallback((y,k)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(y.key))return;y.preventDefault();const m=E(k._id);if(!m)return;const{column:A}=m,N=n.findIndex(j=>j._id===A._id);try{switch(y.key){case"ArrowLeft":if(N>0){const j=n[N-1];e==null||e(k,A._id,j._id),t==null||t(k,A.title,j.title)}break;case"ArrowRight":if(N<n.length-1){const j=n[N+1];e==null||e(k,A._id,j._id),t==null||t(k,A.title,j.title)}break;case"ArrowUp":t==null||t(k,"current position","position above");break;case"ArrowDown":t==null||t(k,"current position","position below");break;case"Enter":case"Space":t==null||t(k,A.title,"drag mode");break;case"Escape":t==null||t(k,"drag mode","cancelled");break}}catch(j){r==null||r(j instanceof Error?j:new Error("Keyboard navigation failed"))}},[E,n,e,r,t]),O=c.useCallback((y,k)=>{const m=y.touches[0];l.current={x:m.clientX,y:m.clientY,card:k}},[]),U=c.useCallback(y=>{if(!l.current)return;const k=y.touches[0],m=Math.abs(k.clientX-l.current.x),A=Math.abs(k.clientY-l.current.y);if(m>Qr||A>Qr){const N=l.current.card,j=g(N.columnId);if(!j)return;s({isDragging:!0,draggedCard:N,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:j._id}),t==null||t(N,j.title,"being moved")}},[g,t]),V=c.useCallback(y=>{if(!a.isDragging||!a.draggedCard||!l.current){l.current=null;return}try{const k=y.changedTouches[0],m=document.elementFromPoint(k.clientX,k.clientY),A=m==null?void 0:m.closest("[data-column-id]");if(A){const N=A.dataset.columnId,j=a.draggedCard,M=a.dragSourceColumn,Q=g(N),Z=g(M);if(Q&&Z&&M!==N){if(Q.limit&&Q.cards.length>=Q.limit)throw new Error(`Column "${Q.title}" has reached its limit of ${Q.limit} cards`);e==null||e(j,M,N),t==null||t(j,Z.title,Q.title)}}}catch(k){r==null||r(k instanceof Error?k:new Error("Touch drop failed"))}finally{l.current=null,f()}},[a,g,e,r,f,t]),X=c.useCallback((y,k,m)=>{const A=`Moved "${y.title}" from ${k} to ${m}`,N=document.createElement("div");N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.className="sr-only",N.textContent=A,document.body.appendChild(N),setTimeout(()=>{document.body.removeChild(N)},1e3),console.log(`Kanban: ${A}`)},[]);return c.useEffect(()=>()=>{u.current&&clearTimeout(u.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:a.isDragging,draggedCard:a.draggedCard,dragOverColumn:a.dragOverColumn,dragOverPosition:a.dragOverPosition,dragSourceColumn:a.dragSourceColumn,handleDragStart:_,handleDragOver:G,handleDrop:Y,handleDragEnd:h,handleKeyDown:C,handleTouchStart:O,handleTouchMove:U,handleTouchEnd:V,announceMove:t||X,reset:f}}function Ua(e){var ze,qe,$e;const{columns:r,cardSource:n,source:t,enableDragDrop:a=!0,initialState:s,onCardMove:i,onCardCreate:u,onCardUpdate:l,onCardDelete:f,onError:g}=e,E=t||n;if(!E)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[_,G]=c.useState({query:(s==null?void 0:s.search)||""}),[Y]=c.useState({field:((ze=s==null?void 0:s.sorting)==null?void 0:ze.field)||null,direction:((qe=s==null?void 0:s.sorting)==null?void 0:qe.direction)||null}),[h,ne]=c.useState(()=>{const d={};return r.forEach(v=>{d[v.id]=10}),d}),C=c.useRef(g),O=c.useRef(i),U=c.useRef(u),V=c.useRef(l),X=c.useRef(f);c.useEffect(()=>{C.current=g,O.current=i,U.current=u,V.current=l,X.current=f},[g,i,u,l,f]);const y=Ce.useQueryClient(),k=Dr({initialConditions:s==null?void 0:s.filters,initialOperator:(s==null?void 0:s.filterOperator)||"And"}),m=c.useCallback(d=>{const v={LHSField:"columnId",Operator:"EQ",RHSValue:d,RHSType:"Constant"},b=k.payload;let x;b?b.Operator==="And"?x={...b,Condition:[...b.Condition||[],v]}:x={Operator:"And",Condition:[b,v]}:x={Operator:"And",Condition:[v]};const w={Page:1,PageSize:h[d]||10,Filter:x};return Y.field&&Y.direction?w.Sort=[{[String(Y.field)]:Y.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:w.Sort=[{columnId:"ASC"},{position:"ASC"}],_.query&&(w.Search=_.query),w},[k.payload,h,Y,_.query]),A=Ce.useQueries({queries:r.map(d=>{const v=m(d.id);return{queryKey:["kanban-cards",E,d.id,v],queryFn:async()=>{try{return await Ee(E).list(v)}catch(b){throw b}},placeholderData:Ce.keepPreviousData,staleTime:30*1e3}})}),N=A.some(d=>d.isLoading),j=A.some(d=>d.isFetching),M=(($e=A.find(d=>d.error))==null?void 0:$e.error)||null,Q=async()=>{await Promise.all(A.map(d=>d.refetch()))},Z=c.useMemo(()=>{const d={};return _.query&&(d.Search=_.query),k.payload&&(d.Filter=k.payload),d},[_.query,k.payload]),{data:se,isLoading:q,error:ie}=Ce.useQuery({queryKey:["kanban-count",E,Z],queryFn:async()=>{try{return await Ee(E).count(Z)}catch(d){throw C.current&&C.current(d),d}},staleTime:30*1e3,gcTime:60*1e3}),D=Ce.useMutation({mutationFn:async d=>{const v=d.position??999999;return(await Ee(E).create({...d,position:v}))._id},onMutate:async d=>{const v=d.columnId,b=m(v),x=["kanban-cards",E,v,b];await y.cancelQueries({queryKey:x});const w=y.getQueryData(x);if(w){const K=w.Data,$=d.position??K.length,J=`temp-${Date.now()}`,z={...d,_id:J,position:$,_created_at:new Date,_modified_at:new Date};y.setQueryData(x,{...w,Data:[...w.Data,z]})}return{previousCards:w,queryKey:x}},onSuccess:async(d,v,b)=>{var x;b!=null&&b.queryKey&&await y.invalidateQueries({queryKey:b.queryKey}),(x=U.current)==null||x.call(U,{_id:d,...v})},onError:(d,v,b)=>{var x;b!=null&&b.previousCards&&(b!=null&&b.queryKey)&&y.setQueryData(b.queryKey,b.previousCards),(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=b.columnId,w=m(x);y.invalidateQueries({queryKey:["kanban-cards",E,x,w]})}}),le=Ce.useMutation({mutationFn:async({id:d,updates:v})=>(await Ee(E).update(d,v),{id:d,updates:v}),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",E]}),{}),onSuccess:async d=>{var v;(v=V.current)==null||v.call(V,{_id:d.id,...d.updates})},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",E]})}}),be=Ce.useMutation({mutationFn:async d=>(await Ee(E).delete(d),d),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",E]}),{}),onSuccess:async d=>{var v;(v=X.current)==null||v.call(X,d)},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",E]})}}),fe=Ce.useMutation({mutationFn:async({cardId:d,fromColumnId:v,toColumnId:b,position:x})=>{const w={columnId:b,...x!==void 0&&{position:x}};return await Ee(E).update(d,w),{cardId:d,fromColumnId:v,toColumnId:b,position:x}},onMutate:async({cardId:d,fromColumnId:v,toColumnId:b,position:x})=>{const w=m(v),K=m(b),$=["kanban-cards",E,v,w],J=["kanban-cards",E,b,K];await y.cancelQueries({queryKey:$}),await y.cancelQueries({queryKey:J});const z=y.getQueryData($),re=y.getQueryData(J);if(z&&re){const ge=z.Data.find(he=>he._id===d);if(ge){const he={...z,Data:z.Data.filter(Ne=>Ne._id!==d)},Ae={...ge,columnId:b,position:x??re.Data.length,_modified_at:new Date},je={...re,Data:[...re.Data,Ae].sort((Ne,me)=>Ne.position-me.position)};y.setQueryData($,he),y.setQueryData(J,je)}}return{previousFromData:z,previousToData:re,fromQueryKey:$,toQueryKey:J,fromColumnId:v,toColumnId:b}},onSuccess:async d=>{var v;(v=O.current)==null||v.call(O,{_id:d.cardId},d.fromColumnId,d.toColumnId)},onError:(d,v,b)=>{var x;b!=null&&b.previousFromData&&(b!=null&&b.fromQueryKey)&&y.setQueryData(b.fromQueryKey,b.previousFromData),b!=null&&b.previousToData&&(b!=null&&b.toQueryKey)&&y.setQueryData(b.toQueryKey,b.previousToData),(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=m(b.fromColumnId),w=m(b.toColumnId);y.invalidateQueries({queryKey:["kanban-cards",E,b.fromColumnId,x]}),y.invalidateQueries({queryKey:["kanban-cards",E,b.toColumnId,w]})}}),ye=Ce.useMutation({mutationFn:async({cardIds:d,columnId:v})=>{const b=d.map((x,w)=>({id:x,position:w,columnId:v}));await Promise.all(b.map(x=>Ee(E).update(x.id,{position:x.position,columnId:x.columnId})))},onMutate:async({columnId:d})=>{const v=m(d),b=["kanban-cards",E,d,v];return await y.cancelQueries({queryKey:b}),{}},onSuccess:()=>{},onError:(d,v,b)=>{var x;(x=C.current)==null||x.call(C,d)},onSettled:(d,v,b)=>{const x=m(b.columnId);y.invalidateQueries({queryKey:["kanban-cards",E,b.columnId,x]})}}),F=c.useCallback(async(d,v,b)=>{try{await fe.mutateAsync({cardId:d._id,fromColumnId:v,toColumnId:b,position:void 0})}catch{}},[fe]),ae=c.useMemo(()=>r.sort((d,v)=>d.position-v.position).map((d,v)=>{var w;const x=((w=A[v].data)==null?void 0:w.Data)||[];return{_id:d.id,title:d.title,position:d.position,color:d.color,limit:d.limit,cards:x.sort((K,$)=>K.position-$.position),_created_at:new Date,_modified_at:new Date}}),[r,A]),ee=La({onCardMove:F,onError:C.current,columns:ae,announceMove:(d,v,b)=>{console.log(`Kanban: Moved "${d.title}" from ${v} to ${b}`)}}),we=c.useCallback(d=>{var v,b;return{draggable:!0,role:"option","aria-selected":a&&((v=ee.draggedCard)==null?void 0:v._id)===d._id,"aria-grabbed":a&&((b=ee.draggedCard)==null?void 0:b._id)===d._id,onDragStart:x=>{if(!a)return;x.dataTransfer.setData("text/plain",JSON.stringify(d));const w=x.nativeEvent||x;ee.handleDragStart(w,d)},onDragEnd:ee.handleDragEnd,onKeyDown:x=>{if(!a)return;const w=x.nativeEvent||x;ee.handleKeyDown(w,d)}}},[a,ee]),H=c.useCallback(d=>({"data-column-id":d,role:"listbox",onDragOver:v=>{if(!a)return;const b=v.nativeEvent||v;ee.handleDragOver(b,d)},onDrop:v=>{if(!a)return;const b=v.nativeEvent||v;ee.handleDrop(b,d)}}),[a,ee]),ke=c.useCallback(d=>{G({query:d})},[]),P=c.useCallback(()=>{G({query:""})},[]),ce=(se==null?void 0:se.Count)||0,Oe=N||q,De=j,rr=D.isPending||le.isPending||be.isPending||fe.isPending||ye.isPending,Le=M||ie,Ue=c.useCallback(async()=>{await Q()},[Q]),_e=c.useCallback(async()=>{await y.invalidateQueries({predicate:d=>d.queryKey[0]==="kanban-cards"||d.queryKey[0]==="kanban-count"})},[y]);return c.useEffect(()=>{Le&&C.current&&C.current(Le)},[Le]),{columns:ae,totalCards:ce,isLoading:Oe,isFetching:De,isUpdating:rr,error:Le,createCard:D.mutateAsync,updateCard:c.useCallback(async(d,v)=>{await le.mutateAsync({id:d,updates:v})},[le]),deleteCard:c.useCallback(async d=>{await be.mutateAsync(d)},[be]),moveCard:c.useCallback(async(d,v,b,x)=>{if(!x){for(const w of ae)if(w.cards.find($=>$._id===d)){x=w._id;break}if(!x)throw new Error(`Card ${d} not found in any column`)}await fe.mutateAsync({cardId:d,fromColumnId:x,toColumnId:v,position:b})},[fe,ae]),reorderCards:c.useCallback(async(d,v)=>{await ye.mutateAsync({cardIds:d,columnId:v})},[ye]),searchQuery:_.query,setSearchQuery:ke,clearSearch:P,filter:k,isDragging:a?ee.isDragging:!1,draggedCard:a?ee.draggedCard:null,dragOverColumn:a?ee.dragOverColumn:null,handleDragStart:a?ee.handleDragStart:()=>{},handleDragOver:a?ee.handleDragOver:()=>{},handleDrop:a?ee.handleDrop:()=>{},handleDragEnd:a?ee.handleDragEnd:()=>{},handleKeyDown:a?ee.handleKeyDown:()=>{},getCardProps:a?we:d=>({}),getColumnProps:a?H:d=>({}),loadMore:c.useCallback(d=>{ne(v=>({...v,[d]:(v[d]||10)+10}))},[]),refetch:Ue,refresh:_e}}c.createContext(null);var Tr={exports:{}},nr={};/**
16
+ `,document.body.appendChild(J),i.current=J,y.dataTransfer&&y.dataTransfer.setDragImage(J,y.offsetX||50,y.offsetY||20),o({isDragging:!0,draggedCard:S,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:_._id}),r==null||r(S,_.title,"being moved")}catch(N){t==null||t(N instanceof Error?N:new Error("Drag start failed")),f()}},[b,t,f,r]),Y=l.useCallback((y,S)=>{if(y.preventDefault(),!a.isDragging||!a.draggedCard)return;const h=S?b(S):null;o(O=>({...O,dragOverColumn:(h==null?void 0:h._id)||null,dragOverPosition:null})),Z(y)},[a.isDragging,a.draggedCard,b]),z=l.useCallback((y,S)=>{if(y.preventDefault(),!(!a.isDragging||!a.draggedCard))try{const h=a.draggedCard,O=a.dragSourceColumn,N=b(S),_=b(O);if(!N||!_)throw new Error("Target or source column not found");if(O===S){f();return}if(N.limit&&N.cards.length>=N.limit)throw new Error(`Column "${N.title}" has reached its limit of ${N.limit} cards`);e==null||e(h,O,S),r==null||r(h,_.title,N.title)}catch(h){t==null||t(h instanceof Error?h:new Error("Drop failed"))}finally{f()}},[a,b,e,t,f,r]),B=l.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),f()},[f]),Z=l.useCallback(y=>{const S=y.target.closest(".kanban-container");if(!S)return;const h=S.getBoundingClientRect(),O=y.clientX-h.left,N=h.width;let _=0;if(O<Bt?_=-Gt:O>N-Bt&&(_=Gt),_!==0){d.current&&clearTimeout(d.current);const J=()=>{S.scrollLeft+=_,d.current=setTimeout(J,16)};d.current=setTimeout(J,100)}else d.current&&(clearTimeout(d.current),d.current=null)},[]),C=l.useCallback((y,S)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(y.key))return;y.preventDefault();const h=k(S._id);if(!h)return;const{column:O}=h,N=n.findIndex(_=>_._id===O._id);try{switch(y.key){case"ArrowLeft":if(N>0){const _=n[N-1];e==null||e(S,O._id,_._id),r==null||r(S,O.title,_.title)}break;case"ArrowRight":if(N<n.length-1){const _=n[N+1];e==null||e(S,O._id,_._id),r==null||r(S,O.title,_.title)}break;case"ArrowUp":r==null||r(S,"current position","position above");break;case"ArrowDown":r==null||r(S,"current position","position below");break;case"Enter":case"Space":r==null||r(S,O.title,"drag mode");break;case"Escape":r==null||r(S,"drag mode","cancelled");break}}catch(_){t==null||t(_ instanceof Error?_:new Error("Keyboard navigation failed"))}},[k,n,e,t,r]),T=l.useCallback((y,S)=>{const h=y.touches[0];u.current={x:h.clientX,y:h.clientY,card:S}},[]),U=l.useCallback(y=>{if(!u.current)return;const S=y.touches[0],h=Math.abs(S.clientX-u.current.x),O=Math.abs(S.clientY-u.current.y);if(h>Yt||O>Yt){const N=u.current.card,_=b(N.columnId);if(!_)return;o({isDragging:!0,draggedCard:N,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:_._id}),r==null||r(N,_.title,"being moved")}},[b,r]),L=l.useCallback(y=>{if(!a.isDragging||!a.draggedCard||!u.current){u.current=null;return}try{const S=y.changedTouches[0],h=document.elementFromPoint(S.clientX,S.clientY),O=h==null?void 0:h.closest("[data-column-id]");if(O){const N=O.dataset.columnId,_=a.draggedCard,J=a.dragSourceColumn,H=b(N),ce=b(J);if(H&&ce&&J!==N){if(H.limit&&H.cards.length>=H.limit)throw new Error(`Column "${H.title}" has reached its limit of ${H.limit} cards`);e==null||e(_,J,N),r==null||r(_,ce.title,H.title)}}}catch(S){t==null||t(S instanceof Error?S:new Error("Touch drop failed"))}finally{u.current=null,f()}},[a,b,e,t,f,r]),Q=l.useCallback((y,S,h)=>{const O=`Moved "${y.title}" from ${S} to ${h}`,N=document.createElement("div");N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.className="sr-only",N.textContent=O,document.body.appendChild(N),setTimeout(()=>{document.body.removeChild(N)},1e3),console.log(`Kanban: ${O}`)},[]);return l.useEffect(()=>()=>{d.current&&clearTimeout(d.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:a.isDragging,draggedCard:a.draggedCard,dragOverColumn:a.dragOverColumn,dragOverPosition:a.dragOverPosition,dragSourceColumn:a.dragSourceColumn,handleDragStart:m,handleDragOver:Y,handleDrop:z,handleDragEnd:B,handleKeyDown:C,handleTouchStart:T,handleTouchMove:U,handleTouchEnd:L,announceMove:r||Q,reset:f}}function za(e){var I,X,W;const{columns:t,cardSource:n,source:r,enableDragDrop:a=!0,initialState:o,onCardMove:i,onCardCreate:d,onCardUpdate:u,onCardDelete:f,onError:b}=e,k=r||n;if(!k)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[m,Y]=l.useState({query:(o==null?void 0:o.search)||""}),[z]=l.useState({field:((I=o==null?void 0:o.sorting)==null?void 0:I.field)||null,direction:((X=o==null?void 0:o.sorting)==null?void 0:X.direction)||null}),[B,Z]=l.useState(()=>{const c={};return t.forEach(w=>{c[w.id]=10}),c}),C=l.useRef(b),T=l.useRef(i),U=l.useRef(d),L=l.useRef(u),Q=l.useRef(f);l.useEffect(()=>{C.current=b,T.current=i,U.current=d,L.current=u,Q.current=f},[b,i,d,u,f]);const y=be.useQueryClient(),S=Rt({initialConditions:o==null?void 0:o.filters,initialOperator:(o==null?void 0:o.filterOperator)||"And"}),h=l.useCallback(c=>{const w={LHSField:"columnId",Operator:"EQ",RHSValue:c,RHSType:"Constant"},p=S.payload;let v;p?p.Operator==="And"?v={...p,Condition:[...p.Condition||[],w]}:v={Operator:"And",Condition:[p,w]}:v={Operator:"And",Condition:[w]};const V={Page:1,PageSize:B[c]||10,Filter:v};return z.field&&z.direction?V.Sort=[{[String(z.field)]:z.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:V.Sort=[{columnId:"ASC"},{position:"ASC"}],m.query&&(V.Search=m.query),V},[S.payload,B,z,m.query]),O=be.useQueries({queries:t.map(c=>{const w=h(c.id);return{queryKey:["kanban-cards",k,c.id,w],queryFn:async()=>{try{return await ye(k).list(w)}catch(p){throw p}},placeholderData:be.keepPreviousData,staleTime:30*1e3}})}),N=O.some(c=>c.isLoading),_=O.some(c=>c.isFetching),J=((W=O.find(c=>c.error))==null?void 0:W.error)||null,H=async()=>{await Promise.all(O.map(c=>c.refetch()))},ce=l.useMemo(()=>{const c={};return m.query&&(c.Search=m.query),S.payload&&(c.Filter=S.payload),c},[m.query,S.payload]),{data:D,isLoading:q,error:le}=be.useQuery({queryKey:["kanban-count",k,ce],queryFn:async()=>{try{return await ye(k).count(ce)}catch(c){throw C.current&&C.current(c),c}},staleTime:30*1e3,gcTime:60*1e3}),A=be.useMutation({mutationFn:async c=>{const w=c.position??999999;return(await ye(k).create({...c,position:w}))._id},onMutate:async c=>{const w=c.columnId,p=h(w),v=["kanban-cards",k,w,p];await y.cancelQueries({queryKey:v});const V=y.getQueryData(v);if(V){const Se=V.Data,ne=c.position??Se.length,de=`temp-${Date.now()}`,Re={...c,_id:de,position:ne,_created_at:new Date,_modified_at:new Date};y.setQueryData(v,{...V,Data:[...V.Data,Re]})}return{previousCards:V,queryKey:v}},onSuccess:async(c,w,p)=>{var v;p!=null&&p.queryKey&&await y.invalidateQueries({queryKey:p.queryKey}),(v=U.current)==null||v.call(U,{_id:c,...w})},onError:(c,w,p)=>{var v;p!=null&&p.previousCards&&(p!=null&&p.queryKey)&&y.setQueryData(p.queryKey,p.previousCards),(v=C.current)==null||v.call(C,c)},onSettled:(c,w,p)=>{const v=p.columnId,V=h(v);y.invalidateQueries({queryKey:["kanban-cards",k,v,V]})}}),we=be.useMutation({mutationFn:async({id:c,updates:w})=>(await ye(k).update(c,w),{id:c,updates:w}),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",k]}),{}),onSuccess:async c=>{var w;(w=L.current)==null||w.call(L,{_id:c.id,...c.updates})},onError:(c,w,p)=>{var v;(v=C.current)==null||v.call(C,c)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",k]})}}),ve=be.useMutation({mutationFn:async c=>(await ye(k).delete(c),c),onMutate:async()=>(await y.cancelQueries({queryKey:["kanban-cards",k]}),{}),onSuccess:async c=>{var w;(w=Q.current)==null||w.call(Q,c)},onError:(c,w,p)=>{var v;(v=C.current)==null||v.call(C,c)},onSettled:()=>{y.invalidateQueries({queryKey:["kanban-cards",k]})}}),pe=be.useMutation({mutationFn:async({cardId:c,fromColumnId:w,toColumnId:p,position:v})=>{const V={columnId:p,...v!==void 0&&{position:v}};return await ye(k).update(c,V),{cardId:c,fromColumnId:w,toColumnId:p,position:v}},onMutate:async({cardId:c,fromColumnId:w,toColumnId:p,position:v})=>{const V=h(w),Se=h(p),ne=["kanban-cards",k,w,V],de=["kanban-cards",k,p,Se];await y.cancelQueries({queryKey:ne}),await y.cancelQueries({queryKey:de});const Re=y.getQueryData(ne),_e=y.getQueryData(de);if(Re&&_e){const Ke=Re.Data.find(He=>He._id===c);if(Ke){const He={...Re,Data:Re.Data.filter(Xe=>Xe._id!==c)},dt={...Ke,columnId:p,position:v??_e.Data.length,_modified_at:new Date},ft={..._e,Data:[..._e.Data,dt].sort((Xe,mt)=>Xe.position-mt.position)};y.setQueryData(ne,He),y.setQueryData(de,ft)}}return{previousFromData:Re,previousToData:_e,fromQueryKey:ne,toQueryKey:de,fromColumnId:w,toColumnId:p}},onSuccess:async c=>{var w;(w=T.current)==null||w.call(T,{_id:c.cardId},c.fromColumnId,c.toColumnId)},onError:(c,w,p)=>{var v;p!=null&&p.previousFromData&&(p!=null&&p.fromQueryKey)&&y.setQueryData(p.fromQueryKey,p.previousFromData),p!=null&&p.previousToData&&(p!=null&&p.toQueryKey)&&y.setQueryData(p.toQueryKey,p.previousToData),(v=C.current)==null||v.call(C,c)},onSettled:(c,w,p)=>{const v=h(p.fromColumnId),V=h(p.toColumnId);y.invalidateQueries({queryKey:["kanban-cards",k,p.fromColumnId,v]}),y.invalidateQueries({queryKey:["kanban-cards",k,p.toColumnId,V]})}}),ge=be.useMutation({mutationFn:async({cardIds:c,columnId:w})=>{const p=c.map((v,V)=>({id:v,position:V,columnId:w}));await Promise.all(p.map(v=>ye(k).update(v.id,{position:v.position,columnId:v.columnId})))},onMutate:async({columnId:c})=>{const w=h(c),p=["kanban-cards",k,c,w];return await y.cancelQueries({queryKey:p}),{}},onSuccess:()=>{},onError:(c,w,p)=>{var v;(v=C.current)==null||v.call(C,c)},onSettled:(c,w,p)=>{const v=h(p.columnId);y.invalidateQueries({queryKey:["kanban-cards",k,p.columnId,v]})}}),se=l.useCallback(async(c,w,p)=>{try{await pe.mutateAsync({cardId:c._id,fromColumnId:w,toColumnId:p,position:void 0})}catch{}},[pe]),oe=l.useMemo(()=>t.sort((c,w)=>c.position-w.position).map((c,w)=>{var V;const v=((V=O[w].data)==null?void 0:V.Data)||[];return{_id:c.id,title:c.title,position:c.position,color:c.color,limit:c.limit,cards:v.sort((Se,ne)=>Se.position-ne.position),_created_at:new Date,_modified_at:new Date}}),[t,O]),re=Ma({onCardMove:se,onError:C.current,columns:oe,announceMove:(c,w,p)=>{console.log(`Kanban: Moved "${c.title}" from ${w} to ${p}`)}}),xe=l.useCallback(c=>{var w,p;return{draggable:!0,role:"option","aria-selected":a&&((w=re.draggedCard)==null?void 0:w._id)===c._id,"aria-grabbed":a&&((p=re.draggedCard)==null?void 0:p._id)===c._id,onDragStart:v=>{if(!a)return;v.dataTransfer.setData("text/plain",JSON.stringify(c));const V=v.nativeEvent||v;re.handleDragStart(V,c)},onDragEnd:re.handleDragEnd,onKeyDown:v=>{if(!a)return;const V=v.nativeEvent||v;re.handleKeyDown(V,c)}}},[a,re]),ee=l.useCallback(c=>({"data-column-id":c,role:"listbox",onDragOver:w=>{if(!a)return;const p=w.nativeEvent||w;re.handleDragOver(p,c)},onDrop:w=>{if(!a)return;const p=w.nativeEvent||w;re.handleDrop(p,c)}}),[a,re]),Ce=l.useCallback(c=>{Y({query:c})},[]),F=l.useCallback(()=>{Y({query:""})},[]),ie=(D==null?void 0:D.Count)||0,Oe=N||q,Ae=_,ze=A.isPending||we.isPending||ve.isPending||pe.isPending||ge.isPending,Ie=J||le,P=l.useCallback(async()=>{await H()},[H]),j=l.useCallback(async()=>{await y.invalidateQueries({predicate:c=>c.queryKey[0]==="kanban-cards"||c.queryKey[0]==="kanban-count"})},[y]);return l.useEffect(()=>{Ie&&C.current&&C.current(Ie)},[Ie]),{columns:oe,totalCards:ie,isLoading:Oe,isFetching:Ae,isUpdating:ze,error:Ie,createCard:A.mutateAsync,updateCard:l.useCallback(async(c,w)=>{await we.mutateAsync({id:c,updates:w})},[we]),deleteCard:l.useCallback(async c=>{await ve.mutateAsync(c)},[ve]),moveCard:l.useCallback(async(c,w,p,v)=>{if(!v){for(const V of oe)if(V.cards.find(ne=>ne._id===c)){v=V._id;break}if(!v)throw new Error(`Card ${c} not found in any column`)}await pe.mutateAsync({cardId:c,fromColumnId:v,toColumnId:w,position:p})},[pe,oe]),reorderCards:l.useCallback(async(c,w)=>{await ge.mutateAsync({cardIds:c,columnId:w})},[ge]),searchQuery:m.query,setSearchQuery:Ce,clearSearch:F,filter:S,isDragging:a?re.isDragging:!1,draggedCard:a?re.draggedCard:null,dragOverColumn:a?re.dragOverColumn:null,handleDragStart:a?re.handleDragStart:()=>{},handleDragOver:a?re.handleDragOver:()=>{},handleDrop:a?re.handleDrop:()=>{},handleDragEnd:a?re.handleDragEnd:()=>{},handleKeyDown:a?re.handleKeyDown:()=>{},getCardProps:a?xe:c=>({}),getColumnProps:a?ee:c=>({}),loadMore:l.useCallback(c=>{Z(w=>({...w,[c]:(w[c]||10)+10}))},[]),refetch:P,refresh:j}}l.createContext(null);var Et={exports:{}},et={};/**
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 Wr;function qa(){if(Wr)return nr;Wr=1;var e=c,r=Symbol.for("react.element"),n=Symbol.for("react.fragment"),t=Object.prototype.hasOwnProperty,a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function i(u,l,f){var g,E={},_=null,G=null;f!==void 0&&(_=""+f),l.key!==void 0&&(_=""+l.key),l.ref!==void 0&&(G=l.ref);for(g in l)t.call(l,g)&&!s.hasOwnProperty(g)&&(E[g]=l[g]);if(u&&u.defaultProps)for(g in l=u.defaultProps,l)E[g]===void 0&&(E[g]=l[g]);return{$$typeof:r,type:u,key:_,ref:G,props:E,_owner:a.current}}return nr.Fragment=n,nr.jsx=i,nr.jsxs=i,nr}var ar={};/**
24
+ */var Wt;function Ka(){if(Wt)return et;Wt=1;var e=l,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function i(d,u,f){var b,k={},m=null,Y=null;f!==void 0&&(m=""+f),u.key!==void 0&&(m=""+u.key),u.ref!==void 0&&(Y=u.ref);for(b in u)r.call(u,b)&&!o.hasOwnProperty(b)&&(k[b]=u[b]);if(d&&d.defaultProps)for(b in u=d.defaultProps,u)k[b]===void 0&&(k[b]=u[b]);return{$$typeof:t,type:d,key:m,ref:Y,props:k,_owner:a.current}}return et.Fragment=n,et.jsx=i,et.jsxs=i,et}var tt={};/**
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 Jr;function Ma(){return Jr||(Jr=1,process.env.NODE_ENV!=="production"&&function(){var e=c,r=Symbol.for("react.element"),n=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),G=Symbol.for("react.offscreen"),Y=Symbol.iterator,h="@@iterator";function ne(o){if(o===null||typeof o!="object")return null;var p=Y&&o[Y]||o[h];return typeof p=="function"?p:null}var C=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function O(o){{for(var p=arguments.length,S=new Array(p>1?p-1:0),I=1;I<p;I++)S[I-1]=arguments[I];U("error",o,S)}}function U(o,p,S){{var I=C.ReactDebugCurrentFrame,te=I.getStackAddendum();te!==""&&(p+="%s",S=S.concat([te]));var oe=S.map(function(W){return String(W)});oe.unshift("Warning: "+p),Function.prototype.apply.call(console[o],console,oe)}}var V=!1,X=!1,y=!1,k=!1,m=!1,A;A=Symbol.for("react.module.reference");function N(o){return!!(typeof o=="string"||typeof o=="function"||o===t||o===s||m||o===a||o===f||o===g||k||o===G||V||X||y||typeof o=="object"&&o!==null&&(o.$$typeof===_||o.$$typeof===E||o.$$typeof===i||o.$$typeof===u||o.$$typeof===l||o.$$typeof===A||o.getModuleId!==void 0))}function j(o,p,S){var I=o.displayName;if(I)return I;var te=p.displayName||p.name||"";return te!==""?S+"("+te+")":S}function M(o){return o.displayName||"Context"}function Q(o){if(o==null)return null;if(typeof o.tag=="number"&&O("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 t:return"Fragment";case n:return"Portal";case s:return"Profiler";case a:return"StrictMode";case f:return"Suspense";case g:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case u:var p=o;return M(p)+".Consumer";case i:var S=o;return M(S._context)+".Provider";case l:return j(o,o.render,"ForwardRef");case E:var I=o.displayName||null;return I!==null?I:Q(o.type)||"Memo";case _:{var te=o,oe=te._payload,W=te._init;try{return Q(W(oe))}catch{return null}}}return null}var Z=Object.assign,se=0,q,ie,D,le,be,fe,ye;function F(){}F.__reactDisabledLog=!0;function ae(){{if(se===0){q=console.log,ie=console.info,D=console.warn,le=console.error,be=console.group,fe=console.groupCollapsed,ye=console.groupEnd;var o={configurable:!0,enumerable:!0,value:F,writable:!0};Object.defineProperties(console,{info:o,log:o,warn:o,error:o,group:o,groupCollapsed:o,groupEnd:o})}se++}}function ee(){{if(se--,se===0){var o={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Z({},o,{value:q}),info:Z({},o,{value:ie}),warn:Z({},o,{value:D}),error:Z({},o,{value:le}),group:Z({},o,{value:be}),groupCollapsed:Z({},o,{value:fe}),groupEnd:Z({},o,{value:ye})})}se<0&&O("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var we=C.ReactCurrentDispatcher,H;function ke(o,p,S){{if(H===void 0)try{throw Error()}catch(te){var I=te.stack.trim().match(/\n( *(at )?)/);H=I&&I[1]||""}return`
33
- `+H+o}}var P=!1,ce;{var Oe=typeof WeakMap=="function"?WeakMap:Map;ce=new Oe}function De(o,p){if(!o||P)return"";{var S=ce.get(o);if(S!==void 0)return S}var I;P=!0;var te=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var oe;oe=we.current,we.current=null,ae();try{if(p){var W=function(){throw Error()};if(Object.defineProperty(W.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(W,[])}catch(Se){I=Se}Reflect.construct(o,[],W)}else{try{W.call()}catch(Se){I=Se}o.call(W.prototype)}}else{try{throw Error()}catch(Se){I=Se}o()}}catch(Se){if(Se&&I&&typeof Se.stack=="string"){for(var B=Se.stack.split(`
34
- `),ve=I.stack.split(`
35
- `),ue=B.length-1,de=ve.length-1;ue>=1&&de>=0&&B[ue]!==ve[de];)de--;for(;ue>=1&&de>=0;ue--,de--)if(B[ue]!==ve[de]){if(ue!==1||de!==1)do if(ue--,de--,de<0||B[ue]!==ve[de]){var Te=`
36
- `+B[ue].replace(" at new "," at ");return o.displayName&&Te.includes("<anonymous>")&&(Te=Te.replace("<anonymous>",o.displayName)),typeof o=="function"&&ce.set(o,Te),Te}while(ue>=1&&de>=0);break}}}finally{P=!1,we.current=oe,ee(),Error.prepareStackTrace=te}var He=o?o.displayName||o.name:"",Be=He?ke(He):"";return typeof o=="function"&&ce.set(o,Be),Be}function rr(o,p,S){return De(o,!1)}function Le(o){var p=o.prototype;return!!(p&&p.isReactComponent)}function Ue(o,p,S){if(o==null)return"";if(typeof o=="function")return De(o,Le(o));if(typeof o=="string")return ke(o);switch(o){case f:return ke("Suspense");case g:return ke("SuspenseList")}if(typeof o=="object")switch(o.$$typeof){case l:return rr(o.render);case E:return Ue(o.type,p,S);case _:{var I=o,te=I._payload,oe=I._init;try{return Ue(oe(te),p,S)}catch{}}}return""}var _e=Object.prototype.hasOwnProperty,ze={},qe=C.ReactDebugCurrentFrame;function $e(o){if(o){var p=o._owner,S=Ue(o.type,o._source,p?p.type:null);qe.setExtraStackFrame(S)}else qe.setExtraStackFrame(null)}function d(o,p,S,I,te){{var oe=Function.call.bind(_e);for(var W in o)if(oe(o,W)){var B=void 0;try{if(typeof o[W]!="function"){var ve=Error((I||"React class")+": "+S+" type `"+W+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof o[W]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ve.name="Invariant Violation",ve}B=o[W](p,W,I,S,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ue){B=ue}B&&!(B instanceof Error)&&($e(te),O("%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,W,typeof B),$e(null)),B instanceof Error&&!(B.message in ze)&&(ze[B.message]=!0,$e(te),O("Failed %s type: %s",S,B.message),$e(null))}}}var v=Array.isArray;function b(o){return v(o)}function x(o){{var p=typeof Symbol=="function"&&Symbol.toStringTag,S=p&&o[Symbol.toStringTag]||o.constructor.name||"Object";return S}}function w(o){try{return K(o),!1}catch{return!0}}function K(o){return""+o}function $(o){if(w(o))return O("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",x(o)),K(o)}var J=C.ReactCurrentOwner,z={key:!0,ref:!0,__self:!0,__source:!0},re,ge;function he(o){if(_e.call(o,"ref")){var p=Object.getOwnPropertyDescriptor(o,"ref").get;if(p&&p.isReactWarning)return!1}return o.ref!==void 0}function Ae(o){if(_e.call(o,"key")){var p=Object.getOwnPropertyDescriptor(o,"key").get;if(p&&p.isReactWarning)return!1}return o.key!==void 0}function je(o,p){typeof o.ref=="string"&&J.current}function Ne(o,p){{var S=function(){re||(re=!0,O("%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)",p))};S.isReactWarning=!0,Object.defineProperty(o,"key",{get:S,configurable:!0})}}function me(o,p){{var S=function(){ge||(ge=!0,O("%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)",p))};S.isReactWarning=!0,Object.defineProperty(o,"ref",{get:S,configurable:!0})}}var Re=function(o,p,S,I,te,oe,W){var B={$$typeof:r,type:o,key:p,ref:S,props:W,_owner:oe};return B._store={},Object.defineProperty(B._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(B,"_self",{configurable:!1,enumerable:!1,writable:!1,value:I}),Object.defineProperty(B,"_source",{configurable:!1,enumerable:!1,writable:!1,value:te}),Object.freeze&&(Object.freeze(B.props),Object.freeze(B)),B};function ir(o,p,S,I,te){{var oe,W={},B=null,ve=null;S!==void 0&&($(S),B=""+S),Ae(p)&&($(p.key),B=""+p.key),he(p)&&(ve=p.ref,je(p,te));for(oe in p)_e.call(p,oe)&&!z.hasOwnProperty(oe)&&(W[oe]=p[oe]);if(o&&o.defaultProps){var ue=o.defaultProps;for(oe in ue)W[oe]===void 0&&(W[oe]=ue[oe])}if(B||ve){var de=typeof o=="function"?o.displayName||o.name||"Unknown":o;B&&Ne(W,de),ve&&me(W,de)}return Re(o,B,ve,te,I,J.current,W)}}var cr=C.ReactCurrentOwner,hr=C.ReactDebugCurrentFrame;function Je(o){if(o){var p=o._owner,S=Ue(o.type,o._source,p?p.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 Fr(){{if(cr.current){var o=Q(cr.current.type);if(o)return`
32
+ */var Qt;function Ba(){return Qt||(Qt=1,process.env.NODE_ENV!=="production"&&function(){var e=l,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),d=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),b=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),Y=Symbol.for("react.offscreen"),z=Symbol.iterator,B="@@iterator";function Z(s){if(s===null||typeof s!="object")return null;var g=z&&s[z]||s[B];return typeof g=="function"?g:null}var C=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function T(s){{for(var g=arguments.length,E=new Array(g>1?g-1:0),$=1;$<g;$++)E[$-1]=arguments[$];U("error",s,E)}}function U(s,g,E){{var $=C.ReactDebugCurrentFrame,te=$.getStackAddendum();te!==""&&(g+="%s",E=E.concat([te]));var ae=E.map(function(G){return String(G)});ae.unshift("Warning: "+g),Function.prototype.apply.call(console[s],console,ae)}}var L=!1,Q=!1,y=!1,S=!1,h=!1,O;O=Symbol.for("react.module.reference");function N(s){return!!(typeof s=="string"||typeof s=="function"||s===r||s===o||h||s===a||s===f||s===b||S||s===Y||L||Q||y||typeof s=="object"&&s!==null&&(s.$$typeof===m||s.$$typeof===k||s.$$typeof===i||s.$$typeof===d||s.$$typeof===u||s.$$typeof===O||s.getModuleId!==void 0))}function _(s,g,E){var $=s.displayName;if($)return $;var te=g.displayName||g.name||"";return te!==""?E+"("+te+")":E}function J(s){return s.displayName||"Context"}function H(s){if(s==null)return null;if(typeof s.tag=="number"&&T("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof s=="function")return s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case r:return"Fragment";case n:return"Portal";case o:return"Profiler";case a:return"StrictMode";case f:return"Suspense";case b:return"SuspenseList"}if(typeof s=="object")switch(s.$$typeof){case d:var g=s;return J(g)+".Consumer";case i:var E=s;return J(E._context)+".Provider";case u:return _(s,s.render,"ForwardRef");case k:var $=s.displayName||null;return $!==null?$:H(s.type)||"Memo";case m:{var te=s,ae=te._payload,G=te._init;try{return H(G(ae))}catch{return null}}}return null}var ce=Object.assign,D=0,q,le,A,we,ve,pe,ge;function se(){}se.__reactDisabledLog=!0;function oe(){{if(D===0){q=console.log,le=console.info,A=console.warn,we=console.error,ve=console.group,pe=console.groupCollapsed,ge=console.groupEnd;var s={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:s,log:s,warn:s,error:s,group:s,groupCollapsed:s,groupEnd:s})}D++}}function re(){{if(D--,D===0){var s={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:ce({},s,{value:q}),info:ce({},s,{value:le}),warn:ce({},s,{value:A}),error:ce({},s,{value:we}),group:ce({},s,{value:ve}),groupCollapsed:ce({},s,{value:pe}),groupEnd:ce({},s,{value:ge})})}D<0&&T("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var xe=C.ReactCurrentDispatcher,ee;function Ce(s,g,E){{if(ee===void 0)try{throw Error()}catch(te){var $=te.stack.trim().match(/\n( *(at )?)/);ee=$&&$[1]||""}return`
33
+ `+ee+s}}var F=!1,ie;{var Oe=typeof WeakMap=="function"?WeakMap:Map;ie=new Oe}function Ae(s,g){if(!s||F)return"";{var E=ie.get(s);if(E!==void 0)return E}var $;F=!0;var te=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var ae;ae=xe.current,xe.current=null,oe();try{if(g){var G=function(){throw Error()};if(Object.defineProperty(G.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(G,[])}catch(ke){$=ke}Reflect.construct(s,[],G)}else{try{G.call()}catch(ke){$=ke}s.call(G.prototype)}}else{try{throw Error()}catch(ke){$=ke}s()}}catch(ke){if(ke&&$&&typeof ke.stack=="string"){for(var K=ke.stack.split(`
34
+ `),he=$.stack.split(`
35
+ `),ue=K.length-1,fe=he.length-1;ue>=1&&fe>=0&&K[ue]!==he[fe];)fe--;for(;ue>=1&&fe>=0;ue--,fe--)if(K[ue]!==he[fe]){if(ue!==1||fe!==1)do if(ue--,fe--,fe<0||K[ue]!==he[fe]){var Te=`
36
+ `+K[ue].replace(" at new "," at ");return s.displayName&&Te.includes("<anonymous>")&&(Te=Te.replace("<anonymous>",s.displayName)),typeof s=="function"&&ie.set(s,Te),Te}while(ue>=1&&fe>=0);break}}}finally{F=!1,xe.current=ae,re(),Error.prepareStackTrace=te}var Ge=s?s.displayName||s.name:"",Le=Ge?Ce(Ge):"";return typeof s=="function"&&ie.set(s,Le),Le}function ze(s,g,E){return Ae(s,!1)}function Ie(s){var g=s.prototype;return!!(g&&g.isReactComponent)}function P(s,g,E){if(s==null)return"";if(typeof s=="function")return Ae(s,Ie(s));if(typeof s=="string")return Ce(s);switch(s){case f:return Ce("Suspense");case b:return Ce("SuspenseList")}if(typeof s=="object")switch(s.$$typeof){case u:return ze(s.render);case k:return P(s.type,g,E);case m:{var $=s,te=$._payload,ae=$._init;try{return P(ae(te),g,E)}catch{}}}return""}var j=Object.prototype.hasOwnProperty,I={},X=C.ReactDebugCurrentFrame;function W(s){if(s){var g=s._owner,E=P(s.type,s._source,g?g.type:null);X.setExtraStackFrame(E)}else X.setExtraStackFrame(null)}function c(s,g,E,$,te){{var ae=Function.call.bind(j);for(var G in s)if(ae(s,G)){var K=void 0;try{if(typeof s[G]!="function"){var he=Error(($||"React class")+": "+E+" type `"+G+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[G]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw he.name="Invariant Violation",he}K=s[G](g,G,$,E,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ue){K=ue}K&&!(K instanceof Error)&&(W(te),T("%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).",$||"React class",E,G,typeof K),W(null)),K instanceof Error&&!(K.message in I)&&(I[K.message]=!0,W(te),T("Failed %s type: %s",E,K.message),W(null))}}}var w=Array.isArray;function p(s){return w(s)}function v(s){{var g=typeof Symbol=="function"&&Symbol.toStringTag,E=g&&s[Symbol.toStringTag]||s.constructor.name||"Object";return E}}function V(s){try{return Se(s),!1}catch{return!0}}function Se(s){return""+s}function ne(s){if(V(s))return T("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",v(s)),Se(s)}var de=C.ReactCurrentOwner,Re={key:!0,ref:!0,__self:!0,__source:!0},_e,Ke;function He(s){if(j.call(s,"ref")){var g=Object.getOwnPropertyDescriptor(s,"ref").get;if(g&&g.isReactWarning)return!1}return s.ref!==void 0}function dt(s){if(j.call(s,"key")){var g=Object.getOwnPropertyDescriptor(s,"key").get;if(g&&g.isReactWarning)return!1}return s.key!==void 0}function ft(s,g){typeof s.ref=="string"&&de.current}function Xe(s,g){{var E=function(){_e||(_e=!0,T("%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)",g))};E.isReactWarning=!0,Object.defineProperty(s,"key",{get:E,configurable:!0})}}function mt(s,g){{var E=function(){Ke||(Ke=!0,T("%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)",g))};E.isReactWarning=!0,Object.defineProperty(s,"ref",{get:E,configurable:!0})}}var Vr=function(s,g,E,$,te,ae,G){var K={$$typeof:t,type:s,key:g,ref:E,props:G,_owner:ae};return K._store={},Object.defineProperty(K._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(K,"_self",{configurable:!1,enumerable:!1,writable:!1,value:$}),Object.defineProperty(K,"_source",{configurable:!1,enumerable:!1,writable:!1,value:te}),Object.freeze&&(Object.freeze(K.props),Object.freeze(K)),K};function Ur(s,g,E,$,te){{var ae,G={},K=null,he=null;E!==void 0&&(ne(E),K=""+E),dt(g)&&(ne(g.key),K=""+g.key),He(g)&&(he=g.ref,ft(g,te));for(ae in g)j.call(g,ae)&&!Re.hasOwnProperty(ae)&&(G[ae]=g[ae]);if(s&&s.defaultProps){var ue=s.defaultProps;for(ae in ue)G[ae]===void 0&&(G[ae]=ue[ae])}if(K||he){var fe=typeof s=="function"?s.displayName||s.name||"Unknown":s;K&&Xe(G,fe),he&&mt(G,fe)}return Vr(s,K,he,te,$,de.current,G)}}var pt=C.ReactCurrentOwner,Ot=C.ReactDebugCurrentFrame;function Be(s){if(s){var g=s._owner,E=P(s.type,s._source,g?g.type:null);Ot.setExtraStackFrame(E)}else Ot.setExtraStackFrame(null)}var gt;gt=!1;function ht(s){return typeof s=="object"&&s!==null&&s.$$typeof===t}function At(){{if(pt.current){var s=H(pt.current.type);if(s)return`
37
37
 
38
- Check the render method of \``+o+"`."}return""}}function Ut(o){return""}var _r={};function qt(o){{var p=Fr();if(!p){var S=typeof o=="string"?o:o.displayName||o.name;S&&(p=`
38
+ Check the render method of \``+s+"`."}return""}}function qr(s){return""}var Dt={};function Mr(s){{var g=At();if(!g){var E=typeof s=="string"?s:s.displayName||s.name;E&&(g=`
39
39
 
40
- Check the top-level render call using <`+S+">.")}return p}}function Nr(o,p){{if(!o._store||o._store.validated||o.key!=null)return;o._store.validated=!0;var S=qt(p);if(_r[S])return;_r[S]=!0;var I="";o&&o._owner&&o._owner!==cr.current&&(I=" It was passed a child from "+Q(o._owner.type)+"."),Je(o),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),Je(null)}}function Pr(o,p){{if(typeof o!="object")return;if(b(o))for(var S=0;S<o.length;S++){var I=o[S];yr(I)&&Nr(I,p)}else if(yr(o))o._store&&(o._store.validated=!0);else if(o){var te=ne(o);if(typeof te=="function"&&te!==o.entries)for(var oe=te.call(o),W;!(W=oe.next()).done;)yr(W.value)&&Nr(W.value,p)}}}function Mt(o){{var p=o.type;if(p==null||typeof p=="string")return;var S;if(typeof p=="function")S=p.propTypes;else if(typeof p=="object"&&(p.$$typeof===l||p.$$typeof===E))S=p.propTypes;else return;if(S){var I=Q(p);d(S,o.props,"prop",I,o)}else if(p.PropTypes!==void 0&&!br){br=!0;var te=Q(p);O("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",te||"Unknown")}typeof p.getDefaultProps=="function"&&!p.getDefaultProps.isReactClassApproved&&O("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Kt(o){{for(var p=Object.keys(o.props),S=0;S<p.length;S++){var I=p[S];if(I!=="children"&&I!=="key"){Je(o),O("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",I),Je(null);break}}o.ref!==null&&(Je(o),O("Invalid attribute `ref` supplied to `React.Fragment`."),Je(null))}}var $r={};function jr(o,p,S,I,te,oe){{var W=N(o);if(!W){var B="";(o===void 0||typeof o=="object"&&o!==null&&Object.keys(o).length===0)&&(B+=" 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 ve=Ut();ve?B+=ve:B+=Fr();var ue;o===null?ue="null":b(o)?ue="array":o!==void 0&&o.$$typeof===r?(ue="<"+(Q(o.type)||"Unknown")+" />",B=" Did you accidentally export a JSX literal instead of a component?"):ue=typeof o,O("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ue,B)}var de=ir(o,p,S,te,oe);if(de==null)return de;if(W){var Te=p.children;if(Te!==void 0)if(I)if(b(Te)){for(var He=0;He<Te.length;He++)Pr(Te[He],o);Object.freeze&&Object.freeze(Te)}else O("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 Pr(Te,o)}if(_e.call(p,"key")){var Be=Q(o),Se=Object.keys(p).filter(function(Wt){return Wt!=="key"}),wr=Se.length>0?"{key: someKey, "+Se.join(": ..., ")+": ...}":"{key: someKey}";if(!$r[Be+wr]){var Qt=Se.length>0?"{"+Se.join(": ..., ")+": ...}":"{}";O(`A props object containing a "key" prop is being spread into JSX:
40
+ Check the top-level render call using <`+E+">.")}return g}}function Ft(s,g){{if(!s._store||s._store.validated||s.key!=null)return;s._store.validated=!0;var E=Mr(g);if(Dt[E])return;Dt[E]=!0;var $="";s&&s._owner&&s._owner!==pt.current&&($=" It was passed a child from "+H(s._owner.type)+"."),Be(s),T('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',E,$),Be(null)}}function _t(s,g){{if(typeof s!="object")return;if(p(s))for(var E=0;E<s.length;E++){var $=s[E];ht($)&&Ft($,g)}else if(ht(s))s._store&&(s._store.validated=!0);else if(s){var te=Z(s);if(typeof te=="function"&&te!==s.entries)for(var ae=te.call(s),G;!(G=ae.next()).done;)ht(G.value)&&Ft(G.value,g)}}}function zr(s){{var g=s.type;if(g==null||typeof g=="string")return;var E;if(typeof g=="function")E=g.propTypes;else if(typeof g=="object"&&(g.$$typeof===u||g.$$typeof===k))E=g.propTypes;else return;if(E){var $=H(g);c(E,s.props,"prop",$,s)}else if(g.PropTypes!==void 0&&!gt){gt=!0;var te=H(g);T("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",te||"Unknown")}typeof g.getDefaultProps=="function"&&!g.getDefaultProps.isReactClassApproved&&T("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Kr(s){{for(var g=Object.keys(s.props),E=0;E<g.length;E++){var $=g[E];if($!=="children"&&$!=="key"){Be(s),T("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",$),Be(null);break}}s.ref!==null&&(Be(s),T("Invalid attribute `ref` supplied to `React.Fragment`."),Be(null))}}var Nt={};function Pt(s,g,E,$,te,ae){{var G=N(s);if(!G){var K="";(s===void 0||typeof s=="object"&&s!==null&&Object.keys(s).length===0)&&(K+=" 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 he=qr();he?K+=he:K+=At();var ue;s===null?ue="null":p(s)?ue="array":s!==void 0&&s.$$typeof===t?(ue="<"+(H(s.type)||"Unknown")+" />",K=" Did you accidentally export a JSX literal instead of a component?"):ue=typeof s,T("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ue,K)}var fe=Ur(s,g,E,te,ae);if(fe==null)return fe;if(G){var Te=g.children;if(Te!==void 0)if($)if(p(Te)){for(var Ge=0;Ge<Te.length;Ge++)_t(Te[Ge],s);Object.freeze&&Object.freeze(Te)}else T("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 _t(Te,s)}if(j.call(g,"key")){var Le=H(s),ke=Object.keys(g).filter(function(Jr){return Jr!=="key"}),bt=ke.length>0?"{key: someKey, "+ke.join(": ..., ")+": ...}":"{key: someKey}";if(!Nt[Le+bt]){var Qr=ke.length>0?"{"+ke.join(": ..., ")+": ...}":"{}";T(`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} />`,wr,Be,Qt,Be),$r[Be+wr]=!0}}return o===t?Kt(de):Mt(de),de}}function zt(o,p,S){return jr(o,p,S,!0)}function Bt(o,p,S){return jr(o,p,S,!1)}var Gt=Bt,Yt=zt;ar.Fragment=t,ar.jsx=Gt,ar.jsxs=Yt}()),ar}process.env.NODE_ENV==="production"?Tr.exports=qa():Tr.exports=Ma();var xe=Tr.exports;const Dt=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...r}));Dt.displayName="Kanban";const At=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...r}));At.displayName="KanbanColumn";const Ft=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("mb-3 flex items-center justify-between",e),...r}));Ft.displayName="KanbanColumnHeader";const _t=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("h3",{ref:n,className:Pe("text-sm font-semibold text-gray-700",e),...r}));_t.displayName="KanbanColumnTitle";const Nt=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("flex-1 space-y-2 overflow-y-auto",e),...r}));Nt.displayName="KanbanColumnContent";const Pt=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...r}));Pt.displayName="KanbanCard";const $t=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("font-medium text-gray-900 mb-1",e),...r}));$t.displayName="KanbanCardTitle";const jt=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("text-sm text-gray-600",e),...r}));jt.displayName="KanbanCardDescription";const It=Ve.forwardRef(({className:e,...r},n)=>xe.jsx("div",{ref:n,className:Pe("mt-3 pt-3 border-t border-gray-200",e),...r}));It.displayName="KanbanColumnFooter";const Ka={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 Qe={...Ka};function za(e){Qe={...Qe,...e,providers:{...Qe.providers,...e.providers},retry:{...Qe.retry,...e.retry}}}function gr(){return{...Qe}}function Ar(){return Qe.baseUrl||pr()||(typeof window<"u"?window.location.origin:"")}function Vt(e){return Qe.providers[e]}class mr extends Error{constructor(n,t){super(n);Ge(this,"statusCode");this.name="AuthenticationError",this.statusCode=t}}async function Ba(){const e=gr(),r=Ar(),n=sr(),t=await fetch(`${r}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!t.ok)throw t.status===401||t.status===403?new mr("Not authenticated",t.status):new mr(`Session check failed: ${t.statusText}`,t.status);return await t.json()}function Hr(e,r){return new Promise(()=>{const n=gr(),t=Ar();if(!t)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const a=e||n.defaultProvider,s=Vt(a);if(!s){const u=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${a}" is not configured. Available providers: ${u}`)}if(!s.loginPath)throw new Error(`Login path not configured for provider "${a}". Configure it with: configureAuth({ providers: { ${a}: { loginPath: '/api/auth/...' } } })`);let i;try{i=new URL(`${t}${s.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${t}", Login path: "${s.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(r!=null&&r.callbackUrl||n.callbackUrl)&&i.searchParams.set("callbackUrl",(r==null?void 0:r.callbackUrl)||n.callbackUrl||window.location.href),r!=null&&r.params&&Object.entries(r.params).forEach(([u,l])=>{i.searchParams.set(u,l)}),window.location.href=i.toString()})}async function Ga(e){const r=gr(),n=Ar(),t=sr(),a=Vt(r.defaultProvider),s=a==null?void 0:a.logoutPath;if(s&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${s}`,{method:"POST",headers:t,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 Lt=c.createContext(null),Xr=["auth","session"];function Ya({children:e,config:r,onAuthChange:n,onError:t,loadingComponent:a,unauthenticatedComponent:s,skipInitialCheck:i=!1}){const u=c.useRef(!1);r&&!u.current&&(za(r),u.current=!0);const l=Ce.useQueryClient(),f=gr(),{data:g,isLoading:E,error:_,refetch:G,isFetching:Y}=Ce.useQuery({queryKey:Xr,queryFn:Ba,enabled:!i,retry:(q,ie)=>ie instanceof mr&&(ie.statusCode===401||ie.statusCode===403)?!1:q<f.retry.count,retryDelay:f.retry.delay,staleTime:f.staleTime,gcTime:f.staleTime*2,refetchOnWindowFocus:f.refetchOnWindowFocus??!0,refetchOnReconnect:f.refetchOnReconnect??!0,refetchInterval:f.sessionCheckInterval||!1}),[h,ne]=c.useState(null),C=c.useMemo(()=>E||Y?"loading":g!=null&&g.userDetails?"authenticated":"unauthenticated",[E,Y,g]),O=(g==null?void 0:g.userDetails)||null,U=(g==null?void 0:g.staticBaseUrl)||null,V=(g==null?void 0:g.buildId)||null,X=C==="authenticated",y=c.useRef(n);y.current=n;const k=c.useRef(t);k.current=t,c.useEffect(()=>{var q;E||(q=y.current)==null||q.call(y,C,O)},[C,O,E]),c.useEffect(()=>{var q;_&&(ne(_),(q=k.current)==null||q.call(k,_))},[_]),c.useEffect(()=>{C==="unauthenticated"&&f.autoRedirect&&!E&&Hr()},[C,E,f.autoRedirect]);const m=c.useCallback((q,ie)=>{Hr(q,ie)},[]),A=c.useCallback(async q=>{l.removeQueries({queryKey:Xr}),await Ga(q)},[l]),N=c.useCallback(async()=>{if(Y)return g||null;try{return(await G()).data||null}catch(q){return ne(q),null}},[G,Y,g]),j=c.useCallback(q=>(O==null?void 0:O.Role)===q,[O]),M=c.useCallback(q=>q.includes((O==null?void 0:O.Role)||""),[O]),Q=c.useCallback(()=>{ne(null)},[]),Z=c.useCallback(()=>{G()},[G]),se=c.useMemo(()=>({user:O,staticBaseUrl:U,buildId:V,status:C,isAuthenticated:X,isLoading:E,login:m,logout:A,refreshSession:N,hasRole:j,hasAnyRole:M,error:h,clearError:Q,_forceCheck:Z}),[O,U,V,C,X,E,m,A,N,j,M,h,Q,Z]);return C==="loading"&&a?xe.jsx(xe.Fragment,{children:a}):C==="unauthenticated"&&!f.autoRedirect&&s?xe.jsx(xe.Fragment,{children:s}):xe.jsx(Lt.Provider,{value:se,children:e})}function Qa(){const e=c.useContext(Lt);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function Wa(){const e=Qa();return c.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=Ya;exports.AuthenticationError=mr;exports.Kanban=Dt;exports.KanbanCard=Pt;exports.KanbanCardDescription=jt;exports.KanbanCardTitle=$t;exports.KanbanColumn=At;exports.KanbanColumnContent=Nt;exports.KanbanColumnFooter=It;exports.KanbanColumnHeader=Ft;exports.KanbanColumnTitle=_t;exports.api=Ee;exports.cn=Pe;exports.decodeDate=on;exports.decodeDatetime=nn;exports.encodeDate=an;exports.encodeDatetime=tn;exports.formatArray=ot;exports.formatBoolean=st;exports.formatCurrency=et;exports.formatDate=rt;exports.formatDateTime=tt;exports.formatFieldValue=un;exports.formatJSON=at;exports.formatNumber=nt;exports.formatTextArea=it;exports.getApiBaseUrl=pr;exports.getBdoSchema=Zr;exports.getDefaultHeaders=sr;exports.isCondition=Ct;exports.isConditionGroup=Fe;exports.isFilterCondition=ra;exports.isFilterLogical=ea;exports.listMetadata=sn;exports.parseCurrency=cn;exports.setApiBaseUrl=en;exports.setDefaultHeaders=rn;exports.truncateString=ln;exports.useAuth=Wa;exports.useFilter=Dr;exports.useForm=Va;exports.useKanban=Ua;exports.useTable=aa;
45
+ <%s key={someKey} {...props} />`,bt,Le,Qr,Le),Nt[Le+bt]=!0}}return s===r?Kr(fe):zr(fe),fe}}function Br(s,g,E){return Pt(s,g,E,!0)}function Gr(s,g,E){return Pt(s,g,E,!1)}var Yr=Gr,Wr=Br;tt.Fragment=r,tt.jsx=Yr,tt.jsxs=Wr}()),tt}process.env.NODE_ENV==="production"?Et.exports=Ka():Et.exports=Ba();var Ee=Et.exports;const Or=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...t}));Or.displayName="Kanban";const Ar=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...t}));Ar.displayName="KanbanColumn";const Dr=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("mb-3 flex items-center justify-between",e),...t}));Dr.displayName="KanbanColumnHeader";const Fr=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("h3",{ref:n,className:Fe("text-sm font-semibold text-gray-700",e),...t}));Fr.displayName="KanbanColumnTitle";const _r=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("flex-1 space-y-2 overflow-y-auto",e),...t}));_r.displayName="KanbanColumnContent";const Nr=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...t}));Nr.displayName="KanbanCard";const Pr=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("font-medium text-gray-900 mb-1",e),...t}));Pr.displayName="KanbanCardTitle";const $r=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("text-sm text-gray-600",e),...t}));$r.displayName="KanbanCardDescription";const jr=Pe.forwardRef(({className:e,...t},n)=>Ee.jsx("div",{ref:n,className:Fe("mt-3 pt-3 border-t border-gray-200",e),...t}));jr.displayName="KanbanColumnFooter";const Ga={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 qe={...Ga};function Ya(e){qe={...qe,...e,providers:{...qe.providers,...e.providers},retry:{...qe.retry,...e.retry}}}function ut(){return{...qe}}function Tt(){return qe.baseUrl||lt()||(typeof window<"u"?window.location.origin:"")}function Ir(e){return qe.providers[e]}class ct extends Error{constructor(n,r){super(n);Ve(this,"statusCode");this.name="AuthenticationError",this.statusCode=r}}async function Wa(){const e=ut(),t=Tt(),n=nt(),r=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!r.ok)throw r.status===401||r.status===403?new ct("Not authenticated",r.status):new ct(`Session check failed: ${r.statusText}`,r.status);return await r.json()}function Jt(e,t){return new Promise(()=>{const n=ut(),r=Tt();if(!r)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const a=e||n.defaultProvider,o=Ir(a);if(!o){const d=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${a}" is not configured. Available providers: ${d}`)}if(!o.loginPath)throw new Error(`Login path not configured for provider "${a}". Configure it with: configureAuth({ providers: { ${a}: { loginPath: '/api/auth/...' } } })`);let i;try{i=new URL(`${r}${o.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${r}", Login path: "${o.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(t!=null&&t.callbackUrl||n.callbackUrl)&&i.searchParams.set("callbackUrl",(t==null?void 0:t.callbackUrl)||n.callbackUrl||window.location.href),t!=null&&t.params&&Object.entries(t.params).forEach(([d,u])=>{i.searchParams.set(d,u)}),window.location.href=i.toString()})}async function Qa(e){const t=ut(),n=Tt(),r=nt(),a=Ir(t.defaultProvider),o=a==null?void 0:a.logoutPath;if(o&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${o}`,{method:"POST",headers:r,credentials:"include"})}catch(i){console.warn("Logout endpoint call failed:",i)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:t.loginRedirectUrl&&(window.location.href=t.loginRedirectUrl)}const Lr=l.createContext(null),Ht=["auth","session"];function Ja({children:e,config:t,onAuthChange:n,onError:r,loadingComponent:a,unauthenticatedComponent:o,skipInitialCheck:i=!1}){const d=l.useRef(!1);t&&!d.current&&(Ya(t),d.current=!0);const u=be.useQueryClient(),f=ut(),{data:b,isLoading:k,error:m,refetch:Y,isFetching:z}=be.useQuery({queryKey:Ht,queryFn:Wa,enabled:!i,retry:(q,le)=>le instanceof ct&&(le.statusCode===401||le.statusCode===403)?!1:q<f.retry.count,retryDelay:f.retry.delay,staleTime:f.staleTime,gcTime:f.staleTime*2,refetchOnWindowFocus:f.refetchOnWindowFocus??!0,refetchOnReconnect:f.refetchOnReconnect??!0,refetchInterval:f.sessionCheckInterval||!1}),[B,Z]=l.useState(null),C=l.useMemo(()=>k||z?"loading":b!=null&&b.userDetails?"authenticated":"unauthenticated",[k,z,b]),T=(b==null?void 0:b.userDetails)||null,U=(b==null?void 0:b.staticBaseUrl)||null,L=(b==null?void 0:b.buildId)||null,Q=C==="authenticated",y=l.useRef(n);y.current=n;const S=l.useRef(r);S.current=r,l.useEffect(()=>{var q;k||(q=y.current)==null||q.call(y,C,T)},[C,T,k]),l.useEffect(()=>{var q;m&&(Z(m),(q=S.current)==null||q.call(S,m))},[m]),l.useEffect(()=>{C==="unauthenticated"&&f.autoRedirect&&!k&&Jt()},[C,k,f.autoRedirect]);const h=l.useCallback((q,le)=>{Jt(q,le)},[]),O=l.useCallback(async q=>{u.removeQueries({queryKey:Ht}),await Qa(q)},[u]),N=l.useCallback(async()=>{if(z)return b||null;try{return(await Y()).data||null}catch(q){return Z(q),null}},[Y,z,b]),_=l.useCallback(q=>(T==null?void 0:T.Role)===q,[T]),J=l.useCallback(q=>q.includes((T==null?void 0:T.Role)||""),[T]),H=l.useCallback(()=>{Z(null)},[]),ce=l.useCallback(()=>{Y()},[Y]),D=l.useMemo(()=>({user:T,staticBaseUrl:U,buildId:L,status:C,isAuthenticated:Q,isLoading:k,login:h,logout:O,refreshSession:N,hasRole:_,hasAnyRole:J,error:B,clearError:H,_forceCheck:ce}),[T,U,L,C,Q,k,h,O,N,_,J,B,H,ce]);return C==="loading"&&a?Ee.jsx(Ee.Fragment,{children:a}):C==="unauthenticated"&&!f.autoRedirect&&o?Ee.jsx(Ee.Fragment,{children:o}):Ee.jsx(Lr.Provider,{value:D,children:e})}function Ha(){const e=l.useContext(Lr);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function Xa(){const e=Ha();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=Ja;exports.AuthenticationError=ct;exports.Kanban=Or;exports.KanbanCard=Nr;exports.KanbanCardDescription=$r;exports.KanbanCardTitle=Pr;exports.KanbanColumn=Ar;exports.KanbanColumnContent=_r;exports.KanbanColumnFooter=jr;exports.KanbanColumnHeader=Dr;exports.KanbanColumnTitle=Fr;exports.api=ye;exports.clearFormCache=ja;exports.cn=Fe;exports.decodeDate=on;exports.decodeDatetime=an;exports.encodeDate=sn;exports.encodeDatetime=nn;exports.formatArray=ar;exports.formatBoolean=sr;exports.formatCurrency=Zt;exports.formatDate=er;exports.formatDateTime=tr;exports.formatFieldValue=dn;exports.formatJSON=nr;exports.formatNumber=rr;exports.formatTextArea=or;exports.getApiBaseUrl=lt;exports.getBdoSchema=Xt;exports.getDefaultHeaders=nt;exports.isCondition=vr;exports.isConditionGroup=De;exports.isFilterCondition=ra;exports.isFilterLogical=ta;exports.isNetworkError=_a;exports.isValidationError=Na;exports.listMetadata=cn;exports.parseApiError=Fa;exports.parseCurrency=ln;exports.setApiBaseUrl=tn;exports.setDefaultHeaders=rn;exports.truncateString=un;exports.useAuth=Xa;exports.useFilter=Rt;exports.useForm=qa;exports.useKanban=za;exports.useTable=sa;