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