@ram_28/kf-ai-sdk 1.0.11 → 1.0.12

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 (193) hide show
  1. package/README.md +55 -48
  2. package/dist/api/client.d.ts +14 -14
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/datetime.d.ts +5 -5
  5. package/dist/api/datetime.d.ts.map +1 -1
  6. package/dist/api/index.d.ts +1 -1
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/metadata.d.ts +2 -2
  9. package/dist/api/metadata.d.ts.map +1 -1
  10. package/dist/api.cjs +1 -0
  11. package/dist/api.d.ts +4 -0
  12. package/dist/api.d.ts.map +1 -0
  13. package/dist/api.mjs +27 -0
  14. package/dist/api.types.cjs +1 -0
  15. package/dist/api.types.d.ts +4 -0
  16. package/dist/api.types.d.ts.map +1 -0
  17. package/dist/api.types.mjs +1 -0
  18. package/dist/auth/AuthProvider.d.ts +3 -3
  19. package/dist/auth/AuthProvider.d.ts.map +1 -1
  20. package/dist/auth/authClient.d.ts +4 -4
  21. package/dist/auth/authClient.d.ts.map +1 -1
  22. package/dist/auth/authConfig.d.ts +5 -5
  23. package/dist/auth/authConfig.d.ts.map +1 -1
  24. package/dist/auth/index.d.ts +1 -1
  25. package/dist/auth/index.d.ts.map +1 -1
  26. package/dist/auth/types.d.ts +21 -21
  27. package/dist/auth/types.d.ts.map +1 -1
  28. package/dist/auth/useAuth.d.ts +2 -2
  29. package/dist/auth/useAuth.d.ts.map +1 -1
  30. package/dist/auth.cjs +1 -0
  31. package/dist/auth.d.ts +5 -0
  32. package/dist/auth.d.ts.map +1 -0
  33. package/dist/auth.mjs +280 -0
  34. package/dist/auth.types.cjs +1 -0
  35. package/dist/auth.types.d.ts +2 -0
  36. package/dist/auth.types.d.ts.map +1 -0
  37. package/dist/auth.types.mjs +1 -0
  38. package/dist/base-types.d.ts +2 -0
  39. package/dist/base-types.d.ts.map +1 -0
  40. package/dist/client-C15j4O5B.cjs +1 -0
  41. package/dist/client-CfvLiGfP.js +233 -0
  42. package/dist/cn-Dr87sK3i.js +2775 -0
  43. package/dist/cn-mXUIg4vp.cjs +1 -0
  44. package/dist/components/hooks/index.d.ts +3 -3
  45. package/dist/components/hooks/index.d.ts.map +1 -1
  46. package/dist/components/hooks/useFilter/index.d.ts +2 -2
  47. package/dist/components/hooks/useFilter/index.d.ts.map +1 -1
  48. package/dist/components/hooks/useFilter/types.d.ts +19 -31
  49. package/dist/components/hooks/useFilter/types.d.ts.map +1 -1
  50. package/dist/components/hooks/useFilter/useFilter.d.ts +2 -2
  51. package/dist/components/hooks/useFilter/useFilter.d.ts.map +1 -1
  52. package/dist/components/hooks/useForm/apiClient.d.ts +6 -6
  53. package/dist/components/hooks/useForm/apiClient.d.ts.map +1 -1
  54. package/dist/components/hooks/useForm/expressionValidator.utils.d.ts +7 -7
  55. package/dist/components/hooks/useForm/expressionValidator.utils.d.ts.map +1 -1
  56. package/dist/components/hooks/useForm/index.d.ts +5 -5
  57. package/dist/components/hooks/useForm/index.d.ts.map +1 -1
  58. package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts +10 -10
  59. package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts.map +1 -1
  60. package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts +7 -12
  61. package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts.map +1 -1
  62. package/dist/components/hooks/useForm/schemaParser.utils.d.ts +7 -7
  63. package/dist/components/hooks/useForm/schemaParser.utils.d.ts.map +1 -1
  64. package/dist/components/hooks/useForm/types.d.ts +67 -76
  65. package/dist/components/hooks/useForm/types.d.ts.map +1 -1
  66. package/dist/components/hooks/useForm/useForm.d.ts +2 -2
  67. package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
  68. package/dist/components/hooks/useKanban/apiClient.d.ts +16 -16
  69. package/dist/components/hooks/useKanban/apiClient.d.ts.map +1 -1
  70. package/dist/components/hooks/useKanban/context.d.ts +3 -3
  71. package/dist/components/hooks/useKanban/context.d.ts.map +1 -1
  72. package/dist/components/hooks/useKanban/dragDropManager.d.ts +7 -7
  73. package/dist/components/hooks/useKanban/dragDropManager.d.ts.map +1 -1
  74. package/dist/components/hooks/useKanban/index.d.ts +1 -1
  75. package/dist/components/hooks/useKanban/index.d.ts.map +1 -1
  76. package/dist/components/hooks/useKanban/types.d.ts +65 -67
  77. package/dist/components/hooks/useKanban/types.d.ts.map +1 -1
  78. package/dist/components/hooks/useKanban/useKanban.d.ts +2 -2
  79. package/dist/components/hooks/useKanban/useKanban.d.ts.map +1 -1
  80. package/dist/components/hooks/useTable/index.d.ts +1 -1
  81. package/dist/components/hooks/useTable/index.d.ts.map +1 -1
  82. package/dist/components/hooks/useTable/types.d.ts +10 -10
  83. package/dist/components/hooks/useTable/types.d.ts.map +1 -1
  84. package/dist/components/hooks/useTable/useTable.d.ts +2 -2
  85. package/dist/components/hooks/useTable/useTable.d.ts.map +1 -1
  86. package/dist/filter.cjs +1 -0
  87. package/dist/filter.d.ts +3 -0
  88. package/dist/filter.d.ts.map +1 -0
  89. package/dist/filter.mjs +6 -0
  90. package/dist/filter.types.cjs +1 -0
  91. package/dist/filter.types.d.ts +2 -0
  92. package/dist/filter.types.d.ts.map +1 -0
  93. package/dist/filter.types.mjs +1 -0
  94. package/dist/form.cjs +1 -0
  95. package/dist/form.d.ts +3 -0
  96. package/dist/form.d.ts.map +1 -0
  97. package/dist/form.mjs +1346 -0
  98. package/dist/form.types.cjs +1 -0
  99. package/dist/form.types.d.ts +2 -0
  100. package/dist/form.types.d.ts.map +1 -0
  101. package/dist/form.types.mjs +1 -0
  102. package/dist/jsx-runtime-BYECrxsp.cjs +30 -0
  103. package/dist/jsx-runtime-DGlMoOmv.js +630 -0
  104. package/dist/kanban.cjs +13 -0
  105. package/dist/kanban.d.ts +5 -0
  106. package/dist/kanban.d.ts.map +1 -0
  107. package/dist/kanban.mjs +694 -0
  108. package/dist/kanban.types.cjs +1 -0
  109. package/dist/kanban.types.d.ts +2 -0
  110. package/dist/kanban.types.d.ts.map +1 -0
  111. package/dist/kanban.types.mjs +1 -0
  112. package/dist/kanban.ui.cjs +1 -0
  113. package/dist/kanban.ui.d.ts +2 -0
  114. package/dist/kanban.ui.d.ts.map +1 -0
  115. package/dist/kanban.ui.mjs +104 -0
  116. package/dist/metadata-2FLBsFcf.cjs +1 -0
  117. package/dist/metadata-DBcoDth-.js +43 -0
  118. package/dist/table.cjs +1 -0
  119. package/dist/table.d.ts +2 -0
  120. package/dist/table.d.ts.map +1 -0
  121. package/dist/table.mjs +148 -0
  122. package/dist/table.types.cjs +1 -0
  123. package/dist/table.types.d.ts +2 -0
  124. package/dist/table.types.d.ts.map +1 -0
  125. package/dist/table.types.mjs +1 -0
  126. package/dist/types/base-fields.d.ts +45 -45
  127. package/dist/types/base-fields.d.ts.map +1 -1
  128. package/dist/types/common.d.ts +45 -61
  129. package/dist/types/common.d.ts.map +1 -1
  130. package/dist/types.cjs +1 -0
  131. package/dist/types.mjs +1 -0
  132. package/dist/useFilter-CXFqEHyI.js +129 -0
  133. package/dist/useFilter-D-bCDo6Z.cjs +1 -0
  134. package/dist/utils/formatting.d.ts +4 -4
  135. package/dist/utils/formatting.d.ts.map +1 -1
  136. package/dist/utils.cjs +4 -0
  137. package/dist/utils.d.ts +3 -0
  138. package/dist/utils.d.ts.map +1 -0
  139. package/dist/utils.mjs +105 -0
  140. package/package.json +147 -9
  141. package/sdk/api/client.ts +51 -51
  142. package/sdk/api/datetime.ts +5 -5
  143. package/sdk/api/index.ts +28 -33
  144. package/sdk/api/metadata.ts +4 -4
  145. package/sdk/api.ts +24 -0
  146. package/sdk/api.types.ts +58 -0
  147. package/sdk/auth/AuthProvider.tsx +18 -18
  148. package/sdk/auth/authClient.ts +9 -9
  149. package/sdk/auth/authConfig.ts +9 -9
  150. package/sdk/auth/index.ts +5 -5
  151. package/sdk/auth/types.ts +21 -21
  152. package/sdk/auth/useAuth.ts +2 -2
  153. package/sdk/auth.ts +22 -0
  154. package/sdk/auth.types.ts +28 -0
  155. package/sdk/base-types.ts +45 -0
  156. package/sdk/components/hooks/index.ts +22 -22
  157. package/sdk/components/hooks/useFilter/index.ts +8 -14
  158. package/sdk/components/hooks/useFilter/types.ts +29 -58
  159. package/sdk/components/hooks/useFilter/useFilter.ts +41 -44
  160. package/sdk/components/hooks/useForm/apiClient.ts +8 -8
  161. package/sdk/components/hooks/useForm/expressionValidator.utils.ts +18 -18
  162. package/sdk/components/hooks/useForm/index.ts +24 -24
  163. package/sdk/components/hooks/useForm/optimizedExpressionValidator.utils.ts +22 -22
  164. package/sdk/components/hooks/useForm/ruleClassifier.utils.ts +26 -62
  165. package/sdk/components/hooks/useForm/schemaParser.utils.ts +24 -24
  166. package/sdk/components/hooks/useForm/types.ts +66 -82
  167. package/sdk/components/hooks/useForm/useForm.ts +15 -21
  168. package/sdk/components/hooks/useKanban/apiClient.ts +54 -54
  169. package/sdk/components/hooks/useKanban/context.ts +3 -3
  170. package/sdk/components/hooks/useKanban/dragDropManager.ts +19 -19
  171. package/sdk/components/hooks/useKanban/index.ts +26 -26
  172. package/sdk/components/hooks/useKanban/types.ts +69 -71
  173. package/sdk/components/hooks/useKanban/useKanban.ts +43 -51
  174. package/sdk/components/hooks/useKanban/useKanbanSimple.ts +4 -4
  175. package/sdk/components/hooks/useTable/index.ts +5 -1
  176. package/sdk/components/hooks/useTable/types.ts +10 -10
  177. package/sdk/components/hooks/useTable/useTable.ts +10 -10
  178. package/sdk/filter.ts +13 -0
  179. package/sdk/filter.types.ts +17 -0
  180. package/sdk/form.ts +15 -0
  181. package/sdk/form.types.ts +46 -0
  182. package/sdk/kanban.ts +23 -0
  183. package/sdk/kanban.types.ts +50 -0
  184. package/sdk/kanban.ui.ts +16 -0
  185. package/sdk/table.ts +7 -0
  186. package/sdk/table.types.ts +13 -0
  187. package/sdk/types/base-fields.ts +47 -47
  188. package/sdk/types/common.ts +47 -71
  189. package/sdk/types/index.ts +1 -1
  190. package/sdk/utils/formatting.ts +4 -4
  191. package/sdk/utils.ts +10 -0
  192. package/dist/index.cjs +0 -45
  193. package/dist/index.mjs +0 -6387
package/dist/index.cjs DELETED
@@ -1,45 +0,0 @@
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 Be=(e,t,n)=>Xr(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),Ce=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 Ve=en(c);let We={baseUrl:"",headers:{"Content-Type":"application/json"}};function tn(e){We.baseUrl=e}function rn(e){We.headers={...We.headers,...e}}function ot(){return{...We.headers}}function pt(){return We.baseUrl||""}function dt(e){if(e==null)return e;if(Array.isArray(e))return e.map(t=>dt(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]=dt(r);return t}return e}function he(e){const t=We.baseUrl,n=We.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 dt(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(u=>dt(u))}},async count(r){var l,m;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:((m=(l=(await o.json()).Data)==null?void 0:l[0])==null?void 0:m.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 draftInteraction(r){const a=await fetch(`${t}/api/app/${e}/draft`,{method:"PATCH",headers:n,body:JSON.stringify(r)});if(!a.ok)throw new Error(`Failed to create interactive draft for ${e}: ${a.statusText}`);return a.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 er(e){try{const t=pt(),n=ot(),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=pt(),n=ot(),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 tr(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 rr(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 nr(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 ar(e,t=2){return typeof e!="number"||isNaN(e)?"Invalid Number":e.toFixed(t)}function sr(e,t=2){try{return JSON.stringify(e,null,t)}catch{return"Invalid JSON"}}function or(e,t,n=", "){return Array.isArray(e)?t?e.map(t).join(n):e.map(r=>String(r)).join(n):"Invalid Array"}function ir(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 cr(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
- `)+`
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 cr(String(e));case"number":return ar(e);case"boolean":return ir(e);case"date":return rr(e);case"datetime":return nr(e);case"currency":return tr(e);case"json":return sr(e);case"array":return or(e);default:return String(e)}}function lr(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=lr(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=lr(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}),ur=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),ft="-",jt=[],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 u=i.split(ft),l=u[0]===""&&u.length>1?1:0;return dr(u,l,t)},getConflictingClassGroupIds:(i,u)=>{if(u){const l=r[i],m=n[i];return l?m?mn(m,l):l:m||jt}return n[i]||jt}}},dr=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],o=n.nextPart.get(a);if(o){const m=dr(e,t+1,o);if(m)return m}const i=n.validators;if(i===null)return;const u=t===0?e.join(ft):e.slice(t).join(ft),l=i.length;for(let m=0;m<l;m++){const h=i[m];if(h.validator(u))return h.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=ur();for(const r in e){const a=e[r];Rt(a,n,r,t)}return n},Rt=(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}En(e,t,n,r)},Cn=(e,t,n)=>{const r=e===""?t:fr(t,e);r.classGroupId=n},Sn=(e,t,n,r)=>{if(kn(e)){Rt(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(pn(n,e))},En=(e,t,n,r)=>{const a=Object.entries(e),o=a.length;for(let i=0;i<o;i++){const[u,l]=a[i];Rt(l,fr(t,u),n,r)}},fr=(e,t)=>{let n=e;const r=t.split(ft),a=r.length;for(let o=0;o<a;o++){const i=r[o];let u=n.nextPart.get(i);u||(u=ur(),n.nextPart.set(i,u)),n=u}return n},kn=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)}}},St="!",Vt=":",Rn=[],Lt=(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,u=0,l=0,m;const h=a.length;for(let Y=0;Y<h;Y++){const H=a[Y];if(i===0&&u===0){if(H===Vt){o.push(a.slice(l,Y)),l=Y+1;continue}if(H==="/"){m=Y;continue}}H==="["?i++:H==="]"?i--:H==="("?u++:H===")"&&u--}const k=o.length===0?a:a.slice(l);let _=k,V=!1;k.endsWith(St)?(_=k.slice(0,-1),V=!0):k.startsWith(St)&&(_=k.slice(1),V=!0);const b=m&&m>l?m-l:void 0;return Lt(o,V,_,b)};if(t){const a=t+Vt,o=r;r=i=>i.startsWith(a)?o(i.slice(a.length)):Lt(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],u=i[0]==="[",l=t.has(i);u||l?(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}},Dn=e=>({cache:xn(e.cacheSize),parseClassName:Tn(e),sortModifiers:On(e),...hn(e)}),An=/\s+/,Fn=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:o}=t,i=[],u=e.trim().split(An);let l="";for(let m=u.length-1;m>=0;m-=1){const h=u[m],{isExternal:k,modifiers:_,hasImportantModifier:V,baseClassName:b,maybePostfixModifierPosition:Y}=n(h);if(k){l=h+(l.length>0?" "+l:l);continue}let H=!!Y,S=r(H?b.substring(0,Y):b);if(!S){if(!H){l=h+(l.length>0?" "+l:l);continue}if(S=r(b),!S){l=h+(l.length>0?" "+l:l);continue}H=!1}const O=_.length===0?"":_.length===1?_[0]:o(_).join(":"),K=V?O+St:O,z=K+S;if(i.indexOf(z)>-1)continue;i.push(z);const U=a(S,H);for(let w=0;w<U.length;++w){const E=U[w];i.push(K+E)}l=h+(l.length>0?" "+l:l)}return l},_n=(...e)=>{let t=0,n,r,a="";for(;t<e.length;)(n=e[t++])&&(r=mr(n))&&(a&&(a+=" "),a+=r);return a},mr=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=mr(e[r]))&&(n&&(n+=" "),n+=t);return n},Nn=(e,...t)=>{let n,r,a,o;const i=l=>{const m=t.reduce((h,k)=>k(h),e());return n=Dn(m),r=n.cache.get,a=n.cache.set,o=u,u(l)},u=l=>{const m=r(l);if(m)return m;const h=Fn(l,n);return a(l,h),h};return o=i,(...l)=>o(_n(...l))},Pn=[],ge=e=>{const t=n=>n[e]||Pn;return t.isThemeGetter=!0,t},pr=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,gr=/^\((?:(\w[\w-]*):)?(.+)\)$/i,$n=/^\d+\/\d+$/,In=/^(\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$/,Vn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ln=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Un=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,He=e=>$n.test(e),M=e=>!!e&&!Number.isNaN(Number(e)),qe=e=>!!e&&Number.isInteger(Number(e)),wt=e=>e.endsWith("%")&&M(e.slice(0,-1)),je=e=>In.test(e),qn=()=>!0,Mn=e=>jn.test(e)&&!Vn.test(e),hr=()=>!1,zn=e=>Ln.test(e),Kn=e=>Un.test(e),Bn=e=>!R(e)&&!T(e),Gn=e=>Ze(e,wr,hr),R=e=>pr.test(e),Ge=e=>Ze(e,vr,Mn),vt=e=>Ze(e,Hn,M),Ut=e=>Ze(e,br,hr),Yn=e=>Ze(e,yr,Kn),lt=e=>Ze(e,Cr,zn),T=e=>gr.test(e),rt=e=>et(e,vr),Wn=e=>et(e,Xn),qt=e=>et(e,br),Qn=e=>et(e,wr),Jn=e=>et(e,yr),ut=e=>et(e,Cr,!0),Ze=(e,t,n)=>{const r=pr.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},et=(e,t,n=!1)=>{const r=gr.exec(e);return r?r[1]?t(r[1]):n:!1},br=e=>e==="position"||e==="percentage",yr=e=>e==="image"||e==="url",wr=e=>e==="length"||e==="size"||e==="bg-size",vr=e=>e==="length",Hn=e=>e==="number",Xn=e=>e==="family-name",Cr=e=>e==="shadow",Zn=()=>{const e=ge("color"),t=ge("font"),n=ge("text"),r=ge("font-weight"),a=ge("tracking"),o=ge("leading"),i=ge("breakpoint"),u=ge("container"),l=ge("spacing"),m=ge("radius"),h=ge("shadow"),k=ge("inset-shadow"),_=ge("text-shadow"),V=ge("drop-shadow"),b=ge("blur"),Y=ge("perspective"),H=ge("aspect"),S=ge("ease"),O=ge("animate"),K=()=>["auto","avoid","all","avoid-page","page","left","right","column"],z=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],U=()=>[...z(),T,R],w=()=>["auto","hidden","clip","visible","scroll"],E=()=>["auto","contain","none"],p=()=>[T,R,l],F=()=>[He,"full","auto",...p()],$=()=>[qe,"none","subgrid",T,R],I=()=>["auto",{span:["full",qe,T,R]},qe,T,R],X=()=>[qe,"auto",T,R],W=()=>["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"],B=()=>["auto",...p()],oe=()=>[He,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...p()],A=()=>[e,T,R],ue=()=>[...z(),qt,Ut,{position:[T,R]}],ye=()=>["no-repeat",{repeat:["","x","y","space","round"]}],be=()=>["auto","cover","contain",Qn,Gn,{size:[T,R]}],we=()=>[wt,rt,Ge],D=()=>["","none","full",m,T,R],ne=()=>["",M,rt,Ge],ee=()=>["solid","dashed","dotted","double"],Re=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],re=()=>[M,wt,qt,Ut],Se=()=>["","none",b,T,R],P=()=>["none",M,T,R],ie=()=>["none",M,T,R],De=()=>[M,T,R],Ae=()=>[He,"full",...p()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[je],breakpoint:[je],color:[qn],container:[je],"drop-shadow":[je],ease:["in","out","in-out"],font:[Bn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[je],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[je],shadow:[je],spacing:["px",M],text:[je],"text-shadow":[je],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",He,R,T,H]}],container:["container"],columns:[{columns:[M,R,T,u]}],"break-after":[{"break-after":K()}],"break-before":[{"break-before":K()}],"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:U()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{start:F()}],end:[{end:F()}],top:[{top:F()}],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[qe,"auto",T,R]}],basis:[{basis:[He,"full","auto",u,...p()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[M,He,"auto","initial","none",R]}],grow:[{grow:["",M,T,R]}],shrink:[{shrink:["",M,T,R]}],order:[{order:[qe,"first","last","none",T,R]}],"grid-cols":[{"grid-cols":$()}],"col-start-end":[{col:I()}],"col-start":[{"col-start":X()}],"col-end":[{"col-end":X()}],"grid-rows":[{"grid-rows":$()}],"row-start-end":[{row:I()}],"row-start":[{"row-start":X()}],"row-end":[{"row-end":X()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":W()}],"auto-rows":[{"auto-rows":W()}],gap:[{gap:p()}],"gap-x":[{"gap-x":p()}],"gap-y":[{"gap-y":p()}],"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:p()}],px:[{px:p()}],py:[{py:p()}],ps:[{ps:p()}],pe:[{pe:p()}],pt:[{pt:p()}],pr:[{pr:p()}],pb:[{pb:p()}],pl:[{pl:p()}],m:[{m:B()}],mx:[{mx:B()}],my:[{my:B()}],ms:[{ms:B()}],me:[{me:B()}],mt:[{mt:B()}],mr:[{mr:B()}],mb:[{mb:B()}],ml:[{ml:B()}],"space-x":[{"space-x":p()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":p()}],"space-y-reverse":["space-y-reverse"],size:[{size:oe()}],w:[{w:[u,"screen",...oe()]}],"min-w":[{"min-w":[u,"screen","none",...oe()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[i]},...oe()]}],h:[{h:["screen","lh",...oe()]}],"min-h":[{"min-h":["screen","lh","none",...oe()]}],"max-h":[{"max-h":["screen","lh",...oe()]}],"font-size":[{text:["base",n,rt,Ge]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,T,vt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",wt,R]}],"font-family":[{font:[Wn,R,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,T,R]}],"line-clamp":[{"line-clamp":[M,"none",T,vt]}],leading:[{leading:[o,...p()]}],"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:A()}],"text-color":[{text:A()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[M,"from-font","auto",T,Ge]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[M,"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:p()}],"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:ue()}],"bg-repeat":[{bg:ye()}],"bg-size":[{bg:be()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qe,T,R],radial:["",T,R],conic:[qe,T,R]},Jn,Yn]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:we()}],"gradient-via-pos":[{via:we()}],"gradient-to-pos":[{to:we()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:D()}],"rounded-s":[{"rounded-s":D()}],"rounded-e":[{"rounded-e":D()}],"rounded-t":[{"rounded-t":D()}],"rounded-r":[{"rounded-r":D()}],"rounded-b":[{"rounded-b":D()}],"rounded-l":[{"rounded-l":D()}],"rounded-ss":[{"rounded-ss":D()}],"rounded-se":[{"rounded-se":D()}],"rounded-ee":[{"rounded-ee":D()}],"rounded-es":[{"rounded-es":D()}],"rounded-tl":[{"rounded-tl":D()}],"rounded-tr":[{"rounded-tr":D()}],"rounded-br":[{"rounded-br":D()}],"rounded-bl":[{"rounded-bl":D()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"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:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[M,T,R]}],"outline-w":[{outline:["",M,rt,Ge]}],"outline-color":[{outline:A()}],shadow:[{shadow:["","none",h,ut,lt]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":["none",k,ut,lt]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[M,Ge]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":["none",_,ut,lt]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[M,T,R]}],"mix-blend":[{"mix-blend":[...Re(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Re()}],"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":re()}],"mask-image-linear-to-pos":[{"mask-linear-to":re()}],"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":re()}],"mask-image-t-to-pos":[{"mask-t-to":re()}],"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":re()}],"mask-image-r-to-pos":[{"mask-r-to":re()}],"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":re()}],"mask-image-b-to-pos":[{"mask-b-to":re()}],"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":re()}],"mask-image-l-to-pos":[{"mask-l-to":re()}],"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":re()}],"mask-image-x-to-pos":[{"mask-x-to":re()}],"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":re()}],"mask-image-y-to-pos":[{"mask-y-to":re()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[T,R]}],"mask-image-radial-from-pos":[{"mask-radial-from":re()}],"mask-image-radial-to-pos":[{"mask-radial-to":re()}],"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":z()}],"mask-image-conic-pos":[{"mask-conic":[M]}],"mask-image-conic-from-pos":[{"mask-conic-from":re()}],"mask-image-conic-to-pos":[{"mask-conic-to":re()}],"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:ue()}],"mask-repeat":[{mask:ye()}],"mask-size":[{mask:be()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",T,R]}],filter:[{filter:["","none",T,R]}],blur:[{blur:Se()}],brightness:[{brightness:[M,T,R]}],contrast:[{contrast:[M,T,R]}],"drop-shadow":[{"drop-shadow":["","none",V,ut,lt]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:["",M,T,R]}],"hue-rotate":[{"hue-rotate":[M,T,R]}],invert:[{invert:["",M,T,R]}],saturate:[{saturate:[M,T,R]}],sepia:[{sepia:["",M,T,R]}],"backdrop-filter":[{"backdrop-filter":["","none",T,R]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[M,T,R]}],"backdrop-contrast":[{"backdrop-contrast":[M,T,R]}],"backdrop-grayscale":[{"backdrop-grayscale":["",M,T,R]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[M,T,R]}],"backdrop-invert":[{"backdrop-invert":["",M,T,R]}],"backdrop-opacity":[{"backdrop-opacity":[M,T,R]}],"backdrop-saturate":[{"backdrop-saturate":[M,T,R]}],"backdrop-sepia":[{"backdrop-sepia":["",M,T,R]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":p()}],"border-spacing-x":[{"border-spacing-x":p()}],"border-spacing-y":[{"border-spacing-y":p()}],"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:[M,"initial",T,R]}],ease:[{ease:["linear","initial",S,T,R]}],delay:[{delay:[M,T,R]}],animate:[{animate:["none",O,T,R]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[Y,T,R]}],"perspective-origin":[{"perspective-origin":U()}],rotate:[{rotate:P()}],"rotate-x":[{"rotate-x":P()}],"rotate-y":[{"rotate-y":P()}],"rotate-z":[{"rotate-z":P()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":["scale-3d"],skew:[{skew:De()}],"skew-x":[{"skew-x":De()}],"skew-y":[{"skew-y":De()}],transform:[{transform:[T,R,"","none","gpu","cpu"]}],"transform-origin":[{origin:U()}],"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",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":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"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",...A()]}],"stroke-w":[{stroke:[M,rt,Ge,vt]}],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 Ne(...e){return ea(fn(e))}const _e=e=>"Condition"in e,Sr=e=>"LHSField"in e,ta=_e,ra=Sr;let na=0;const st=()=>`filter_${Date.now()}_${++na}`,aa=e=>e.id?e:{...e,id:st()},Er=e=>e.map(t=>{const n=aa(t);return _e(n)?{...n,Condition:Er(n.Condition)}:n}),kr=e=>e.map(t=>{if(_e(t)){const{id:a,...o}=t;return{...o,Condition:kr(t.Condition)}}const{id:n,...r}=t;return r}),xr=(e,t)=>{for(const n of e){if(n.id===t)return n;if(_e(n)){const r=xr(n.Condition,t);if(r)return r}}},Et=(e,t,n)=>e.map(r=>r.id===t?n(r):_e(r)?{...r,Condition:Et(r.Condition,t,n)}:r),Rr=(e,t)=>e.filter(n=>n.id!==t).map(n=>_e(n)?{...n,Condition:Rr(n.Condition,t)}:n),kt=(e,t,n)=>e.map(r=>r.id===t&&_e(r)?{...r,Condition:[...r.Condition,n]}:_e(r)?{...r,Condition:kt(r.Condition,t,n)}:r);function Tt(e={}){const[t,n]=c.useState(()=>Er(e.initialConditions||[])),[r,a]=c.useState(e.initialOperator||"And"),o=c.useMemo(()=>{if(t.length!==0)return{Operator:r,Condition:kr(t)}},[t,r]),i=t.length>0,u=c.useCallback(S=>{const O=st(),K={...S,id:O};return n(z=>[...z,K]),O},[]),l=c.useCallback(S=>{const O=st(),K={id:O,Operator:S,Condition:[]};return n(z=>[...z,K]),O},[]),m=c.useCallback((S,O)=>{const K=st(),z={...O,id:K};return n(U=>kt(U,S,z)),K},[]),h=c.useCallback((S,O)=>{const K=st(),z={id:K,Operator:O,Condition:[]};return n(U=>kt(U,S,z)),K},[]),k=c.useCallback((S,O)=>{n(K=>Et(K,S,z=>_e(z)?z:{...z,...O}))},[]),_=c.useCallback((S,O)=>{n(K=>Et(K,S,z=>_e(z)?{...z,Operator:O}:z))},[]),V=c.useCallback(S=>{n(O=>Rr(O,S))},[]),b=c.useCallback(S=>xr(t,S),[t]),Y=c.useCallback(()=>{n([])},[]),H=c.useCallback(S=>{a(S)},[]);return{operator:r,items:t,payload:o,hasConditions:i,add:u,addGroup:l,addTo:m,addGroupTo:h,update:k,updateOperator:_,remove:V,get:b,clear:Y,setOperator:H,conditions:t}}function sa(e){var ue,ye,be,we,D,ne,ee,Re,re,Se;const[t,n]=c.useState({query:""}),[r,a]=c.useState({field:((ye=(ue=e.initialState)==null?void 0:ue.sorting)==null?void 0:ye.field)||null,direction:((we=(be=e.initialState)==null?void 0:be.sorting)==null?void 0:we.direction)||null}),[o,i]=c.useState({pageNo:((ne=(D=e.initialState)==null?void 0:D.pagination)==null?void 0:ne.pageNo)||1,pageSize:((Re=(ee=e.initialState)==null?void 0:ee.pagination)==null?void 0:Re.pageSize)||10}),u=Tt({initialConditions:(re=e.initialState)==null?void 0:re.filters,initialOperator:((Se=e.initialState)==null?void 0:Se.filterOperator)||"And"}),l=c.useMemo(()=>{const P={};return t.query&&(P.Search=t.query),u.payload&&(P.Filter=u.payload),P},[t.query,u.payload]),m=c.useMemo(()=>{const P={...l};return r.field&&r.direction&&(P.Sort=[{[String(r.field)]:r.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(P.Page=o.pageNo,P.PageSize=o.pageSize),P},[l,r,o,e.enablePagination]),{data:h,isLoading:k,isFetching:_,error:V,refetch:b}=Ce.useQuery({queryKey:["table",e.source,m],queryFn:async()=>{try{const P=await he(e.source).list(m);return e.onSuccess&&e.onSuccess(P.Data),P}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),{data:Y,isLoading:H,isFetching:S,error:O,refetch:K}=Ce.useQuery({queryKey:["table-count",e.source,l],queryFn:async()=>{try{return await he(e.source).count(l)}catch(P){throw e.onError&&e.onError(P),P}},staleTime:0,gcTime:0}),z=c.useMemo(()=>(h==null?void 0:h.Data)||[],[h]),U=c.useMemo(()=>(Y==null?void 0:Y.Count)||0,[Y]),w=c.useMemo(()=>Math.ceil(U/o.pageSize),[U,o.pageSize]),E=c.useCallback(P=>{a(ie=>{if(ie.field===P){if(ie.direction==="asc")return{field:P,direction:"desc"};if(ie.direction==="desc")return{field:null,direction:null}}return{field:P,direction:"asc"}})},[]),p=c.useCallback(()=>{a({field:null,direction:null})},[]),F=c.useCallback((P,ie)=>{a({field:P,direction:ie})},[]),$=c.useCallback(P=>{n({query:P}),i(ie=>({...ie,pageNo:1}))},[]),I=c.useCallback(()=>{n({query:""})},[]),X=o.pageNo<w,W=o.pageNo>1,Z=c.useCallback(()=>{X&&i(P=>({...P,pageNo:P.pageNo+1}))},[X]),se=c.useCallback(()=>{W&&i(P=>({...P,pageNo:P.pageNo-1}))},[W]),B=c.useCallback(P=>{const ie=Math.max(1,Math.min(P,w));i(De=>({...De,pageNo:ie}))},[w]),oe=c.useCallback(P=>{i(ie=>({...ie,pageSize:P,pageNo:1}))},[]),A=c.useCallback(async()=>{const[P]=await Promise.all([b(),K()]);return P.data||{Data:[]}},[b,K]);return{rows:z,totalItems:U,isLoading:k||H,isFetching:_||S,error:V||O,search:{query:t.query,setQuery:$,clear:I},sort:{field:r.field,direction:r.direction,toggle:E,clear:p,set:F},filter:u,pagination:{currentPage:o.pageNo,pageSize:o.pageSize,totalPages:w,totalItems:U,canGoNext:X,canGoPrevious:W,goToNext:Z,goToPrevious:se,goToPage:B,setPageSize:oe},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 Me(e,t){var n;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const m=t.systemValues[e.Name];return Ct(m,e.Property.Name)}return t.systemValues[e.Name];case"Identifier":if(e.Property){const m=Mt(e,t);return Ct(m,e.Property.Name)}return Mt(e,t);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const r=Me(e.Arguments[0],t),a=(n=e.Arguments[0].Property)==null?void 0:n.Name;return a?Ct(r,a):r;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const o=Me(e.Arguments[0],t),i=Me(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 u=ia[e.Callee];if(!u)throw new Error(`Unknown function: ${e.Callee}`);const l=(e.Arguments||[]).map(m=>Me(m,t));return u(...l);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return Me(e.Arguments[0],t);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function Mt(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 Ct(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=>!!Me(r,n));case"OR":return t.some(r=>!!Me(r,n));default:throw new Error(`Unknown logical operator: ${e}`)}}function Tr(e,t,n={}){const r={formValues:t,systemValues:oa(),referenceData:n};try{return Me(e,r)}catch(a){return console.warn("Expression evaluation failed:",a),!1}}function zt(e,t,n={}){const r=[];for(const a of e)try{Tr(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 Tr(e,t,n)}catch(r){return console.warn("Default value calculation failed:",r),null}}function Kt(e,t){var u,l,m;const n=((u=e.Expression)==null?void 0:u.toLowerCase())||"",r=((l=e.Name)==null?void 0:l.toLowerCase())||"",a=((m=e.Id)==null?void 0:m.toLowerCase())||"",o=t.toLowerCase();return r.includes("required")||a.includes("required")?!0:[`${o} != null`,`${o} != ''`,`trim(${o}) != ''`,`${o}!=null`,`${o}!=''`].some(h=>n.includes(h))}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(u=>{t.Rules.Validation[u.Id]=u,i.push(u.Id),Kt(u,r)&&(o=!0)}),n[r]={...a,Validation:i,Required:o}}else a.Validation.forEach(u=>{var m;const l=(m=t.Rules.Validation)==null?void 0:m[u];l&&Kt(l,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 l of n){const m=l.toUpperCase().replace(/[_-]/g,"");if(i.includes(m)){t[a]=l;return}}const u=`${o.Name||""} ${o.Description||""}`.toLowerCase();for(const l of n)if(u.includes(l.toLowerCase())){t[a]=l;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(u=>{t.validation[u]?n[a].validation.push(u):t.computation[u]?n[a].computation.push(u):t.businessLogic[u]&&n[a].businessLogic.push(u)}),o.Formula&&Object.entries(t.computation).forEach(([i,u])=>{var l;u.Expression===((l=o.Formula)==null?void 0:l.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 l,m,h,k,_,V;if(!t||!((l=e.RolePermission)!=null&&l[t])){n[a]=r;return}const o=e.RolePermission[t],i=((m=o.Editable)==null?void 0:m.includes(a))||((h=o.Editable)==null?void 0:h.includes("*"))||!1,u=((k=o.ReadOnly)==null?void 0:k.includes(a))||((_=o.ReadOnly)==null?void 0:_.includes("*"))||i;n[a]={editable:i&&!((V=o.ReadOnly)!=null&&V.includes(a)),readable:u,hidden:!u}}),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 Or(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:`${Or(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},l=o||{validation:[],computation:[],businessLogic:[]},m=t.Computed||!!t.Formula||l.computation.length>0,h=ba(e,t);return m&&(h.disabled=!0),{name:e,type:ha(t.Type,e),label:t.Name||Or(e),required:t.Required||!1,computed:m,defaultValue:wa(t,r),options:ya(t),validation:h,description:t.Description,_bdoField:t,permission:a||i,rules:l}}function Ca(e,t={},n){let r=e;r=da(r);const a={},o=[],i=[],u=[],l=[],m=fa(r),h=pa(r,m),k=ga(r,n);for(const[_,V]of Object.entries(r.Fields)){if(_.startsWith("_")&&!["_id"].includes(_))continue;const b=k[_];if(b.hidden)continue;const Y=va(_,V,r.Fields,t,b,h[_]||{validation:[],computation:[],businessLogic:[]});a[_]=Y,o.push(_),Y.computed&&i.push(_),Y.required&&u.push(_)}return{fields:a,fieldOrder:o,computedFields:i,requiredFields:u,crossFieldValidation:l,rules:m,fieldRules:h,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 Ea(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 ka(e){try{const n=(await er(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 ka(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 he(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 he(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 he(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 he(e).list(a)).Data||[]}catch(a){return console.error(`Reference data fetch error for ${e}:`,a),[]}}async function Da(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 Aa(e,t,n="create",r){const a={};return Object.keys(e).forEach(o=>{const i=o,u=e[i];if(!t.includes(o)&&u!==void 0){if(n==="create"){a[i]=u;return}if(n==="update"){if(!r){a[i]=u;return}const l=r[i];JSON.stringify(u)!==JSON.stringify(l)&&(a[i]=u)}}}),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 Xe=new Map;function Pa(e,t,n=10){Xe.set(e,{data:t,timestamp:Date.now(),ttl:n*60*1e3})}function $a(e){const t=Xe.get(e);return t?Date.now()-t.timestamp>t.ttl?(Xe.delete(e),null):t.data:null}function Ia(e){e?Array.from(Xe.keys()).filter(n=>n.startsWith(e)).forEach(n=>Xe.delete(n)):Xe.clear()}async function ja(e){const t=`schema:${e}`,n=$a(t);if(n)return n;const r=await xa(e);return Pa(t,r,30),r}class Bt{constructor(t=1e3){Be(this,"cache",new Map);Be(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 Va(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 La{constructor(){Be(this,"resultCache",new Bt(500));Be(this,"dependencyCache",new Bt(200));Be(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=Va(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(m=>String(m||"")).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((m,h)=>m+(Number(h)||0),0);case"AVG":const o=r.filter(m=>!isNaN(Number(m)));return o.length>0?o.reduce((m,h)=>m+Number(h),0)/o.length:0;case"MIN":return Math.min(...r.map(m=>Number(m)||0));case"MAX":return Math.max(...r.map(m=>Number(m)||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]),u=new Date(r[1]),l=Math.abs(i.getTime()-u.getTime());return Math.ceil(l/(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 Dr=new La;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(!Dr.evaluate(i.ExpressionTree,o,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 Gt(e){return Array.from(Dr.getDependencies(e))}function qa(e){const{source:t,operation:n,recordId:r,defaultValues:a={},mode:o="onBlur",enabled:i=!0,userRole:u,onSchemaError:l,skipSchemaFetch:m=!1,schema:h,draftOnEveryChange:k=!1,interactionMode:_="interactive"}=e,V=_==="interactive",[b,Y]=c.useState(null),[H,S]=c.useState({}),[O,K]=c.useState(!1),[z]=c.useState({}),[U,w]=c.useState(null),[E,p]=c.useState(!1),[F,$]=c.useState(null),I=c.useRef(!1),X=c.useRef(null),W=c.useRef(null),Z=c.useRef(l);c.useEffect(()=>{Z.current=l},[l]);const{data:se,isLoading:B,error:oe,refetch:A}=Ce.useQuery({queryKey:["form-schema",t],queryFn:()=>m?Promise.resolve(h||{}):ja(t),enabled:i&&(!m||!!h),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:ue,isLoading:ye,error:be}=Ce.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}),we=c.useMemo(()=>{const f={...a};if(n==="update"&&ue&&Object.assign(f,ue),b)for(const[C,N]of Object.entries(b.fields))N.defaultValue!==void 0&&!(C in f)&&(f[C]=N.defaultValue);return f},[a,ue,n,b]),D=Zr.useForm({mode:o,defaultValues:a,values:n==="update"&&ue?we:void 0});c.useEffect(()=>{var f;if(se)try{const C=Ca(se,{},u);Y(C);const N=Ea(C);Object.keys(N).length>0&&Da(N).then(S).catch(console.warn)}catch(C){console.error("Schema processing failed:",C),(f=Z.current)==null||f.call(Z,C)}},[se,u]),c.useEffect(()=>{var f;oe&&((f=Z.current)==null||f.call(Z,oe))},[oe]),c.useEffect(()=>{if(!V||n!=="create"||!b||!i||U)return;(async()=>{p(!0),$(null);try{const N=await he(t).draftInteraction({});w(N._id),N&&typeof N=="object"&&Object.entries(N).forEach(([L,q])=>{if(L==="_id")return;D.getValues(L)!==q&&D.setValue(L,q,{shouldDirty:!1,shouldValidate:!1})})}catch(C){console.error("Failed to create initial draft:",C),$(C)}finally{p(!1)}})()},[V,n,b,i,U,t,D]);const ne=c.useMemo(()=>{if(!b)return[];const f=new Set,C=new Set(b.computedFields);return Object.entries(b.fieldRules).forEach(([N,L])=>{L.computation.forEach(q=>{const Q=b.rules.computation[q];Q!=null&&Q.ExpressionTree&&Gt(Q.ExpressionTree).forEach(ce=>{b.fields[ce]&&ce!==N&&!C.has(ce)&&f.add(ce)})})}),b.computedFields.forEach(N=>{const L=b.fields[N];L._bdoField.Formula&&Gt(L._bdoField.Formula.ExpressionTree).forEach(Q=>{b.fields[Q]&&Q!==N&&!C.has(Q)&&f.add(Q)})}),Array.from(f)},[b]),ee=c.useCallback(async f=>{if(!(!b||!(V||ne.length>0&&(k||ne.includes(f))))){if(V&&n==="create"&&!U){console.warn("Interactive create mode: waiting for draft ID");return}I.current||(X.current&&clearTimeout(X.current),X.current=setTimeout(()=>{if(!b||I.current)return;const N=D.getValues();(async()=>{I.current=!0;try{const q=he(t),Q={};n==="update"&&r&&"_id"in N&&(Q._id=N._id),V&&n==="create"&&U&&(Q._id=U);const de=W.current??(n==="update"?ue:null)??{},ce=new Set(b.computedFields||[]);Object.keys(N).forEach(fe=>{if(fe==="_id"||ce.has(fe))return;const Ee=N[fe],it=de[fe];JSON.stringify(Ee)!==JSON.stringify(it)&&(Ee!==""&&Ee!==null&&Ee!==void 0)&&(Q[fe]=Ee)});const le=Q,Te={...W.current};Object.keys(N).forEach(fe=>{ce.has(fe)||(Te[fe]=N[fe])}),W.current=Te;let Fe;n==="update"&&r?Fe=await q.draftPatch(r,le):V&&U?Fe=await q.draftInteraction(le):Fe=await q.draft(le),Fe&&typeof Fe=="object"&&(Object.entries(Fe).forEach(([fe,Ee])=>{N[fe]!==Ee&&D.setValue(fe,Ee,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(Fe).forEach(([fe,Ee])=>{ce.has(fe)&&(W.current[fe]=Ee)}))}catch(q){console.warn("Failed to compute fields via API:",q)}finally{I.current=!1}})()},300))}},[b,n,r,ue,t,D,ne,k,V,U]),Re=c.useCallback(async()=>{if(!b)return!1;const f=D.getValues();if(!await D.trigger())return!1;const N=b.crossFieldValidation.map(q=>({Id:q.Id,Condition:{ExpressionTree:q.ExpressionTree},Message:q.Message||`Validation failed for ${q.Name}`})),L=zt(N,f,H);return L.length>0?(L.forEach((q,Q)=>{D.setError(`root.crossField${Q}`,{type:"validate",message:q.message})}),!1):!0},[b,D.getValues,D.trigger,D.setError,H]),re=c.useCallback((f,C)=>D.handleSubmit(async(N,L)=>{if(!b){const q=new Error("Schema not loaded");C==null||C(q,L);return}K(!0);try{const q=b.crossFieldValidation.map(le=>({Id:le.Id,Condition:{ExpressionTree:le.ExpressionTree},Message:le.Message||`Validation failed for ${le.Name}`})),Q=zt(q,N,H);if(Q.length>0){Q.forEach((le,Te)=>{D.setError(`root.crossField${Te}`,{type:"validate",message:le.message})}),C==null||C(D.formState.errors,L);return}const de=Aa(N,b.computedFields,n,ue);let ce;if(V){const le=he(t);if(n==="create"){if(!U)throw new Error("Interactive create mode requires a draft ID. Draft creation may have failed.");ce={success:!0,data:await le.draft({...de,_id:U})}}else ce={success:!0,data:await le.draftUpdate(r,de)}}else if(ce=await Ta(t,n,de,r),!ce.success)throw ce.error||new Error("Submission failed");n==="create"&&(D.reset(),V&&w(null)),await(f==null?void 0:f(ce.data||N,L))}catch(q){C==null||C(q,L)}finally{K(!1)}},(N,L)=>{C==null||C(N,L)}),[D,b,H,t,n,r,ue,V,U]),Se=c.useCallback(f=>(b==null?void 0:b.fields[f])||null,[b]),P=c.useCallback(()=>{if(!b)return{};const f={};return Object.entries(b.fields).forEach(([C,N])=>{f[C]=N}),f},[b]),ie=c.useCallback(f=>!!(b!=null&&b.fields[f]),[b]),De=c.useCallback(f=>(b==null?void 0:b.requiredFields.includes(f))||!1,[b]),Ae=c.useCallback(f=>(b==null?void 0:b.computedFields.includes(f))||!1,[b]),tt=c.useCallback(async()=>{await A()},[A]),Le=c.useCallback(()=>{D.clearErrors()},[D]),Pe=B||n==="update"&&ye||V&&n==="create"&&E,$e=Pe||O,Ue=oe||be||F,ze=!!Ue,Ie=c.useMemo(()=>(b==null?void 0:b.computedFields)||[],[b]),d=c.useMemo(()=>(b==null?void 0:b.requiredFields)||[],[b]),v=c.useMemo(()=>{if(!b)return{};const f={};return Object.entries(b.fields).forEach(([C,N])=>{const L={};switch(N.required&&(L.required=`${N.label} is required`),N.permission.editable||(L.disabled=!0),N.type){case"number":L.valueAsNumber=!0;break;case"date":case"datetime-local":L.valueAsDate=!0;break}const q=N.rules.validation;q.length>0&&(L.validate={expressionValidation:Q=>{const de=D.getValues();for(const ce of q){const le=b.rules.validation[ce];if(le){const Te=Ua(C,Q,[le],de,z);if(!Te.isValid)return Te.message||le.Message||"Invalid value"}}return!0}}),f[C]=L}),f},[b,D,H]);return{register:c.useCallback((f,C)=>{const N=v[f],L=C==null?void 0:C.onBlur,q=async Q=>{L&&await L(Q);let de=!0;o==="onBlur"||o==="onTouched"||o==="all"?de=await D.trigger(f):de=!D.getFieldState(f,D.formState).error,de&&await ee(f)};return D.register(f,{...N,...C,onBlur:q})},[D,v,ee,o]),handleSubmit:re,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||O,isSubmitSuccessful:D.formState.isSubmitSuccessful,formState:D.formState,isLoadingInitialData:Pe,isLoadingRecord:ye,isLoading:$e,draftId:U,isCreatingDraft:E,loadError:Ue,hasError:ze,schema:se,schemaConfig:b,computedFields:Ie,requiredFields:d,getField:Se,getFields:P,hasField:ie,isFieldRequired:De,isFieldComputed:Ae,refreshSchema:tt,validateForm:Re,clearErrors:Le}}const Yt=50,Wt=5,Qt=5;function Ma({onCardMove:e,onError:t,columns:n,announceMove:r}){const[a,o]=c.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=c.useRef(null),u=c.useRef(null),l=c.useRef(null),m=c.useCallback(()=>{o({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),u.current&&(clearTimeout(u.current),u.current=null)},[]),h=c.useCallback(w=>n.find(E=>E._id===w)||null,[n]),k=c.useCallback(w=>{for(const E of n){const p=E.cards.find(F=>F._id===w);if(p)return{card:p,column:E}}return null},[n]),_=c.useCallback((w,E)=>{var p,F;try{const $=w.target,I=h(E.columnId);if(!I)throw new Error("Source column not found");(p=w.dataTransfer)==null||p.setData("text/plain",E._id),(F=w.dataTransfer)==null||F.setData("application/json",JSON.stringify(E));const X=$.cloneNode(!0);X.style.cssText=`
5
- position: fixed;
6
- top: -1000px;
7
- left: -1000px;
8
- opacity: 0.9;
9
- transform: rotate(-2deg) scale(0.95);
10
- box-shadow: 0 10px 25px rgba(0,0,0,0.2);
11
- pointer-events: none;
12
- z-index: 9999;
13
- max-width: 300px;
14
- background: white;
15
- border-radius: 8px;
16
- `,document.body.appendChild(X),i.current=X,w.dataTransfer&&w.dataTransfer.setDragImage(X,w.offsetX||50,w.offsetY||20),o({isDragging:!0,draggedCard:E,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:I._id}),r==null||r(E,I.title,"being moved")}catch($){t==null||t($ instanceof Error?$:new Error("Drag start failed")),m()}},[h,t,m,r]),V=c.useCallback((w,E)=>{if(w.preventDefault(),!a.isDragging||!a.draggedCard)return;const p=E?h(E):null;o(F=>({...F,dragOverColumn:(p==null?void 0:p._id)||null,dragOverPosition:null})),H(w)},[a.isDragging,a.draggedCard,h]),b=c.useCallback((w,E)=>{if(w.preventDefault(),!(!a.isDragging||!a.draggedCard))try{const p=a.draggedCard,F=a.dragSourceColumn,$=h(E),I=h(F);if(!$||!I)throw new Error("Target or source column not found");if(F===E){m();return}if($.limit&&$.cards.length>=$.limit)throw new Error(`Column "${$.title}" has reached its limit of ${$.limit} cards`);e==null||e(p,F,E),r==null||r(p,I.title,$.title)}catch(p){t==null||t(p instanceof Error?p:new Error("Drop failed"))}finally{m()}},[a,h,e,t,m,r]),Y=c.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),m()},[m]),H=c.useCallback(w=>{const E=w.target.closest(".kanban-container");if(!E)return;const p=E.getBoundingClientRect(),F=w.clientX-p.left,$=p.width;let I=0;if(F<Yt?I=-Wt:F>$-Yt&&(I=Wt),I!==0){u.current&&clearTimeout(u.current);const X=()=>{E.scrollLeft+=I,u.current=setTimeout(X,16)};u.current=setTimeout(X,100)}else u.current&&(clearTimeout(u.current),u.current=null)},[]),S=c.useCallback((w,E)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(w.key))return;w.preventDefault();const p=k(E._id);if(!p)return;const{column:F}=p,$=n.findIndex(I=>I._id===F._id);try{switch(w.key){case"ArrowLeft":if($>0){const I=n[$-1];e==null||e(E,F._id,I._id),r==null||r(E,F.title,I.title)}break;case"ArrowRight":if($<n.length-1){const I=n[$+1];e==null||e(E,F._id,I._id),r==null||r(E,F.title,I.title)}break;case"ArrowUp":r==null||r(E,"current position","position above");break;case"ArrowDown":r==null||r(E,"current position","position below");break;case"Enter":case"Space":r==null||r(E,F.title,"drag mode");break;case"Escape":r==null||r(E,"drag mode","cancelled");break}}catch(I){t==null||t(I instanceof Error?I:new Error("Keyboard navigation failed"))}},[k,n,e,t,r]),O=c.useCallback((w,E)=>{const p=w.touches[0];l.current={x:p.clientX,y:p.clientY,card:E}},[]),K=c.useCallback(w=>{if(!l.current)return;const E=w.touches[0],p=Math.abs(E.clientX-l.current.x),F=Math.abs(E.clientY-l.current.y);if(p>Qt||F>Qt){const $=l.current.card,I=h($.columnId);if(!I)return;o({isDragging:!0,draggedCard:$,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:I._id}),r==null||r($,I.title,"being moved")}},[h,r]),z=c.useCallback(w=>{if(!a.isDragging||!a.draggedCard||!l.current){l.current=null;return}try{const E=w.changedTouches[0],p=document.elementFromPoint(E.clientX,E.clientY),F=p==null?void 0:p.closest("[data-column-id]");if(F){const $=F.dataset.columnId,I=a.draggedCard,X=a.dragSourceColumn,W=h($),Z=h(X);if(W&&Z&&X!==$){if(W.limit&&W.cards.length>=W.limit)throw new Error(`Column "${W.title}" has reached its limit of ${W.limit} cards`);e==null||e(I,X,$),r==null||r(I,Z.title,W.title)}}}catch(E){t==null||t(E instanceof Error?E:new Error("Touch drop failed"))}finally{l.current=null,m()}},[a,h,e,t,m,r]),U=c.useCallback((w,E,p)=>{const F=`Moved "${w.title}" from ${E} to ${p}`,$=document.createElement("div");$.setAttribute("aria-live","polite"),$.setAttribute("aria-atomic","true"),$.className="sr-only",$.textContent=F,document.body.appendChild($),setTimeout(()=>{document.body.removeChild($)},1e3),console.log(`Kanban: ${F}`)},[]);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:V,handleDrop:b,handleDragEnd:Y,handleKeyDown:S,handleTouchStart:O,handleTouchMove:K,handleTouchEnd:z,announceMove:r||U,reset:m}}function za(e){var Ue,ze,Ie;const{columns:t,cardSource:n,source:r,enableDragDrop:a=!0,initialState:o,onCardMove:i,onCardCreate:u,onCardUpdate:l,onCardDelete:m,onError:h}=e,k=r||n;if(!k)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[_,V]=c.useState({query:(o==null?void 0:o.search)||""}),[b]=c.useState({field:((Ue=o==null?void 0:o.sorting)==null?void 0:Ue.field)||null,direction:((ze=o==null?void 0:o.sorting)==null?void 0:ze.direction)||null}),[Y,H]=c.useState(()=>{const d={};return t.forEach(v=>{d[v.id]=10}),d}),S=c.useRef(h),O=c.useRef(i),K=c.useRef(u),z=c.useRef(l),U=c.useRef(m);c.useEffect(()=>{S.current=h,O.current=i,K.current=u,z.current=l,U.current=m},[h,i,u,l,m]);const w=Ce.useQueryClient(),E=Tt({initialConditions:o==null?void 0:o.filters,initialOperator:(o==null?void 0:o.filterOperator)||"And"}),p=c.useCallback(d=>{const v={LHSField:"columnId",Operator:"EQ",RHSValue:d,RHSType:"Constant"},y=E.payload;let f;y?y.Operator==="And"?f={...y,Condition:[...y.Condition||[],v]}:f={Operator:"And",Condition:[y,v]}:f={Operator:"And",Condition:[v]};const C={Page:1,PageSize:Y[d]||10,Filter:f};return b.field&&b.direction?C.Sort=[{[String(b.field)]:b.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:C.Sort=[{columnId:"ASC"},{position:"ASC"}],_.query&&(C.Search=_.query),C},[E.payload,Y,b,_.query]),F=Ce.useQueries({queries:t.map(d=>{const v=p(d.id);return{queryKey:["kanban-cards",k,d.id,v],queryFn:async()=>{try{return await he(k).list(v)}catch(y){throw y}},placeholderData:Ce.keepPreviousData,staleTime:30*1e3}})}),$=F.some(d=>d.isLoading),I=F.some(d=>d.isFetching),X=((Ie=F.find(d=>d.error))==null?void 0:Ie.error)||null,W=async()=>{await Promise.all(F.map(d=>d.refetch()))},Z=c.useMemo(()=>{const d={};return _.query&&(d.Search=_.query),E.payload&&(d.Filter=E.payload),d},[_.query,E.payload]),{data:se,isLoading:B,error:oe}=Ce.useQuery({queryKey:["kanban-count",k,Z],queryFn:async()=>{try{return await he(k).count(Z)}catch(d){throw S.current&&S.current(d),d}},staleTime:30*1e3,gcTime:60*1e3}),A=Ce.useMutation({mutationFn:async d=>{const v=d.position??999999;return(await he(k).create({...d,position:v}))._id},onMutate:async d=>{const v=d.columnId,y=p(v),f=["kanban-cards",k,v,y];await w.cancelQueries({queryKey:f});const C=w.getQueryData(f);if(C){const N=C.Data,L=d.position??N.length,q=`temp-${Date.now()}`,Q={...d,_id:q,position:L,_created_at:new Date,_modified_at:new Date};w.setQueryData(f,{...C,Data:[...C.Data,Q]})}return{previousCards:C,queryKey:f}},onSuccess:async(d,v,y)=>{var f;y!=null&&y.queryKey&&await w.invalidateQueries({queryKey:y.queryKey}),(f=K.current)==null||f.call(K,{_id:d,...v})},onError:(d,v,y)=>{var f;y!=null&&y.previousCards&&(y!=null&&y.queryKey)&&w.setQueryData(y.queryKey,y.previousCards),(f=S.current)==null||f.call(S,d)},onSettled:(d,v,y)=>{const f=y.columnId,C=p(f);w.invalidateQueries({queryKey:["kanban-cards",k,f,C]})}}),ue=Ce.useMutation({mutationFn:async({id:d,updates:v})=>(await he(k).update(d,v),{id:d,updates:v}),onMutate:async()=>(await w.cancelQueries({queryKey:["kanban-cards",k]}),{}),onSuccess:async d=>{var v;(v=z.current)==null||v.call(z,{_id:d.id,...d.updates})},onError:(d,v,y)=>{var f;(f=S.current)==null||f.call(S,d)},onSettled:()=>{w.invalidateQueries({queryKey:["kanban-cards",k]})}}),ye=Ce.useMutation({mutationFn:async d=>(await he(k).delete(d),d),onMutate:async()=>(await w.cancelQueries({queryKey:["kanban-cards",k]}),{}),onSuccess:async d=>{var v;(v=U.current)==null||v.call(U,d)},onError:(d,v,y)=>{var f;(f=S.current)==null||f.call(S,d)},onSettled:()=>{w.invalidateQueries({queryKey:["kanban-cards",k]})}}),be=Ce.useMutation({mutationFn:async({cardId:d,fromColumnId:v,toColumnId:y,position:f})=>{const C={columnId:y,...f!==void 0&&{position:f}};return await he(k).update(d,C),{cardId:d,fromColumnId:v,toColumnId:y,position:f}},onMutate:async({cardId:d,fromColumnId:v,toColumnId:y,position:f})=>{const C=p(v),N=p(y),L=["kanban-cards",k,v,C],q=["kanban-cards",k,y,N];await w.cancelQueries({queryKey:L}),await w.cancelQueries({queryKey:q});const Q=w.getQueryData(L),de=w.getQueryData(q);if(Q&&de){const ce=Q.Data.find(le=>le._id===d);if(ce){const le={...Q,Data:Q.Data.filter(fe=>fe._id!==d)},Te={...ce,columnId:y,position:f??de.Data.length,_modified_at:new Date},Fe={...de,Data:[...de.Data,Te].sort((fe,Ee)=>fe.position-Ee.position)};w.setQueryData(L,le),w.setQueryData(q,Fe)}}return{previousFromData:Q,previousToData:de,fromQueryKey:L,toQueryKey:q,fromColumnId:v,toColumnId:y}},onSuccess:async d=>{var v;(v=O.current)==null||v.call(O,{_id:d.cardId},d.fromColumnId,d.toColumnId)},onError:(d,v,y)=>{var f;y!=null&&y.previousFromData&&(y!=null&&y.fromQueryKey)&&w.setQueryData(y.fromQueryKey,y.previousFromData),y!=null&&y.previousToData&&(y!=null&&y.toQueryKey)&&w.setQueryData(y.toQueryKey,y.previousToData),(f=S.current)==null||f.call(S,d)},onSettled:(d,v,y)=>{const f=p(y.fromColumnId),C=p(y.toColumnId);w.invalidateQueries({queryKey:["kanban-cards",k,y.fromColumnId,f]}),w.invalidateQueries({queryKey:["kanban-cards",k,y.toColumnId,C]})}}),we=Ce.useMutation({mutationFn:async({cardIds:d,columnId:v})=>{const y=d.map((f,C)=>({id:f,position:C,columnId:v}));await Promise.all(y.map(f=>he(k).update(f.id,{position:f.position,columnId:f.columnId})))},onMutate:async({columnId:d})=>{const v=p(d),y=["kanban-cards",k,d,v];return await w.cancelQueries({queryKey:y}),{}},onSuccess:()=>{},onError:(d,v,y)=>{var f;(f=S.current)==null||f.call(S,d)},onSettled:(d,v,y)=>{const f=p(y.columnId);w.invalidateQueries({queryKey:["kanban-cards",k,y.columnId,f]})}}),D=c.useCallback(async(d,v,y)=>{try{await be.mutateAsync({cardId:d._id,fromColumnId:v,toColumnId:y,position:void 0})}catch{}},[be]),ne=c.useMemo(()=>t.sort((d,v)=>d.position-v.position).map((d,v)=>{var C;const f=((C=F[v].data)==null?void 0:C.Data)||[];return{_id:d.id,title:d.title,position:d.position,color:d.color,limit:d.limit,cards:f.sort((N,L)=>N.position-L.position),_created_at:new Date,_modified_at:new Date}}),[t,F]),ee=Ma({onCardMove:D,onError:S.current,columns:ne,announceMove:(d,v,y)=>{console.log(`Kanban: Moved "${d.title}" from ${v} to ${y}`)}}),Re=c.useCallback(d=>{var v,y;return{draggable:!0,role:"option","aria-selected":a&&((v=ee.draggedCard)==null?void 0:v._id)===d._id,"aria-grabbed":a&&((y=ee.draggedCard)==null?void 0:y._id)===d._id,onDragStart:f=>{if(!a)return;f.dataTransfer.setData("text/plain",JSON.stringify(d));const C=f.nativeEvent||f;ee.handleDragStart(C,d)},onDragEnd:ee.handleDragEnd,onKeyDown:f=>{if(!a)return;const C=f.nativeEvent||f;ee.handleKeyDown(C,d)}}},[a,ee]),re=c.useCallback(d=>({"data-column-id":d,role:"listbox",onDragOver:v=>{if(!a)return;const y=v.nativeEvent||v;ee.handleDragOver(y,d)},onDrop:v=>{if(!a)return;const y=v.nativeEvent||v;ee.handleDrop(y,d)}}),[a,ee]),Se=c.useCallback(d=>{V({query:d})},[]),P=c.useCallback(()=>{V({query:""})},[]),ie=(se==null?void 0:se.Count)||0,De=$||B,Ae=I,tt=A.isPending||ue.isPending||ye.isPending||be.isPending||we.isPending,Le=X||oe,Pe=c.useCallback(async()=>{await W()},[W]),$e=c.useCallback(async()=>{await w.invalidateQueries({predicate:d=>d.queryKey[0]==="kanban-cards"||d.queryKey[0]==="kanban-count"})},[w]);return c.useEffect(()=>{Le&&S.current&&S.current(Le)},[Le]),{columns:ne,totalCards:ie,isLoading:De,isFetching:Ae,isUpdating:tt,error:Le,createCard:A.mutateAsync,updateCard:c.useCallback(async(d,v)=>{await ue.mutateAsync({id:d,updates:v})},[ue]),deleteCard:c.useCallback(async d=>{await ye.mutateAsync(d)},[ye]),moveCard:c.useCallback(async(d,v,y,f)=>{if(!f){for(const C of ne)if(C.cards.find(L=>L._id===d)){f=C._id;break}if(!f)throw new Error(`Card ${d} not found in any column`)}await be.mutateAsync({cardId:d,fromColumnId:f,toColumnId:v,position:y})},[be,ne]),reorderCards:c.useCallback(async(d,v)=>{await we.mutateAsync({cardIds:d,columnId:v})},[we]),searchQuery:_.query,setSearchQuery:Se,clearSearch:P,filter:E,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?Re:d=>({}),getColumnProps:a?re:d=>({}),loadMore:c.useCallback(d=>{H(v=>({...v,[d]:(v[d]||10)+10}))},[]),refetch:Pe,refresh:$e}}c.createContext(null);var xt={exports:{}},nt={};/**
17
- * @license React
18
- * react-jsx-runtime.production.min.js
19
- *
20
- * Copyright (c) Facebook, Inc. and its affiliates.
21
- *
22
- * This source code is licensed under the MIT license found in the
23
- * LICENSE file in the root directory of this source tree.
24
- */var Jt;function Ka(){if(Jt)return nt;Jt=1;var e=c,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(u,l,m){var h,k={},_=null,V=null;m!==void 0&&(_=""+m),l.key!==void 0&&(_=""+l.key),l.ref!==void 0&&(V=l.ref);for(h in l)r.call(l,h)&&!o.hasOwnProperty(h)&&(k[h]=l[h]);if(u&&u.defaultProps)for(h in l=u.defaultProps,l)k[h]===void 0&&(k[h]=l[h]);return{$$typeof:t,type:u,key:_,ref:V,props:k,_owner:a.current}}return nt.Fragment=n,nt.jsx=i,nt.jsxs=i,nt}var at={};/**
25
- * @license React
26
- * react-jsx-runtime.development.js
27
- *
28
- * Copyright (c) Facebook, Inc. and its affiliates.
29
- *
30
- * This source code is licensed under the MIT license found in the
31
- * LICENSE file in the root directory of this source tree.
32
- */var Ht;function Ba(){return Ht||(Ht=1,process.env.NODE_ENV!=="production"&&function(){var e=c,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"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),V=Symbol.for("react.offscreen"),b=Symbol.iterator,Y="@@iterator";function H(s){if(s===null||typeof s!="object")return null;var g=b&&s[b]||s[Y];return typeof g=="function"?g:null}var S=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function O(s){{for(var g=arguments.length,x=new Array(g>1?g-1:0),j=1;j<g;j++)x[j-1]=arguments[j];K("error",s,x)}}function K(s,g,x){{var j=S.ReactDebugCurrentFrame,te=j.getStackAddendum();te!==""&&(g+="%s",x=x.concat([te]));var ae=x.map(function(J){return String(J)});ae.unshift("Warning: "+g),Function.prototype.apply.call(console[s],console,ae)}}var z=!1,U=!1,w=!1,E=!1,p=!1,F;F=Symbol.for("react.module.reference");function $(s){return!!(typeof s=="string"||typeof s=="function"||s===r||s===o||p||s===a||s===m||s===h||E||s===V||z||U||w||typeof s=="object"&&s!==null&&(s.$$typeof===_||s.$$typeof===k||s.$$typeof===i||s.$$typeof===u||s.$$typeof===l||s.$$typeof===F||s.getModuleId!==void 0))}function I(s,g,x){var j=s.displayName;if(j)return j;var te=g.displayName||g.name||"";return te!==""?x+"("+te+")":x}function X(s){return s.displayName||"Context"}function W(s){if(s==null)return null;if(typeof s.tag=="number"&&O("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 m:return"Suspense";case h:return"SuspenseList"}if(typeof s=="object")switch(s.$$typeof){case u:var g=s;return X(g)+".Consumer";case i:var x=s;return X(x._context)+".Provider";case l:return I(s,s.render,"ForwardRef");case k:var j=s.displayName||null;return j!==null?j:W(s.type)||"Memo";case _:{var te=s,ae=te._payload,J=te._init;try{return W(J(ae))}catch{return null}}}return null}var Z=Object.assign,se=0,B,oe,A,ue,ye,be,we;function D(){}D.__reactDisabledLog=!0;function ne(){{if(se===0){B=console.log,oe=console.info,A=console.warn,ue=console.error,ye=console.group,be=console.groupCollapsed,we=console.groupEnd;var s={configurable:!0,enumerable:!0,value:D,writable:!0};Object.defineProperties(console,{info:s,log:s,warn:s,error:s,group:s,groupCollapsed:s,groupEnd:s})}se++}}function ee(){{if(se--,se===0){var s={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Z({},s,{value:B}),info:Z({},s,{value:oe}),warn:Z({},s,{value:A}),error:Z({},s,{value:ue}),group:Z({},s,{value:ye}),groupCollapsed:Z({},s,{value:be}),groupEnd:Z({},s,{value:we})})}se<0&&O("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Re=S.ReactCurrentDispatcher,re;function Se(s,g,x){{if(re===void 0)try{throw Error()}catch(te){var j=te.stack.trim().match(/\n( *(at )?)/);re=j&&j[1]||""}return`
33
- `+re+s}}var P=!1,ie;{var De=typeof WeakMap=="function"?WeakMap:Map;ie=new De}function Ae(s,g){if(!s||P)return"";{var x=ie.get(s);if(x!==void 0)return x}var j;P=!0;var te=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var ae;ae=Re.current,Re.current=null,ne();try{if(g){var J=function(){throw Error()};if(Object.defineProperty(J.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(J,[])}catch(ke){j=ke}Reflect.construct(s,[],J)}else{try{J.call()}catch(ke){j=ke}s.call(J.prototype)}}else{try{throw Error()}catch(ke){j=ke}s()}}catch(ke){if(ke&&j&&typeof ke.stack=="string"){for(var G=ke.stack.split(`
34
- `),ve=j.stack.split(`
35
- `),me=G.length-1,pe=ve.length-1;me>=1&&pe>=0&&G[me]!==ve[pe];)pe--;for(;me>=1&&pe>=0;me--,pe--)if(G[me]!==ve[pe]){if(me!==1||pe!==1)do if(me--,pe--,pe<0||G[me]!==ve[pe]){var Oe=`
36
- `+G[me].replace(" at new "," at ");return s.displayName&&Oe.includes("<anonymous>")&&(Oe=Oe.replace("<anonymous>",s.displayName)),typeof s=="function"&&ie.set(s,Oe),Oe}while(me>=1&&pe>=0);break}}}finally{P=!1,Re.current=ae,ee(),Error.prepareStackTrace=te}var Je=s?s.displayName||s.name:"",Ke=Je?Se(Je):"";return typeof s=="function"&&ie.set(s,Ke),Ke}function tt(s,g,x){return Ae(s,!1)}function Le(s){var g=s.prototype;return!!(g&&g.isReactComponent)}function Pe(s,g,x){if(s==null)return"";if(typeof s=="function")return Ae(s,Le(s));if(typeof s=="string")return Se(s);switch(s){case m:return Se("Suspense");case h:return Se("SuspenseList")}if(typeof s=="object")switch(s.$$typeof){case l:return tt(s.render);case k:return Pe(s.type,g,x);case _:{var j=s,te=j._payload,ae=j._init;try{return Pe(ae(te),g,x)}catch{}}}return""}var $e=Object.prototype.hasOwnProperty,Ue={},ze=S.ReactDebugCurrentFrame;function Ie(s){if(s){var g=s._owner,x=Pe(s.type,s._source,g?g.type:null);ze.setExtraStackFrame(x)}else ze.setExtraStackFrame(null)}function d(s,g,x,j,te){{var ae=Function.call.bind($e);for(var J in s)if(ae(s,J)){var G=void 0;try{if(typeof s[J]!="function"){var ve=Error((j||"React class")+": "+x+" type `"+J+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[J]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ve.name="Invariant Violation",ve}G=s[J](g,J,j,x,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(me){G=me}G&&!(G instanceof Error)&&(Ie(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).",j||"React class",x,J,typeof G),Ie(null)),G instanceof Error&&!(G.message in Ue)&&(Ue[G.message]=!0,Ie(te),O("Failed %s type: %s",x,G.message),Ie(null))}}}var v=Array.isArray;function y(s){return v(s)}function f(s){{var g=typeof Symbol=="function"&&Symbol.toStringTag,x=g&&s[Symbol.toStringTag]||s.constructor.name||"Object";return x}}function C(s){try{return N(s),!1}catch{return!0}}function N(s){return""+s}function L(s){if(C(s))return O("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",f(s)),N(s)}var q=S.ReactCurrentOwner,Q={key:!0,ref:!0,__self:!0,__source:!0},de,ce;function le(s){if($e.call(s,"ref")){var g=Object.getOwnPropertyDescriptor(s,"ref").get;if(g&&g.isReactWarning)return!1}return s.ref!==void 0}function Te(s){if($e.call(s,"key")){var g=Object.getOwnPropertyDescriptor(s,"key").get;if(g&&g.isReactWarning)return!1}return s.key!==void 0}function Fe(s,g){typeof s.ref=="string"&&q.current}function fe(s,g){{var x=function(){de||(de=!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)",g))};x.isReactWarning=!0,Object.defineProperty(s,"key",{get:x,configurable:!0})}}function Ee(s,g){{var x=function(){ce||(ce=!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)",g))};x.isReactWarning=!0,Object.defineProperty(s,"ref",{get:x,configurable:!0})}}var it=function(s,g,x,j,te,ae,J){var G={$$typeof:t,type:s,key:g,ref:x,props:J,_owner:ae};return G._store={},Object.defineProperty(G._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(G,"_self",{configurable:!1,enumerable:!1,writable:!1,value:j}),Object.defineProperty(G,"_source",{configurable:!1,enumerable:!1,writable:!1,value:te}),Object.freeze&&(Object.freeze(G.props),Object.freeze(G)),G};function Dt(s,g,x,j,te){{var ae,J={},G=null,ve=null;x!==void 0&&(L(x),G=""+x),Te(g)&&(L(g.key),G=""+g.key),le(g)&&(ve=g.ref,Fe(g,te));for(ae in g)$e.call(g,ae)&&!Q.hasOwnProperty(ae)&&(J[ae]=g[ae]);if(s&&s.defaultProps){var me=s.defaultProps;for(ae in me)J[ae]===void 0&&(J[ae]=me[ae])}if(G||ve){var pe=typeof s=="function"?s.displayName||s.name||"Unknown":s;G&&fe(J,pe),ve&&Ee(J,pe)}return it(s,G,ve,te,j,q.current,J)}}var ct=S.ReactCurrentOwner,At=S.ReactDebugCurrentFrame;function Qe(s){if(s){var g=s._owner,x=Pe(s.type,s._source,g?g.type:null);At.setExtraStackFrame(x)}else At.setExtraStackFrame(null)}var ht;ht=!1;function bt(s){return typeof s=="object"&&s!==null&&s.$$typeof===t}function Ft(){{if(ct.current){var s=W(ct.current.type);if(s)return`
37
-
38
- Check the render method of \``+s+"`."}return""}}function qr(s){return""}var _t={};function Mr(s){{var g=Ft();if(!g){var x=typeof s=="string"?s:s.displayName||s.name;x&&(g=`
39
-
40
- Check the top-level render call using <`+x+">.")}return g}}function Nt(s,g){{if(!s._store||s._store.validated||s.key!=null)return;s._store.validated=!0;var x=Mr(g);if(_t[x])return;_t[x]=!0;var j="";s&&s._owner&&s._owner!==ct.current&&(j=" It was passed a child from "+W(s._owner.type)+"."),Qe(s),O('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',x,j),Qe(null)}}function Pt(s,g){{if(typeof s!="object")return;if(y(s))for(var x=0;x<s.length;x++){var j=s[x];bt(j)&&Nt(j,g)}else if(bt(s))s._store&&(s._store.validated=!0);else if(s){var te=H(s);if(typeof te=="function"&&te!==s.entries)for(var ae=te.call(s),J;!(J=ae.next()).done;)bt(J.value)&&Nt(J.value,g)}}}function zr(s){{var g=s.type;if(g==null||typeof g=="string")return;var x;if(typeof g=="function")x=g.propTypes;else if(typeof g=="object"&&(g.$$typeof===l||g.$$typeof===k))x=g.propTypes;else return;if(x){var j=W(g);d(x,s.props,"prop",j,s)}else if(g.PropTypes!==void 0&&!ht){ht=!0;var te=W(g);O("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",te||"Unknown")}typeof g.getDefaultProps=="function"&&!g.getDefaultProps.isReactClassApproved&&O("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),x=0;x<g.length;x++){var j=g[x];if(j!=="children"&&j!=="key"){Qe(s),O("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",j),Qe(null);break}}s.ref!==null&&(Qe(s),O("Invalid attribute `ref` supplied to `React.Fragment`."),Qe(null))}}var $t={};function It(s,g,x,j,te,ae){{var J=$(s);if(!J){var G="";(s===void 0||typeof s=="object"&&s!==null&&Object.keys(s).length===0)&&(G+=" 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=qr();ve?G+=ve:G+=Ft();var me;s===null?me="null":y(s)?me="array":s!==void 0&&s.$$typeof===t?(me="<"+(W(s.type)||"Unknown")+" />",G=" Did you accidentally export a JSX literal instead of a component?"):me=typeof s,O("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",me,G)}var pe=Dt(s,g,x,te,ae);if(pe==null)return pe;if(J){var Oe=g.children;if(Oe!==void 0)if(j)if(y(Oe)){for(var Je=0;Je<Oe.length;Je++)Pt(Oe[Je],s);Object.freeze&&Object.freeze(Oe)}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 Pt(Oe,s)}if($e.call(g,"key")){var Ke=W(s),ke=Object.keys(g).filter(function(Jr){return Jr!=="key"}),yt=ke.length>0?"{key: someKey, "+ke.join(": ..., ")+": ...}":"{key: someKey}";if(!$t[Ke+yt]){var Qr=ke.length>0?"{"+ke.join(": ..., ")+": ...}":"{}";O(`A props object containing a "key" prop is being spread into JSX:
41
- let props = %s;
42
- <%s {...props} />
43
- React keys must be passed directly to JSX without using spread:
44
- let props = %s;
45
- <%s key={someKey} {...props} />`,yt,Ke,Qr,Ke),$t[Ke+yt]=!0}}return s===r?Kr(pe):zr(pe),pe}}function Br(s,g,x){return It(s,g,x,!0)}function Gr(s,g,x){return It(s,g,x,!1)}var Yr=Gr,Wr=Br;at.Fragment=r,at.jsx=Yr,at.jsxs=Wr}()),at}process.env.NODE_ENV==="production"?xt.exports=Ka():xt.exports=Ba();var xe=xt.exports;const Ar=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...t}));Ar.displayName="Kanban";const Fr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...t}));Fr.displayName="KanbanColumn";const _r=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("mb-3 flex items-center justify-between",e),...t}));_r.displayName="KanbanColumnHeader";const Nr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("h3",{ref:n,className:Ne("text-sm font-semibold text-gray-700",e),...t}));Nr.displayName="KanbanColumnTitle";const Pr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("flex-1 space-y-2 overflow-y-auto",e),...t}));Pr.displayName="KanbanColumnContent";const $r=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...t}));$r.displayName="KanbanCard";const Ir=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("font-medium text-gray-900 mb-1",e),...t}));Ir.displayName="KanbanCardTitle";const jr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("text-sm text-gray-600",e),...t}));jr.displayName="KanbanCardDescription";const Vr=Ve.forwardRef(({className:e,...t},n)=>xe.jsx("div",{ref:n,className:Ne("mt-3 pt-3 border-t border-gray-200",e),...t}));Vr.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 Ye={...Ga};function Ya(e){Ye={...Ye,...e,providers:{...Ye.providers,...e.providers},retry:{...Ye.retry,...e.retry}}}function gt(){return{...Ye}}function Ot(){return Ye.baseUrl||pt()||(typeof window<"u"?window.location.origin:"")}function Lr(e){return Ye.providers[e]}class mt extends Error{constructor(n,r){super(n);Be(this,"statusCode");this.name="AuthenticationError",this.statusCode=r}}async function Wa(){const e=gt(),t=Ot(),n=ot(),r=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!r.ok)throw r.status===401||r.status===403?new mt("Not authenticated",r.status):new mt(`Session check failed: ${r.statusText}`,r.status);return await r.json()}function Xt(e,t){return new Promise(()=>{const n=gt(),r=Ot();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=Lr(a);if(!o){const u=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${a}" is not configured. Available providers: ${u}`)}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(([u,l])=>{i.searchParams.set(u,l)}),window.location.href=i.toString()})}async function Qa(e){const t=gt(),n=Ot(),r=ot(),a=Lr(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 Ur=c.createContext(null),Zt=["auth","session"];function Ja({children:e,config:t,onAuthChange:n,onError:r,loadingComponent:a,unauthenticatedComponent:o,skipInitialCheck:i=!1}){const u=c.useRef(!1);t&&!u.current&&(Ya(t),u.current=!0);const l=Ce.useQueryClient(),m=gt(),{data:h,isLoading:k,error:_,refetch:V,isFetching:b}=Ce.useQuery({queryKey:Zt,queryFn:Wa,enabled:!i,retry:(B,oe)=>oe instanceof mt&&(oe.statusCode===401||oe.statusCode===403)?!1:B<m.retry.count,retryDelay:m.retry.delay,staleTime:m.staleTime,gcTime:m.staleTime*2,refetchOnWindowFocus:m.refetchOnWindowFocus??!0,refetchOnReconnect:m.refetchOnReconnect??!0,refetchInterval:m.sessionCheckInterval||!1}),[Y,H]=c.useState(null),S=c.useMemo(()=>k||b?"loading":h!=null&&h.userDetails?"authenticated":"unauthenticated",[k,b,h]),O=(h==null?void 0:h.userDetails)||null,K=(h==null?void 0:h.staticBaseUrl)||null,z=(h==null?void 0:h.buildId)||null,U=S==="authenticated",w=c.useRef(n);w.current=n;const E=c.useRef(r);E.current=r,c.useEffect(()=>{var B;k||(B=w.current)==null||B.call(w,S,O)},[S,O,k]),c.useEffect(()=>{var B;_&&(H(_),(B=E.current)==null||B.call(E,_))},[_]),c.useEffect(()=>{S==="unauthenticated"&&m.autoRedirect&&!k&&Xt()},[S,k,m.autoRedirect]);const p=c.useCallback((B,oe)=>{Xt(B,oe)},[]),F=c.useCallback(async B=>{l.removeQueries({queryKey:Zt}),await Qa(B)},[l]),$=c.useCallback(async()=>{if(b)return h||null;try{return(await V()).data||null}catch(B){return H(B),null}},[V,b,h]),I=c.useCallback(B=>(O==null?void 0:O.Role)===B,[O]),X=c.useCallback(B=>B.includes((O==null?void 0:O.Role)||""),[O]),W=c.useCallback(()=>{H(null)},[]),Z=c.useCallback(()=>{V()},[V]),se=c.useMemo(()=>({user:O,staticBaseUrl:K,buildId:z,status:S,isAuthenticated:U,isLoading:k,login:p,logout:F,refreshSession:$,hasRole:I,hasAnyRole:X,error:Y,clearError:W,_forceCheck:Z}),[O,K,z,S,U,k,p,F,$,I,X,Y,W,Z]);return S==="loading"&&a?xe.jsx(xe.Fragment,{children:a}):S==="unauthenticated"&&!m.autoRedirect&&o?xe.jsx(xe.Fragment,{children:o}):xe.jsx(Ur.Provider,{value:se,children:e})}function Ha(){const e=c.useContext(Ur);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function Xa(){const e=Ha();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=Ja;exports.AuthenticationError=mt;exports.Kanban=Ar;exports.KanbanCard=$r;exports.KanbanCardDescription=jr;exports.KanbanCardTitle=Ir;exports.KanbanColumn=Fr;exports.KanbanColumnContent=Pr;exports.KanbanColumnFooter=Vr;exports.KanbanColumnHeader=_r;exports.KanbanColumnTitle=Nr;exports.api=he;exports.clearFormCache=Ia;exports.cn=Ne;exports.decodeDate=on;exports.decodeDatetime=an;exports.encodeDate=sn;exports.encodeDatetime=nn;exports.formatArray=or;exports.formatBoolean=ir;exports.formatCurrency=tr;exports.formatDate=rr;exports.formatDateTime=nr;exports.formatFieldValue=dn;exports.formatJSON=sr;exports.formatNumber=ar;exports.formatTextArea=cr;exports.getApiBaseUrl=pt;exports.getBdoSchema=er;exports.getDefaultHeaders=ot;exports.isCondition=Sr;exports.isConditionGroup=_e;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=Tt;exports.useForm=qa;exports.useKanban=za;exports.useTable=sa;