@jxsuite/runtime 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/runtime.js CHANGED
@@ -1391,7 +1391,10 @@ async function resolveFunction(def2, state, key, base) {
1391
1391
  throw new Error(`Jx: '${key}' declares both body and $src — these are mutually exclusive`);
1392
1392
  }
1393
1393
  if (!def2.body && !def2.$src) {
1394
- throw new Error(`Jx: '${key}' is a Function prototype with no body or $src`);
1394
+ const params = resolveParamNames(def2);
1395
+ const noop = new Function(...params, "");
1396
+ Object.defineProperty(noop, "name", { value: def2.name ?? key, configurable: true });
1397
+ return noop;
1395
1398
  }
1396
1399
  let fn;
1397
1400
  if (def2.body) {
@@ -2433,5 +2436,5 @@ export {
2433
2436
  Jx
2434
2437
  };
2435
2438
 
2436
- //# debugId=28DB5F2E23A6BAAB64756E2164756E21
2439
+ //# debugId=B787C22CCE11BBDE64756E2164756E21
2437
2440
  //# sourceMappingURL=runtime.js.map
@@ -4,9 +4,9 @@
4
4
  "sourcesContent": [
5
5
  "/**\n* @vue/shared v3.5.34\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n",
6
6
  "/**\n* @vue/reactivity v3.5.34\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n",
7
- "/**\n * Jx — JSON-native reactive web component runtime\n * @version 3.0.0\n * @license MIT\n *\n * Four-step pipeline:\n * 1. resolve — fetch JSON source (or accept raw object)\n * 2. buildScope — state detection + reactive proxy construction\n * 3. render — walk resolved tree, build DOM, wire reactive effects\n * 4. output — append to target\n *\n * @module jx\n */\n\nimport { reactive, ref, computed, effect, isRef, onEffectCleanup } from \"@vue/reactivity\";\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Mount a Jx document into a DOM container.\n *\n * @example\n * import { Jx } from \"@jxsuite/runtime\";\n * const state = await Jx(\"./counter.json\", document.getElementById(\"app\"));\n *\n * @param {string | Record<string, any>} source - Path to .json file, URL, or raw document object\n * @param {HTMLElement} [target] Default is `document.body`\n * @param {any} [options]\n * @returns {Promise<Record<string, any>>} Resolves with the live component scope (state reactive\n * proxy)\n */\nexport async function Jx(source, target = document.body, options) {\n const base = typeof source === \"string\" ? new URL(source, location.href).href : location.href;\n const doc = await resolve(source);\n\n // Register custom elements declared in $elements (depth-first)\n if (doc.$elements) {\n await registerElements(doc.$elements, base);\n }\n\n // Inject <head> elements declared in $head (link, meta, script, etc.)\n if (doc.$head) {\n injectHead(doc.$head, base);\n }\n\n const state = await buildScope(doc, {}, base);\n target.appendChild(renderNode(doc, state, options));\n if (typeof state.onMount === \"function\") state.onMount(state);\n return state;\n}\n\n// ─── Step 1: Resolve ──────────────────────────────────────────────────────────\n\n/**\n * Fetch and parse a Jx JSON source. Accepts a URL string, absolute URL, or a pre-parsed object.\n *\n * @param {string | Record<string, any>} source\n * @returns {Promise<any>}\n */\nexport async function resolve(source) {\n if (typeof source !== \"string\") return source;\n const res = await fetch(source);\n if (!res.ok) throw new Error(`Jx: failed to fetch ${source} (${res.status})`);\n return res.json();\n}\n\n// ─── Step 2: Build scope ──────────────────────────────────────────────────────\n\n/** JSON Schema keywords used to identify pure type definitions (Shape 2b). */\nconst SCHEMA_KEYWORDS = new Set([\n \"type\",\n \"properties\",\n \"items\",\n \"enum\",\n \"minimum\",\n \"maximum\",\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"required\",\n \"examples\",\n]);\n\n/** /** @type {{ skip: boolean }} */\nconst _serverFnConfig = { skip: false };\n/** Set to true to suppress timing: \"server\" resolution (used by Studio edit mode). */\nexport function setSkipServerFunctions(/** @type {boolean} */ v) {\n _serverFnConfig.skip = v;\n}\n\n/**\n * Build the reactive scope (state) from the document using the five-shape detection algorithm.\n *\n * @param {Record<string, any>} doc\n * @param {Record<string, any>} [parentScope] Default is `{}`\n * @param {string} [base] Base URL for resolving $src imports. Default is `location.href`\n * @returns {Promise<Record<string, any>>} Reactive proxy (state)\n */\nexport async function buildScope(doc, parentScope = {}, base = location.href) {\n /** @type {Record<string, any>} */\n const raw = {};\n\n // Merge parent scope properties\n for (const [key, val] of Object.entries(parentScope)) {\n raw[key] = val;\n }\n\n const defs = doc.state ?? {};\n\n // Pass 0: resolve bare $prototype names via import map\n const imports = doc.imports ?? {};\n for (const [, def] of Object.entries(defs)) {\n if (\n def &&\n typeof def === \"object\" &&\n !Array.isArray(def) &&\n def.$prototype &&\n def.$prototype !== \"Function\" &&\n !def.$src\n ) {\n const mapped = imports[def.$prototype];\n if (mapped) {\n if (typeof mapped !== \"string\" || !mapped.endsWith(\".class.json\")) {\n console.warn(\n `Jx: import \"${def.$prototype}\" must map to a .class.json path, got \"${mapped}\"`,\n );\n continue;\n }\n def.$src = mapped;\n }\n }\n }\n\n // First pass: collect naked values, expanded defaults, plain objects\n for (const [key, def] of Object.entries(defs)) {\n // 1. String value\n if (typeof def === \"string\") {\n if (!def.includes(\"${\")) raw[key] = def; // Shape 1: naked string\n continue; // template strings handled in second pass\n }\n\n // 2. Number, boolean, null\n if (typeof def === \"number\" || typeof def === \"boolean\" || def === null) {\n raw[key] = def;\n continue;\n }\n\n // 3. Array\n if (Array.isArray(def)) {\n raw[key] = def;\n continue;\n }\n\n // 4. Object\n if (typeof def === \"object\") {\n if (def.$prototype) continue; // handled in later passes\n if (def.timing === \"server\" && def.$src && def.$export) continue; // handled in fifth pass\n if (\"default\" in def) {\n raw[key] = def.default;\n continue;\n } // Shape 2: expanded signal\n if (hasSchemaKeywords(def)) continue; // Shape 2b: pure type def\n raw[key] = def; // Shape 1: plain object\n }\n }\n\n // Wrap in Vue reactive proxy — deep reactivity from this point on\n const state = reactive(raw);\n\n // Second pass: template strings → computed\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"string\" && def.includes(\"${\")) {\n state[key] = computed(() => evaluateTemplate(def, state));\n }\n }\n\n // Third pass: $prototype: \"Function\" entries\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"object\" && def?.$prototype === \"Function\") {\n state[key] = await resolveFunction(def, state, key, base);\n }\n }\n\n // Fourth pass: other $prototype entries (Request, Set, Map, etc.)\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"object\" && def?.$prototype && def.$prototype !== \"Function\") {\n state[key] = await resolvePrototype(def, state, key, base);\n }\n }\n\n // Fifth pass: timing: \"server\" entries (dev mode — execute client-side, boundary unenforced)\n if (!_serverFnConfig.skip) {\n for (const [key, def] of Object.entries(defs)) {\n if (\n def != null &&\n typeof def === \"object\" &&\n def.timing === \"server\" &&\n def.$src &&\n def.$export &&\n !def.$prototype\n ) {\n state[key] = await resolveServerFunction(def, state, key, base);\n }\n }\n }\n\n if (doc.$media) {\n state[\"$media\"] = doc.$media;\n }\n\n return state;\n}\n\n/**\n * Check whether an object contains any JSON Schema keywords. Used to discriminate Shape 2b (pure\n * type definition) from Shape 1 (naked object).\n *\n * @param {Record<string, any>} obj\n * @returns {boolean}\n */\nfunction hasSchemaKeywords(obj) {\n for (const k of Object.keys(obj)) {\n if (SCHEMA_KEYWORDS.has(k)) return true;\n }\n return false;\n}\nexport { hasSchemaKeywords };\n\n/**\n * Evaluate a template string in the context of state and optional $map. Templates use\n * `state.varName` and `$map.item` syntax.\n *\n * @param {string} str\n * @param {Record<string, any>} state\n * @returns {any}\n */\nfunction evaluateTemplate(str, state) {\n const fn = new Function(\"state\", \"$map\", `return \\`${str}\\``);\n return fn(state, state?.$map);\n}\n\n// ─── Step 2b: Function resolution (Shape 4) ─────────────────────────────────\n\n/** Module cache for $src imports (shared with external class resolution). */\nconst _moduleCache = new Map();\n\n/**\n * Resolve a $prototype: \"Function\" entry into a function or computed.\n *\n * Functions receive state as their first parameter at call time. Functions with a return statement\n * in their body are wrapped in computed() for reactive evaluation.\n *\n * @param {Record<string, any>} def - State entry with $prototype: \"Function\"\n * @param {Record<string, any>} state - Reactive scope proxy\n * @param {string} key - Def key name\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<any>}\n */\nasync function resolveFunction(def, state, key, base) {\n if (def.body && def.$src) {\n throw new Error(`Jx: '${key}' declares both body and $src — these are mutually exclusive`);\n }\n if (!def.body && !def.$src) {\n throw new Error(`Jx: '${key}' is a Function prototype with no body or $src`);\n }\n\n let fn;\n\n if (def.body) {\n const params = resolveParamNames(def);\n fn = new Function(...params, def.body);\n Object.defineProperty(fn, \"name\", { value: def.name ?? key, configurable: true });\n } else {\n // $src: dynamic import\n const src = def.$src;\n const exportName = def.$export ?? key;\n let mod;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src);\n } else {\n try {\n mod = await import(src);\n } catch {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n mod = await import(resolvedSrc);\n } else {\n throw new Error(`Jx: failed to import '$src' \"${src}\" for \"${key}\"`);\n }\n }\n _moduleCache.set(src, mod);\n }\n fn = mod[exportName] ?? mod.default?.[exportName];\n if (typeof fn !== \"function\") {\n throw new Error(`Jx: export \"${exportName}\" not found or not a function in \"${src}\"`);\n }\n }\n\n // Detect computed: body contains a return statement\n if (def.body && /\\breturn\\b/.test(def.body)) {\n return computed(() => fn(state));\n }\n\n return fn;\n}\n\n// ─── Step 3: Render ───────────────────────────────────────────────────────────\n\n/**\n * Extract parameter names from a function definition. Supports both legacy \"arguments\" (string\n * array) and CEM-compatible \"parameters\" (object array). Always ensures \"state\" is the first\n * parameter.\n *\n * @param {Record<string, any>} def\n * @returns {string[]}\n */\nfunction resolveParamNames(def) {\n const raw = def.parameters ?? def.arguments ?? [];\n let names;\n if (Array.isArray(raw) && raw.length > 0 && typeof raw[0] === \"object\") {\n // CEM-style: [{name: \"event\", type: {...}}, ...]\n names = raw.map((p) => p.name ?? p.identifier ?? \"arg\");\n } else {\n // Legacy string array: [\"state\", \"event\"] or [\"event\"]\n names = raw;\n }\n return names.length > 0 && names[0] === \"state\" ? names : [\"state\", ...names];\n}\n\n/**\n * Reserved Jx keys — never set as DOM properties.\n *\n * @type {Set<string>}\n */\nexport const RESERVED_KEYS = new Set([\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"state\",\n \"$ref\",\n \"$props\",\n \"$elements\",\n \"$switch\",\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"$media\",\n \"$map\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n \"tagName\",\n \"children\",\n \"style\",\n \"attributes\",\n \"items\",\n \"map\",\n \"filter\",\n \"sort\",\n \"cases\",\n \"observedAttributes\",\n]);\n\n/**\n * Recursively render a Jx element definition into a DOM element.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state - Reactive scope proxy (or child scope via Object.create)\n * @param {any} [options]\n * @returns {HTMLElement | Text}\n */\nexport function renderNode(def, state, options) {\n const path = options?._path ?? [];\n\n // Text node children: bare strings/numbers/booleans produce DOM Text nodes\n if (typeof def === \"string\" || typeof def === \"number\" || typeof def === \"boolean\") {\n const textNode = document.createTextNode(String(def));\n if (typeof def === \"string\" && isTemplateString(def)) {\n effect(() => {\n textNode.textContent = evaluateTemplate(def, state);\n });\n }\n return textNode;\n }\n\n // Extend scope with any $-prefixed local bindings declared on this node\n let localState = state;\n for (const [key, val] of Object.entries(def)) {\n if (key.startsWith(\"$\") && !RESERVED_KEYS.has(key)) {\n if (localState === state) localState = Object.create(state);\n localState[key] = isRefObj(val) ? resolveRef(val.$ref, state) : val;\n }\n }\n\n // Custom element with $props: set JS properties on the element instance\n const tagName = def.tagName ?? \"div\";\n const isCustomEl = tagName.includes(\"-\") && customElements.get(tagName);\n\n if (def.$props && isCustomEl) {\n return renderCustomElementWithProps(def, localState, options, path);\n }\n\n if (def.$props) {\n const { $props: _$props, ...rest } = def;\n return renderNode(rest, mergeProps(def, localState), options);\n }\n if (def.$switch) return renderSwitch(def, localState, options);\n if (def.children?.$prototype === \"Array\") return renderMappedArray(def, localState, options);\n\n const el = document.createElement(tagName);\n\n if (options?.onNodeCreated) options.onNodeCreated(el, path, def);\n\n applyProperties(el, def, localState);\n applyStyle(el, def.style ?? {}, localState[\"$media\"] ?? {}, localState);\n applyAttributes(el, def.attributes ?? {}, localState);\n\n const children = Array.isArray(def.children) ? def.children : [];\n for (let i = 0; i < children.length; i++) {\n const childOpts = options ? { ...options, _path: [...path, \"children\", i] } : undefined;\n el.appendChild(renderNode(children[i], localState, childOpts));\n }\n\n return el;\n}\n\n// ─── Template string utilities ────────────────────────────────────────────────\n\n/**\n * Check if a value is a template string (contains ${}).\n *\n * @param {any} val\n * @returns {boolean}\n */\nfunction isTemplateString(val) {\n return typeof val === \"string\" && val.includes(\"${\");\n}\n\n// ─── Property / style / attribute application ─────────────────────────────────\n\n/**\n * @param {HTMLElement} el\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n */\nfunction applyProperties(el, def, state) {\n for (const [key, val] of Object.entries(def)) {\n if (RESERVED_KEYS.has(key)) continue;\n if (key.startsWith(\"$\")) continue; // scope bindings — handled in renderNode\n\n if (key.startsWith(\"on\")) {\n // Event handler: $ref to a function\n if (isRefObj(val)) {\n const handler = resolveRef(val.$ref, state);\n if (typeof handler === \"function\") {\n const scope = state;\n el.addEventListener(key.slice(2), (e) => handler(scope, e));\n }\n continue;\n }\n // Event handler: inline $prototype: \"Function\"\n if (val && typeof val === \"object\" && val.$prototype === \"Function\" && val.body) {\n const params = resolveParamNames(val);\n const fn = new Function(...params, val.body);\n const scope = state;\n el.addEventListener(key.slice(2), (e) => fn(scope, e));\n continue;\n }\n }\n\n bindProperty(el, key, val, state);\n }\n}\n\n/**\n * @param {any} el\n * @param {string} key\n * @param {any} val\n * @param {Record<string, any>} state\n */\nfunction bindProperty(el, key, val, state) {\n if (isRefObj(val)) {\n if (key === \"id\") {\n el[key] = resolveRef(val.$ref, state);\n return;\n }\n effect(() => {\n el[key] = resolveRef(val.$ref, state);\n });\n return;\n }\n\n // Universal ${} reactivity — template strings in element properties\n if (isTemplateString(val)) {\n effect(() => {\n el[key] = evaluateTemplate(val, state);\n });\n return;\n }\n\n el[key] = val;\n}\n\n/**\n * Apply inline styles and emit a scoped <style> block for nested CSS selectors and @custom-media\n * breakpoint rules.\n *\n * @param {HTMLElement} el\n * @param {Record<string, any>} styleDef\n * @param {Record<string, any>} [mediaQueries] Named breakpoints from root $media. Default is `{}`\n * @param {Record<string, any>} [state] Component scope for template string evaluation. Default is\n * `{}`\n */\nexport function applyStyle(el, styleDef, mediaQueries = {}, state = {}) {\n /** @type {Record<string, any>} */\n const nested = {};\n /** @type {Record<string, any>} */\n const media = {};\n\n for (const [prop, val] of Object.entries(styleDef)) {\n if (prop.startsWith(\"@\")) media[prop] = val;\n else if (isNestedSelector(prop)) nested[prop] = val;\n else if (prop.startsWith(\"--\")) {\n if (isTemplateString(val))\n effect(() => {\n el.style.setProperty(prop, evaluateTemplate(val, state));\n });\n else el.style.setProperty(prop, val);\n } else if (isTemplateString(val))\n effect(() => {\n /** @type {any} */ (el.style)[prop] = evaluateTemplate(val, state);\n });\n else /** @type {any} */ (el.style)[prop] = val;\n }\n\n const hasNested = Object.keys(nested).length > 0;\n const hasMedia = Object.keys(media).length > 0;\n if (!hasNested && !hasMedia) return;\n\n const uid = `jx-${Math.random().toString(36).slice(2, 7)}`;\n el.dataset.jx = uid;\n\n let css = \"\";\n\n for (const [sel, rules] of Object.entries(nested)) {\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", `[data-jx=\"${uid}\"]`)\n : sel.startsWith(\"[\")\n ? `[data-jx=\"${uid}\"]${sel}`\n : `[data-jx=\"${uid}\"] ${sel}`;\n css += `${resolved} { ${toCSSText(rules)} }\\n`;\n }\n\n for (const [key, rules] of Object.entries(media)) {\n if (key === \"@--\") continue; // base canvas width, not a real media query\n const query = key.startsWith(\"@--\")\n ? (mediaQueries[key.slice(1)] ?? key.slice(1))\n : key.slice(1);\n const scope = `[data-jx=\"${uid}\"]`;\n css += `@media ${query} { ${scope} { ${toCSSText(rules)} } }\\n`;\n for (const [sel, nestedRules] of Object.entries(rules)) {\n if (!isNestedSelector(sel)) continue;\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", scope)\n : sel.startsWith(\"[\")\n ? `${scope}${sel}`\n : `${scope} ${sel}`;\n css += `@media ${query} { ${resolved} { ${toCSSText(nestedRules)} } }\\n`;\n }\n }\n\n const tag = document.createElement(\"style\");\n tag.textContent = css;\n document.head.appendChild(tag);\n}\n\n/**\n * @param {HTMLElement} el\n * @param {Record<string, any>} attrs\n * @param {Record<string, any>} state\n */\nfunction applyAttributes(el, attrs, state) {\n for (const [k, v] of Object.entries(attrs)) {\n if (isRefObj(v)) {\n effect(() => el.setAttribute(k, String(resolveRef(v.$ref, state) ?? \"\")));\n } else if (isTemplateString(v)) {\n effect(() => el.setAttribute(k, String(evaluateTemplate(v, state))));\n } else {\n el.setAttribute(k, String(v));\n }\n }\n}\n\n// ─── Array mapping ────────────────────────────────────────────────────────────\n\n/**\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {any} [options]\n * @returns {HTMLElement}\n */\nfunction renderMappedArray(def, state, options) {\n const path = options?._path ?? [];\n const container = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) options.onNodeCreated(container, path, def);\n\n applyProperties(container, def, state);\n applyStyle(container, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(container, def.attributes ?? {}, state);\n const { items: itemsSrc, map: mapDef, filter: filterRef, sort: sortRef } = def.children;\n\n effect(() => {\n container.innerHTML = \"\";\n let items;\n if (isRefObj(itemsSrc)) {\n items = resolveRef(itemsSrc.$ref, state);\n } else {\n items = itemsSrc;\n }\n if (!Array.isArray(items)) return;\n if (filterRef) {\n const fn = resolveRef(filterRef.$ref, state);\n if (typeof fn === \"function\") items = items.filter(fn);\n }\n if (sortRef) {\n const fn = resolveRef(sortRef.$ref, state);\n if (typeof fn === \"function\") items = [...items].sort(fn);\n }\n\n items.forEach((item, index) => {\n const child = Object.create(state);\n child.$map = { item, index };\n child[\"$map/item\"] = item;\n child[\"$map/index\"] = index;\n const childOpts = options\n ? { ...options, _path: [...path, \"children\", \"map\", index] }\n : undefined;\n container.appendChild(renderNode(mapDef, child, childOpts));\n });\n });\n\n return container;\n}\n\n// ─── $switch ──────────────────────────────────────────────────────────────────\n\n/**\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {any} [options]\n * @returns {HTMLElement}\n */\nfunction renderSwitch(def, state, options) {\n const path = options?._path ?? [];\n const container = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) options.onNodeCreated(container, path, def);\n\n applyProperties(container, def, state);\n applyStyle(container, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(container, def.attributes ?? {}, state);\n let generation = 0;\n\n effect(() => {\n container.innerHTML = \"\";\n const key = resolveRef(def.$switch.$ref, state);\n const caseDef = def.cases?.[key];\n if (!caseDef) return;\n\n if (isRefObj(caseDef)) {\n // External $ref — fetch and render asynchronously\n const gen = ++generation;\n const href = new URL(caseDef.$ref, location.href).href;\n resolve(href)\n .then(async (doc) => {\n if (gen !== generation) return;\n const childScope = await buildScope(doc, {}, href);\n if (gen !== generation) return;\n container.innerHTML = \"\";\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.appendChild(renderNode(doc, childScope, childOpts));\n })\n .catch((/** @type {any} */ e) =>\n console.error(\"Jx $switch: failed to load external case\", caseDef.$ref, e),\n );\n return;\n }\n\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.appendChild(renderNode(caseDef, state, childOpts));\n });\n\n return container;\n}\n\n// ─── Prototype namespaces (Shape 5) ──────────────────────────────────────────\n\n/**\n * Resolve a $prototype definition into a value for the reactive scope.\n *\n * Returns a ref() for async/persistent entries (Request, Storage, Cookie, IndexedDB), or a plain\n * value for simple entries (Set, Map, FormData, Blob).\n *\n * @param {Record<string, any>} def - State entry with $prototype\n * @param {Record<string, any>} state - Reactive scope proxy\n * @param {string} key - Def key (for diagnostics)\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<any>}\n */\nexport async function resolvePrototype(def, state, key, base) {\n // ── External class via $src ─────────────────────────────────────────────────\n if (def.$src) {\n return resolveExternalPrototype(def, state, key, base);\n }\n\n switch (def.$prototype) {\n case \"Request\": {\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n const debounceMs = def.debounce ?? 0;\n /** @type {any} */\n let debounceTimer = null;\n\n if (!def.manual) {\n effect(() => {\n let url;\n if (isTemplateString(def.url)) {\n url = evaluateTemplate(def.url, state);\n } else {\n url = def.url;\n }\n if (!url || url === \"undefined\" || url.includes(\"undefined\")) return;\n\n const controller = new AbortController();\n onEffectCleanup(() => {\n controller.abort();\n clearTimeout(debounceTimer);\n });\n\n const doFetch = () =>\n fetch(url, {\n signal: controller.signal,\n method: def.method ?? \"GET\",\n ...(def.headers && { headers: def.headers }),\n ...(def.body && {\n body: typeof def.body === \"object\" ? JSON.stringify(def.body) : def.body,\n }),\n })\n .then((r) => (r.ok ? r.json() : Promise.reject(r.statusText)))\n .then((d) => {\n s.value = d;\n })\n .catch((/** @type {any} */ e) => {\n if (e.name !== \"AbortError\") s.value = { error: String(e) };\n });\n\n if (debounceMs > 0) {\n debounceTimer = setTimeout(doFetch, debounceMs);\n } else {\n doFetch();\n }\n });\n }\n\n return s;\n }\n\n case \"URLSearchParams\":\n return computed(() => {\n /** @type {Record<string, string>} */\n const p = {};\n for (const [k, v] of Object.entries(def)) {\n if (k !== \"$prototype\") {\n p[k] = isRefObj(v)\n ? resolveRef(v.$ref, state)\n : isTemplateString(v)\n ? evaluateTemplate(v, state)\n : v;\n }\n }\n return new URLSearchParams(p).toString();\n });\n\n case \"LocalStorage\":\n case \"SessionStorage\": {\n const store = def.$prototype === \"LocalStorage\" ? localStorage : sessionStorage;\n const k = def.key ?? key;\n let init;\n try {\n const s = store.getItem(k);\n init = s !== null ? JSON.parse(s) : (def.default ?? null);\n } catch {\n init = def.default ?? null;\n }\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const storageState = ref(init);\n // Persist on change\n effect(() => {\n const v = storageState.value;\n if (v === null) {\n try {\n store.removeItem(k);\n } catch {}\n } else {\n try {\n store.setItem(k, JSON.stringify(v));\n } catch {}\n }\n });\n return storageState;\n }\n\n case \"Cookie\": {\n const name = def.name ?? key;\n const read = () => {\n const m = document.cookie.match(new RegExp(\"(?:^|; )\" + name + \"=([^;]*)\"));\n if (!m) return null;\n try {\n return JSON.parse(decodeURIComponent(m[1]));\n } catch {\n return m[1];\n }\n };\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const cookieState = ref(read() ?? def.default ?? null);\n // Persist on change\n effect(() => {\n const v = cookieState.value;\n let s = `${name}=${encodeURIComponent(JSON.stringify(v))}`;\n if (def.maxAge !== undefined) s += `; Max-Age=${def.maxAge}`;\n if (def.path) s += `; Path=${def.path}`;\n if (def.domain) s += `; Domain=${def.domain}`;\n if (def.secure) s += `; Secure`;\n if (def.sameSite) s += `; SameSite=${def.sameSite}`;\n document.cookie = s;\n });\n return cookieState;\n }\n\n case \"IndexedDB\": {\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const idbState = ref(null);\n const {\n database,\n store,\n version = 1,\n keyPath = \"id\",\n autoIncrement = true,\n indexes = [],\n } = def;\n const req = indexedDB.open(database, version);\n req.onupgradeneeded = (e) => {\n /** @type {any} */\n const db = /** @type {any} */ (e.target)?.result;\n if (!db.objectStoreNames.contains(store)) {\n const os = db.createObjectStore(store, { keyPath, autoIncrement });\n for (const i of indexes) os.createIndex(i.name, i.keyPath, { unique: i.unique ?? false });\n }\n };\n req.onsuccess = (e) => {\n /** @type {any} */\n const db = /** @type {any} */ (e.target)?.result;\n idbState.value = {\n database,\n store,\n version,\n isReady: true,\n getStore: (/** @type {string} */ mode = \"readwrite\") =>\n Promise.resolve(db.transaction(store, mode).objectStore(store)),\n };\n };\n req.onerror = () => {\n idbState.value = { error: req.error?.message };\n };\n return idbState;\n }\n\n case \"Set\":\n return new Set(def.default ?? []);\n\n case \"Map\":\n return new Map(Object.entries(def.default ?? {}));\n\n case \"FormData\": {\n const fd = new FormData();\n for (const [k, v] of Object.entries(def.fields ?? {})) fd.append(k, v);\n return fd;\n }\n\n case \"Blob\":\n return new Blob(def.parts ?? [], { type: def.type ?? \"text/plain\" });\n\n case \"ReadableStream\":\n return null;\n\n default:\n console.warn(\n `Jx: unknown $prototype \"${def.$prototype}\" for \"${key}\". Did you mean to add '$src'?`,\n );\n return ref(null);\n }\n}\n\n// ─── External class resolution ────────────────────────────────────────────────\n\n/** Reserved keys stripped from the config object passed to external class constructors. */\nconst EXTERNAL_RESERVED = new Set([\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n]);\n\n/**\n * Resolve an external class prototype via $src.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveExternalPrototype(def, state, key, base) {\n const src = def.$src;\n\n // Non-Function $prototype must use .class.json as entrypoint\n if (!src.endsWith(\".class.json\")) {\n throw new Error(\n `Jx: $prototype \"${def.$prototype}\" requires a .class.json $src, got \"${src}\". ` +\n `Wrap the class in a .class.json schema with $implementation.`,\n );\n }\n\n return resolveClassJson(def, state, key, base);\n}\n\n/**\n * Import a JS module and instantiate a class from it. Internal helper used by resolveClassJson for\n * $implementation.\n *\n * @param {Record<string, any>} def - Original state entry (for config extraction)\n * @param {string} src - JS module URL to import\n * @param {string} exportName - Export name to look up\n * @param {string} [base] - Base URL for resolution\n * @returns {Promise<any>}\n */\nasync function importAndInstantiate(def, src, exportName, base) {\n let mod;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src);\n } else {\n try {\n mod = await import(src);\n } catch {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n mod = await import(resolvedSrc);\n } else {\n throw new Error(`Failed to import \"${src}\"`);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const ExportedClass = mod[exportName] ?? mod.default?.[exportName];\n if (!ExportedClass) {\n throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\"`);\n }\n if (typeof ExportedClass !== \"function\") {\n throw new Error(`Jx: \"${exportName}\" from \"${src}\" is not a class`);\n }\n\n /** @type {Record<string, any>} */\n const config = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) config[k] = v;\n }\n\n const instance = new ExportedClass(config);\n\n let value;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n value = instance.value;\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity with external classes\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((/** @type {any} */ newVal) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Resolve a .class.json schema-defined class. Fetches the schema, follows $implementation if\n * hybrid, or constructs dynamically if self-contained.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveClassJson(def, state, key, base) {\n const src = def.$src;\n let classDef;\n\n // Try fetching the .class.json file directly\n try {\n const url = base ? new URL(src, base).href : src;\n const res = await fetch(url);\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n classDef = await res.json();\n } catch {\n // Fall back to dev proxy (server will handle .class.json resolution)\n return resolveViaDevProxy(def, state, key, base);\n }\n\n // Hybrid mode: $implementation points to the real JS module\n if (classDef.$implementation) {\n const schemaUrl = base ? new URL(src, base).href : new URL(src, location.href).href;\n const implSrc = new URL(classDef.$implementation, schemaUrl).href;\n const exportName = def.$export ?? classDef.title ?? def.$prototype;\n try {\n return await importAndInstantiate(def, implSrc, exportName, base);\n } catch {\n // Browser can't import the JS module — fall back to dev proxy with original .class.json def\n return resolveViaDevProxy(def, state, key, base);\n }\n }\n\n // Self-contained: construct class dynamically from schema\n const DynClass = classFromSchema(classDef);\n /** @type {Record<string, any>} */\n const config = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) config[k] = v;\n }\n const instance = new DynClass(config);\n\n let value;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n value = instance.value;\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((/** @type {any} */ newVal) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Dynamically construct a class from a .class.json schema definition. Browser-side: maps private\n * fields to _-prefixed public fields.\n *\n * @param {Record<string, any>} classDef\n * @returns {any}\n */\nfunction classFromSchema(classDef) {\n const fields = classDef.$defs?.fields ?? {};\n const ctor = classDef.$defs?.constructor;\n const methods = classDef.$defs?.methods ?? {};\n\n class DynClass {\n constructor(/** @type {Record<string, any>} */ config = {}) {\n for (const [key, field] of Object.entries(fields)) {\n /** @type {any} */\n const typedField = field;\n const id = typedField.identifier ?? key;\n const propName = typedField.access === \"private\" ? `_${id}` : id;\n if (config[id] !== undefined) /** @type {any} */ (this)[propName] = config[id];\n else if (typedField.initializer !== undefined)\n /** @type {any} */ (this)[propName] = typedField.initializer;\n else if (typedField.default !== undefined)\n /** @type {any} */ (this)[propName] = structuredClone(typedField.default);\n else /** @type {any} */ (this)[propName] = null;\n }\n if (ctor?.body) {\n const bodyStr = Array.isArray(ctor.body) ? ctor.body.join(\"\\n\") : ctor.body;\n new Function(\"config\", bodyStr).call(this, config);\n }\n }\n }\n\n for (const [key, method] of Object.entries(methods)) {\n /** @type {any} */\n const typedMethod = method;\n const name = typedMethod.identifier ?? key;\n const params = (typedMethod.parameters ?? []).map((/** @type {any} */ p) => {\n if (p.$ref) return p.$ref.split(\"/\").pop();\n return p.identifier ?? p.name ?? \"arg\";\n });\n const bodyStr = Array.isArray(typedMethod.body)\n ? typedMethod.body.join(\"\\n\")\n : (typedMethod.body ?? \"\");\n\n if (typedMethod.role === \"accessor\") {\n /** @type {PropertyDescriptor} */\n const descriptor = {};\n if (typedMethod.getter)\n descriptor.get = /** @type {any} */ (new Function(typedMethod.getter.body));\n if (typedMethod.setter) {\n const sp = (typedMethod.setter.parameters ?? []).map(\n (/** @type {any} */ p) => p.$ref?.split(\"/\").pop() ?? \"v\",\n );\n descriptor.set = /** @type {any} */ (new Function(...sp, typedMethod.setter.body));\n }\n Object.defineProperty(DynClass.prototype, name, { ...descriptor, configurable: true });\n } else if (typedMethod.scope === \"static\") {\n /** @type {any} */ (DynClass)[name] = new Function(...params, bodyStr);\n } else {\n /** @type {any} */ (DynClass.prototype)[name] = new Function(...params, bodyStr);\n }\n }\n\n Object.defineProperty(DynClass, \"name\", { value: classDef.title, configurable: true });\n return DynClass;\n}\n\n/**\n * Dev-mode fallback: when an $src module cannot run in the browser, proxy the resolve() call\n * through the Jx dev server (POST /**jx_resolve**). Supports reactive template strings in config\n * values via Vue effect().\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveViaDevProxy(def, state, key, base) {\n /** @type {Record<string, any>} */\n const config = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) config[k] = v;\n }\n\n const hasTemplates = Object.values(config).some((/** @type {any} */ v) => isTemplateString(v));\n\n /** @param {Record<string, any>} resolvedConfig */\n const doResolve = (resolvedConfig) =>\n fetch(\"/__jx_resolve__\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n $src: def.$src,\n $prototype: def.$prototype,\n $export: def.$export,\n $base: base,\n ...resolvedConfig,\n }),\n }).then((r) => {\n if (!r.ok) throw new Error(`Jx dev proxy ${r.status} for \"${key}\"`);\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n if (hasTemplates) {\n effect(() => {\n /** @type {Record<string, any>} */\n const resolvedConfig = {};\n for (const [k, v] of Object.entries(config)) {\n resolvedConfig[k] = isTemplateString(v) ? evaluateTemplate(v, state) : v;\n }\n doResolve(resolvedConfig)\n .then((/** @type {any} */ value) => {\n s.value = value;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx dev proxy:\", e));\n });\n } else {\n doResolve(config)\n .then((/** @type {any} */ value) => {\n s.value = value;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx dev proxy:\", e));\n }\n return s;\n}\n\n// ─── Server function resolution (dev mode) ────────────────────────────────────\n\n/**\n * Resolve a timing: \"server\" entry in dev mode by executing the function client-side. In\n * production, the compiler replaces this with a fetch to the generated server handler.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveServerFunction(def, state, key, base) {\n const src = def.$src;\n const exportName = def.$export;\n\n let mod;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src);\n } else {\n try {\n mod = await import(src);\n } catch {\n if (base) {\n try {\n const resolvedSrc = new URL(src, base).href;\n mod = await import(resolvedSrc);\n } catch {\n // Module cannot run in the browser — fall back to dev server proxy\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n } else {\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const fn = mod[exportName] ?? mod.default?.[exportName];\n if (!fn) throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\" for \"${key}\"`);\n if (typeof fn !== \"function\")\n throw new Error(`Jx: \"${exportName}\" from \"${src}\" is not a function`);\n\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((/** @type {any} */ v) => isRefObj(v));\n const resolveArgs = () => {\n /** @type {Record<string, any>} */\n const args = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef(/** @type {any} */ (v).$ref, state) : v;\n }\n return args;\n };\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n fn(args)\n .then((/** @type {any} */ result) => {\n s.value = result;\n })\n .catch(() => {});\n });\n } else {\n s.value = await fn(resolveArgs());\n }\n return s;\n}\n\n/**\n * Dev-mode fallback: when a timing: \"server\" module cannot run in the browser, proxy the function\n * call through the Jx dev server (POST /**jx_server**). Supports reactive $ref arguments via Vue\n * effect().\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveServerFunctionViaProxy(def, state, key, base) {\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((/** @type {any} */ v) => isRefObj(v));\n\n const resolveArgs = () => {\n /** @type {Record<string, any>} */\n const args = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef(/** @type {any} */ (v).$ref, state) : v;\n }\n return args;\n };\n\n /** @param {Record<string, any>} args */\n const doResolve = (args) =>\n fetch(\"/__jx_server__\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n $src: def.$src,\n $export: def.$export,\n $base: base,\n arguments: args,\n }),\n }).then((r) => {\n if (!r.ok) throw new Error(`Jx server proxy ${r.status} for \"${key}\"`);\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n doResolve(args)\n .then((/** @type {any} */ result) => {\n s.value = result;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx server proxy:\", e));\n });\n } else {\n doResolve(resolveArgs())\n .then((/** @type {any} */ result) => {\n s.value = result;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx server proxy:\", e));\n }\n return s;\n}\n\n/**\n * Resolve a $ref string to a value in scope.\n *\n * With Vue reactivity, this reads directly from the reactive proxy. When called inside a effect or\n * computed, the read is tracked.\n *\n * @param {string} ref\n * @param {Record<string, any>} state - Reactive scope proxy (or child scope)\n * @returns {any}\n */\nexport function resolveRef(ref, state) {\n if (typeof ref !== \"string\") return ref;\n if (ref.startsWith(\"$map/\")) {\n const parts = ref.split(\"/\");\n const key = parts[1]; // 'item' or 'index'\n const base = state.$map?.[key] ?? state[\"$map/\" + key];\n return parts.length > 2 ? getPath(base, parts.slice(2).join(\"/\")) : base;\n }\n if (ref.startsWith(\"#/state/\")) {\n const sub = ref.slice(\"#/state/\".length);\n const slash = sub.indexOf(\"/\");\n if (slash < 0) return state[sub];\n return getPath(state[sub.slice(0, slash)], sub.slice(slash + 1));\n }\n if (ref.startsWith(\"parent#/\")) return state[ref.slice(\"parent#/\".length)];\n if (ref.startsWith(\"window#/\")) return getPath(globalThis.window, ref.slice(\"window#/\".length));\n if (ref.startsWith(\"document#/\"))\n return getPath(globalThis.document, ref.slice(\"document#/\".length));\n return state[ref] ?? null;\n}\n\n// ─── Utilities ────────────────────────────────────────────────────────────────\n\n/**\n * Check if v is a Vue ref (including computed).\n *\n * @param {any} v\n * @returns {boolean}\n */\nexport function isSignal(v) {\n return isRef(v);\n}\n\n/**\n * @param {any} v\n * @returns {boolean}\n */\nfunction isRefObj(v) {\n return v !== null && typeof v === \"object\" && typeof v.$ref === \"string\";\n}\n\n/**\n * @param {string} k\n * @returns {boolean}\n */\nfunction isNestedSelector(k) {\n return k.startsWith(\":\") || k.startsWith(\".\") || k.startsWith(\"&\") || k.startsWith(\"[\");\n}\n\n/**\n * @param {any} obj\n * @param {string} path\n * @returns {any}\n */\nfunction getPath(obj, path) {\n return path.split(/[./]/).reduce((o, k) => o?.[k], obj);\n}\n\n/**\n * @param {Record<string, any>} def\n * @param {Record<string, any>} parentState\n * @returns {Record<string, any>}\n */\nfunction mergeProps(def, parentState) {\n const child = Object.create(parentState);\n for (const [k, v] of Object.entries(def.$props ?? {})) {\n child[k] = isRefObj(v) ? resolveRef(v.$ref, parentState) : v;\n }\n return child;\n}\n\n/**\n * Convert camelCase to kebab-case.\n *\n * @param {string} s\n * @returns {string}\n */\nexport function camelToKebab(s) {\n return s.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);\n}\n\n/**\n * Convert a style rules object to a CSS text string (skipping nested selectors).\n *\n * @param {Record<string, any>} rules\n * @returns {string}\n */\nexport function toCSSText(rules) {\n return Object.entries(rules)\n .filter(([k]) => !isNestedSelector(k))\n .map(([p, v]) => `${camelToKebab(p)}: ${v}`)\n .join(\"; \");\n}\n\n// ─── Custom Element Registration ──────────────────────────────────────────────\n\nconst _elementDefs = new Map();\n\n/**\n * Resolve and register $elements entries (depth-first).\n *\n * @param {any[]} elements\n * @param {string} base\n * @returns {Promise<void>}\n */\nasync function registerElements(elements, base) {\n for (const entry of elements) {\n // Bare string: npm package side-effect import (registers custom elements)\n if (typeof entry === \"string\") {\n try {\n // Bare specifiers need a URL path for the browser; the dev server resolves\n // /node_modules/<pkg> to the package entry point via exports/module/main.\n const specifier =\n entry.startsWith(\"/\") || entry.startsWith(\".\") ? entry : `/node_modules/${entry}`;\n await import(specifier);\n } catch (e) {\n console.warn(`Jx: failed to import package \"${entry}\"`, e);\n }\n continue;\n }\n if (!isRefObj(entry)) continue;\n const href = new URL(entry.$ref, base).href;\n const doc = await resolve(href);\n if (!doc.tagName || !doc.tagName.includes(\"-\")) continue;\n if (customElements.get(doc.tagName)) continue;\n\n // Depth-first: register sub-dependencies first\n if (doc.$elements) {\n await registerElements(doc.$elements, href);\n }\n\n await defineElement(doc, href);\n }\n}\n\n/**\n * Inject head elements from $head declarations. Each entry is { tagName, attributes } — bare npm\n * specifiers in href/src are rewritten to /node_modules/ paths for the dev server.\n *\n * @param {any[]} entries\n * @param {string} _base - Document base URL for resolving relative paths\n */\nfunction injectHead(entries, _base) {\n for (const entry of entries) {\n if (!entry || !entry.tagName) continue;\n const tag = entry.tagName.toLowerCase();\n const attrs = { ...entry.attributes };\n // Resolve href/src: bare npm specifiers -> /node_modules/ path\n for (const key of [\"href\", \"src\"]) {\n if (\n attrs[key] &&\n !attrs[key].startsWith(\"/\") &&\n !attrs[key].startsWith(\".\") &&\n !attrs[key].startsWith(\"http\")\n ) {\n attrs[key] = `/node_modules/${attrs[key]}`;\n }\n }\n\n // Deduplicate: skip if an identical element already exists\n const selector = `${tag}${attrs.href ? `[href=\"${attrs.href}\"]` : \"\"}${attrs.src ? `[src=\"${attrs.src}\"]` : \"\"}`;\n if (selector !== tag && document.head.querySelector(selector)) continue;\n\n const el = document.createElement(tag);\n for (const [k, v] of Object.entries(attrs)) {\n el.setAttribute(k, /** @type {string} */ (v));\n }\n if (entry.textContent) el.textContent = entry.textContent;\n document.head.appendChild(el);\n }\n}\n\n/**\n * Register a custom element from a Jx document.\n *\n * @param {string | Record<string, any>} source - URL to .json file, or raw document object\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<void>}\n */\nexport async function defineElement(source, base) {\n if (typeof source === \"string\") {\n base = new URL(source, base ?? location.href).href;\n source = await resolve(source);\n }\n base = base ?? location.href;\n\n /** @type {Record<string, any>} */\n const source_ = /** @type {Record<string, any>} */ (source);\n\n const tagName = source_.tagName;\n if (!tagName || !tagName.includes(\"-\")) {\n throw new Error(`Jx defineElement: tagName \"${tagName}\" must contain a hyphen`);\n }\n if (customElements.get(tagName)) return;\n\n // Register sub-dependencies first\n if (source_.$elements) {\n await registerElements(source_.$elements, base);\n }\n\n _elementDefs.set(tagName, { doc: source_, base });\n\n const def = source_;\n const observedAttrs = def.observedAttributes ?? [];\n\n const ElementClass = class extends HTMLElement {\n static get observedAttributes() {\n return observedAttrs;\n }\n\n async connectedCallback() {\n if (this._jxInitialized) return;\n this._jxInitialized = true;\n\n const state = await buildScope(def, {}, base);\n\n // Read properties from directive encoding (markdown → data-jx-props)\n const propsAttr = this.getAttribute(\"data-jx-props\");\n if (propsAttr) {\n try {\n const props = JSON.parse(propsAttr);\n for (const [key, val] of Object.entries(props)) {\n if (key in (def.state ?? {})) state[key] = val;\n }\n } catch {}\n this.removeAttribute(\"data-jx-props\");\n }\n\n // Merge $props set as JS properties by parent before connection\n for (const key of Object.keys(def.state ?? {})) {\n if (key in this && /** @type {any} */ (this)[key] !== undefined) {\n state[key] = /** @type {any} */ (this)[key];\n }\n }\n // Set up property getters/setters that forward into reactive state\n for (const key of Object.keys(def.state ?? {})) {\n if (!(key in HTMLElement.prototype)) {\n Object.defineProperty(this, key, {\n get: () => state[key],\n set: (/** @type {any} */ v) => {\n state[key] = v;\n },\n configurable: true,\n });\n }\n }\n\n /** @type {any} */ (this)._state = state;\n\n // Capture light DOM children (for slot distribution) before rendering\n const slottedChildren = Array.from(this.childNodes);\n this.innerHTML = \"\";\n\n // Custom elements default to display:inline — use block so they behave as\n // containers (matching <div> semantics). The component's own style can\n // override this if needed.\n if (!this.style.display) this.style.display = \"block\";\n\n // Render template into light DOM (once, not in effect — inner effects handle reactivity)\n applyStyle(this, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(this, def.attributes ?? {}, state);\n\n const children = Array.isArray(def.children) ? def.children : [];\n for (const childDef of children) {\n this.appendChild(renderNode(childDef, state));\n }\n\n // Slot distribution (light DOM)\n distributeSlots(this, slottedChildren);\n\n // Lifecycle: onMount\n if (typeof state.onMount === \"function\") {\n queueMicrotask(() => state.onMount(state));\n }\n }\n\n disconnectedCallback() {\n /** @type {any} */\n const self = this;\n if (typeof self._state?.onUnmount === \"function\") {\n self._state.onUnmount(self._state);\n }\n }\n\n adoptedCallback() {\n /** @type {any} */\n const self = this;\n if (typeof self._state?.onAdopted === \"function\") {\n self._state.onAdopted(self._state);\n }\n }\n\n attributeChangedCallback(\n /** @type {string} */ name,\n /** @type {string | null} */ oldVal,\n /** @type {string | null} */ newVal,\n ) {\n /** @type {any} */\n const self = this;\n if (!self._state || oldVal === newVal) return;\n const camelKey = name.replace(\n /-([a-z])/g,\n (/** @type {string} */ _, /** @type {string} */ c) => c.toUpperCase(),\n );\n const current = self._state[camelKey];\n if (typeof current === \"number\") self._state[camelKey] = Number(newVal);\n else if (typeof current === \"boolean\")\n self._state[camelKey] = newVal !== null && newVal !== \"false\";\n else self._state[camelKey] = newVal;\n }\n };\n\n customElements.define(tagName, ElementClass);\n}\n\n/**\n * Render a registered custom element with $props (property-first interface).\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {any} [options]\n * @param {any[]} [path]\n * @returns {HTMLElement}\n */\nfunction renderCustomElementWithProps(def, state, options, path) {\n /** @type {any} */\n const el = document.createElement(def.tagName);\n\n if (options?.onNodeCreated) options.onNodeCreated(el, path, def);\n\n // Set JS properties from $props (before connection)\n for (const [key, val] of Object.entries(def.$props ?? {})) {\n if (isRefObj(val)) {\n const resolved = resolveRef(val.$ref, state);\n el[key] = resolved;\n // Reactive forwarding: re-set the property when the source changes\n effect(() => {\n el[key] = resolveRef(val.$ref, state);\n });\n } else if (isTemplateString(val)) {\n effect(() => {\n el[key] = evaluateTemplate(val, state);\n });\n } else {\n el[key] = val;\n }\n }\n\n // Apply host-level style and attributes from the usage site\n applyStyle(el, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(el, def.attributes ?? {}, state);\n\n // Append slotted children\n const children = Array.isArray(def.children) ? def.children : [];\n for (let i = 0; i < children.length; i++) {\n const childOpts = options && path ? { ...options, _path: [...path, \"children\", i] } : undefined;\n el.appendChild(renderNode(children[i], state, childOpts));\n }\n\n return el;\n}\n\n/**\n * Light DOM slot distribution.\n *\n * @param {HTMLElement} host\n * @param {ChildNode[]} slottedChildren\n */\nfunction distributeSlots(host, slottedChildren) {\n if (slottedChildren.length === 0) return;\n\n const slots = host.querySelectorAll(\"slot\");\n if (slots.length === 0) return;\n\n /** @type {Map<string | null, ChildNode[]>} */\n const named = new Map();\n /** @type {ChildNode[]} */\n const unnamed = [];\n\n for (const child of slottedChildren) {\n if (\n child.nodeType === Node.ELEMENT_NODE &&\n /** @type {Element} */ (child).getAttribute(\"slot\")\n ) {\n const name = /** @type {Element} */ (child).getAttribute(\"slot\");\n if (!named.has(name)) named.set(name, []);\n /** @type {ChildNode[]} */ (named.get(name)).push(child);\n } else {\n unnamed.push(child);\n }\n }\n\n for (const slot of slots) {\n const name = slot.getAttribute(\"name\");\n const matches = name ? (named.get(name) ?? []) : unnamed;\n if (matches.length > 0) {\n slot.innerHTML = \"\";\n for (const child of matches) {\n slot.appendChild(child);\n }\n }\n }\n}\n"
7
+ "/**\n * Jx — JSON-native reactive web component runtime\n * @version 3.0.0\n * @license MIT\n *\n * Four-step pipeline:\n * 1. resolve — fetch JSON source (or accept raw object)\n * 2. buildScope — state detection + reactive proxy construction\n * 3. render — walk resolved tree, build DOM, wire reactive effects\n * 4. output — append to target\n *\n * @module jx\n */\n\nimport { reactive, ref, computed, effect, isRef, onEffectCleanup } from \"@vue/reactivity\";\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Mount a Jx document into a DOM container.\n *\n * @example\n * import { Jx } from \"@jxsuite/runtime\";\n * const state = await Jx(\"./counter.json\", document.getElementById(\"app\"));\n *\n * @param {string | Record<string, any>} source - Path to .json file, URL, or raw document object\n * @param {HTMLElement} [target] Default is `document.body`\n * @param {any} [options]\n * @returns {Promise<Record<string, any>>} Resolves with the live component scope (state reactive\n * proxy)\n */\nexport async function Jx(source, target = document.body, options) {\n const base = typeof source === \"string\" ? new URL(source, location.href).href : location.href;\n const doc = await resolve(source);\n\n // Register custom elements declared in $elements (depth-first)\n if (doc.$elements) {\n await registerElements(doc.$elements, base);\n }\n\n // Inject <head> elements declared in $head (link, meta, script, etc.)\n if (doc.$head) {\n injectHead(doc.$head, base);\n }\n\n const state = await buildScope(doc, {}, base);\n target.appendChild(renderNode(doc, state, options));\n if (typeof state.onMount === \"function\") state.onMount(state);\n return state;\n}\n\n// ─── Step 1: Resolve ──────────────────────────────────────────────────────────\n\n/**\n * Fetch and parse a Jx JSON source. Accepts a URL string, absolute URL, or a pre-parsed object.\n *\n * @param {string | Record<string, any>} source\n * @returns {Promise<any>}\n */\nexport async function resolve(source) {\n if (typeof source !== \"string\") return source;\n const res = await fetch(source);\n if (!res.ok) throw new Error(`Jx: failed to fetch ${source} (${res.status})`);\n return res.json();\n}\n\n// ─── Step 2: Build scope ──────────────────────────────────────────────────────\n\n/** JSON Schema keywords used to identify pure type definitions (Shape 2b). */\nconst SCHEMA_KEYWORDS = new Set([\n \"type\",\n \"properties\",\n \"items\",\n \"enum\",\n \"minimum\",\n \"maximum\",\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"required\",\n \"examples\",\n]);\n\n/** /** @type {{ skip: boolean }} */\nconst _serverFnConfig = { skip: false };\n/** Set to true to suppress timing: \"server\" resolution (used by Studio edit mode). */\nexport function setSkipServerFunctions(/** @type {boolean} */ v) {\n _serverFnConfig.skip = v;\n}\n\n/**\n * Build the reactive scope (state) from the document using the five-shape detection algorithm.\n *\n * @param {Record<string, any>} doc\n * @param {Record<string, any>} [parentScope] Default is `{}`\n * @param {string} [base] Base URL for resolving $src imports. Default is `location.href`\n * @returns {Promise<Record<string, any>>} Reactive proxy (state)\n */\nexport async function buildScope(doc, parentScope = {}, base = location.href) {\n /** @type {Record<string, any>} */\n const raw = {};\n\n // Merge parent scope properties\n for (const [key, val] of Object.entries(parentScope)) {\n raw[key] = val;\n }\n\n const defs = doc.state ?? {};\n\n // Pass 0: resolve bare $prototype names via import map\n const imports = doc.imports ?? {};\n for (const [, def] of Object.entries(defs)) {\n if (\n def &&\n typeof def === \"object\" &&\n !Array.isArray(def) &&\n def.$prototype &&\n def.$prototype !== \"Function\" &&\n !def.$src\n ) {\n const mapped = imports[def.$prototype];\n if (mapped) {\n if (typeof mapped !== \"string\" || !mapped.endsWith(\".class.json\")) {\n console.warn(\n `Jx: import \"${def.$prototype}\" must map to a .class.json path, got \"${mapped}\"`,\n );\n continue;\n }\n def.$src = mapped;\n }\n }\n }\n\n // First pass: collect naked values, expanded defaults, plain objects\n for (const [key, def] of Object.entries(defs)) {\n // 1. String value\n if (typeof def === \"string\") {\n if (!def.includes(\"${\")) raw[key] = def; // Shape 1: naked string\n continue; // template strings handled in second pass\n }\n\n // 2. Number, boolean, null\n if (typeof def === \"number\" || typeof def === \"boolean\" || def === null) {\n raw[key] = def;\n continue;\n }\n\n // 3. Array\n if (Array.isArray(def)) {\n raw[key] = def;\n continue;\n }\n\n // 4. Object\n if (typeof def === \"object\") {\n if (def.$prototype) continue; // handled in later passes\n if (def.timing === \"server\" && def.$src && def.$export) continue; // handled in fifth pass\n if (\"default\" in def) {\n raw[key] = def.default;\n continue;\n } // Shape 2: expanded signal\n if (hasSchemaKeywords(def)) continue; // Shape 2b: pure type def\n raw[key] = def; // Shape 1: plain object\n }\n }\n\n // Wrap in Vue reactive proxy — deep reactivity from this point on\n const state = reactive(raw);\n\n // Second pass: template strings → computed\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"string\" && def.includes(\"${\")) {\n state[key] = computed(() => evaluateTemplate(def, state));\n }\n }\n\n // Third pass: $prototype: \"Function\" entries\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"object\" && def?.$prototype === \"Function\") {\n state[key] = await resolveFunction(def, state, key, base);\n }\n }\n\n // Fourth pass: other $prototype entries (Request, Set, Map, etc.)\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"object\" && def?.$prototype && def.$prototype !== \"Function\") {\n state[key] = await resolvePrototype(def, state, key, base);\n }\n }\n\n // Fifth pass: timing: \"server\" entries (dev mode — execute client-side, boundary unenforced)\n if (!_serverFnConfig.skip) {\n for (const [key, def] of Object.entries(defs)) {\n if (\n def != null &&\n typeof def === \"object\" &&\n def.timing === \"server\" &&\n def.$src &&\n def.$export &&\n !def.$prototype\n ) {\n state[key] = await resolveServerFunction(def, state, key, base);\n }\n }\n }\n\n if (doc.$media) {\n state[\"$media\"] = doc.$media;\n }\n\n return state;\n}\n\n/**\n * Check whether an object contains any JSON Schema keywords. Used to discriminate Shape 2b (pure\n * type definition) from Shape 1 (naked object).\n *\n * @param {Record<string, any>} obj\n * @returns {boolean}\n */\nfunction hasSchemaKeywords(obj) {\n for (const k of Object.keys(obj)) {\n if (SCHEMA_KEYWORDS.has(k)) return true;\n }\n return false;\n}\nexport { hasSchemaKeywords };\n\n/**\n * Evaluate a template string in the context of state and optional $map. Templates use\n * `state.varName` and `$map.item` syntax.\n *\n * @param {string} str\n * @param {Record<string, any>} state\n * @returns {any}\n */\nfunction evaluateTemplate(str, state) {\n const fn = new Function(\"state\", \"$map\", `return \\`${str}\\``);\n return fn(state, state?.$map);\n}\n\n// ─── Step 2b: Function resolution (Shape 4) ─────────────────────────────────\n\n/** Module cache for $src imports (shared with external class resolution). */\nconst _moduleCache = new Map();\n\n/**\n * Resolve a $prototype: \"Function\" entry into a function or computed.\n *\n * Functions receive state as their first parameter at call time. Functions with a return statement\n * in their body are wrapped in computed() for reactive evaluation.\n *\n * @param {Record<string, any>} def - State entry with $prototype: \"Function\"\n * @param {Record<string, any>} state - Reactive scope proxy\n * @param {string} key - Def key name\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<any>}\n */\nasync function resolveFunction(def, state, key, base) {\n if (def.body && def.$src) {\n throw new Error(`Jx: '${key}' declares both body and $src — these are mutually exclusive`);\n }\n if (!def.body && !def.$src) {\n const params = resolveParamNames(def);\n const noop = new Function(...params, \"\");\n Object.defineProperty(noop, \"name\", { value: def.name ?? key, configurable: true });\n return noop;\n }\n\n let fn;\n\n if (def.body) {\n const params = resolveParamNames(def);\n fn = new Function(...params, def.body);\n Object.defineProperty(fn, \"name\", { value: def.name ?? key, configurable: true });\n } else {\n // $src: dynamic import\n const src = def.$src;\n const exportName = def.$export ?? key;\n let mod;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src);\n } else {\n try {\n mod = await import(src);\n } catch {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n mod = await import(resolvedSrc);\n } else {\n throw new Error(`Jx: failed to import '$src' \"${src}\" for \"${key}\"`);\n }\n }\n _moduleCache.set(src, mod);\n }\n fn = mod[exportName] ?? mod.default?.[exportName];\n if (typeof fn !== \"function\") {\n throw new Error(`Jx: export \"${exportName}\" not found or not a function in \"${src}\"`);\n }\n }\n\n // Detect computed: body contains a return statement\n if (def.body && /\\breturn\\b/.test(def.body)) {\n return computed(() => fn(state));\n }\n\n return fn;\n}\n\n// ─── Step 3: Render ───────────────────────────────────────────────────────────\n\n/**\n * Extract parameter names from a function definition. Supports both legacy \"arguments\" (string\n * array) and CEM-compatible \"parameters\" (object array). Always ensures \"state\" is the first\n * parameter.\n *\n * @param {Record<string, any>} def\n * @returns {string[]}\n */\nfunction resolveParamNames(def) {\n const raw = def.parameters ?? def.arguments ?? [];\n let names;\n if (Array.isArray(raw) && raw.length > 0 && typeof raw[0] === \"object\") {\n // CEM-style: [{name: \"event\", type: {...}}, ...]\n names = raw.map((p) => p.name ?? p.identifier ?? \"arg\");\n } else {\n // Legacy string array: [\"state\", \"event\"] or [\"event\"]\n names = raw;\n }\n return names.length > 0 && names[0] === \"state\" ? names : [\"state\", ...names];\n}\n\n/**\n * Reserved Jx keys — never set as DOM properties.\n *\n * @type {Set<string>}\n */\nexport const RESERVED_KEYS = new Set([\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"state\",\n \"$ref\",\n \"$props\",\n \"$elements\",\n \"$switch\",\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"$media\",\n \"$map\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n \"tagName\",\n \"children\",\n \"style\",\n \"attributes\",\n \"items\",\n \"map\",\n \"filter\",\n \"sort\",\n \"cases\",\n \"observedAttributes\",\n]);\n\n/**\n * Recursively render a Jx element definition into a DOM element.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state - Reactive scope proxy (or child scope via Object.create)\n * @param {any} [options]\n * @returns {HTMLElement | Text}\n */\nexport function renderNode(def, state, options) {\n const path = options?._path ?? [];\n\n // Text node children: bare strings/numbers/booleans produce DOM Text nodes\n if (typeof def === \"string\" || typeof def === \"number\" || typeof def === \"boolean\") {\n const textNode = document.createTextNode(String(def));\n if (typeof def === \"string\" && isTemplateString(def)) {\n effect(() => {\n textNode.textContent = evaluateTemplate(def, state);\n });\n }\n return textNode;\n }\n\n // Extend scope with any $-prefixed local bindings declared on this node\n let localState = state;\n for (const [key, val] of Object.entries(def)) {\n if (key.startsWith(\"$\") && !RESERVED_KEYS.has(key)) {\n if (localState === state) localState = Object.create(state);\n localState[key] = isRefObj(val) ? resolveRef(val.$ref, state) : val;\n }\n }\n\n // Custom element with $props: set JS properties on the element instance\n const tagName = def.tagName ?? \"div\";\n const isCustomEl = tagName.includes(\"-\") && customElements.get(tagName);\n\n if (def.$props && isCustomEl) {\n return renderCustomElementWithProps(def, localState, options, path);\n }\n\n if (def.$props) {\n const { $props: _$props, ...rest } = def;\n return renderNode(rest, mergeProps(def, localState), options);\n }\n if (def.$switch) return renderSwitch(def, localState, options);\n if (def.children?.$prototype === \"Array\") return renderMappedArray(def, localState, options);\n\n const el = document.createElement(tagName);\n\n if (options?.onNodeCreated) options.onNodeCreated(el, path, def);\n\n applyProperties(el, def, localState);\n applyStyle(el, def.style ?? {}, localState[\"$media\"] ?? {}, localState);\n applyAttributes(el, def.attributes ?? {}, localState);\n\n const children = Array.isArray(def.children) ? def.children : [];\n for (let i = 0; i < children.length; i++) {\n const childOpts = options ? { ...options, _path: [...path, \"children\", i] } : undefined;\n el.appendChild(renderNode(children[i], localState, childOpts));\n }\n\n return el;\n}\n\n// ─── Template string utilities ────────────────────────────────────────────────\n\n/**\n * Check if a value is a template string (contains ${}).\n *\n * @param {any} val\n * @returns {boolean}\n */\nfunction isTemplateString(val) {\n return typeof val === \"string\" && val.includes(\"${\");\n}\n\n// ─── Property / style / attribute application ─────────────────────────────────\n\n/**\n * @param {HTMLElement} el\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n */\nfunction applyProperties(el, def, state) {\n for (const [key, val] of Object.entries(def)) {\n if (RESERVED_KEYS.has(key)) continue;\n if (key.startsWith(\"$\")) continue; // scope bindings — handled in renderNode\n\n if (key.startsWith(\"on\")) {\n // Event handler: $ref to a function\n if (isRefObj(val)) {\n const handler = resolveRef(val.$ref, state);\n if (typeof handler === \"function\") {\n const scope = state;\n el.addEventListener(key.slice(2), (e) => handler(scope, e));\n }\n continue;\n }\n // Event handler: inline $prototype: \"Function\"\n if (val && typeof val === \"object\" && val.$prototype === \"Function\" && val.body) {\n const params = resolveParamNames(val);\n const fn = new Function(...params, val.body);\n const scope = state;\n el.addEventListener(key.slice(2), (e) => fn(scope, e));\n continue;\n }\n }\n\n bindProperty(el, key, val, state);\n }\n}\n\n/**\n * @param {any} el\n * @param {string} key\n * @param {any} val\n * @param {Record<string, any>} state\n */\nfunction bindProperty(el, key, val, state) {\n if (isRefObj(val)) {\n if (key === \"id\") {\n el[key] = resolveRef(val.$ref, state);\n return;\n }\n effect(() => {\n el[key] = resolveRef(val.$ref, state);\n });\n return;\n }\n\n // Universal ${} reactivity — template strings in element properties\n if (isTemplateString(val)) {\n effect(() => {\n el[key] = evaluateTemplate(val, state);\n });\n return;\n }\n\n el[key] = val;\n}\n\n/**\n * Apply inline styles and emit a scoped <style> block for nested CSS selectors and @custom-media\n * breakpoint rules.\n *\n * @param {HTMLElement} el\n * @param {Record<string, any>} styleDef\n * @param {Record<string, any>} [mediaQueries] Named breakpoints from root $media. Default is `{}`\n * @param {Record<string, any>} [state] Component scope for template string evaluation. Default is\n * `{}`\n */\nexport function applyStyle(el, styleDef, mediaQueries = {}, state = {}) {\n /** @type {Record<string, any>} */\n const nested = {};\n /** @type {Record<string, any>} */\n const media = {};\n\n for (const [prop, val] of Object.entries(styleDef)) {\n if (prop.startsWith(\"@\")) media[prop] = val;\n else if (isNestedSelector(prop)) nested[prop] = val;\n else if (prop.startsWith(\"--\")) {\n if (isTemplateString(val))\n effect(() => {\n el.style.setProperty(prop, evaluateTemplate(val, state));\n });\n else el.style.setProperty(prop, val);\n } else if (isTemplateString(val))\n effect(() => {\n /** @type {any} */ (el.style)[prop] = evaluateTemplate(val, state);\n });\n else /** @type {any} */ (el.style)[prop] = val;\n }\n\n const hasNested = Object.keys(nested).length > 0;\n const hasMedia = Object.keys(media).length > 0;\n if (!hasNested && !hasMedia) return;\n\n const uid = `jx-${Math.random().toString(36).slice(2, 7)}`;\n el.dataset.jx = uid;\n\n let css = \"\";\n\n for (const [sel, rules] of Object.entries(nested)) {\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", `[data-jx=\"${uid}\"]`)\n : sel.startsWith(\"[\")\n ? `[data-jx=\"${uid}\"]${sel}`\n : `[data-jx=\"${uid}\"] ${sel}`;\n css += `${resolved} { ${toCSSText(rules)} }\\n`;\n }\n\n for (const [key, rules] of Object.entries(media)) {\n if (key === \"@--\") continue; // base canvas width, not a real media query\n const query = key.startsWith(\"@--\")\n ? (mediaQueries[key.slice(1)] ?? key.slice(1))\n : key.slice(1);\n const scope = `[data-jx=\"${uid}\"]`;\n css += `@media ${query} { ${scope} { ${toCSSText(rules)} } }\\n`;\n for (const [sel, nestedRules] of Object.entries(rules)) {\n if (!isNestedSelector(sel)) continue;\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", scope)\n : sel.startsWith(\"[\")\n ? `${scope}${sel}`\n : `${scope} ${sel}`;\n css += `@media ${query} { ${resolved} { ${toCSSText(nestedRules)} } }\\n`;\n }\n }\n\n const tag = document.createElement(\"style\");\n tag.textContent = css;\n document.head.appendChild(tag);\n}\n\n/**\n * @param {HTMLElement} el\n * @param {Record<string, any>} attrs\n * @param {Record<string, any>} state\n */\nfunction applyAttributes(el, attrs, state) {\n for (const [k, v] of Object.entries(attrs)) {\n if (isRefObj(v)) {\n effect(() => el.setAttribute(k, String(resolveRef(v.$ref, state) ?? \"\")));\n } else if (isTemplateString(v)) {\n effect(() => el.setAttribute(k, String(evaluateTemplate(v, state))));\n } else {\n el.setAttribute(k, String(v));\n }\n }\n}\n\n// ─── Array mapping ────────────────────────────────────────────────────────────\n\n/**\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {any} [options]\n * @returns {HTMLElement}\n */\nfunction renderMappedArray(def, state, options) {\n const path = options?._path ?? [];\n const container = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) options.onNodeCreated(container, path, def);\n\n applyProperties(container, def, state);\n applyStyle(container, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(container, def.attributes ?? {}, state);\n const { items: itemsSrc, map: mapDef, filter: filterRef, sort: sortRef } = def.children;\n\n effect(() => {\n container.innerHTML = \"\";\n let items;\n if (isRefObj(itemsSrc)) {\n items = resolveRef(itemsSrc.$ref, state);\n } else {\n items = itemsSrc;\n }\n if (!Array.isArray(items)) return;\n if (filterRef) {\n const fn = resolveRef(filterRef.$ref, state);\n if (typeof fn === \"function\") items = items.filter(fn);\n }\n if (sortRef) {\n const fn = resolveRef(sortRef.$ref, state);\n if (typeof fn === \"function\") items = [...items].sort(fn);\n }\n\n items.forEach((item, index) => {\n const child = Object.create(state);\n child.$map = { item, index };\n child[\"$map/item\"] = item;\n child[\"$map/index\"] = index;\n const childOpts = options\n ? { ...options, _path: [...path, \"children\", \"map\", index] }\n : undefined;\n container.appendChild(renderNode(mapDef, child, childOpts));\n });\n });\n\n return container;\n}\n\n// ─── $switch ──────────────────────────────────────────────────────────────────\n\n/**\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {any} [options]\n * @returns {HTMLElement}\n */\nfunction renderSwitch(def, state, options) {\n const path = options?._path ?? [];\n const container = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) options.onNodeCreated(container, path, def);\n\n applyProperties(container, def, state);\n applyStyle(container, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(container, def.attributes ?? {}, state);\n let generation = 0;\n\n effect(() => {\n container.innerHTML = \"\";\n const key = resolveRef(def.$switch.$ref, state);\n const caseDef = def.cases?.[key];\n if (!caseDef) return;\n\n if (isRefObj(caseDef)) {\n // External $ref — fetch and render asynchronously\n const gen = ++generation;\n const href = new URL(caseDef.$ref, location.href).href;\n resolve(href)\n .then(async (doc) => {\n if (gen !== generation) return;\n const childScope = await buildScope(doc, {}, href);\n if (gen !== generation) return;\n container.innerHTML = \"\";\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.appendChild(renderNode(doc, childScope, childOpts));\n })\n .catch((/** @type {any} */ e) =>\n console.error(\"Jx $switch: failed to load external case\", caseDef.$ref, e),\n );\n return;\n }\n\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.appendChild(renderNode(caseDef, state, childOpts));\n });\n\n return container;\n}\n\n// ─── Prototype namespaces (Shape 5) ──────────────────────────────────────────\n\n/**\n * Resolve a $prototype definition into a value for the reactive scope.\n *\n * Returns a ref() for async/persistent entries (Request, Storage, Cookie, IndexedDB), or a plain\n * value for simple entries (Set, Map, FormData, Blob).\n *\n * @param {Record<string, any>} def - State entry with $prototype\n * @param {Record<string, any>} state - Reactive scope proxy\n * @param {string} key - Def key (for diagnostics)\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<any>}\n */\nexport async function resolvePrototype(def, state, key, base) {\n // ── External class via $src ─────────────────────────────────────────────────\n if (def.$src) {\n return resolveExternalPrototype(def, state, key, base);\n }\n\n switch (def.$prototype) {\n case \"Request\": {\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n const debounceMs = def.debounce ?? 0;\n /** @type {any} */\n let debounceTimer = null;\n\n if (!def.manual) {\n effect(() => {\n let url;\n if (isTemplateString(def.url)) {\n url = evaluateTemplate(def.url, state);\n } else {\n url = def.url;\n }\n if (!url || url === \"undefined\" || url.includes(\"undefined\")) return;\n\n const controller = new AbortController();\n onEffectCleanup(() => {\n controller.abort();\n clearTimeout(debounceTimer);\n });\n\n const doFetch = () =>\n fetch(url, {\n signal: controller.signal,\n method: def.method ?? \"GET\",\n ...(def.headers && { headers: def.headers }),\n ...(def.body && {\n body: typeof def.body === \"object\" ? JSON.stringify(def.body) : def.body,\n }),\n })\n .then((r) => (r.ok ? r.json() : Promise.reject(r.statusText)))\n .then((d) => {\n s.value = d;\n })\n .catch((/** @type {any} */ e) => {\n if (e.name !== \"AbortError\") s.value = { error: String(e) };\n });\n\n if (debounceMs > 0) {\n debounceTimer = setTimeout(doFetch, debounceMs);\n } else {\n doFetch();\n }\n });\n }\n\n return s;\n }\n\n case \"URLSearchParams\":\n return computed(() => {\n /** @type {Record<string, string>} */\n const p = {};\n for (const [k, v] of Object.entries(def)) {\n if (k !== \"$prototype\") {\n p[k] = isRefObj(v)\n ? resolveRef(v.$ref, state)\n : isTemplateString(v)\n ? evaluateTemplate(v, state)\n : v;\n }\n }\n return new URLSearchParams(p).toString();\n });\n\n case \"LocalStorage\":\n case \"SessionStorage\": {\n const store = def.$prototype === \"LocalStorage\" ? localStorage : sessionStorage;\n const k = def.key ?? key;\n let init;\n try {\n const s = store.getItem(k);\n init = s !== null ? JSON.parse(s) : (def.default ?? null);\n } catch {\n init = def.default ?? null;\n }\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const storageState = ref(init);\n // Persist on change\n effect(() => {\n const v = storageState.value;\n if (v === null) {\n try {\n store.removeItem(k);\n } catch {}\n } else {\n try {\n store.setItem(k, JSON.stringify(v));\n } catch {}\n }\n });\n return storageState;\n }\n\n case \"Cookie\": {\n const name = def.name ?? key;\n const read = () => {\n const m = document.cookie.match(new RegExp(\"(?:^|; )\" + name + \"=([^;]*)\"));\n if (!m) return null;\n try {\n return JSON.parse(decodeURIComponent(m[1]));\n } catch {\n return m[1];\n }\n };\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const cookieState = ref(read() ?? def.default ?? null);\n // Persist on change\n effect(() => {\n const v = cookieState.value;\n let s = `${name}=${encodeURIComponent(JSON.stringify(v))}`;\n if (def.maxAge !== undefined) s += `; Max-Age=${def.maxAge}`;\n if (def.path) s += `; Path=${def.path}`;\n if (def.domain) s += `; Domain=${def.domain}`;\n if (def.secure) s += `; Secure`;\n if (def.sameSite) s += `; SameSite=${def.sameSite}`;\n document.cookie = s;\n });\n return cookieState;\n }\n\n case \"IndexedDB\": {\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const idbState = ref(null);\n const {\n database,\n store,\n version = 1,\n keyPath = \"id\",\n autoIncrement = true,\n indexes = [],\n } = def;\n const req = indexedDB.open(database, version);\n req.onupgradeneeded = (e) => {\n /** @type {any} */\n const db = /** @type {any} */ (e.target)?.result;\n if (!db.objectStoreNames.contains(store)) {\n const os = db.createObjectStore(store, { keyPath, autoIncrement });\n for (const i of indexes) os.createIndex(i.name, i.keyPath, { unique: i.unique ?? false });\n }\n };\n req.onsuccess = (e) => {\n /** @type {any} */\n const db = /** @type {any} */ (e.target)?.result;\n idbState.value = {\n database,\n store,\n version,\n isReady: true,\n getStore: (/** @type {string} */ mode = \"readwrite\") =>\n Promise.resolve(db.transaction(store, mode).objectStore(store)),\n };\n };\n req.onerror = () => {\n idbState.value = { error: req.error?.message };\n };\n return idbState;\n }\n\n case \"Set\":\n return new Set(def.default ?? []);\n\n case \"Map\":\n return new Map(Object.entries(def.default ?? {}));\n\n case \"FormData\": {\n const fd = new FormData();\n for (const [k, v] of Object.entries(def.fields ?? {})) fd.append(k, v);\n return fd;\n }\n\n case \"Blob\":\n return new Blob(def.parts ?? [], { type: def.type ?? \"text/plain\" });\n\n case \"ReadableStream\":\n return null;\n\n default:\n console.warn(\n `Jx: unknown $prototype \"${def.$prototype}\" for \"${key}\". Did you mean to add '$src'?`,\n );\n return ref(null);\n }\n}\n\n// ─── External class resolution ────────────────────────────────────────────────\n\n/** Reserved keys stripped from the config object passed to external class constructors. */\nconst EXTERNAL_RESERVED = new Set([\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n]);\n\n/**\n * Resolve an external class prototype via $src.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveExternalPrototype(def, state, key, base) {\n const src = def.$src;\n\n // Non-Function $prototype must use .class.json as entrypoint\n if (!src.endsWith(\".class.json\")) {\n throw new Error(\n `Jx: $prototype \"${def.$prototype}\" requires a .class.json $src, got \"${src}\". ` +\n `Wrap the class in a .class.json schema with $implementation.`,\n );\n }\n\n return resolveClassJson(def, state, key, base);\n}\n\n/**\n * Import a JS module and instantiate a class from it. Internal helper used by resolveClassJson for\n * $implementation.\n *\n * @param {Record<string, any>} def - Original state entry (for config extraction)\n * @param {string} src - JS module URL to import\n * @param {string} exportName - Export name to look up\n * @param {string} [base] - Base URL for resolution\n * @returns {Promise<any>}\n */\nasync function importAndInstantiate(def, src, exportName, base) {\n let mod;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src);\n } else {\n try {\n mod = await import(src);\n } catch {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n mod = await import(resolvedSrc);\n } else {\n throw new Error(`Failed to import \"${src}\"`);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const ExportedClass = mod[exportName] ?? mod.default?.[exportName];\n if (!ExportedClass) {\n throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\"`);\n }\n if (typeof ExportedClass !== \"function\") {\n throw new Error(`Jx: \"${exportName}\" from \"${src}\" is not a class`);\n }\n\n /** @type {Record<string, any>} */\n const config = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) config[k] = v;\n }\n\n const instance = new ExportedClass(config);\n\n let value;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n value = instance.value;\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity with external classes\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((/** @type {any} */ newVal) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Resolve a .class.json schema-defined class. Fetches the schema, follows $implementation if\n * hybrid, or constructs dynamically if self-contained.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveClassJson(def, state, key, base) {\n const src = def.$src;\n let classDef;\n\n // Try fetching the .class.json file directly\n try {\n const url = base ? new URL(src, base).href : src;\n const res = await fetch(url);\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n classDef = await res.json();\n } catch {\n // Fall back to dev proxy (server will handle .class.json resolution)\n return resolveViaDevProxy(def, state, key, base);\n }\n\n // Hybrid mode: $implementation points to the real JS module\n if (classDef.$implementation) {\n const schemaUrl = base ? new URL(src, base).href : new URL(src, location.href).href;\n const implSrc = new URL(classDef.$implementation, schemaUrl).href;\n const exportName = def.$export ?? classDef.title ?? def.$prototype;\n try {\n return await importAndInstantiate(def, implSrc, exportName, base);\n } catch {\n // Browser can't import the JS module — fall back to dev proxy with original .class.json def\n return resolveViaDevProxy(def, state, key, base);\n }\n }\n\n // Self-contained: construct class dynamically from schema\n const DynClass = classFromSchema(classDef);\n /** @type {Record<string, any>} */\n const config = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) config[k] = v;\n }\n const instance = new DynClass(config);\n\n let value;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n value = instance.value;\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((/** @type {any} */ newVal) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Dynamically construct a class from a .class.json schema definition. Browser-side: maps private\n * fields to _-prefixed public fields.\n *\n * @param {Record<string, any>} classDef\n * @returns {any}\n */\nfunction classFromSchema(classDef) {\n const fields = classDef.$defs?.fields ?? {};\n const ctor = classDef.$defs?.constructor;\n const methods = classDef.$defs?.methods ?? {};\n\n class DynClass {\n constructor(/** @type {Record<string, any>} */ config = {}) {\n for (const [key, field] of Object.entries(fields)) {\n /** @type {any} */\n const typedField = field;\n const id = typedField.identifier ?? key;\n const propName = typedField.access === \"private\" ? `_${id}` : id;\n if (config[id] !== undefined) /** @type {any} */ (this)[propName] = config[id];\n else if (typedField.initializer !== undefined)\n /** @type {any} */ (this)[propName] = typedField.initializer;\n else if (typedField.default !== undefined)\n /** @type {any} */ (this)[propName] = structuredClone(typedField.default);\n else /** @type {any} */ (this)[propName] = null;\n }\n if (ctor?.body) {\n const bodyStr = Array.isArray(ctor.body) ? ctor.body.join(\"\\n\") : ctor.body;\n new Function(\"config\", bodyStr).call(this, config);\n }\n }\n }\n\n for (const [key, method] of Object.entries(methods)) {\n /** @type {any} */\n const typedMethod = method;\n const name = typedMethod.identifier ?? key;\n const params = (typedMethod.parameters ?? []).map((/** @type {any} */ p) => {\n if (p.$ref) return p.$ref.split(\"/\").pop();\n return p.identifier ?? p.name ?? \"arg\";\n });\n const bodyStr = Array.isArray(typedMethod.body)\n ? typedMethod.body.join(\"\\n\")\n : (typedMethod.body ?? \"\");\n\n if (typedMethod.role === \"accessor\") {\n /** @type {PropertyDescriptor} */\n const descriptor = {};\n if (typedMethod.getter)\n descriptor.get = /** @type {any} */ (new Function(typedMethod.getter.body));\n if (typedMethod.setter) {\n const sp = (typedMethod.setter.parameters ?? []).map(\n (/** @type {any} */ p) => p.$ref?.split(\"/\").pop() ?? \"v\",\n );\n descriptor.set = /** @type {any} */ (new Function(...sp, typedMethod.setter.body));\n }\n Object.defineProperty(DynClass.prototype, name, { ...descriptor, configurable: true });\n } else if (typedMethod.scope === \"static\") {\n /** @type {any} */ (DynClass)[name] = new Function(...params, bodyStr);\n } else {\n /** @type {any} */ (DynClass.prototype)[name] = new Function(...params, bodyStr);\n }\n }\n\n Object.defineProperty(DynClass, \"name\", { value: classDef.title, configurable: true });\n return DynClass;\n}\n\n/**\n * Dev-mode fallback: when an $src module cannot run in the browser, proxy the resolve() call\n * through the Jx dev server (POST /**jx_resolve**). Supports reactive template strings in config\n * values via Vue effect().\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveViaDevProxy(def, state, key, base) {\n /** @type {Record<string, any>} */\n const config = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) config[k] = v;\n }\n\n const hasTemplates = Object.values(config).some((/** @type {any} */ v) => isTemplateString(v));\n\n /** @param {Record<string, any>} resolvedConfig */\n const doResolve = (resolvedConfig) =>\n fetch(\"/__jx_resolve__\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n $src: def.$src,\n $prototype: def.$prototype,\n $export: def.$export,\n $base: base,\n ...resolvedConfig,\n }),\n }).then((r) => {\n if (!r.ok) throw new Error(`Jx dev proxy ${r.status} for \"${key}\"`);\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n if (hasTemplates) {\n effect(() => {\n /** @type {Record<string, any>} */\n const resolvedConfig = {};\n for (const [k, v] of Object.entries(config)) {\n resolvedConfig[k] = isTemplateString(v) ? evaluateTemplate(v, state) : v;\n }\n doResolve(resolvedConfig)\n .then((/** @type {any} */ value) => {\n s.value = value;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx dev proxy:\", e));\n });\n } else {\n doResolve(config)\n .then((/** @type {any} */ value) => {\n s.value = value;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx dev proxy:\", e));\n }\n return s;\n}\n\n// ─── Server function resolution (dev mode) ────────────────────────────────────\n\n/**\n * Resolve a timing: \"server\" entry in dev mode by executing the function client-side. In\n * production, the compiler replaces this with a fetch to the generated server handler.\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveServerFunction(def, state, key, base) {\n const src = def.$src;\n const exportName = def.$export;\n\n let mod;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src);\n } else {\n try {\n mod = await import(src);\n } catch {\n if (base) {\n try {\n const resolvedSrc = new URL(src, base).href;\n mod = await import(resolvedSrc);\n } catch {\n // Module cannot run in the browser — fall back to dev server proxy\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n } else {\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const fn = mod[exportName] ?? mod.default?.[exportName];\n if (!fn) throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\" for \"${key}\"`);\n if (typeof fn !== \"function\")\n throw new Error(`Jx: \"${exportName}\" from \"${src}\" is not a function`);\n\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((/** @type {any} */ v) => isRefObj(v));\n const resolveArgs = () => {\n /** @type {Record<string, any>} */\n const args = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef(/** @type {any} */ (v).$ref, state) : v;\n }\n return args;\n };\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n fn(args)\n .then((/** @type {any} */ result) => {\n s.value = result;\n })\n .catch(() => {});\n });\n } else {\n s.value = await fn(resolveArgs());\n }\n return s;\n}\n\n/**\n * Dev-mode fallback: when a timing: \"server\" module cannot run in the browser, proxy the function\n * call through the Jx dev server (POST /**jx_server**). Supports reactive $ref arguments via Vue\n * effect().\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<any>}\n */\nasync function resolveServerFunctionViaProxy(def, state, key, base) {\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((/** @type {any} */ v) => isRefObj(v));\n\n const resolveArgs = () => {\n /** @type {Record<string, any>} */\n const args = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef(/** @type {any} */ (v).$ref, state) : v;\n }\n return args;\n };\n\n /** @param {Record<string, any>} args */\n const doResolve = (args) =>\n fetch(\"/__jx_server__\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n $src: def.$src,\n $export: def.$export,\n $base: base,\n arguments: args,\n }),\n }).then((r) => {\n if (!r.ok) throw new Error(`Jx server proxy ${r.status} for \"${key}\"`);\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n /** @type {import(\"@vue/reactivity\").Ref<any>} */\n const s = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n doResolve(args)\n .then((/** @type {any} */ result) => {\n s.value = result;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx server proxy:\", e));\n });\n } else {\n doResolve(resolveArgs())\n .then((/** @type {any} */ result) => {\n s.value = result;\n })\n .catch((/** @type {any} */ e) => console.error(\"Jx server proxy:\", e));\n }\n return s;\n}\n\n/**\n * Resolve a $ref string to a value in scope.\n *\n * With Vue reactivity, this reads directly from the reactive proxy. When called inside a effect or\n * computed, the read is tracked.\n *\n * @param {string} ref\n * @param {Record<string, any>} state - Reactive scope proxy (or child scope)\n * @returns {any}\n */\nexport function resolveRef(ref, state) {\n if (typeof ref !== \"string\") return ref;\n if (ref.startsWith(\"$map/\")) {\n const parts = ref.split(\"/\");\n const key = parts[1]; // 'item' or 'index'\n const base = state.$map?.[key] ?? state[\"$map/\" + key];\n return parts.length > 2 ? getPath(base, parts.slice(2).join(\"/\")) : base;\n }\n if (ref.startsWith(\"#/state/\")) {\n const sub = ref.slice(\"#/state/\".length);\n const slash = sub.indexOf(\"/\");\n if (slash < 0) return state[sub];\n return getPath(state[sub.slice(0, slash)], sub.slice(slash + 1));\n }\n if (ref.startsWith(\"parent#/\")) return state[ref.slice(\"parent#/\".length)];\n if (ref.startsWith(\"window#/\")) return getPath(globalThis.window, ref.slice(\"window#/\".length));\n if (ref.startsWith(\"document#/\"))\n return getPath(globalThis.document, ref.slice(\"document#/\".length));\n return state[ref] ?? null;\n}\n\n// ─── Utilities ────────────────────────────────────────────────────────────────\n\n/**\n * Check if v is a Vue ref (including computed).\n *\n * @param {any} v\n * @returns {boolean}\n */\nexport function isSignal(v) {\n return isRef(v);\n}\n\n/**\n * @param {any} v\n * @returns {boolean}\n */\nfunction isRefObj(v) {\n return v !== null && typeof v === \"object\" && typeof v.$ref === \"string\";\n}\n\n/**\n * @param {string} k\n * @returns {boolean}\n */\nfunction isNestedSelector(k) {\n return k.startsWith(\":\") || k.startsWith(\".\") || k.startsWith(\"&\") || k.startsWith(\"[\");\n}\n\n/**\n * @param {any} obj\n * @param {string} path\n * @returns {any}\n */\nfunction getPath(obj, path) {\n return path.split(/[./]/).reduce((o, k) => o?.[k], obj);\n}\n\n/**\n * @param {Record<string, any>} def\n * @param {Record<string, any>} parentState\n * @returns {Record<string, any>}\n */\nfunction mergeProps(def, parentState) {\n const child = Object.create(parentState);\n for (const [k, v] of Object.entries(def.$props ?? {})) {\n child[k] = isRefObj(v) ? resolveRef(v.$ref, parentState) : v;\n }\n return child;\n}\n\n/**\n * Convert camelCase to kebab-case.\n *\n * @param {string} s\n * @returns {string}\n */\nexport function camelToKebab(s) {\n return s.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);\n}\n\n/**\n * Convert a style rules object to a CSS text string (skipping nested selectors).\n *\n * @param {Record<string, any>} rules\n * @returns {string}\n */\nexport function toCSSText(rules) {\n return Object.entries(rules)\n .filter(([k]) => !isNestedSelector(k))\n .map(([p, v]) => `${camelToKebab(p)}: ${v}`)\n .join(\"; \");\n}\n\n// ─── Custom Element Registration ──────────────────────────────────────────────\n\nconst _elementDefs = new Map();\n\n/**\n * Resolve and register $elements entries (depth-first).\n *\n * @param {any[]} elements\n * @param {string} base\n * @returns {Promise<void>}\n */\nasync function registerElements(elements, base) {\n for (const entry of elements) {\n // Bare string: npm package side-effect import (registers custom elements)\n if (typeof entry === \"string\") {\n try {\n // Bare specifiers need a URL path for the browser; the dev server resolves\n // /node_modules/<pkg> to the package entry point via exports/module/main.\n const specifier =\n entry.startsWith(\"/\") || entry.startsWith(\".\") ? entry : `/node_modules/${entry}`;\n await import(specifier);\n } catch (e) {\n console.warn(`Jx: failed to import package \"${entry}\"`, e);\n }\n continue;\n }\n if (!isRefObj(entry)) continue;\n const href = new URL(entry.$ref, base).href;\n const doc = await resolve(href);\n if (!doc.tagName || !doc.tagName.includes(\"-\")) continue;\n if (customElements.get(doc.tagName)) continue;\n\n // Depth-first: register sub-dependencies first\n if (doc.$elements) {\n await registerElements(doc.$elements, href);\n }\n\n await defineElement(doc, href);\n }\n}\n\n/**\n * Inject head elements from $head declarations. Each entry is { tagName, attributes } — bare npm\n * specifiers in href/src are rewritten to /node_modules/ paths for the dev server.\n *\n * @param {any[]} entries\n * @param {string} _base - Document base URL for resolving relative paths\n */\nfunction injectHead(entries, _base) {\n for (const entry of entries) {\n if (!entry || !entry.tagName) continue;\n const tag = entry.tagName.toLowerCase();\n const attrs = { ...entry.attributes };\n // Resolve href/src: bare npm specifiers -> /node_modules/ path\n for (const key of [\"href\", \"src\"]) {\n if (\n attrs[key] &&\n !attrs[key].startsWith(\"/\") &&\n !attrs[key].startsWith(\".\") &&\n !attrs[key].startsWith(\"http\")\n ) {\n attrs[key] = `/node_modules/${attrs[key]}`;\n }\n }\n\n // Deduplicate: skip if an identical element already exists\n const selector = `${tag}${attrs.href ? `[href=\"${attrs.href}\"]` : \"\"}${attrs.src ? `[src=\"${attrs.src}\"]` : \"\"}`;\n if (selector !== tag && document.head.querySelector(selector)) continue;\n\n const el = document.createElement(tag);\n for (const [k, v] of Object.entries(attrs)) {\n el.setAttribute(k, /** @type {string} */ (v));\n }\n if (entry.textContent) el.textContent = entry.textContent;\n document.head.appendChild(el);\n }\n}\n\n/**\n * Register a custom element from a Jx document.\n *\n * @param {string | Record<string, any>} source - URL to .json file, or raw document object\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<void>}\n */\nexport async function defineElement(source, base) {\n if (typeof source === \"string\") {\n base = new URL(source, base ?? location.href).href;\n source = await resolve(source);\n }\n base = base ?? location.href;\n\n /** @type {Record<string, any>} */\n const source_ = /** @type {Record<string, any>} */ (source);\n\n const tagName = source_.tagName;\n if (!tagName || !tagName.includes(\"-\")) {\n throw new Error(`Jx defineElement: tagName \"${tagName}\" must contain a hyphen`);\n }\n if (customElements.get(tagName)) return;\n\n // Register sub-dependencies first\n if (source_.$elements) {\n await registerElements(source_.$elements, base);\n }\n\n _elementDefs.set(tagName, { doc: source_, base });\n\n const def = source_;\n const observedAttrs = def.observedAttributes ?? [];\n\n const ElementClass = class extends HTMLElement {\n static get observedAttributes() {\n return observedAttrs;\n }\n\n async connectedCallback() {\n if (this._jxInitialized) return;\n this._jxInitialized = true;\n\n const state = await buildScope(def, {}, base);\n\n // Read properties from directive encoding (markdown → data-jx-props)\n const propsAttr = this.getAttribute(\"data-jx-props\");\n if (propsAttr) {\n try {\n const props = JSON.parse(propsAttr);\n for (const [key, val] of Object.entries(props)) {\n if (key in (def.state ?? {})) state[key] = val;\n }\n } catch {}\n this.removeAttribute(\"data-jx-props\");\n }\n\n // Merge $props set as JS properties by parent before connection\n for (const key of Object.keys(def.state ?? {})) {\n if (key in this && /** @type {any} */ (this)[key] !== undefined) {\n state[key] = /** @type {any} */ (this)[key];\n }\n }\n // Set up property getters/setters that forward into reactive state\n for (const key of Object.keys(def.state ?? {})) {\n if (!(key in HTMLElement.prototype)) {\n Object.defineProperty(this, key, {\n get: () => state[key],\n set: (/** @type {any} */ v) => {\n state[key] = v;\n },\n configurable: true,\n });\n }\n }\n\n /** @type {any} */ (this)._state = state;\n\n // Capture light DOM children (for slot distribution) before rendering\n const slottedChildren = Array.from(this.childNodes);\n this.innerHTML = \"\";\n\n // Custom elements default to display:inline — use block so they behave as\n // containers (matching <div> semantics). The component's own style can\n // override this if needed.\n if (!this.style.display) this.style.display = \"block\";\n\n // Render template into light DOM (once, not in effect — inner effects handle reactivity)\n applyStyle(this, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(this, def.attributes ?? {}, state);\n\n const children = Array.isArray(def.children) ? def.children : [];\n for (const childDef of children) {\n this.appendChild(renderNode(childDef, state));\n }\n\n // Slot distribution (light DOM)\n distributeSlots(this, slottedChildren);\n\n // Lifecycle: onMount\n if (typeof state.onMount === \"function\") {\n queueMicrotask(() => state.onMount(state));\n }\n }\n\n disconnectedCallback() {\n /** @type {any} */\n const self = this;\n if (typeof self._state?.onUnmount === \"function\") {\n self._state.onUnmount(self._state);\n }\n }\n\n adoptedCallback() {\n /** @type {any} */\n const self = this;\n if (typeof self._state?.onAdopted === \"function\") {\n self._state.onAdopted(self._state);\n }\n }\n\n attributeChangedCallback(\n /** @type {string} */ name,\n /** @type {string | null} */ oldVal,\n /** @type {string | null} */ newVal,\n ) {\n /** @type {any} */\n const self = this;\n if (!self._state || oldVal === newVal) return;\n const camelKey = name.replace(\n /-([a-z])/g,\n (/** @type {string} */ _, /** @type {string} */ c) => c.toUpperCase(),\n );\n const current = self._state[camelKey];\n if (typeof current === \"number\") self._state[camelKey] = Number(newVal);\n else if (typeof current === \"boolean\")\n self._state[camelKey] = newVal !== null && newVal !== \"false\";\n else self._state[camelKey] = newVal;\n }\n };\n\n customElements.define(tagName, ElementClass);\n}\n\n/**\n * Render a registered custom element with $props (property-first interface).\n *\n * @param {Record<string, any>} def\n * @param {Record<string, any>} state\n * @param {any} [options]\n * @param {any[]} [path]\n * @returns {HTMLElement}\n */\nfunction renderCustomElementWithProps(def, state, options, path) {\n /** @type {any} */\n const el = document.createElement(def.tagName);\n\n if (options?.onNodeCreated) options.onNodeCreated(el, path, def);\n\n // Set JS properties from $props (before connection)\n for (const [key, val] of Object.entries(def.$props ?? {})) {\n if (isRefObj(val)) {\n const resolved = resolveRef(val.$ref, state);\n el[key] = resolved;\n // Reactive forwarding: re-set the property when the source changes\n effect(() => {\n el[key] = resolveRef(val.$ref, state);\n });\n } else if (isTemplateString(val)) {\n effect(() => {\n el[key] = evaluateTemplate(val, state);\n });\n } else {\n el[key] = val;\n }\n }\n\n // Apply host-level style and attributes from the usage site\n applyStyle(el, def.style ?? {}, state[\"$media\"] ?? {}, state);\n applyAttributes(el, def.attributes ?? {}, state);\n\n // Append slotted children\n const children = Array.isArray(def.children) ? def.children : [];\n for (let i = 0; i < children.length; i++) {\n const childOpts = options && path ? { ...options, _path: [...path, \"children\", i] } : undefined;\n el.appendChild(renderNode(children[i], state, childOpts));\n }\n\n return el;\n}\n\n/**\n * Light DOM slot distribution.\n *\n * @param {HTMLElement} host\n * @param {ChildNode[]} slottedChildren\n */\nfunction distributeSlots(host, slottedChildren) {\n if (slottedChildren.length === 0) return;\n\n const slots = host.querySelectorAll(\"slot\");\n if (slots.length === 0) return;\n\n /** @type {Map<string | null, ChildNode[]>} */\n const named = new Map();\n /** @type {ChildNode[]} */\n const unnamed = [];\n\n for (const child of slottedChildren) {\n if (\n child.nodeType === Node.ELEMENT_NODE &&\n /** @type {Element} */ (child).getAttribute(\"slot\")\n ) {\n const name = /** @type {Element} */ (child).getAttribute(\"slot\");\n if (!named.has(name)) named.set(name, []);\n /** @type {ChildNode[]} */ (named.get(name)).push(child);\n } else {\n unnamed.push(child);\n }\n }\n\n for (const slot of slots) {\n const name = slot.getAttribute(\"name\");\n const matches = name ? (named.get(name) ?? []) : unnamed;\n if (matches.length > 0) {\n slot.innerHTML = \"\";\n for (const child of matches) {\n slot.appendChild(child);\n }\n }\n }\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "28DB5F2E23A6BAAB64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "B787C22CCE11BBDE64756E2164756E21",
11
11
  "names": []
12
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jxsuite/runtime",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "JSON-native reactive web component runtime",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/runtime.js CHANGED
@@ -261,7 +261,10 @@ async function resolveFunction(def, state, key, base) {
261
261
  throw new Error(`Jx: '${key}' declares both body and $src — these are mutually exclusive`);
262
262
  }
263
263
  if (!def.body && !def.$src) {
264
- throw new Error(`Jx: '${key}' is a Function prototype with no body or $src`);
264
+ const params = resolveParamNames(def);
265
+ const noop = new Function(...params, "");
266
+ Object.defineProperty(noop, "name", { value: def.name ?? key, configurable: true });
267
+ return noop;
265
268
  }
266
269
 
267
270
  let fn;