@opennsw/jsonforms-renderers 0.14.0 → 0.16.0

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.
@@ -1,3 +1,3 @@
1
- "use strict";var rn=Object.create;var He=Object.defineProperty;var nn=Object.getOwnPropertyDescriptor;var on=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,ln=Object.prototype.hasOwnProperty;var an=(e,r,t)=>r in e?He(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var cn=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of on(r))!ln.call(e,i)&&i!==t&&He(e,i,{get:()=>r[i],enumerable:!(o=nn(r,i))||o.enumerable});return e};var De=(e,r,t)=>(t=e!=null?rn(sn(e)):{},cn(r||!e||!e.__esModule?He(t,"default",{value:e,enumerable:!0}):t,e));var mt=(e,r,t)=>an(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),m=require("react"),v=require("@jsonforms/core"),X=require("@jsonforms/react"),s=require("@radix-ui/themes"),se=require("@radix-ui/react-icons"),Lt=require("dayjs"),Mt=m.createContext(null);function un({children:e,onUpload:r,getDownloadUrl:t}){const o={onUpload:r,getDownloadUrl:t};return n.jsx(Mt.Provider,{value:o,children:e})}function zt(){return m.useContext(Mt)}const Pt=m.createContext(null);function dn({children:e,services:r}){const t=m.useMemo(()=>r,[r]);return n.jsx(Pt.Provider,{value:t,children:e})}function $t(e){const r=m.useContext(Pt);return!r||!e?null:r[e]??null}const Bt=m.createContext(null);function Ut(){return m.useContext(Bt)}function fn({children:e,...r}){return n.jsx(Bt.Provider,{value:r,children:e})}function _t(e){var t;if(!e||typeof e!="object")return!1;const r=e;return r.type==="Categorization"&&((t=r.options)==null?void 0:t.variant)==="stepper"}function pn(e){return e.elements.filter(r=>r.type==="Category")}function Ue(e,r,t,o,i=""){if(t&&e.rule&&!v.isVisible(e,r,i,t,o))return[];if(e.type==="Control")return[e];const l=e.elements;return Array.isArray(l)?l.flatMap(a=>Ue(a,r,t,o,i)):[]}function et(e,r=""){return v.composePaths(r,v.toDataPath(e.scope))}function hn(e,r){return e===r||e.startsWith(`${r}.`)}function mn(e,r,t=v.toDataPath(e.scope),o=v.defaultTranslator){const i=v.Resolve.schema(r,e.scope,r),l=v.createLabelDescriptionFrom(e,i).text;return o(v.getI18nKey(i,e,t,"label"),l)}function xn(e,r,t,o="",i=v.defaultTranslator){const l=r.map(a=>v.getControlPath(a));return e.map(a=>({control:a,path:et(a,o)})).filter(({path:a})=>l.some(c=>hn(c,a))).map(({control:a,path:c})=>({path:c,label:mn(a,t,c,i)}))}function gn(e,r,t=""){const o=e.map(i=>Vt(r,et(i,t))).find(i=>Array.isArray(i)&&i.length>0);return o?{kind:"items",count:o.length}:{kind:"fields",count:e.length}}function yn(e,r,t=""){return e.some(o=>{const i=Vt(r,et(o,t));return i!=null&&i!==""&&!(Array.isArray(i)&&i.length===0)})}function Vt(e,r){return r.split(".").reduce((t,o)=>{if(!(t==null||typeof t!="object"))return t[o]},e)}const Wt={back:"Back",continue:"Continue",stepOf:"Step {step} of {total}",review:"Review and Submit",navLabel:"Form steps",progressLabel:"Progress through the form",noteDone:"Done",noteToFix:"{count} to fix",noteItem:"{count} item added",noteItems:"{count} items added",noteField:"{count} field",noteFields:"{count} fields",noteReview:"Check and submit",missingFields:"Complete these fields to continue:",incompleteSteps:"Some steps are not complete yet:",reviewHint:"Check your answers below, then submit.",edit:"Edit",editStep:"Edit {step}"};function bn(e,r,t){return(e??v.defaultTranslator)(`stepper.${r}`,Wt[r],t).replace(/\{(\w+)\}/g,(i,l)=>t&&l in t?String(t[l]):i)}const Se=(e,r,t,o=void 0)=>{m.useEffect(()=>{e===!1&&t(r,o)},[e,r,t,o])},xt=new WeakMap;function vn(e){if(!e||typeof e!="object")return!1;const r=xt.get(e);if(r!==void 0)return r;const t=ze(e,e,new Set);return xt.set(e,t),t}function wn(e,r){if(!r.startsWith("#/"))return;const t=r.slice(2).split("/");let o=e;for(const i of t){if(!o||typeof o!="object")return;o=o[i]}return o&&typeof o=="object"?o:void 0}function ze(e,r,t){if(!e||typeof e!="object"||t.has(e))return!1;t.add(e);const o=e;if(o.if!=null||o.dependentRequired!=null||o.dependencies!=null)return!0;for(const i of["allOf","anyOf","oneOf"]){const l=o[i];if(Array.isArray(l))for(const a of l){if(!a||typeof a!="object")continue;const c=a;if(Array.isArray(c.required)&&c.required.length>0||ze(c,r,t))return!0}}if(typeof o.$ref=="string"){const i=wn(r,o.$ref);if(i&&ze(i,r,t))return!0}for(const i of["then","else","not","contains","additionalProperties","items"]){const l=o[i];if(l&&typeof l=="object"&&!Array.isArray(l)&&ze(l,r,t))return!0}if(Array.isArray(o.items)){for(const i of o.items)if(ze(i,r,t))return!0}for(const i of["properties","patternProperties","$defs","definitions"]){const l=o[i];if(!(!l||typeof l!="object")){for(const a of Object.values(l))if(ze(a,r,t))return!0}}return!1}function jn(e,r){const t=structuredClone(e??{});if(!r)return t;const o=r.split(".");let i=t;for(let a=0;a<o.length-1;a++){const c=o[a];if(i==null||typeof i!="object")return t;const u=i[c];if(u==null||typeof u!="object")return t;i=u}const l=o[o.length-1];return i!=null&&typeof i=="object"&&delete i[l],t}function Tn(e){const r=e.lastIndexOf(".");return r===-1?"":"/"+e.slice(0,r).split(".").join("/")}function En(e){if(!e)return"";const r=e.lastIndexOf(".");return r===-1?e:e.slice(r+1)}function Sn(e,r){var t;return e.keyword!=="required"&&e.keyword!=="dependencies"||((t=e.params)==null?void 0:t.missingProperty)!==En(r)?!1:(e.instancePath??"")===Tn(r)}function Cn(e,r,t){if(!e||!t)return!1;const o=jn(r,e);t(o);const i=t.errors;return i!=null&&i.length?i.some(l=>Sn(l,e)):!1}function ve(e,r=!1,t=!0){var c,u,d;const o=X.useJsonForms(),i=(c=o.core)==null?void 0:c.data,l=(u=o.core)==null?void 0:u.validator,a=(d=o.core)==null?void 0:d.schema;return m.useMemo(()=>t?r?!0:vn(a)?Cn(e,i,l):!1:!1,[t,r,e,i,l,a])}const we=(e,r)=>{if(!e)return"";const t=r||"This field";return e.split(`
1
+ "use strict";var hn=Object.create;var Je=Object.defineProperty;var xn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var yn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var vn=(e,r,t)=>r in e?Je(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var jn=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of gn(r))!bn.call(e,i)&&i!==t&&Je(e,i,{get:()=>r[i],enumerable:!(o=xn(r,i))||o.enumerable});return e};var Pe=(e,r,t)=>(t=e!=null?hn(yn(e)):{},jn(r||!e||!e.__esModule?Je(t,"default",{value:e,enumerable:!0}):t,e));var gt=(e,r,t)=>vn(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),x=require("react"),b=require("@jsonforms/core"),Y=require("@jsonforms/react"),s=require("@radix-ui/themes"),ne=require("@radix-ui/react-icons"),Bt=require("dayjs"),Ut=x.createContext(null);function wn({children:e,onUpload:r,getDownloadUrl:t}){const o={onUpload:r,getDownloadUrl:t};return n.jsx(Ut.Provider,{value:o,children:e})}function _t(){return x.useContext(Ut)}const Wt=x.createContext(null);function Tn({children:e,services:r}){const t=x.useMemo(()=>r,[r]);return n.jsx(Wt.Provider,{value:t,children:e})}function Vt(e){const r=x.useContext(Wt);return!r||!e?null:r[e]??null}const Ht=x.createContext(null);function qt(){return x.useContext(Ht)}function Sn({children:e,...r}){return n.jsx(Ht.Provider,{value:r,children:e})}function Jt(e){var t;if(!e||typeof e!="object")return!1;const r=e;return r.type==="Categorization"&&((t=r.options)==null?void 0:t.variant)==="stepper"}function En(e){return e.elements.filter(r=>r.type==="Category")}function We(e,r,t,o,i=""){if(t&&e.rule&&!b.isVisible(e,r,i,t,o))return[];if(e.type==="Control")return[e];const l=e.elements;return Array.isArray(l)?l.flatMap(a=>We(a,r,t,o,i)):[]}function rt(e,r=""){return b.composePaths(r,b.toDataPath(e.scope))}function Cn(e,r){return e===r||e.startsWith(`${r}.`)}function Rn(e,r,t=b.toDataPath(e.scope),o=b.defaultTranslator){const i=b.Resolve.schema(r,e.scope,r),l=b.createLabelDescriptionFrom(e,i).text;return o(b.getI18nKey(i,e,t,"label"),l)}function An(e,r,t,o="",i=b.defaultTranslator){const l=r.map(a=>b.getControlPath(a));return e.map(a=>({control:a,path:rt(a,o)})).filter(({path:a})=>l.some(c=>Cn(c,a))).map(({control:a,path:c})=>({path:c,label:Rn(a,t,c,i)}))}function Fn(e,r,t=""){const o=e.map(i=>Xt(r,rt(i,t))).find(i=>Array.isArray(i)&&i.length>0);return o?{kind:"items",count:o.length}:{kind:"fields",count:e.length}}function In(e,r,t=""){return e.some(o=>{const i=Xt(r,rt(o,t));return i!=null&&i!==""&&!(Array.isArray(i)&&i.length===0)})}function Xt(e,r){return r.split(".").reduce((t,o)=>{if(!(t==null||typeof t!="object"))return t[o]},e)}function nt(e,r,t,o){return(e??b.defaultTranslator)(r,t,o).replace(/\{(\w+)\}/g,(l,a)=>o&&a in o?String(o[a]):l)}const Kt={addItem:"Add Item",remove:"Remove",removeItem:"Remove {item}",openItem:"Open {item}",confirmTitle:"Remove {item}?",confirmDescription:"Its answers are removed too. This can't be undone.",keepItem:"Keep item",removeConfirmed:"Remove item",removed:"{item} removed.",removedTotals:"{item} removed. Now {totals}.",empty:"No items have been added yet.",countOne:"{count} item",countOther:"{count} items",needsAttention:"Needs attention",done:"Done",add:"Add",cancel:"Cancel",close:"Close"},Yt={moreActions:"More actions for {file}",remove:"Remove",confirmTitle:"Remove {file}?",confirmDescription:"The file is removed from this form.",keepFile:"Keep file",removeConfirmed:"Remove file",removed:"{file} removed.",uploaded:"Uploaded"},kn=(e,r,t)=>nt(e,`list.${r}`,Kt[r],t),Oe=(e,r,t)=>nt(e,`upload.${r}`,Yt[r],t),Gt={back:"Back",continue:"Continue",stepOf:"Step {step} of {total}",review:"Review and Submit",navLabel:"Form steps",progressLabel:"Progress through the form",noteDone:"Done",noteToFix:"{count} to fix",noteItem:"{count} item added",noteItems:"{count} items added",noteField:"{count} field",noteFields:"{count} fields",noteReview:"Check and submit",missingFields:"Complete these fields to continue:",incompleteSteps:"Some steps are not complete yet:",reviewHint:"Check your answers below, then submit.",edit:"Edit",editStep:"Edit {step}"};function On(e,r,t){return nt(e,`stepper.${r}`,Gt[r],t)}const Re=(e,r,t,o=void 0)=>{x.useEffect(()=>{e===!1&&t(r,o)},[e,r,t,o])},yt=new WeakMap;function Dn(e){if(!e||typeof e!="object")return!1;const r=yt.get(e);if(r!==void 0)return r;const t=Be(e,e,new Set);return yt.set(e,t),t}function Nn(e,r){if(!r.startsWith("#/"))return;const t=r.slice(2).split("/");let o=e;for(const i of t){if(!o||typeof o!="object")return;o=o[i]}return o&&typeof o=="object"?o:void 0}function Be(e,r,t){if(!e||typeof e!="object"||t.has(e))return!1;t.add(e);const o=e;if(o.if!=null||o.dependentRequired!=null||o.dependencies!=null)return!0;for(const i of["allOf","anyOf","oneOf"]){const l=o[i];if(Array.isArray(l))for(const a of l){if(!a||typeof a!="object")continue;const c=a;if(Array.isArray(c.required)&&c.required.length>0||Be(c,r,t))return!0}}if(typeof o.$ref=="string"){const i=Nn(r,o.$ref);if(i&&Be(i,r,t))return!0}for(const i of["then","else","not","contains","additionalProperties","items"]){const l=o[i];if(l&&typeof l=="object"&&!Array.isArray(l)&&Be(l,r,t))return!0}if(Array.isArray(o.items)){for(const i of o.items)if(Be(i,r,t))return!0}for(const i of["properties","patternProperties","$defs","definitions"]){const l=o[i];if(!(!l||typeof l!="object")){for(const a of Object.values(l))if(Be(a,r,t))return!0}}return!1}function Mn(e,r){const t=structuredClone(e??{});if(!r)return t;const o=r.split(".");let i=t;for(let a=0;a<o.length-1;a++){const c=o[a];if(i==null||typeof i!="object")return t;const u=i[c];if(u==null||typeof u!="object")return t;i=u}const l=o[o.length-1];return i!=null&&typeof i=="object"&&delete i[l],t}function Ln(e){const r=e.lastIndexOf(".");return r===-1?"":"/"+e.slice(0,r).split(".").join("/")}function zn(e){if(!e)return"";const r=e.lastIndexOf(".");return r===-1?e:e.slice(r+1)}function Pn(e,r){var t;return e.keyword!=="required"&&e.keyword!=="dependencies"||((t=e.params)==null?void 0:t.missingProperty)!==zn(r)?!1:(e.instancePath??"")===Ln(r)}function $n(e,r,t){if(!e||!t)return!1;const o=Mn(r,e);t(o);const i=t.errors;return i!=null&&i.length?i.some(l=>Pn(l,e)):!1}function Te(e,r=!1,t=!0){var c,u,d;const o=Y.useJsonForms(),i=(c=o.core)==null?void 0:c.data,l=(u=o.core)==null?void 0:u.validator,a=(d=o.core)==null?void 0:d.schema;return x.useMemo(()=>t?r?!0:Dn(a)?$n(e,i,l):!1:!1,[t,r,e,i,l,a])}const Se=(e,r)=>{if(!e)return"";const t=r||"This field";return e.split(`
2
2
  `).map(o=>{const i=o.trim();return i==="is a required property"?`${t} is required`:i.startsWith("must be > ")?`${t} must be greater than ${i.slice(10)}`:i.startsWith("must be >= ")?`${t} must be at least ${i.slice(11)}`:i.startsWith("must be multiple of ")?`${t} must be a multiple of ${i.slice(20)}`:o}).join(`
3
- `)},Ht=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,uischema:a,schema:c,enabled:u,visible:d=!0})=>{var p;Se(d,t,r);const f=ve(t,i,d);if(d===!1)return null;const h=l.length===0;return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsx(s.TextField.Root,{value:e||"",onChange:x=>r(t,x.target.value===""?void 0:x.target.value),disabled:!u,placeholder:(p=a.options)==null?void 0:p.placeholder,color:h?void 0:"red",id:t}),!h&&n.jsx(s.Text,{color:"red",size:"1",children:we(l,o)}),c.description&&n.jsx(s.Text,{size:"1",color:"gray",children:c.description})]})})},qt=v.rankWith(1,v.isStringControl),Rn=X.withJsonFormsControlProps(Ht),An=new Set(["-","+","e","E"]),Xt=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,uischema:a,schema:c,enabled:u,visible:d=!0})=>{var A;Se(d,t,r);const f=ve(t,i,d);if(d===!1)return null;const h=l.length===0,p=typeof c.exclusiveMinimum=="number"?c.exclusiveMinimum:void 0,x=typeof c.minimum=="number"?c.minimum:void 0,j=p??x,b=j!==void 0&&j>=0,D=typeof c.multipleOf=="number"?c.multipleOf:c.type==="integer"?1:void 0,R=S=>{if(S===""){r(t,void 0);return}const E=Number(S);isNaN(E)||r(t,E)},$=S=>{b&&An.has(S.key)&&S.preventDefault()},C=S=>{if(!b)return;const E=S.clipboardData.getData("text");/[-+eE]/.test(E)&&S.preventDefault()};return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsx(s.TextField.Root,{type:"number",value:e??"",onChange:S=>R(S.target.value),onKeyDown:$,onPaste:C,min:j,step:D,disabled:!u,placeholder:(A=a.options)==null?void 0:A.placeholder,color:h?void 0:"red",id:t}),!h&&n.jsx(s.Text,{color:"red",size:"1",children:we(l,o)}),c.description&&n.jsx(s.Text,{size:"1",color:"gray",children:c.description})]})})},Jt=v.rankWith(2,v.or(v.isNumberControl,v.isIntegerControl)),Fn=X.withJsonFormsControlProps(Xt),Kt=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,enabled:c,visible:u=!0})=>{Se(u,t,r);const d=ve(t,i,u);if(u===!1)return null;const f=l.length===0;return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{gap:"2",align:"center",children:[n.jsx(s.Checkbox,{checked:!!e,onCheckedChange:h=>r(t,h===!0),disabled:!c,id:t}),n.jsxs(s.Text,{as:"label",size:"2",htmlFor:t,children:[o," ",d&&"*"]})]}),!f&&n.jsx(s.Text,{color:"red",size:"1",className:"block mt-1",children:we(l,o)}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",className:"block mt-1",children:a.description})]})},Yt=v.rankWith(2,v.isBooleanControl),kn=X.withJsonFormsControlProps(Kt),Gt=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,enabled:c,visible:u=!0})=>{Se(u,t,r);const d=ve(t,i,u);if(u===!1)return null;const f=l.length===0;let h=[];a.enum?h=a.enum.map(x=>({value:x,label:String(x)})):a.oneOf&&(h=a.oneOf.map(x=>({value:x.const,label:x.title||String(x.const)})));const p=e;return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"div",size:"2",weight:"bold",children:[o," ",d&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsx(s.RadioGroup.Root,{value:p!==void 0?String(p):"",onValueChange:x=>{const j=h.find(b=>String(b.value)===x);j&&r(t,j.value)},disabled:!c,children:n.jsx(s.Flex,{direction:"row",style:{flexWrap:"wrap",columnGap:"clamp(14px, 3vw, 36px)",rowGap:"clamp(8px, 1.6vw, 14px)"},children:h.map(x=>n.jsxs(s.Flex,{align:"center",gap:"2",style:{minWidth:"max-content"},children:[n.jsx(s.RadioGroup.Item,{value:String(x.value)}),n.jsx(s.Text,{size:"2",color:c?void 0:"gray",children:x.label})]},String(x.value)))})}),!f&&n.jsx(s.Text,{color:"red",size:"1",children:we(l,o)}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",children:a.description})]})})},Zt=(e,r,t)=>{var i;return v.or(v.isEnumControl,v.isOneOfControl)(e,r,t)&&((i=e==null?void 0:e.options)==null?void 0:i.format)==="radio"?3:-1},In=X.withJsonFormsControlProps(Gt),Qt=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,uischema:c,enabled:u,visible:d=!0})=>{var le,xe,re,ae;Se(d,t,r);const f=ve(t,i,d),h=((le=c.options)==null?void 0:le.autocomplete)===!0,[p,x]=m.useState(!1),[j,b]=m.useState(""),[D,R]=m.useState(0),$=m.useRef(null);if(m.useEffect(()=>{if(!h||!p)return;const M=K=>{$.current&&!$.current.contains(K.target)&&x(!1)};return document.addEventListener("mousedown",M),()=>document.removeEventListener("mousedown",M)},[h,p]),d===!1)return null;const C=a.type==="object",A=C?((xe=a.properties)==null?void 0:xe.value)??{}:a;let S=[];A.enum?S=A.enum.map(M=>({value:String(M),label:String(M),raw:M})):A.oneOf&&(S=A.oneOf.map(M=>{const K=M.const;return{value:String(K),label:M.title||String(K),raw:K}}));const E=C?typeof e=="string"||typeof e=="number"||typeof e=="boolean"?{value:e}:e??void 0:void 0,_=C?E==null?void 0:E.value:e,P=E==null?void 0:E.label,L=_!=null?String(_):"",N=P??((re=S.find(M=>M.value===L))==null?void 0:re.label)??"",T=((ae=c.options)==null?void 0:ae.placeholder)||"Select an option",ee=C&&L!==""&&!S.some(M=>M.value===L),V=l?we(l,o):ee?`"${N||L}" is no longer an available option`:"",G=V==="",W=M=>{r(t,C?{value:M.raw,label:M.label}:M.value)};if(h){const M=p?S.filter(B=>B.label.toLowerCase().includes(j.toLowerCase())):S,K=Math.min(D,M.length-1),I=B=>{W(B),x(!1)},te=B=>{B.stopPropagation(),r(t,void 0),b("")},Z=B=>{(B.key==="Enter"||B.key===" ")&&te(B)};return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsxs("div",{ref:$,style:{position:"relative"},children:[n.jsx(s.TextField.Root,{id:t,value:p?j:N,placeholder:T,disabled:!u,style:G?void 0:{outline:"2px solid var(--red-7)",outlineOffset:"-1px"},onChange:B=>{b(B.target.value),R(0),p||x(!0)},onFocus:()=>{u&&!p&&(b(""),R(0),x(!0))},onKeyDown:B=>{B.key==="Escape"?x(!1):B.key==="ArrowDown"?(B.preventDefault(),p?R(y=>Math.min(y+1,M.length-1)):(b(""),x(!0))):B.key==="ArrowUp"?(B.preventDefault(),p&&R(y=>Math.max(y-1,0))):B.key==="Enter"&&p&&M[K]&&(B.preventDefault(),I(M[K]))},children:n.jsx(s.TextField.Slot,{side:"right",children:n.jsxs(s.Flex,{align:"center",gap:"1",children:[L&&u&&n.jsx("span",{role:"button",tabIndex:0,onMouseDown:B=>B.preventDefault(),onClick:te,onKeyDown:Z,style:{lineHeight:1,color:"var(--gray-9)",padding:"0 2px",cursor:"pointer"},"aria-label":"Clear selection",children:"×"}),n.jsx(se.ChevronDownIcon,{style:{transform:p?"rotate(180deg)":void 0,transition:"transform 150ms"}})]})})}),p&&n.jsx(s.Box,{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:50,background:"var(--color-panel-solid)",borderRadius:"var(--radius-3)",boxShadow:"var(--shadow-5)",border:"1px solid var(--gray-a6)",overflow:"hidden"},children:n.jsx(s.ScrollArea,{style:{maxHeight:240},children:n.jsxs(s.Box,{p:"1",children:[M.length===0&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Text,{size:"2",color:"gray",children:"No results found."})}),M.map((B,y)=>n.jsx(s.Box,{px:"3",py:"2",onMouseDown:F=>F.preventDefault(),onClick:()=>I(B),onMouseEnter:()=>R(y),style:{cursor:"pointer",borderRadius:"var(--radius-2)",backgroundColor:y===K?"var(--accent-4)":B.value===L?"var(--accent-3)":void 0},children:n.jsx(s.Text,{size:"2",children:B.label})},B.value))]})})})]}),!G&&n.jsx(s.Text,{color:"red",size:"1",children:V}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",children:a.description})]})})}return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsxs(s.Select.Root,{value:L,onValueChange:M=>{const K=S.find(I=>I.value===M);K&&W(K)},disabled:!u,children:[n.jsx(s.Select.Trigger,{placeholder:T,color:G?void 0:"red",id:t,children:C&&P?P:void 0}),n.jsx(s.Select.Content,{children:S.map(M=>n.jsx(s.Select.Item,{value:M.value,children:M.label},M.value))})]}),!G&&n.jsx(s.Text,{color:"red",size:"1",children:V}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",children:a.description})]})})},er=v.rankWith(2,v.or(v.isEnumControl,v.isOneOfControl)),tr=v.rankWith(3,v.schemaMatches(e=>{var t;if(e.type!=="object"||e["x-search"]!==void 0)return!1;const r=(t=e.properties)==null?void 0:t.value;return Array.isArray(r==null?void 0:r.enum)||Array.isArray(r==null?void 0:r.oneOf)})),gt=X.withJsonFormsControlProps(Qt),rr=/\{([A-Za-z0-9_]+)(?:\(([^(){}]*)\))?\}/g,On={today:e=>Lt().format(e||"YYYY-MM-DD")},Dn=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint",yt=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);function We(e,r,t={}){const o={...On,...t};return e.replace(rr,(i,l,a)=>{let c;if(a===void 0){if(!yt(r,l))return i;c=r[l]}else{if(!yt(o,l))return i;try{c=o[l](a)}catch{return i}}return c==null?"":Dn(c)?String(c):i})}function tt(e){const r=[];let t=0;for(const o of e.matchAll(rr))o.index>t&&r.push(e.slice(t,o.index)),r.push(o[2]===void 0?{name:o[1]}:{name:o[1],arg:o[2]}),t=o.index+o[0].length;return t<e.length&&r.push(e.slice(t)),r}function bt(e){if(!e||typeof e!="object")return;const r=e["x-search"];return typeof(r==null?void 0:r.service)=="string"&&r.service!==""?r.service:void 0}function rt(e){if(bt(e))return e;if(e.type==="array"){const r=e.items;if(r&&!Array.isArray(r)&&bt(r))return r}}const nr=v.rankWith(4,v.schemaMatches(e=>{const r=rt(e);if(!r)return!1;const t=r.type;return t==="string"||t==="object"}));function Nn(e){if(typeof e=="string"&&e.length>0)return e;if(e&&typeof e=="object"&&typeof e.value=="string"){const r=e.value;return r.length>0?r:void 0}}function Ln(e){if(typeof e=="string")return e.length>0?{parent:e}:void 0;if(!e||typeof e!="object")return;const r=Object.entries(e);if(r.length===0)return;const t={},o=[];for(const[i,l]of r)typeof l=="string"&&l.length>0?t[i]=l:o.push(i);return o.length>0&&console.warn(`x-search.dependsOn: ignoring invalid entries [${o.join(", ")}]`),Object.keys(t).length===0?(console.warn("x-search.dependsOn: map has no valid entries; search will not fetch until fixed"),{}):t}function Mn(e,r,t){const o={};for(const[i,l]of Object.entries(e))o[i]=Nn(v.Resolve.data(r,t?`${t}.${l}`:l));return o}function vt(e){if(typeof e=="string"&&e.length>0)return{value:e};if(e&&typeof e=="object"&&typeof e.value=="string"){const r=e;return{value:r.value,label:r.label}}}function qe(e,r){return r?{...e,name:We(r,e)}:e}const zn={"small-list":{fetchOnOpen:!0,searchable:!1,paginated:!1},"large-searchable-list":{fetchOnOpen:!0,searchable:!0,paginated:!1},"large-paginated-list":{fetchOnOpen:!1,searchable:!0,paginated:!0}},Pn=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,enabled:a,visible:c=!0,schema:u,uischema:d})=>{var ut,dt,ft,pt;const f=u.type==="array",h=rt(u)??u,p=h["x-search"]??{service:"",displayTemplate:""},x=p.service??"",j=p.mode??"large-paginated-list",b=zn[j],D=(b==null?void 0:b.fetchOnOpen)??!1,R=typeof p.displayTemplate=="string"?p.displayTemplate:"",$=X.useJsonForms(),C=t.split(".").slice(0,-1).join("."),{parentValues:A,parentValuesKey:S,missingParent:E}=m.useMemo(()=>{var ge;const w=Ln(p.dependsOn);if(!w)return{parentValues:void 0,parentValuesKey:"",missingParent:!1};const z=Mn(w,(ge=$.core)==null?void 0:ge.data,C),ne=Object.keys(z).length===0||Object.values(z).some(Ce=>!Ce);return{parentValues:z,parentValuesKey:JSON.stringify(z),missingParent:ne}},[p.dependsOn,(ut=$.core)==null?void 0:ut.data,C]),_=m.useMemo(()=>A?{...p.params,...A}:p.params,[A,S,p.params]),P=$t(x),L=h.type==="object",N=typeof u.maxItems=="number"?u.maxItems:void 0,T=m.useMemo(()=>{if(f)return Array.isArray(e)?e.map(vt).filter(z=>!!z):[];const w=vt(L||typeof e=="string"?e:void 0);return w?[w]:[]},[e,f,L]),ee=f||(dt=T[0])==null?void 0:dt.value,V=f||(ft=T[0])==null?void 0:ft.label,G=m.useMemo(()=>new Set(T.map(w=>w.value)),[T]),W=T.length>0,le=m.useRef({}),[xe,re]=m.useState(0),ae=m.useMemo(()=>{const w={};for(const z of T)w[z.value]=z.label||le.current[z.value]||z.value;return w},[T,xe]),M=f&&N!==void 0&&T.length>=N,K=x?P?b?R?null:"x-search.displayTemplate is required.":`Invalid x-search.mode "${j}". Expected "small-list", "large-searchable-list", or "large-paginated-list".`:`Search service "${x}" is not registered.`:"Search not configured.",I=a!==!1,te=!l||l.length===0,[Z,B]=m.useState(!1),[y,F]=m.useState(""),[U,Y]=m.useState([]),[g,k]=m.useState(!1),[Q,ie]=m.useState(!1),[ce,pe]=m.useState(!1),[O,H]=m.useState(null),[ue,J]=m.useState(void 0),q=m.useRef(void 0),ye=m.useRef(null),Re=m.useRef(null),Pe=m.useRef(null),de=m.useRef(void 0),je=m.useRef(void 0),Le=m.useCallback(w=>{if(f){r(t,w.length>0?w.map(ne=>L?ne:ne.value):void 0);return}const z=w[0];if(!z){r(t,void 0);return}r(t,L?{value:z.value,label:z.label}:z.value)},[r,t,f,L]);m.useEffect(()=>{if(!A)return;const w=je.current;if(je.current=A,!w||!W)return;Object.keys(A).some(ne=>w[ne]!==void 0&&w[ne]!==A[ne])&&r(t,void 0)},[S,W,r,t]),m.useEffect(()=>{var ge,Ce;if(f){if(K||L)return;const Ae=T.filter(Oe=>!Oe.label&&!le.current[Oe.value]);if(Ae.length===0||!(P!=null&&P.resolve))return;let Ie=!1;return Promise.all(Ae.map(async Oe=>{try{const ht=await P.resolve(Oe.value,_);if(Ie||!ht)return;le.current[Oe.value]=qe(ht,R).name}catch{}})).then(()=>{Ie||re(Oe=>Oe+1)}),()=>{Ie=!0}}if(K){J(void 0),de.current=void 0;return}if(!ee){J(void 0),de.current=void 0;return}if(((ge=de.current)==null?void 0:ge.value)===ee&&((Ce=de.current)==null?void 0:Ce.label)===V)return;if(L&&V){J({id:ee,name:V}),de.current={value:ee,label:V};return}if(J({id:ee,name:V??ee}),!(P!=null&&P.resolve)){de.current={value:ee,label:V};return}let w=!1;const z=ee,ne=V;return P.resolve(z,_).then(Ae=>{w||(Ae&&J(qe(Ae,R)),de.current={value:z,label:ne})}).catch(()=>{w||(de.current={value:z,label:ne})}),()=>{w=!0}},[K,ee,V,L,f,T,P,_,R]);const Me=m.useCallback(async(w,z=!1)=>{var ge;if(K)return;if(!P){H("Search service not configured.");return}(ge=Re.current)==null||ge.abort();const ne=new AbortController;Re.current=ne,z?pe(!0):(ie(!0),pe(!1),H(null));try{const Ce=await P.search({query:w,cursor:z?q.current:void 0,signal:ne.signal,params:_});if(ne.signal.aborted)return;const Ae=(Ce.options??[]).map(Ie=>qe(Ie,R));Y(z?Ie=>[...Ie,...Ae]:Ae),q.current=Ce.nextCursor,k(((b==null?void 0:b.paginated)??!1)&&Ce.nextCursor!=null)}catch{if(ne.signal.aborted)return;H("Failed to load results. Please try again.")}finally{ne.signal.aborted||(z?pe(!1):ie(!1))}},[K,P,b==null?void 0:b.paginated,_,R]);m.useEffect(()=>{if(!Z)return;const w=z=>{Pe.current&&!Pe.current.contains(z.target)&&B(!1)};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[Z]),m.useEffect(()=>{var w;Z||((w=Re.current)==null||w.abort(),F(""),Y([]),k(!1),H(null),ie(!1),pe(!1),q.current=void 0)},[Z]),m.useEffect(()=>{if(!Z)return;if(E){Y([]),k(!1),H(null),q.current=void 0;return}if(!y&&!D){Y([]),k(!1),H(null),q.current=void 0;return}ye.current&&clearTimeout(ye.current);const w=y?300:0;return ye.current=setTimeout(()=>{Y([]),k(!1),q.current=void 0,Me(y)},w),()=>{ye.current&&clearTimeout(ye.current)}},[y,Z,D,Me,E,S]),Se(c,t,r);const $e=ve(t,i,c);if(c===!1)return null;const lt=()=>{F(""),Y([]),k(!1),H(null),q.current=void 0,B(!0)},Zr=w=>{if(f){const z=G.has(w.id);if(!z&&M)return;const ne=z?T.filter(ge=>ge.value!==w.id):[...T,{value:w.id,label:w.name}];z||(le.current[w.id]=w.name,re(ge=>ge+1)),Le(ne),F("");return}Le([{value:w.id,label:w.name}]),J(w),de.current={value:w.id,label:L?w.name:void 0},B(!1)},at=w=>{w.stopPropagation(),r(t,void 0),J(void 0)},ct=(w,z)=>{w.stopPropagation(),Le(T.filter(ne=>ne.value!==z))},Qr=w=>{(w.key==="Enter"||w.key===" ")&&at(w)},en=((pt=d==null?void 0:d.options)==null?void 0:pt.placeholder)??"Select an option",tn=f?"":(ue==null?void 0:ue.name)??"";return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",$e&&n.jsx(s.Text,{color:"red",children:"*"})]}),f&&T.length>0&&n.jsx(s.Flex,{gap:"1",wrap:"wrap",mb:"1",children:T.map(w=>n.jsxs(s.Flex,{align:"center",gap:"1",px:"2",py:"1",style:{background:"var(--accent-3)",borderRadius:"var(--radius-2)",fontSize:"var(--font-size-1)"},children:[n.jsx(s.Text,{size:"1",children:ae[w.value]??w.value}),I&&n.jsx("span",{role:"button",tabIndex:0,"aria-label":`Remove ${ae[w.value]??w.value}`,onMouseDown:z=>z.preventDefault(),onClick:z=>ct(z,w.value),onKeyDown:z=>{(z.key==="Enter"||z.key===" ")&&ct(z,w.value)},style:{lineHeight:1,color:"var(--gray-11)",cursor:"pointer"},children:"×"})]},w.value))}),n.jsxs("div",{ref:Pe,style:{position:"relative"},children:[n.jsx(s.TextField.Root,{id:t,value:Z?y:tn,placeholder:Z&&(b!=null&&b.searchable)?"Search...":en,disabled:!I,readOnly:Z&&!(b!=null&&b.searchable)||f&&!Z,style:te?void 0:{outline:"2px solid var(--red-7)",outlineOffset:"-1px"},onChange:w=>{b!=null&&b.searchable&&(F(w.target.value),Z||lt())},onFocus:()=>{I&&!Z&&lt()},onKeyDown:w=>{w.key==="Escape"&&B(!1)},children:n.jsx(s.TextField.Slot,{side:"right",children:n.jsxs(s.Flex,{align:"center",gap:"1",children:[W&&I&&n.jsx("span",{role:"button",tabIndex:0,onMouseDown:w=>w.preventDefault(),onClick:at,onKeyDown:Qr,style:{lineHeight:1,color:"var(--gray-9)",padding:"0 2px",cursor:"pointer"},"aria-label":"Clear selection",children:"×"}),n.jsx(se.ChevronDownIcon,{style:{transform:Z?"rotate(180deg)":void 0,transition:"transform 150ms"}})]})})}),Z&&n.jsx(s.Box,{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:50,background:"var(--color-panel-solid)",borderRadius:"var(--radius-3)",boxShadow:"var(--shadow-5)",border:"1px solid var(--gray-a6)",overflow:"hidden"},children:K?n.jsx(s.Box,{p:"3",children:n.jsx(s.Text,{size:"2",color:"gray",children:K})}):n.jsx(s.ScrollArea,{style:{maxHeight:240},children:n.jsxs(s.Box,{p:"1",children:[Q&&n.jsx(s.Flex,{justify:"center",p:"4",children:n.jsx(s.Spinner,{})}),!Q&&O&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Text,{size:"2",color:"red",children:O})}),!Q&&!O&&U.length===0&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Text,{size:"2",color:"gray",children:E?"Select the related field first.":y||D?"No results found.":"Type to search…"})}),U.map(w=>{const z=G.has(w.id),ne=M&&!z;return n.jsx(s.Box,{px:"3",py:"2",onMouseDown:ge=>ge.preventDefault(),onClick:()=>{ne||Zr(w)},"aria-disabled":ne||void 0,style:{cursor:ne?"not-allowed":"pointer",opacity:ne?.5:1,borderRadius:"var(--radius-2)",backgroundColor:z?"var(--accent-3)":void 0},className:ne?void 0:"hover:bg-(--gray-3)",children:n.jsxs(s.Flex,{align:"center",justify:"between",gap:"2",children:[n.jsx(s.Text,{size:"2",children:w.name}),f&&z&&n.jsx(s.Text,{size:"1",color:"gray",children:"✓"})]})},w.id)}),(b==null?void 0:b.paginated)&&g&&!ce&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Button,{variant:"ghost",size:"1",style:{width:"100%"},onMouseDown:w=>w.preventDefault(),onClick:()=>void Me(y,!0),children:"Load more"})}),ce&&n.jsx(s.Flex,{justify:"center",p:"2",children:n.jsx(s.Spinner,{})})]})})})]}),!te&&n.jsx(s.Text,{color:"red",size:"1",children:we(l,o)}),u.description&&n.jsx(s.Text,{size:"1",color:"gray",children:u.description})]})})},or=X.withJsonFormsControlProps(Pn),$n=e=>{if(e)return/^\d{2}:\d{2}$/.test(e)?`${e}:00`:e},wt=(e,r)=>{if(!e)return"";const t=e.match(/^(\d{2}:\d{2})(:\d{2})?/);return t?r?`${t[1]}${t[2]??":00"}`:t[1]:e},Bn=(e,r)=>Lt(`${e}T${r}`).format(),Un=({path:e,label:r,required:t,errors:o,description:i,children:l})=>{const a=o.length===0;return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:e,children:[r," ",t&&n.jsx(s.Text,{color:"red",children:"*"})]}),l,!a&&n.jsx(s.Text,{color:"red",size:"1",children:we(o,r)}),i&&n.jsx(s.Text,{size:"1",color:"gray",children:i})]})})},sr=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,uischema:c,enabled:u,visible:d=!0})=>{var S;m.useEffect(()=>{d===!1&&r(t,void 0)},[d,t,r]);const f=ve(t,i,d);if(d===!1)return null;const h=l.length===0,p=typeof e=="string"?e:"",x=((S=c==null?void 0:c.options)==null?void 0:S.showSeconds)===!0,j=x?1:60,b=E=>n.jsx(Un,{path:t,label:o,required:f,errors:l,description:a.description,children:E});if(a.format==="time")return b(n.jsx(s.TextField.Root,{type:"time",step:j,value:wt(p,x),onChange:E=>r(t,$n(E.target.value)),disabled:!u,color:h?void 0:"red",id:t}));const D=a.format==="date-time",[R="",$=""]=p.split("T"),C=wt($,x),A=(E,_)=>{if(!E){r(t,void 0);return}r(t,D?Bn(E,_||"00:00"):E)};return b(n.jsxs(s.Flex,{gap:"2",align:"center",children:[n.jsx(s.TextField.Root,{type:"date",value:R,disabled:!u,color:h?void 0:"red",onChange:E=>A(E.target.value,C),id:t,style:{flex:1}}),D&&n.jsx(s.TextField.Root,{type:"time",step:j,value:C,disabled:!u||!R,color:h?void 0:"red",onChange:E=>A(R,E.target.value),style:{flex:1}})]}))},ir=v.rankWith(2,v.or(v.isDateControl,v.isDateTimeControl,v.isTimeControl)),_n=X.withJsonFormsControlProps(sr),Xe="var(--form-steps-offset, 16px)",Vn=e=>e.enabled?n.jsx(Wn,{...e}):n.jsx(Xn,{...e}),Wn=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l})=>{var B;const a=X.useJsonForms(),c=a.core,u=Ut(),d=(c==null?void 0:c.schema)??r,f=c==null?void 0:c.data,h=c==null?void 0:c.ajv,p=a.config,x=(B=a.i18n)==null?void 0:B.translate,j=(y,F)=>bn(x,y,F),b=lr(e,t),D=b.length,R=D,$=m.useMemo(()=>[...(c==null?void 0:c.errors)??[],...(c==null?void 0:c.additionalErrors)??[]],[c==null?void 0:c.errors,c==null?void 0:c.additionalErrors]),C=m.useMemo(()=>b.map(y=>xn(Ue(y,f,h,p,t),$,d,t,x)),[e,t,f,h,p,$,d,x]),[A,S]=m.useState(0),[E,_]=m.useState(()=>{const y=(U,Y)=>C[Y].length===0&&yn(Ue(U,f,h,p,t),f,t),F=b.findIndex((U,Y)=>!y(U,Y));return F===-1?R:F}),[P,L]=m.useState(new Set),N=Math.min(A,R),T=N===R,ee=m.useEffectEvent(()=>{var y;return(y=u==null?void 0:u.onStepChange)==null?void 0:y.call(u,{step:N,count:D,last:N===R})});m.useEffect(()=>{ee()},[N,D,R]);const V=m.useRef(null),G=m.useRef(null),W=m.useRef(N);if(m.useEffect(()=>{var U,Y;if(W.current===N)return;W.current=N;const y=V.current,F=y&&parseFloat(getComputedStyle(y).scrollMarginTop)||0;y&&y.getBoundingClientRect().top<F&&((U=y.scrollIntoView)==null||U.call(y,{block:"start",behavior:"smooth"})),(Y=G.current)==null||Y.focus({preventScroll:!0})},[N]),!D)return null;const le=y=>{y>E&&y!==N||S(y)},xe=()=>{var F,U;if((F=C[N])!=null&&F.length){L(Y=>new Set(Y).add(N)),(U=u==null?void 0:u.onInvalidStep)==null||U.call(u);return}const y=Math.min(N+1,R);S(y),_(Y=>Math.max(Y,y))},re=[...b.map(y=>cr(y,x)),j("review")],ae=re.length,M=y=>{var F;return y===N?"current":y<D&&((F=C[y])!=null&&F.length)&&(P.has(y)||y<E)?"error":y<E||y<D&&y<N?"done":"todo"},K=(y,F)=>{var U;return F==="error"||F==="current"&&P.has(y)?((U=C[y])==null?void 0:U.length)??0:0},I=(y,F)=>{if(y===R)return j("noteReview");if(K(y,F)>0)return j("noteToFix",{count:K(y,F)});if(F==="done")return j("noteDone");const U=gn(Ue(b[y],f,h,p,t),f,t),Y=U.count===1;return U.kind==="items"?j(Y?"noteItem":"noteItems",{count:U.count}):j(Y?"noteField":"noteFields",{count:U.count})},te=T?void 0:Jn(b[N],x),Z=C.map((y,F)=>({index:F,p:y})).filter(({p:y})=>y.length).map(({index:y,p:F})=>({key:String(y),label:`${re[y]}: ${F.map(U=>U.label).join(", ")}`,onClick:()=>{L(U=>new Set(U).add(y)),le(y)}}));return n.jsxs(s.Flex,{ref:V,gap:"5",align:"start",style:{scrollMarginTop:Xe},children:[n.jsx(s.Box,{asChild:!0,display:{initial:"none",sm:"block"},p:"4",style:{...Ke,flex:"0 0 248px",position:"sticky",top:Xe,maxHeight:`calc(100vh - 2 * ${Xe})`,overflowY:"auto"},children:n.jsx("nav",{"aria-label":j("navLabel"),children:n.jsx("ol",{style:{listStyle:"none",margin:0,padding:0},children:re.map((y,F)=>{const U=M(F);return n.jsxs("li",{style:{position:"relative"},children:[F<ae-1&&n.jsx("span",{"aria-hidden":!0,style:{position:"absolute",left:21,top:40,bottom:-4,width:2,borderRadius:1,background:U==="done"?"var(--green-9)":"var(--gray-a5)"}}),n.jsx(Hn,{index:F,label:y,note:I(F,U),errorCount:K(F,U),status:U,disabled:F>E,onSelect:()=>le(F)})]},`${t}-step-${F}`)})})})}),n.jsxs(s.Box,{style:{...Ke,flex:1,minWidth:0},children:[n.jsxs(s.Box,{px:{initial:"4",sm:"6"},pt:{initial:"4",sm:"5"},pb:"4",children:[n.jsx(s.Text,{as:"p",size:"1",weight:"bold",color:"gray",style:{letterSpacing:"0.06em",textTransform:"uppercase"},children:j("stepOf",{step:N+1,total:ae})}),n.jsx(s.Heading,{ref:G,tabIndex:-1,size:"5",as:"h2",mt:"1",style:{outline:"none"},children:re[N]}),te&&n.jsx(s.Text,{as:"p",size:"2",color:"gray",mt:"1",children:te}),n.jsx(s.Progress,{value:(N+1)/ae*100,size:"1",mt:"4","aria-label":j("progressLabel")})]}),n.jsxs(s.Box,{px:{initial:"4",sm:"6"},pb:"5","data-form-review":T?"":void 0,children:[T&&(Z.length?n.jsx(jt,{title:j("incompleteSteps"),items:Z}):n.jsx(s.Text,{as:"p",size:"2",color:"gray",mb:"5",children:j("reviewHint")})),b.map((y,F)=>{const U=T||F===N;return n.jsxs(s.Box,{hidden:!U,mb:T?"6":void 0,children:[T&&n.jsxs(s.Flex,{justify:"between",align:"center",mb:"3",pb:"2",style:{borderBottom:"1px solid var(--gray-a4)"},children:[n.jsx(s.Heading,{size:"3",as:"h3",children:re[F]}),n.jsx(s.Button,{type:"button",variant:"ghost",onClick:()=>le(F),"aria-label":j("editStep",{step:re[F]}),children:j("edit")})]}),!T&&P.has(F)&&C[F].length>0&&n.jsx(jt,{title:j("missingFields"),items:C[F].map(Y=>({key:Y.path,label:Y.label,onClick:()=>qn(Y.path)}))}),n.jsx(ar,{category:y,schema:r,path:t,renderers:o,cells:i,enabled:l&&!T})]},`${t}-${F}`)})]}),n.jsxs(s.Flex,{gap:"3",align:"center",wrap:"wrap",px:{initial:"4",sm:"6"},py:"4",style:{position:"sticky",bottom:0,zIndex:1,borderTop:"1px solid var(--gray-a5)",background:"var(--color-panel-solid)",borderRadius:"0 0 var(--radius-5) var(--radius-5)"},children:[N>0&&n.jsxs(s.Button,{type:"button",variant:"ghost",color:"gray",size:"3",onClick:()=>S(N-1),children:[n.jsx(se.ChevronLeftIcon,{}),j("back")]}),n.jsx(s.Box,{flexGrow:"1"}),u==null?void 0:u.actions,N<R&&n.jsxs(s.Button,{type:"button",size:"3",onClick:xe,children:[j("continue"),n.jsx(se.ChevronRightIcon,{})]})]})]})]})},Ke={background:"var(--color-panel-solid)",border:"1px solid var(--gray-a4)",borderRadius:"var(--radius-5)",boxShadow:"var(--shadow-2)"};function Hn({index:e,label:r,note:t,errorCount:o,status:i,disabled:l,onSelect:a}){const c={done:{background:"var(--green-9)",color:"white"},current:{background:"var(--color-panel-solid)",color:"var(--accent-11)",boxShadow:"inset 0 0 0 2px var(--accent-9)"},error:{background:"var(--red-9)",color:"white"},todo:{background:"var(--color-panel-solid)",color:"var(--gray-11)",boxShadow:"inset 0 0 0 2px var(--gray-a6)"}};return n.jsx("button",{type:"button",onClick:a,disabled:l,"aria-current":i==="current"?"step":void 0,className:"w-full rounded-md disabled:cursor-default enabled:hover:bg-[var(--gray-a2)]",style:{border:0,background:"transparent",cursor:"pointer",textAlign:"left",padding:"8px 8px 12px"},children:n.jsxs(s.Flex,{gap:"3",align:"start",children:[n.jsx(s.Flex,{align:"center",justify:"center","aria-hidden":!0,style:{width:28,height:28,flex:"0 0 28px",borderRadius:"50%",fontSize:13,fontWeight:600,...c[i]},children:i==="done"?n.jsx(se.CheckIcon,{width:16,height:16}):e+1}),n.jsxs(s.Box,{style:{minWidth:0,flex:1,paddingTop:2},children:[n.jsxs(s.Flex,{align:"center",gap:"2",justify:"between",children:[n.jsx(s.Text,{size:"2",weight:i==="current"?"bold":"medium",style:{color:i==="current"?"var(--accent-11)":"var(--gray-12)"},children:r}),o>0&&n.jsx(s.Flex,{align:"center",justify:"center","aria-hidden":!0,"data-testid":"step-error-count",style:{minWidth:20,height:20,padding:"0 6px",boxSizing:"border-box",borderRadius:10,background:"var(--red-9)",color:"white",fontSize:12,fontWeight:600,lineHeight:1,flexShrink:0},children:o})]}),n.jsx(s.Text,{as:"p",size:"1",color:o>0?"red":"gray",children:t})]})]})})}function qn(e){var t;const r=document.getElementById(e);(t=r==null?void 0:r.scrollIntoView)==null||t.call(r,{block:"center"}),r==null||r.focus()}function jt({title:e,items:r}){return n.jsxs(s.Callout.Root,{color:"red",mb:"4",role:"alert",children:[n.jsx(s.Callout.Icon,{children:n.jsx(se.ExclamationTriangleIcon,{})}),n.jsx(s.Callout.Text,{children:e}),n.jsx("ul",{style:{margin:0,paddingLeft:20},children:r.map(t=>n.jsx("li",{children:n.jsx(s.Button,{type:"button",variant:"ghost",color:"red",size:"1",onClick:t.onClick,children:t.label})},t.key))})]})}const Xn=({uischema:e,schema:r,path:t,renderers:o,cells:i})=>{var f;const l=(f=X.useJsonForms().i18n)==null?void 0:f.translate,a=Ut(),c=lr(e,t),u=c.length,d=m.useEffectEvent(()=>{var h;return(h=a==null?void 0:a.onStepChange)==null?void 0:h.call(a,{step:u,count:u,last:!0})});return m.useEffect(()=>{d()},[u]),n.jsx(s.Flex,{direction:"column",gap:"6",p:{initial:"4",sm:"6"},style:Ke,"data-form-review":"",children:c.map((h,p)=>n.jsxs(s.Box,{children:[n.jsx(s.Heading,{size:"3",as:"h3",mb:"3",children:cr(h,l)}),n.jsx(ar,{category:h,schema:r,path:t,renderers:o,cells:i,enabled:!1})]},`${t}-${p}`))})};function lr(e,r){var a,c;const t=X.useJsonForms(),o=(a=t.core)==null?void 0:a.ajv,i=(c=t.core)==null?void 0:c.data,l=t.config;return pn(e).filter(u=>!u.rule||!o||v.isVisible(u,i,r,o,l))}function ar({category:e,schema:r,path:t,renderers:o,cells:i,enabled:l}){return n.jsx(s.Flex,{direction:"column",gap:"4",children:e.elements.map((a,c)=>n.jsx(X.JsonFormsDispatch,{uischema:a,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${c}`))})}function cr(e,r){return v.deriveLabelForUISchemaElement(e,r??v.defaultTranslator)??e.label}function Jn(e,r){var i;const t=(i=e==null?void 0:e.options)==null?void 0:i.description;if(!e||!t)return;const o=v.getI18nKeyPrefixBySchema(void 0,e);return(r??v.defaultTranslator)(o?`${o}.description`:t,t)}const ur=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l,visible:a=!0})=>{const u=e.elements;return a===!1?null:n.jsx(s.Flex,{direction:"column",gap:"4",children:u.map((d,f)=>n.jsx(X.JsonFormsDispatch,{uischema:d,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${f}`))})},dr=v.rankWith(1,v.uiTypeIs("VerticalLayout")),fr=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l,visible:a=!0})=>{const u=e.elements;return a===!1?null:n.jsx(s.Flex,{direction:"row",gap:"4",children:u.map((d,f)=>n.jsx(s.Box,{style:{flex:1},children:n.jsx(X.JsonFormsDispatch,{uischema:d,schema:r,path:t,renderers:o,cells:i,enabled:l})},`${t}-${f}`))})},pr=v.rankWith(1,v.uiTypeIs("HorizontalLayout")),hr=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l,visible:a=!0})=>{const c=e,u=c.elements;return a===!1?null:n.jsxs(s.Box,{mb:"6",children:[c.label&&n.jsx(s.Heading,{size:"3",mb:"3",className:"text-gray-500 uppercase tracking-wide font-semibold",children:c.label}),n.jsx(s.Flex,{direction:"column",gap:"4",children:u.map((d,f)=>n.jsx(X.JsonFormsDispatch,{uischema:d,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${f}`))})]})},mr=v.rankWith(1,v.uiTypeIs("Group")),xr=e=>e.visible===!1?null:_t(e.uischema)?n.jsx(Vn,{uischema:e.uischema,schema:e.schema,path:e.path,renderers:e.renderers,cells:e.cells,enabled:e.enabled}):n.jsx(Kn,{...e}),Kn=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l})=>{var h;const c=e.elements.filter(p=>p.type==="Category"),[u,d]=m.useState(((h=c[0])==null?void 0:h.label)||"");if(!c.length)return null;const f=c.find(p=>p.label===u)?u:c[0].label;return n.jsxs(s.Tabs.Root,{value:f,onValueChange:d,children:[n.jsx(s.Tabs.List,{children:c.map((p,x)=>n.jsx(s.Tabs.Trigger,{value:p.label,children:p.label},`${t}-${x}`))}),n.jsx(s.Box,{pt:"3",children:c.map((p,x)=>n.jsx(s.Tabs.Content,{value:p.label,children:n.jsx(s.Flex,{direction:"column",gap:"4",children:p.elements.map((j,b)=>n.jsx(X.JsonFormsDispatch,{uischema:j,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${x}-${b}`))})},`${t}-${x}`))})]})},gr=v.rankWith(1,v.uiTypeIs("Categorization"));function Te(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(0)} MB`:e>=1024?`${(e/1024).toFixed(0)} KB`:`${e} B`}function Ee(e){const r=e.split(",").map(l=>l.trim()).filter(Boolean),t=r.filter(l=>l.startsWith(".")),i=(t.length>0?t:r).map(l=>{if(l.endsWith("/*"))return l.split("/")[0].toUpperCase()+"S";if(l.startsWith("."))return l.slice(1).toUpperCase();const a=l.split("/")[1];return a?a.toUpperCase():l});return[...new Set(i)].join(", ")}const Yn="image/png,image/jpeg,image/gif,image/webp,application/pdf,text/html,text/plain,.png,.jpg,.jpeg,.gif,.webp,.pdf,.html,.htm,.txt";function yr(e,r){return r.split(",").map(o=>o.trim()).filter(Boolean).some(o=>o==="*"||o==="*/*"?!0:o.endsWith("/*")?(e.type??"").startsWith(o.slice(0,-1)):o.startsWith(".")?e.name.toLowerCase().endsWith(o.toLowerCase()):e.type===o)}function Gn(e){const r=!!e.type,t=Ye(e.name)!==void 0;return!r&&!t?!0:yr(e,Yn)}function Ye(e){const r=e.split(/[/\\]/).pop()??e,t=r.lastIndexOf(".");if(!(t<=0||t===r.length-1))return r.slice(t)}function Zn(e,r,t){br(new Blob([e],{type:t}),r)}function br(e,r){const t=URL.createObjectURL(e),o=document.createElement("a");o.href=t,o.download=r,o.click(),setTimeout(()=>URL.revokeObjectURL(t),0)}async function Qn(e,r){const t=await fetch(e);if(!t.ok)throw new Error(`Download failed (${t.status})`);br(await t.blob(),r)}function eo(e,r,t){const o=t.name||t.key;if(!e)return o;const i=nt(e,r,o),l=Ye(t.name??"")??Ye(t.key);return!l||i.toLowerCase().endsWith(l.toLowerCase())?i:`${i}${l}`}const to=new Set(["/","\\","<",">",":",'"',"|","?","*"]),ro=e=>to.has(e)||e.charCodeAt(0)<32||e.charCodeAt(0)===127;function no(e,r){const t=Array.from(e,o=>ro(o)?"_":o).join("").trim();return t===""||t.startsWith(".")?r:t}function nt(e,r,t){const o=r!==null&&typeof r=="object"&&!Array.isArray(r)?r:{};return no(We(e,o),t)}function oo(e){return e?Array.isArray(e)?e:[e]:[]}const so=({data:e,handleChange:r,path:t,label:o,required:i,uischema:l,schema:a,enabled:c,errors:u,visible:d=!0})=>{const f=zt();Se(d,t,r);const h=ve(t,i,d),p=!u||u.length===0,x=(a==null?void 0:a["x-file"])??{},j=(l==null?void 0:l.options)??{},b=x.maxFiles??j.maxFiles??1,D=x.maxSize??j.maxSize??5*1024*1024,R=x.accept??j.accept??"image/*,application/pdf",$=typeof x.fileName=="string"?x.fileName:void 0,C=b>1,A=c!==!1,[S,E]=m.useState(!1),[_,P]=m.useState(null),[L,N]=m.useState({}),[T,ee]=m.useState({}),V=m.useRef(new Set),G=m.useRef(null),W=oo(e),le=W.length>=b,xe=g=>{const k=T[g];return{name:(k==null?void 0:k.name)??g,type:k==null?void 0:k.type}},re=async g=>{var ie,ce;const k=(ie=T[g])==null?void 0:ie.blobUrl;if(k)return k;const Q=await((ce=f==null?void 0:f.getDownloadUrl)==null?void 0:ce.call(f,g));return Q==null?void 0:Q.url},ae=(g,k)=>{N(Q=>({...Q,[g]:k}))},M=g=>{N(k=>{if(!k[g])return k;const Q={...k};return delete Q[g],Q})};m.useEffect(()=>()=>{V.current.forEach(g=>URL.revokeObjectURL(g)),V.current.clear()},[]);const K=m.useCallback(async g=>{if(P(null),W.length>=b){P(`Maximum ${b} file${b>1?"s":""} allowed.`);return}if(g.size>D){P(`File exceeds the ${Te(D)} limit.`);return}if(!yr(g,R)){P(`Invalid type. Accepted: ${Ee(R)}`);return}if(!(f!=null&&f.onUpload)){P("Upload service not configured.");return}try{const k=await f.onUpload(g),Q=URL.createObjectURL(g);V.current.add(Q);const ie={key:k.key,name:k.name??g.name,type:g.type||void 0,blobUrl:Q};ee(pe=>({...pe,[k.key]:ie}));const ce=[...W,k.key];r(t,C?ce:ce[0])}catch{P("Upload failed. Please try again."),G.current&&(G.current.value="")}},[W,b,D,R,f,t,r,C]);if(d===!1)return null;const I=g=>{g.preventDefault(),g.stopPropagation(),!(!A||le)&&E(g.type==="dragenter"||g.type==="dragover")},te=g=>{var k;g.preventDefault(),g.stopPropagation(),E(!1),!(!A||le)&&(k=g.dataTransfer.files)!=null&&k[0]&&K(g.dataTransfer.files[0])},Z=g=>{var k;(k=g.target.files)!=null&&k[0]&&(K(g.target.files[0]),g.target.value="")},B=g=>{if(!A)return;ee(Q=>{var pe;const ie={...Q},ce=(pe=ie[g])==null?void 0:pe.blobUrl;return ce&&(URL.revokeObjectURL(ce),V.current.delete(ce)),delete ie[g],ie}),M(g);const k=W.filter(Q=>Q!==g);r(t,C?k.length>0?k:void 0:k[0])},y=async(g,k)=>{var ce,pe;g.preventDefault(),M(k);const Q=(ce=T[k])==null?void 0:ce.blobUrl;if(Q){(pe=window.open(Q,"_blank","noopener,noreferrer"))==null||pe.focus();return}const ie=window.open("","_blank");if(ie)try{const O=await re(k);O?ie.location.href=O:(ie.close(),ae(k,"Unable to open file."))}catch{ie.close(),ae(k,"Unable to open file.")}},F=async(g,k)=>{M(g);try{const Q=await re(g);if(!Q){ae(g,"Unable to download file.");return}await Qn(Q,k)}catch{ae(g,"Unable to download file.")}};if(!A&&W.length===0)return null;const U=b-W.length,Y=A&&!le;return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{align:"center",justify:"between",mb:"2",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",children:[o,h&&n.jsx(s.Text,{color:"red",children:" *"})]}),n.jsx(s.Text,{size:"1",color:"gray",children:C?`Up to ${b} files · ${Te(D)} each · ${Ee(R)}`:`${Te(D)} · ${Ee(R)}`})]}),W.map((g,k)=>{var J;const Q=k+1,ie=(J=T[g])==null?void 0:J.name,ce=eo($,{index:Q},{name:ie,key:g}),pe=$?ce:ie??"Uploaded File",O=!!($&&ie),H=L[g],ue=Gn(xe(g));return n.jsxs(s.Card,{size:"2",variant:"surface",mb:"2",children:[n.jsxs(s.Flex,{align:"center",gap:"3",children:[n.jsx(s.Box,{style:{background:"var(--blue-3)",padding:8,borderRadius:6,color:"var(--blue-9)",flexShrink:0},children:n.jsx(se.FileTextIcon,{width:"20",height:"20"})}),n.jsxs(s.Box,{style:{flex:1,overflow:"hidden"},children:[n.jsx(s.Text,{size:"2",weight:"bold",style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:pe}),O&&n.jsx(s.Text,{size:"1",color:"gray",style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ie})]}),n.jsxs(s.Flex,{align:"center",gap:"2",style:{flexShrink:0},children:[ue&&n.jsx(s.Button,{variant:"soft",color:"blue",size:"1",onClick:q=>void y(q,g),children:"View"}),n.jsx(s.Tooltip,{content:"Download",children:n.jsx(s.IconButton,{variant:"ghost",color:"gray","aria-label":"Download",onClick:()=>void F(g,ce),children:n.jsx(se.DownloadIcon,{})})}),n.jsx(se.CheckCircledIcon,{style:{color:"var(--green-9)",width:18,height:18}}),A&&n.jsx(s.IconButton,{variant:"ghost",color:"gray",onClick:()=>B(g),children:n.jsx(se.Cross2Icon,{})})]})]}),H&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:H})]},g)}),Y&&n.jsxs("div",{role:"button",tabIndex:0,onClick:()=>{var g;return(g=G.current)==null?void 0:g.click()},onKeyDown:g=>{var k;(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),(k=G.current)==null||k.click())},onDragEnter:I,onDragLeave:I,onDragOver:I,onDrop:te,style:{cursor:"pointer"},className:["border-2 border-dashed rounded-lg p-6 text-center","transition-all duration-200 ease-in-out",S?"border-blue-500 bg-blue-50":_?"border-red-300 bg-red-50":"border-gray-300 hover:border-blue-400 hover:bg-gray-50"].join(" "),children:[n.jsx("input",{ref:G,type:"file",style:{display:"none"},accept:R,onChange:Z}),n.jsx(s.Flex,{direction:"column",align:"center",gap:"2",children:_?n.jsxs(n.Fragment,{children:[n.jsx(se.ExclamationTriangleIcon,{style:{width:32,height:32,color:"var(--red-9)"}}),n.jsx(s.Text,{size:"2",color:"red",weight:"medium",children:_}),n.jsx(s.Text,{size:"1",color:"gray",children:"Click to try again"})]}):n.jsxs(n.Fragment,{children:[n.jsx(se.UploadIcon,{style:{width:32,height:32,color:"var(--gray-8)"}}),n.jsx(s.Text,{size:"2",weight:"medium",children:W.length>0?`Add another file (${U} remaining)`:"Click to upload or drag and drop"}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Te(D)," max · ",Ee(R)]})]})})]}),A&&le&&C&&n.jsxs(s.Text,{size:"1",color:"gray",mt:"1",style:{display:"block",textAlign:"center"},children:["Maximum ",b," files uploaded. Remove one to replace it."]}),!p&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:we(u,o)})]})},vr=X.withJsonFormsControlProps(so),wr=v.rankWith(10,v.and(v.schemaMatches(e=>{if(e.type==="string"&&e.format==="file")return!0;if(e.type==="array"){const r=e.items;return(r==null?void 0:r.type)==="string"&&(r==null?void 0:r.format)==="file"}return!1})));function jr(e,r){return e!==!1&&r!==!0}class Ge extends Error{}async function io(e,r){const{read:t,utils:o}=await import("@e965/xlsx"),i=t(e,{type:"array",cellDates:!0});if(i.SheetNames.length===0)throw new Ge("This file has no sheets.");const l=r??i.SheetNames[0],a=i.Sheets[l];if(!a)throw new Ge(`This file doesn't have a sheet named "${l}".`);const c=o.sheet_to_json(a,{header:1,raw:!0,defval:null});return{sheetName:l,matrix:c,rowCount:c.length,colCount:Math.max(0,...c.map(u=>u.length))}}function lo(e){let r=e+1,t="";for(;r>0;){const o=(r-1)%26;t=String.fromCharCode(65+o)+t,r=Math.floor((r-1)/26)}return t}class me extends Error{constructor(t,o){super(o??t);mt(this,"code");this.code=t,this.name="FormulaError"}}const ao=["IFS","IFERROR","AND","OR","NOT","ROUND","ROUNDUP","ROUNDDOWN","INDEX","VLOOKUP","HLOOKUP","SUM","AVERAGE","COUNT","DATE","TODAY"],co=["MAX","MIN","MAXA","MINA","MEDIAN","LARGE","SMALL","PERMUT","PERMUTATIONA","MATCH","SWITCH","SUBSTITUTE","TEXTJOIN","COUNTA","UPPER"],uo=["YEAR","MONTH","DAY","WEEKDAY"],fo=["IF"],po=["CONCATENATE","CONCAT","LEN","TRIM","LOWER","LEFT","RIGHT","MID","FIND","SEARCH"],ho=new Set([...ao,...co,...uo,...po,...fo]),mo=/"(?:[^"]|"")*"/g,Tt=new RegExp("(?<![A-Za-z0-9_.])([A-Za-z_][A-Za-z0-9_.]*)\\s*\\(","g");function xo(e){const r=e.replace(mo,o=>" ".repeat(o.length));Tt.lastIndex=0;let t;for(;(t=Tt.exec(r))!==null;){const o=t[1].toUpperCase();if(!ho.has(o))throw new me("NAME",`Function ${o} is not allowed.`)}}function go(e,r,t){let o=e;if(o==null)throw t.NA;if(typeof o=="object"&&!(o instanceof t)&&(o=r.retrieveRef(o)),o instanceof t)throw o;if(typeof o=="boolean")return o;if(typeof o=="number")return o!==0;throw t.VALUE}function Tr(e){return e!==null&&typeof e=="object"&&"value"in e?e.value:e}function Ne(e){const r=Tr(e);return Array.isArray(r)?r.flat(1/0):[r]}function oe(e){const r=Tr(e);return Array.isArray(r)?r.flat(1/0)[0]:r}function Be(e){return e===void 0?void 0:oe(e)}function he(e){return e==null||e===""?"":typeof e=="boolean"?e?"TRUE":"FALSE":e instanceof Date?e.toLocaleDateString():String(e)}function yo(e,r){return e instanceof r?e:new r(e.message||"#ERROR!")}function fe(e){return e.find(r=>r instanceof Error)}function bo(e,r){const t=l=>{throw yo(l,r)},o=(l,{checkArgsForErrors:a=!0}={})=>(...c)=>{const u=c.flatMap(Ne);if(a){const f=fe(u);f&&t(f)}const d=l(...u);return d instanceof Error?t(d):d},i=(l,{toText:a=!1}={})=>c=>{const u=oe(c),d=fe([u]);d&&t(d);const f=l(a?he(u):u);return f instanceof Error?t(f):f};return{IF:(l,a,c,u)=>{const d=go(a,l,r);if(c==null)throw r.NA;return d?c:u??!1},MAX:o(e.MAX),MIN:o(e.MIN),MAXA:o(e.MAXA),MINA:o(e.MINA),MEDIAN:o(e.MEDIAN),COUNTA:o(e.COUNTA,{checkArgsForErrors:!1}),LARGE:(l,a)=>{const c=Ne(l),u=oe(a),d=fe([...c,u]);d&&t(d);const f=e.LARGE(c,u);return f instanceof Error?t(f):f},SMALL:(l,a)=>{const c=Ne(l),u=oe(a),d=fe([...c,u]);d&&t(d);const f=e.SMALL(c,u);return f instanceof Error?t(f):f},PERMUT:(l,a)=>{const c=[oe(l),oe(a)],u=fe(c);u&&t(u);const d=e.PERMUT(c[0],c[1]);return d instanceof Error?t(d):d},PERMUTATIONA:(l,a)=>{const c=[oe(l),oe(a)],u=fe(c);u&&t(u);const d=e.PERMUTATIONA(c[0],c[1]);return d instanceof Error?t(d):d},MATCH:(l,a)=>{const c=oe(l),u=Ne(a),d=fe([c,...u]);d&&t(d);const f=e.MATCH(c,u,0);return f instanceof Error?t(f):f},SWITCH:(...l)=>{const a=l.map(oe),c=fe(a);c&&t(c);const u=e.SWITCH(...a);return u instanceof Error?t(u):u},SUBSTITUTE:(l,a,c,u)=>{const d=[he(oe(l)),he(oe(a)),he(oe(c))];u!==void 0&&d.push(oe(u));const f=fe(d);f&&t(f);const h=e.SUBSTITUTE(...d);return h instanceof Error?t(h):h},TEXTJOIN:(l,a,...c)=>{const u=he(oe(l)),d=oe(a),f=c.flatMap(Ne).map(he),h=fe([u,d]);h&&t(h);const p=e.TEXTJOIN(u,d,f);return p instanceof Error?t(p):p},UPPER:i(e.UPPER),YEAR:i(e.YEAR),MONTH:i(e.MONTH),DAY:i(e.DAY),WEEKDAY:(l,a)=>{const c=oe(l),u=oe(a),d=fe([c]);d&&t(d);const f=e.WEEKDAY(c,u);return f instanceof Error?t(f):f},CONCATENATE:(...l)=>{const a=l.flatMap(Ne),c=fe(a);c&&t(c);const u=e.CONCATENATE(...a.map(he));return u instanceof Error?t(u):u},CONCAT:(...l)=>{const a=l.flatMap(Ne),c=fe(a);c&&t(c);const u=e.CONCAT(...a.map(he));return u instanceof Error?t(u):u},LEN:i(e.LEN,{toText:!0}),TRIM:i(e.TRIM,{toText:!0}),LOWER:i(e.LOWER,{toText:!0}),LEFT:(l,a)=>{const c=oe(l),u=Be(a),d=fe([c]);d&&t(d);const f=e.LEFT(he(c),u);return f instanceof Error?t(f):f},RIGHT:(l,a)=>{const c=oe(l),u=Be(a),d=fe([c]);d&&t(d);const f=e.RIGHT(he(c),u);return f instanceof Error?t(f):f},MID:(l,a,c)=>{const u=oe(l),d=oe(a),f=oe(c),h=fe([u,d,f]);h&&t(h);const p=e.MID(he(u),d,f);return p instanceof Error?t(p):p},FIND:(l,a,c)=>{const u=oe(l),d=oe(a),f=Be(c),h=fe([u,d]);h&&t(h);const p=e.FIND(he(u),he(d),f);return p instanceof Error?t(p):p},SEARCH:(l,a,c)=>{const u=oe(l),d=oe(a),f=Be(c),h=fe([u,d]);h&&t(h);const p=e.SEARCH(he(u),he(d),f);return p instanceof Error?t(p):p}}}const vo={"#REF!":"REF","#VALUE!":"VALUE","#DIV/0!":"DIV0","#NAME?":"NAME","#N/A":"NA","#NUM!":"NUM","#NULL!":"NULL"};function Et(e){return vo[e.error]??"ERROR"}function St(e,r){if(e instanceof me)return e;if(e instanceof r){const t=e.details;return t instanceof me?t:t instanceof r?new me(Et(t),t.message):new me(Et(e),e.message)}return new me("ERROR",e instanceof Error?e.message:void 0)}function wo(e){return Math.max(0,...e.map(r=>(r==null?void 0:r.length)??0))}function jo(e){return r=>{const t=e[r.row-1];if(r.row<1||r.col<1||t==null||r.col-1>=t.length)throw new me("REF");const o=t[r.col-1];return o==null||o===""?null:o}}function To(e){return r=>{const t=Math.min(r.from.row,r.to.row),o=Math.min(r.from.col,r.to.col),i=Math.max(r.from.row,r.to.row),l=Math.max(r.from.col,r.to.col),a=wo(e);if(t>e.length||o>a)throw new me("REF");const c=Math.min(i,e.length),u=[];for(let d=t;d<=c;d++){const f=e[d-1],h=[];if(f!=null){const p=Math.min(l,f.length);for(let x=o;x<=p;x++){const j=f[x-1];h.push(j==null||j===""?null:j)}}u.push(h)}return u}}function Eo(e){if(e==null||e==="")return null;if(typeof e=="number"||typeof e=="string"||typeof e=="boolean"||e instanceof Date)return e;throw new me("VALUE")}async function Er(e,r){if(typeof e!="string")throw new me("ERROR");const t=e.trim();if(t==="")throw new me("ERROR");const o=t.startsWith("=")?t.slice(1):t;xo(o);const[i,l]=await Promise.all([import("fast-formula-parser"),import("@formulajs/formulajs")]),a=i.default??i,c=a.FormulaError,u=new a({...r,functions:bo(l,c)});let d;try{d=u.parse(o,{row:1,col:1,sheet:"Sheet1"})}catch(f){throw St(f,c)}if(d instanceof c)throw St(d,c);return Eo(d)}async function So(e,r){return Er(r,{onCell:jo(e),onRange:To(e)})}const Ct=-1;async function Sr(e,r){const t=Object.keys(e);return Er(r,{onVariable:o=>{const i=t.indexOf(o);return i===-1?null:{row:Ct,col:i+1}},onCell:o=>{if(o.row===Ct)return e[t[o.col-1]]??null;throw new me("REF")},onRange:()=>{throw new me("REF")}})}const Cr={REF:"#REF!",VALUE:"#VALUE!",DIV0:"#DIV/0!",NAME:"#NAME?",ERROR:"#ERROR!",NA:"#N/A",NUM:"#NUM!",NULL:"#NULL!"};function ot(e){const r=e instanceof me?e.code:"ERROR";return Cr[r]}async function Co(e,r){return e.length===0?r.map(t=>({id:typeof(t==null?void 0:t.id)=="string"?t.id:"(unknown)",label:(t==null?void 0:t.label)??"(unknown)",value:null,error:Cr.ERROR})):Promise.all(r.map(async t=>{try{if(!t||typeof t.label!="string"||typeof t.expression!="string"||typeof t.id!="string")throw new me("ERROR");return{id:t.id,label:t.label,value:await So(e,t.expression)}}catch(o){return{id:typeof(t==null?void 0:t.id)=="string"?t.id:"(unknown)",label:(t==null?void 0:t.label)??"(unknown)",value:null,error:ot(o)}}}))}function Rt(e){const r=new Set;for(const{id:t}of e){if(r.has(t))return t;r.add(t)}return null}function Rr(e){const{columnHeader:r,rowHeader:t,columns:o,rows:i}=e;if(o!==void 0&&!Array.isArray(o))return"columns must be an array of { id, label } objects.";if(i!==void 0&&!Array.isArray(i))return"rows must be an array of { id, label } objects.";if(o!==void 0&&o.length===0)return"columns is declared but empty — declare at least one field, or omit it entirely for raw matrix mode.";if(i!==void 0&&i.length===0)return"rows is declared but empty — declare at least one field, or omit it entirely for raw matrix mode.";const l=f=>!!f&&typeof f.id=="string"&&f.id!==""&&typeof f.label=="string"&&f.label!=="",a=o==null?void 0:o.findIndex(f=>!l(f));if(a!=null&&a!==-1)return`columns[${a}] must be a { id, label } object with non-empty string fields.`;const c=i==null?void 0:i.findIndex(f=>!l(f));if(c!=null&&c!==-1)return`rows[${c}] must be a { id, label } object with non-empty string fields.`;const u=!!o&&o.length>0,d=!!i&&i.length>0;if(u){const f=Rt(o);if(f)return`duplicate column id "${f}" — every declared column id must be unique.`}if(d){const f=Rt(i);if(f)return`duplicate row id "${f}" — every declared row id must be unique.`}return r&&t?"columnHeader and rowHeader cannot both be true — pick one orientation for the persisted sheet shape.":u&&d?"columns and rows cannot both be declared — pick one orientation for the persisted sheet shape.":r&&!u?"columnHeader is true but columns is missing or empty — declare the column list columnHeader positions map to.":t&&!d?"rowHeader is true but rows is missing or empty — declare the row list rowHeader positions map to.":null}function At(e,r={}){const t=Rr(r);if(t)throw new Error(`x-spreadsheet: ${t}`);const{columnHeader:o,rowHeader:i,columns:l,rows:a}=r;return l&&l.length>0?Ro(e,l,o===!0):a&&a.length>0?Ao(e,a,i===!0):e}function Ro(e,r,t){return(t?e.slice(1):e).map(i=>{const l=Object.create(null);return r.forEach((a,c)=>{l[a.id]=i[c]??null}),l})}function Ao(e,r,t){const o=t?1:0,i=Math.max(0,...e.map(a=>a.length)),l=Math.max(0,i-o);return Array.from({length:l},(a,c)=>{const u=o+c,d=Object.create(null);return r.forEach((f,h)=>{var p;d[f.id]=((p=e[h])==null?void 0:p[u])??null}),d})}function Ar(e){return!Array.isArray(e[0])}function Fo(e){const r=Object.create(null);for(const{id:t,label:o,value:i,error:l}of e)r[t]=l===void 0?{label:o,value:i}:{label:o,value:i,error:l};return r}function Ze(e,r){const t=o=>o instanceof Date?o.toISOString():o??null;return t(e)===t(r)}function ko(e,r){const t=e??{},o=r??{},i=Object.keys(t);return i.length!==Object.keys(o).length?!1:i.every(l=>{if(!Object.prototype.hasOwnProperty.call(o,l))return!1;const a=t[l],c=o[l];return a.label===c.label&&a.error===c.error&&Ze(a.value,c.value)})}function Io(e,r){if(e==null||r==null)return e===r;const t=Array.isArray(e);if(t!==Array.isArray(r))return!1;if(t){const a=e,c=r;return a.length===c.length&&a.every((u,d)=>Ze(u,c[d]))}const o=e,i=r,l=Object.keys(o);return l.length!==Object.keys(i).length?!1:l.every(a=>Object.prototype.hasOwnProperty.call(i,a)&&Ze(o[a],i[a]))}function Oo(e,r){if(e===r)return!0;if(e==null||r==null)return!1;const t=e,o=r;return t.length!==o.length?!1:t.every((i,l)=>Io(i,o[l]))}function Do(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e instanceof Date}function Fr(e,r){if(e.length===0)return[];const t=[],o=new Set;for(const l of r??[])o.has(l)||(o.add(l),t.push(l));for(const l of e)for(const a of Object.keys(l))o.has(a)||(o.add(a),t.push(a));if(t.length===0)return[];const i=e.map(l=>t.map(a=>{if(!Object.prototype.hasOwnProperty.call(l,a))return null;const c=l[a];return Do(c)?c:null}));return[t,...i]}function No(e){const r=Math.max(0,...e.map(t=>t.length));return Array.from({length:r},(t,o)=>e.map(i=>i[o]??null))}const Lo=".xlsx,.xls,.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,text/csv",Mo=10*1024*1024,Je=200,zo=50,Po=[];function Ft(e){return e==null||e===""?"":e instanceof Date?e.toLocaleDateString():String(e)}const $o=({data:e,handleChange:r,path:t,label:o,required:i,schema:l,enabled:a,readonly:c,errors:u,visible:d=!0})=>{Se(d,t,r);const f=ve(t,i,d),h=!u||u.length===0,p=jr(a,c),x=(l==null?void 0:l["x-spreadsheet"])??{},j=(l==null?void 0:l["x-evaluate"])??Po,b=x.accept??Lo,D=x.maxSize??Mo,R=x.columnHeader===!0,$=x.rowHeader===!0,C=x.columns,A=x.rows,S=Array.isArray(C)&&C.length>0,E=Array.isArray(A)&&A.length>0,_=Rr({columnHeader:R,rowHeader:$,columns:C,rows:A}),P=x.showSheet!==!1,L=x.sheetName,N=x.persistSheet!==!1,T=e??null,[ee,V]=m.useState(()=>T!=null&&T.sheet||Object.keys((T==null?void 0:T.derivations)??{}).length>0?"ready":"empty"),[G,W]=m.useState(null),[le,xe]=m.useState(!1),[re,ae]=m.useState(null),[M,K]=m.useState(null),I=m.useRef(null),te=m.useRef(null),Z=(T==null?void 0:T.sheet)??null,B=m.useCallback(O=>{if(!Ar(O))return O;const H=E?A:S?C:void 0,ue=Fr(O,H==null?void 0:H.map(J=>J.id));return E?No(ue):ue},[S,E,C,A]),y=m.useMemo(()=>re??(Z?B(Z):null),[re,Z,B]),F=((M==null?void 0:M.matrix)===y?M.derivations:null)??(T==null?void 0:T.derivations)??{},U=y!=null||T!=null,Y=m.useMemo(()=>{const O=S?1:0,H=E?1:0,ue=y?y.slice(O):[],J=ue.slice(0,Je),q=Math.min(zo,Math.max(0,...J.map(de=>Math.max(0,de.length-H)))),ye=Array.from({length:q},(de,je)=>je+H),Re="",Pe=E&&!S;return n.jsx(n.Fragment,{children:y&&P&&n.jsxs(s.Box,{mt:"3",children:[n.jsx(s.Box,{style:{overflow:"auto",maxHeight:420},children:n.jsxs(s.Table.Root,{variant:"surface",size:"1",children:[!Pe&&n.jsx(s.Table.Header,{children:n.jsxs(s.Table.Row,{children:[n.jsx(s.Table.ColumnHeaderCell,{children:Re}),ye.map(de=>{var je;return n.jsx(s.Table.ColumnHeaderCell,{children:S?((je=C==null?void 0:C[de])==null?void 0:je.label)??"":lo(de)},de)})]})}),n.jsx(s.Table.Body,{children:J.map((de,je)=>{var Me;const Le=O+je;return n.jsxs(s.Table.Row,{children:[n.jsx(s.Table.RowHeaderCell,{style:E?{fontWeight:700,background:"var(--gray-a3)"}:void 0,children:E?((Me=A==null?void 0:A[Le])==null?void 0:Me.label)??"":S?"":Le+1}),ye.map($e=>n.jsx(s.Table.Cell,{children:Ft(de[$e])},$e))]},je)})})]})}),ue.length>Je&&n.jsxs(s.Text,{size:"1",color:"gray",mt:"1",style:{display:"block"},children:["Showing first ",Je," of ",ue.length," rows"]})]})})},[y,P,S,E,C,A]),g=m.useCallback(async O=>{if(W(null),O.size>D){W(`File exceeds the ${Te(D)} limit.`);return}if(!b.split(",").map(q=>q.trim()).some(q=>q==="*"||q==="*/*"?!0:q.endsWith("/*")?O.type.startsWith(q.slice(0,-1)):q.startsWith(".")?O.name.toLowerCase().endsWith(q.toLowerCase()):O.type===q)){W(`Invalid type. Accepted: ${Ee(b)}`);return}V("parsing");let J;try{const q=await O.arrayBuffer();J=(await io(q,L)).matrix}catch(q){V("error"),W(q instanceof Ge?q.message:"This doesn't look like a valid spreadsheet. Please check the file and try again.");return}if(S||E)try{J=B(At(J,{columnHeader:R,rowHeader:$,columns:C,rows:A}))}catch(q){V("error"),W(q instanceof Error?q.message:"Failed to process this sheet.");return}te.current=(e==null?void 0:e.sheet)??null,ae(J),V("ready")},[b,D,L,e,R,$,C,A,S,E,B]);if(m.useEffect(()=>{re!=null&&Z!=null&&Z!==te.current&&ae(null)},[re,Z]),m.useEffect(()=>{if(_||j.length===0&&!N)return;let O=!1;const H=J=>{p&&(ko(T==null?void 0:T.derivations,J==null?void 0:J.derivations)&&Oo(T==null?void 0:T.sheet,J==null?void 0:J.sheet)||(te.current=(J==null?void 0:J.sheet)??null,r(t,J)))},ue=y??[];if(ue.length===0){T!=null&&H(void 0);return}return Co(ue,j).then(J=>{if(O)return;let q;if(re!=null){if(N)try{q=At(ue,{columnHeader:S,rowHeader:E,columns:C,rows:A})}catch(Re){W(Re instanceof Error?Re.message:"Failed to process this sheet.");return}}else q=T==null?void 0:T.sheet;W(null);const ye=Fo(J);K({matrix:ue,derivations:ye}),H(q===void 0?{derivations:ye}:{sheet:q,derivations:ye})}),()=>{O=!0}},[y,re,j,p,N,S,E,C,A,_]),d===!1)return null;if(_)return n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:o}),n.jsxs(s.Text,{size:"2",color:"red",style:{display:"block"},children:["Invalid x-spreadsheet config: ",_]})]});if(!p&&!U)return null;const k=O=>{O.preventDefault(),O.stopPropagation(),p&&xe(O.type==="dragenter"||O.type==="dragover")},Q=O=>{var H;O.preventDefault(),O.stopPropagation(),xe(!1),p&&(H=O.dataTransfer.files)!=null&&H[0]&&g(O.dataTransfer.files[0])},ie=O=>{var H;(H=O.target.files)!=null&&H[0]&&(g(O.target.files[0]),O.target.value="")},ce=()=>{p&&(ae(null),K(null),te.current=null,W(null),V("empty"),r(t,void 0))},pe=P&&y==null&&T!=null;return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{align:"center",justify:"between",mb:"2",children:[n.jsxs(s.Flex,{align:"center",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",children:[o,f&&n.jsx(s.Text,{color:"red",children:" *"})]}),U&&p&&n.jsxs(n.Fragment,{children:[n.jsx(s.Tooltip,{content:"Replace spreadsheet",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",onClick:()=>{var O;return(O=I.current)==null?void 0:O.click()},"aria-label":"Replace spreadsheet",children:n.jsx(se.UploadIcon,{})})}),n.jsx(s.Tooltip,{content:"Remove spreadsheet",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",color:"gray",onClick:ce,"aria-label":"Remove spreadsheet",children:n.jsx(se.Cross2Icon,{})})})]})]}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Te(D)," max · ",Ee(b)]})]}),U&&G&&n.jsx(s.Text,{size:"2",color:"red",mb:"2",style:{display:"block"},children:G}),n.jsx("input",{ref:I,type:"file",style:{display:"none"},accept:b,onChange:ie}),p&&!U&&n.jsx("div",{role:"button",tabIndex:0,onClick:()=>{var O;return(O=I.current)==null?void 0:O.click()},onKeyDown:O=>{var H;(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),(H=I.current)==null||H.click())},onDragEnter:k,onDragLeave:k,onDragOver:k,onDrop:Q,style:{cursor:"pointer"},className:["border-2 border-dashed rounded-lg p-6 text-center","transition-all duration-200 ease-in-out",le?"border-blue-500 bg-blue-50":G?"border-red-300 bg-red-50":"border-gray-300 hover:border-blue-400 hover:bg-gray-50"].join(" "),children:n.jsx(s.Flex,{direction:"column",align:"center",gap:"2",children:ee==="parsing"?n.jsxs(n.Fragment,{children:[n.jsx(s.Spinner,{size:"3"}),n.jsx(s.Text,{size:"2",color:"gray",children:"Parsing spreadsheet…"})]}):G?n.jsxs(n.Fragment,{children:[n.jsx(se.ExclamationTriangleIcon,{style:{width:32,height:32,color:"var(--red-9)"}}),n.jsx(s.Text,{size:"2",color:"red",weight:"medium",children:G}),n.jsx(s.Text,{size:"1",color:"gray",children:"Click to try again"})]}):n.jsxs(n.Fragment,{children:[n.jsx(se.UploadIcon,{style:{width:32,height:32,color:"var(--gray-8)"}}),n.jsx(s.Text,{size:"2",weight:"medium",children:"Click to upload or drag and drop"}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Te(D)," max · ",Ee(b)]})]})})}),Y,pe&&n.jsx(s.Text,{size:"2",color:"gray",mt:"3",style:{display:"block"},children:"Sheet preview not stored for this field — re-upload to view contents."}),Object.keys(F).length>0&&n.jsxs(s.Box,{mt:"3",children:[n.jsx(s.Text,{size:"2",weight:"bold",as:"div",mb:"1",children:"Computed values"}),n.jsx(s.Flex,{direction:"column",gap:"1",children:Object.entries(F).map(([O,H])=>n.jsxs(s.Flex,{justify:"between",children:[n.jsx(s.Text,{size:"2",children:H.label}),H.error?n.jsx(s.Text,{size:"2",color:"red",children:H.error}):n.jsx(s.Text,{size:"2",children:Ft(H.value)})]},O))})]}),!h&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:we(u,o)})]})},kr=X.withJsonFormsControlProps($o),Ir=v.rankWith(10,v.schemaMatches(e=>e.type==="object"&&typeof e["x-spreadsheet"]=="object")),Bo="Sheet1",Uo="xlsx";function _o(e){if(e===void 0)return null;if(!Array.isArray(e))return"columns must be an array of { id, label } objects.";if(e.length===0)return"columns is declared but empty — declare at least one field, or omit it entirely.";const r=e.findIndex(t=>!t||typeof t!="object"||typeof t.id!="string"||t.id===""||typeof t.label!="string"||t.label==="");return r!==-1?`columns[${r}] must be a { id, label } object with non-empty string fields.`:null}function Vo(e,r){if(!Ar(e))return e;const t=Fr(e,r==null?void 0:r.map(a=>a.id));if(!r||t.length===0)return t;const o=new Map(r.map(a=>[a.id,a.label])),[i,...l]=t;return[i.map(a=>o.get(String(a))??a),...l]}const Wo=({data:e,path:r,label:t,schema:o,visible:i=!0})=>{const[l,a]=m.useState(null),c=X.useJsonForms();if(i===!1)return null;const u=(o==null?void 0:o["x-spreadsheet-export"])??{},d=u.columns,f=u.sheetName??Bo,h=u.fileType??Uo,p=u.fileName??`export.${h}`,x=_o(d);if(x)return n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:t}),n.jsxs(s.Text,{size:"2",color:"red",style:{display:"block"},children:["Invalid x-spreadsheet-export config: ",x]})]});const j=Array.isArray(e)&&e.length>0,b=async()=>{var D,R;if(j){a(null);try{const $=await import("@e965/xlsx"),C=Vo(e,d),A=$.utils.aoa_to_sheet(C),S=$.utils.book_new();$.utils.book_append_sheet(S,A,f);const E=r.split(".").slice(0,-1).join("."),_=E?v.Resolve.data((D=c.core)==null?void 0:D.data,E):(R=c.core)==null?void 0:R.data;$.writeFile(S,nt(p,_,`export.${h}`),{bookType:h})}catch($){a($ instanceof Error?$.message:"Failed to build the workbook.")}}};return n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",style:{display:"block",marginBottom:"var(--space-2)"},children:t}),n.jsxs(s.Button,{type:"button",variant:"soft",disabled:!j,onClick:()=>void b(),children:[n.jsx(se.DownloadIcon,{})," Download Spreadsheet"]}),l&&n.jsx(s.Text,{size:"2",color:"red",style:{display:"block",marginTop:"var(--space-2)"},children:l})]})},Or=X.withJsonFormsControlProps(Wo),Dr=v.rankWith(10,v.and(v.schemaMatches(e=>{const r=e["x-spreadsheet-export"];return e.type==="array"&&typeof r=="object"&&r!==null}),v.not(v.optionIs("editable",!0))));class Fe extends Error{}const kt=5e6,Ho=1024,qo=/^<\?xml\s+[^>]*\bencoding\s*=\s*["']([^"']+)["']/i,Xo={ignoreAttributes:!1,attributeNamePrefix:"@_",textNodeName:"#text",parseTagValue:!0,parseAttributeValue:!0,numberParseOptions:{hex:!1,leadingZeros:!1,eNotation:!0},trimValues:!0,cdataPropName:!1,commentPropName:!1,processEntities:!0,htmlEntities:!0,ignoreDeclaration:!0,ignorePiTags:!0,alwaysCreateTextNode:!1,preserveOrder:!1,removeNSPrefix:!1,maxNestedTags:100,strictReservedNames:!0};function Jo(e){const r=new Set(e);return r.size===0?()=>!1:(t,o)=>r.has(typeof o=="string"?o:o.toString())||r.has(t)}function Ko(e){const r=e instanceof Error?e.message:"";return r.startsWith("[SECURITY] Invalid name:")?"This document uses a reserved JavaScript name (__proto__, constructor or prototype) as an element or attribute name, which cannot be represented safely.":r==="External entities are not supported"||r==="Parameter entities are not supported"?`${r}. Please remove the DOCTYPE entity declarations and try again.`:r.startsWith("Maximum nested tags exceeded")?"This document is nested too deeply to parse.":r.startsWith("Entity count")||r.includes("exceeds maximum allowed")?"This document declares too many or too large entity definitions to expand safely.":"This doesn't look like a valid XML document. Please check the file and try again."}async function Yo(e,r={}){var d;if(typeof e!="string")throw new Fe("This file could not be read as text.");const t=e.charCodeAt(0)===65279?e.slice(1):e;if(t.trim()==="")throw new Fe("This file is empty.");if(t.length>kt)throw new Fe(`This document is too large to parse (over ${kt/1e6} million characters).`);const o=(d=qo.exec(t.slice(0,Ho)))==null?void 0:d[1];if(o&&!/^utf-?8$/i.test(o))throw new Fe(`This document declares the unsupported encoding "${o}". Only UTF-8 is supported.`);const{XMLParser:i,XMLValidator:l}=await import("fast-xml-parser"),a=l.validate(t,{allowBooleanAttributes:!1});if(a!==!0){const{msg:f,line:h,col:p}=a.err;throw new Fe(`Invalid XML at line ${h}, column ${p}: ${f}`)}const c=new i({...Xo,removeNSPrefix:r.removeNamespaces===!0,isArray:Jo(r.arrayPaths??[])});let u;try{u=c.parse(t)}catch(f){throw new Fe(Ko(f))}if(u==null||typeof u!="object"||Array.isArray(u))throw new Fe("This document has no root element.");return u}function Nr(e,r,t){const{path:o,default:i}=typeof t=="string"?{path:t,default:void 0}:t,l=v.Resolve.data(e,r?`${r}.${o}`:o);return l??i}function Go(e,r,t){const o={};for(const[i,l]of Object.entries(t)){const a=Nr(e,r,l);if(a===void 0)return;o[i]=a}return o}async function Zo(e,r){try{return{status:"ok",value:await Sr(e,r)}}catch(t){return{status:"error",error:ot(t)}}}function Lr(e,r){return e==null?"":typeof e=="number"?e.toFixed(Qo(r)):e instanceof Date?e.toLocaleDateString():String(e)}function Qo(e){return Number.isFinite(e)?Math.min(100,Math.max(0,Math.trunc(e))):0}const ke={found:!1},be=e=>({found:!0,value:e});function It(e){return e==null||e===""?ke:Array.isArray(e)||e instanceof Date?be(e):typeof e=="object"?ke:typeof e=="string"||typeof e=="number"||typeof e=="boolean"?be(e):ke}const es=new Set(["true","1","yes","y"]),ts=new Set(["false","0","no","n"]),rs=/^(\d{4}-\d{2}-\d{2})(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})?)?$/;async function ns(e,r,t){switch(r.as){case void 0:return be(e);case"string":return be(e instanceof Date?e.toISOString():String(e));case"number":{const o=e instanceof Date?e.getTime():Number(e);return Number.isFinite(o)?be(r.decimals===void 0?o:Lr(o,r.decimals)):ke}case"boolean":{const o=String(e).trim().toLowerCase();return es.has(o)?be(!0):ts.has(o)?be(!1):ke}case"date":{const{default:o}=await import("dayjs"),{default:i}=await Promise.resolve().then(()=>require("./customParseFormat-CLvZwox5.cjs")).then(c=>c.customParseFormat);if(o.extend(i),t==="export"){const c=typeof e=="string"?rs.exec(e):null,u=e instanceof Date?o(e):c?o(c[1],"YYYY-MM-DD",!0):null;return u!=null&&u.isValid()?be(u.format(r.format??"YYYY-MM-DD")):ke}const l=e instanceof Date?e.toISOString():String(e),a=r.format?o(l,r.format,!0):o(l);return a.isValid()?be(a.format("YYYY-MM-DD")):ke}}}async function os(e,r){if(r.formula!==void 0){const t={};for(const[o,i]of Object.entries(r.inputs??{})){const l=It(v.Resolve.data(e,i));if(!l.found||Array.isArray(l.value))return ke;t[o]=l.value}try{return be(await Sr(t,r.formula))}catch(o){throw new Error(`writeTo "${r.to}": ${ot(o)}`)}}if(r.from===void 0)throw new Error(`writeTo "${r.to}" needs either "from" or "formula".`);return It(v.Resolve.data(e,r.from))}const _e="@_",Mr="#text",Ve=e=>e.split(".").filter(Boolean),zr=e=>e.startsWith(_e)||e===Mr;function Pr(e,r){if(typeof e.to!="string"||Ve(e.to).length===0)return'"to" must be a non-empty path.';if(e.format!==void 0&&e.as!=="date")return'"format" needs "as": "date".';if(e.decimals!==void 0){if(r==="import")return'"decimals" only applies on export — on import it would put text in a number field.';if(e.as!=="number")return'"decimals" needs "as": "number".';const{decimals:t}=e;if(!Number.isInteger(t)||t<0||t>100)return'"decimals" must be a whole number from 0 to 100.'}if(r==="export"){const t=Ve(e.to);for(const[o,i]of t.entries()){if(i===_e)return'"@_" needs an attribute name after it, e.g. "@_id".';if(zr(i)&&o<t.length-1)return`"${i}" must be the last segment — it belongs to the element before it.`}}return null}function Ot(e,r,t){const o=t?` To give "${r}" both text and attributes, write its text to "${r}.${Mr}".`:"";return new Error(`writeTo "${e}": "${r}" is written both as a value and as the parent of other values.${o}`)}function $r(e){const r={},t=new Set([r]);for(const{to:o,value:i}of e){const l=Ve(o);if(l.length===0)continue;let a=r;for(const[d,f]of l.slice(0,-1).entries()){const h=a[f];if(h===void 0){const p={};t.add(p),a[f]=p,a=p}else if(t.has(h))a=h;else throw Ot(o,l.slice(0,d+1).join("."),l[d+1].startsWith(_e))}const c=l[l.length-1],u=a[c];if(t.has(u)){const d=Object.keys(u).some(f=>f.startsWith(_e));throw Ot(o,l.join("."),d)}a[c]=i}return r}const ss=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean";async function st(e,r,t){const o=[];for(const i of r){const l=Pr(i,t);if(l)throw new Error(`writeTo "${i.to}": ${l}`);const a=Ve(i.to),c=t==="export"&&zr(a[a.length-1]),u=h=>{if(!(c&&h==null)){if(c&&!ss(h)){const p=h instanceof Date?' Add "as": "date" to write a date.':"";throw new Error(`writeTo "${i.to}": an attribute or #text value must be text, a number or a boolean.${p}`)}o.push({to:i.to,value:h})}};let d=await os(e,i);const f=d.found&&Array.isArray(d.value);if(d.found&&f&&i.writeTo){const h=await Promise.all(d.value.map(async p=>$r(await st(p,i.writeTo,t))));u(h);continue}if(d.found&&!f&&i.writeTo)throw new Error(`writeTo "${i.to}": "writeTo" is set, but "from" did not resolve to a repeating element.`);if(d.found&&!f&&i.map){const h=d.value instanceof Date?d.value.toISOString():String(d.value);Object.prototype.hasOwnProperty.call(i.map,h)&&(d=be(i.map[h]))}if(d.found&&!f&&(d=await ns(d.value,i,t)),!d.found){if(i.default===void 0)continue;u(i.default);continue}u(d.value)}return o}const is=".xml,text/xml,application/xml",ls=5*1024*1024,as=({data:e,handleChange:r,path:t,label:o,required:i,schema:l,enabled:a,readonly:c,errors:u,visible:d=!0})=>{Se(d,t,r);const f=ve(t,i,d),h=!u||u.length===0,p=jr(a,c),x=(l==null?void 0:l["x-xml"])??{},j=x.accept??is,b=x.maxSize??ls,D=x.arrayPaths,R=x.removeNamespaces===!0,$=x.writeTo,C=x.writeBase??"root",A=x.persistDocument!==!1,S=X.useJsonForms(),E=e??null,[_,P]=m.useState(()=>E?"ready":"empty"),[L,N]=m.useState(null),[T,ee]=m.useState(!1),V=m.useRef(null),G=m.useRef(0),W=E!=null,le=$!==void 0&&$.length>0,xe=m.useCallback(async I=>{var Y;const te=++G.current;if(N(null),I.size>b){N(`File exceeds the ${Te(b)} limit.`);return}if(!j.split(",").map(g=>g.trim()).some(g=>g==="*"||g==="*/*"?!0:g.endsWith("/*")?I.type.startsWith(g.slice(0,-1)):g.startsWith(".")?I.name.toLowerCase().endsWith(g.toLowerCase()):I.type===g)){N(`Invalid type. Accepted: ${Ee(j)}`);return}P("parsing");let y;try{const g=await I.text();y=await Yo(g,{arrayPaths:D,removeNamespaces:R})}catch(g){if(te!==G.current)return;P("error"),N(g instanceof Fe?g.message:"This doesn't look like a valid XML document. Please check the file and try again.");return}let F=[];if($&&$.length>0)try{F=await st(y,$,"import")}catch(g){if(te!==G.current)return;P("error"),N(g instanceof Error?g.message:"This document could not be mapped onto the form.");return}if(te!==G.current)return;A&&r(t,y);const U=C==="parent"?t.split(".").slice(0,-1).join("."):"";for(const g of F)(Y=S.dispatch)==null||Y.call(S,v.update(U?`${U}.${g.to}`:g.to,()=>g.value));P("ready")},[j,b,D,R,$,C,A,t,r,S]);if(d===!1||!p&&!W)return null;const re=I=>{I.preventDefault(),I.stopPropagation(),p&&ee(I.type==="dragenter"||I.type==="dragover")},ae=I=>{var te;I.preventDefault(),I.stopPropagation(),ee(!1),p&&(te=I.dataTransfer.files)!=null&&te[0]&&xe(I.dataTransfer.files[0])},M=I=>{var te;(te=I.target.files)!=null&&te[0]&&(xe(I.target.files[0]),I.target.value="")},K=()=>{p&&(++G.current,N(null),P("empty"),r(t,void 0))};return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{align:"center",justify:"between",mb:"2",children:[n.jsxs(s.Flex,{align:"center",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",children:[o,f&&n.jsx(s.Text,{color:"red",children:" *"})]}),!le&&W&&p&&n.jsxs(n.Fragment,{children:[n.jsx(s.Tooltip,{content:"Replace document",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",onClick:()=>{var I;return(I=V.current)==null?void 0:I.click()},"aria-label":"Replace document",children:n.jsx(se.UploadIcon,{})})}),n.jsx(s.Tooltip,{content:"Remove document",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",color:"gray",onClick:K,"aria-label":"Remove document",children:n.jsx(se.Cross2Icon,{})})})]})]}),n.jsxs(s.Flex,{align:"center",gap:"2",children:[n.jsxs(s.Text,{size:"1",color:"gray",children:[Te(b)," max · ",Ee(j)]}),le&&p&&n.jsxs(s.Button,{size:"1",variant:"soft",onClick:()=>{var I;return(I=V.current)==null?void 0:I.click()},disabled:_==="parsing",children:[_==="parsing"?n.jsx(s.Spinner,{size:"1"}):n.jsx(se.UploadIcon,{}),"Upload"]})]})]}),(le||W)&&L&&n.jsx(s.Text,{size:"2",color:"red",mb:"2",style:{display:"block"},children:L}),n.jsx("input",{ref:V,type:"file",style:{display:"none"},accept:j,onChange:M}),!le&&p&&!W&&n.jsx("div",{role:"button",tabIndex:0,onClick:()=>{var I;return(I=V.current)==null?void 0:I.click()},onKeyDown:I=>{var te;(I.key==="Enter"||I.key===" ")&&(I.preventDefault(),(te=V.current)==null||te.click())},onDragEnter:re,onDragLeave:re,onDragOver:re,onDrop:ae,style:{cursor:"pointer"},className:["border-2 border-dashed rounded-lg p-6 text-center","transition-all duration-200 ease-in-out",T?"border-blue-500 bg-blue-50":L?"border-red-300 bg-red-50":"border-gray-300 hover:border-blue-400 hover:bg-gray-50"].join(" "),children:n.jsx(s.Flex,{direction:"column",align:"center",gap:"2",children:_==="parsing"?n.jsxs(n.Fragment,{children:[n.jsx(s.Spinner,{size:"3"}),n.jsx(s.Text,{size:"2",color:"gray",children:"Parsing document…"})]}):L?n.jsxs(n.Fragment,{children:[n.jsx(se.ExclamationTriangleIcon,{style:{width:32,height:32,color:"var(--red-9)"}}),n.jsx(s.Text,{size:"2",color:"red",weight:"medium",children:L}),n.jsx(s.Text,{size:"1",color:"gray",children:"Click to try again"})]}):n.jsxs(n.Fragment,{children:[n.jsx(se.UploadIcon,{style:{width:32,height:32,color:"var(--gray-8)"}}),n.jsx(s.Text,{size:"2",weight:"medium",children:"Click to upload or drag and drop"}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Te(b)," max · ",Ee(j)]})]})})}),!h&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:we(u,o)})]})},Br=X.withJsonFormsControlProps(as),Ur=v.rankWith(10,v.schemaMatches(e=>{const r=e["x-xml"];return e.type==="object"&&typeof r=="object"&&r!==null})),cs="root",Dt="export.xml",us={format:!0,indentBy:" ",ignoreAttributes:!1,attributeNamePrefix:"@_",textNodeName:"#text",suppressBooleanAttributes:!1,processEntities:!0};function ds(e){if(e===null||typeof e!="object"||Array.isArray(e))return'declaration must be an object, e.g. { "standalone": "no" }, or {} for the defaults.';const{version:r,encoding:t,standalone:o,...i}=e,[l]=Object.keys(i);return l?`declaration has an unknown key "${l}" — only version, encoding and standalone.`:r!==void 0&&r!=="1.0"&&r!=="1.1"?'declaration.version must be "1.0" or "1.1".':t!==void 0&&t!=="UTF-8"?'declaration.encoding can only be "UTF-8" — the file is always written as UTF-8.':o!==void 0&&o!=="yes"&&o!=="no"?'declaration.standalone must be "yes" or "no".':null}function _r(e){for(const r of e){if(r===null||typeof r!="object"||Array.isArray(r))return"every writeTo entry must be an object.";const{to:t,writeTo:o}=r,i=Pr(r,"export");if(i)return`writeTo "${t}": ${i}`;if(o!==void 0){if(!Array.isArray(o))return`writeTo "${t}": its nested writeTo must be an array.`;const l=_r(o);if(l)return l}}return null}function fs({writeTo:e,declaration:r}){return e===void 0?"writeTo is required — see docs/xml-export-control.md.":Array.isArray(e)?e.length===0?"writeTo is declared but empty — declare at least one entry.":_r(e)??(r===void 0?null:ds(r)):"writeTo must be an array of { from | formula, to } entries."}function ps({version:e="1.0",standalone:r}){return{"@_version":e,"@_encoding":"UTF-8",...r&&{"@_standalone":r}}}function hs(e){return e==null?!0:Array.isArray(e)?e.length===0:typeof e=="object"?Object.keys(e).length===0:!1}const ms=({path:e,label:r,schema:t,visible:o=!0})=>{var $,C;const i=(t==null?void 0:t["x-xml-export"])??{},l=i.rootElement??cs,a=i.fileName??Dt,c=i.writeTo,u=i.writeBase??"root",d=i.declaration,f=fs(i),h=X.useJsonForms(),p=u==="parent"?e.split(".").slice(0,-1).join("."):"",x=p?v.Resolve.data(($=h.core)==null?void 0:$.data,p):(C=h.core)==null?void 0:C.data,[j,b]=m.useState(null),D=hs(x),R=m.useCallback(async()=>{if(c){b(null);try{const A=$r(await st(x,c,"export")),{XMLBuilder:S}=await import("fast-xml-parser"),E={...d&&{"?xml":ps(d)},[l]:A},_=new S(us).build(E);Zn(_,nt(a,x,Dt),"application/xml")}catch(A){b(A instanceof Error?A.message:"This export could not be built.")}}},[c,x,d,l,a]);return o===!1?null:f?n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:r}),n.jsxs(s.Text,{size:"2",color:"red",style:{display:"block"},children:["Invalid x-xml-export config: ",f]})]}):n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",style:{display:"block",marginBottom:"var(--space-2)"},children:r}),n.jsxs(s.Button,{size:"1",variant:"soft",disabled:D,onClick:()=>void R(),children:[n.jsx(se.DownloadIcon,{}),"Download XML"]}),j&&n.jsx(s.Text,{size:"2",color:"red",style:{display:"block",marginTop:"var(--space-2)"},children:j})]})},Vr=X.withJsonFormsControlProps(ms),Wr=v.rankWith(10,v.schemaMatches(e=>{const r=e["x-xml-export"];return e.type==="object"&&typeof r=="object"&&r!==null})),xs="{value}",gs=2,ys={},bs=({data:e,handleChange:r,path:t,label:o,schema:i,visible:l=!0})=>{var E;Se(l,t,r);const a=i==null?void 0:i["x-computed"],c=(a==null?void 0:a.inputs)??ys,u=(a==null?void 0:a.formula)??"",d=(a==null?void 0:a.format)??xs,f=(a==null?void 0:a.decimals)??gs,h=X.useJsonForms(),p=t.split(".").slice(0,-1).join("."),x=Go((E=h.core)==null?void 0:E.data,p,c),j=x?JSON.stringify(x):null,b=h.readonly===!0,[D,R]=m.useState(()=>typeof e=="number"?"ok":"unavailable"),[$,C]=m.useState(()=>typeof e=="number"?e:null),[A,S]=m.useState(null);return m.useEffect(()=>{if(!l)return;let _=!1;const P=L=>{b||L!==e&&r(t,L)};if(x===void 0){R("unavailable"),S(null),C(null),P(void 0);return}return R(L=>L==="ok"?L:"loading"),Zo(x,u).then(L=>{if(_)return;const N=L.status==="ok"&&typeof L.value=="number"&&Number.isFinite(L.value)?L.value:null;if(N===null){R("error"),S(L.status==="error"?L.error??"Unable to compute value.":"Computed value must be a number."),C(null),P(void 0);return}R("ok"),S(null),C(N),P(N)}),()=>{_=!0}},[j,u,l,b]),l===!1?null:n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:o}),D==="unavailable"?n.jsx(s.Text,{size:"2",color:"gray",children:"Not yet available."}):D==="loading"?n.jsxs(s.Flex,{align:"center",gap:"2",children:[n.jsx(s.Spinner,{size:"1"}),n.jsx(s.Text,{size:"2",color:"gray",children:"Computing…"})]}):D==="error"?n.jsx(s.Text,{size:"2",color:"red",children:A}):n.jsx(s.Text,{size:"2",children:We(d,{value:Lr($,f)})}),i.description&&n.jsx(s.Text,{size:"1",color:"gray",children:i.description})]})})},Hr=X.withJsonFormsControlProps(bs),qr=v.rankWith(5,v.schemaMatches(e=>{const r=e["x-computed"];return e.type==="number"&&typeof r=="object"&&r!==null})),Xr="seq",Nt=2,vs=e=>e==null||e==="",Jr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0,ws=e=>{const r=e==null?void 0:e["x-template"];if(typeof r!="object"||r===null)return;const{template:t,inputs:o}=r;if(!(typeof t!="string"||t===""))return{template:t,inputs:o}},it=e=>typeof e=="object"&&e.name===Xr&&e.arg!==void 0,js=e=>e.every((r,t)=>!it(r)||typeof e[t-1]!="object"&&typeof e[t+1]!="object"),Ts=e=>{const r=new Set;for(const t of tt(e))typeof t=="object"&&t.arg===void 0&&r.add(t.name);return[...r]},Es=e=>{const r=[];for(const[t,o]of Object.entries((e==null?void 0:e.properties)??{})){const i=ws(o);i&&r.push([t,i])}return r},Ss=(e,r,t)=>{var i;const o={};for(const l of Ts(t.template)){const a=Nr(e,r,((i=t.inputs)==null?void 0:i[l])??l);o[l]=typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):""}return o},Cs=e=>r=>{const t=r.trim()===""?Nt:Number(r);return`${e}`.padStart(Number.isInteger(t)&&t>=0?t:Nt,"0")},Rs=e=>{const r=o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");let t="";for(const o of tt(e))typeof o=="string"?t+=r(o):t+=it(o)?"(\\d+)":".*?";return new RegExp(`^${t}$`)},As=(e,r,t)=>{var l,a;const o=Rs(t.template);let i=0;for(const c of e){const u=(l=Jr(c))==null?void 0:l[r];if(typeof u!="string")continue;const d=Number((a=o.exec(u))==null?void 0:a[1]);Number.isFinite(d)&&d>i&&(i=d)}return i},Fs=(e,r,t,o,i,l)=>{const a=Es(e);if(a.length===0)return r;const c=Jr(r);if(!c)return r;const u={...c};for(const[d,f]of a){if(!vs(u[d]))continue;const h=tt(f.template),p={};if(h.some(it)){if(!js(h)){console.warn(`x-template: {seq(…)} needs literal text between it and other placeholders; not numbering "${f.template}"`);continue}const x=Math.max(l[d]??0,As(t,d,f))+1;l[d]=x,p[Xr]=Cs(x)}u[d]=We(f.template,Ss(o,i,f),p)}return u},ks=({path:e,items:r,itemsSchema:t,rootSchema:o,addItem:i,sequences:l})=>{const a=X.useJsonForms(),c=()=>{var d;const u=Fs(t,v.createDefaultValue(t,o),r,(d=a.core)==null?void 0:d.data,e.split(".").slice(0,-1).join("."),l.current);i&&i(e,u)()};return n.jsx(s.Box,{mt:"2",children:n.jsxs(s.Button,{type:"button",variant:"surface",onClick:c,children:[n.jsx(se.PlusIcon,{}),"Add Item"]})})},Is=({data:e,path:r,schema:t,uischema:o,enabled:i,visible:l,addItem:a,removeItems:c,rootSchema:u,arraySchema:d,required:f=!1,errors:h=""})=>{const p=m.useRef({}),x=ve(r,f,l),j=d?t:t.items,b=d||t;if(l===!1||!j||typeof j!="object"||Array.isArray(j))return null;const D=j,R=Array.isArray(e)?e:[],$=b.title||"Array Items",C=o.options??{},A=i&&C.addable!==!1,S=i&&C.removable!==!1,E=C.itemLabel||"Item",_=x||typeof b.minItems=="number"&&b.minItems>=1,P=!h,L=P?"":R.length===0&&C.errorMessage||we(h,$),N=T=>{if(c){const ee=c(r,[T]);ee&&ee()}};return n.jsx(s.Box,{mb:"6",children:n.jsxs(s.Flex,{direction:"column",gap:"4",children:[n.jsxs(s.Text,{as:"div",size:"4",weight:"bold",children:[$," ",_&&n.jsx(s.Text,{color:"red",children:"*"})]}),R.length===0&&n.jsx(s.Box,{py:"4",px:"4",style:{backgroundColor:"var(--gray-3)",borderRadius:"var(--radius-3)"},children:n.jsx(s.Text,{size:"2",color:"gray",children:"No items have been added yet."})}),!P&&n.jsx(s.Text,{color:"red",size:"1",children:L}),R.map((T,ee)=>{var G;const V=`${r}.${ee}`;return n.jsx(s.Card,{size:"3",variant:"surface",children:n.jsxs(s.Flex,{direction:"column",gap:"4",children:[n.jsxs(s.Flex,{justify:"between",align:"center",children:[n.jsxs(s.Text,{size:"3",weight:"bold",children:[E," ",ee+1]}),S&&n.jsxs(s.Button,{type:"button",color:"red",variant:"soft",onClick:()=>N(ee),title:"Remove item",children:[n.jsx(se.TrashIcon,{}),"Remove"]})]}),n.jsx(s.Box,{children:n.jsx(X.JsonFormsDispatch,{schema:D,uischema:((G=o.options)==null?void 0:G.detail)||(D.type==="object"||D.properties?{type:"VerticalLayout",elements:Object.keys(D.properties||{}).map(W=>({type:"Control",scope:`#/properties/${W}`}))}:{type:"Control",scope:"#"}),path:V,enabled:i,renderers:void 0,cells:void 0})})]})},V)}),A&&n.jsx(ks,{path:r,items:R,itemsSchema:D,rootSchema:u,addItem:a,sequences:p})]})})},Qe=X.withJsonFormsArrayControlProps(Is),Kr=v.rankWith(3,v.isObjectArrayControl),Yr=({uischema:e,visible:r})=>{const t=e;return r===!1?null:n.jsx(s.Box,{mb:"4",children:n.jsx(s.Heading,{size:"4",children:t.text})})},Gr=v.rankWith(1,v.uiTypeIs("Label")),Os=v.rankWith(3,v.isPrimitiveArrayControl),Ds=[{tester:qt,renderer:Rn},{tester:Jt,renderer:Fn},{tester:Yt,renderer:kn},{tester:Zt,renderer:In},{tester:nr,renderer:or},{tester:er,renderer:gt},{tester:tr,renderer:gt},{tester:ir,renderer:_n},{tester:dr,renderer:X.withJsonFormsLayoutProps(ur)},{tester:pr,renderer:X.withJsonFormsLayoutProps(fr)},{tester:mr,renderer:X.withJsonFormsLayoutProps(hr)},{tester:gr,renderer:X.withJsonFormsLayoutProps(xr)},{tester:wr,renderer:vr},{tester:Ir,renderer:kr},{tester:Dr,renderer:Or},{tester:Ur,renderer:Br},{tester:Wr,renderer:Vr},{tester:qr,renderer:Hr},{tester:Kr,renderer:Qe},{tester:Os,renderer:Qe},{tester:Gr,renderer:Yr}];exports.ArrayControl=Qe;exports.ArrayControlTester=Kr;exports.BooleanControl=Kt;exports.BooleanControlTester=Yt;exports.CategorizationLayoutRenderer=xr;exports.CategorizationLayoutTester=gr;exports.ComputedControl=Hr;exports.ComputedControlTester=qr;exports.DateControl=sr;exports.DateControlTester=ir;exports.FileControl=vr;exports.FileControlTester=wr;exports.FormStepsProvider=fn;exports.GroupLayoutRenderer=hr;exports.GroupLayoutTester=mr;exports.HorizontalLayoutRenderer=fr;exports.HorizontalLayoutTester=pr;exports.LabelRenderer=Yr;exports.LabelTester=Gr;exports.NumberControl=Xt;exports.NumberControlTester=Jt;exports.RadioControl=Gt;exports.RadioControlTester=Zt;exports.STEPPER_MESSAGES=Wt;exports.SearchSelectControl=or;exports.SearchSelectControlTester=nr;exports.SearchServiceProvider=dn;exports.SelectControl=Qt;exports.SelectControlTester=er;exports.SelectObjectControlTester=tr;exports.SpreadsheetControl=kr;exports.SpreadsheetControlTester=Ir;exports.SpreadsheetExportControl=Or;exports.SpreadsheetExportControlTester=Dr;exports.TextControl=Ht;exports.TextControlTester=qt;exports.UploadProvider=un;exports.VerticalLayoutRenderer=ur;exports.VerticalLayoutTester=dr;exports.XmlControl=Br;exports.XmlControlTester=Ur;exports.XmlExportControl=Vr;exports.XmlExportControlTester=Wr;exports.isStepperUiSchema=_t;exports.radixRenderers=Ds;exports.searchSelectTargetSchema=rt;exports.useSearchService=$t;exports.useUpload=zt;
3
+ `)},Zt=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,uischema:a,schema:c,enabled:u,visible:d=!0})=>{var p;Re(d,t,r);const f=Te(t,i,d);if(d===!1)return null;const h=l.length===0;return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsx(s.TextField.Root,{value:e||"",onChange:y=>r(t,y.target.value===""?void 0:y.target.value),disabled:!u,placeholder:(p=a.options)==null?void 0:p.placeholder,color:h?void 0:"red",id:t}),!h&&n.jsx(s.Text,{color:"red",size:"1",children:Se(l,o)}),c.description&&n.jsx(s.Text,{size:"1",color:"gray",children:c.description})]})})},Qt=b.rankWith(1,b.isStringControl),Bn=Y.withJsonFormsControlProps(Zt),Un=new Set(["-","+","e","E"]),er=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,uischema:a,schema:c,enabled:u,visible:d=!0})=>{var E;Re(d,t,r);const f=Te(t,i,d);if(d===!1)return null;const h=l.length===0,p=typeof c.exclusiveMinimum=="number"?c.exclusiveMinimum:void 0,y=typeof c.minimum=="number"?c.minimum:void 0,S=p??y,w=S!==void 0&&S>=0,H=typeof c.multipleOf=="number"?c.multipleOf:c.type==="integer"?1:void 0,R=T=>{if(T===""){r(t,void 0);return}const C=Number(T);isNaN(C)||r(t,C)},z=T=>{w&&Un.has(T.key)&&T.preventDefault()},k=T=>{if(!w)return;const C=T.clipboardData.getData("text");/[-+eE]/.test(C)&&T.preventDefault()};return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsx(s.TextField.Root,{type:"number",value:e??"",onChange:T=>R(T.target.value),onKeyDown:z,onPaste:k,min:S,step:H,disabled:!u,placeholder:(E=a.options)==null?void 0:E.placeholder,color:h?void 0:"red",id:t}),!h&&n.jsx(s.Text,{color:"red",size:"1",children:Se(l,o)}),c.description&&n.jsx(s.Text,{size:"1",color:"gray",children:c.description})]})})},tr=b.rankWith(2,b.or(b.isNumberControl,b.isIntegerControl)),_n=Y.withJsonFormsControlProps(er),rr=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,enabled:c,visible:u=!0})=>{Re(u,t,r);const d=Te(t,i,u);if(u===!1)return null;const f=l.length===0;return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{gap:"2",align:"center",children:[n.jsx(s.Checkbox,{checked:!!e,onCheckedChange:h=>r(t,h===!0),disabled:!c,id:t}),n.jsxs(s.Text,{as:"label",size:"2",htmlFor:t,children:[o," ",d&&"*"]})]}),!f&&n.jsx(s.Text,{color:"red",size:"1",className:"block mt-1",children:Se(l,o)}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",className:"block mt-1",children:a.description})]})},nr=b.rankWith(2,b.isBooleanControl),Wn=Y.withJsonFormsControlProps(rr),or=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,enabled:c,visible:u=!0})=>{Re(u,t,r);const d=Te(t,i,u);if(u===!1)return null;const f=l.length===0;let h=[];a.enum?h=a.enum.map(y=>({value:y,label:String(y)})):a.oneOf&&(h=a.oneOf.map(y=>({value:y.const,label:y.title||String(y.const)})));const p=e;return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"div",size:"2",weight:"bold",children:[o," ",d&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsx(s.RadioGroup.Root,{value:p!==void 0?String(p):"",onValueChange:y=>{const S=h.find(w=>String(w.value)===y);S&&r(t,S.value)},disabled:!c,children:n.jsx(s.Flex,{direction:"row",style:{flexWrap:"wrap",columnGap:"clamp(14px, 3vw, 36px)",rowGap:"clamp(8px, 1.6vw, 14px)"},children:h.map(y=>n.jsxs(s.Flex,{align:"center",gap:"2",style:{minWidth:"max-content"},children:[n.jsx(s.RadioGroup.Item,{value:String(y.value)}),n.jsx(s.Text,{size:"2",color:c?void 0:"gray",children:y.label})]},String(y.value)))})}),!f&&n.jsx(s.Text,{color:"red",size:"1",children:Se(l,o)}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",children:a.description})]})})},sr=(e,r,t)=>{var i;return b.or(b.isEnumControl,b.isOneOfControl)(e,r,t)&&((i=e==null?void 0:e.options)==null?void 0:i.format)==="radio"?3:-1},Vn=Y.withJsonFormsControlProps(or),ir=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,uischema:c,enabled:u,visible:d=!0})=>{var ce,se,G,ue;Re(d,t,r);const f=Te(t,i,d),h=((ce=c.options)==null?void 0:ce.autocomplete)===!0,[p,y]=x.useState(!1),[S,w]=x.useState(""),[H,R]=x.useState(0),z=x.useRef(null);if(x.useEffect(()=>{if(!h||!p)return;const D=K=>{z.current&&!z.current.contains(K.target)&&y(!1)};return document.addEventListener("mousedown",D),()=>document.removeEventListener("mousedown",D)},[h,p]),d===!1)return null;const k=a.type==="object",E=k?((se=a.properties)==null?void 0:se.value)??{}:a;let T=[];E.enum?T=E.enum.map(D=>({value:String(D),label:String(D),raw:D})):E.oneOf&&(T=E.oneOf.map(D=>{const K=D.const;return{value:String(K),label:D.title||String(K),raw:K}}));const C=k?typeof e=="string"||typeof e=="number"||typeof e=="boolean"?{value:e}:e??void 0:void 0,X=k?C==null?void 0:C.value:e,U=C==null?void 0:C.label,M=X!=null?String(X):"",P=U??((G=T.find(D=>D.value===M))==null?void 0:G.label)??"",I=((ue=c.options)==null?void 0:ue.placeholder)||"Select an option",oe=k&&M!==""&&!T.some(D=>D.value===M),q=l?Se(l,o):oe?`"${P||M}" is no longer an available option`:"",te=q==="",J=D=>{r(t,k?{value:D.raw,label:D.label}:D.value)};if(h){const D=p?T.filter(B=>B.label.toLowerCase().includes(S.toLowerCase())):T,K=Math.min(H,D.length-1),L=B=>{J(B),y(!1)},ee=B=>{B.stopPropagation(),r(t,void 0),w("")},Q=B=>{(B.key==="Enter"||B.key===" ")&&ee(B)};return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsxs("div",{ref:z,style:{position:"relative"},children:[n.jsx(s.TextField.Root,{id:t,value:p?S:P,placeholder:I,disabled:!u,style:te?void 0:{outline:"2px solid var(--red-7)",outlineOffset:"-1px"},onChange:B=>{w(B.target.value),R(0),p||y(!0)},onFocus:()=>{u&&!p&&(w(""),R(0),y(!0))},onKeyDown:B=>{B.key==="Escape"?y(!1):B.key==="ArrowDown"?(B.preventDefault(),p?R(g=>Math.min(g+1,D.length-1)):(w(""),y(!0))):B.key==="ArrowUp"?(B.preventDefault(),p&&R(g=>Math.max(g-1,0))):B.key==="Enter"&&p&&D[K]&&(B.preventDefault(),L(D[K]))},children:n.jsx(s.TextField.Slot,{side:"right",children:n.jsxs(s.Flex,{align:"center",gap:"1",children:[M&&u&&n.jsx("span",{role:"button",tabIndex:0,onMouseDown:B=>B.preventDefault(),onClick:ee,onKeyDown:Q,style:{lineHeight:1,color:"var(--gray-9)",padding:"0 2px",cursor:"pointer"},"aria-label":"Clear selection",children:"×"}),n.jsx(ne.ChevronDownIcon,{style:{transform:p?"rotate(180deg)":void 0,transition:"transform 150ms"}})]})})}),p&&n.jsx(s.Box,{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:50,background:"var(--color-panel-solid)",borderRadius:"var(--radius-3)",boxShadow:"var(--shadow-5)",border:"1px solid var(--gray-a6)",overflow:"hidden"},children:n.jsx(s.ScrollArea,{style:{maxHeight:240},children:n.jsxs(s.Box,{p:"1",children:[D.length===0&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Text,{size:"2",color:"gray",children:"No results found."})}),D.map((B,g)=>n.jsx(s.Box,{px:"3",py:"2",onMouseDown:F=>F.preventDefault(),onClick:()=>L(B),onMouseEnter:()=>R(g),style:{cursor:"pointer",borderRadius:"var(--radius-2)",backgroundColor:g===K?"var(--accent-4)":B.value===M?"var(--accent-3)":void 0},children:n.jsx(s.Text,{size:"2",children:B.label})},B.value))]})})})]}),!te&&n.jsx(s.Text,{color:"red",size:"1",children:q}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",children:a.description})]})})}return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",f&&n.jsx(s.Text,{color:"red",children:"*"})]}),n.jsxs(s.Select.Root,{value:M,onValueChange:D=>{const K=T.find(L=>L.value===D);K&&J(K)},disabled:!u,children:[n.jsx(s.Select.Trigger,{placeholder:I,color:te?void 0:"red",id:t,children:k&&U?U:void 0}),n.jsx(s.Select.Content,{children:T.map(D=>n.jsx(s.Select.Item,{value:D.value,children:D.label},D.value))})]}),!te&&n.jsx(s.Text,{color:"red",size:"1",children:q}),a.description&&n.jsx(s.Text,{size:"1",color:"gray",children:a.description})]})})},lr=b.rankWith(2,b.or(b.isEnumControl,b.isOneOfControl)),ar=b.rankWith(3,b.schemaMatches(e=>{var t;if(e.type!=="object"||e["x-search"]!==void 0)return!1;const r=(t=e.properties)==null?void 0:t.value;return Array.isArray(r==null?void 0:r.enum)||Array.isArray(r==null?void 0:r.oneOf)})),bt=Y.withJsonFormsControlProps(ir),cr=/\{([A-Za-z0-9_]+)(?:\(([^(){}]*)\))?\}/g,Hn={today:e=>Bt().format(e||"YYYY-MM-DD")},qn=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint",vt=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);function qe(e,r,t={}){const o={...Hn,...t};return e.replace(cr,(i,l,a)=>{let c;if(a===void 0){if(!vt(r,l))return i;c=r[l]}else{if(!vt(o,l))return i;try{c=o[l](a)}catch{return i}}return c==null?"":qn(c)?String(c):i})}function ot(e){const r=[];let t=0;for(const o of e.matchAll(cr))o.index>t&&r.push(e.slice(t,o.index)),r.push(o[2]===void 0?{name:o[1]}:{name:o[1],arg:o[2]}),t=o.index+o[0].length;return t<e.length&&r.push(e.slice(t)),r}function jt(e){if(!e||typeof e!="object")return;const r=e["x-search"];return typeof(r==null?void 0:r.service)=="string"&&r.service!==""?r.service:void 0}function st(e){if(jt(e))return e;if(e.type==="array"){const r=e.items;if(r&&!Array.isArray(r)&&jt(r))return r}}const ur=b.rankWith(4,b.schemaMatches(e=>{const r=st(e);if(!r)return!1;const t=r.type;return t==="string"||t==="object"}));function Jn(e){if(typeof e=="string"&&e.length>0)return e;if(e&&typeof e=="object"&&typeof e.value=="string"){const r=e.value;return r.length>0?r:void 0}}function Xn(e){if(typeof e=="string")return e.length>0?{parent:e}:void 0;if(!e||typeof e!="object")return;const r=Object.entries(e);if(r.length===0)return;const t={},o=[];for(const[i,l]of r)typeof l=="string"&&l.length>0?t[i]=l:o.push(i);return o.length>0&&console.warn(`x-search.dependsOn: ignoring invalid entries [${o.join(", ")}]`),Object.keys(t).length===0?(console.warn("x-search.dependsOn: map has no valid entries; search will not fetch until fixed"),{}):t}function Kn(e,r,t){const o={};for(const[i,l]of Object.entries(e))o[i]=Jn(b.Resolve.data(r,t?`${t}.${l}`:l));return o}function wt(e){if(typeof e=="string"&&e.length>0)return{value:e};if(e&&typeof e=="object"&&typeof e.value=="string"){const r=e;return{value:r.value,label:r.label}}}function Xe(e,r){return r?{...e,name:qe(r,e)}:e}const Yn={"small-list":{fetchOnOpen:!0,searchable:!1,paginated:!1},"large-searchable-list":{fetchOnOpen:!0,searchable:!0,paginated:!1},"large-paginated-list":{fetchOnOpen:!1,searchable:!0,paginated:!0}},Gn=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,enabled:a,visible:c=!0,schema:u,uischema:d})=>{var ft,pt,mt,ht;const f=u.type==="array",h=st(u)??u,p=h["x-search"]??{service:"",displayTemplate:""},y=p.service??"",S=p.mode??"large-paginated-list",w=Yn[S],H=(w==null?void 0:w.fetchOnOpen)??!1,R=typeof p.displayTemplate=="string"?p.displayTemplate:"",z=Y.useJsonForms(),k=t.split(".").slice(0,-1).join("."),{parentValues:E,parentValuesKey:T,missingParent:C}=x.useMemo(()=>{var ge;const j=Xn(p.dependsOn);if(!j)return{parentValues:void 0,parentValuesKey:"",missingParent:!1};const _=Kn(j,(ge=z.core)==null?void 0:ge.data,k),le=Object.keys(_).length===0||Object.values(_).some(Fe=>!Fe);return{parentValues:_,parentValuesKey:JSON.stringify(_),missingParent:le}},[p.dependsOn,(ft=z.core)==null?void 0:ft.data,k]),X=x.useMemo(()=>E?{...p.params,...E}:p.params,[E,T,p.params]),U=Vt(y),M=h.type==="object",P=typeof u.maxItems=="number"?u.maxItems:void 0,I=x.useMemo(()=>{if(f)return Array.isArray(e)?e.map(wt).filter(_=>!!_):[];const j=wt(M||typeof e=="string"?e:void 0);return j?[j]:[]},[e,f,M]),oe=f||(pt=I[0])==null?void 0:pt.value,q=f||(mt=I[0])==null?void 0:mt.label,te=x.useMemo(()=>new Set(I.map(j=>j.value)),[I]),J=I.length>0,ce=x.useRef({}),[se,G]=x.useState(0),ue=x.useMemo(()=>{const j={};for(const _ of I)j[_.value]=_.label||ce.current[_.value]||_.value;return j},[I,se]),D=f&&P!==void 0&&I.length>=P,K=y?U?w?R?null:"x-search.displayTemplate is required.":`Invalid x-search.mode "${S}". Expected "small-list", "large-searchable-list", or "large-paginated-list".`:`Search service "${y}" is not registered.`:"Search not configured.",L=a!==!1,ee=!l||l.length===0,[Q,B]=x.useState(!1),[g,F]=x.useState(""),[W,Z]=x.useState([]),[re,me]=x.useState(!1),[ve,Ae]=x.useState(!1),[Ie,ye]=x.useState(!1),[m,v]=x.useState(null),[V,A]=x.useState(void 0),N=x.useRef(void 0),ie=x.useRef(null),pe=x.useRef(null),O=x.useRef(null),$=x.useRef(void 0),de=x.useRef(void 0),je=x.useCallback(j=>{if(f){r(t,j.length>0?j.map(le=>M?le:le.value):void 0);return}const _=j[0];if(!_){r(t,void 0);return}r(t,M?{value:_.value,label:_.label}:_.value)},[r,t,f,M]);x.useEffect(()=>{if(!E)return;const j=de.current;if(de.current=E,!j||!J)return;Object.keys(E).some(le=>j[le]!==void 0&&j[le]!==E[le])&&r(t,void 0)},[T,J,r,t]),x.useEffect(()=>{var ge,Fe;if(f){if(K||M)return;const ke=I.filter(ze=>!ze.label&&!ce.current[ze.value]);if(ke.length===0||!(U!=null&&U.resolve))return;let Le=!1;return Promise.all(ke.map(async ze=>{try{const xt=await U.resolve(ze.value,X);if(Le||!xt)return;ce.current[ze.value]=Xe(xt,R).name}catch{}})).then(()=>{Le||G(ze=>ze+1)}),()=>{Le=!0}}if(K){A(void 0),$.current=void 0;return}if(!oe){A(void 0),$.current=void 0;return}if(((ge=$.current)==null?void 0:ge.value)===oe&&((Fe=$.current)==null?void 0:Fe.label)===q)return;if(M&&q){A({id:oe,name:q}),$.current={value:oe,label:q};return}if(A({id:oe,name:q??oe}),!(U!=null&&U.resolve)){$.current={value:oe,label:q};return}let j=!1;const _=oe,le=q;return U.resolve(_,X).then(ke=>{j||(ke&&A(Xe(ke,R)),$.current={value:_,label:le})}).catch(()=>{j||($.current={value:_,label:le})}),()=>{j=!0}},[K,oe,q,M,f,I,U,X,R]);const we=x.useCallback(async(j,_=!1)=>{var ge;if(K)return;if(!U){v("Search service not configured.");return}(ge=pe.current)==null||ge.abort();const le=new AbortController;pe.current=le,_?ye(!0):(Ae(!0),ye(!1),v(null));try{const Fe=await U.search({query:j,cursor:_?N.current:void 0,signal:le.signal,params:X});if(le.signal.aborted)return;const ke=(Fe.options??[]).map(Le=>Xe(Le,R));Z(_?Le=>[...Le,...ke]:ke),N.current=Fe.nextCursor,me(((w==null?void 0:w.paginated)??!1)&&Fe.nextCursor!=null)}catch{if(le.signal.aborted)return;v("Failed to load results. Please try again.")}finally{le.signal.aborted||(_?ye(!1):Ae(!1))}},[K,U,w==null?void 0:w.paginated,X,R]);x.useEffect(()=>{if(!Q)return;const j=_=>{O.current&&!O.current.contains(_.target)&&B(!1)};return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[Q]),x.useEffect(()=>{var j;Q||((j=pe.current)==null||j.abort(),F(""),Z([]),me(!1),v(null),Ae(!1),ye(!1),N.current=void 0)},[Q]),x.useEffect(()=>{if(!Q)return;if(C){Z([]),me(!1),v(null),N.current=void 0;return}if(!g&&!H){Z([]),me(!1),v(null),N.current=void 0;return}ie.current&&clearTimeout(ie.current);const j=g?300:0;return ie.current=setTimeout(()=>{Z([]),me(!1),N.current=void 0,we(g)},j),()=>{ie.current&&clearTimeout(ie.current)}},[g,Q,H,we,C,T]),Re(c,t,r);const Me=Te(t,i,c);if(c===!1)return null;const Ue=()=>{F(""),Z([]),me(!1),v(null),N.current=void 0,B(!0)},dn=j=>{if(f){const _=te.has(j.id);if(!_&&D)return;const le=_?I.filter(ge=>ge.value!==j.id):[...I,{value:j.id,label:j.name}];_||(ce.current[j.id]=j.name,G(ge=>ge+1)),je(le),F("");return}je([{value:j.id,label:j.name}]),A(j),$.current={value:j.id,label:M?j.name:void 0},B(!1)},ut=j=>{j.stopPropagation(),r(t,void 0),A(void 0)},dt=(j,_)=>{j.stopPropagation(),je(I.filter(le=>le.value!==_))},fn=j=>{(j.key==="Enter"||j.key===" ")&&ut(j)},pn=((ht=d==null?void 0:d.options)==null?void 0:ht.placeholder)??"Select an option",mn=f?"":(V==null?void 0:V.name)??"";return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:t,children:[o," ",Me&&n.jsx(s.Text,{color:"red",children:"*"})]}),f&&I.length>0&&n.jsx(s.Flex,{gap:"1",wrap:"wrap",mb:"1",children:I.map(j=>n.jsxs(s.Flex,{align:"center",gap:"1",px:"2",py:"1",style:{background:"var(--accent-3)",borderRadius:"var(--radius-2)",fontSize:"var(--font-size-1)"},children:[n.jsx(s.Text,{size:"1",children:ue[j.value]??j.value}),L&&n.jsx("span",{role:"button",tabIndex:0,"aria-label":`Remove ${ue[j.value]??j.value}`,onMouseDown:_=>_.preventDefault(),onClick:_=>dt(_,j.value),onKeyDown:_=>{(_.key==="Enter"||_.key===" ")&&dt(_,j.value)},style:{lineHeight:1,color:"var(--gray-11)",cursor:"pointer"},children:"×"})]},j.value))}),n.jsxs("div",{ref:O,style:{position:"relative"},children:[n.jsx(s.TextField.Root,{id:t,value:Q?g:mn,placeholder:Q&&(w!=null&&w.searchable)?"Search...":pn,disabled:!L,readOnly:Q&&!(w!=null&&w.searchable)||f&&!Q,style:ee?void 0:{outline:"2px solid var(--red-7)",outlineOffset:"-1px"},onChange:j=>{w!=null&&w.searchable&&(F(j.target.value),Q||Ue())},onFocus:()=>{L&&!Q&&Ue()},onKeyDown:j=>{j.key==="Escape"&&B(!1)},children:n.jsx(s.TextField.Slot,{side:"right",children:n.jsxs(s.Flex,{align:"center",gap:"1",children:[J&&L&&n.jsx("span",{role:"button",tabIndex:0,onMouseDown:j=>j.preventDefault(),onClick:ut,onKeyDown:fn,style:{lineHeight:1,color:"var(--gray-9)",padding:"0 2px",cursor:"pointer"},"aria-label":"Clear selection",children:"×"}),n.jsx(ne.ChevronDownIcon,{style:{transform:Q?"rotate(180deg)":void 0,transition:"transform 150ms"}})]})})}),Q&&n.jsx(s.Box,{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:50,background:"var(--color-panel-solid)",borderRadius:"var(--radius-3)",boxShadow:"var(--shadow-5)",border:"1px solid var(--gray-a6)",overflow:"hidden"},children:K?n.jsx(s.Box,{p:"3",children:n.jsx(s.Text,{size:"2",color:"gray",children:K})}):n.jsx(s.ScrollArea,{style:{maxHeight:240},children:n.jsxs(s.Box,{p:"1",children:[ve&&n.jsx(s.Flex,{justify:"center",p:"4",children:n.jsx(s.Spinner,{})}),!ve&&m&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Text,{size:"2",color:"red",children:m})}),!ve&&!m&&W.length===0&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Text,{size:"2",color:"gray",children:C?"Select the related field first.":g||H?"No results found.":"Type to search…"})}),W.map(j=>{const _=te.has(j.id),le=D&&!_;return n.jsx(s.Box,{px:"3",py:"2",onMouseDown:ge=>ge.preventDefault(),onClick:()=>{le||dn(j)},"aria-disabled":le||void 0,style:{cursor:le?"not-allowed":"pointer",opacity:le?.5:1,borderRadius:"var(--radius-2)",backgroundColor:_?"var(--accent-3)":void 0},className:le?void 0:"hover:bg-(--gray-3)",children:n.jsxs(s.Flex,{align:"center",justify:"between",gap:"2",children:[n.jsx(s.Text,{size:"2",children:j.name}),f&&_&&n.jsx(s.Text,{size:"1",color:"gray",children:"✓"})]})},j.id)}),(w==null?void 0:w.paginated)&&re&&!Ie&&n.jsx(s.Box,{px:"3",py:"2",children:n.jsx(s.Button,{variant:"ghost",size:"1",style:{width:"100%"},onMouseDown:j=>j.preventDefault(),onClick:()=>void we(g,!0),children:"Load more"})}),Ie&&n.jsx(s.Flex,{justify:"center",p:"2",children:n.jsx(s.Spinner,{})})]})})})]}),!ee&&n.jsx(s.Text,{color:"red",size:"1",children:Se(l,o)}),u.description&&n.jsx(s.Text,{size:"1",color:"gray",children:u.description})]})})},dr=Y.withJsonFormsControlProps(Gn),Zn=e=>{if(e)return/^\d{2}:\d{2}$/.test(e)?`${e}:00`:e},Tt=(e,r)=>{if(!e)return"";const t=e.match(/^(\d{2}:\d{2})(:\d{2})?/);return t?r?`${t[1]}${t[2]??":00"}`:t[1]:e},Qn=(e,r)=>Bt(`${e}T${r}`).format(),eo=({path:e,label:r,required:t,errors:o,description:i,children:l})=>{const a=o.length===0;return n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",htmlFor:e,children:[r," ",t&&n.jsx(s.Text,{color:"red",children:"*"})]}),l,!a&&n.jsx(s.Text,{color:"red",size:"1",children:Se(o,r)}),i&&n.jsx(s.Text,{size:"1",color:"gray",children:i})]})})},fr=({data:e,handleChange:r,path:t,label:o,required:i,errors:l,schema:a,uischema:c,enabled:u,visible:d=!0})=>{var T;x.useEffect(()=>{d===!1&&r(t,void 0)},[d,t,r]);const f=Te(t,i,d);if(d===!1)return null;const h=l.length===0,p=typeof e=="string"?e:"",y=((T=c==null?void 0:c.options)==null?void 0:T.showSeconds)===!0,S=y?1:60,w=C=>n.jsx(eo,{path:t,label:o,required:f,errors:l,description:a.description,children:C});if(a.format==="time")return w(n.jsx(s.TextField.Root,{type:"time",step:S,value:Tt(p,y),onChange:C=>r(t,Zn(C.target.value)),disabled:!u,color:h?void 0:"red",id:t}));const H=a.format==="date-time",[R="",z=""]=p.split("T"),k=Tt(z,y),E=(C,X)=>{if(!C){r(t,void 0);return}r(t,H?Qn(C,X||"00:00"):C)};return w(n.jsxs(s.Flex,{gap:"2",align:"center",children:[n.jsx(s.TextField.Root,{type:"date",value:R,disabled:!u,color:h?void 0:"red",onChange:C=>E(C.target.value,k),id:t,style:{flex:1}}),H&&n.jsx(s.TextField.Root,{type:"time",step:S,value:k,disabled:!u||!R,color:h?void 0:"red",onChange:C=>E(R,C.target.value),style:{flex:1}})]}))},pr=b.rankWith(2,b.or(b.isDateControl,b.isDateTimeControl,b.isTimeControl)),to=Y.withJsonFormsControlProps(fr),Ke="var(--form-steps-offset, 16px)",ro=e=>e.enabled?n.jsx(no,{...e}):n.jsx(io,{...e}),no=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l})=>{var B;const a=Y.useJsonForms(),c=a.core,u=qt(),d=(c==null?void 0:c.schema)??r,f=c==null?void 0:c.data,h=c==null?void 0:c.ajv,p=a.config,y=(B=a.i18n)==null?void 0:B.translate,S=(g,F)=>On(y,g,F),w=mr(e,t),H=w.length,R=H,z=x.useMemo(()=>[...(c==null?void 0:c.errors)??[],...(c==null?void 0:c.additionalErrors)??[]],[c==null?void 0:c.errors,c==null?void 0:c.additionalErrors]),k=x.useMemo(()=>w.map(g=>An(We(g,f,h,p,t),z,d,t,y)),[e,t,f,h,p,z,d,y]),[E,T]=x.useState(0),[C,X]=x.useState(()=>{const g=(W,Z)=>k[Z].length===0&&In(We(W,f,h,p,t),f,t),F=w.findIndex((W,Z)=>!g(W,Z));return F===-1?R:F}),[U,M]=x.useState(new Set),P=Math.min(E,R),I=P===R,oe=x.useEffectEvent(()=>{var g;return(g=u==null?void 0:u.onStepChange)==null?void 0:g.call(u,{step:P,count:H,last:P===R})});x.useEffect(()=>{oe()},[P,H,R]);const q=x.useRef(null),te=x.useRef(null),J=x.useRef(P);if(x.useEffect(()=>{var W,Z;if(J.current===P)return;J.current=P;const g=q.current,F=g&&parseFloat(getComputedStyle(g).scrollMarginTop)||0;g&&g.getBoundingClientRect().top<F&&((W=g.scrollIntoView)==null||W.call(g,{block:"start",behavior:"smooth"})),(Z=te.current)==null||Z.focus({preventScroll:!0})},[P]),!H)return null;const ce=g=>{g>C&&g!==P||T(g)},se=()=>{var F,W;if((F=k[P])!=null&&F.length){M(Z=>new Set(Z).add(P)),(W=u==null?void 0:u.onInvalidStep)==null||W.call(u);return}const g=Math.min(P+1,R);T(g),X(Z=>Math.max(Z,g))},G=[...w.map(g=>xr(g,y)),S("review")],ue=G.length,D=g=>{var F;return g===P?"current":g<H&&((F=k[g])!=null&&F.length)&&(U.has(g)||g<C)?"error":g<C||g<H&&g<P?"done":"todo"},K=(g,F)=>{var W;return F==="error"||F==="current"&&U.has(g)?((W=k[g])==null?void 0:W.length)??0:0},L=(g,F)=>{if(g===R)return S("noteReview");if(K(g,F)>0)return S("noteToFix",{count:K(g,F)});if(F==="done")return S("noteDone");const W=Fn(We(w[g],f,h,p,t),f,t),Z=W.count===1;return W.kind==="items"?S(Z?"noteItem":"noteItems",{count:W.count}):S(Z?"noteField":"noteFields",{count:W.count})},ee=I?void 0:lo(w[P],y),Q=k.map((g,F)=>({index:F,p:g})).filter(({p:g})=>g.length).map(({index:g,p:F})=>({key:String(g),label:`${G[g]}: ${F.map(W=>W.label).join(", ")}`,onClick:()=>{M(W=>new Set(W).add(g)),ce(g)}}));return n.jsxs(s.Flex,{ref:q,gap:"5",align:"start",style:{scrollMarginTop:Ke},children:[n.jsx(s.Box,{asChild:!0,display:{initial:"none",sm:"block"},p:"4",style:{...Ge,flex:"0 0 248px",position:"sticky",top:Ke,maxHeight:`calc(100vh - 2 * ${Ke})`,overflowY:"auto"},children:n.jsx("nav",{"aria-label":S("navLabel"),children:n.jsx("ol",{style:{listStyle:"none",margin:0,padding:0},children:G.map((g,F)=>{const W=D(F);return n.jsxs("li",{style:{position:"relative"},children:[F<ue-1&&n.jsx("span",{"aria-hidden":!0,style:{position:"absolute",left:21,top:40,bottom:-4,width:2,borderRadius:1,background:W==="done"?"var(--green-9)":"var(--gray-a5)"}}),n.jsx(oo,{index:F,label:g,note:L(F,W),errorCount:K(F,W),status:W,disabled:F>C,onSelect:()=>ce(F)})]},`${t}-step-${F}`)})})})}),n.jsxs(s.Box,{style:{...Ge,flex:1,minWidth:0},children:[n.jsxs(s.Box,{px:{initial:"4",sm:"6"},pt:{initial:"4",sm:"5"},pb:"4",children:[n.jsx(s.Text,{as:"p",size:"1",weight:"bold",color:"gray",style:{letterSpacing:"0.06em",textTransform:"uppercase"},children:S("stepOf",{step:P+1,total:ue})}),n.jsx(s.Heading,{ref:te,tabIndex:-1,size:"5",as:"h2",mt:"1",style:{outline:"none"},children:G[P]}),ee&&n.jsx(s.Text,{as:"p",size:"2",color:"gray",mt:"1",children:ee}),n.jsx(s.Progress,{value:(P+1)/ue*100,size:"1",mt:"4","aria-label":S("progressLabel")})]}),n.jsxs(s.Box,{px:{initial:"4",sm:"6"},pb:"5","data-form-review":I?"":void 0,children:[I&&(Q.length?n.jsx(St,{title:S("incompleteSteps"),items:Q}):n.jsx(s.Text,{as:"p",size:"2",color:"gray",mb:"5",children:S("reviewHint")})),w.map((g,F)=>{const W=I||F===P;return n.jsxs(s.Box,{hidden:!W,mb:I?"6":void 0,children:[I&&n.jsxs(s.Flex,{justify:"between",align:"center",mb:"3",pb:"2",style:{borderBottom:"1px solid var(--gray-a4)"},children:[n.jsx(s.Heading,{size:"3",as:"h3",children:G[F]}),n.jsx(s.Button,{type:"button",variant:"ghost",onClick:()=>ce(F),"aria-label":S("editStep",{step:G[F]}),children:S("edit")})]}),!I&&U.has(F)&&k[F].length>0&&n.jsx(St,{title:S("missingFields"),items:k[F].map(Z=>({key:Z.path,label:Z.label,onClick:()=>so(Z.path)}))}),n.jsx(hr,{category:g,schema:r,path:t,renderers:o,cells:i,enabled:l&&!I})]},`${t}-${F}`)})]}),n.jsxs(s.Flex,{gap:"3",align:"center",wrap:"wrap",px:{initial:"4",sm:"6"},py:"4",style:{position:"sticky",bottom:0,zIndex:1,borderTop:"1px solid var(--gray-a5)",background:"var(--color-panel-solid)",borderRadius:"0 0 var(--radius-5) var(--radius-5)"},children:[P>0&&n.jsxs(s.Button,{type:"button",variant:"ghost",color:"gray",size:"3",onClick:()=>T(P-1),children:[n.jsx(ne.ChevronLeftIcon,{}),S("back")]}),n.jsx(s.Box,{flexGrow:"1"}),u==null?void 0:u.actions,P<R&&n.jsxs(s.Button,{type:"button",size:"3",onClick:se,children:[S("continue"),n.jsx(ne.ChevronRightIcon,{})]})]})]})]})},Ge={background:"var(--color-panel-solid)",border:"1px solid var(--gray-a4)",borderRadius:"var(--radius-5)",boxShadow:"var(--shadow-2)"};function oo({index:e,label:r,note:t,errorCount:o,status:i,disabled:l,onSelect:a}){const c={done:{background:"var(--green-9)",color:"white"},current:{background:"var(--color-panel-solid)",color:"var(--accent-11)",boxShadow:"inset 0 0 0 2px var(--accent-9)"},error:{background:"var(--red-9)",color:"white"},todo:{background:"var(--color-panel-solid)",color:"var(--gray-11)",boxShadow:"inset 0 0 0 2px var(--gray-a6)"}};return n.jsx("button",{type:"button",onClick:a,disabled:l,"aria-current":i==="current"?"step":void 0,className:"w-full rounded-md disabled:cursor-default enabled:hover:bg-[var(--gray-a2)]",style:{border:0,background:"transparent",cursor:"pointer",textAlign:"left",padding:"8px 8px 12px"},children:n.jsxs(s.Flex,{gap:"3",align:"start",children:[n.jsx(s.Flex,{align:"center",justify:"center","aria-hidden":!0,style:{width:28,height:28,flex:"0 0 28px",borderRadius:"50%",fontSize:13,fontWeight:600,...c[i]},children:i==="done"?n.jsx(ne.CheckIcon,{width:16,height:16}):e+1}),n.jsxs(s.Box,{style:{minWidth:0,flex:1,paddingTop:2},children:[n.jsxs(s.Flex,{align:"center",gap:"2",justify:"between",children:[n.jsx(s.Text,{size:"2",weight:i==="current"?"bold":"medium",style:{color:i==="current"?"var(--accent-11)":"var(--gray-12)"},children:r}),o>0&&n.jsx(s.Flex,{align:"center",justify:"center","aria-hidden":!0,"data-testid":"step-error-count",style:{minWidth:20,height:20,padding:"0 6px",boxSizing:"border-box",borderRadius:10,background:"var(--red-9)",color:"white",fontSize:12,fontWeight:600,lineHeight:1,flexShrink:0},children:o})]}),n.jsx(s.Text,{as:"p",size:"1",color:o>0?"red":"gray",children:t})]})]})})}function so(e){var t;const r=document.getElementById(e);(t=r==null?void 0:r.scrollIntoView)==null||t.call(r,{block:"center"}),r==null||r.focus()}function St({title:e,items:r}){return n.jsxs(s.Callout.Root,{color:"red",mb:"4",role:"alert",children:[n.jsx(s.Callout.Icon,{children:n.jsx(ne.ExclamationTriangleIcon,{})}),n.jsx(s.Callout.Text,{children:e}),n.jsx("ul",{style:{margin:0,paddingLeft:20},children:r.map(t=>n.jsx("li",{children:n.jsx(s.Button,{type:"button",variant:"ghost",color:"red",size:"1",onClick:t.onClick,children:t.label})},t.key))})]})}const io=({uischema:e,schema:r,path:t,renderers:o,cells:i})=>{var f;const l=(f=Y.useJsonForms().i18n)==null?void 0:f.translate,a=qt(),c=mr(e,t),u=c.length,d=x.useEffectEvent(()=>{var h;return(h=a==null?void 0:a.onStepChange)==null?void 0:h.call(a,{step:u,count:u,last:!0})});return x.useEffect(()=>{d()},[u]),n.jsx(s.Flex,{direction:"column",gap:"6",p:{initial:"4",sm:"6"},style:Ge,"data-form-review":"",children:c.map((h,p)=>n.jsxs(s.Box,{children:[n.jsx(s.Heading,{size:"3",as:"h3",mb:"3",children:xr(h,l)}),n.jsx(hr,{category:h,schema:r,path:t,renderers:o,cells:i,enabled:!1})]},`${t}-${p}`))})};function mr(e,r){var a,c;const t=Y.useJsonForms(),o=(a=t.core)==null?void 0:a.ajv,i=(c=t.core)==null?void 0:c.data,l=t.config;return En(e).filter(u=>!u.rule||!o||b.isVisible(u,i,r,o,l))}function hr({category:e,schema:r,path:t,renderers:o,cells:i,enabled:l}){return n.jsx(s.Flex,{direction:"column",gap:"4",children:e.elements.map((a,c)=>n.jsx(Y.JsonFormsDispatch,{uischema:a,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${c}`))})}function xr(e,r){return b.deriveLabelForUISchemaElement(e,r??b.defaultTranslator)??e.label}function lo(e,r){var i;const t=(i=e==null?void 0:e.options)==null?void 0:i.description;if(!e||!t)return;const o=b.getI18nKeyPrefixBySchema(void 0,e);return(r??b.defaultTranslator)(o?`${o}.description`:t,t)}const gr=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l,visible:a=!0})=>{const u=e.elements;return a===!1?null:n.jsx(s.Flex,{direction:"column",gap:"4",children:u.map((d,f)=>n.jsx(Y.JsonFormsDispatch,{uischema:d,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${f}`))})},yr=b.rankWith(1,b.uiTypeIs("VerticalLayout")),br=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l,visible:a=!0})=>{const u=e.elements;return a===!1?null:n.jsx(s.Flex,{direction:"row",gap:"4",children:u.map((d,f)=>n.jsx(s.Box,{style:{flex:1},children:n.jsx(Y.JsonFormsDispatch,{uischema:d,schema:r,path:t,renderers:o,cells:i,enabled:l})},`${t}-${f}`))})},vr=b.rankWith(1,b.uiTypeIs("HorizontalLayout")),jr=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l,visible:a=!0})=>{const c=e,u=c.elements;return a===!1?null:n.jsxs(s.Box,{mb:"6",children:[c.label&&n.jsx(s.Heading,{size:"3",mb:"3",className:"text-gray-500 uppercase tracking-wide font-semibold",children:c.label}),n.jsx(s.Flex,{direction:"column",gap:"4",children:u.map((d,f)=>n.jsx(Y.JsonFormsDispatch,{uischema:d,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${f}`))})]})},wr=b.rankWith(1,b.uiTypeIs("Group")),Tr=e=>e.visible===!1?null:Jt(e.uischema)?n.jsx(ro,{uischema:e.uischema,schema:e.schema,path:e.path,renderers:e.renderers,cells:e.cells,enabled:e.enabled}):n.jsx(ao,{...e}),ao=({uischema:e,schema:r,path:t,renderers:o,cells:i,enabled:l})=>{var h;const c=e.elements.filter(p=>p.type==="Category"),[u,d]=x.useState(((h=c[0])==null?void 0:h.label)||"");if(!c.length)return null;const f=c.find(p=>p.label===u)?u:c[0].label;return n.jsxs(s.Tabs.Root,{value:f,onValueChange:d,children:[n.jsx(s.Tabs.List,{children:c.map((p,y)=>n.jsx(s.Tabs.Trigger,{value:p.label,children:p.label},`${t}-${y}`))}),n.jsx(s.Box,{pt:"3",children:c.map((p,y)=>n.jsx(s.Tabs.Content,{value:p.label,children:n.jsx(s.Flex,{direction:"column",gap:"4",children:p.elements.map((S,w)=>n.jsx(Y.JsonFormsDispatch,{uischema:S,schema:r,path:t,renderers:o,cells:i,enabled:l},`${t}-${y}-${w}`))})},`${t}-${y}`))})]})},Sr=b.rankWith(1,b.uiTypeIs("Categorization"));function Ee(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(0)} MB`:e>=1024?`${(e/1024).toFixed(0)} KB`:`${e} B`}function Ce(e){const r=e.split(",").map(l=>l.trim()).filter(Boolean),t=r.filter(l=>l.startsWith(".")),i=(t.length>0?t:r).map(l=>{if(l.endsWith("/*"))return l.split("/")[0].toUpperCase()+"S";if(l.startsWith("."))return l.slice(1).toUpperCase();const a=l.split("/")[1];return a?a.toUpperCase():l});return[...new Set(i)].join(", ")}const co="image/png,image/jpeg,image/gif,image/webp,application/pdf,text/html,text/plain,.png,.jpg,.jpeg,.gif,.webp,.pdf,.html,.htm,.txt";function Er(e,r){return r.split(",").map(o=>o.trim()).filter(Boolean).some(o=>o==="*"||o==="*/*"?!0:o.endsWith("/*")?(e.type??"").startsWith(o.slice(0,-1)):o.startsWith(".")?e.name.toLowerCase().endsWith(o.toLowerCase()):e.type===o)}function Et(e){const r=e.name??(e.extension?`file${e.extension}`:""),t=!!e.type,o=Cr(r)!==void 0;return!t&&!o?!0:Er({name:r,type:e.type},co)}function Cr(e){const r=e.split(/[/\\]/).pop()??e,t=r.lastIndexOf(".");if(!(t<=0||t===r.length-1))return r.slice(t)}function uo(e,r,t){Rr(new Blob([e],{type:t}),r)}function Rr(e,r){const t=URL.createObjectURL(e),o=document.createElement("a");o.href=t,o.download=r,o.click(),setTimeout(()=>URL.revokeObjectURL(t),0)}async function fo(e,r){const t=await fetch(e);if(!t.ok)throw new Error(`Download failed (${t.status})`);Rr(await t.blob(),r)}const Ze="Uploaded File";function po(e,r,t){if(!e&&t.name)return t.name;const o=e?it(e,r,Ar(t.name??"",Ze)):Ze,i=mo(Cr(t.name??"")??t.extension);return!i||o.toLowerCase().endsWith(i.toLowerCase())?o:`${o}${i}`}function mo(e){return e&&/^\.[A-Za-z0-9]+$/.test(e)?e:void 0}const ho=new Set(["/","\\","<",">",":",'"',"|","?","*"]),xo=e=>ho.has(e)||e.charCodeAt(0)<32||e.charCodeAt(0)===127;function Ar(e,r){const t=Array.from(e,o=>xo(o)?"_":o).join("").trim();return t===""||t.startsWith(".")?r:t}function it(e,r,t){const o=r!==null&&typeof r=="object"&&!Array.isArray(r)?r:{};return Ar(qe(e,o),t)}function Fr({open:e,onOpenChange:r,title:t,description:o,keepLabel:i,removeLabel:l,onConfirm:a}){return n.jsx(s.AlertDialog.Root,{open:e,onOpenChange:r,children:n.jsxs(s.AlertDialog.Content,{maxWidth:"460px",children:[n.jsx(s.AlertDialog.Title,{children:t}),n.jsx(s.AlertDialog.Description,{size:"2",children:o}),n.jsxs(s.Flex,{gap:"3",mt:"4",justify:"end",children:[n.jsx(s.AlertDialog.Cancel,{children:n.jsx(s.Button,{type:"button",variant:"soft",color:"gray",children:i})}),n.jsx(s.AlertDialog.Action,{children:n.jsx(s.Button,{type:"button",color:"red",onClick:a,children:l})})]})]})})}function go(e){return e?Array.isArray(e)?e:[e]:[]}const yo=({data:e,handleChange:r,path:t,label:o,required:i,uischema:l,schema:a,enabled:c,errors:u,visible:d=!0})=>{var ye;const f=_t(),h=(ye=Y.useJsonForms().i18n)==null?void 0:ye.translate,[p,y]=x.useState(null),[S,w]=x.useState("");Re(d,t,r);const H=Te(t,i,d),R=!u||u.length===0,z=(a==null?void 0:a["x-file"])??{},k=(l==null?void 0:l.options)??{},E=z.maxFiles??k.maxFiles??1,T=z.maxSize??k.maxSize??5*1024*1024,C=z.accept??k.accept??"image/*,application/pdf",X=typeof z.fileName=="string"?z.fileName:void 0,U=E>1,M=c!==!1,[P,I]=x.useState(!1),[oe,q]=x.useState(null),[te,J]=x.useState({}),[ce,se]=x.useState({}),G=x.useRef(new Set),ue=x.useRef(null),D=go(e),K=D.length>=E,L=async m=>{var N;const v=(N=ce[m])==null?void 0:N.blobUrl;if(v)return{url:v};const V=f==null?void 0:f.getDownloadUrl;if(!V)return{};const A=await V(m);return{url:A==null?void 0:A.url,extension:A==null?void 0:A.extension,type:A==null?void 0:A.mimeType}},ee=(m,v,V)=>{var A;return po(X,{index:v},{name:(A=ce[m])==null?void 0:A.name,extension:V.extension})},Q=(m,v)=>{J(V=>({...V,[m]:v}))},B=m=>{J(v=>{if(!v[m])return v;const V={...v};return delete V[m],V})};x.useEffect(()=>()=>{G.current.forEach(m=>URL.revokeObjectURL(m)),G.current.clear()},[]);const g=x.useCallback(async m=>{if(q(null),D.length>=E){q(`Maximum ${E} file${E>1?"s":""} allowed.`);return}if(m.size>T){q(`File exceeds the ${Ee(T)} limit.`);return}if(!Er(m,C)){q(`Invalid type. Accepted: ${Ce(C)}`);return}if(!(f!=null&&f.onUpload)){q("Upload service not configured.");return}try{const v=await f.onUpload(m),V=URL.createObjectURL(m);G.current.add(V);const A={key:v.key,name:v.name??m.name,type:m.type||void 0,blobUrl:V};se(ie=>({...ie,[v.key]:A}));const N=[...D,v.key];r(t,U?N:N[0])}catch{q("Upload failed. Please try again."),ue.current&&(ue.current.value="")}},[D,E,T,C,f,t,r,U]);if(d===!1)return null;const F=m=>{m.preventDefault(),m.stopPropagation(),!(!M||K)&&I(m.type==="dragenter"||m.type==="dragover")},W=m=>{var v;m.preventDefault(),m.stopPropagation(),I(!1),!(!M||K)&&(v=m.dataTransfer.files)!=null&&v[0]&&g(m.dataTransfer.files[0])},Z=m=>{var v;(v=m.target.files)!=null&&v[0]&&(g(m.target.files[0]),m.target.value="")},re=m=>{if(!M)return;se(V=>{var ie;const A={...V},N=(ie=A[m])==null?void 0:ie.blobUrl;return N&&(URL.revokeObjectURL(N),G.current.delete(N)),delete A[m],A}),B(m);const v=D.filter(V=>V!==m);r(t,U?v.length>0?v:void 0:v[0])},me=async(m,v,V)=>{var ie,pe;m.preventDefault(),B(v);const A=(ie=ce[v])==null?void 0:ie.blobUrl;if(A){(pe=window.open(A,"_blank","noopener,noreferrer"))==null||pe.focus();return}const N=window.open("","_blank");if(N)try{const O=await L(v);if(!O.url){N.close(),Q(v,"Unable to open file.");return}if(Et(O)){N.location.href=O.url;return}N.close(),await ve(v,V,O)}catch{N.close(),Q(v,"Unable to open file.")}},ve=async(m,v,V)=>{B(m);try{const A=V??await L(m);if(!A.url){Q(m,"Unable to download file.");return}await fo(A.url,ee(m,v,A))}catch{Q(m,"Unable to download file.")}};if(!M&&D.length===0)return null;const Ae=E-D.length,Ie=M&&!K;return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{align:"center",justify:"between",mb:"2",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",children:[o,H&&n.jsx(s.Text,{color:"red",children:" *"})]}),n.jsx(s.Text,{size:"1",color:"gray",children:U?`Up to ${E} files · ${Ee(T)} each · ${Ce(C)}`:`${Ee(T)} · ${Ce(C)}`})]}),n.jsx(s.Text,{as:"p",size:"2",role:"status",mb:"2",style:S?void 0:{display:"none"},children:S}),n.jsx(Fr,{open:p!==null,onOpenChange:m=>!m&&y(null),title:p?Oe(h,"confirmTitle",{file:p.name}):"",description:Oe(h,"confirmDescription"),keepLabel:Oe(h,"keepFile"),removeLabel:Oe(h,"removeConfirmed"),onConfirm:()=>{p&&(re(p.key),w(Oe(h,"removed",{file:p.name})),y(null))}}),D.map((m,v)=>{const V=v+1,A=ce[m],N=A==null?void 0:A.name,ie=X?ee(m,V,{}):N??Ze,pe=!!(X&&N),O=te[m],$=Et({name:N,type:A==null?void 0:A.type});return n.jsxs(s.Card,{size:"2",variant:"surface",mb:"2",children:[n.jsxs(s.Flex,{align:"center",gap:"3",children:[n.jsx(s.Box,{style:{background:"var(--blue-3)",padding:8,borderRadius:6,color:"var(--blue-9)",flexShrink:0},children:n.jsx(ne.FileTextIcon,{width:"20",height:"20"})}),n.jsxs(s.Box,{style:{flex:1,overflow:"hidden"},children:[n.jsx(s.Text,{size:"2",weight:"bold",style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ie}),pe&&n.jsx(s.Text,{size:"1",color:"gray",style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:N})]}),n.jsxs(s.Flex,{align:"center",gap:"2",style:{flexShrink:0},children:[$&&n.jsx(s.Button,{variant:"soft",color:"blue",size:"1",onClick:de=>void me(de,m,V),children:"View"}),n.jsx(s.Tooltip,{content:"Download",children:n.jsx(s.IconButton,{variant:"ghost",color:"gray","aria-label":"Download",onClick:()=>void ve(m,V),children:n.jsx(ne.DownloadIcon,{})})}),n.jsx("span",{role:"img","aria-label":Oe(h,"uploaded"),style:{display:"inline-flex"},children:n.jsx(ne.CheckCircledIcon,{"aria-hidden":!0,style:{color:"var(--green-9)",width:18,height:18}})}),M&&n.jsxs(s.DropdownMenu.Root,{children:[n.jsx(s.DropdownMenu.Trigger,{children:n.jsx(s.IconButton,{type:"button",variant:"ghost",color:"gray","aria-label":Oe(h,"moreActions",{file:ie}),children:n.jsx(ne.DotsHorizontalIcon,{})})}),n.jsx(s.DropdownMenu.Content,{align:"end",children:n.jsx(s.DropdownMenu.Item,{color:"red",onSelect:()=>y({key:m,name:ie}),children:Oe(h,"remove")})})]})]})]}),O&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:O})]},m)}),Ie&&n.jsxs("div",{role:"button",tabIndex:0,onClick:()=>{var m;return(m=ue.current)==null?void 0:m.click()},onKeyDown:m=>{var v;(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),(v=ue.current)==null||v.click())},onDragEnter:F,onDragLeave:F,onDragOver:F,onDrop:W,style:{cursor:"pointer"},className:["border-2 border-dashed rounded-lg p-6 text-center","transition-all duration-200 ease-in-out",P?"border-blue-500 bg-blue-50":oe?"border-red-300 bg-red-50":"border-gray-300 hover:border-blue-400 hover:bg-gray-50"].join(" "),children:[n.jsx("input",{ref:ue,type:"file",style:{display:"none"},accept:C,onChange:Z}),n.jsx(s.Flex,{direction:"column",align:"center",gap:"2",children:oe?n.jsxs(n.Fragment,{children:[n.jsx(ne.ExclamationTriangleIcon,{style:{width:32,height:32,color:"var(--red-9)"}}),n.jsx(s.Text,{size:"2",color:"red",weight:"medium",children:oe}),n.jsx(s.Text,{size:"1",color:"gray",children:"Click to try again"})]}):n.jsxs(n.Fragment,{children:[n.jsx(ne.UploadIcon,{style:{width:32,height:32,color:"var(--gray-8)"}}),n.jsx(s.Text,{size:"2",weight:"medium",children:D.length>0?`Add another file (${Ae} remaining)`:"Click to upload or drag and drop"}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Ee(T)," max · ",Ce(C)]})]})})]}),M&&K&&U&&n.jsxs(s.Text,{size:"1",color:"gray",mt:"1",style:{display:"block",textAlign:"center"},children:["Maximum ",E," files uploaded. Remove one to replace it."]}),!R&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:Se(u,o)})]})},Ir=Y.withJsonFormsControlProps(yo),kr=b.rankWith(10,b.and(b.schemaMatches(e=>{if(e.type==="string"&&e.format==="file")return!0;if(e.type==="array"){const r=e.items;return(r==null?void 0:r.type)==="string"&&(r==null?void 0:r.format)==="file"}return!1})));function Or(e,r){return e!==!1&&r!==!0}class Qe extends Error{}async function bo(e,r){const{read:t,utils:o}=await import("@e965/xlsx"),i=t(e,{type:"array",cellDates:!0});if(i.SheetNames.length===0)throw new Qe("This file has no sheets.");const l=r??i.SheetNames[0],a=i.Sheets[l];if(!a)throw new Qe(`This file doesn't have a sheet named "${l}".`);const c=o.sheet_to_json(a,{header:1,raw:!0,defval:null});return{sheetName:l,matrix:c,rowCount:c.length,colCount:Math.max(0,...c.map(u=>u.length))}}function vo(e){let r=e+1,t="";for(;r>0;){const o=(r-1)%26;t=String.fromCharCode(65+o)+t,r=Math.floor((r-1)/26)}return t}class xe extends Error{constructor(t,o){super(o??t);gt(this,"code");this.code=t,this.name="FormulaError"}}const jo=["IFS","IFERROR","AND","OR","NOT","ROUND","ROUNDUP","ROUNDDOWN","INDEX","VLOOKUP","HLOOKUP","SUM","AVERAGE","COUNT","DATE","TODAY"],wo=["MAX","MIN","MAXA","MINA","MEDIAN","LARGE","SMALL","PERMUT","PERMUTATIONA","MATCH","SWITCH","SUBSTITUTE","TEXTJOIN","COUNTA","UPPER"],To=["YEAR","MONTH","DAY","WEEKDAY"],So=["IF"],Eo=["CONCATENATE","CONCAT","LEN","TRIM","LOWER","LEFT","RIGHT","MID","FIND","SEARCH"],Co=new Set([...jo,...wo,...To,...Eo,...So]),Ro=/"(?:[^"]|"")*"/g,Ct=new RegExp("(?<![A-Za-z0-9_.])([A-Za-z_][A-Za-z0-9_.]*)\\s*\\(","g");function Ao(e){const r=e.replace(Ro,o=>" ".repeat(o.length));Ct.lastIndex=0;let t;for(;(t=Ct.exec(r))!==null;){const o=t[1].toUpperCase();if(!Co.has(o))throw new xe("NAME",`Function ${o} is not allowed.`)}}function Fo(e,r,t){let o=e;if(o==null)throw t.NA;if(typeof o=="object"&&!(o instanceof t)&&(o=r.retrieveRef(o)),o instanceof t)throw o;if(typeof o=="boolean")return o;if(typeof o=="number")return o!==0;throw t.VALUE}function Dr(e){return e!==null&&typeof e=="object"&&"value"in e?e.value:e}function $e(e){const r=Dr(e);return Array.isArray(r)?r.flat(1/0):[r]}function ae(e){const r=Dr(e);return Array.isArray(r)?r.flat(1/0)[0]:r}function _e(e){return e===void 0?void 0:ae(e)}function he(e){return e==null||e===""?"":typeof e=="boolean"?e?"TRUE":"FALSE":e instanceof Date?e.toLocaleDateString():String(e)}function Io(e,r){return e instanceof r?e:new r(e.message||"#ERROR!")}function fe(e){return e.find(r=>r instanceof Error)}function ko(e,r){const t=l=>{throw Io(l,r)},o=(l,{checkArgsForErrors:a=!0}={})=>(...c)=>{const u=c.flatMap($e);if(a){const f=fe(u);f&&t(f)}const d=l(...u);return d instanceof Error?t(d):d},i=(l,{toText:a=!1}={})=>c=>{const u=ae(c),d=fe([u]);d&&t(d);const f=l(a?he(u):u);return f instanceof Error?t(f):f};return{IF:(l,a,c,u)=>{const d=Fo(a,l,r);if(c==null)throw r.NA;return d?c:u??!1},MAX:o(e.MAX),MIN:o(e.MIN),MAXA:o(e.MAXA),MINA:o(e.MINA),MEDIAN:o(e.MEDIAN),COUNTA:o(e.COUNTA,{checkArgsForErrors:!1}),LARGE:(l,a)=>{const c=$e(l),u=ae(a),d=fe([...c,u]);d&&t(d);const f=e.LARGE(c,u);return f instanceof Error?t(f):f},SMALL:(l,a)=>{const c=$e(l),u=ae(a),d=fe([...c,u]);d&&t(d);const f=e.SMALL(c,u);return f instanceof Error?t(f):f},PERMUT:(l,a)=>{const c=[ae(l),ae(a)],u=fe(c);u&&t(u);const d=e.PERMUT(c[0],c[1]);return d instanceof Error?t(d):d},PERMUTATIONA:(l,a)=>{const c=[ae(l),ae(a)],u=fe(c);u&&t(u);const d=e.PERMUTATIONA(c[0],c[1]);return d instanceof Error?t(d):d},MATCH:(l,a)=>{const c=ae(l),u=$e(a),d=fe([c,...u]);d&&t(d);const f=e.MATCH(c,u,0);return f instanceof Error?t(f):f},SWITCH:(...l)=>{const a=l.map(ae),c=fe(a);c&&t(c);const u=e.SWITCH(...a);return u instanceof Error?t(u):u},SUBSTITUTE:(l,a,c,u)=>{const d=[he(ae(l)),he(ae(a)),he(ae(c))];u!==void 0&&d.push(ae(u));const f=fe(d);f&&t(f);const h=e.SUBSTITUTE(...d);return h instanceof Error?t(h):h},TEXTJOIN:(l,a,...c)=>{const u=he(ae(l)),d=ae(a),f=c.flatMap($e).map(he),h=fe([u,d]);h&&t(h);const p=e.TEXTJOIN(u,d,f);return p instanceof Error?t(p):p},UPPER:i(e.UPPER),YEAR:i(e.YEAR),MONTH:i(e.MONTH),DAY:i(e.DAY),WEEKDAY:(l,a)=>{const c=ae(l),u=ae(a),d=fe([c]);d&&t(d);const f=e.WEEKDAY(c,u);return f instanceof Error?t(f):f},CONCATENATE:(...l)=>{const a=l.flatMap($e),c=fe(a);c&&t(c);const u=e.CONCATENATE(...a.map(he));return u instanceof Error?t(u):u},CONCAT:(...l)=>{const a=l.flatMap($e),c=fe(a);c&&t(c);const u=e.CONCAT(...a.map(he));return u instanceof Error?t(u):u},LEN:i(e.LEN,{toText:!0}),TRIM:i(e.TRIM,{toText:!0}),LOWER:i(e.LOWER,{toText:!0}),LEFT:(l,a)=>{const c=ae(l),u=_e(a),d=fe([c]);d&&t(d);const f=e.LEFT(he(c),u);return f instanceof Error?t(f):f},RIGHT:(l,a)=>{const c=ae(l),u=_e(a),d=fe([c]);d&&t(d);const f=e.RIGHT(he(c),u);return f instanceof Error?t(f):f},MID:(l,a,c)=>{const u=ae(l),d=ae(a),f=ae(c),h=fe([u,d,f]);h&&t(h);const p=e.MID(he(u),d,f);return p instanceof Error?t(p):p},FIND:(l,a,c)=>{const u=ae(l),d=ae(a),f=_e(c),h=fe([u,d]);h&&t(h);const p=e.FIND(he(u),he(d),f);return p instanceof Error?t(p):p},SEARCH:(l,a,c)=>{const u=ae(l),d=ae(a),f=_e(c),h=fe([u,d]);h&&t(h);const p=e.SEARCH(he(u),he(d),f);return p instanceof Error?t(p):p}}}const Oo={"#REF!":"REF","#VALUE!":"VALUE","#DIV/0!":"DIV0","#NAME?":"NAME","#N/A":"NA","#NUM!":"NUM","#NULL!":"NULL"};function Rt(e){return Oo[e.error]??"ERROR"}function At(e,r){if(e instanceof xe)return e;if(e instanceof r){const t=e.details;return t instanceof xe?t:t instanceof r?new xe(Rt(t),t.message):new xe(Rt(e),e.message)}return new xe("ERROR",e instanceof Error?e.message:void 0)}function Do(e){return Math.max(0,...e.map(r=>(r==null?void 0:r.length)??0))}function No(e){return r=>{const t=e[r.row-1];if(r.row<1||r.col<1||t==null||r.col-1>=t.length)throw new xe("REF");const o=t[r.col-1];return o==null||o===""?null:o}}function Mo(e){return r=>{const t=Math.min(r.from.row,r.to.row),o=Math.min(r.from.col,r.to.col),i=Math.max(r.from.row,r.to.row),l=Math.max(r.from.col,r.to.col),a=Do(e);if(t>e.length||o>a)throw new xe("REF");const c=Math.min(i,e.length),u=[];for(let d=t;d<=c;d++){const f=e[d-1],h=[];if(f!=null){const p=Math.min(l,f.length);for(let y=o;y<=p;y++){const S=f[y-1];h.push(S==null||S===""?null:S)}}u.push(h)}return u}}function Lo(e){if(e==null||e==="")return null;if(typeof e=="number"||typeof e=="string"||typeof e=="boolean"||e instanceof Date)return e;throw new xe("VALUE")}async function Nr(e,r){if(typeof e!="string")throw new xe("ERROR");const t=e.trim();if(t==="")throw new xe("ERROR");const o=t.startsWith("=")?t.slice(1):t;Ao(o);const[i,l]=await Promise.all([import("fast-formula-parser"),import("@formulajs/formulajs")]),a=i.default??i,c=a.FormulaError,u=new a({...r,functions:ko(l,c)});let d;try{d=u.parse(o,{row:1,col:1,sheet:"Sheet1"})}catch(f){throw At(f,c)}if(d instanceof c)throw At(d,c);return Lo(d)}async function zo(e,r){return Nr(r,{onCell:No(e),onRange:Mo(e)})}const Ft=-1;async function Mr(e,r){const t=Object.keys(e);return Nr(r,{onVariable:o=>{const i=t.indexOf(o);return i===-1?null:{row:Ft,col:i+1}},onCell:o=>{if(o.row===Ft)return e[t[o.col-1]]??null;throw new xe("REF")},onRange:()=>{throw new xe("REF")}})}const Lr={REF:"#REF!",VALUE:"#VALUE!",DIV0:"#DIV/0!",NAME:"#NAME?",ERROR:"#ERROR!",NA:"#N/A",NUM:"#NUM!",NULL:"#NULL!"};function lt(e){const r=e instanceof xe?e.code:"ERROR";return Lr[r]}async function Po(e,r){return e.length===0?r.map(t=>({id:typeof(t==null?void 0:t.id)=="string"?t.id:"(unknown)",label:(t==null?void 0:t.label)??"(unknown)",value:null,error:Lr.ERROR})):Promise.all(r.map(async t=>{try{if(!t||typeof t.label!="string"||typeof t.expression!="string"||typeof t.id!="string")throw new xe("ERROR");return{id:t.id,label:t.label,value:await zo(e,t.expression)}}catch(o){return{id:typeof(t==null?void 0:t.id)=="string"?t.id:"(unknown)",label:(t==null?void 0:t.label)??"(unknown)",value:null,error:lt(o)}}}))}function It(e){const r=new Set;for(const{id:t}of e){if(r.has(t))return t;r.add(t)}return null}function zr(e){const{columnHeader:r,rowHeader:t,columns:o,rows:i}=e;if(o!==void 0&&!Array.isArray(o))return"columns must be an array of { id, label } objects.";if(i!==void 0&&!Array.isArray(i))return"rows must be an array of { id, label } objects.";if(o!==void 0&&o.length===0)return"columns is declared but empty — declare at least one field, or omit it entirely for raw matrix mode.";if(i!==void 0&&i.length===0)return"rows is declared but empty — declare at least one field, or omit it entirely for raw matrix mode.";const l=f=>!!f&&typeof f.id=="string"&&f.id!==""&&typeof f.label=="string"&&f.label!=="",a=o==null?void 0:o.findIndex(f=>!l(f));if(a!=null&&a!==-1)return`columns[${a}] must be a { id, label } object with non-empty string fields.`;const c=i==null?void 0:i.findIndex(f=>!l(f));if(c!=null&&c!==-1)return`rows[${c}] must be a { id, label } object with non-empty string fields.`;const u=!!o&&o.length>0,d=!!i&&i.length>0;if(u){const f=It(o);if(f)return`duplicate column id "${f}" — every declared column id must be unique.`}if(d){const f=It(i);if(f)return`duplicate row id "${f}" — every declared row id must be unique.`}return r&&t?"columnHeader and rowHeader cannot both be true — pick one orientation for the persisted sheet shape.":u&&d?"columns and rows cannot both be declared — pick one orientation for the persisted sheet shape.":r&&!u?"columnHeader is true but columns is missing or empty — declare the column list columnHeader positions map to.":t&&!d?"rowHeader is true but rows is missing or empty — declare the row list rowHeader positions map to.":null}function kt(e,r={}){const t=zr(r);if(t)throw new Error(`x-spreadsheet: ${t}`);const{columnHeader:o,rowHeader:i,columns:l,rows:a}=r;return l&&l.length>0?$o(e,l,o===!0):a&&a.length>0?Bo(e,a,i===!0):e}function $o(e,r,t){return(t?e.slice(1):e).map(i=>{const l=Object.create(null);return r.forEach((a,c)=>{l[a.id]=i[c]??null}),l})}function Bo(e,r,t){const o=t?1:0,i=Math.max(0,...e.map(a=>a.length)),l=Math.max(0,i-o);return Array.from({length:l},(a,c)=>{const u=o+c,d=Object.create(null);return r.forEach((f,h)=>{var p;d[f.id]=((p=e[h])==null?void 0:p[u])??null}),d})}function Pr(e){return!Array.isArray(e[0])}function Uo(e){const r=Object.create(null);for(const{id:t,label:o,value:i,error:l}of e)r[t]=l===void 0?{label:o,value:i}:{label:o,value:i,error:l};return r}function et(e,r){const t=o=>o instanceof Date?o.toISOString():o??null;return t(e)===t(r)}function _o(e,r){const t=e??{},o=r??{},i=Object.keys(t);return i.length!==Object.keys(o).length?!1:i.every(l=>{if(!Object.prototype.hasOwnProperty.call(o,l))return!1;const a=t[l],c=o[l];return a.label===c.label&&a.error===c.error&&et(a.value,c.value)})}function Wo(e,r){if(e==null||r==null)return e===r;const t=Array.isArray(e);if(t!==Array.isArray(r))return!1;if(t){const a=e,c=r;return a.length===c.length&&a.every((u,d)=>et(u,c[d]))}const o=e,i=r,l=Object.keys(o);return l.length!==Object.keys(i).length?!1:l.every(a=>Object.prototype.hasOwnProperty.call(i,a)&&et(o[a],i[a]))}function Vo(e,r){if(e===r)return!0;if(e==null||r==null)return!1;const t=e,o=r;return t.length!==o.length?!1:t.every((i,l)=>Wo(i,o[l]))}function Ho(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e instanceof Date}function $r(e,r){if(e.length===0)return[];const t=[],o=new Set;for(const l of r??[])o.has(l)||(o.add(l),t.push(l));for(const l of e)for(const a of Object.keys(l))o.has(a)||(o.add(a),t.push(a));if(t.length===0)return[];const i=e.map(l=>t.map(a=>{if(!Object.prototype.hasOwnProperty.call(l,a))return null;const c=l[a];return Ho(c)?c:null}));return[t,...i]}function qo(e){const r=Math.max(0,...e.map(t=>t.length));return Array.from({length:r},(t,o)=>e.map(i=>i[o]??null))}const Jo=".xlsx,.xls,.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,text/csv",Xo=10*1024*1024,Ye=200,Ko=50,Yo=[];function Ot(e){return e==null||e===""?"":e instanceof Date?e.toLocaleDateString():String(e)}const Go=({data:e,handleChange:r,path:t,label:o,required:i,schema:l,enabled:a,readonly:c,errors:u,visible:d=!0})=>{Re(d,t,r);const f=Te(t,i,d),h=!u||u.length===0,p=Or(a,c),y=(l==null?void 0:l["x-spreadsheet"])??{},S=(l==null?void 0:l["x-evaluate"])??Yo,w=y.accept??Jo,H=y.maxSize??Xo,R=y.columnHeader===!0,z=y.rowHeader===!0,k=y.columns,E=y.rows,T=Array.isArray(k)&&k.length>0,C=Array.isArray(E)&&E.length>0,X=zr({columnHeader:R,rowHeader:z,columns:k,rows:E}),U=y.showSheet!==!1,M=y.sheetName,P=y.persistSheet!==!1,I=e??null,[oe,q]=x.useState(()=>I!=null&&I.sheet||Object.keys((I==null?void 0:I.derivations)??{}).length>0?"ready":"empty"),[te,J]=x.useState(null),[ce,se]=x.useState(!1),[G,ue]=x.useState(null),[D,K]=x.useState(null),L=x.useRef(null),ee=x.useRef(null),Q=(I==null?void 0:I.sheet)??null,B=x.useCallback(m=>{if(!Pr(m))return m;const v=C?E:T?k:void 0,V=$r(m,v==null?void 0:v.map(A=>A.id));return C?qo(V):V},[T,C,k,E]),g=x.useMemo(()=>G??(Q?B(Q):null),[G,Q,B]),F=((D==null?void 0:D.matrix)===g?D.derivations:null)??(I==null?void 0:I.derivations)??{},W=g!=null||I!=null,Z=x.useMemo(()=>{const m=T?1:0,v=C?1:0,V=g?g.slice(m):[],A=V.slice(0,Ye),N=Math.min(Ko,Math.max(0,...A.map($=>Math.max(0,$.length-v)))),ie=Array.from({length:N},($,de)=>de+v),pe="",O=C&&!T;return n.jsx(n.Fragment,{children:g&&U&&n.jsxs(s.Box,{mt:"3",children:[n.jsx(s.Box,{style:{overflow:"auto",maxHeight:420},children:n.jsxs(s.Table.Root,{variant:"surface",size:"1",children:[!O&&n.jsx(s.Table.Header,{children:n.jsxs(s.Table.Row,{children:[n.jsx(s.Table.ColumnHeaderCell,{children:pe}),ie.map($=>{var de;return n.jsx(s.Table.ColumnHeaderCell,{children:T?((de=k==null?void 0:k[$])==null?void 0:de.label)??"":vo($)},$)})]})}),n.jsx(s.Table.Body,{children:A.map(($,de)=>{var we;const je=m+de;return n.jsxs(s.Table.Row,{children:[n.jsx(s.Table.RowHeaderCell,{style:C?{fontWeight:700,background:"var(--gray-a3)"}:void 0,children:C?((we=E==null?void 0:E[je])==null?void 0:we.label)??"":T?"":je+1}),ie.map(Me=>n.jsx(s.Table.Cell,{children:Ot($[Me])},Me))]},de)})})]})}),V.length>Ye&&n.jsxs(s.Text,{size:"1",color:"gray",mt:"1",style:{display:"block"},children:["Showing first ",Ye," of ",V.length," rows"]})]})})},[g,U,T,C,k,E]),re=x.useCallback(async m=>{if(J(null),m.size>H){J(`File exceeds the ${Ee(H)} limit.`);return}if(!w.split(",").map(N=>N.trim()).some(N=>N==="*"||N==="*/*"?!0:N.endsWith("/*")?m.type.startsWith(N.slice(0,-1)):N.startsWith(".")?m.name.toLowerCase().endsWith(N.toLowerCase()):m.type===N)){J(`Invalid type. Accepted: ${Ce(w)}`);return}q("parsing");let A;try{const N=await m.arrayBuffer();A=(await bo(N,M)).matrix}catch(N){q("error"),J(N instanceof Qe?N.message:"This doesn't look like a valid spreadsheet. Please check the file and try again.");return}if(T||C)try{A=B(kt(A,{columnHeader:R,rowHeader:z,columns:k,rows:E}))}catch(N){q("error"),J(N instanceof Error?N.message:"Failed to process this sheet.");return}ee.current=(e==null?void 0:e.sheet)??null,ue(A),q("ready")},[w,H,M,e,R,z,k,E,T,C,B]);if(x.useEffect(()=>{G!=null&&Q!=null&&Q!==ee.current&&ue(null)},[G,Q]),x.useEffect(()=>{if(X||S.length===0&&!P)return;let m=!1;const v=A=>{p&&(_o(I==null?void 0:I.derivations,A==null?void 0:A.derivations)&&Vo(I==null?void 0:I.sheet,A==null?void 0:A.sheet)||(ee.current=(A==null?void 0:A.sheet)??null,r(t,A)))},V=g??[];if(V.length===0){I!=null&&v(void 0);return}return Po(V,S).then(A=>{if(m)return;let N;if(G!=null){if(P)try{N=kt(V,{columnHeader:T,rowHeader:C,columns:k,rows:E})}catch(pe){J(pe instanceof Error?pe.message:"Failed to process this sheet.");return}}else N=I==null?void 0:I.sheet;J(null);const ie=Uo(A);K({matrix:V,derivations:ie}),v(N===void 0?{derivations:ie}:{sheet:N,derivations:ie})}),()=>{m=!0}},[g,G,S,p,P,T,C,k,E,X]),d===!1)return null;if(X)return n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:o}),n.jsxs(s.Text,{size:"2",color:"red",style:{display:"block"},children:["Invalid x-spreadsheet config: ",X]})]});if(!p&&!W)return null;const me=m=>{m.preventDefault(),m.stopPropagation(),p&&se(m.type==="dragenter"||m.type==="dragover")},ve=m=>{var v;m.preventDefault(),m.stopPropagation(),se(!1),p&&(v=m.dataTransfer.files)!=null&&v[0]&&re(m.dataTransfer.files[0])},Ae=m=>{var v;(v=m.target.files)!=null&&v[0]&&(re(m.target.files[0]),m.target.value="")},Ie=()=>{p&&(ue(null),K(null),ee.current=null,J(null),q("empty"),r(t,void 0))},ye=U&&g==null&&I!=null;return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{align:"center",justify:"between",mb:"2",children:[n.jsxs(s.Flex,{align:"center",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",children:[o,f&&n.jsx(s.Text,{color:"red",children:" *"})]}),W&&p&&n.jsxs(n.Fragment,{children:[n.jsx(s.Tooltip,{content:"Replace spreadsheet",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",onClick:()=>{var m;return(m=L.current)==null?void 0:m.click()},"aria-label":"Replace spreadsheet",children:n.jsx(ne.UploadIcon,{})})}),n.jsx(s.Tooltip,{content:"Remove spreadsheet",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",color:"gray",onClick:Ie,"aria-label":"Remove spreadsheet",children:n.jsx(ne.Cross2Icon,{})})})]})]}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Ee(H)," max · ",Ce(w)]})]}),W&&te&&n.jsx(s.Text,{size:"2",color:"red",mb:"2",style:{display:"block"},children:te}),n.jsx("input",{ref:L,type:"file",style:{display:"none"},accept:w,onChange:Ae}),p&&!W&&n.jsx("div",{role:"button",tabIndex:0,onClick:()=>{var m;return(m=L.current)==null?void 0:m.click()},onKeyDown:m=>{var v;(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),(v=L.current)==null||v.click())},onDragEnter:me,onDragLeave:me,onDragOver:me,onDrop:ve,style:{cursor:"pointer"},className:["border-2 border-dashed rounded-lg p-6 text-center","transition-all duration-200 ease-in-out",ce?"border-blue-500 bg-blue-50":te?"border-red-300 bg-red-50":"border-gray-300 hover:border-blue-400 hover:bg-gray-50"].join(" "),children:n.jsx(s.Flex,{direction:"column",align:"center",gap:"2",children:oe==="parsing"?n.jsxs(n.Fragment,{children:[n.jsx(s.Spinner,{size:"3"}),n.jsx(s.Text,{size:"2",color:"gray",children:"Parsing spreadsheet…"})]}):te?n.jsxs(n.Fragment,{children:[n.jsx(ne.ExclamationTriangleIcon,{style:{width:32,height:32,color:"var(--red-9)"}}),n.jsx(s.Text,{size:"2",color:"red",weight:"medium",children:te}),n.jsx(s.Text,{size:"1",color:"gray",children:"Click to try again"})]}):n.jsxs(n.Fragment,{children:[n.jsx(ne.UploadIcon,{style:{width:32,height:32,color:"var(--gray-8)"}}),n.jsx(s.Text,{size:"2",weight:"medium",children:"Click to upload or drag and drop"}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Ee(H)," max · ",Ce(w)]})]})})}),Z,ye&&n.jsx(s.Text,{size:"2",color:"gray",mt:"3",style:{display:"block"},children:"Sheet preview not stored for this field — re-upload to view contents."}),Object.keys(F).length>0&&n.jsxs(s.Box,{mt:"3",children:[n.jsx(s.Text,{size:"2",weight:"bold",as:"div",mb:"1",children:"Computed values"}),n.jsx(s.Flex,{direction:"column",gap:"1",children:Object.entries(F).map(([m,v])=>n.jsxs(s.Flex,{justify:"between",children:[n.jsx(s.Text,{size:"2",children:v.label}),v.error?n.jsx(s.Text,{size:"2",color:"red",children:v.error}):n.jsx(s.Text,{size:"2",children:Ot(v.value)})]},m))})]}),!h&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:Se(u,o)})]})},Br=Y.withJsonFormsControlProps(Go),Ur=b.rankWith(10,b.schemaMatches(e=>e.type==="object"&&typeof e["x-spreadsheet"]=="object")),Zo="Sheet1",Qo="xlsx";function es(e){if(e===void 0)return null;if(!Array.isArray(e))return"columns must be an array of { id, label } objects.";if(e.length===0)return"columns is declared but empty — declare at least one field, or omit it entirely.";const r=e.findIndex(t=>!t||typeof t!="object"||typeof t.id!="string"||t.id===""||typeof t.label!="string"||t.label==="");return r!==-1?`columns[${r}] must be a { id, label } object with non-empty string fields.`:null}function ts(e,r){if(!Pr(e))return e;const t=$r(e,r==null?void 0:r.map(a=>a.id));if(!r||t.length===0)return t;const o=new Map(r.map(a=>[a.id,a.label])),[i,...l]=t;return[i.map(a=>o.get(String(a))??a),...l]}const rs=({data:e,path:r,label:t,schema:o,visible:i=!0})=>{const[l,a]=x.useState(null),c=Y.useJsonForms();if(i===!1)return null;const u=(o==null?void 0:o["x-spreadsheet-export"])??{},d=u.columns,f=u.sheetName??Zo,h=u.fileType??Qo,p=u.fileName??`export.${h}`,y=es(d);if(y)return n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:t}),n.jsxs(s.Text,{size:"2",color:"red",style:{display:"block"},children:["Invalid x-spreadsheet-export config: ",y]})]});const S=Array.isArray(e)&&e.length>0,w=async()=>{var H,R;if(S){a(null);try{const z=await import("@e965/xlsx"),k=ts(e,d),E=z.utils.aoa_to_sheet(k),T=z.utils.book_new();z.utils.book_append_sheet(T,E,f);const C=r.split(".").slice(0,-1).join("."),X=C?b.Resolve.data((H=c.core)==null?void 0:H.data,C):(R=c.core)==null?void 0:R.data;z.writeFile(T,it(p,X,`export.${h}`),{bookType:h})}catch(z){a(z instanceof Error?z.message:"Failed to build the workbook.")}}};return n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",style:{display:"block",marginBottom:"var(--space-2)"},children:t}),n.jsxs(s.Button,{type:"button",variant:"soft",disabled:!S,onClick:()=>void w(),children:[n.jsx(ne.DownloadIcon,{})," Download Spreadsheet"]}),l&&n.jsx(s.Text,{size:"2",color:"red",style:{display:"block",marginTop:"var(--space-2)"},children:l})]})},_r=Y.withJsonFormsControlProps(rs),Wr=b.rankWith(10,b.and(b.schemaMatches(e=>{const r=e["x-spreadsheet-export"];return e.type==="array"&&typeof r=="object"&&r!==null}),b.not(b.optionIs("editable",!0))));class De extends Error{}const Dt=5e6,ns=1024,os=/^<\?xml\s+[^>]*\bencoding\s*=\s*["']([^"']+)["']/i,ss={ignoreAttributes:!1,attributeNamePrefix:"@_",textNodeName:"#text",parseTagValue:!0,parseAttributeValue:!0,numberParseOptions:{hex:!1,leadingZeros:!1,eNotation:!0},trimValues:!0,cdataPropName:!1,commentPropName:!1,processEntities:!0,htmlEntities:!0,ignoreDeclaration:!0,ignorePiTags:!0,alwaysCreateTextNode:!1,preserveOrder:!1,removeNSPrefix:!1,maxNestedTags:100,strictReservedNames:!0};function is(e){const r=new Set(e);return r.size===0?()=>!1:(t,o)=>r.has(typeof o=="string"?o:o.toString())||r.has(t)}function ls(e){const r=e instanceof Error?e.message:"";return r.startsWith("[SECURITY] Invalid name:")?"This document uses a reserved JavaScript name (__proto__, constructor or prototype) as an element or attribute name, which cannot be represented safely.":r==="External entities are not supported"||r==="Parameter entities are not supported"?`${r}. Please remove the DOCTYPE entity declarations and try again.`:r.startsWith("Maximum nested tags exceeded")?"This document is nested too deeply to parse.":r.startsWith("Entity count")||r.includes("exceeds maximum allowed")?"This document declares too many or too large entity definitions to expand safely.":"This doesn't look like a valid XML document. Please check the file and try again."}async function as(e,r={}){var d;if(typeof e!="string")throw new De("This file could not be read as text.");const t=e.charCodeAt(0)===65279?e.slice(1):e;if(t.trim()==="")throw new De("This file is empty.");if(t.length>Dt)throw new De(`This document is too large to parse (over ${Dt/1e6} million characters).`);const o=(d=os.exec(t.slice(0,ns)))==null?void 0:d[1];if(o&&!/^utf-?8$/i.test(o))throw new De(`This document declares the unsupported encoding "${o}". Only UTF-8 is supported.`);const{XMLParser:i,XMLValidator:l}=await import("fast-xml-parser"),a=l.validate(t,{allowBooleanAttributes:!1});if(a!==!0){const{msg:f,line:h,col:p}=a.err;throw new De(`Invalid XML at line ${h}, column ${p}: ${f}`)}const c=new i({...ss,removeNSPrefix:r.removeNamespaces===!0,isArray:is(r.arrayPaths??[])});let u;try{u=c.parse(t)}catch(f){throw new De(ls(f))}if(u==null||typeof u!="object"||Array.isArray(u))throw new De("This document has no root element.");return u}function Vr(e,r,t){const{path:o,default:i}=typeof t=="string"?{path:t,default:void 0}:t,l=b.Resolve.data(e,r?`${r}.${o}`:o);return l??i}function cs(e,r,t){const o={};for(const[i,l]of Object.entries(t)){const a=Vr(e,r,l);if(a===void 0)return;o[i]=a}return o}async function us(e,r){try{return{status:"ok",value:await Mr(e,r)}}catch(t){return{status:"error",error:lt(t)}}}function Hr(e,r){return e==null?"":typeof e=="number"?e.toFixed(ds(r)):e instanceof Date?e.toLocaleDateString():String(e)}function ds(e){return Number.isFinite(e)?Math.min(100,Math.max(0,Math.trunc(e))):0}const Ne={found:!1},be=e=>({found:!0,value:e});function Nt(e){return e==null||e===""?Ne:Array.isArray(e)||e instanceof Date?be(e):typeof e=="object"?Ne:typeof e=="string"||typeof e=="number"||typeof e=="boolean"?be(e):Ne}const fs=new Set(["true","1","yes","y"]),ps=new Set(["false","0","no","n"]),ms=/^(\d{4}-\d{2}-\d{2})(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})?)?$/;async function hs(e,r,t){switch(r.as){case void 0:return be(e);case"string":return be(e instanceof Date?e.toISOString():String(e));case"number":{const o=e instanceof Date?e.getTime():Number(e);return Number.isFinite(o)?be(r.decimals===void 0?o:Hr(o,r.decimals)):Ne}case"boolean":{const o=String(e).trim().toLowerCase();return fs.has(o)?be(!0):ps.has(o)?be(!1):Ne}case"date":{const{default:o}=await import("dayjs"),{default:i}=await Promise.resolve().then(()=>require("./customParseFormat-CLvZwox5.cjs")).then(c=>c.customParseFormat);if(o.extend(i),t==="export"){const c=typeof e=="string"?ms.exec(e):null,u=e instanceof Date?o(e):c?o(c[1],"YYYY-MM-DD",!0):null;return u!=null&&u.isValid()?be(u.format(r.format??"YYYY-MM-DD")):Ne}const l=e instanceof Date?e.toISOString():String(e),a=r.format?o(l,r.format,!0):o(l);return a.isValid()?be(a.format("YYYY-MM-DD")):Ne}}}async function xs(e,r){if(r.formula!==void 0){const t={};for(const[o,i]of Object.entries(r.inputs??{})){const l=Nt(b.Resolve.data(e,i));if(!l.found||Array.isArray(l.value))return Ne;t[o]=l.value}try{return be(await Mr(t,r.formula))}catch(o){throw new Error(`writeTo "${r.to}": ${lt(o)}`)}}if(r.from===void 0)throw new Error(`writeTo "${r.to}" needs either "from" or "formula".`);return Nt(b.Resolve.data(e,r.from))}const Ve="@_",qr="#text",He=e=>e.split(".").filter(Boolean),Jr=e=>e.startsWith(Ve)||e===qr;function Xr(e,r){if(typeof e.to!="string"||He(e.to).length===0)return'"to" must be a non-empty path.';if(e.format!==void 0&&e.as!=="date")return'"format" needs "as": "date".';if(e.decimals!==void 0){if(r==="import")return'"decimals" only applies on export — on import it would put text in a number field.';if(e.as!=="number")return'"decimals" needs "as": "number".';const{decimals:t}=e;if(!Number.isInteger(t)||t<0||t>100)return'"decimals" must be a whole number from 0 to 100.'}if(r==="export"){const t=He(e.to);for(const[o,i]of t.entries()){if(i===Ve)return'"@_" needs an attribute name after it, e.g. "@_id".';if(Jr(i)&&o<t.length-1)return`"${i}" must be the last segment — it belongs to the element before it.`}}return null}function Mt(e,r,t){const o=t?` To give "${r}" both text and attributes, write its text to "${r}.${qr}".`:"";return new Error(`writeTo "${e}": "${r}" is written both as a value and as the parent of other values.${o}`)}function Kr(e){const r={},t=new Set([r]);for(const{to:o,value:i}of e){const l=He(o);if(l.length===0)continue;let a=r;for(const[d,f]of l.slice(0,-1).entries()){const h=a[f];if(h===void 0){const p={};t.add(p),a[f]=p,a=p}else if(t.has(h))a=h;else throw Mt(o,l.slice(0,d+1).join("."),l[d+1].startsWith(Ve))}const c=l[l.length-1],u=a[c];if(t.has(u)){const d=Object.keys(u).some(f=>f.startsWith(Ve));throw Mt(o,l.join("."),d)}a[c]=i}return r}const gs=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean";async function at(e,r,t){const o=[];for(const i of r){const l=Xr(i,t);if(l)throw new Error(`writeTo "${i.to}": ${l}`);const a=He(i.to),c=t==="export"&&Jr(a[a.length-1]),u=h=>{if(!(c&&h==null)){if(c&&!gs(h)){const p=h instanceof Date?' Add "as": "date" to write a date.':"";throw new Error(`writeTo "${i.to}": an attribute or #text value must be text, a number or a boolean.${p}`)}o.push({to:i.to,value:h})}};let d=await xs(e,i);const f=d.found&&Array.isArray(d.value);if(d.found&&f&&i.writeTo){const h=await Promise.all(d.value.map(async p=>Kr(await at(p,i.writeTo,t))));u(h);continue}if(d.found&&!f&&i.writeTo)throw new Error(`writeTo "${i.to}": "writeTo" is set, but "from" did not resolve to a repeating element.`);if(d.found&&!f&&i.map){const h=d.value instanceof Date?d.value.toISOString():String(d.value);Object.prototype.hasOwnProperty.call(i.map,h)&&(d=be(i.map[h]))}if(d.found&&!f&&(d=await hs(d.value,i,t)),!d.found){if(i.default===void 0)continue;u(i.default);continue}u(d.value)}return o}const ys=".xml,text/xml,application/xml",bs=5*1024*1024,vs=({data:e,handleChange:r,path:t,label:o,required:i,schema:l,enabled:a,readonly:c,errors:u,visible:d=!0})=>{Re(d,t,r);const f=Te(t,i,d),h=!u||u.length===0,p=Or(a,c),y=(l==null?void 0:l["x-xml"])??{},S=y.accept??ys,w=y.maxSize??bs,H=y.arrayPaths,R=y.removeNamespaces===!0,z=y.writeTo,k=y.writeBase??"root",E=y.persistDocument!==!1,T=Y.useJsonForms(),C=e??null,[X,U]=x.useState(()=>C?"ready":"empty"),[M,P]=x.useState(null),[I,oe]=x.useState(!1),q=x.useRef(null),te=x.useRef(0),J=C!=null,ce=z!==void 0&&z.length>0,se=x.useCallback(async L=>{var Z;const ee=++te.current;if(P(null),L.size>w){P(`File exceeds the ${Ee(w)} limit.`);return}if(!S.split(",").map(re=>re.trim()).some(re=>re==="*"||re==="*/*"?!0:re.endsWith("/*")?L.type.startsWith(re.slice(0,-1)):re.startsWith(".")?L.name.toLowerCase().endsWith(re.toLowerCase()):L.type===re)){P(`Invalid type. Accepted: ${Ce(S)}`);return}U("parsing");let g;try{const re=await L.text();g=await as(re,{arrayPaths:H,removeNamespaces:R})}catch(re){if(ee!==te.current)return;U("error"),P(re instanceof De?re.message:"This doesn't look like a valid XML document. Please check the file and try again.");return}let F=[];if(z&&z.length>0)try{F=await at(g,z,"import")}catch(re){if(ee!==te.current)return;U("error"),P(re instanceof Error?re.message:"This document could not be mapped onto the form.");return}if(ee!==te.current)return;E&&r(t,g);const W=k==="parent"?t.split(".").slice(0,-1).join("."):"";for(const re of F)(Z=T.dispatch)==null||Z.call(T,b.update(W?`${W}.${re.to}`:re.to,()=>re.value));U("ready")},[S,w,H,R,z,k,E,t,r,T]);if(d===!1||!p&&!J)return null;const G=L=>{L.preventDefault(),L.stopPropagation(),p&&oe(L.type==="dragenter"||L.type==="dragover")},ue=L=>{var ee;L.preventDefault(),L.stopPropagation(),oe(!1),p&&(ee=L.dataTransfer.files)!=null&&ee[0]&&se(L.dataTransfer.files[0])},D=L=>{var ee;(ee=L.target.files)!=null&&ee[0]&&(se(L.target.files[0]),L.target.value="")},K=()=>{p&&(++te.current,P(null),U("empty"),r(t,void 0))};return n.jsxs(s.Box,{mb:"4",children:[n.jsxs(s.Flex,{align:"center",justify:"between",mb:"2",children:[n.jsxs(s.Flex,{align:"center",gap:"1",children:[n.jsxs(s.Text,{as:"label",size:"2",weight:"bold",children:[o,f&&n.jsx(s.Text,{color:"red",children:" *"})]}),!ce&&J&&p&&n.jsxs(n.Fragment,{children:[n.jsx(s.Tooltip,{content:"Replace document",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",onClick:()=>{var L;return(L=q.current)==null?void 0:L.click()},"aria-label":"Replace document",children:n.jsx(ne.UploadIcon,{})})}),n.jsx(s.Tooltip,{content:"Remove document",children:n.jsx(s.IconButton,{variant:"ghost",size:"1",color:"gray",onClick:K,"aria-label":"Remove document",children:n.jsx(ne.Cross2Icon,{})})})]})]}),n.jsxs(s.Flex,{align:"center",gap:"2",children:[n.jsxs(s.Text,{size:"1",color:"gray",children:[Ee(w)," max · ",Ce(S)]}),ce&&p&&n.jsxs(s.Button,{size:"1",variant:"soft",onClick:()=>{var L;return(L=q.current)==null?void 0:L.click()},disabled:X==="parsing",children:[X==="parsing"?n.jsx(s.Spinner,{size:"1"}):n.jsx(ne.UploadIcon,{}),"Upload"]})]})]}),(ce||J)&&M&&n.jsx(s.Text,{size:"2",color:"red",mb:"2",style:{display:"block"},children:M}),n.jsx("input",{ref:q,type:"file",style:{display:"none"},accept:S,onChange:D}),!ce&&p&&!J&&n.jsx("div",{role:"button",tabIndex:0,onClick:()=>{var L;return(L=q.current)==null?void 0:L.click()},onKeyDown:L=>{var ee;(L.key==="Enter"||L.key===" ")&&(L.preventDefault(),(ee=q.current)==null||ee.click())},onDragEnter:G,onDragLeave:G,onDragOver:G,onDrop:ue,style:{cursor:"pointer"},className:["border-2 border-dashed rounded-lg p-6 text-center","transition-all duration-200 ease-in-out",I?"border-blue-500 bg-blue-50":M?"border-red-300 bg-red-50":"border-gray-300 hover:border-blue-400 hover:bg-gray-50"].join(" "),children:n.jsx(s.Flex,{direction:"column",align:"center",gap:"2",children:X==="parsing"?n.jsxs(n.Fragment,{children:[n.jsx(s.Spinner,{size:"3"}),n.jsx(s.Text,{size:"2",color:"gray",children:"Parsing document…"})]}):M?n.jsxs(n.Fragment,{children:[n.jsx(ne.ExclamationTriangleIcon,{style:{width:32,height:32,color:"var(--red-9)"}}),n.jsx(s.Text,{size:"2",color:"red",weight:"medium",children:M}),n.jsx(s.Text,{size:"1",color:"gray",children:"Click to try again"})]}):n.jsxs(n.Fragment,{children:[n.jsx(ne.UploadIcon,{style:{width:32,height:32,color:"var(--gray-8)"}}),n.jsx(s.Text,{size:"2",weight:"medium",children:"Click to upload or drag and drop"}),n.jsxs(s.Text,{size:"1",color:"gray",children:[Ee(w)," max · ",Ce(S)]})]})})}),!h&&n.jsx(s.Text,{color:"red",size:"1",mt:"2",style:{display:"block"},children:Se(u,o)})]})},Yr=Y.withJsonFormsControlProps(vs),Gr=b.rankWith(10,b.schemaMatches(e=>{const r=e["x-xml"];return e.type==="object"&&typeof r=="object"&&r!==null})),js="root",Lt="export.xml",ws={format:!0,indentBy:" ",ignoreAttributes:!1,attributeNamePrefix:"@_",textNodeName:"#text",suppressBooleanAttributes:!1,processEntities:!0};function Ts(e){if(e===null||typeof e!="object"||Array.isArray(e))return'declaration must be an object, e.g. { "standalone": "no" }, or {} for the defaults.';const{version:r,encoding:t,standalone:o,...i}=e,[l]=Object.keys(i);return l?`declaration has an unknown key "${l}" — only version, encoding and standalone.`:r!==void 0&&r!=="1.0"&&r!=="1.1"?'declaration.version must be "1.0" or "1.1".':t!==void 0&&t!=="UTF-8"?'declaration.encoding can only be "UTF-8" — the file is always written as UTF-8.':o!==void 0&&o!=="yes"&&o!=="no"?'declaration.standalone must be "yes" or "no".':null}function Zr(e){for(const r of e){if(r===null||typeof r!="object"||Array.isArray(r))return"every writeTo entry must be an object.";const{to:t,writeTo:o}=r,i=Xr(r,"export");if(i)return`writeTo "${t}": ${i}`;if(o!==void 0){if(!Array.isArray(o))return`writeTo "${t}": its nested writeTo must be an array.`;const l=Zr(o);if(l)return l}}return null}function Ss({writeTo:e,declaration:r}){return e===void 0?"writeTo is required — see docs/xml-export-control.md.":Array.isArray(e)?e.length===0?"writeTo is declared but empty — declare at least one entry.":Zr(e)??(r===void 0?null:Ts(r)):"writeTo must be an array of { from | formula, to } entries."}function Es({version:e="1.0",standalone:r}){return{"@_version":e,"@_encoding":"UTF-8",...r&&{"@_standalone":r}}}function Cs(e){return e==null?!0:Array.isArray(e)?e.length===0:typeof e=="object"?Object.keys(e).length===0:!1}const Rs=({path:e,label:r,schema:t,visible:o=!0})=>{var z,k;const i=(t==null?void 0:t["x-xml-export"])??{},l=i.rootElement??js,a=i.fileName??Lt,c=i.writeTo,u=i.writeBase??"root",d=i.declaration,f=Ss(i),h=Y.useJsonForms(),p=u==="parent"?e.split(".").slice(0,-1).join("."):"",y=p?b.Resolve.data((z=h.core)==null?void 0:z.data,p):(k=h.core)==null?void 0:k.data,[S,w]=x.useState(null),H=Cs(y),R=x.useCallback(async()=>{if(c){w(null);try{const E=Kr(await at(y,c,"export")),{XMLBuilder:T}=await import("fast-xml-parser"),C={...d&&{"?xml":Es(d)},[l]:E},X=new T(ws).build(C);uo(X,it(a,y,Lt),"application/xml")}catch(E){w(E instanceof Error?E.message:"This export could not be built.")}}},[c,y,d,l,a]);return o===!1?null:f?n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:r}),n.jsxs(s.Text,{size:"2",color:"red",style:{display:"block"},children:["Invalid x-xml-export config: ",f]})]}):n.jsxs(s.Box,{mb:"4",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",style:{display:"block",marginBottom:"var(--space-2)"},children:r}),n.jsxs(s.Button,{size:"1",variant:"soft",disabled:H,onClick:()=>void R(),children:[n.jsx(ne.DownloadIcon,{}),"Download XML"]}),S&&n.jsx(s.Text,{size:"2",color:"red",style:{display:"block",marginTop:"var(--space-2)"},children:S})]})},Qr=Y.withJsonFormsControlProps(Rs),en=b.rankWith(10,b.schemaMatches(e=>{const r=e["x-xml-export"];return e.type==="object"&&typeof r=="object"&&r!==null})),As="{value}",Fs=2,Is={},ks=({data:e,handleChange:r,path:t,label:o,schema:i,visible:l=!0})=>{var C;Re(l,t,r);const a=i==null?void 0:i["x-computed"],c=(a==null?void 0:a.inputs)??Is,u=(a==null?void 0:a.formula)??"",d=(a==null?void 0:a.format)??As,f=(a==null?void 0:a.decimals)??Fs,h=Y.useJsonForms(),p=t.split(".").slice(0,-1).join("."),y=cs((C=h.core)==null?void 0:C.data,p,c),S=y?JSON.stringify(y):null,w=h.readonly===!0,[H,R]=x.useState(()=>typeof e=="number"?"ok":"unavailable"),[z,k]=x.useState(()=>typeof e=="number"?e:null),[E,T]=x.useState(null);return x.useEffect(()=>{if(!l)return;let X=!1;const U=M=>{w||M!==e&&r(t,M)};if(y===void 0){R("unavailable"),T(null),k(null),U(void 0);return}return R(M=>M==="ok"?M:"loading"),us(y,u).then(M=>{if(X)return;const P=M.status==="ok"&&typeof M.value=="number"&&Number.isFinite(M.value)?M.value:null;if(P===null){R("error"),T(M.status==="error"?M.error??"Unable to compute value.":"Computed value must be a number."),k(null),U(void 0);return}R("ok"),T(null),k(P),U(P)}),()=>{X=!0}},[S,u,l,w]),l===!1?null:n.jsx(s.Box,{mb:"4",children:n.jsxs(s.Flex,{direction:"column",gap:"1",children:[n.jsx(s.Text,{as:"label",size:"2",weight:"bold",children:o}),H==="unavailable"?n.jsx(s.Text,{size:"2",color:"gray",children:"Not yet available."}):H==="loading"?n.jsxs(s.Flex,{align:"center",gap:"2",children:[n.jsx(s.Spinner,{size:"1"}),n.jsx(s.Text,{size:"2",color:"gray",children:"Computing…"})]}):H==="error"?n.jsx(s.Text,{size:"2",color:"red",children:E}):n.jsx(s.Text,{size:"2",children:qe(d,{value:Hr(z,f)})}),i.description&&n.jsx(s.Text,{size:"1",color:"gray",children:i.description})]})})},tn=Y.withJsonFormsControlProps(ks),rn=b.rankWith(5,b.schemaMatches(e=>{const r=e["x-computed"];return e.type==="number"&&typeof r=="object"&&r!==null})),nn="seq",zt=2,Os=e=>e==null||e==="",on=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0,Ds=e=>{const r=e==null?void 0:e["x-template"];if(typeof r!="object"||r===null)return;const{template:t,inputs:o}=r;if(!(typeof t!="string"||t===""))return{template:t,inputs:o}},ct=e=>typeof e=="object"&&e.name===nn&&e.arg!==void 0,Ns=e=>e.every((r,t)=>!ct(r)||typeof e[t-1]!="object"&&typeof e[t+1]!="object"),Ms=e=>{const r=new Set;for(const t of ot(e))typeof t=="object"&&t.arg===void 0&&r.add(t.name);return[...r]},Ls=e=>{const r=[];for(const[t,o]of Object.entries((e==null?void 0:e.properties)??{})){const i=Ds(o);i&&r.push([t,i])}return r},zs=(e,r,t)=>{var i;const o={};for(const l of Ms(t.template)){const a=Vr(e,r,((i=t.inputs)==null?void 0:i[l])??l);o[l]=typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):""}return o},Ps=e=>r=>{const t=r.trim()===""?zt:Number(r);return`${e}`.padStart(Number.isInteger(t)&&t>=0?t:zt,"0")},$s=e=>{const r=o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");let t="";for(const o of ot(e))typeof o=="string"?t+=r(o):t+=ct(o)?"(\\d+)":".*?";return new RegExp(`^${t}$`)},Bs=(e,r,t)=>{var l,a;const o=$s(t.template);let i=0;for(const c of e){const u=(l=on(c))==null?void 0:l[r];if(typeof u!="string")continue;const d=Number((a=o.exec(u))==null?void 0:a[1]);Number.isFinite(d)&&d>i&&(i=d)}return i},Us=(e,r,t,o,i,l)=>{const a=Ls(e);if(a.length===0)return r;const c=on(r);if(!c)return r;const u={...c};for(const[d,f]of a){if(!Os(u[d]))continue;const h=ot(f.template),p={};if(h.some(ct)){if(!Ns(h)){console.warn(`x-template: {seq(…)} needs literal text between it and other placeholders; not numbering "${f.template}"`);continue}const y=Math.max(l[d]??0,Bs(t,d,f))+1;l[d]=y,p[nn]=Ps(y)}u[d]=qe(f.template,zs(o,i,f),p)}return u},Pt=" · ",_s=/\{([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)\}/g;function sn(e,r){return r.split(".").reduce((t,o)=>{if(!(t===null||typeof t!="object"))return t[o]},e)}function Ws(e,r){return r.split(".").reduce((t,o)=>{var i;return(i=t==null?void 0:t.properties)==null?void 0:i[o]},e)}function Vs(e,r){var o;const t=(e==null?void 0:e.oneOf)??(e==null?void 0:e.anyOf);return Array.isArray(t)?(o=t.find(i=>i.const===r))==null?void 0:o.title:void 0}function ln(e,r,t){var i;if(e==null||e==="")return"";if(typeof e=="object"&&!Array.isArray(e)){const l=e;return typeof l.label=="string"?l.label:"value"in l?ln(l.value,(i=r==null?void 0:r.properties)==null?void 0:i.value,t):""}const o=Vs(r,e);return o||(typeof e=="number"?new Intl.NumberFormat(t).format(e):typeof e=="string"?e:"")}function $t(e,r,t,o){return e.split(Pt).map(i=>{let l=0,a=0;const c=i.replace(_s,(u,d)=>{l++;const f=ln(sn(r,d),Ws(t,d),o);return f&&a++,f});return l>0&&a===0?"":c.trim()}).filter(Boolean).join(Pt)}function Hs(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e)))return Number(e)}function qs(e,r,t){const o=new Intl.NumberFormat(t);return r.flatMap(i=>{const l=e.map(a=>Hs(sn(a,i.field))).filter(a=>a!==void 0);return l.length?[i.label.replace("{sum}",o.format(l.reduce((a,c)=>a+c,0)))]:[]})}const Js=({path:e,items:r,itemsSchema:t,rootSchema:o,addItem:i,sequences:l,label:a,buttonRef:c,onAdded:u})=>{const d=Y.useJsonForms(),f=()=>{var p;const h=Us(t,b.createDefaultValue(t,o),r,(p=d.core)==null?void 0:p.data,e.split(".").slice(0,-1).join("."),l.current);i&&i(e,h)(),u(r.length)};return n.jsx(s.Box,{mt:"2",children:n.jsxs(s.Button,{ref:c,type:"button",variant:"surface",onClick:f,children:[n.jsx(ne.PlusIcon,{}),a]})})};function Xs(e,r){var o;const t=(o=e.options)==null?void 0:o.detail;return t||(r.type==="object"||r.properties?{type:"VerticalLayout",elements:Object.keys(r.properties||{}).map(i=>({type:"Control",scope:`#/properties/${i}`}))}:{type:"Control",scope:"#"})}const Ks=({data:e,path:r,schema:t,uischema:o,enabled:i,visible:l,addItem:a,removeItems:c,rootSchema:u,arraySchema:d,required:f=!1,errors:h=""})=>{var m,v,V,A,N,ie,pe;const p=x.useRef({}),y=Te(r,f,l),S=Y.useJsonForms(),w=(m=S.i18n)==null?void 0:m.translate,H=(v=S.i18n)==null?void 0:v.locale,R=(O,$)=>kn(w,O,$),[z,k]=x.useState(null),[E,T]=x.useState(null),[C,X]=x.useState(""),U=x.useRef(null),M=x.useRef([]),P=x.useRef(null),I=Array.isArray(e)?e.length:0;x.useEffect(()=>{if(U.current===null)return;const O=M.current[Math.min(U.current,I-1)]??P.current;U.current=null,O==null||O.focus()},[I]);const oe=d?t:t.items,q=d||t;if(l===!1||!oe||typeof oe!="object"||Array.isArray(oe))return null;const te=oe,J=Array.isArray(e)?e:[],ce=q.title||"Array Items",se=o.options??{},G=se.display==="cards",ue=i&&se.addable!==!1,D=i&&se.removable!==!1,K=se.itemLabel||"Item",L=y||typeof q.minItems=="number"&&q.minItems>=1,ee=!h,Q=ee?"":J.length===0&&se.errorMessage||Se(h,ce),B=O=>se.summary?$t(se.summary,O,te,H):"",g=O=>`${K} ${O+1}`,F=O=>{const $=B(J[O]);return $?`${g(O)} (${$})`:g(O)},W=O=>[R(O.length===1?"countOne":"countOther",{count:O.length}),...qs(O,se.totals??[],H)].join(" · "),Z=J.length>0&&(G||(((V=se.totals)==null?void 0:V.length)??0)>0),re=((A=S.core)==null?void 0:A.validationMode)!=="ValidateAndHide"&&((N=S.core)==null?void 0:N.validationMode)!=="NoValidation",me=new Set;if(G&&re){const O=`${r}.`;for(const $ of[...((ie=S.core)==null?void 0:ie.errors)??[],...((pe=S.core)==null?void 0:pe.additionalErrors)??[]]){const de=b.getControlPath($);de.startsWith(O)&&me.add(Number(de.slice(O.length).split(".")[0]))}}const ve=O=>{if(!c)return;const $=c(r,[O]);$&&$()},Ae=()=>{if(z===null)return;const O=z,$=F(O),de=J.filter((je,we)=>we!==O);ve(O),X(de.length&&Z?R("removedTotals",{item:$,totals:W(de)}):R("removed",{item:$})),U.current=O,k(null)},Ie=O=>{X(""),G&&T({index:O,isNew:!0})},ye=(O,$)=>n.jsx(Y.JsonFormsDispatch,{schema:te,uischema:Xs(o,te),path:`${r}.${O}`,enabled:$,renderers:void 0,cells:void 0});return n.jsxs(s.Box,{mb:"6",id:r,tabIndex:-1,style:{outline:"none"},children:[n.jsxs(s.Flex,{direction:"column",gap:"4",children:[n.jsxs(s.Text,{as:"div",size:"4",weight:"bold",children:[ce," ",L&&n.jsx(s.Text,{color:"red",children:"*"})]}),Z&&n.jsx(s.Text,{as:"p",size:"2",weight:"medium",children:W(J)}),n.jsx(s.Text,{as:"p",size:"2",role:"status",style:C?void 0:{display:"none"},children:C}),J.length===0&&n.jsx(s.Box,{py:"4",px:"4",style:{backgroundColor:"var(--gray-3)",borderRadius:"var(--radius-3)"},children:n.jsx(s.Text,{size:"2",color:"gray",children:R("empty")})}),!ee&&n.jsx(s.Text,{color:"red",size:"1",children:Q}),J.map((O,$)=>{const de=`${r}.${$}`;if(G){const je=B(O),we=se.summaryDetail?$t(se.summaryDetail,O,te,H):"",Me=me.has($);return n.jsx(s.Card,{size:"1",variant:"surface",style:Me?{boxShadow:"inset 0 0 0 1px var(--red-8)"}:void 0,children:n.jsxs(s.Flex,{align:"center",gap:"3",children:[n.jsxs("button",{ref:Ue=>{M.current[$]=Ue},type:"button",onClick:()=>T({index:$,isNew:!1}),"aria-label":R("openItem",{item:F($)}),className:"enabled:hover:bg-[var(--gray-a2)]",style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:12,padding:8,border:0,borderRadius:"var(--radius-3)",background:"transparent",cursor:"pointer",textAlign:"left"},children:[n.jsx(s.Box,{"aria-hidden":!0,style:{background:"var(--accent-3)",color:"var(--accent-11)",padding:8,borderRadius:"var(--radius-2)",flexShrink:0,display:"flex"},children:n.jsx(ne.FileTextIcon,{width:"18",height:"18"})}),n.jsxs(s.Box,{style:{flex:1,minWidth:0},children:[n.jsx(s.Text,{as:"p",size:"2",weight:"bold",children:je||g($)}),we&&n.jsx(s.Text,{as:"p",size:"1",color:"gray",children:we}),Me&&n.jsx(s.Text,{as:"p",size:"1",color:"red",children:R("needsAttention")})]}),n.jsx(ne.ChevronRightIcon,{"aria-hidden":!0})]}),D&&n.jsxs(n.Fragment,{children:[n.jsx(s.Separator,{orientation:"vertical",size:"2"}),n.jsx(s.IconButton,{type:"button",variant:"ghost",color:"gray",onClick:()=>k($),"aria-label":R("removeItem",{item:F($)}),children:n.jsx(ne.Cross2Icon,{})})]})]})},de)}return n.jsx(s.Card,{size:"3",variant:"surface",ref:je=>{M.current[$]=je},tabIndex:-1,style:{outline:"none"},children:n.jsxs(s.Flex,{direction:"column",gap:"4",children:[n.jsxs(s.Flex,{justify:"between",align:"center",children:[n.jsx(s.Text,{size:"3",weight:"bold",children:g($)}),D&&n.jsxs(s.Button,{type:"button",color:"red",variant:"soft",onClick:()=>k($),"aria-label":R("removeItem",{item:F($)}),children:[n.jsx(ne.TrashIcon,{}),R("remove")]})]}),n.jsx(s.Box,{children:ye($,i)})]})},de)}),ue&&n.jsx(Js,{path:r,items:J,itemsSchema:te,rootSchema:u,addItem:a,sequences:p,label:R("addItem"),buttonRef:P,onAdded:Ie})]}),G&&E&&E.index<J.length&&n.jsx(s.Dialog.Root,{open:!0,onOpenChange:O=>!O&&T(null),children:n.jsxs(s.Dialog.Content,{maxWidth:"640px",children:[n.jsx(s.Dialog.Title,{children:g(E.index)}),n.jsx(s.Dialog.Description,{size:"2",color:"gray",mb:"4",children:B(J[E.index])}),ye(E.index,i),n.jsxs(s.Flex,{gap:"3",mt:"4",justify:"between",children:[!E.isNew&&D?n.jsxs(s.Button,{type:"button",color:"red",variant:"soft",onClick:()=>{const O=E.index;T(null),k(O)},children:[n.jsx(ne.TrashIcon,{}),R("remove")]}):n.jsx("span",{}),n.jsxs(s.Flex,{gap:"3",children:[E.isNew&&n.jsx(s.Button,{type:"button",variant:"soft",color:"gray",onClick:()=>{var O;ve(E.index),T(null),(O=P.current)==null||O.focus()},children:R("cancel")}),n.jsx(s.Dialog.Close,{children:n.jsx(s.Button,{type:"button",children:E.isNew?R("add"):R(i?"done":"close")})})]})]})]})}),n.jsx(Fr,{open:z!==null,onOpenChange:O=>!O&&k(null),title:z===null?"":R("confirmTitle",{item:F(z)}),description:R("confirmDescription"),keepLabel:R("keepItem"),removeLabel:R("removeConfirmed"),onConfirm:Ae})]})},tt=Y.withJsonFormsArrayControlProps(Ks),an=b.rankWith(3,b.isObjectArrayControl),cn=({uischema:e,visible:r})=>{const t=e;return r===!1?null:n.jsx(s.Box,{mb:"4",children:n.jsx(s.Heading,{size:"4",children:t.text})})},un=b.rankWith(1,b.uiTypeIs("Label")),Ys=b.rankWith(3,b.isPrimitiveArrayControl),Gs=[{tester:Qt,renderer:Bn},{tester:tr,renderer:_n},{tester:nr,renderer:Wn},{tester:sr,renderer:Vn},{tester:ur,renderer:dr},{tester:lr,renderer:bt},{tester:ar,renderer:bt},{tester:pr,renderer:to},{tester:yr,renderer:Y.withJsonFormsLayoutProps(gr)},{tester:vr,renderer:Y.withJsonFormsLayoutProps(br)},{tester:wr,renderer:Y.withJsonFormsLayoutProps(jr)},{tester:Sr,renderer:Y.withJsonFormsLayoutProps(Tr)},{tester:kr,renderer:Ir},{tester:Ur,renderer:Br},{tester:Wr,renderer:_r},{tester:Gr,renderer:Yr},{tester:en,renderer:Qr},{tester:rn,renderer:tn},{tester:an,renderer:tt},{tester:Ys,renderer:tt},{tester:un,renderer:cn}];exports.ArrayControl=tt;exports.ArrayControlTester=an;exports.BooleanControl=rr;exports.BooleanControlTester=nr;exports.CategorizationLayoutRenderer=Tr;exports.CategorizationLayoutTester=Sr;exports.ComputedControl=tn;exports.ComputedControlTester=rn;exports.DateControl=fr;exports.DateControlTester=pr;exports.FileControl=Ir;exports.FileControlTester=kr;exports.FormStepsProvider=Sn;exports.GroupLayoutRenderer=jr;exports.GroupLayoutTester=wr;exports.HorizontalLayoutRenderer=br;exports.HorizontalLayoutTester=vr;exports.LIST_MESSAGES=Kt;exports.LabelRenderer=cn;exports.LabelTester=un;exports.NumberControl=er;exports.NumberControlTester=tr;exports.RadioControl=or;exports.RadioControlTester=sr;exports.STEPPER_MESSAGES=Gt;exports.SearchSelectControl=dr;exports.SearchSelectControlTester=ur;exports.SearchServiceProvider=Tn;exports.SelectControl=ir;exports.SelectControlTester=lr;exports.SelectObjectControlTester=ar;exports.SpreadsheetControl=Br;exports.SpreadsheetControlTester=Ur;exports.SpreadsheetExportControl=_r;exports.SpreadsheetExportControlTester=Wr;exports.TextControl=Zt;exports.TextControlTester=Qt;exports.UPLOAD_MESSAGES=Yt;exports.UploadProvider=wn;exports.VerticalLayoutRenderer=gr;exports.VerticalLayoutTester=yr;exports.XmlControl=Yr;exports.XmlControlTester=Gr;exports.XmlExportControl=Qr;exports.XmlExportControlTester=en;exports.isStepperUiSchema=Jt;exports.radixRenderers=Gs;exports.searchSelectTargetSchema=st;exports.useSearchService=Vt;exports.useUpload=_t;