@object-ui/plugin-gantt 4.0.3 → 4.0.4

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,44 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`),require(`@object-ui/core`),require(`@object-ui/react`),require(`@object-ui/components`),require(`lucide-react`)):typeof define==`function`&&define.amd?define([`exports`,`react`,`@object-ui/core`,`@object-ui/react`,`@object-ui/components`,`lucide-react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ObjectUIPluginGantt={},e.React,e.ObjectUICore,e.ObjectUIReact,e.ObjectUIComponents,e.LucideReact))})(this,function(e,t,n,r,i,a){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var o=Object.create,s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,u=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,f=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),p=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=l(t),a=0,o=i.length,u;a<o;a++)u=i[a],!d.call(e,u)&&u!==n&&s(e,u,{get:(e=>t[e]).bind(null,u),enumerable:!(r=c(t,u))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:o(u(e)),p(t||!e||!e.__esModule?s(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1),Object.freeze({status:`aborted`});function m(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var h=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},ee=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},g={};function _(e){return e&&Object.assign(g,e),g}function v(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function te(e,t){return typeof t==`bigint`?t.toString():t}function ne(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function re(e){return e==null}function y(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function ie(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var ae=Symbol(`evaluating`);function b(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==ae)return r===void 0&&(r=ae,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function x(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function S(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function oe(e){return JSON.stringify(e)}function C(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var se=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function w(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ce=ne(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function T(e){if(w(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(w(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function le(e){return T(e)?{...e}:Array.isArray(e)?[...e]:e}var ue=new Set([`string`,`number`,`symbol`]);function E(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function D(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function O(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function de(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var fe={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function pe(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return D(e,S(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return x(this,`shape`,e),e},checks:[]}))}function me(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return D(e,S(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return x(this,`shape`,r),r},checks:[]}))}function he(e,t){if(!T(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return D(e,S(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return x(this,`shape`,n),n}}))}function ge(e,t){if(!T(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return D(e,S(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return x(this,`shape`,n),n}}))}function _e(e,t){return D(e,S(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return x(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function ve(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return D(t,S(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return x(this,`shape`,i),i},checks:[]}))}function ye(e,t,n){return D(t,S(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return x(this,`shape`,i),i}}))}function be(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function xe(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Se(e){return typeof e==`string`?e:e?.message}function Ce(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=Se(e.inst?._zod.def?.error?.(e))??Se(t?.error?.(e))??Se(n.customError?.(e))??Se(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function we(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Te(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var Ee=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,te,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},De=m(`$ZodError`,Ee),Oe=m(`$ZodError`,Ee,{Parent:Error});function ke(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Ae(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}var je=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new h;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Ce(e,a,_())));throw se(t,i?.callee),t}return o.value},Me=je(Oe),Ne=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Ce(e,a,_())));throw se(t,i?.callee),t}return o.value},Pe=Ne(Oe),Fe=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new h;return a.issues.length?{success:!1,error:new(e??De)(a.issues.map(e=>Ce(e,i,_())))}:{success:!0,data:a.value}},Ie=Fe(Oe),Le=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Ce(e,i,_())))}:{success:!0,data:a.value}},Re=Le(Oe),ze=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return je(e)(t,n,i)},Be=e=>(t,n,r)=>je(e)(t,n,r),Ve=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Ne(e)(t,n,i)},He=e=>async(t,n,r)=>Ne(e)(t,n,r),Ue=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Fe(e)(t,n,i)},We=e=>(t,n,r)=>Fe(e)(t,n,r),Ge=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Le(e)(t,n,i)},Ke=e=>async(t,n,r)=>Le(e)(t,n,r),qe=/^[cC][^\s-]{8,}$/,Je=/^[0-9a-z]+$/,Ye=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Xe=/^[0-9a-vA-V]{20}$/,Ze=/^[A-Za-z0-9]{27}$/,Qe=/^[a-zA-Z0-9_-]{21}$/,$e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,et=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,tt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,nt=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function it(){return new RegExp(rt,`u`)}var at=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ot=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,st=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,ct=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,lt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ut=/^[A-Za-z0-9_-]*$/,dt=/^\+[1-9]\d{6,14}$/,ft=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,pt=RegExp(`^${ft}$`);function mt(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ht(e){return RegExp(`^${mt(e)}$`)}function gt(e){let t=mt({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${ft}T(?:${r})$`)}var _t=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},vt=/^-?\d+$/,yt=/^-?\d+(?:\.\d+)?$/,bt=/^(?:true|false)$/i,xt=/^null$/i,St=/^[^A-Z]*$/,Ct=/^[^a-z]*$/,k=m(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),wt={number:`number`,bigint:`bigint`,object:`date`},Tt=m(`$ZodCheckLessThan`,(e,t)=>{k.init(e,t);let n=wt[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Et=m(`$ZodCheckGreaterThan`,(e,t)=>{k.init(e,t);let n=wt[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Dt=m(`$ZodCheckMultipleOf`,(e,t)=>{k.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):ie(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ot=m(`$ZodCheckNumberFormat`,(e,t)=>{k.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=fe[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=vt)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),kt=m(`$ZodCheckMaxLength`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!re(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=we(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),At=m(`$ZodCheckMinLength`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!re(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=we(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),jt=m(`$ZodCheckLengthEquals`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!re(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=we(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Mt=m(`$ZodCheckStringFormat`,(e,t)=>{var n,r;k.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Nt=m(`$ZodCheckRegex`,(e,t)=>{Mt.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Pt=m(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=St,Mt.init(e,t)}),Ft=m(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Ct,Mt.init(e,t)}),It=m(`$ZodCheckIncludes`,(e,t)=>{k.init(e,t);let n=E(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Lt=m(`$ZodCheckStartsWith`,(e,t)=>{k.init(e,t);let n=RegExp(`^${E(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Rt=m(`$ZodCheckEndsWith`,(e,t)=>{k.init(e,t);let n=RegExp(`.*${E(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),zt=m(`$ZodCheckOverwrite`,(e,t)=>{k.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),Bt=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
2
- `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
3
- `))}},Vt={major:4,minor:3,patch:6},A=m(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Vt;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=be(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new h;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=be(e,t))});else{if(e.issues.length===t)continue;r||=be(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(be(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new h;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new h;return o.then(e=>t(e,r,a))}return t(o,r,a)}}b(e,`~standard`,()=>({validate:t=>{try{let n=Ie(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Re(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Ht=m(`$ZodString`,(e,t)=>{A.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??_t(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),j=m(`$ZodStringFormat`,(e,t)=>{Mt.init(e,t),Ht.init(e,t)}),Ut=m(`$ZodGUID`,(e,t)=>{t.pattern??=et,j.init(e,t)}),Wt=m(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=tt(e)}else t.pattern??=tt();j.init(e,t)}),Gt=m(`$ZodEmail`,(e,t)=>{t.pattern??=nt,j.init(e,t)}),Kt=m(`$ZodURL`,(e,t)=>{j.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),qt=m(`$ZodEmoji`,(e,t)=>{t.pattern??=it(),j.init(e,t)}),Jt=m(`$ZodNanoID`,(e,t)=>{t.pattern??=Qe,j.init(e,t)}),Yt=m(`$ZodCUID`,(e,t)=>{t.pattern??=qe,j.init(e,t)}),Xt=m(`$ZodCUID2`,(e,t)=>{t.pattern??=Je,j.init(e,t)}),Zt=m(`$ZodULID`,(e,t)=>{t.pattern??=Ye,j.init(e,t)}),Qt=m(`$ZodXID`,(e,t)=>{t.pattern??=Xe,j.init(e,t)}),$t=m(`$ZodKSUID`,(e,t)=>{t.pattern??=Ze,j.init(e,t)}),en=m(`$ZodISODateTime`,(e,t)=>{t.pattern??=gt(t),j.init(e,t)}),tn=m(`$ZodISODate`,(e,t)=>{t.pattern??=pt,j.init(e,t)}),nn=m(`$ZodISOTime`,(e,t)=>{t.pattern??=ht(t),j.init(e,t)}),rn=m(`$ZodISODuration`,(e,t)=>{t.pattern??=$e,j.init(e,t)}),an=m(`$ZodIPv4`,(e,t)=>{t.pattern??=at,j.init(e,t),e._zod.bag.format=`ipv4`}),on=m(`$ZodIPv6`,(e,t)=>{t.pattern??=ot,j.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),sn=m(`$ZodCIDRv4`,(e,t)=>{t.pattern??=st,j.init(e,t)}),cn=m(`$ZodCIDRv6`,(e,t)=>{t.pattern??=ct,j.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function ln(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var un=m(`$ZodBase64`,(e,t)=>{t.pattern??=lt,j.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{ln(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function dn(e){if(!ut.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return ln(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var fn=m(`$ZodBase64URL`,(e,t)=>{t.pattern??=ut,j.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{dn(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),pn=m(`$ZodE164`,(e,t)=>{t.pattern??=dt,j.init(e,t)});function mn(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var hn=m(`$ZodJWT`,(e,t)=>{j.init(e,t),e._zod.check=n=>{mn(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),gn=m(`$ZodNumber`,(e,t)=>{A.init(e,t),e._zod.pattern=e._zod.bag.pattern??yt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),_n=m(`$ZodNumberFormat`,(e,t)=>{Ot.init(e,t),gn.init(e,t)}),vn=m(`$ZodBoolean`,(e,t)=>{A.init(e,t),e._zod.pattern=bt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),yn=m(`$ZodNull`,(e,t)=>{A.init(e,t),e._zod.pattern=xt,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),bn=m(`$ZodAny`,(e,t)=>{A.init(e,t),e._zod.parse=e=>e}),xn=m(`$ZodUnknown`,(e,t)=>{A.init(e,t),e._zod.parse=e=>e}),Sn=m(`$ZodNever`,(e,t)=>{A.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)}),Cn=m(`$ZodVoid`,(e,t)=>{A.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`void`,code:`invalid_type`,input:r,inst:e}),t}}),wn=m(`$ZodDate`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||n.issues.push({expected:`date`,code:`invalid_type`,input:i,...a?{received:`Invalid Date`}:{},inst:e}),n}});function Tn(e,t,n){e.issues.length&&t.issues.push(...xe(n,e.issues)),t.value[n]=e.value}var En=m(`$ZodArray`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>Tn(t,n,e))):Tn(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function Dn(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...xe(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function On(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=de(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function kn(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>Dn(e,n,i,t,u))):Dn(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var An=m(`$ZodObject`,(e,t)=>{if(A.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=ne(()=>On(t));b(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=w,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>Dn(n,t,e,s,r))):Dn(i,t,e,s,r)}return i?kn(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),jn=m(`$ZodObjectJIT`,(e,t)=>{An.init(e,t);let n=e._zod.parse,r=ne(()=>On(t)),i=e=>{let t=new Bt([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=oe(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=oe(r),s=e[r]?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),s?t.write(`
4
- if (${n}.issues.length) {
5
- if (${o} in input) {
6
- payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
7
- ...iss,
8
- path: iss.path ? [${o}, ...iss.path] : [${o}]
9
- })));
10
- }
11
- }
12
-
13
- if (${n}.value === undefined) {
14
- if (${o} in input) {
15
- newResult[${o}] = undefined;
16
- }
17
- } else {
18
- newResult[${o}] = ${n}.value;
19
- }
20
-
21
- `):t.write(`
22
- if (${n}.issues.length) {
23
- payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
24
- ...iss,
25
- path: iss.path ? [${o}, ...iss.path] : [${o}]
26
- })));
27
- }
28
-
29
- if (${n}.value === undefined) {
30
- if (${o} in input) {
31
- newResult[${o}] = undefined;
32
- }
33
- } else {
34
- newResult[${o}] = ${n}.value;
35
- }
36
-
37
- `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=w,s=!g.jitless,c=s&&ce.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?kn([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Mn(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!be(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Ce(e,r,_())))}),t)}var Nn=m(`$ZodUnion`,(e,t)=>{A.init(e,t),b(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),b(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),b(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),b(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>y(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>Mn(t,i,e,a)):Mn(s,i,e,a)}}),Pn=m(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,Nn.init(e,t);let n=e._zod.parse;b(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=ne(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!w(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),Fn=m(`$ZodIntersection`,(e,t)=>{A.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Ln(e,t,n)):Ln(e,i,a)}});function In(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(T(e)&&T(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=In(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=In(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ln(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),be(e))return e;let o=In(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var Rn=m(`$ZodTuple`,(e,t)=>{A.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=[...n].reverse().findIndex(e=>e._zod.optin!==`optional`),c=s===-1?0:n.length-s;if(!t.rest){let t=a.length>n.length,i=a.length<c-1;if(t||i)return r.issues.push({...t?{code:`too_big`,maximum:n.length,inclusive:!0}:{code:`too_small`,minimum:n.length},input:a,inst:e,origin:`array`}),r}let l=-1;for(let e of n){if(l++,l>=a.length&&l>=c)continue;let t=e._zod.run({value:a[l],issues:[]},i);t instanceof Promise?o.push(t.then(e=>zn(e,r,l))):zn(t,r,l)}if(t.rest){let e=a.slice(n.length);for(let n of e){l++;let e=t.rest._zod.run({value:n,issues:[]},i);e instanceof Promise?o.push(e.then(e=>zn(e,r,l))):zn(e,r,l)}}return o.length?Promise.all(o).then(()=>r):r}});function zn(e,t,n){e.issues.length&&t.issues.push(...xe(n,e.issues)),t.value[n]=e.value}var Bn=m(`$ZodRecord`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!T(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...xe(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...xe(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&yt.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Ce(e,r,_())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...xe(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...xe(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),Vn=m(`$ZodEnum`,(e,t)=>{A.init(e,t);let n=v(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>ue.has(typeof e)).map(e=>typeof e==`string`?E(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Hn=m(`$ZodLiteral`,(e,t)=>{if(A.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?E(e):e?E(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Un=m(`$ZodTransform`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ee(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new h;return n.value=i,n}});function Wn(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var Gn=m(`$ZodOptional`,(e,t)=>{A.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,b(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),b(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${y(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>Wn(t,e.value)):Wn(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Kn=m(`$ZodExactOptional`,(e,t)=>{Gn.init(e,t),b(e._zod,`values`,()=>t.innerType._zod.values),b(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),qn=m(`$ZodNullable`,(e,t)=>{A.init(e,t),b(e._zod,`optin`,()=>t.innerType._zod.optin),b(e._zod,`optout`,()=>t.innerType._zod.optout),b(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${y(e.source)}|null)$`):void 0}),b(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Jn=m(`$ZodDefault`,(e,t)=>{A.init(e,t),e._zod.optin=`optional`,b(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Yn(e,t)):Yn(r,t)}});function Yn(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Xn=m(`$ZodPrefault`,(e,t)=>{A.init(e,t),e._zod.optin=`optional`,b(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Zn=m(`$ZodNonOptional`,(e,t)=>{A.init(e,t),b(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Qn(t,e)):Qn(i,e)}});function Qn(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var $n=m(`$ZodCatch`,(e,t)=>{A.init(e,t),b(e._zod,`optin`,()=>t.innerType._zod.optin),b(e._zod,`optout`,()=>t.innerType._zod.optout),b(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Ce(e,n,_()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Ce(e,n,_()))},input:e.value}),e.issues=[]),e)}}),er=m(`$ZodPipe`,(e,t)=>{A.init(e,t),b(e._zod,`values`,()=>t.in._zod.values),b(e._zod,`optin`,()=>t.in._zod.optin),b(e._zod,`optout`,()=>t.out._zod.optout),b(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>tr(e,t.in,n)):tr(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>tr(e,t.out,n)):tr(r,t.out,n)}});function tr(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var nr=m(`$ZodReadonly`,(e,t)=>{A.init(e,t),b(e._zod,`propValues`,()=>t.innerType._zod.propValues),b(e._zod,`values`,()=>t.innerType._zod.values),b(e._zod,`optin`,()=>t.innerType?._zod?.optin),b(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(rr):rr(r)}});function rr(e){return e.value=Object.freeze(e.value),e}var ir=m(`$ZodFunction`,(e,t)=>(A.init(e,t),e._def=t,e._zod.def=t,e.implement=t=>{if(typeof t!=`function`)throw Error(`implement() must be called with a function`);return function(...n){let r=e._def.input?Me(e._def.input,n):n,i=Reflect.apply(t,this,r);return e._def.output?Me(e._def.output,i):i}},e.implementAsync=t=>{if(typeof t!=`function`)throw Error(`implementAsync() must be called with a function`);return async function(...n){let r=e._def.input?await Pe(e._def.input,n):n,i=await Reflect.apply(t,this,r);return e._def.output?await Pe(e._def.output,i):i}},e._zod.parse=(t,n)=>typeof t.value==`function`?(e._def.output&&e._def.output._zod.def.type===`promise`?t.value=e.implementAsync(t.value):t.value=e.implement(t.value),t):(t.issues.push({code:`invalid_type`,expected:`function`,input:t.value,inst:e}),t),e.input=(...t)=>{let n=e.constructor;return Array.isArray(t[0])?new n({type:`function`,input:new Rn({type:`tuple`,items:t[0],rest:t[1]}),output:e._def.output}):new n({type:`function`,input:t[0],output:e._def.output})},e.output=t=>{let n=e.constructor;return new n({type:`function`,input:e._def.input,output:t})},e)),ar=m(`$ZodLazy`,(e,t)=>{A.init(e,t),b(e._zod,`innerType`,()=>t.getter()),b(e._zod,`pattern`,()=>e._zod.innerType?._zod?.pattern),b(e._zod,`propValues`,()=>e._zod.innerType?._zod?.propValues),b(e._zod,`optin`,()=>e._zod.innerType?._zod?.optin??void 0),b(e._zod,`optout`,()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),or=m(`$ZodCustom`,(e,t)=>{k.init(e,t),A.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>sr(t,n,r,e));sr(i,n,r,e)}});function sr(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Te(e))}}var cr,lr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function ur(){return new lr}(cr=globalThis).__zod_globalRegistry??(cr.__zod_globalRegistry=ur());var dr=globalThis.__zod_globalRegistry;function fr(e,t){return new e({type:`string`,...O(t)})}function pr(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...O(t)})}function mr(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...O(t)})}function hr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...O(t)})}function gr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...O(t)})}function _r(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...O(t)})}function vr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...O(t)})}function yr(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...O(t)})}function br(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...O(t)})}function xr(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...O(t)})}function Sr(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...O(t)})}function Cr(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...O(t)})}function wr(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...O(t)})}function Tr(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...O(t)})}function Er(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...O(t)})}function Dr(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...O(t)})}function Or(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...O(t)})}function kr(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...O(t)})}function Ar(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...O(t)})}function jr(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...O(t)})}function Mr(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...O(t)})}function Nr(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...O(t)})}function Pr(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...O(t)})}function Fr(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...O(t)})}function Ir(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...O(t)})}function Lr(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...O(t)})}function Rr(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...O(t)})}function zr(e,t){return new e({type:`number`,checks:[],...O(t)})}function Br(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...O(t)})}function Vr(e,t){return new e({type:`boolean`,...O(t)})}function Hr(e,t){return new e({type:`null`,...O(t)})}function Ur(e){return new e({type:`any`})}function Wr(e){return new e({type:`unknown`})}function Gr(e,t){return new e({type:`never`,...O(t)})}function Kr(e,t){return new e({type:`void`,...O(t)})}function qr(e,t){return new e({type:`date`,...O(t)})}function Jr(e,t){return new Tt({check:`less_than`,...O(t),value:e,inclusive:!1})}function Yr(e,t){return new Tt({check:`less_than`,...O(t),value:e,inclusive:!0})}function Xr(e,t){return new Et({check:`greater_than`,...O(t),value:e,inclusive:!1})}function Zr(e,t){return new Et({check:`greater_than`,...O(t),value:e,inclusive:!0})}function Qr(e,t){return new Dt({check:`multiple_of`,...O(t),value:e})}function $r(e,t){return new kt({check:`max_length`,...O(t),maximum:e})}function ei(e,t){return new At({check:`min_length`,...O(t),minimum:e})}function ti(e,t){return new jt({check:`length_equals`,...O(t),length:e})}function ni(e,t){return new Nt({check:`string_format`,format:`regex`,...O(t),pattern:e})}function ri(e){return new Pt({check:`string_format`,format:`lowercase`,...O(e)})}function ii(e){return new Ft({check:`string_format`,format:`uppercase`,...O(e)})}function ai(e,t){return new It({check:`string_format`,format:`includes`,...O(t),includes:e})}function oi(e,t){return new Lt({check:`string_format`,format:`starts_with`,...O(t),prefix:e})}function si(e,t){return new Rt({check:`string_format`,format:`ends_with`,...O(t),suffix:e})}function ci(e){return new zt({check:`overwrite`,tx:e})}function li(e){return ci(t=>t.normalize(e))}function ui(){return ci(e=>e.trim())}function di(){return ci(e=>e.toLowerCase())}function fi(){return ci(e=>e.toUpperCase())}function pi(){return ci(e=>C(e))}function mi(e,t,n){return new e({type:`array`,element:t,...O(n)})}function hi(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...O(n)})}function gi(e){let t=_i(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(Te(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(Te(r))}},e(n.value,n)));return t}function _i(e,t){let n=new k({check:`custom`,...O(t)});return n._zod.check=e,n}function vi(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??dr,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function M(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,M(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&N(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&o.schema._prefault&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function yi(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
38
-
39
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function bi(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e===`$ref`||e===`allOf`||e in a||delete i[e];if(s.$ref&&n.def)for(let e in i)e===`$ref`||e===`allOf`||e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e===`$ref`||e===`allOf`||e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&(e.target===`draft-2020-12`?i.$defs=a:i.definitions=a);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,`~standard`,{value:{...t[`~standard`],jsonSchema:{input:Si(t,`input`,e.processors),output:Si(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function N(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return N(r.element,n);if(r.type===`set`)return N(r.valueType,n);if(r.type===`lazy`)return N(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type===`default`||r.type===`prefault`)return N(r.innerType,n);if(r.type===`intersection`)return N(r.left,n)||N(r.right,n);if(r.type===`record`||r.type===`map`)return N(r.keyType,n)||N(r.valueType,n);if(r.type===`pipe`)return N(r.in,n)||N(r.out,n);if(r.type===`object`){for(let e in r.shape)if(N(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(N(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(N(e,n))return!0;return!!(r.rest&&N(r.rest,n))}return!1}var xi=(e,t={})=>n=>{let r=vi({...n,processors:t});return M(e,r),yi(r,e),bi(r,e)},Si=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=vi({...i??{},target:a,io:t,processors:n});return M(e,o),yi(o,e),bi(o,e)},Ci={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},wi=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Ci[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Ti=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof s==`string`&&s.includes(`int`)?i.type=`integer`:i.type=`number`,typeof u==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof a==`number`&&(i.minimum=a,typeof u==`number`&&t.target!==`draft-04`&&(u>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof l==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l),typeof o==`number`&&(i.maximum=o,typeof l==`number`&&t.target!==`draft-04`&&(l<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c==`number`&&(i.multipleOf=c)},Ei=(e,t,n,r)=>{n.type=`boolean`},Di=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Oi=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`)},ki=(e,t,n,r)=>{n.not={}},Ai=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`)},ji=(e,t,n,r)=>{let i=e._zod.def,a=v(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Mi=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},Ni=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Pi=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`)},Fi=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},Ii=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=M(a.element,t,{...r,path:[...r.path,`items`]})},Li=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=M(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=M(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Ri=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>M(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},zi=(e,t,n,r)=>{let i=e._zod.def,a=M(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=M(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},Bi=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>M(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?M(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null;t.target===`draft-2020-12`?(i.prefixItems=c,l&&(i.items=l)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),i.minItems=c.length,l||(i.maxItems=c.length)):(i.items=c,l&&(i.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u==`number`&&(i.minItems=u),typeof d==`number`&&(i.maxItems=d)},Vi=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=M(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else (t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=M(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=M(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},Hi=(e,t,n,r)=>{let i=e._zod.def,a=M(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},Ui=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Wi=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},Gi=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},Ki=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},qi=(e,t,n,r)=>{let i=e._zod.def,a=t.io===`input`?i.in._zod.def.type===`transform`?i.out:i.in:i.out;M(a,t,r);let o=t.seen.get(e);o.ref=a},Ji=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Yi=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Xi=(e,t,n,r)=>{let i=e._zod.innerType;M(i,t,r);let a=t.seen.get(e);a.ref=i},Zi=m(`ZodISODateTime`,(e,t)=>{en.init(e,t),L.init(e,t)});function Qi(e){return Fr(Zi,e)}var $i=m(`ZodISODate`,(e,t)=>{tn.init(e,t),L.init(e,t)});function ea(e){return Ir($i,e)}var ta=m(`ZodISOTime`,(e,t)=>{nn.init(e,t),L.init(e,t)});function na(e){return Lr(ta,e)}var ra=m(`ZodISODuration`,(e,t)=>{rn.init(e,t),L.init(e,t)});function ia(e){return Rr(ra,e)}var aa=(e,t)=>{De.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>Ae(e,t)},flatten:{value:t=>ke(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,te,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,te,2)}},isEmpty:{get(){return e.issues.length===0}}})};m(`ZodError`,aa);var P=m(`ZodError`,aa,{Parent:Error}),oa=je(P),sa=Ne(P),ca=Fe(P),la=Le(P),ua=ze(P),da=Be(P),fa=Ve(P),pa=He(P),ma=Ue(P),ha=We(P),ga=Ge(P),_a=Ke(P),F=m(`ZodType`,(e,t)=>(A.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Si(e,`input`),output:Si(e,`output`)}}),e.toJSONSchema=xi(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(S(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,n)=>D(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>oa(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>ca(e,t,n),e.parseAsync=async(t,n)=>sa(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>la(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>ua(e,t,n),e.decode=(t,n)=>da(e,t,n),e.encodeAsync=async(t,n)=>fa(e,t,n),e.decodeAsync=async(t,n)=>pa(e,t,n),e.safeEncode=(t,n)=>ma(e,t,n),e.safeDecode=(t,n)=>ha(e,t,n),e.safeEncodeAsync=async(t,n)=>ga(e,t,n),e.safeDecodeAsync=async(t,n)=>_a(e,t,n),e.refine=(t,n)=>e.check(Lo(t,n)),e.superRefine=t=>e.check(Ro(t)),e.overwrite=t=>e.check(ci(t)),e.optional=()=>ho(e),e.exactOptional=()=>_o(e),e.nullable=()=>yo(e),e.nullish=()=>ho(yo(e)),e.nonoptional=t=>To(e,t),e.array=()=>H(e),e.or=t=>W([e,t]),e.and=t=>ao(e,t),e.transform=t=>ko(e,po(t)),e.default=t=>xo(e,t),e.prefault=t=>Co(e,t),e.catch=t=>Do(e,t),e.pipe=t=>ko(e,t),e.readonly=()=>jo(e),e.describe=t=>{let n=e.clone();return dr.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return dr.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return dr.get(e);let n=e.clone();return dr.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),va=m(`_ZodString`,(e,t)=>{Ht.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wi(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(ni(...t)),e.includes=(...t)=>e.check(ai(...t)),e.startsWith=(...t)=>e.check(oi(...t)),e.endsWith=(...t)=>e.check(si(...t)),e.min=(...t)=>e.check(ei(...t)),e.max=(...t)=>e.check($r(...t)),e.length=(...t)=>e.check(ti(...t)),e.nonempty=(...t)=>e.check(ei(1,...t)),e.lowercase=t=>e.check(ri(t)),e.uppercase=t=>e.check(ii(t)),e.trim=()=>e.check(ui()),e.normalize=(...t)=>e.check(li(...t)),e.toLowerCase=()=>e.check(di()),e.toUpperCase=()=>e.check(fi()),e.slugify=()=>e.check(pi())}),ya=m(`ZodString`,(e,t)=>{Ht.init(e,t),va.init(e,t),e.email=t=>e.check(pr(ba,t)),e.url=t=>e.check(yr(Ca,t)),e.jwt=t=>e.check(Pr(Ra,t)),e.emoji=t=>e.check(br(wa,t)),e.guid=t=>e.check(mr(xa,t)),e.uuid=t=>e.check(hr(Sa,t)),e.uuidv4=t=>e.check(gr(Sa,t)),e.uuidv6=t=>e.check(_r(Sa,t)),e.uuidv7=t=>e.check(vr(Sa,t)),e.nanoid=t=>e.check(xr(Ta,t)),e.guid=t=>e.check(mr(xa,t)),e.cuid=t=>e.check(Sr(Ea,t)),e.cuid2=t=>e.check(Cr(Da,t)),e.ulid=t=>e.check(wr(Oa,t)),e.base64=t=>e.check(jr(Fa,t)),e.base64url=t=>e.check(Mr(Ia,t)),e.xid=t=>e.check(Tr(ka,t)),e.ksuid=t=>e.check(Er(Aa,t)),e.ipv4=t=>e.check(Dr(ja,t)),e.ipv6=t=>e.check(Or(Ma,t)),e.cidrv4=t=>e.check(kr(Na,t)),e.cidrv6=t=>e.check(Ar(Pa,t)),e.e164=t=>e.check(Nr(La,t)),e.datetime=t=>e.check(Qi(t)),e.date=t=>e.check(ea(t)),e.time=t=>e.check(na(t)),e.duration=t=>e.check(ia(t))});function I(e){return fr(ya,e)}var L=m(`ZodStringFormat`,(e,t)=>{j.init(e,t),va.init(e,t)}),ba=m(`ZodEmail`,(e,t)=>{Gt.init(e,t),L.init(e,t)}),xa=m(`ZodGUID`,(e,t)=>{Ut.init(e,t),L.init(e,t)}),Sa=m(`ZodUUID`,(e,t)=>{Wt.init(e,t),L.init(e,t)}),Ca=m(`ZodURL`,(e,t)=>{Kt.init(e,t),L.init(e,t)}),wa=m(`ZodEmoji`,(e,t)=>{qt.init(e,t),L.init(e,t)}),Ta=m(`ZodNanoID`,(e,t)=>{Jt.init(e,t),L.init(e,t)}),Ea=m(`ZodCUID`,(e,t)=>{Yt.init(e,t),L.init(e,t)}),Da=m(`ZodCUID2`,(e,t)=>{Xt.init(e,t),L.init(e,t)}),Oa=m(`ZodULID`,(e,t)=>{Zt.init(e,t),L.init(e,t)}),ka=m(`ZodXID`,(e,t)=>{Qt.init(e,t),L.init(e,t)}),Aa=m(`ZodKSUID`,(e,t)=>{$t.init(e,t),L.init(e,t)}),ja=m(`ZodIPv4`,(e,t)=>{an.init(e,t),L.init(e,t)}),Ma=m(`ZodIPv6`,(e,t)=>{on.init(e,t),L.init(e,t)}),Na=m(`ZodCIDRv4`,(e,t)=>{sn.init(e,t),L.init(e,t)}),Pa=m(`ZodCIDRv6`,(e,t)=>{cn.init(e,t),L.init(e,t)}),Fa=m(`ZodBase64`,(e,t)=>{un.init(e,t),L.init(e,t)}),Ia=m(`ZodBase64URL`,(e,t)=>{fn.init(e,t),L.init(e,t)}),La=m(`ZodE164`,(e,t)=>{pn.init(e,t),L.init(e,t)}),Ra=m(`ZodJWT`,(e,t)=>{hn.init(e,t),L.init(e,t)}),za=m(`ZodNumber`,(e,t)=>{gn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ti(e,t,n,r),e.gt=(t,n)=>e.check(Xr(t,n)),e.gte=(t,n)=>e.check(Zr(t,n)),e.min=(t,n)=>e.check(Zr(t,n)),e.lt=(t,n)=>e.check(Jr(t,n)),e.lte=(t,n)=>e.check(Yr(t,n)),e.max=(t,n)=>e.check(Yr(t,n)),e.int=t=>e.check(Va(t)),e.safe=t=>e.check(Va(t)),e.positive=t=>e.check(Xr(0,t)),e.nonnegative=t=>e.check(Zr(0,t)),e.negative=t=>e.check(Jr(0,t)),e.nonpositive=t=>e.check(Yr(0,t)),e.multipleOf=(t,n)=>e.check(Qr(t,n)),e.step=(t,n)=>e.check(Qr(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function R(e){return zr(za,e)}var Ba=m(`ZodNumberFormat`,(e,t)=>{_n.init(e,t),za.init(e,t)});function Va(e){return Br(Ba,e)}var Ha=m(`ZodBoolean`,(e,t)=>{vn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ei(e,t,n,r)});function z(e){return Vr(Ha,e)}var Ua=m(`ZodNull`,(e,t)=>{yn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Di(e,t,n,r)});function Wa(e){return Hr(Ua,e)}var Ga=m(`ZodAny`,(e,t)=>{bn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Ka(){return Ur(Ga)}var qa=m(`ZodUnknown`,(e,t)=>{xn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function B(){return Wr(qa)}var Ja=m(`ZodNever`,(e,t)=>{Sn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ki(e,t,n,r)});function Ya(e){return Gr(Ja,e)}var Xa=m(`ZodVoid`,(e,t)=>{Cn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Oi(e,t,n,r)});function Za(e){return Kr(Xa,e)}var Qa=m(`ZodDate`,(e,t)=>{wn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ai(e,t,n,r),e.min=(t,n)=>e.check(Zr(t,n)),e.max=(t,n)=>e.check(Yr(t,n));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function V(e){return qr(Qa,e)}var $a=m(`ZodArray`,(e,t)=>{En.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ii(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(ei(t,n)),e.nonempty=t=>e.check(ei(1,t)),e.max=(t,n)=>e.check($r(t,n)),e.length=(t,n)=>e.check(ti(t,n)),e.unwrap=()=>e.element});function H(e,t){return mi($a,e,t)}var eo=m(`ZodObject`,(e,t)=>{jn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Li(e,t,n,r),b(e,`shape`,()=>t.shape),e.keyof=()=>K(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:B()}),e.loose=()=>e.clone({...e._zod.def,catchall:B()}),e.strict=()=>e.clone({...e._zod.def,catchall:Ya()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>he(e,t),e.safeExtend=t=>ge(e,t),e.merge=t=>_e(e,t),e.pick=t=>pe(e,t),e.omit=t=>me(e,t),e.partial=(...t)=>ve(mo,e,t[0]),e.required=(...t)=>ye(wo,e,t[0])});function U(e,t){return new eo({type:`object`,shape:e??{},...O(t)})}var to=m(`ZodUnion`,(e,t)=>{Nn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ri(e,t,n,r),e.options=t.options});function W(e,t){return new to({type:`union`,options:e,...O(t)})}var no=m(`ZodDiscriminatedUnion`,(e,t)=>{to.init(e,t),Pn.init(e,t)});function ro(e,t,n){return new no({type:`union`,options:t,discriminator:e,...O(n)})}var io=m(`ZodIntersection`,(e,t)=>{Fn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zi(e,t,n,r)});function ao(e,t){return new io({type:`intersection`,left:e,right:t})}var oo=m(`ZodTuple`,(e,t)=>{Rn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bi(e,t,n,r),e.rest=t=>e.clone({...e._zod.def,rest:t})});function so(e,t,n){let r=t instanceof A;return new oo({type:`tuple`,items:e,rest:r?t:null,...O(r?n:t)})}var co=m(`ZodRecord`,(e,t)=>{Bn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vi(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function G(e,t,n){return new co({type:`record`,keyType:e,valueType:t,...O(n)})}var lo=m(`ZodEnum`,(e,t)=>{Vn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ji(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new lo({...t,checks:[],...O(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new lo({...t,checks:[],...O(r),entries:i})}});function K(e,t){return new lo({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...O(t)})}var uo=m(`ZodLiteral`,(e,t)=>{Hn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Mi(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function q(e,t){return new uo({type:`literal`,values:Array.isArray(e)?e:[e],...O(t)})}var fo=m(`ZodTransform`,(e,t)=>{Un.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fi(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ee(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Te(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Te(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function po(e){return new fo({type:`transform`,transform:e})}var mo=m(`ZodOptional`,(e,t)=>{Gn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yi(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ho(e){return new mo({type:`optional`,innerType:e})}var go=m(`ZodExactOptional`,(e,t)=>{Kn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yi(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function _o(e){return new go({type:`optional`,innerType:e})}var vo=m(`ZodNullable`,(e,t)=>{qn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Hi(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function yo(e){return new vo({type:`nullable`,innerType:e})}var bo=m(`ZodDefault`,(e,t)=>{Jn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wi(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function xo(e,t){return new bo({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():le(t)}})}var So=m(`ZodPrefault`,(e,t)=>{Xn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gi(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Co(e,t){return new So({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():le(t)}})}var wo=m(`ZodNonOptional`,(e,t)=>{Zn.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ui(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function To(e,t){return new wo({type:`nonoptional`,innerType:e,...O(t)})}var Eo=m(`ZodCatch`,(e,t)=>{$n.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ki(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Do(e,t){return new Eo({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Oo=m(`ZodPipe`,(e,t)=>{er.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qi(e,t,n,r),e.in=t.in,e.out=t.out});function ko(e,t){return new Oo({type:`pipe`,in:e,out:t})}var Ao=m(`ZodReadonly`,(e,t)=>{nr.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ji(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function jo(e){return new Ao({type:`readonly`,innerType:e})}var Mo=m(`ZodLazy`,(e,t)=>{ar.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xi(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function No(e){return new Mo({type:`lazy`,getter:e})}var Po=m(`ZodFunction`,(e,t)=>{ir.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pi(e,t,n,r)});function Fo(e){return new Po({type:`function`,input:Array.isArray(e?.input)?so(e?.input):e?.input??H(B()),output:e?.output??B()})}var Io=m(`ZodCustom`,(e,t)=>{or.init(e,t),F.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ni(e,t,n,r)});function Lo(e,t={}){return hi(Io,e,t)}function Ro(e){return gi(e)}var zo={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`},Bo;(function(e){})(Bo||={}),U({key:I().describe(`Translation key (e.g., "views.task_list.label")`),defaultValue:I().optional().describe(`Fallback value when translation key is not found`),params:G(I(),W([I(),R(),z()])).optional().describe(`Interpolation parameters (e.g., { count: 5 })`)});var J=I().describe(`Display label (plain string; i18n keys are auto-generated by the framework)`),Y=U({ariaLabel:J.optional().describe(`Accessible label for screen readers (WAI-ARIA aria-label)`),ariaDescribedBy:I().optional().describe(`ID of element providing additional description (WAI-ARIA aria-describedby)`),role:I().optional().describe(`WAI-ARIA role attribute (e.g., "dialog", "navigation", "alert")`)}).describe(`ARIA accessibility attributes`);U({key:I().describe(`Translation key`),zero:I().optional().describe(`Zero form (e.g., "No items")`),one:I().optional().describe(`Singular form (e.g., "{count} item")`),two:I().optional().describe(`Dual form (e.g., "{count} items" for exactly 2)`),few:I().optional().describe(`Few form (e.g., for 2-4 in some languages)`),many:I().optional().describe(`Many form (e.g., for 5+ in some languages)`),other:I().describe(`Default plural form (e.g., "{count} items")`)}).describe(`ICU plural rules for a translation key`);var Vo=U({style:K([`decimal`,`currency`,`percent`,`unit`]).default(`decimal`).describe(`Number formatting style`),currency:I().optional().describe(`ISO 4217 currency code (e.g., "USD", "EUR")`),unit:I().optional().describe(`Unit for unit formatting (e.g., "kilometer", "liter")`),minimumFractionDigits:R().optional().describe(`Minimum number of fraction digits`),maximumFractionDigits:R().optional().describe(`Maximum number of fraction digits`),useGrouping:z().optional().describe(`Whether to use grouping separators (e.g., 1,000)`)}).describe(`Number formatting rules`),Ho=U({dateStyle:K([`full`,`long`,`medium`,`short`]).optional().describe(`Date display style`),timeStyle:K([`full`,`long`,`medium`,`short`]).optional().describe(`Time display style`),timeZone:I().optional().describe(`IANA time zone (e.g., "America/New_York")`),hour12:z().optional().describe(`Use 12-hour format`)}).describe(`Date/time formatting rules`);U({code:I().describe(`BCP 47 language code (e.g., "en-US", "zh-CN")`),fallbackChain:H(I()).optional().describe(`Fallback language codes in priority order (e.g., ["zh-TW", "en"])`),direction:K([`ltr`,`rtl`]).default(`ltr`).describe(`Text direction: left-to-right or right-to-left`),numberFormat:Vo.optional().describe(`Default number formatting rules`),dateFormat:Ho.optional().describe(`Default date/time formatting rules`)}).describe(`Locale configuration`);var Uo=K(`bar.horizontal-bar.column.grouped-bar.stacked-bar.bi-polar-bar.line.area.stacked-area.step-line.spline.pie.donut.funnel.pyramid.scatter.bubble.treemap.sunburst.sankey.word-cloud.gauge.solid-gauge.metric.kpi.bullet.choropleth.bubble-map.gl-map.heatmap.radar.waterfall.box-plot.violin.candlestick.stock.table.pivot`.split(`.`)),Wo=U({field:I().describe(`Data field key`),title:J.optional().describe(`Axis display title`),format:I().optional().describe(`Value format string (e.g., "$0,0.00")`),min:R().optional().describe(`Minimum value`),max:R().optional().describe(`Maximum value`),stepSize:R().optional().describe(`Step size for ticks`),showGridLines:z().default(!0),position:K([`left`,`right`,`top`,`bottom`]).optional().describe(`Axis position`),logarithmic:z().default(!1)}),Go=U({name:I().describe(`Field name or series identifier`),label:J.optional().describe(`Series display label`),type:Uo.optional().describe(`Override chart type for this series`),color:I().optional().describe(`Series color (hex/rgb/token)`),stack:I().optional().describe(`Stack identifier to group series`),yAxis:K([`left`,`right`]).default(`left`).describe(`Bind to specific Y-Axis`)}),Ko=U({type:K([`line`,`region`]).default(`line`),axis:K([`x`,`y`]).default(`y`),value:W([R(),I()]).describe(`Start value`),endValue:W([R(),I()]).optional().describe(`End value for regions`),color:I().optional(),label:J.optional(),style:K([`solid`,`dashed`,`dotted`]).default(`dashed`)}),qo=U({tooltips:z().default(!0),zoom:z().default(!1),brush:z().default(!1),clickAction:I().optional().describe(`Action ID to trigger on click`)}),Jo=U({type:Uo,title:J.optional().describe(`Chart title`),subtitle:J.optional().describe(`Chart subtitle`),description:J.optional().describe(`Accessibility description`),xAxis:Wo.optional().describe(`X-Axis configuration`),yAxis:H(Wo).optional().describe(`Y-Axis configuration (support dual axis)`),series:H(Go).optional().describe(`Defined series configuration`),colors:H(I()).optional().describe(`Color palette`),height:R().optional().describe(`Fixed height in pixels`),showLegend:z().default(!0).describe(`Display legend`),showDataLabels:z().default(!1).describe(`Display data labels`),annotations:H(Ko).optional(),interaction:qo.optional(),aria:Y.optional().describe(`ARIA accessibility attributes`)}),Yo=K([`xs`,`sm`,`md`,`lg`,`xl`,`2xl`]),Xo=U({xs:R().min(1).max(12).optional(),sm:R().min(1).max(12).optional(),md:R().min(1).max(12).optional(),lg:R().min(1).max(12).optional(),xl:R().min(1).max(12).optional(),"2xl":R().min(1).max(12).optional()}).describe(`Grid columns per breakpoint (1-12)`),Zo=U({xs:R().optional(),sm:R().optional(),md:R().optional(),lg:R().optional(),xl:R().optional(),"2xl":R().optional()}).describe(`Display order per breakpoint`),Qo=U({breakpoint:Yo.optional().describe(`Minimum breakpoint for visibility`),hiddenOn:H(Yo).optional().describe(`Hide on these breakpoints`),columns:Xo.optional().describe(`Grid columns per breakpoint`),order:Zo.optional().describe(`Display order per breakpoint`)}).describe(`Responsive layout configuration`),$o=U({lazyLoad:z().optional().describe(`Enable lazy loading (defer rendering until visible)`),virtualScroll:U({enabled:z().default(!1).describe(`Enable virtual scrolling`),itemHeight:R().optional().describe(`Fixed item height in pixels (for estimation)`),overscan:R().optional().describe(`Number of extra items to render outside viewport`)}).optional().describe(`Virtual scrolling configuration`),cacheStrategy:K([`none`,`cache-first`,`network-first`,`stale-while-revalidate`]).optional().describe(`Client-side data caching strategy`),prefetch:z().optional().describe(`Prefetch data before component is visible`),pageSize:R().optional().describe(`Number of items per page for pagination`),debounceMs:R().optional().describe(`Debounce interval for user interactions in milliseconds`)}).describe(`Performance optimization configuration`),es=I().min(2,{message:`System identifier must be at least 2 characters`}).regex(/^[a-z][a-z0-9_.]*$/,{message:`System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., "user_profile" or "order.created")`}).describe(`System identifier (lowercase with underscores or dots)`),X=I().min(2,{message:`Identifier must be at least 2 characters`}).regex(/^[a-z][a-z0-9_]*$/,{message:`Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., "user_profile")`}).describe(`Snake case identifier (lowercase with underscores only)`);I().min(3,{message:`Event name must be at least 3 characters`}).regex(/^[a-z][a-z0-9_.]*$/,{message:`Event name must be lowercase with dots for namespacing (e.g., "user.created", "order.paid")`}).describe(`Event name (lowercase with dot notation for namespacing)`);var ts=U({enabled:z().default(!1).describe(`Enable public sharing`),publicLink:I().optional().describe(`Generated public share URL`),password:I().optional().describe(`Password required to access shared link`),allowedDomains:H(I()).optional().describe(`Restrict access to specific email domains (e.g. ["example.com"])`),expiresAt:I().optional().describe(`Expiration date/time in ISO 8601 format`),allowAnonymous:z().optional().default(!1).describe(`Allow access without authentication`)}),ns=U({enabled:z().default(!1).describe(`Enable iframe embedding`),allowedOrigins:H(I()).optional().describe(`Allowed iframe parent origins (e.g. ["https://example.com"])`),width:I().optional().default(`100%`).describe(`Embed width (CSS value)`),height:I().optional().default(`600px`).describe(`Embed height (CSS value)`),showHeader:z().optional().default(!0).describe(`Show interface header in embed`),showNavigation:z().optional().default(!1).describe(`Show navigation in embed`),responsive:z().optional().default(!0).describe(`Enable responsive resizing`)}),rs=U({id:X.describe(`Unique identifier for this navigation item (lowercase snake_case)`),label:J.describe(`Display proper label`),icon:I().optional().describe(`Icon name`),order:R().optional().describe(`Sort order within the same level (lower = first)`),badge:W([I(),R()]).optional().describe(`Badge text or count displayed on the item`),visible:I().optional().describe(`Visibility formula condition`),requiredPermissions:H(I()).optional().describe(`Permissions required to access this item`)}),is=rs.extend({type:q(`object`),objectName:I().describe(`Target object name`),viewName:I().optional().describe(`Default list view to open. Defaults to "all"`)}),as=rs.extend({type:q(`dashboard`),dashboardName:I().describe(`Target dashboard name`)}),os=rs.extend({type:q(`page`),pageName:I().describe(`Target custom page component name`),params:G(I(),B()).optional().describe(`Parameters passed to the page context`)}),ss=rs.extend({type:q(`url`),url:I().describe(`Target external URL`),target:K([`_self`,`_blank`]).default(`_self`).describe(`Link target window`)}),cs=rs.extend({type:q(`report`),reportName:I().describe(`Target report name`)}),ls=rs.extend({type:q(`action`),actionDef:U({actionName:I().describe(`Action machine name to execute`),params:G(I(),B()).optional().describe(`Parameters passed to the action`)}).describe(`Action definition to execute when clicked`)}),us=rs.extend({type:q(`group`),expanded:z().default(!1).describe(`Default expansion state in sidebar`)}),ds=No(()=>W([is.extend({children:H(ds).optional().describe(`Child navigation items (e.g. specific views)`)}),as,os,ss,cs,ls,us.extend({children:H(ds).describe(`Child navigation items`)})])),fs=U({primaryColor:I().optional().describe(`Primary theme color hex code`),logo:I().optional().describe(`Custom logo URL for this app`),favicon:I().optional().describe(`Custom favicon URL for this app`)}),ps=U({id:X.describe(`Unique area identifier (lowercase snake_case)`),label:J.describe(`Area display label`),icon:I().optional().describe(`Area icon name`),order:R().optional().describe(`Sort order among areas (lower = first)`),description:J.optional().describe(`Area description`),visible:I().optional().describe(`Visibility formula condition for this area`),requiredPermissions:H(I()).optional().describe(`Permissions required to access this area`),navigation:H(ds).describe(`Navigation items within this area`)});U({name:X.describe(`App unique machine name (lowercase snake_case)`),label:J.describe(`App display label`),version:I().optional().describe(`App version`),description:J.optional().describe(`App description`),icon:I().optional().describe(`App icon used in the App Launcher`),branding:fs.optional().describe(`App-specific branding`),active:z().optional().default(!0).describe(`Whether the app is enabled`),isDefault:z().optional().default(!1).describe(`Is default app`),navigation:H(ds).optional().describe(`Full navigation tree for the app sidebar`),areas:H(ps).optional().describe(`Navigation areas for partitioning navigation by business domain`),homePageId:I().optional().describe(`ID of the navigation item to serve as landing page`),requiredPermissions:H(I()).optional().describe(`Permissions required to access this app`),objects:H(B()).optional().describe(`Objects belonging to this app`),apis:H(B()).optional().describe(`Custom APIs belonging to this app`),sharing:ts.optional().describe(`Public sharing configuration`),embed:ns.optional().describe(`Iframe embedding configuration`),mobileNavigation:U({mode:K([`drawer`,`bottom_nav`,`hamburger`]).default(`drawer`).describe(`Mobile navigation mode: drawer sidebar, bottom navigation bar, or hamburger menu`),bottomNavItems:H(I()).optional().describe(`Navigation item IDs to show in bottom nav (max 5)`)}).optional().describe(`Mobile-specific navigation configuration`),aria:Y.optional().describe(`ARIA accessibility attributes for the application`)});var ms=K([`GET`,`POST`,`PUT`,`DELETE`,`PATCH`,`HEAD`,`OPTIONS`]),hs=K([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]),gs=U({url:I().describe(`API endpoint URL`),method:hs.optional().default(`GET`).describe(`HTTP method`),headers:G(I(),I()).optional().describe(`Custom HTTP headers`),params:G(I(),B()).optional().describe(`Query parameters`),body:B().optional().describe(`Request body for POST/PUT/PATCH`)});U({enabled:z().default(!0).describe(`Enable CORS`),origins:W([I(),H(I())]).default(`*`).describe(`Allowed origins (* for all)`),methods:H(ms).optional().describe(`Allowed HTTP methods`),credentials:z().default(!1).describe(`Allow credentials (cookies, authorization headers)`),maxAge:R().int().optional().describe(`Preflight cache duration in seconds`)}),U({enabled:z().default(!1).describe(`Enable rate limiting`),windowMs:R().int().default(6e4).describe(`Time window in milliseconds`),maxRequests:R().int().default(100).describe(`Max requests per window`)}),U({path:I().describe(`URL path to serve from`),directory:I().describe(`Physical directory to serve`),cacheControl:I().optional().describe(`Cache-Control header value`)});var _s=ro(`provider`,[U({provider:q(`object`),object:I().describe(`Target object name`)}),U({provider:q(`api`),read:gs.optional().describe(`Configuration for fetching data`),write:gs.optional().describe(`Configuration for submitting data (for forms/editable tables)`)}),U({provider:q(`value`),items:H(B()).describe(`Static data array`)})]),vs=U({field:I().describe(`Field name to filter on`),operator:I().describe(`Filter operator (e.g. equals, not_equals, contains, this_quarter)`),value:W([I(),R(),z(),Wa(),H(W([I(),R()]))]).optional().describe(`Filter value`)}).describe(`View filter rule`),ys=K([`none`,`count`,`count_empty`,`count_filled`,`count_unique`,`percent_empty`,`percent_filled`,`sum`,`avg`,`min`,`max`]).describe(`Aggregation function for column footer summary`),bs=U({field:I().describe(`Field name (snake_case)`),label:J.optional().describe(`Display label override`),width:R().positive().optional().describe(`Column width in pixels`),align:K([`left`,`center`,`right`]).optional().describe(`Text alignment`),hidden:z().optional().describe(`Hide column by default`),sortable:z().optional().describe(`Allow sorting by this column`),resizable:z().optional().describe(`Allow resizing this column`),wrap:z().optional().describe(`Allow text wrapping`),type:I().optional().describe(`Renderer type override (e.g., "currency", "date")`),pinned:K([`left`,`right`]).optional().describe(`Pin/freeze column to left or right side`),summary:ys.optional().describe(`Footer aggregation function for this column`),link:z().optional().describe(`Functions as the primary navigation link (triggers View navigation)`),action:I().optional().describe(`Registered Action ID to execute when clicked`)}),xs=U({type:K([`none`,`single`,`multiple`]).default(`none`).describe(`Selection mode`)}),Ss=U({pageSize:R().int().positive().default(25).describe(`Number of records per page`),pageSizeOptions:H(R().int().positive()).optional().describe(`Available page size options`)}),Cs=K([`compact`,`short`,`medium`,`tall`,`extra_tall`]).describe(`Row height / density setting for list view`),ws=U({fields:H(U({field:I().describe(`Field name to group by`),order:K([`asc`,`desc`]).default(`asc`).describe(`Group sort order`),collapsed:z().default(!1).describe(`Collapse groups by default`)})).min(1).describe(`Fields to group by (supports up to 3 levels)`)}).describe(`Record grouping configuration`),Ts=U({coverField:I().optional().describe(`Attachment/image field to display as card cover`),coverFit:K([`cover`,`contain`]).default(`cover`).describe(`Image fit mode for card cover`),cardSize:K([`small`,`medium`,`large`]).default(`medium`).describe(`Card size in gallery view`),titleField:I().optional().describe(`Field to display as card title`),visibleFields:H(I()).optional().describe(`Fields to display on card body`)}).describe(`Gallery/card view configuration`),Es=U({startDateField:I().describe(`Field for timeline item start date`),endDateField:I().optional().describe(`Field for timeline item end date`),titleField:I().describe(`Field to display as timeline item title`),groupByField:I().optional().describe(`Field to group timeline rows`),colorField:I().optional().describe(`Field to determine item color`),scale:K([`hour`,`day`,`week`,`month`,`quarter`,`year`]).default(`week`).describe(`Default timeline scale`)}).describe(`Timeline view configuration`),Ds=U({type:K([`personal`,`collaborative`]).default(`collaborative`).describe(`View ownership type`),lockedBy:I().optional().describe(`User who locked the view configuration`)}).describe(`View sharing and access configuration`),Os=U({field:I().describe(`Field to derive color from (typically a select/status field)`),colors:G(I(),I()).optional().describe(`Map of field value to color (hex/token)`)}).describe(`Row color configuration based on field values`),ks=K([`grid`,`kanban`,`gallery`,`calendar`,`timeline`,`gantt`,`map`]).describe(`Visualization type that users can switch to`),As=U({sort:z().default(!0).describe(`Allow users to sort records`),search:z().default(!0).describe(`Allow users to search records`),filter:z().default(!0).describe(`Allow users to filter records`),rowHeight:z().default(!0).describe(`Allow users to toggle row height/density`),addRecordForm:z().default(!1).describe(`Add records through a form instead of inline`),buttons:H(I()).optional().describe(`Custom action button IDs to show in the toolbar`)}).describe(`User action toggles for the view toolbar`),js=U({showDescription:z().default(!0).describe(`Show the view description text`),allowedVisualizations:H(ks).optional().describe(`Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])`)}).describe(`Appearance and visualization configuration`),Ms=U({name:X.describe(`Tab identifier (snake_case)`),label:J.optional().describe(`Display label`),icon:I().optional().describe(`Tab icon name`),view:I().optional().describe(`Referenced list view name from listViews`),filter:H(vs).optional().describe(`Tab-specific filter criteria`),order:R().int().min(0).optional().describe(`Tab display order`),pinned:z().default(!1).describe(`Pin tab (cannot be removed by users)`),isDefault:z().default(!1).describe(`Set as the default active tab`),visible:z().default(!0).describe(`Tab visibility`)}).describe(`Tab configuration for multi-tab view interface`),Ns=U({enabled:z().default(!0).describe(`Show the add record entry point`),position:K([`top`,`bottom`,`both`]).default(`bottom`).describe(`Position of the add record button`),mode:K([`inline`,`form`,`modal`]).default(`inline`).describe(`How to add a new record`),formView:I().optional().describe(`Named form view to use when mode is "form" or "modal"`)}).describe(`Add record entry point configuration`),Ps=U({groupByField:I().describe(`Field to group columns by (usually status/select)`),summarizeField:I().optional().describe(`Field to sum at top of column (e.g. amount)`),columns:H(I()).describe(`Fields to show on cards`)}),Fs=U({startDateField:I(),endDateField:I().optional(),titleField:I(),colorField:I().optional()}),Is=U({startDateField:I(),endDateField:I(),titleField:I(),progressField:I().optional(),dependenciesField:I().optional()}),Ls=U({mode:K([`page`,`drawer`,`modal`,`split`,`popover`,`new_window`,`none`]).default(`page`),view:I().optional().describe(`Name of the form view to use for details (e.g. "summary_view", "edit_form")`),preventNavigation:z().default(!1).describe(`Disable standard navigation entirely`),openNewTab:z().default(!1).describe(`Force open in new tab (applies to page mode)`),width:W([I(),R()]).optional().describe(`Width of the drawer/modal (e.g. "600px", "50%")`)}),Rs=U({name:X.optional().describe(`Internal view name (lowercase snake_case)`),label:J.optional(),type:K([`grid`,`kanban`,`gallery`,`calendar`,`timeline`,`gantt`,`map`]).default(`grid`),data:_s.optional().describe(`Data source configuration (defaults to "object" provider)`),columns:W([H(I()),H(bs)]).describe(`Fields to display as columns`),filter:H(vs).optional().describe(`Filter criteria (JSON Rules)`),sort:W([I(),H(U({field:I(),order:K([`asc`,`desc`])}))]).optional(),searchableFields:H(I()).optional().describe(`Fields enabled for search`),filterableFields:H(I()).optional().describe(`Fields enabled for end-user filtering in the top bar`),quickFilters:H(U({field:I().describe(`Field name to filter by`),label:I().optional().describe(`Display label for the chip`),operator:K([`equals`,`not_equals`,`contains`,`in`,`is_null`,`is_not_null`]).default(`equals`).describe(`Filter operator`),value:W([I(),R(),z(),Wa(),H(W([I(),R()]))]).optional().describe(`Preset filter value`)})).optional().describe(`One-click filter chips for quick record filtering`),resizable:z().optional().describe(`Enable column resizing`),striped:z().optional().describe(`Striped row styling`),bordered:z().optional().describe(`Show borders`),selection:xs.optional().describe(`Row selection configuration`),navigation:Ls.optional().describe(`Configuration for item click navigation (page, drawer, modal, etc.)`),pagination:Ss.optional().describe(`Pagination configuration`),kanban:Ps.optional(),calendar:Fs.optional(),gantt:Is.optional(),gallery:Ts.optional(),timeline:Es.optional(),description:J.optional().describe(`View description for documentation/tooltips`),sharing:Ds.optional().describe(`View sharing and access configuration`),rowHeight:Cs.optional().describe(`Row height / density setting`),grouping:ws.optional().describe(`Group records by one or more fields`),rowColor:Os.optional().describe(`Color rows based on field value`),hiddenFields:H(I()).optional().describe(`Fields to hide in this specific view`),fieldOrder:H(I()).optional().describe(`Explicit field display order for this view`),rowActions:H(I()).optional().describe(`Actions available for individual row items`),bulkActions:H(I()).optional().describe(`Actions available when multiple rows are selected`),virtualScroll:z().optional().describe(`Enable virtual scrolling for large datasets`),conditionalFormatting:H(U({condition:I().describe(`Condition expression to evaluate`),style:G(I(),I()).describe(`CSS styles to apply when condition is true`)})).optional().describe(`Conditional formatting rules for list rows`),inlineEdit:z().optional().describe(`Allow inline editing of records directly in the list view`),exportOptions:H(K([`csv`,`xlsx`,`pdf`,`json`])).optional().describe(`Available export format options`),userActions:As.optional().describe(`User action toggles for the view toolbar`),appearance:js.optional().describe(`Appearance and visualization configuration`),tabs:H(Ms).optional().describe(`Tab definitions for multi-tab view interface`),addRecord:Ns.optional().describe(`Add record entry point configuration`),showRecordCount:z().optional().describe(`Show record count at the bottom of the list`),allowPrinting:z().optional().describe(`Allow users to print the view`),emptyState:U({title:J.optional(),message:J.optional(),icon:I().optional()}).optional().describe(`Empty state configuration when no records found`),aria:Y.optional().describe(`ARIA accessibility attributes for the list view`),responsive:Qo.optional().describe(`Responsive layout configuration`),performance:$o.optional().describe(`Performance optimization settings`)}),zs=U({field:I().describe(`Field name (snake_case)`),label:J.optional().describe(`Display label override`),placeholder:J.optional().describe(`Placeholder text`),helpText:J.optional().describe(`Help/hint text`),readonly:z().optional().describe(`Read-only override`),required:z().optional().describe(`Required override`),hidden:z().optional().describe(`Hidden override`),colSpan:R().int().min(1).max(4).optional().describe(`Column span in grid layout (1-4)`),widget:I().optional().describe(`Custom widget/component name`),dependsOn:I().optional().describe(`Parent field name for cascading`),visibleOn:I().optional().describe(`Visibility condition expression`)}),Bs=U({label:J.optional(),collapsible:z().default(!1),collapsed:z().default(!1),columns:K([`1`,`2`,`3`,`4`]).default(`2`).transform(e=>parseInt(e)),fields:H(W([I(),zs]))}),Vs=U({type:K([`simple`,`tabbed`,`wizard`,`split`,`drawer`,`modal`]).default(`simple`),data:_s.optional().describe(`Data source configuration (defaults to "object" provider)`),sections:H(Bs).optional(),groups:H(Bs).optional(),defaultSort:H(U({field:I().describe(`Field name to sort by`),order:K([`asc`,`desc`]).default(`desc`).describe(`Sort direction`)})).optional().describe(`Default sort order for related list views within this form`),sharing:ts.optional().describe(`Public sharing configuration for this form`),aria:Y.optional().describe(`ARIA accessibility attributes for the form view`)});U({list:Rs.optional(),form:Vs.optional(),listViews:G(I(),Rs).optional().describe(`Additional named list views`),formViews:G(I(),Vs).optional().describe(`Additional named form views`)});var Z=U({$field:I().describe(`Field Reference/Column Name`)});U({$eq:Ka().optional(),$ne:Ka().optional()}),U({$gt:W([R(),V(),Z]).optional(),$gte:W([R(),V(),Z]).optional(),$lt:W([R(),V(),Z]).optional(),$lte:W([R(),V(),Z]).optional()}),U({$in:H(Ka()).optional(),$nin:H(Ka()).optional()}),U({$between:so([W([R(),V(),Z]),W([R(),V(),Z])]).optional()}),U({$contains:I().optional(),$notContains:I().optional(),$startsWith:I().optional(),$endsWith:I().optional()}),U({$null:z().optional(),$exists:z().optional()});var Hs=U({$eq:Ka().optional(),$ne:Ka().optional(),$gt:W([R(),V(),Z]).optional(),$gte:W([R(),V(),Z]).optional(),$lt:W([R(),V(),Z]).optional(),$lte:W([R(),V(),Z]).optional(),$in:H(Ka()).optional(),$nin:H(Ka()).optional(),$between:so([W([R(),V(),Z]),W([R(),V(),Z])]).optional(),$contains:I().optional(),$notContains:I().optional(),$startsWith:I().optional(),$endsWith:I().optional(),$null:z().optional(),$exists:z().optional()}),Q=No(()=>G(I(),B()).and(U({$and:H(Q).optional(),$or:H(Q).optional(),$not:Q.optional()})));U({where:Q.optional()});var Us=No(()=>U({$and:H(W([G(I(),Hs),Us])).optional(),$or:H(W([G(I(),Hs),Us])).optional(),$not:W([G(I(),Hs),Us]).optional()})),Ws=K([`default`,`blue`,`teal`,`orange`,`purple`,`success`,`warning`,`danger`]).describe(`Widget color variant`),Gs=K([`script`,`url`,`modal`,`flow`,`api`]).describe(`Widget action type`),Ks=U({label:J.describe(`Action button label`),actionUrl:I().describe(`URL or target for the action`),actionType:Gs.optional().describe(`Type of action`),icon:I().optional().describe(`Icon identifier for the action button`)}).describe(`Dashboard header action`),qs=U({showTitle:z().default(!0).describe(`Show dashboard title in header`),showDescription:z().default(!0).describe(`Show dashboard description in header`),actions:H(Ks).optional().describe(`Header action buttons`)}).describe(`Dashboard header configuration`),Js=U({valueField:I().describe(`Field to aggregate`),aggregate:K([`count`,`sum`,`avg`,`min`,`max`]).default(`count`).describe(`Aggregate function`),label:J.optional().describe(`Measure display label`),format:I().optional().describe(`Number format string`)}).describe(`Widget measure definition`),Ys=U({id:X.describe(`Unique widget identifier (snake_case)`),title:J.optional().describe(`Widget title`),description:J.optional().describe(`Widget description text below the header`),type:Uo.default(`metric`).describe(`Visualization type`),chartConfig:Jo.optional().describe(`Chart visualization configuration`),colorVariant:Ws.optional().describe(`Widget color variant for theming`),actionUrl:I().optional().describe(`URL or target for the widget action button`),actionType:Gs.optional().describe(`Type of action for the widget action button`),actionIcon:I().optional().describe(`Icon identifier for the widget action button`),object:I().optional().describe(`Data source object name`),filter:Q.optional().describe(`Data filter criteria`),categoryField:I().optional().describe(`Field for grouping (X-Axis)`),valueField:I().optional().describe(`Field for values (Y-Axis)`),aggregate:K([`count`,`sum`,`avg`,`min`,`max`]).optional().default(`count`).describe(`Aggregate function`),measures:H(Js).optional().describe(`Multiple measures for pivot/matrix analysis`),layout:U({x:R(),y:R(),w:R(),h:R()}).describe(`Grid layout position`),options:B().optional().describe(`Widget specific configuration`),responsive:Qo.optional().describe(`Responsive layout configuration`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),Xs=U({object:I().describe(`Source object name`),valueField:I().describe(`Field to use as option value`),labelField:I().describe(`Field to use as option label`),filter:Q.optional().describe(`Filter to apply to source object`)}).describe(`Dynamic filter options from object`),Zs=U({field:I().describe(`Field name to filter on`),label:J.optional().describe(`Display label for the filter`),type:K([`text`,`select`,`date`,`number`,`lookup`]).optional().describe(`Filter input type`),options:H(U({value:W([I(),R(),z()]).describe(`Option value`),label:J})).optional().describe(`Static filter options`),optionsFrom:Xs.optional().describe(`Dynamic filter options from object`),defaultValue:W([I(),R(),z()]).optional().describe(`Default filter value`),scope:K([`dashboard`,`widget`]).default(`dashboard`).describe(`Filter application scope`),targetWidgets:H(I()).optional().describe(`Widget IDs to apply this filter to`)});U({name:X.describe(`Dashboard unique name`),label:J.describe(`Dashboard label`),description:J.optional().describe(`Dashboard description`),header:qs.optional().describe(`Dashboard header configuration`),widgets:H(Ys).describe(`Widgets to display`),refreshInterval:R().optional().describe(`Auto-refresh interval in seconds`),dateRange:U({field:I().optional().describe(`Default date field name for time-based filtering`),defaultRange:K([`today`,`yesterday`,`this_week`,`last_week`,`this_month`,`last_month`,`this_quarter`,`last_quarter`,`this_year`,`last_year`,`last_7_days`,`last_30_days`,`last_90_days`,`custom`]).default(`this_month`).describe(`Default date range preset`),allowCustomRange:z().default(!0).describe(`Allow users to pick a custom date range`)}).optional().describe(`Global dashboard date range filter configuration`),globalFilters:H(Zs).optional().describe(`Global filters that apply to all widgets in the dashboard`),aria:Y.optional().describe(`ARIA accessibility attributes`),performance:$o.optional().describe(`Performance optimization settings`)});var Qs=K([`tabular`,`summary`,`matrix`,`joined`]),$s=U({field:I().describe(`Field name`),label:J.optional().describe(`Override label`),aggregate:K([`sum`,`avg`,`max`,`min`,`count`,`unique`]).optional().describe(`Aggregation function`),responsive:Qo.optional().describe(`Responsive visibility for this column`)}),ec=U({field:I().describe(`Field to group by`),sortOrder:K([`asc`,`desc`]).default(`asc`),dateGranularity:K([`day`,`week`,`month`,`quarter`,`year`]).optional().describe(`For date fields`)}),tc=Jo.extend({xAxis:I().describe(`Grouping field for X-Axis`),yAxis:I().describe(`Summary field for Y-Axis`),groupBy:I().optional().describe(`Additional grouping field`)});U({name:X.describe(`Report unique name`),label:J.describe(`Report label`),description:J.optional(),objectName:I().describe(`Primary object`),type:Qs.default(`tabular`).describe(`Report format type`),columns:H($s).describe(`Columns to display`),groupingsDown:H(ec).optional().describe(`Row groupings`),groupingsAcross:H(ec).optional().describe(`Column groupings (Matrix only)`),filter:Q.optional().describe(`Filter criteria`),chart:tc.optional().describe(`Embedded chart configuration`),aria:Y.optional().describe(`ARIA accessibility attributes`),performance:$o.optional().describe(`Performance optimization settings`)});var nc=K([`aes-256-gcm`,`aes-256-cbc`,`chacha20-poly1305`]).describe(`Supported encryption algorithm`),rc=K([`local`,`aws-kms`,`azure-key-vault`,`gcp-kms`,`hashicorp-vault`]).describe(`Key management service provider`),ic=U({enabled:z().default(!1).describe(`Enable automatic key rotation`),frequencyDays:R().min(1).default(90).describe(`Rotation frequency in days`),retainOldVersions:R().default(3).describe(`Number of old key versions to retain`),autoRotate:z().default(!0).describe(`Automatically rotate without manual approval`)}).describe(`Policy for automatic encryption key rotation`),ac=U({enabled:z().default(!1).describe(`Enable field-level encryption`),algorithm:nc.default(`aes-256-gcm`).describe(`Encryption algorithm`),keyManagement:U({provider:rc.describe(`Key management service provider`),keyId:I().optional().describe(`Key identifier in the provider`),rotationPolicy:ic.optional().describe(`Key rotation policy`)}).describe(`Key management configuration`),scope:K([`field`,`record`,`table`,`database`]).describe(`Encryption scope level`),deterministicEncryption:z().default(!1).describe(`Allows equality queries on encrypted data`),searchableEncryption:z().default(!1).describe(`Allows search on encrypted data`)}).describe(`Field-level encryption configuration`);U({fieldName:I().describe(`Name of the field to encrypt`),encryptionConfig:ac.describe(`Encryption settings for this field`),indexable:z().default(!1).describe(`Allow indexing on encrypted field`)}).describe(`Per-field encryption assignment`);var oc=K([`redact`,`partial`,`hash`,`tokenize`,`randomize`,`nullify`,`substitute`]).describe(`Data masking strategy for PII protection`),sc=U({field:I().describe(`Field name to apply masking to`),strategy:oc.describe(`Masking strategy to use`),pattern:I().optional().describe(`Regex pattern for partial masking`),preserveFormat:z().default(!0).describe(`Keep the original data format after masking`),preserveLength:z().default(!0).describe(`Keep the original data length after masking`),roles:H(I()).optional().describe(`Roles that see masked data`),exemptRoles:H(I()).optional().describe(`Roles that see unmasked data`)}).describe(`Masking rule for a single field`);U({enabled:z().default(!1).describe(`Enable data masking`),rules:H(sc).describe(`List of field-level masking rules`),auditUnmasking:z().default(!0).describe(`Log when masked data is accessed unmasked`)}).describe(`Top-level data masking configuration for PII protection`);var cc=K(`text.textarea.email.url.phone.password.markdown.html.richtext.number.currency.percent.date.datetime.time.boolean.toggle.select.multiselect.radio.checkboxes.lookup.master_detail.tree.image.file.avatar.video.audio.formula.summary.autonumber.location.address.code.json.color.rating.slider.signature.qrcode.progress.tags.vector`.split(`.`)),lc=U({label:I().describe(`Display label (human-readable, any case allowed)`),value:es.describe(`Stored value (lowercase machine identifier)`),color:I().optional().describe(`Color code for badges/charts`),default:z().optional().describe(`Is default option`)});U({latitude:R().min(-90).max(90).describe(`Latitude coordinate`),longitude:R().min(-180).max(180).describe(`Longitude coordinate`),altitude:R().optional().describe(`Altitude in meters`),accuracy:R().optional().describe(`Accuracy in meters`)});var uc=U({precision:R().int().min(0).max(10).default(2).describe(`Decimal precision (default: 2)`),currencyMode:K([`dynamic`,`fixed`]).default(`dynamic`).describe(`Currency mode: dynamic (user selectable) or fixed (single currency)`),defaultCurrency:I().length(3).default(`CNY`).describe(`Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)`)});U({value:R().describe(`Monetary amount`),currency:I().length(3).describe(`Currency code (ISO 4217)`)}),U({street:I().optional().describe(`Street address`),city:I().optional().describe(`City name`),state:I().optional().describe(`State/Province`),postalCode:I().optional().describe(`Postal/ZIP code`),country:I().optional().describe(`Country name or code`),countryCode:I().optional().describe(`ISO country code (e.g., US, GB)`),formatted:I().optional().describe(`Formatted address string`)});var dc=U({dimensions:R().int().min(1).max(1e4).describe(`Vector dimensionality (e.g., 1536 for OpenAI embeddings)`),distanceMetric:K([`cosine`,`euclidean`,`dotProduct`,`manhattan`]).default(`cosine`).describe(`Distance/similarity metric for vector search`),normalized:z().default(!1).describe(`Whether vectors are normalized (unit length)`),indexed:z().default(!0).describe(`Whether to create a vector index for fast similarity search`),indexType:K([`hnsw`,`ivfflat`,`flat`]).optional().describe(`Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)`)}),fc=U({minSize:R().min(0).optional().describe(`Minimum file size in bytes`),maxSize:R().min(1).optional().describe(`Maximum file size in bytes (e.g., 10485760 = 10MB)`),allowedTypes:H(I()).optional().describe(`Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])`),blockedTypes:H(I()).optional().describe(`Blocked file extensions (e.g., [".exe", ".bat", ".sh"])`),allowedMimeTypes:H(I()).optional().describe(`Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])`),blockedMimeTypes:H(I()).optional().describe(`Blocked MIME types`),virusScan:z().default(!1).describe(`Enable virus scanning for uploaded files`),virusScanProvider:K([`clamav`,`virustotal`,`metadefender`,`custom`]).optional().describe(`Virus scanning service provider`),virusScanOnUpload:z().default(!0).describe(`Scan files immediately on upload`),quarantineOnThreat:z().default(!0).describe(`Quarantine files if threat detected`),storageProvider:I().optional().describe(`Object storage provider name (references ObjectStorageConfig)`),storageBucket:I().optional().describe(`Target bucket name`),storagePrefix:I().optional().describe(`Storage path prefix (e.g., "uploads/documents/")`),imageValidation:U({minWidth:R().min(1).optional().describe(`Minimum image width in pixels`),maxWidth:R().min(1).optional().describe(`Maximum image width in pixels`),minHeight:R().min(1).optional().describe(`Minimum image height in pixels`),maxHeight:R().min(1).optional().describe(`Maximum image height in pixels`),aspectRatio:I().optional().describe(`Required aspect ratio (e.g., "16:9", "1:1")`),generateThumbnails:z().default(!1).describe(`Auto-generate thumbnails`),thumbnailSizes:H(U({name:I().describe(`Thumbnail variant name (e.g., "small", "medium", "large")`),width:R().min(1).describe(`Thumbnail width in pixels`),height:R().min(1).describe(`Thumbnail height in pixels`),crop:z().default(!1).describe(`Crop to exact dimensions`)})).optional().describe(`Thumbnail size configurations`),preserveMetadata:z().default(!1).describe(`Preserve EXIF metadata`),autoRotate:z().default(!0).describe(`Auto-rotate based on EXIF orientation`)}).optional().describe(`Image-specific validation rules`),allowMultiple:z().default(!1).describe(`Allow multiple file uploads (overrides field.multiple)`),allowReplace:z().default(!0).describe(`Allow replacing existing files`),allowDelete:z().default(!0).describe(`Allow deleting uploaded files`),requireUpload:z().default(!1).describe(`Require at least one file when field is required`),extractMetadata:z().default(!0).describe(`Extract file metadata (name, size, type, etc.)`),extractText:z().default(!1).describe(`Extract text content from documents (OCR/parsing)`),versioningEnabled:z().default(!1).describe(`Keep previous versions of replaced files`),maxVersions:R().min(1).optional().describe(`Maximum number of versions to retain`),publicRead:z().default(!1).describe(`Allow public read access to uploaded files`),presignedUrlExpiry:R().min(60).max(604800).default(3600).describe(`Presigned URL expiration in seconds (default: 1 hour)`)}).refine(e=>!(e.minSize!==void 0&&e.maxSize!==void 0&&e.minSize>e.maxSize),{message:`minSize must be less than or equal to maxSize`}).refine(e=>!(e.virusScanProvider!==void 0&&e.virusScan!==!0),{message:`virusScanProvider requires virusScan to be enabled`}),pc=U({uniqueness:z().default(!1).describe(`Enforce unique values across all records`),completeness:R().min(0).max(1).default(0).describe(`Minimum ratio of non-null values (0-1, default: 0 = no requirement)`),accuracy:U({source:I().describe(`Reference data source for validation (e.g., "api.verify.com", "master_data")`),threshold:R().min(0).max(1).describe(`Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)`)}).optional().describe(`Accuracy validation configuration`)}),mc=U({enabled:z().describe(`Enable caching for computed field results`),ttl:R().min(0).describe(`Cache TTL in seconds (0 = no expiration)`),invalidateOn:H(I()).describe(`Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])`)}),hc=U({name:I().regex(/^[a-z_][a-z0-9_]*$/).describe(`Machine name (snake_case)`).optional(),label:I().optional().describe(`Human readable label`),type:cc.describe(`Field Data Type`),description:I().optional().describe(`Tooltip/Help text`),format:I().optional().describe(`Format string (e.g. email, phone)`),columnName:I().optional().describe(`Physical column name in the target datasource. Defaults to the field key when not set.`),required:z().default(!1).describe(`Is required`),searchable:z().default(!1).describe(`Is searchable`),multiple:z().default(!1).describe(`Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.`),unique:z().default(!1).describe(`Is unique constraint`),defaultValue:B().optional().describe(`Default value`),maxLength:R().optional().describe(`Max character length`),minLength:R().optional().describe(`Min character length`),precision:R().optional().describe(`Total digits`),scale:R().optional().describe(`Decimal places`),min:R().optional().describe(`Minimum value`),max:R().optional().describe(`Maximum value`),options:H(lc).optional().describe(`Static options for select/multiselect`),reference:I().optional().describe(`Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects.`),referenceFilters:H(I()).optional().describe(`Filters applied to lookup dialogs (e.g. "active = true")`),writeRequiresMasterRead:z().optional().describe(`If true, user needs read access to master record to edit this field`),deleteBehavior:K([`set_null`,`cascade`,`restrict`]).optional().default(`set_null`).describe(`What happens if referenced record is deleted`),expression:I().optional().describe(`Formula expression`),summaryOperations:U({object:I().describe(`Source child object name for roll-up`),field:I().describe(`Field on child object to aggregate`),function:K([`count`,`sum`,`min`,`max`,`avg`]).describe(`Aggregation function to apply`)}).optional().describe(`Roll-up summary definition`),language:I().optional().describe(`Programming language for syntax highlighting (e.g., javascript, python, sql)`),theme:I().optional().describe(`Code editor theme (e.g., dark, light, monokai)`),lineNumbers:z().optional().describe(`Show line numbers in code editor`),maxRating:R().optional().describe(`Maximum rating value (default: 5)`),allowHalf:z().optional().describe(`Allow half-star ratings`),displayMap:z().optional().describe(`Display map widget for location field`),allowGeocoding:z().optional().describe(`Allow address-to-coordinate conversion`),addressFormat:K([`us`,`uk`,`international`]).optional().describe(`Address format template`),colorFormat:K([`hex`,`rgb`,`rgba`,`hsl`]).optional().describe(`Color value format`),allowAlpha:z().optional().describe(`Allow transparency/alpha channel`),presetColors:H(I()).optional().describe(`Preset color options`),step:R().optional().describe(`Step increment for slider (default: 1)`),showValue:z().optional().describe(`Display current value on slider`),marks:G(I(),I()).optional().describe(`Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})`),barcodeFormat:K([`qr`,`ean13`,`ean8`,`code128`,`code39`,`upca`,`upce`]).optional().describe(`Barcode format type`),qrErrorCorrection:K([`L`,`M`,`Q`,`H`]).optional().describe(`QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"`),displayValue:z().optional().describe(`Display human-readable value below barcode/QR code`),allowScanning:z().optional().describe(`Enable camera scanning for barcode/QR code input`),currencyConfig:uc.optional().describe(`Configuration for currency field type`),vectorConfig:dc.optional().describe(`Configuration for vector field type (AI/ML embeddings)`),fileAttachmentConfig:fc.optional().describe(`Configuration for file and attachment field types`),encryptionConfig:ac.optional().describe(`Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)`),maskingRule:sc.optional().describe(`Data masking rules for PII protection`),auditTrail:z().default(!1).describe(`Enable detailed audit trail for this field (tracks all changes with user and timestamp)`),dependencies:H(I()).optional().describe(`Array of field names that this field depends on (for formulas, visibility rules, etc.)`),cached:mc.optional().describe(`Caching configuration for computed/formula fields`),dataQuality:pc.optional().describe(`Data quality validation and monitoring rules`),group:I().optional().describe(`Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")`),conditionalRequired:I().optional().describe(`Formula expression that makes this field required when TRUE (e.g., "status = 'closed_won'")`),hidden:z().default(!1).describe(`Hidden from default UI`),readonly:z().default(!1).describe(`Read-only in UI`),sortable:z().optional().default(!0).describe(`Whether field is sortable in list views`),inlineHelpText:I().optional().describe(`Help text displayed below the field in forms`),trackFeedHistory:z().optional().describe(`Track field changes in Chatter/activity feed (Salesforce pattern)`),caseSensitive:z().optional().describe(`Whether text comparisons are case-sensitive`),autonumberFormat:I().optional().describe(`Auto-number display format pattern (e.g., "CASE-{0000}")`),index:z().default(!1).describe(`Create standard database index`),externalId:z().default(!1).describe(`Is external ID for upsert operations`)}),gc=U({name:I(),label:J,type:cc,required:z().default(!1),options:H(U({label:J,value:I()})).optional()}),_c=K([`script`,`url`,`modal`,`flow`,`api`]),vc=new Set(_c.options.filter(e=>e!==`script`));U({name:X.describe(`Machine name (lowercase snake_case)`),label:J.describe(`Display label`),objectName:I().regex(/^[a-z_][a-z0-9_]*$/).optional().describe(`Target object this action belongs to. When set, the action is auto-merged into the object's actions array by defineStack().`),icon:I().optional().describe(`Icon name`),locations:H(K([`list_toolbar`,`list_item`,`record_header`,`record_more`,`record_related`,`global_nav`])).optional().describe(`Locations where this action is visible`),component:K([`action:button`,`action:icon`,`action:menu`,`action:group`]).optional().describe(`Visual component override`),type:_c.default(`script`).describe(`Action functionality type`),target:I().optional().describe(`URL, Script Name, Flow ID, or API Endpoint`),execute:I().optional().describe(`@deprecated — Use target instead. Auto-migrated to target during parsing.`),params:H(gc).optional().describe(`Input parameters required from user`),variant:K([`primary`,`secondary`,`danger`,`ghost`,`link`]).optional().describe(`Button visual variant for styling (primary = highlighted, danger = destructive, ghost = transparent)`),confirmText:J.optional().describe(`Confirmation message before execution`),successMessage:J.optional().describe(`Success message to show after execution`),refreshAfter:z().default(!1).describe(`Refresh view after execution`),visible:I().optional().describe(`Formula returning boolean`),disabled:W([z(),I()]).optional().describe(`Whether the action is disabled, or a condition expression string`),shortcut:I().optional().describe(`Keyboard shortcut to trigger this action (e.g., "Ctrl+S")`),bulkEnabled:z().optional().describe(`Whether this action can be applied to multiple selected records`),timeout:R().optional().describe(`Maximum execution time in milliseconds for the action`),aria:Y.optional().describe(`ARIA accessibility attributes`)}).transform(e=>e.execute&&!e.target?{...e,target:e.execute}:e).refine(e=>!(vc.has(e.type)&&!e.target),{message:`Action 'target' is required when type is 'url', 'flow', 'modal', or 'api'.`,path:[`target`]}),K([`count`,`sum`,`avg`,`min`,`max`,`count_distinct`,`percentile`,`median`,`stddev`,`variance`]).describe(`Standard aggregation functions`);var yc=K([`asc`,`desc`]).describe(`Sort order direction`),bc=U({field:I().describe(`Field name to sort by`),order:yc.describe(`Sort direction`)}).describe(`Sort field and direction pair`);K([`insert`,`update`,`delete`,`upsert`]).describe(`Data mutation event types`),K([`read_uncommitted`,`read_committed`,`repeatable_read`,`serializable`,`snapshot`]).describe(`Transaction isolation levels (snake_case standard)`),K([`lru`,`lfu`,`ttl`,`fifo`]).describe(`Cache eviction strategy`);var xc=U({name:I().describe(`Region name (e.g. "sidebar", "main", "header")`),width:K([`small`,`medium`,`large`,`full`]).optional(),components:H(No(()=>wc)).describe(`Components in this region`)}),Sc=K(`page:header.page:footer.page:sidebar.page:tabs.page:accordion.page:card.page:section.record:details.record:highlights.record:related_list.record:activity.record:chatter.record:path.app:launcher.nav:menu.nav:breadcrumb.global:search.global:notifications.user:profile.ai:chat_window.ai:suggestion.element:text.element:number.element:image.element:divider.element:button.element:filter.element:form.element:record_picker`.split(`.`)),Cc=U({object:I().describe(`Object to query`),view:I().optional().describe(`Named view to apply`),filter:Q.optional().describe(`Additional filter criteria`),sort:H(bc).optional().describe(`Sort order`),limit:R().int().positive().optional().describe(`Max records to display`)}),wc=U({type:W([Sc,I()]).describe(`Component Type (Standard enum or custom string)`),id:I().optional().describe(`Unique instance ID`),label:J.optional(),properties:G(I(),B()).describe(`Component props passed to the widget. See component.zod.ts for schemas.`),events:G(I(),I()).optional().describe(`Event handlers map`),style:G(I(),I()).optional().describe(`Inline styles or utility classes`),className:I().optional().describe(`CSS class names`),visibility:I().optional().describe(`Visibility filter/formula`),dataSource:Cc.optional().describe(`Per-element data binding for multi-object pages`),responsive:Qo.optional().describe(`Responsive layout configuration`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),Tc=U({name:I().describe(`Variable name`),type:K([`string`,`number`,`boolean`,`object`,`array`,`record_id`]).default(`string`),defaultValue:B().optional(),source:I().optional().describe(`Component ID that writes to this variable`)}),Ec=U({componentId:I().describe(`Reference to a PageComponent.id in the page`),x:R().int().min(0).describe(`Grid column position (0-based)`),y:R().int().min(0).describe(`Grid row position (0-based)`),width:R().int().min(1).describe(`Width in grid columns`),height:R().int().min(1).describe(`Height in grid rows`)}),Dc=U({columns:R().int().min(1).default(12).describe(`Number of grid columns`),rowHeight:R().int().min(1).default(40).describe(`Height of each grid row in pixels`),gap:R().int().min(0).default(8).describe(`Gap between grid items in pixels`),items:H(Ec).describe(`Positioned components on the canvas`)}),Oc=K([`record`,`home`,`app`,`utility`,`dashboard`,`grid`,`list`,`gallery`,`kanban`,`calendar`,`timeline`,`form`,`record_detail`,`record_review`,`overview`,`blank`]).describe(`Page type — platform or interface page types`),kc=U({object:I().describe(`Target object for review`),filter:Q.optional().describe(`Filter criteria for review queue`),sort:H(bc).optional().describe(`Sort order for review queue`),displayFields:H(I()).optional().describe(`Fields to display on the review page`),actions:H(U({label:I().describe(`Action button label`),type:K([`approve`,`reject`,`skip`,`custom`]).describe(`Action type`),field:I().optional().describe(`Field to update on action`),value:W([I(),R(),z()]).optional().describe(`Value to set on action`),nextRecord:z().optional().default(!0).describe(`Auto-advance to next record after action`)})).describe(`Review actions`),navigation:K([`sequential`,`random`,`filtered`]).optional().default(`sequential`).describe(`Record navigation mode`),showProgress:z().optional().default(!0).describe(`Show review progress indicator`)}),Ac=U({source:I().optional().describe(`Source object name for the page`),levels:R().int().min(1).optional().describe(`Number of hierarchy levels to display`),filterBy:H(vs).optional().describe(`Page-level filter criteria`),appearance:js.optional().describe(`Appearance and visualization configuration`),userFilters:U({elements:H(K([`grid`,`gallery`,`kanban`])).optional().describe(`Visualization element types available in user filter bar`),tabs:H(Ms).optional().describe(`User-configurable tabs`)}).optional().describe(`User filter configuration`),userActions:As.optional().describe(`User action toggles`),addRecord:Ns.optional().describe(`Add record entry point configuration`),showRecordCount:z().optional().describe(`Show record count at page bottom`),allowPrinting:z().optional().describe(`Allow users to print the page`)}).describe(`Interface-level page configuration (Airtable parity)`);U({name:X.describe(`Page unique name (lowercase snake_case)`),label:J,description:J.optional(),icon:I().optional().describe(`Page icon name`),type:Oc.default(`record`).describe(`Page type`),variables:H(Tc).optional().describe(`Local page state variables`),object:I().optional().describe(`Bound object (for Record pages)`),recordReview:kc.optional().describe(`Record review configuration (required when type is "record_review")`),blankLayout:Dc.optional().describe(`Free-form grid layout for blank pages (used when type is "blank")`),template:I().default(`default`).describe(`Layout template name (e.g. "header-sidebar-main")`),regions:H(xc).describe(`Defined regions with components`),isDefault:z().default(!1),assignedProfiles:H(I()).optional(),interfaceConfig:Ac.optional().describe(`Interface-level page configuration (for Airtable-style interface pages)`),aria:Y.optional().describe(`ARIA accessibility attributes`)}).superRefine((e,t)=>{e.type===`record_review`&&!e.recordReview&&t.addIssue({code:zo.custom,path:[`recordReview`],message:`recordReview is required when type is "record_review"`}),e.type===`blank`&&!e.blankLayout&&t.addIssue({code:zo.custom,path:[`blankLayout`],message:`blankLayout is required when type is "blank"`})});var jc=U({onMount:I().optional().describe(`Initialization code when widget mounts`),onUpdate:I().optional().describe(`Code to run when props change`),onUnmount:I().optional().describe(`Cleanup code when widget unmounts`),onValidate:I().optional().describe(`Custom validation logic`),onFocus:I().optional().describe(`Code to run on focus`),onBlur:I().optional().describe(`Code to run on blur`),onError:I().optional().describe(`Error handling code`)}),Mc=U({name:I().describe(`Event name`),label:J.optional().describe(`Human-readable event label`),description:J.optional().describe(`Event description and usage`),bubbles:z().default(!1).describe(`Whether event bubbles`),cancelable:z().default(!1).describe(`Whether event is cancelable`),payload:G(I(),B()).optional().describe(`Event payload schema`)}),Nc=U({name:I().describe(`Property name (camelCase)`),label:J.optional().describe(`Human-readable label`),type:K([`string`,`number`,`boolean`,`array`,`object`,`function`,`any`]).describe(`TypeScript type`),required:z().default(!1).describe(`Whether property is required`),default:B().optional().describe(`Default value`),description:J.optional().describe(`Property description`),validation:G(I(),B()).optional().describe(`Validation rules`),category:I().optional().describe(`Property category`)}),Pc=ro(`type`,[U({type:q(`npm`),packageName:I().describe(`NPM package name`),version:I().default(`latest`),exportName:I().optional().describe(`Named export (default: default)`)}),U({type:q(`remote`),url:I().url().describe(`Remote entry URL (.js)`),moduleName:I().describe(`Exposed module name`),scope:I().describe(`Remote scope name`)}),U({type:q(`inline`),code:I().describe(`JavaScript code body`)})]);U({name:X.describe(`Widget identifier (snake_case)`),label:J.describe(`Widget display name`),description:J.optional().describe(`Widget description`),version:I().optional().describe(`Widget version (semver)`),author:I().optional().describe(`Widget author`),icon:I().optional().describe(`Widget icon`),fieldTypes:H(I()).optional().describe(`Supported field types`),category:K([`input`,`display`,`picker`,`editor`,`custom`]).default(`custom`).describe(`Widget category`),lifecycle:jc.optional().describe(`Lifecycle hooks`),events:H(Mc).optional().describe(`Custom events`),properties:H(Nc).optional().describe(`Configuration properties`),implementation:Pc.optional().describe(`Widget implementation source`),dependencies:H(U({name:I(),version:I().optional(),url:I().url().optional()})).optional().describe(`Widget dependencies`),screenshots:H(I().url()).optional().describe(`Screenshot URLs`),documentation:I().url().optional().describe(`Documentation URL`),license:I().optional().describe(`License (SPDX identifier)`),tags:H(I()).optional().describe(`Tags for categorization`),aria:Y.optional().describe(`ARIA accessibility attributes`),performance:$o.optional().describe(`Performance optimization settings`)}),U({value:B().describe(`Current field value`),onChange:Fo().input(so([B()])).output(Za()).describe(`Callback to update field value`),readonly:z().default(!1).describe(`Read-only mode flag`),required:z().default(!1).describe(`Required field flag`),error:I().optional().describe(`Validation error message`),field:hc.describe(`Field schema definition`),record:G(I(),B()).optional().describe(`Complete record data`),options:G(I(),B()).optional().describe(`Custom widget options`)});var Fc=K([`comment`,`field_change`,`task`,`event`,`email`,`call`,`note`,`file`,`record_create`,`record_delete`,`approval`,`sharing`,`system`]),Ic=U({type:K([`user`,`team`,`record`]).describe(`Mention target type`),id:I().describe(`Target ID`),name:I().describe(`Display name for rendering`),offset:R().int().min(0).describe(`Character offset in body text`),length:R().int().min(1).describe(`Length of mention token in body text`)}),Lc=U({field:I().describe(`Field machine name`),fieldLabel:I().optional().describe(`Field display label`),oldValue:B().optional().describe(`Previous value`),newValue:B().optional().describe(`New value`),oldDisplayValue:I().optional().describe(`Human-readable old value`),newDisplayValue:I().optional().describe(`Human-readable new value`)}),Rc=U({emoji:I().describe(`Emoji character or shortcode (e.g., "👍", ":thumbsup:")`),userIds:H(I()).describe(`Users who reacted`),count:R().int().min(1).describe(`Total reaction count`)}),zc=U({type:K([`user`,`system`,`service`,`automation`]).describe(`Actor type`),id:I().describe(`Actor ID`),name:I().optional().describe(`Actor display name`),avatarUrl:I().url().optional().describe(`Actor avatar URL`),source:I().optional().describe(`Source application (e.g., "Omni", "API", "Studio")`)}),Bc=K([`public`,`internal`,`private`]);U({id:I().describe(`Feed item ID`),type:Fc.describe(`Activity type`),object:I().describe(`Object name (e.g., "account")`),recordId:I().describe(`Record ID this feed item belongs to`),actor:zc.describe(`Who performed this action`),body:I().optional().describe(`Rich text body (Markdown supported)`),mentions:H(Ic).optional().describe(`Mentioned users/teams/records`),changes:H(Lc).optional().describe(`Field-level changes`),reactions:H(Rc).optional().describe(`Emoji reactions on this item`),parentId:I().optional().describe(`Parent feed item ID for threaded replies`),replyCount:R().int().min(0).default(0).describe(`Number of replies`),pinned:z().default(!1).describe(`Whether the feed item is pinned to the top of the timeline`),pinnedAt:I().datetime().optional().describe(`Timestamp when the item was pinned`),pinnedBy:I().optional().describe(`User ID who pinned the item`),starred:z().default(!1).describe(`Whether the feed item is starred/bookmarked by the current user`),starredAt:I().datetime().optional().describe(`Timestamp when the item was starred`),visibility:Bc.default(`public`).describe(`Visibility: public (all users), internal (team only), private (author + mentioned)`),createdAt:I().datetime().describe(`Creation timestamp`),updatedAt:I().datetime().optional().describe(`Last update timestamp`),editedAt:I().datetime().optional().describe(`When comment was last edited`),isEdited:z().default(!1).describe(`Whether comment has been edited`)});var Vc=K([`all`,`comments_only`,`changes_only`,`tasks_only`]);U({}),U({title:J.describe(`Page title`),subtitle:J.optional().describe(`Page subtitle`),icon:I().optional().describe(`Icon name`),breadcrumb:z().default(!0).describe(`Show breadcrumb`),actions:H(I()).optional().describe(`Action IDs to show in header`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({type:K([`line`,`card`,`pill`]).default(`line`),position:K([`top`,`left`]).default(`top`),items:H(U({label:J,icon:I().optional(),children:H(B()).describe(`Child components`)})),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({title:J.optional(),bordered:z().default(!0),actions:H(I()).optional(),body:H(B()).optional().describe(`Card content components (slot)`),footer:H(B()).optional().describe(`Card footer components (slot)`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({columns:K([`1`,`2`,`3`,`4`]).default(`2`).describe(`Number of columns for field layout (1-4)`),layout:K([`auto`,`custom`]).default(`auto`).describe(`Layout mode: auto uses object compactLayout, custom uses explicit sections`),sections:H(I()).optional().describe(`Section IDs to show (required when layout is "custom")`),fields:H(I()).optional().describe(`Explicit field list to display (optional, overrides compactLayout)`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({objectName:I().describe(`Related object name (e.g., "task", "opportunity")`),relationshipField:I().describe(`Field on related object that points to this record (e.g., "account_id")`),columns:H(I()).describe(`Fields to display in the related list`),sort:W([I(),H(U({field:I(),order:K([`asc`,`desc`])}))]).optional().describe(`Sort order for related records`),limit:R().int().positive().default(5).describe(`Number of records to display initially`),filter:H(vs).optional().describe(`Additional filter criteria for related records`),title:J.optional().describe(`Custom title for the related list`),showViewAll:z().default(!0).describe(`Show "View All" link to see all related records`),actions:H(I()).optional().describe(`Action IDs available for related records`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({fields:H(I()).min(1).max(7).describe(`Key fields to highlight (1-7 fields max, typically displayed as prominent cards)`),layout:K([`horizontal`,`vertical`]).default(`horizontal`).describe(`Layout orientation for highlight fields`),aria:Y.optional().describe(`ARIA accessibility attributes`)});var Hc=U({types:H(Fc).optional().describe(`Feed item types to show (default: all)`),filterMode:Vc.default(`all`).describe(`Default activity filter`),showFilterToggle:z().default(!0).describe(`Show filter dropdown in panel header`),limit:R().int().positive().default(20).describe(`Number of items to load per page`),showCompleted:z().default(!1).describe(`Include completed activities`),unifiedTimeline:z().default(!0).describe(`Mix field changes and comments in one timeline (Airtable style)`),showCommentInput:z().default(!0).describe(`Show "Leave a comment" input at the bottom`),enableMentions:z().default(!0).describe(`Enable @mentions in comments`),enableReactions:z().default(!1).describe(`Enable emoji reactions on feed items`),enableThreading:z().default(!1).describe(`Enable threaded replies on comments`),showSubscriptionToggle:z().default(!0).describe(`Show bell icon for record-level notification subscription`),aria:Y.optional().describe(`ARIA accessibility attributes`)});U({position:K([`sidebar`,`inline`,`drawer`]).default(`sidebar`).describe(`Where to render the chatter panel`),width:W([I(),R()]).optional().describe(`Panel width (e.g., "350px", "30%")`),collapsible:z().default(!0).describe(`Whether the panel can be collapsed`),defaultCollapsed:z().default(!1).describe(`Whether the panel starts collapsed`),feed:Hc.optional().describe(`Embedded activity feed configuration`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({statusField:I().describe(`Field name representing the current status/stage`),stages:H(U({value:I(),label:J})).optional().describe(`Explicit stage definitions (if not using field metadata)`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({items:H(U({label:J,icon:I().optional(),collapsed:z().default(!1),children:H(B()).describe(`Child components`)})),allowMultiple:z().default(!1).describe(`Allow multiple panels to be expanded simultaneously`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({mode:K([`float`,`sidebar`,`inline`]).default(`float`).describe(`Display mode for the chat window`),agentId:I().optional().describe(`Specific AI agent to use`),context:G(I(),B()).optional().describe(`Contextual data to pass to the AI`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({content:I().describe(`Text or Markdown content`),variant:K([`heading`,`subheading`,`body`,`caption`]).optional().default(`body`).describe(`Text style variant`),align:K([`left`,`center`,`right`]).optional().default(`left`).describe(`Text alignment`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({object:I().describe(`Source object`),field:I().optional().describe(`Field to aggregate`),aggregate:K([`count`,`sum`,`avg`,`min`,`max`]).describe(`Aggregation function`),filter:Q.optional().describe(`Filter criteria`),format:K([`number`,`currency`,`percent`]).optional().describe(`Number display format`),prefix:I().optional().describe(`Prefix text (e.g. "$")`),suffix:I().optional().describe(`Suffix text (e.g. "%")`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({src:I().describe(`Image URL or attachment field`),alt:I().optional().describe(`Alt text for accessibility`),fit:K([`cover`,`contain`,`fill`]).optional().default(`cover`).describe(`Image object-fit mode`),height:R().optional().describe(`Fixed height in pixels`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({label:J.describe(`Button display label`),variant:K([`primary`,`secondary`,`danger`,`ghost`,`link`]).optional().default(`primary`).describe(`Button visual variant`),size:K([`small`,`medium`,`large`]).optional().default(`medium`).describe(`Button size`),icon:I().optional().describe(`Icon name (Lucide icon)`),iconPosition:K([`left`,`right`]).optional().default(`left`).describe(`Icon position relative to label`),disabled:z().optional().default(!1).describe(`Disable the button`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({object:I().describe(`Object to filter`),fields:H(I()).describe(`Filterable field names`),targetVariable:I().optional().describe(`Page variable to store filter state`),layout:K([`inline`,`dropdown`,`sidebar`]).optional().default(`inline`).describe(`Filter display layout`),showSearch:z().optional().default(!0).describe(`Show search input`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({object:I().describe(`Object for the form`),fields:H(I()).optional().describe(`Fields to display (defaults to all editable fields)`),mode:K([`create`,`edit`]).optional().default(`create`).describe(`Form mode`),submitLabel:J.optional().describe(`Submit button label`),onSubmit:I().optional().describe(`Action expression on form submit`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({object:I().describe(`Object to pick records from`),displayField:I().describe(`Field to display as the record label`),searchFields:H(I()).optional().describe(`Fields to search against`),filter:Q.optional().describe(`Filter criteria for available records`),multiple:z().optional().default(!1).describe(`Allow multiple record selection`),targetVariable:I().optional().describe(`Page variable to bind selected record ID(s)`),placeholder:J.optional().describe(`Placeholder text`),aria:Y.optional().describe(`ARIA accessibility attributes`)}),U({context:I().optional()});var Uc=U({minWidth:R().default(44).describe(`Minimum touch target width in pixels (WCAG 2.5.5: 44px)`),minHeight:R().default(44).describe(`Minimum touch target height in pixels (WCAG 2.5.5: 44px)`),padding:R().optional().describe(`Additional padding around touch target in pixels`),hitSlop:U({top:R().optional().describe(`Extra hit area above the element`),right:R().optional().describe(`Extra hit area to the right of the element`),bottom:R().optional().describe(`Extra hit area below the element`),left:R().optional().describe(`Extra hit area to the left of the element`)}).optional().describe(`Invisible hit area extension beyond the visible bounds`)}).describe(`Touch target sizing configuration (WCAG accessible)`),Wc=K([`swipe`,`pinch`,`long_press`,`double_tap`,`drag`,`rotate`,`pan`]).describe(`Touch gesture type`),Gc=U({direction:H(K([`up`,`down`,`left`,`right`])).describe(`Allowed swipe directions`),threshold:R().optional().describe(`Minimum distance in pixels to recognize swipe`),velocity:R().optional().describe(`Minimum velocity (px/ms) to trigger swipe`)}).describe(`Swipe gesture recognition settings`),Kc=U({minScale:R().optional().describe(`Minimum scale factor (e.g., 0.5 for 50%)`),maxScale:R().optional().describe(`Maximum scale factor (e.g., 3.0 for 300%)`)}).describe(`Pinch/zoom gesture recognition settings`),qc=U({duration:R().default(500).describe(`Hold duration in milliseconds to trigger long press`),moveTolerance:R().optional().describe(`Max movement in pixels allowed during press`)}).describe(`Long press gesture recognition settings`);U({gestures:H(U({type:Wc.describe(`Gesture type to configure`),label:J.optional().describe(`Descriptive label for the gesture action`),enabled:z().default(!0).describe(`Whether this gesture is active`),swipe:Gc.optional().describe(`Swipe gesture settings (when type is swipe)`),pinch:Kc.optional().describe(`Pinch gesture settings (when type is pinch)`),longPress:qc.optional().describe(`Long press settings (when type is long_press)`)}).describe(`Per-gesture configuration`)).optional().describe(`Configured gesture recognizers`),touchTarget:Uc.optional().describe(`Touch target sizing and hit area`),hapticFeedback:z().optional().describe(`Enable haptic feedback on touch interactions`)}).merge(Y.partial()).describe(`Touch and gesture interaction configuration`);var Jc=U({enabled:z().default(!1).describe(`Enable focus trapping within this container`),initialFocus:I().optional().describe(`CSS selector for the element to focus on activation`),returnFocus:z().default(!0).describe(`Return focus to trigger element on deactivation`),escapeDeactivates:z().default(!0).describe(`Allow Escape key to deactivate the focus trap`)}).describe(`Focus trap configuration for modal-like containers`),Yc=U({key:I().describe(`Key combination (e.g., "Ctrl+S", "Alt+N", "Escape")`),action:I().describe(`Action identifier to invoke when shortcut is triggered`),description:J.optional().describe(`Human-readable description of what the shortcut does`),scope:K([`global`,`view`,`form`,`modal`,`list`]).default(`global`).describe(`Scope in which this shortcut is active`)}).describe(`Keyboard shortcut binding`),Xc=U({tabOrder:K([`auto`,`manual`]).default(`auto`).describe(`Tab order strategy: auto (DOM order) or manual (explicit tabIndex)`),skipLinks:z().default(!1).describe(`Provide skip-to-content navigation links`),focusVisible:z().default(!0).describe(`Show visible focus indicators for keyboard users`),focusTrap:Jc.optional().describe(`Focus trap settings`),arrowNavigation:z().default(!1).describe(`Enable arrow key navigation between focusable items`)}).describe(`Focus and tab navigation management`);U({shortcuts:H(Yc).optional().describe(`Registered keyboard shortcuts`),focusManagement:Xc.optional().describe(`Focus and tab order management`),rovingTabindex:z().default(!1).describe(`Enable roving tabindex pattern for composite widgets`)}).merge(Y.partial()).describe(`Keyboard navigation and shortcut configuration`);var Zc=U({primary:I().describe(`Primary brand color (hex, rgb, or hsl)`),secondary:I().optional().describe(`Secondary brand color`),accent:I().optional().describe(`Accent color for highlights`),success:I().optional().describe(`Success state color (default: green)`),warning:I().optional().describe(`Warning state color (default: yellow)`),error:I().optional().describe(`Error state color (default: red)`),info:I().optional().describe(`Info state color (default: blue)`),background:I().optional().describe(`Background color`),surface:I().optional().describe(`Surface/card background color`),text:I().optional().describe(`Primary text color`),textSecondary:I().optional().describe(`Secondary text color`),border:I().optional().describe(`Border color`),disabled:I().optional().describe(`Disabled state color`),primaryLight:I().optional().describe(`Lighter shade of primary`),primaryDark:I().optional().describe(`Darker shade of primary`),secondaryLight:I().optional().describe(`Lighter shade of secondary`),secondaryDark:I().optional().describe(`Darker shade of secondary`)}),Qc=U({fontFamily:U({base:I().optional().describe(`Base font family (default: system fonts)`),heading:I().optional().describe(`Heading font family`),mono:I().optional().describe(`Monospace font family for code`)}).optional(),fontSize:U({xs:I().optional().describe(`Extra small font size (e.g., 0.75rem)`),sm:I().optional().describe(`Small font size (e.g., 0.875rem)`),base:I().optional().describe(`Base font size (e.g., 1rem)`),lg:I().optional().describe(`Large font size (e.g., 1.125rem)`),xl:I().optional().describe(`Extra large font size (e.g., 1.25rem)`),"2xl":I().optional().describe(`2X large font size (e.g., 1.5rem)`),"3xl":I().optional().describe(`3X large font size (e.g., 1.875rem)`),"4xl":I().optional().describe(`4X large font size (e.g., 2.25rem)`)}).optional(),fontWeight:U({light:R().optional().describe(`Light weight (default: 300)`),normal:R().optional().describe(`Normal weight (default: 400)`),medium:R().optional().describe(`Medium weight (default: 500)`),semibold:R().optional().describe(`Semibold weight (default: 600)`),bold:R().optional().describe(`Bold weight (default: 700)`)}).optional(),lineHeight:U({tight:I().optional().describe(`Tight line height (e.g., 1.25)`),normal:I().optional().describe(`Normal line height (e.g., 1.5)`),relaxed:I().optional().describe(`Relaxed line height (e.g., 1.75)`),loose:I().optional().describe(`Loose line height (e.g., 2)`)}).optional(),letterSpacing:U({tighter:I().optional().describe(`Tighter letter spacing (e.g., -0.05em)`),tight:I().optional().describe(`Tight letter spacing (e.g., -0.025em)`),normal:I().optional().describe(`Normal letter spacing (e.g., 0)`),wide:I().optional().describe(`Wide letter spacing (e.g., 0.025em)`),wider:I().optional().describe(`Wider letter spacing (e.g., 0.05em)`)}).optional()}),$c=U({0:I().optional().describe(`0 spacing (0)`),1:I().optional().describe(`Spacing unit 1 (e.g., 0.25rem)`),2:I().optional().describe(`Spacing unit 2 (e.g., 0.5rem)`),3:I().optional().describe(`Spacing unit 3 (e.g., 0.75rem)`),4:I().optional().describe(`Spacing unit 4 (e.g., 1rem)`),5:I().optional().describe(`Spacing unit 5 (e.g., 1.25rem)`),6:I().optional().describe(`Spacing unit 6 (e.g., 1.5rem)`),8:I().optional().describe(`Spacing unit 8 (e.g., 2rem)`),10:I().optional().describe(`Spacing unit 10 (e.g., 2.5rem)`),12:I().optional().describe(`Spacing unit 12 (e.g., 3rem)`),16:I().optional().describe(`Spacing unit 16 (e.g., 4rem)`),20:I().optional().describe(`Spacing unit 20 (e.g., 5rem)`),24:I().optional().describe(`Spacing unit 24 (e.g., 6rem)`)}),el=U({none:I().optional().describe(`No border radius (0)`),sm:I().optional().describe(`Small border radius (e.g., 0.125rem)`),base:I().optional().describe(`Base border radius (e.g., 0.25rem)`),md:I().optional().describe(`Medium border radius (e.g., 0.375rem)`),lg:I().optional().describe(`Large border radius (e.g., 0.5rem)`),xl:I().optional().describe(`Extra large border radius (e.g., 0.75rem)`),"2xl":I().optional().describe(`2X large border radius (e.g., 1rem)`),full:I().optional().describe(`Full border radius (50%)`)}),tl=U({none:I().optional().describe(`No shadow`),sm:I().optional().describe(`Small shadow`),base:I().optional().describe(`Base shadow`),md:I().optional().describe(`Medium shadow`),lg:I().optional().describe(`Large shadow`),xl:I().optional().describe(`Extra large shadow`),"2xl":I().optional().describe(`2X large shadow`),inner:I().optional().describe(`Inner shadow (inset)`)}),nl=U({xs:I().optional().describe(`Extra small breakpoint (e.g., 480px)`),sm:I().optional().describe(`Small breakpoint (e.g., 640px)`),md:I().optional().describe(`Medium breakpoint (e.g., 768px)`),lg:I().optional().describe(`Large breakpoint (e.g., 1024px)`),xl:I().optional().describe(`Extra large breakpoint (e.g., 1280px)`),"2xl":I().optional().describe(`2X large breakpoint (e.g., 1536px)`)}),rl=U({duration:U({fast:I().optional().describe(`Fast animation (e.g., 150ms)`),base:I().optional().describe(`Base animation (e.g., 300ms)`),slow:I().optional().describe(`Slow animation (e.g., 500ms)`)}).optional(),timing:U({linear:I().optional().describe(`Linear timing function`),ease:I().optional().describe(`Ease timing function`),ease_in:I().optional().describe(`Ease-in timing function`),ease_out:I().optional().describe(`Ease-out timing function`),ease_in_out:I().optional().describe(`Ease-in-out timing function`)}).optional()}),il=U({base:R().optional().describe(`Base z-index (e.g., 0)`),dropdown:R().optional().describe(`Dropdown z-index (e.g., 1000)`),sticky:R().optional().describe(`Sticky z-index (e.g., 1020)`),fixed:R().optional().describe(`Fixed z-index (e.g., 1030)`),modalBackdrop:R().optional().describe(`Modal backdrop z-index (e.g., 1040)`),modal:R().optional().describe(`Modal z-index (e.g., 1050)`),popover:R().optional().describe(`Popover z-index (e.g., 1060)`),tooltip:R().optional().describe(`Tooltip z-index (e.g., 1070)`)}),al=K([`light`,`dark`,`auto`]),ol=K([`compact`,`regular`,`spacious`]),sl=K([`AA`,`AAA`]);U({name:X.describe(`Unique theme identifier (snake_case)`),label:I().describe(`Human-readable theme name`),description:I().optional().describe(`Theme description`),mode:al.default(`light`).describe(`Theme mode (light, dark, or auto)`),colors:Zc.describe(`Color palette configuration`),typography:Qc.optional().describe(`Typography settings`),spacing:$c.optional().describe(`Spacing scale`),borderRadius:el.optional().describe(`Border radius scale`),shadows:tl.optional().describe(`Box shadow effects`),breakpoints:nl.optional().describe(`Responsive breakpoints`),animation:rl.optional().describe(`Animation settings`),zIndex:il.optional().describe(`Z-index scale for layering`),customVars:G(I(),I()).optional().describe(`Custom CSS variables (key-value pairs)`),logo:U({light:I().optional().describe(`Logo URL for light mode`),dark:I().optional().describe(`Logo URL for dark mode`),favicon:I().optional().describe(`Favicon URL`)}).optional().describe(`Logo assets`),extends:I().optional().describe(`Base theme to extend from`),density:ol.optional().describe(`Display density: compact, regular, or spacious`),wcagContrast:sl.optional().describe(`WCAG color contrast level (AA or AAA)`),rtl:z().optional().describe(`Enable right-to-left layout direction`),touchTarget:Uc.optional().describe(`Touch target sizing defaults`),keyboardNavigation:Xc.optional().describe(`Keyboard focus management settings`)});var cl=K([`cache_first`,`network_first`,`stale_while_revalidate`,`network_only`,`cache_only`]).describe(`Data fetching strategy for offline/online transitions`),ll=K([`client_wins`,`server_wins`,`manual`,`last_write_wins`]).describe(`How to resolve conflicts when syncing offline changes`),ul=U({strategy:cl.default(`network_first`).describe(`Sync fetch strategy`),conflictResolution:ll.default(`last_write_wins`).describe(`Conflict resolution policy`),retryInterval:R().optional().describe(`Retry interval in milliseconds between sync attempts`),maxRetries:R().optional().describe(`Maximum number of sync retry attempts`),batchSize:R().optional().describe(`Number of mutations to sync per batch`)}).describe(`Offline-to-online synchronization configuration`),dl=K([`indexeddb`,`localstorage`,`sqlite`]).describe(`Client-side storage backend for offline cache`),fl=K([`lru`,`lfu`,`fifo`]).describe(`Cache eviction policy`),pl=U({maxSize:R().optional().describe(`Maximum cache size in bytes`),ttl:R().optional().describe(`Time-to-live for cached entries in milliseconds`),persistStorage:dl.default(`indexeddb`).describe(`Storage backend`),evictionPolicy:fl.default(`lru`).describe(`Cache eviction policy when full`)}).describe(`Client-side offline cache configuration`);U({enabled:z().default(!1).describe(`Enable offline support`),strategy:cl.default(`network_first`).describe(`Default offline fetch strategy`),cache:pl.optional().describe(`Cache settings for offline data`),sync:ul.optional().describe(`Sync settings for offline mutations`),offlineIndicator:z().default(!0).describe(`Show a visual indicator when offline`),offlineMessage:J.optional().describe(`Customizable offline status message shown to users`),queueMaxSize:R().optional().describe(`Maximum number of queued offline mutations`)}).describe(`Offline support configuration`);var ml=K([`fade`,`slide_up`,`slide_down`,`slide_left`,`slide_right`,`scale`,`rotate`,`flip`,`none`]).describe(`Transition preset type`),hl=K([`linear`,`ease`,`ease_in`,`ease_out`,`ease_in_out`,`spring`]).describe(`Animation easing function`),gl=U({preset:ml.optional().describe(`Transition preset to apply`),duration:R().optional().describe(`Transition duration in milliseconds`),easing:hl.optional().describe(`Easing function for the transition`),delay:R().optional().describe(`Delay before transition starts in milliseconds`),customKeyframes:I().optional().describe(`CSS @keyframes name for custom animations`),themeToken:I().optional().describe(`Reference to a theme animation token (e.g. "animation.duration.fast")`)}).describe(`Animation transition configuration`),_l=K([`on_mount`,`on_unmount`,`on_hover`,`on_focus`,`on_click`,`on_scroll`,`on_visible`]).describe(`Event that triggers the animation`),vl=U({label:J.optional().describe(`Descriptive label for this animation configuration`),enter:gl.optional().describe(`Enter/mount animation`),exit:gl.optional().describe(`Exit/unmount animation`),hover:gl.optional().describe(`Hover state animation`),trigger:_l.optional().describe(`When to trigger the animation`),reducedMotion:K([`respect`,`disable`,`alternative`]).default(`respect`).describe(`Accessibility: how to handle prefers-reduced-motion`)}).merge(Y.partial()).describe(`Component-level animation configuration`),yl=U({type:ml.default(`fade`).describe(`Page transition type`),duration:R().default(300).describe(`Transition duration in milliseconds`),easing:hl.default(`ease_in_out`).describe(`Easing function for the transition`),crossFade:z().default(!1).describe(`Whether to cross-fade between pages`)}).describe(`Page-level transition configuration`);U({label:J.optional().describe(`Descriptive label for the motion configuration`),defaultTransition:gl.optional().describe(`Default transition applied to all animations`),pageTransitions:yl.optional().describe(`Page navigation transition settings`),componentAnimations:G(I(),vl).optional().describe(`Component name to animation configuration mapping`),reducedMotion:z().default(!1).describe(`When true, respect prefers-reduced-motion and suppress animations globally`),enabled:z().default(!0).describe(`Enable or disable all animations globally`)}).describe(`Top-level motion and animation design configuration`);var bl=K([`toast`,`snackbar`,`banner`,`alert`,`inline`]).describe(`Notification presentation style`),xl=K([`info`,`success`,`warning`,`error`]).describe(`Notification severity level`),Sl=K([`top_left`,`top_center`,`top_right`,`bottom_left`,`bottom_center`,`bottom_right`]).describe(`Screen position for notification placement`),Cl=U({label:J.describe(`Action button label`),action:I().describe(`Action identifier to execute`),variant:K([`primary`,`secondary`,`link`]).default(`primary`).describe(`Button variant style`)}).describe(`Notification action button`);U({type:bl.default(`toast`).describe(`Notification presentation style`),severity:xl.default(`info`).describe(`Notification severity level`),title:J.optional().describe(`Notification title`),message:J.describe(`Notification message body`),icon:I().optional().describe(`Icon name override`),duration:R().optional().describe(`Auto-dismiss duration in ms, omit for persistent`),dismissible:z().default(!0).describe(`Allow user to dismiss the notification`),actions:H(Cl).optional().describe(`Action buttons`),position:Sl.optional().describe(`Override default position`)}).merge(Y.partial()).describe(`Notification instance definition`),U({defaultPosition:Sl.default(`top_right`).describe(`Default screen position for notifications`),defaultDuration:R().default(5e3).describe(`Default auto-dismiss duration in ms`),maxVisible:R().default(5).describe(`Maximum number of notifications visible at once`),stackDirection:K([`up`,`down`]).default(`down`).describe(`Stack direction for multiple notifications`),pauseOnHover:z().default(!0).describe(`Pause auto-dismiss timer on hover`)}).describe(`Global notification system configuration`);var wl=K([`element`,`handle`,`grip_icon`]).describe(`Drag initiation method`),Tl=K([`move`,`copy`,`link`,`none`]).describe(`Drop operation effect`),El=U({axis:K([`x`,`y`,`both`]).default(`both`).describe(`Constrain drag axis`),bounds:K([`parent`,`viewport`,`none`]).default(`none`).describe(`Constrain within bounds`),grid:so([R(),R()]).optional().describe(`Snap to grid [x, y] in pixels`)}).describe(`Drag movement constraints`),Dl=U({label:J.optional().describe(`Accessible label for the drop zone`),accept:H(I()).describe(`Accepted drag item types`),maxItems:R().optional().describe(`Maximum items allowed in drop zone`),highlightOnDragOver:z().default(!0).describe(`Highlight drop zone when dragging over`),dropEffect:Tl.default(`move`).describe(`Visual effect on drop`)}).merge(Y.partial()).describe(`Drop zone configuration`),Ol=U({type:I().describe(`Drag item type identifier for matching with drop zones`),label:J.optional().describe(`Accessible label describing the draggable item`),handle:wl.default(`element`).describe(`How to initiate drag`),constraint:El.optional().describe(`Drag movement constraints`),preview:K([`element`,`custom`,`none`]).default(`element`).describe(`Drag preview type`),disabled:z().default(!1).describe(`Disable dragging`)}).merge(Y.partial()).describe(`Draggable item configuration`);U({enabled:z().default(!1).describe(`Enable drag and drop`),dragItem:Ol.optional().describe(`Configuration for draggable item`),dropZone:Dl.optional().describe(`Configuration for drop target`),sortable:z().default(!1).describe(`Enable sortable list behavior`),autoScroll:z().default(!0).describe(`Auto-scroll during drag near edges`),touchDelay:R().default(200).describe(`Delay in ms before drag starts on touch devices`)}).describe(`Drag and drop interaction configuration`);var kl=f((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Al=f((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===S?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case y:return`Suspense`;case ie:return`SuspenseList`;case x:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case ee:return`Portal`;case ne:return e.displayName||`Context`;case te:return(e._context.displayName||`Context`)+`.Consumer`;case re:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ae:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case b:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===g)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===b)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=oe.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(C.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){ce||(ce=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,`key`,{get:n,configurable:!0})}function l(){var e=t(this.type);return T[e]||(T[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,`ref`,{enumerable:!1,value:null}):Object.defineProperty(e,`ref`,{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,`validated`,{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,`_debugInfo`,{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,`_debugStack`,{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,`_debugTask`,{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(se(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else f(p);if(C.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,E[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
40
- let props = %s;
41
- <%s {...props} />
42
- React keys must be passed directly to JSX without using spread:
43
- let props = %s;
44
- <%s key={someKey} {...props} />`,o,p,m,p),E[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===b&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require(`react`),h=Symbol.for(`react.transitional.element`),ee=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),te=Symbol.for(`react.consumer`),ne=Symbol.for(`react.context`),re=Symbol.for(`react.forward_ref`),y=Symbol.for(`react.suspense`),ie=Symbol.for(`react.suspense_list`),ae=Symbol.for(`react.memo`),b=Symbol.for(`react.lazy`),x=Symbol.for(`react.activity`),S=Symbol.for(`react.client.reference`),oe=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,C=Object.prototype.hasOwnProperty,se=Array.isArray,w=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var ce,T={},le=m.react_stack_bottom_frame.bind(m,o)(),ue=w(i(o)),E={};e.Fragment=g,e.jsx=function(e,t,n){var r=1e4>oe.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):le,r?w(i(e)):ue)},e.jsxs=function(e,t,n){var r=1e4>oe.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):le,r?w(i(e)):ue)}})()})),$=f(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=kl():t.exports=Al()}))();function jl(e){return e<640?35:e<1024?50:60}function Ml(e){return e<640?120:e<1024?200:300}function Nl(e){return e<640?32:40}function Pl({tasks:e,viewMode:n=`month`,startDate:r,endDate:o,onTaskClick:s,onTaskUpdate:c,onViewChange:l,onAddClick:u,className:d,inlineEdit:f=!1}){let[p,m]=t.useState(new Date),h=t.useRef(null),{width:ee}=(0,i.useResizeObserver)(h),g=ee||(typeof window<`u`?window.innerWidth:1024),_=g<640,v=Nl(g),te=jl(g),[ne,re]=t.useState(null),y=ne??te,[ie,ae]=t.useState(!1),b=t.useRef(!1);t.useEffect(()=>{!b.current&&_&&(ae(!0),b.current=!0)},[_]);let x=ie?0:Ml(g),[S,oe]=t.useState(null),[C,se]=t.useState({}),w=t.useMemo(()=>{let t=r?new Date(r):new Date,n=o?new Date(o):new Date;return!r&&e.length>0&&(t=new Date(Math.min(...e.map(e=>e.start.getTime()))),t.setDate(t.getDate()-7)),!o&&e.length>0&&(n=new Date(Math.max(...e.map(e=>e.end.getTime()))),n.setDate(n.getDate()+14)),t.setHours(0,0,0,0),n.setHours(23,59,59,999),{start:t,end:n}},[r,o,e]),ce=t.useMemo(()=>{let e=[],t=new Date(w.start);for(;t<=w.end;)e.push({date:new Date(t),label:t.getDate().toString(),isWeekend:t.getDay()===0||t.getDay()===6}),t.setDate(t.getDate()+1);return e},[w]),T=t.useRef(null),le=t.useRef(null),ue=t.useRef(null),E=t.useRef(null),D=t.useRef(null),O=t.useCallback(e=>{if(e.touches.length===2){let t=e.touches[0].clientX-e.touches[1].clientX,n=e.touches[0].clientY-e.touches[1].clientY;D.current={baseDistance:Math.max(1,Math.sqrt(t*t+n*n)),baseColumn:y}}},[y]),de=t.useCallback(e=>{if(e.touches.length!==2||!D.current)return;let t=e.touches[0].clientX-e.touches[1].clientX,n=e.touches[0].clientY-e.touches[1].clientY,r=Math.max(1,Math.sqrt(t*t+n*n))/D.current.baseDistance;re(Math.max(15,Math.min(120,Math.round(D.current.baseColumn*r))))},[]),fe=t.useCallback(()=>{D.current=null},[]),pe=t.useMemo(()=>{let e=new Date;if(e<w.start||e>w.end)return null;let t=(e.getTime()-w.start.getTime())/(1440*60*1e3);return Math.round(t*y)},[w,y]),me=t.useCallback(()=>{if(pe==null||!E.current)return;let e=Math.max(0,pe-E.current.clientWidth/2);E.current.scrollTo({left:e,behavior:`smooth`})},[pe]),he=e=>{T.current&&(T.current.scrollLeft=e.currentTarget.scrollLeft),le.current&&(le.current.scrollTop=e.currentTarget.scrollTop)},ge=e=>{w.end.getTime()-w.start.getTime();let t=y,n=1e3*60*60*24,r=e.start.getTime()-w.start.getTime(),i=e.end.getTime()-e.start.getTime();return{left:r/n*t,width:Math.max(i/n*t,t)}};return(0,$.jsxs)(`div`,{ref:h,className:(0,i.cn)(`flex flex-col h-full bg-background border rounded-lg overflow-hidden min-w-0`,d),children:[(0,$.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 p-2 border-b bg-card`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(i.Button,{variant:`outline`,size:`sm`,onClick:()=>u?.(),"aria-label":`Create new task`,children:[(0,$.jsx)(a.Plus,{className:`h-4 w-4 mr-1 sm:mr-2`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:`New Task`}),(0,$.jsx)(`span`,{className:`sm:hidden`,children:`New`})]}),(0,$.jsx)(`div`,{className:`h-4 w-px bg-border mx-1 sm:mx-2`}),(0,$.jsx)(i.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Previous period`,children:(0,$.jsx)(a.ChevronLeft,{className:`h-4 w-4`})}),(0,$.jsx)(i.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Next period`,children:(0,$.jsx)(a.ChevronRight,{className:`h-4 w-4`})}),(0,$.jsx)(`span`,{className:`font-semibold text-xs sm:text-sm`,children:w.start.toLocaleDateString(void 0,{month:`long`,year:`numeric`})})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(i.Select,{value:n,onValueChange:e=>l?.(e),children:[(0,$.jsx)(i.SelectTrigger,{className:`w-[100px] sm:w-[120px] h-8`,children:(0,$.jsx)(i.SelectValue,{})}),(0,$.jsxs)(i.SelectContent,{children:[(0,$.jsx)(i.SelectItem,{value:`day`,children:`Day View`}),(0,$.jsx)(i.SelectItem,{value:`week`,children:`Week View`}),(0,$.jsx)(i.SelectItem,{value:`month`,children:`Month View`}),(0,$.jsx)(i.SelectItem,{value:`quarter`,children:`Quarter View`})]})]}),(0,$.jsxs)(`div`,{className:`flex bg-muted rounded-md p-1`,children:[(0,$.jsx)(i.Button,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>re(Math.max(15,y-10)),"aria-label":`Zoom out`,children:(0,$.jsx)(a.ZoomOut,{className:`h-3 w-3`})}),(0,$.jsx)(i.Button,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>re(Math.min(120,y+10)),"aria-label":`Zoom in`,children:(0,$.jsx)(a.ZoomIn,{className:`h-3 w-3`})})]}),(0,$.jsx)(i.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>ae(e=>!e),"aria-label":ie?`Show task list`:`Hide task list`,"aria-pressed":ie,"data-testid":`gantt-toggle-task-list`,children:ie?(0,$.jsx)(a.PanelLeft,{className:`h-4 w-4`}):(0,$.jsx)(a.PanelLeftClose,{className:`h-4 w-4`})}),(0,$.jsx)(i.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:me,disabled:pe==null,"aria-label":`Jump to today`,"data-testid":`gantt-jump-today`,children:(0,$.jsx)(a.CalendarDays,{className:`h-4 w-4`})})]})]}),(0,$.jsxs)(`div`,{className:`flex flex-col flex-1 overflow-hidden`,children:[(0,$.jsxs)(`div`,{className:`flex border-b bg-muted/30 shrink-0 h-10 sm:h-[50px]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center font-medium text-xs text-muted-foreground px-2 sm:px-4 border-r bg-card z-20 shadow-sm`,style:{width:x,minWidth:x},children:[(0,$.jsx)(`div`,{className:`flex-1`,children:`Task Name`}),(0,$.jsx)(`div`,{className:`w-16 sm:w-20 text-right hidden sm:block`,children:`Start`}),(0,$.jsx)(`div`,{className:`w-16 sm:w-20 text-right hidden sm:block`,children:`End`})]}),(0,$.jsx)(`div`,{className:`flex-1 overflow-hidden`,ref:T,children:(0,$.jsx)(`div`,{className:`flex h-full`,style:{width:ce.length*y},children:ce.map((e,t)=>(0,$.jsxs)(`div`,{className:(0,i.cn)(`flex flex-col items-center justify-center border-r text-xs text-muted-foreground h-full`,e.isWeekend&&`bg-muted/50`),style:{width:y,minWidth:y},children:[(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label}),(0,$.jsx)(`span`,{className:`text-[10px] opacity-70`,children:e.date.toLocaleDateString(void 0,{weekday:`narrow`})})]},t))})})]}),(0,$.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,$.jsx)(`div`,{className:`overflow-hidden border-r bg-card z-10 shadow-sm`,ref:le,style:{width:x,minWidth:x},children:e.map(e=>{let t=f&&S===e.id;return(0,$.jsxs)(`div`,{className:`flex items-center border-b px-2 sm:px-4 hover:bg-accent/50 cursor-pointer transition-colors touch-manipulation`,style:{height:v},onClick:()=>!t&&s?.(e),onDoubleClick:()=>{f&&c&&(oe(e.id),se({title:e.title,start:e.start.toLocaleDateString(`en-CA`),end:e.end.toLocaleDateString(`en-CA`),progress:String(e.progress)}))},children:[(0,$.jsxs)(`div`,{className:`flex-1 truncate font-medium text-xs sm:text-sm flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0`,style:{backgroundColor:e.color||`#3b82f6`}}),t?(0,$.jsx)(`input`,{className:`border rounded px-1 py-0.5 text-xs w-full bg-background`,value:C.title||``,onChange:e=>se(t=>({...t,title:e.target.value})),onKeyDown:t=>{t.key===`Enter`?(c?.(e,{title:C.title,start:new Date(C.start),end:new Date(C.end),progress:Number(C.progress)||0}),oe(null)):t.key===`Escape`&&oe(null)},onClick:e=>e.stopPropagation(),autoFocus:!0}):(0,$.jsxs)(`span`,{className:`flex flex-col min-w-0`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:e.title}),(0,$.jsxs)(`span`,{className:`text-[10px] text-muted-foreground sm:hidden`,children:[e.start.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`}),` → `,e.end.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`})]})]})]}),(0,$.jsx)(`div`,{className:`w-16 sm:w-20 text-right text-xs text-muted-foreground hidden sm:block`,children:t?(0,$.jsx)(`input`,{type:`date`,className:`border rounded px-1 py-0.5 text-xs w-full bg-background`,value:C.start||``,onChange:e=>se(t=>({...t,start:e.target.value})),onClick:e=>e.stopPropagation()}):e.start.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`})}),(0,$.jsx)(`div`,{className:`w-16 sm:w-20 text-right text-xs text-muted-foreground hidden sm:block`,children:t?(0,$.jsx)(`input`,{type:`date`,className:`border rounded px-1 py-0.5 text-xs w-full bg-background`,value:C.end||``,onChange:e=>se(t=>({...t,end:e.target.value})),onClick:e=>e.stopPropagation()}):e.end.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`})})]},e.id)})}),(0,$.jsx)(`div`,{className:`flex-1 overflow-auto bg-background/50 relative [-webkit-overflow-scrolling:touch]`,ref:e=>{ue.current=e,E.current=e},onScroll:he,onTouchStart:O,onTouchMove:de,onTouchEnd:fe,"data-testid":`gantt-timeline`,children:(0,$.jsxs)(`div`,{className:`relative`,style:{width:ce.length*y},children:[pe!=null&&(0,$.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-red-500/80 z-20 pointer-events-none`,style:{left:pe},"data-testid":`gantt-today-marker`,"aria-label":`Today`,children:(0,$.jsx)(`div`,{className:`absolute -top-2 -translate-x-1/2 left-0 text-[10px] font-semibold text-white bg-red-500 rounded-sm px-1 py-0.5 whitespace-nowrap`,children:`Today`})}),(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`div`,{className:`absolute inset-0 flex pointer-events-none z-0`,children:ce.map((e,t)=>(0,$.jsx)(`div`,{className:(0,i.cn)(`border-r h-full`,e.isWeekend&&`bg-muted/20`),style:{width:y,minWidth:y}},t))}),e.map(e=>{let t=ge(e);return(0,$.jsx)(`div`,{className:`relative border-b hover:bg-black/5`,style:{height:v},children:(0,$.jsxs)(`div`,{className:`absolute top-1 sm:top-2 h-[calc(100%-8px)] sm:h-[calc(100%-16px)] rounded-sm bg-primary border border-primary-foreground/20 shadow-sm cursor-pointer hover:brightness-110 flex items-center px-2 group`,style:{left:t.left,width:t.width,backgroundColor:e.color||`#3b82f6`},onClick:()=>s?.(e),children:[e.progress>0&&(0,$.jsx)(`div`,{className:`absolute left-0 top-0 bottom-0 bg-black/20 rounded-l-sm`,style:{width:`${e.progress}%`}}),(0,$.jsxs)(`span`,{className:`text-[10px] text-white font-medium truncate opacity-0 group-hover:opacity-100 transition-opacity`,children:[Math.round(e.progress),`%`]})]})},e.id)}),(0,$.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-red-500 z-20 pointer-events-none`,style:{left:(new Date().getTime()-w.start.getTime())/(1e3*60*60*24)*y},children:(0,$.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-red-500 -ml-[3px]`})})]})]})})]})]})]})}function Fl(e){return e.data?e.data:e.staticData?{provider:`value`,items:e.staticData}:e.objectName?{provider:`object`,object:e.objectName}:null}function Il(e){if(e){if(typeof e==`string`){let t=e.split(` `),n=t[0],r=t[1]?.toLowerCase()===`desc`?`desc`:`asc`;return{[n]:r}}if(Array.isArray(e))return e.reduce((e,t)=>(t.field&&t.order&&(e[t.field]=t.order),e),{})}}function Ll(e){let t=null;if(e.startDateField&&e.endDateField)return t={startDateField:e.startDateField,endDateField:e.endDateField,titleField:e.titleField||`name`,progressField:e.progressField,dependenciesField:e.dependenciesField||e.dependencyField,colorField:e.colorField},t;if(e.gantt&&(t=e.gantt),t){let e=Is.safeParse(t);return e.success||console.warn(`[ObjectGantt] Invalid gantt configuration:`,e.error.format()),t}return null}var Rl=({schema:e,dataSource:a,className:o,onTaskClick:s,onRowClick:c,...l})=>{let[u,d]=(0,t.useState)([]),[f,p]=(0,t.useState)(!0),[m,h]=(0,t.useState)(null),[ee,g]=(0,t.useState)(null),_=Fl(e),v=(0,t.useMemo)(()=>_,[JSON.stringify(_)]),te=Ll(e),ne=v?.provider===`value`;(0,t.useEffect)(()=>{(async()=>{try{if(p(!0),l.data&&Array.isArray(l.data)){d(l.data),p(!1);return}if(ne&&v?.provider===`value`){d(v.items),p(!1);return}if(!a||typeof a.find!=`function`)throw Error(`DataSource required for object/api providers`);if(v?.provider===`object`){let t=v.object,r=(0,n.buildExpandFields)(ee?.fields);d((0,n.extractRecords)(await a.find(t,{$filter:e.filter,$orderby:Il(e.sort),...r.length>0?{$expand:r}:{}})))}else v?.provider===`api`&&(console.warn(`API provider not yet implemented for ObjectGantt`),d([]));p(!1)}catch(e){h(e),p(!1)}})()},[v,a,ne,e.filter,e.sort,ee]),(0,t.useEffect)(()=>{!ne&&a&&(async()=>{try{if(!a)return;let t=v?.provider===`object`?v.object:e.objectName;if(!t)return;g(await a.getObjectSchema(t))}catch(e){console.error(`Failed to fetch object schema:`,e)}})()},[e.objectName,a,ne,v]);let re=(0,t.useMemo)(()=>{if(!te||!u.length)return[];let{startDateField:e,endDateField:t,titleField:n,progressField:r,dependenciesField:i,colorField:a}=te;return u.map((o,s)=>{let c=o[e],l=o[t],u=o[n]||`Untitled Task`,d=r?o[r]:0,f=i?o[i]:[],p=a?o[a]:void 0;return{id:o.id||o._id||`task-${s}`,title:u,start:c?new Date(c):new Date,end:l?new Date(l):new Date,progress:Math.min(100,Math.max(0,d||0)),dependencies:Array.isArray(f)?f:[],color:p,data:o}}).filter(e=>!isNaN(e.start.getTime())&&!isNaN(e.end.getTime()))},[u,te]),y=(0,r.useNavigationOverlay)({navigation:e.navigation,objectName:e.objectName,onRowClick:c});return f?(0,$.jsx)(`div`,{className:o,children:(0,$.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,$.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading Gantt chart...`})})}):m?(0,$.jsx)(`div`,{className:o,children:(0,$.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,$.jsxs)(`div`,{className:`text-destructive`,children:[`Error: `,m.message]})})}):te?(0,$.jsxs)(`div`,{className:o,children:[(0,$.jsx)(`div`,{className:`h-[calc(100vh-200px)] min-h-[600px]`,children:(0,$.jsx)(Pl,{tasks:re,onTaskClick:e=>{y.handleClick(e.data),s?.(e.data)},onAddClick:()=>{}})}),y.isOverlay&&(0,$.jsx)(i.NavigationOverlay,{...y,title:`Task Details`,children:e=>(0,$.jsx)(`div`,{className:`space-y-3`,children:Object.entries(e).map(([e,t])=>(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:e.replace(/_/g,` `)}),(0,$.jsx)(`span`,{className:`text-sm`,children:String(t??`—`)})]},e))})})]}):(0,$.jsx)(`div`,{className:o,children:(0,$.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,$.jsx)(`div`,{className:`text-muted-foreground`,children:`Gantt configuration required. Please specify startDateField, endDateField, and titleField.`})})})},zl=({schema:e})=>{let{dataSource:t}=(0,r.useSchemaContext)()||{};return(0,$.jsx)(Rl,{schema:e,dataSource:t})};n.ComponentRegistry.register(`object-gantt`,zl,{namespace:`plugin-gantt`,label:`Object Gantt`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`gantt`,type:`object`,label:`Gantt Config`,description:`startDateField, endDateField, titleField, progressField, percentageField, colorField, dependenciesField`}]}),n.ComponentRegistry.register(`gantt`,zl,{namespace:`view`,label:`Gantt View`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`gantt`,type:`object`,label:`Gantt Config`,description:`startDateField, endDateField, titleField, progressField, percentageField, colorField, dependenciesField`}]}),e.GanttView=Pl,e.ObjectGantt=Rl,e.ObjectGanttRenderer=zl});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`),require(`@object-ui/core`),require(`@object-ui/react`),require(`@objectstack/spec/ui`),require(`@object-ui/components`),require(`lucide-react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`react`,`@object-ui/core`,`@object-ui/react`,`@objectstack/spec/ui`,`@object-ui/components`,`lucide-react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ObjectUIPluginGantt={},e.React,e.ObjectUICore,e.ObjectUIReact,e._objectstack_spec_ui,e.ObjectUIComponents,e.LucideReact,e.react_jsx_runtime))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var c=Object.create,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,m=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=d(t),a=0,o=i.length,s;a<o;a++)s=i[a],!p.call(e,s)&&s!==n&&l(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=u(t,s))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:c(f(e)),m(t||!e||!e.__esModule?l(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1);function h(e){return e<640?35:e<1024?50:60}function g(e){return e<640?120:e<1024?200:300}function _(e){return e<640?32:40}function v({tasks:e,viewMode:n=`month`,startDate:r,endDate:i,onTaskClick:c,onTaskUpdate:l,onViewChange:u,onAddClick:d,className:f,inlineEdit:p=!1}){let[m,v]=t.useState(new Date),y=t.useRef(null),{width:b}=(0,a.useResizeObserver)(y),x=b||(typeof window<`u`?window.innerWidth:1024),S=x<640,C=_(x),w=h(x),[T,E]=t.useState(null),D=T??w,[O,k]=t.useState(!1),A=t.useRef(!1);t.useEffect(()=>{!A.current&&S&&(k(!0),A.current=!0)},[S]);let j=O?0:g(x),[M,N]=t.useState(null),[P,F]=t.useState({}),I=t.useMemo(()=>{let t=r?new Date(r):new Date,n=i?new Date(i):new Date;return!r&&e.length>0&&(t=new Date(Math.min(...e.map(e=>e.start.getTime()))),t.setDate(t.getDate()-7)),!i&&e.length>0&&(n=new Date(Math.max(...e.map(e=>e.end.getTime()))),n.setDate(n.getDate()+14)),t.setHours(0,0,0,0),n.setHours(23,59,59,999),{start:t,end:n}},[r,i,e]),L=t.useMemo(()=>{let e=[],t=new Date(I.start);for(;t<=I.end;)e.push({date:new Date(t),label:t.getDate().toString(),isWeekend:t.getDay()===0||t.getDay()===6}),t.setDate(t.getDate()+1);return e},[I]),R=t.useRef(null),z=t.useRef(null),B=t.useRef(null),V=t.useRef(null),H=t.useRef(null),U=t.useCallback(e=>{if(e.touches.length===2){let t=e.touches[0].clientX-e.touches[1].clientX,n=e.touches[0].clientY-e.touches[1].clientY;H.current={baseDistance:Math.max(1,Math.sqrt(t*t+n*n)),baseColumn:D}}},[D]),W=t.useCallback(e=>{if(e.touches.length!==2||!H.current)return;let t=e.touches[0].clientX-e.touches[1].clientX,n=e.touches[0].clientY-e.touches[1].clientY,r=Math.max(1,Math.sqrt(t*t+n*n))/H.current.baseDistance;E(Math.max(15,Math.min(120,Math.round(H.current.baseColumn*r))))},[]),G=t.useCallback(()=>{H.current=null},[]),K=t.useMemo(()=>{let e=new Date;if(e<I.start||e>I.end)return null;let t=(e.getTime()-I.start.getTime())/(1440*60*1e3);return Math.round(t*D)},[I,D]),q=t.useCallback(()=>{if(K==null||!V.current)return;let e=Math.max(0,K-V.current.clientWidth/2);V.current.scrollTo({left:e,behavior:`smooth`})},[K]),J=e=>{R.current&&(R.current.scrollLeft=e.currentTarget.scrollLeft),z.current&&(z.current.scrollTop=e.currentTarget.scrollTop)},Y=e=>{I.end.getTime()-I.start.getTime();let t=D,n=1e3*60*60*24,r=e.start.getTime()-I.start.getTime(),i=e.end.getTime()-e.start.getTime();return{left:r/n*t,width:Math.max(i/n*t,t)}};return(0,s.jsxs)(`div`,{ref:y,className:(0,a.cn)(`flex flex-col h-full bg-background border rounded-lg overflow-hidden min-w-0`,f),children:[(0,s.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 p-2 border-b bg-card`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsxs)(a.Button,{variant:`outline`,size:`sm`,onClick:()=>d?.(),"aria-label":`Create new task`,children:[(0,s.jsx)(o.Plus,{className:`h-4 w-4 mr-1 sm:mr-2`}),(0,s.jsx)(`span`,{className:`hidden sm:inline`,children:`New Task`}),(0,s.jsx)(`span`,{className:`sm:hidden`,children:`New`})]}),(0,s.jsx)(`div`,{className:`h-4 w-px bg-border mx-1 sm:mx-2`}),(0,s.jsx)(a.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Previous period`,children:(0,s.jsx)(o.ChevronLeft,{className:`h-4 w-4`})}),(0,s.jsx)(a.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Next period`,children:(0,s.jsx)(o.ChevronRight,{className:`h-4 w-4`})}),(0,s.jsx)(`span`,{className:`font-semibold text-xs sm:text-sm`,children:I.start.toLocaleDateString(void 0,{month:`long`,year:`numeric`})})]}),(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsxs)(a.Select,{value:n,onValueChange:e=>u?.(e),children:[(0,s.jsx)(a.SelectTrigger,{className:`w-[100px] sm:w-[120px] h-8`,children:(0,s.jsx)(a.SelectValue,{})}),(0,s.jsxs)(a.SelectContent,{children:[(0,s.jsx)(a.SelectItem,{value:`day`,children:`Day View`}),(0,s.jsx)(a.SelectItem,{value:`week`,children:`Week View`}),(0,s.jsx)(a.SelectItem,{value:`month`,children:`Month View`}),(0,s.jsx)(a.SelectItem,{value:`quarter`,children:`Quarter View`})]})]}),(0,s.jsxs)(`div`,{className:`flex bg-muted rounded-md p-1`,children:[(0,s.jsx)(a.Button,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>E(Math.max(15,D-10)),"aria-label":`Zoom out`,children:(0,s.jsx)(o.ZoomOut,{className:`h-3 w-3`})}),(0,s.jsx)(a.Button,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>E(Math.min(120,D+10)),"aria-label":`Zoom in`,children:(0,s.jsx)(o.ZoomIn,{className:`h-3 w-3`})})]}),(0,s.jsx)(a.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>k(e=>!e),"aria-label":O?`Show task list`:`Hide task list`,"aria-pressed":O,"data-testid":`gantt-toggle-task-list`,children:O?(0,s.jsx)(o.PanelLeft,{className:`h-4 w-4`}):(0,s.jsx)(o.PanelLeftClose,{className:`h-4 w-4`})}),(0,s.jsx)(a.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:q,disabled:K==null,"aria-label":`Jump to today`,"data-testid":`gantt-jump-today`,children:(0,s.jsx)(o.CalendarDays,{className:`h-4 w-4`})})]})]}),(0,s.jsxs)(`div`,{className:`flex flex-col flex-1 overflow-hidden`,children:[(0,s.jsxs)(`div`,{className:`flex border-b bg-muted/30 shrink-0 h-10 sm:h-[50px]`,children:[(0,s.jsxs)(`div`,{className:`flex items-center font-medium text-xs text-muted-foreground px-2 sm:px-4 border-r bg-card z-20 shadow-sm`,style:{width:j,minWidth:j},children:[(0,s.jsx)(`div`,{className:`flex-1`,children:`Task Name`}),(0,s.jsx)(`div`,{className:`w-16 sm:w-20 text-right hidden sm:block`,children:`Start`}),(0,s.jsx)(`div`,{className:`w-16 sm:w-20 text-right hidden sm:block`,children:`End`})]}),(0,s.jsx)(`div`,{className:`flex-1 overflow-hidden`,ref:R,children:(0,s.jsx)(`div`,{className:`flex h-full`,style:{width:L.length*D},children:L.map((e,t)=>(0,s.jsxs)(`div`,{className:(0,a.cn)(`flex flex-col items-center justify-center border-r text-xs text-muted-foreground h-full`,e.isWeekend&&`bg-muted/50`),style:{width:D,minWidth:D},children:[(0,s.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label}),(0,s.jsx)(`span`,{className:`text-[10px] opacity-70`,children:e.date.toLocaleDateString(void 0,{weekday:`narrow`})})]},t))})})]}),(0,s.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,s.jsx)(`div`,{className:`overflow-hidden border-r bg-card z-10 shadow-sm`,ref:z,style:{width:j,minWidth:j},children:e.map(e=>{let t=p&&M===e.id;return(0,s.jsxs)(`div`,{className:`flex items-center border-b px-2 sm:px-4 hover:bg-accent/50 cursor-pointer transition-colors touch-manipulation`,style:{height:C},onClick:()=>!t&&c?.(e),onDoubleClick:()=>{p&&l&&(N(e.id),F({title:e.title,start:e.start.toLocaleDateString(`en-CA`),end:e.end.toLocaleDateString(`en-CA`),progress:String(e.progress)}))},children:[(0,s.jsxs)(`div`,{className:`flex-1 truncate font-medium text-xs sm:text-sm flex items-center gap-2`,children:[(0,s.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0`,style:{backgroundColor:e.color||`#3b82f6`}}),t?(0,s.jsx)(`input`,{className:`border rounded px-1 py-0.5 text-xs w-full bg-background`,value:P.title||``,onChange:e=>F(t=>({...t,title:e.target.value})),onKeyDown:t=>{t.key===`Enter`?(l?.(e,{title:P.title,start:new Date(P.start),end:new Date(P.end),progress:Number(P.progress)||0}),N(null)):t.key===`Escape`&&N(null)},onClick:e=>e.stopPropagation(),autoFocus:!0}):(0,s.jsxs)(`span`,{className:`flex flex-col min-w-0`,children:[(0,s.jsx)(`span`,{className:`truncate`,children:e.title}),(0,s.jsxs)(`span`,{className:`text-[10px] text-muted-foreground sm:hidden`,children:[e.start.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`}),` → `,e.end.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`})]})]})]}),(0,s.jsx)(`div`,{className:`w-16 sm:w-20 text-right text-xs text-muted-foreground hidden sm:block`,children:t?(0,s.jsx)(`input`,{type:`date`,className:`border rounded px-1 py-0.5 text-xs w-full bg-background`,value:P.start||``,onChange:e=>F(t=>({...t,start:e.target.value})),onClick:e=>e.stopPropagation()}):e.start.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`})}),(0,s.jsx)(`div`,{className:`w-16 sm:w-20 text-right text-xs text-muted-foreground hidden sm:block`,children:t?(0,s.jsx)(`input`,{type:`date`,className:`border rounded px-1 py-0.5 text-xs w-full bg-background`,value:P.end||``,onChange:e=>F(t=>({...t,end:e.target.value})),onClick:e=>e.stopPropagation()}):e.end.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`})})]},e.id)})}),(0,s.jsx)(`div`,{className:`flex-1 overflow-auto bg-background/50 relative [-webkit-overflow-scrolling:touch]`,ref:e=>{B.current=e,V.current=e},onScroll:J,onTouchStart:U,onTouchMove:W,onTouchEnd:G,"data-testid":`gantt-timeline`,children:(0,s.jsxs)(`div`,{className:`relative`,style:{width:L.length*D},children:[K!=null&&(0,s.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-red-500/80 z-20 pointer-events-none`,style:{left:K},"data-testid":`gantt-today-marker`,"aria-label":`Today`,children:(0,s.jsx)(`div`,{className:`absolute -top-2 -translate-x-1/2 left-0 text-[10px] font-semibold text-white bg-red-500 rounded-sm px-1 py-0.5 whitespace-nowrap`,children:`Today`})}),(0,s.jsxs)(`div`,{className:`relative`,children:[(0,s.jsx)(`div`,{className:`absolute inset-0 flex pointer-events-none z-0`,children:L.map((e,t)=>(0,s.jsx)(`div`,{className:(0,a.cn)(`border-r h-full`,e.isWeekend&&`bg-muted/20`),style:{width:D,minWidth:D}},t))}),e.map(e=>{let t=Y(e);return(0,s.jsx)(`div`,{className:`relative border-b hover:bg-black/5`,style:{height:C},children:(0,s.jsxs)(`div`,{className:`absolute top-1 sm:top-2 h-[calc(100%-8px)] sm:h-[calc(100%-16px)] rounded-sm bg-primary border border-primary-foreground/20 shadow-sm cursor-pointer hover:brightness-110 flex items-center px-2 group`,style:{left:t.left,width:t.width,backgroundColor:e.color||`#3b82f6`},onClick:()=>c?.(e),children:[e.progress>0&&(0,s.jsx)(`div`,{className:`absolute left-0 top-0 bottom-0 bg-black/20 rounded-l-sm`,style:{width:`${e.progress}%`}}),(0,s.jsxs)(`span`,{className:`text-[10px] text-white font-medium truncate opacity-0 group-hover:opacity-100 transition-opacity`,children:[Math.round(e.progress),`%`]})]})},e.id)}),(0,s.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-red-500 z-20 pointer-events-none`,style:{left:(new Date().getTime()-I.start.getTime())/(1e3*60*60*24)*D},children:(0,s.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-red-500 -ml-[3px]`})})]})]})})]})]})]})}function y(e){return e.data?e.data:e.staticData?{provider:`value`,items:e.staticData}:e.objectName?{provider:`object`,object:e.objectName}:null}function b(e){if(e){if(typeof e==`string`){let t=e.split(` `),n=t[0],r=t[1]?.toLowerCase()===`desc`?`desc`:`asc`;return{[n]:r}}if(Array.isArray(e))return e.reduce((e,t)=>(t.field&&t.order&&(e[t.field]=t.order),e),{})}}function x(e){let t=null;if(e.startDateField&&e.endDateField)return t={startDateField:e.startDateField,endDateField:e.endDateField,titleField:e.titleField||`name`,progressField:e.progressField,dependenciesField:e.dependenciesField||e.dependencyField,colorField:e.colorField},t;if(e.gantt&&(t=e.gantt),t){let e=i.GanttConfigSchema.safeParse(t);return e.success||console.warn(`[ObjectGantt] Invalid gantt configuration:`,e.error.format()),t}return null}var S=({schema:e,dataSource:i,className:o,onTaskClick:c,onRowClick:l,...u})=>{let[d,f]=(0,t.useState)([]),[p,m]=(0,t.useState)(!0),[h,g]=(0,t.useState)(null),[_,S]=(0,t.useState)(null),C=y(e),w=(0,t.useMemo)(()=>C,[JSON.stringify(C)]),T=x(e),E=w?.provider===`value`;(0,t.useEffect)(()=>{(async()=>{try{if(m(!0),u.data&&Array.isArray(u.data)){f(u.data),m(!1);return}if(E&&w?.provider===`value`){f(w.items),m(!1);return}if(!i||typeof i.find!=`function`)throw Error(`DataSource required for object/api providers`);if(w?.provider===`object`){let t=w.object,r=(0,n.buildExpandFields)(_?.fields);f((0,n.extractRecords)(await i.find(t,{$filter:e.filter,$orderby:b(e.sort),...r.length>0?{$expand:r}:{}})))}else w?.provider===`api`&&(console.warn(`API provider not yet implemented for ObjectGantt`),f([]));m(!1)}catch(e){g(e),m(!1)}})()},[w,i,E,e.filter,e.sort,_]),(0,t.useEffect)(()=>{!E&&i&&(async()=>{try{if(!i)return;let t=w?.provider===`object`?w.object:e.objectName;if(!t)return;S(await i.getObjectSchema(t))}catch(e){console.error(`Failed to fetch object schema:`,e)}})()},[e.objectName,i,E,w]);let D=(0,t.useMemo)(()=>{if(!T||!d.length)return[];let{startDateField:e,endDateField:t,titleField:n,progressField:r,dependenciesField:i,colorField:a}=T;return d.map((o,s)=>{let c=o[e],l=o[t],u=o[n]||`Untitled Task`,d=r?o[r]:0,f=i?o[i]:[],p=a?o[a]:void 0;return{id:o.id||o._id||`task-${s}`,title:u,start:c?new Date(c):new Date,end:l?new Date(l):new Date,progress:Math.min(100,Math.max(0,d||0)),dependencies:Array.isArray(f)?f:[],color:p,data:o}}).filter(e=>!isNaN(e.start.getTime())&&!isNaN(e.end.getTime()))},[d,T]),O=(0,r.useNavigationOverlay)({navigation:e.navigation,objectName:e.objectName,onRowClick:l});return p?(0,s.jsx)(`div`,{className:o,children:(0,s.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,s.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading Gantt chart...`})})}):h?(0,s.jsx)(`div`,{className:o,children:(0,s.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,s.jsxs)(`div`,{className:`text-destructive`,children:[`Error: `,h.message]})})}):T?(0,s.jsxs)(`div`,{className:o,children:[(0,s.jsx)(`div`,{className:`h-[calc(100vh-200px)] min-h-[600px]`,children:(0,s.jsx)(v,{tasks:D,onTaskClick:e=>{O.handleClick(e.data),c?.(e.data)},onAddClick:()=>{}})}),O.isOverlay&&(0,s.jsx)(a.NavigationOverlay,{...O,title:`Task Details`,children:e=>(0,s.jsx)(`div`,{className:`space-y-3`,children:Object.entries(e).map(([e,t])=>(0,s.jsxs)(`div`,{className:`flex flex-col`,children:[(0,s.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:e.replace(/_/g,` `)}),(0,s.jsx)(`span`,{className:`text-sm`,children:String(t??`—`)})]},e))})})]}):(0,s.jsx)(`div`,{className:o,children:(0,s.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,s.jsx)(`div`,{className:`text-muted-foreground`,children:`Gantt configuration required. Please specify startDateField, endDateField, and titleField.`})})})},C=({schema:e})=>{let{dataSource:t}=(0,r.useSchemaContext)()||{};return(0,s.jsx)(S,{schema:e,dataSource:t})};n.ComponentRegistry.register(`object-gantt`,C,{namespace:`plugin-gantt`,label:`Object Gantt`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`gantt`,type:`object`,label:`Gantt Config`,description:`startDateField, endDateField, titleField, progressField, percentageField, colorField, dependenciesField`}]}),n.ComponentRegistry.register(`gantt`,C,{namespace:`view`,label:`Gantt View`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`gantt`,type:`object`,label:`Gantt Config`,description:`startDateField, endDateField, titleField, progressField, percentageField, colorField, dependenciesField`}]}),e.GanttView=v,e.ObjectGantt=S,e.ObjectGanttRenderer=C});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/plugin-gantt",
3
- "version": "4.0.3",
3
+ "version": "4.0.4",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Gantt chart plugin for Object UI",
@@ -26,11 +26,11 @@
26
26
  "dependencies": {
27
27
  "@objectstack/spec": "^4.0.4",
28
28
  "lucide-react": "^1.14.0",
29
- "@object-ui/components": "4.0.3",
30
- "@object-ui/core": "4.0.3",
31
- "@object-ui/fields": "4.0.3",
32
- "@object-ui/react": "4.0.3",
33
- "@object-ui/types": "4.0.3"
29
+ "@object-ui/components": "4.0.4",
30
+ "@object-ui/core": "4.0.4",
31
+ "@object-ui/fields": "4.0.4",
32
+ "@object-ui/react": "4.0.4",
33
+ "@object-ui/types": "4.0.4"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "react": "^18.0.0 || ^19.0.0",