@hyperfixi/core 3.1.1 → 3.3.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.
Files changed (97) hide show
  1. package/README.md +28 -36
  2. package/dist/ast/command-slots.d.ts +1 -1
  3. package/dist/ast/nodes.d.ts +2 -0
  4. package/dist/ast-utils/index.cjs +193 -48
  5. package/dist/ast-utils/index.mjs +193 -48
  6. package/dist/ast-utils/interchange/types.d.ts +19 -1
  7. package/dist/behaviors/index.cjs +19 -0
  8. package/dist/behaviors/index.mjs +19 -0
  9. package/dist/bundle-generator/index.cjs +36 -17
  10. package/dist/bundle-generator/index.mjs +36 -17
  11. package/dist/bundle-generator/parser-templates.d.ts +1 -1
  12. package/dist/chunks/bridge-CI9SOl8u.js +2 -0
  13. package/dist/chunks/browser-modular-7CpI5VF2.js +2 -0
  14. package/dist/chunks/index-BwXDEK0m.js +2 -0
  15. package/dist/chunks/index-DQi2o8Lk.js +2 -0
  16. package/dist/chunks/index-uCOQ8Qn0.js +2 -0
  17. package/dist/commands/animation/transition.d.ts +12 -6
  18. package/dist/commands/helpers/loop-executor.d.ts +2 -2
  19. package/dist/commands/helpers/numeric-target-parser.d.ts +1 -1
  20. package/dist/commands/helpers/variable-access.d.ts +5 -2
  21. package/dist/commands/helpers/write-target.d.ts +5 -0
  22. package/dist/commands/index.cjs +938 -425
  23. package/dist/commands/index.mjs +938 -425
  24. package/dist/commands/templates/render.d.ts +4 -4
  25. package/dist/commands/utility/beep.d.ts +0 -3
  26. package/dist/expressions/index.cjs +7 -13
  27. package/dist/expressions/index.mjs +7 -13
  28. package/dist/htmx/i18n-hooks.d.ts +4 -1
  29. package/dist/hyperfixi-browser-classic-i18n.js +1 -1
  30. package/dist/hyperfixi-browser.js +1 -1
  31. package/dist/hyperfixi-classic-i18n.js +1 -1
  32. package/dist/hyperfixi-hx-v4.js +1 -1
  33. package/dist/hyperfixi-hx.js +1 -1
  34. package/dist/hyperfixi-hybrid-complete.js +1 -1
  35. package/dist/hyperfixi-hybrid-hx.js +1 -1
  36. package/dist/hyperfixi-multilingual.js +1 -1
  37. package/dist/hyperfixi.js +1 -1
  38. package/dist/hyperfixi.mjs +1 -1
  39. package/dist/index.cjs +1149 -485
  40. package/dist/index.min.js +1 -1
  41. package/dist/index.mjs +1149 -485
  42. package/dist/lib/swap-executor.d.ts +1 -1
  43. package/dist/lokascript-browser-classic-i18n.js +1 -1
  44. package/dist/lokascript-browser.js +1 -1
  45. package/dist/lokascript-hybrid-complete.js +1 -1
  46. package/dist/lokascript-hybrid-hx.js +1 -1
  47. package/dist/lokascript-multilingual.js +1 -1
  48. package/dist/metadata.cjs +9 -9
  49. package/dist/metadata.d.ts +1 -1
  50. package/dist/metadata.mjs +9 -9
  51. package/dist/parser/command-grammar.d.ts +1 -0
  52. package/dist/parser/full-parser.cjs +396 -153
  53. package/dist/parser/full-parser.mjs +396 -153
  54. package/dist/parser/helpers/parsing-helpers.d.ts +3 -0
  55. package/dist/parser/hybrid/index.cjs +3 -0
  56. package/dist/parser/hybrid/index.mjs +3 -0
  57. package/dist/parser/hybrid/parser-core.cjs +3 -0
  58. package/dist/parser/hybrid/parser-core.mjs +3 -0
  59. package/dist/parser/hybrid-parser.cjs +3 -0
  60. package/dist/parser/hybrid-parser.mjs +3 -0
  61. package/dist/parser/parser-types.d.ts +2 -0
  62. package/dist/parser/parser.d.ts +9 -0
  63. package/dist/parser/pratt-parser.d.ts +2 -0
  64. package/dist/registry/index.cjs +535 -210
  65. package/dist/registry/index.mjs +535 -210
  66. package/dist/utils/beep.d.ts +8 -0
  67. package/dist/version.d.ts +1 -1
  68. package/package.json +21 -18
  69. package/vocab/htmx/ar.js +22 -20
  70. package/vocab/htmx/bn.js +21 -5
  71. package/vocab/htmx/de.js +33 -10
  72. package/vocab/htmx/en.js +4 -1
  73. package/vocab/htmx/es.js +28 -9
  74. package/vocab/htmx/fr.js +28 -8
  75. package/vocab/htmx/he.js +22 -1
  76. package/vocab/htmx/hi.js +28 -7
  77. package/vocab/htmx/id.js +29 -10
  78. package/vocab/htmx/it.js +26 -5
  79. package/vocab/htmx/ja.js +36 -11
  80. package/vocab/htmx/ko.js +27 -6
  81. package/vocab/htmx/ms.js +24 -1
  82. package/vocab/htmx/pl.js +27 -7
  83. package/vocab/htmx/pt.js +30 -9
  84. package/vocab/htmx/qu.js +32 -9
  85. package/vocab/htmx/ru.js +28 -6
  86. package/vocab/htmx/sw.js +28 -8
  87. package/vocab/htmx/th.js +19 -1
  88. package/vocab/htmx/tl.js +24 -1
  89. package/vocab/htmx/tr.js +34 -8
  90. package/vocab/htmx/uk.js +28 -6
  91. package/vocab/htmx/vi.js +27 -19
  92. package/vocab/htmx/zh.js +28 -9
  93. package/dist/chunks/bridge-D7qrHhV0.js +0 -2
  94. package/dist/chunks/browser-modular-C4LFxfoS.js +0 -2
  95. package/dist/chunks/index-C7lqD4mo.js +0 -2
  96. package/dist/chunks/index-CAPhqA6k.js +0 -2
  97. package/dist/chunks/index-CLdRyZaP.js +0 -2
@@ -1,2 +1,2 @@
1
- var hyperfixi=function(){"use strict";const e="then",t="else",r="end",n="and",i="for",a="while",s="until",o="forever",l="times",c="index",u="in",d="to",m="from",p="with",h="of",f="on",y="event",g="behavior",v="global",b="the",w="start",k=new Set(["add","append","beep","blur","break","breakpoint","call","clear","close","continue","copy","decrement","default","empty","exit","fetch","focus","get","go","halt","hide","if","increment","install","js","log","make","measure","morph","open","pick","prepend","process","pseudo-command","push","put","remove","render","repeat","replace","reset","return","scroll","select","send","set","settle","show","start","swap","take","tell","throw","toggle","transition","trigger","unless","wait","for"]),E=(new Set(["if","unless","repeat","wait","for","while"]),"at start of"),x="at end of",C=["into","before","after","at",E,x,"at the start of","at the end of"],A=new Set(["if","else","unless","for","while","until","end","and","or","not","in","to","from","into","with","without","as","matches","contains","then","on","when","every","init","def","behavior","the","of","first","last"]),S=e=>k.has(e.toLowerCase()),T=e=>A.has(e.toLowerCase()),O=e=>L.has(e.toLowerCase()),L=new Set(["hsl","hsla","rgb","rgba","hwb","lab","lch","oklch","oklab","color","color-mix","calc","min","max","clamp","var","url","linear-gradient","radial-gradient","conic-gradient","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient"]),j=new Set(["me","it","you","result","my","its","your"]),q=new Set(["and","or","not","no"]),P=new Set(["==","!=","===","!==","<",">","<=",">=","is","is not","am","is a","is an","is not a","is not an","precedes","does not precede","follows","does not follow","contains","starts with","ends with","does not start with","does not end with","has","have","does not contain","include","includes","does not include","match","matches","exists","does not exist","is empty","is not empty","is in","is not in","is between","is not between","equals","in","is equal to","is really equal to","is not equal to","is not really equal to","is greater than","is less than","is greater than or equal to","is less than or equal to","really equals","am in","am not in","am between","am not between","is really","is not really","is equal","is not equal","contain","do not contain","does not contains","do not match","does not match","ignoring case","sorted by","mapped to","split by","joined by"]),N=new Set(["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","focus","blur","change","input","submit","reset","select","load","unload","resize","scroll","keydown","keyup","keypress","touchstart","touchend","touchmove","touchcancel","drag","drop","dragover","dragenter","dragleave","cut","copy","paste","toggle"]),R=new Set(["on","init","behavior","def","if","else","unless","for","while","until","end","and","or","not","in","to","from","into","with","as","then","when","where","after","before","by","at","between","no","start","of","the","new","global","local","equal","equals","greater","less","than","really","catch","finally","throw","return"]);var I;!function(e){e.IDENTIFIER="identifier",e.STRING="string",e.NUMBER="number",e.SELECTOR="selector",e.OPERATOR="operator",e.TIME="time",e.TEMPLATE="template",e.COMMENT="comment",e.SYMBOL="symbol",e.UNKNOWN="unknown"}(I||(I={}));const M=new Set(["+","-","*","/","mod"]),$=new Set(["ms","s","seconds","minutes","hours","days"]);function _(e,t=1){const r=e.position+t;return e.input.length>r?e.input[r]:""}function z(e){const t=e.input[e.position];return e.position++,"\n"===t?(e.line++,e.column=1):"\r"===t?("\n"===(e.input.length>e.position?e.input[e.position]:"")&&e.position++,e.line++,e.column=1):e.column++,t}function V(e){const t=e.input,r=t.length;for(;r>e.position;){const r=t[e.position];if(" "!==r&&"\t"!==r&&"\r"!==r&&"\n"!==r)break;z(e)}}function H(e,t,r,n,i){const a=n??e.position-r.length,s=e.position;let o=e.column-r.length;void 0!==n&&(o=W(e.input,n).column);const l={kind:t,value:r,start:a,end:s,line:B(e,a),column:o};e.tokens.push(l)}function W(e,t){let r=1,n=-1;const i=Math.min(t,e.length);for(let t=0;i>t;t++){const i=e[t];"\n"===i?(r++,n=t):"\r"===i&&(r++,e.length>t+1&&"\n"===e[t+1]&&t++,n=t)}return{line:r,column:t-n}}function B(e,t){return W(e.input,t).line}function F(e){const t=e.position;let r="";for(z(e),z(e);e.input.length>e.position&&"\n"!==e.input[e.position];)r+=z(e);H(e,I.COMMENT,"--"+r,t)}function D(e){const t=e.position,r=z(e);let n=r;for(;e.input.length>e.position;){const t=z(e);if(n+=t,t===r)break;"\\"===t&&e.input.length>e.position&&(n+=z(e))}H(e,I.STRING,n,t)}function U(e){const t=e.position;z(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if("`"===t){z(e);break}if("\\"===t){if(z(e),e.input.length>e.position){const t=z(e);switch(t){case"n":r+="\n";break;case"t":r+="\t";break;case"r":r+="\r";break;case"\\":r+="\\";break;case"`":r+="`";break;default:r+=t}}}else r+=z(e)}if(e.position>=e.input.length&&!e.input.endsWith("`"))throw Error(`Unterminated template literal at line ${e.line}, column ${e.column-r.length}`);H(e,I.TEMPLATE,r,t)}function K(e){const t=e.position;let r=z(e);if(e.input.length>e.position&&"{"===e.input[e.position]){for(r+=z(e);e.input.length>e.position;){const t=e.input[e.position];if(r+=z(e),"}"===t)break}H(e,I.SELECTOR,r,t)}else{for(;e.input.length>e.position;){const t=e.input[e.position];if("\\"===t)z(e),e.input.length>e.position&&(r+=z(e));else{if(!te(t)&&"-"!==t&&"_"!==t&&":"!==t)break;r+=z(e)}}H(e,I.SELECTOR,r,t)}}function Z(e){const t=e.position;if(re(e))return void function(e,t){const r=e.input;let n="",i=0,a="";for(;r.length>e.position;){const t=r[e.position];if(a)n+=z(e),t===a&&(a="");else if('"'!==t&&"'"!==t){if("<"===t){if("/"===r[e.position+1]){for(;r.length>e.position&&">"!==r[e.position];)n+=z(e);if(r.length>e.position&&(n+=z(e)),i--,0>=i)break;continue}let t=!1,a="";for(;r.length>e.position;){const i=r[e.position];if(a)n+=z(e),i===a&&(a="");else if('"'!==i&&"'"!==i){if(">"===i){t="/"===r[e.position-1],n+=z(e);break}n+=z(e)}else a=i,n+=z(e)}if(t||i++,0>=i)break;continue}n+=z(e)}else a=t,n+=z(e)}H(e,I.SELECTOR,n,t)}(e,t);let r="";for(r+=z(e);e.input.length-1>e.position;){const t=e.input[e.position],n=e.input[e.position+1];if(r+=z(e),"/"===t&&">"===n){r+=z(e);break}}H(e,I.SELECTOR,r,t)}function Y(e){const t=e.position;let r=z(e);for(;e.input.length>e.position;){const t=e.input[e.position];if(!te(t)&&"_"!==t&&"-"!==t)break;r+=z(e)}H(e,I.SYMBOL,r,t)}function J(e){const t=e.position;let r="";const n=e.input[e.position];if(("'"===n||"'"===n)&&"s"===_(e,1))return r="'s",z(e),z(e),void H(e,I.OPERATOR,r,t);const i=e.input.substring(e.position,e.position+2),a=e.input.substring(e.position,e.position+3);["===","!=="].includes(a)?(r=a,z(e),z(e),z(e)):["==","!=","<=",">=","&&","||","**","~=","|=","^=","$=","*=","?."].includes(i)?(r=i,z(e),z(e)):r=z(e),H(e,I.OPERATOR,r,t)}function G(e){const t=e.position,r=e.input,n=r.length;let i="";for(;n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=z(e)}if(n>e.position&&"."===r[e.position]&&(e.position+1>=n||"."!==r[e.position+1]))for(i+=z(e);n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=z(e)}if(n>e.position){const t=r[e.position];if("e"===t||"E"===t){const t=n>e.position+1?r[e.position+1]:"",a=n>e.position+2?r[e.position+2]:"";if(t>="0"&&"9">=t||!("+"!==t&&"-"!==t||"0">a||a>"9"))for(i+=z(e),"+"!==r[e.position]&&"-"!==r[e.position]||(i+=z(e));n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=z(e)}}}const a=e.position;let s="";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z"))break;s+=z(e)}$.has(s)?H(e,I.TIME,i+s,t):(e.position=a,H(e,I.NUMBER,i,t))}function X(e){const t=e.position,r=e.input,n=r.length;let i="";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;i+=z(e)}const a=function(e,t,r){const n=t.toLowerCase(),i=e.position;if("'s"===t||"'s"===t)return!1;const a=e.tokens[e.tokens.length-1];if(a&&(a.kind===I.IDENTIFIER||a.kind===I.SELECTOR)){const t=e.input.length>e.position?e.input[e.position]:"";if("'"===t||"'"===t)return!1}V(e);let s="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;s+=z(e)}if(s){const t=s.toLowerCase(),i=`${n} ${t}`,a=function(e,t,r,n){const i=t.toLowerCase(),a=r.toLowerCase();if("at"===i){const t=e.position;if("the"===a){V(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;r+=z(e)}const i=r.toLowerCase();if("start"===i||"end"===i){V(e);let t="";for(;e.input.length>e.position;){const r=e.input[e.position];if(("a">r||r>"z")&&("A">r||r>"Z")&&("0">r||r>"9")&&"_"!==r&&"-"!==r)break;t+=z(e)}if("of"===t.toLowerCase())return H(e,I.IDENTIFIER,`at the ${i} of`,n),!0}return e.position=t,!1}if("start"===a||"end"===a){V(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;r+=z(e)}return"of"===r.toLowerCase()?(H(e,I.IDENTIFIER,`at ${a} of`,n),!0):(e.position=t,!1)}}return!1}(e,n,t,r);if(a)return!0;const o=function(e,t,r){const n=e.position;let i=`${t} ${r}`,a=e.position;const s=[t,r];for(;8>s.length&&(V(e),e.input.length>e.position);){let t="";for(;e.input.length>e.position;){const r=e.input[e.position];if(("a">r||r>"z")&&("A">r||r>"Z"))break;t+=z(e)}if(!t)break;s.push(t.toLowerCase());const r=s.join(" ");P.has(r)&&(i=r,a=e.position)}return P.has(i)&&i!==`${t} ${r}`?(e.position=a,i):(e.position=n,null)}(e,n,t);if(o)return H(e,I.OPERATOR,o,r),!0;if(P.has(i))return H(e,I.OPERATOR,i,r),!0}return P.has(n)?(e.position=i,H(e,I.OPERATOR,t,r),!0):(e.position=i,!1)}(e,i,t);if(a)return;const s=function(e){const t=e.toLowerCase();return"include"===t||"includes"===t||q.has(t)||M.has(e)||M.has(t)||P.has(t)?I.OPERATOR:I.IDENTIFIER}(i);H(e,s,i,t)}function Q(e){const t=e.position,r=e.input,n=r.length;z(e);let i="$";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t)break;i+=z(e)}H(e,I.IDENTIFIER,i,t)}function ee(e){return/[a-zA-Z]/.test(e)}function te(e){return/[a-zA-Z0-9]/.test(e)}function re(e){const t=e.input,r=t[e.position+1];if(!r||!/[a-zA-Z]/.test(r))return!1;let n=e.position+1,i="";for(;t.length>n&&/[a-zA-Z0-9-]/.test(t[n]);)i+=t[n],n++;return i.length>0&&-1!==t.indexOf("</"+i+">",n)}function ne(e){if(re(e))return!0;let t=e.position+1,r=!1;for(;e.input.length>t;){const n=e.input[t];if("/"===n&&e.input.length>t+1&&">"===e.input[t+1])return r;if(te(n)||"."===n||"#"===n||"["===n||"]"===n||":"===n||"-"===n||"_"===n||" "===n||"="===n||'"'===n||"'"===n||"("===n||")"===n||"*"===n||"^"===n||"$"===n||"~"===n||"|"===n||">"===n||"+"===n||","===n||"{"===n||"}"===n)r=!0,t++;else{if(" "!==n&&"\t"!==n)return!1;t++}if(t-e.position>50)return!1}return!1}function ie(e){return"+-*/^%=!<>&|(){}[],.;:?''~$".includes(e)}const ae=function(){if("undefined"!=typeof localStorage)try{const e=localStorage,t=e.getItem("hyperfixi:debug")||e.getItem("lokascript:debug");if("*"===t||"true"===t)return!0}catch{}return!("undefined"==typeof window||!window.__HYPERFIXI_DEBUG__)||"undefined"!=typeof process&&"true"===process.env?.HYPERFIXI_DEBUG}(),se=ae,oe=ae,le=ae,ce=ae,ue=(...e)=>{se&&console.log("\ud83d\udd27",...e)},de=(...e)=>{oe&&console.log("\ud83c\udfaf",...e)},me=(...e)=>{le&&console.log("\ud83d\udcdd",...e)},pe=(...e)=>{ce&&console.log("\ud83d\ude80",...e)},he=new Set(["then","end","to","into","on","with","from","in","by","for","while","until","unless","else","catch","finally"]),fe=new Set([")","]","}",","]);function ye(e,t){return{infix:{bp:[e,e+1],handler:t??((t,r,n)=>{const i=n.parseExpr(e+1);return{type:"binaryExpression",operator:r.value,left:t,right:i,start:t.start,end:i.end??r.end,line:t.line??r.line,column:t.column??r.column}})}}}function ge(e,t){return{infix:{bp:[e+1,e],handler:(t,r,n)=>{const i=n.parseExpr(e);return{type:"binaryExpression",operator:r.value,left:t,right:i,start:t.start,end:i.end??r.end,line:t.line??r.line,column:t.column??r.column}}}}}function ve(e,t){return{prefix:{bp:e,handler:t??((t,r)=>{const n=r.parseExpr(e);return{type:"unaryExpression",operator:t.value,operand:n,argument:n,prefix:!0,start:t.start,end:n.end??t.end,line:t.line,column:t.column}})}}}function be(e){return(t,r,n)=>{const i=n.advance();if(!i||!i.value)throw Error(`Type check requires a type name after 'is ${e?"not ":""}a/an', got: <end>`);let a=!0;const s=n.peek();return s&&"!"===s.value&&(n.advance(),a=!1),{type:"typeCheckExpression",value:t,typeName:i.value,nullOk:a,negated:e,start:t.start,end:i.end}}}const we=function(...e){const t=new Map;for(const r of e)for(const[e,n]of r){const r=t.get(e);t.set(e,r?{prefix:n.prefix??r.prefix,infix:n.infix??r.infix}:{...n})}return t}(new Map([["or",ye(10)],["||",ye(10)],["and",ye(20)],["&&",ye(20)],["==",ye(30)],["!=",ye(30)],["<",ye(30)],[">",ye(30)],["<=",ye(30)],[">=",ye(30)],["is",ye(30)],["matches",ye(30)],["contains",ye(30)],["starts with",ye(30)],["ends with",ye(30)],["does not start with",ye(30)],["does not end with",ye(30)],["is between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!1,start:e.start,end:a.end}})],["is not between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!0,start:e.start,end:a.end}})],["am between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!1,start:e.start,end:a.end}})],["am not between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!0,start:e.start,end:a.end}})],["ignoring case",{infix:{bp:[25,26],handler:(e,t,r)=>(e.ignoringCase=!0,e)}}],["where",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"where",collection:e,right:n,start:e.start,end:n.end}})],["sorted by",ye(28,(e,t,r)=>{const n=r.parseExpr(29);let i="asc";const a=r.peek();if(a&&"string"==typeof a.value){const e=a.value.toLowerCase();"asc"===e||"ascending"===e?(r.advance(),i="asc"):"desc"!==e&&"descending"!==e||(r.advance(),i="desc")}return{type:"collectionExpression",operator:"sorted by",collection:e,right:n,order:i,start:e.start,end:n.end}})],["mapped to",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"mapped to",collection:e,right:n,start:e.start,end:n.end}})],["split by",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"split by",collection:e,right:n,start:e.start,end:n.end}})],["joined by",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"joined by",collection:e,right:n,start:e.start,end:n.end}})],["+",{...ye(40),...ve(80)}],["-",{...ye(40),...ve(80)}],["*",ye(50)],["/",ye(50)],["%",ye(50)],["mod",ye(50)],["^",ge(60)],["**",ge(60)],["as",ye(70,(e,t,r)=>{const n=()=>{const e=r.peek();!e||"a"!==e.value&&"an"!==e.value||r.advance();const t=r.parseExpr(71),n=r.peek();if(n&&":"===n.value&&t&&"identifier"===t.type){r.advance();const e=r.advance();if(e&&void 0!==e.value)return{...t,name:`${t.name+""}:${e.value}`,end:e.end}}return t};let i=n(),a={type:"asExpression",expression:e,targetType:i,start:e.start,end:i.end??t.end,line:e.line??t.line,column:e.column??t.column};for(;r.peek()&&"|"===r.peek().value;){r.advance();const e=n();a={type:"asExpression",expression:a,targetType:e,start:a.start,end:e.end??a.end,line:a.line,column:a.column}}return a})],["not",ve(80)],["!",ve(80)],["no",ve(27)]]),new Map([["===",ye(30)],["!==",ye(30)],["is not",ye(30)],["am",ye(30)],["is in",ye(30)],["is not in",ye(30)],["precedes",ye(30)],["does not precede",ye(30)],["follows",ye(30)],["does not follow",ye(30)],["is a",ye(30,be(!1))],["is an",ye(30,be(!1))],["is not a",ye(30,be(!0))],["is not an",ye(30,be(!0))],["has",ye(30)],["have",ye(30)],["match",ye(30)],["include",ye(30)],["includes",ye(30)],["equals",ye(30)],["does not contain",ye(30)],["does not include",ye(30)],["am in",ye(30)],["am not in",ye(30)],["is really",ye(30)],["is not really",ye(30)],["is equal",ye(30)],["is not equal",ye(30)],["contain",ye(30)],["do not contain",ye(30)],["does not contains",ye(30)],["do not match",ye(30)],["does not match",ye(30)],["is equal to",ye(30)],["is not equal to",ye(30)],["is really equal to",ye(30)],["is not really equal to",ye(30)],["really equals",ye(30)],["is greater than",ye(30)],["is less than",ye(30)],["is greater than or equal to",ye(30)],["is less than or equal to",ye(30)],["in",ye(30)],["of",ge(30)],["really",ye(30)],["exists",{prefix:{bp:80,handler:(e,t)=>({type:"unaryExpression",operator:e.value,operand:t.parseExpr(80),start:e.start})},infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["does not exist",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["is empty",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["is not empty",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["some",ve(80)]]),new Map([["=",ge(5)]])),ke=new Set,Ee=new Set,xe=new Set,Ce=new Set;function Ae(e,t){void 0!==console&&console.error(`[hyperfixi] ${e} threw:`,t)}function Se(e,t){if(0!==Ee.size)for(const r of Ee)try{r(e,t)}catch(e){Ae("globalReadHook",e)}}function Te(e,t,r){if(0!==xe.size)for(const n of xe)try{n(e,t,r)}catch(e){Ae("localWriteHook",e)}}function Oe(e,t){if(0!==Ce.size)for(const r of Ce)try{r(e,t)}catch(e){Ae("localReadHook",e)}}function Le(e,t,r){if(e.globals.set(t,r),0!==ke.size)for(const n of ke)try{n(t,r,e)}catch(e){Ae("globalWriteHook",e)}}const je=new Map,qe=new Map,Pe=new Map;function Ne(e){return je.get(e.toLowerCase())}function Re(e){return Pe.get(e)}function Ie(e){return e.kind===I.IDENTIFIER&&k.has(e.value.toLowerCase())}function Me(e){return e.kind===I.IDENTIFIER&&R.has(e.value.toLowerCase())}function $e(e){return e.kind===I.IDENTIFIER&&N.has(e.value.toLowerCase())}function _e(e){return e.kind===I.IDENTIFIER&&j.has(e.value.toLowerCase())}function ze(e){return P.has(e.value.toLowerCase())}function Ve(e){return e.kind===I.IDENTIFIER}function He(e){return e.kind===I.SELECTOR}function We(e){return e.kind===I.SELECTOR&&!e.value.startsWith("<")}function Be(e){return e.kind===I.STRING||e.kind===I.NUMBER||e.kind===I.TEMPLATE}function Fe(e){return e.kind===I.IDENTIFIER}function De(e){return e.kind===I.TIME}function Ue(e){return e.kind===I.SYMBOL}function Ke(e){return e.kind===I.COMMENT}function Ze(e){if(e.kind!==I.IDENTIFIER)return!1;const t=e.value.toLowerCase();return!(k.has(t)||R.has(t)||N.has(t)||j.has(t))}function Ye(e){return e.kind===I.STRING}function Je(e){return e.kind===I.NUMBER}function Ge(e){if(e.kind===I.IDENTIFIER){const t=e.value;return"true"===t||"false"===t||"null"===t||"undefined"===t}return!1}function Xe(e){return e.kind===I.TEMPLATE}function Qe(e){return e.kind===I.SELECTOR&&e.value.startsWith("<")}function et(e){return e.kind===I.SELECTOR&&e.value.startsWith("#")}function tt(e){return e.kind===I.SELECTOR&&e.value.startsWith(".")}function rt(e){return e.kind===I.SELECTOR&&!e.value.startsWith("#")&&!e.value.startsWith(".")}function nt(e){if(e.kind!==I.OPERATOR)return!1;const t=e.value.toLowerCase();return!q.has(t)&&!P.has(t)}function it(e){const t=e.value.toLowerCase();return"then"===t||"and"===t||"else"===t||"end"===t||"on"===t}function at(e,t,r){return{type:"literal",value:e,raw:t,start:r.start,end:r.end,line:r.line,column:r.column}}function st(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}function ot(e,t,r,n){return{type:"binaryExpression",operator:e,left:t,right:r,start:n.start,end:n.end,line:n.line,column:n.column}}function lt(e,t){return{type:"block",commands:e,start:t.start,end:t.end,line:t.line,column:t.column}}function ct(e,t){return{type:"string",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}function ut(e,t){return{type:"objectLiteral",properties:e,start:t.start,end:t.end,line:t.line,column:t.column}}function dt(e,t){return{type:"arrayLiteral",elements:e,start:t.start,end:t.end,line:t.line,column:t.column}}function mt(e,t,r){return{type:"propertyOfExpression",property:e,target:t,start:r.start,end:r.end,line:r.line,column:r.column}}function pt(e,t,r){return{type:"command",name:"__ERROR__",args:[],diagnostics:[{message:t,severity:"error",code:"parse-error",line:e.line,column:e.column,...r&&{source:r}}],start:e.start,end:e.end,line:e.line,column:e.column}}function ht(e){return e}function ft(e){return e}function yt(e,t){return!!e&&t.some(t=>e.value===t||e.value.toLowerCase()===t)}const gt=[e,n,t,r];function vt(e,t=[]){if(e.isAtEnd())return!0;for(const t of gt)if(e.check(t))return!0;for(const r of t)if(e.check(r))return!0;return!!e.checkIsCommand()}function bt(e,t=[]){if(!vt(e,t))return e.parseExpression()}function wt(e,t){return!!e.check(t)&&(e.advance(),!0)}function kt(e){const t=e.savePosition();let r;if(e.checkIdentifierLike()){const n=e.peek().value;e.advance(),e.check(":")?(e.advance(),r=n):e.restorePosition(t)}const n=e.parseExpression();return void 0!==r?{name:r,value:n}:{value:n}}class Et{constructor(e){this.args=[],this.isBlocking=!1,this.name=e}static from(e){const t=new Et(e.value);return t.startPos={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},t}static fromIdentifier(e){const t=new Et(e.name);return void 0!==e.start&&(t.startPos={start:e.start,end:e.end??0,line:e.line??1,column:e.column??1}),t}static named(e){return new Et(e)}withArgs(...e){return this.args.push(...e),this}withBody(e){return this.body=e,this}withImplicitTarget(e){return this.implicitTarget=e,this}withModifier(e,t){return this.modifiers||(this.modifiers={}),this.modifiers[e]=t,this}withModifiers(e){return this.modifiers={...this.modifiers,...e},this}withName(e){return this.name=e,this}withOriginalCommand(e){return this.originalCmd=e,this}blocking(e=!0){return this.isBlocking=e,this}startingAt(e){return this.startPos={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},this}endingAt(e){return this.endPos={start:e.start??this.startPos?.start??0,end:e.end,line:e.line??this.startPos?.line??1,column:e.column??this.startPos?.column??1},this}build(){const e={type:"command",name:this.name,args:this.args,isBlocking:this.isBlocking,start:this.startPos?.start??0,end:this.endPos?.end??this.startPos?.end??0,line:this.startPos?.line??1,column:this.startPos?.column??1};return this.body&&(e.body=this.body),this.implicitTarget&&(e.implicitTarget=this.implicitTarget),this.modifiers&&(e.modifiers=this.modifiers),this.originalCmd&&(e.originalCommand=this.originalCmd),e}clone(){const e=new Et(this.name);return e.args=[...this.args],e.body=this.body?[...this.body]:void 0,e.implicitTarget=this.implicitTarget,e.isBlocking=this.isBlocking,e.modifiers=this.modifiers?{...this.modifiers}:void 0,e.originalCmd=this.originalCmd,e.startPos=this.startPos?{...this.startPos}:void 0,e.endPos=this.endPos?{...this.endPos}:void 0,e}}function xt(e,t){const r=[];let n="";const i=e.peek().start||0,a=e.peek().line||1,s=e.peek().column||1;if(e.checkIdentifierLike()){for(n=e.advance().value;e.check(":")&&!e.isAtEnd();)e.advance(),n+=":",e.checkIdentifierLike()&&(n+=e.advance().value);if(e.check("(")){e.advance();const t=[];for(;!e.isAtEnd()&&!e.check(")");){const{name:r,value:n}=kt(e);if(t.push(void 0!==r?{type:"objectLiteral",properties:[{key:{type:"identifier",name:r},value:n}],start:n.start,end:n.end,line:n.line,column:n.column}:n),e.check(","))e.advance();else if(!e.check(")"))break}e.check(")")&&e.advance(),r.push({type:"functionCall",name:n,args:t,start:i,end:e.getPosition().end,line:a,column:s})}else r.push({type:"string",value:n,start:i,end:e.getPosition().end,line:a,column:s})}const o=[...r],l={};for(;!vt(e);){if(e.check(f)||e.check(d)){e.advance();const t=bt(e,[p]);t&&(l.on=t);continue}if(e.check(p)){e.advance();const t=[];for(;!vt(e,[f,d]);){const r=e.savePosition(),n=e.parsePrimary();n&&t.push(n),e.savePosition()===r&&e.advance()}const r=t[0],n=t[t.length-1];l.with=ht({type:"arrayLiteral",elements:t,...void 0!==r?.start?{start:r.start}:{},...void 0!==n?.end?{end:n.end}:{},...void 0!==r?.line?{line:r.line}:{},...void 0!==r?.column?{column:r.column}:{}});continue}const t=e.savePosition(),r=e.parsePrimary();r&&o.push(r),e.savePosition()===t&&e.advance()}const c=Et.fromIdentifier(t).withArgs(...o);return Object.keys(l).length>0&&c.withModifiers(l),c.endingAt(e.getPosition()).build()}function Ct(e,t){const r=Et.fromIdentifier(t);if(e.check(b)){const t=e.advance(),n=e.check(y)?e.advance():t;r.withModifier("the",{type:"literal",value:"event",start:t.start,end:n.end,line:t.line,column:t.column})}return r.endingAt(e.getPosition()).build()}function At(i,a){const s=[],o=()=>i.check(r)||a&&i.check(t);for(;!i.isAtEnd()&&!o();){if(Ke(i.peek())){i.advance();continue}if(!i.checkIsCommand()&&!i.isCommand(i.peek().value))break;i.advance();const t=i.parseCommand();t&&s.push(t),(i.check(e)||i.check(n)||i.check(","))&&i.advance()}return s}const St=new Set(["is","am","are","not","no","and","or","==","===","!=","!==","<",">","<=",">=","+","-","*","/","mod"]);function Tt(e,t,r){return null!==t&&!St.has(t.value?.toLowerCase?.()??"")&&(e.checkIsCommand()||e.isCommand(r.value?.toLowerCase()))}function Ot(n,i){const a=[];let s=!1;const o=n.savePosition();let l=null;for(let t=0;500>t&&!n.isAtEnd();t++){const t=n.peek();if(t.value===e){s=!0;break}if(t.value===r||t.value===g||"def"===t.value||t.value===f)break;if(void 0!==t.line&&t.line!==i.line&&Tt(n,l,t))break;Ke(t)||(l=t),n.advance()}n.restorePosition(o);let c=!1;if(!s){const e=n.savePosition(),a=i.line,s=100;let o=!1,l=null;for(;!n.isAtEnd()&&s>n.current-e;){const e=n.peek(),i=e.value?.toLowerCase();if(o&&void 0!==e.line&&e.line!==a)break;if(i===g||"def"===i||i===f)break;if(i===t||i===r){e.line===a&&(c=!0);break}if(Tt(n,l,e)){if(void 0!==e.line&&e.line!==a){c=!0;break}o=!0}Ke(e)||(l=e),n.advance()}n.restorePosition(e)}const u=s||c;let d;if(u)d=n.parseExpression();else{const t=[],r=20;let a=0,s=!0;for(;!n.isAtEnd()&&!n.check(e)&&(s||!n.checkIsCommand()&&!n.isCommand(n.peek().value))&&r>a;){s=!1;const e=n.savePosition();t.push(n.parseLogicalAnd()),n.savePosition()===e&&n.advance(),a++}if(0===t.length)throw Error("Expected condition after if/unless");d=1===t.length?t[0]:{type:"expression",tokens:t,start:t[0].start,end:t[t.length-1].end,line:i.line,column:i.column}}if(a.push(d),u){wt(n,e);const s=At(n,!0);if(0===s.length&&n.isAtEnd())throw Error("Expected command after 'then' in if statement - incomplete conditional");a.push(lt(s,{start:i.start,end:n.getPosition().end,line:i.line,column:i.column}));let o=!1;if(n.check(t))if(n.advance(),n.check("if")){const e=n.peek();n.advance();const t=Ot(n,e);a.push(lt([t],{start:e.start,end:n.getPosition().end,line:e.line,column:e.column})),o=!0}else{const e=At(n,!1);a.push(lt(e,{start:i.start,end:n.getPosition().end,line:i.line,column:i.column}))}o||n.isAtEnd()||n.consume(r,"Expected 'end' after if block")}else{if(!n.checkIsCommand()&&!n.isCommand(n.peek().value))throw Error("Expected command after if condition in single-line form");{n.advance();const e=n.parseCommand();a.push(lt([e],{start:i.start,end:n.getPosition().end,line:i.line,column:i.column}))}}return Et.from(i).withArgs(...a).endingAt(n.getPosition()).build()}function Lt(e,t){const r=[],n={};if(e.checkAnySelector()||e.checkContextVar()||e.match("<")){const t=e.parsePrimary();if(r.push(t),e.match("*")){if(e.checkIdentifierLike()){const t=e.advance();r.push({type:"identifier",name:"*"+t.value,start:t.start-1,end:t.end,line:t.line,column:t.column})}}else if(e.checkIdentifierLike()){const t=e.parsePrimary();r.push(t)}}else if(e.checkIdentifierLike()){const t=e.parsePrimary();r.push(t)}if(e.match("and")&&e.match("set")&&e.checkIdentifierLike()){const t=e.advance();n.set={type:"identifier",name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}const i=Et.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition());return Object.keys(n).length>0&&i.withModifiers(n),i.build()}const jt=new Set(["my","its","your"]);function qt(e){return{type:"literal",value:e,raw:e}}function Pt(e){const t={};if(wt(e,i)){const r=e.parseExpression();return r&&(t.for=r),t}if(!e.check(s))return t;e.advance();const r=e.peek();if(!r||!Ve(r))return t;e.advance();let n=r.value;if(e.check(":")){e.advance();const t=e.peek();t&&Ve(t)&&(e.advance(),n=`${n}:${t.value}`)}if(t.until=qt(n),wt(e,m)){const r=bt(e);r&&(t.from=r)}return t}function Nt(e,t){const r=[],n=bt(e,[m]);n&&r.push(n);const i={};if(wt(e,m)){const t=bt(e);t&&(i.from=t)}return Et.fromIdentifier(t).withArgs(...r).withModifiers(i).endingAt(e.getPosition()).build()}function Rt(e,t){const r=[],a={};if(e.check("between")){e.advance();const t=[],r=bt(e,[n]);if(r&&"binaryExpression"===r.type&&"and"===r.operator)r.left&&t.push(r.left),r.right&&t.push(r.right);else{r&&t.push(r),wt(e,n);const a=bt(e,[m,f,i]);a&&t.push(a)}const s=t[0],o=t[t.length-1];a.between={type:"arrayLiteral",elements:t,...void 0!==s?.start?{start:s.start}:{},...void 0!==o?.end?{end:o.end}:{},...void 0!==s?.line?{line:s.line}:{},...void 0!==s?.column?{column:s.column}:{}}}else{const t=bt(e,[m,f]),n="asExpression"===t?.type?function(e){const t="string"==typeof e?e:e?.name;return"modal"===t||"non-modal"===t?t:void 0}(t.targetType):void 0;t&&void 0!==n&&t.expression?(r.push(t.expression),a.as=qt(n)):t&&r.push(t),void 0===n&&e.check("modal")&&(e.advance(),a.as=qt("modal"))}if(wt(e,m)||wt(e,f)){const t=bt(e);t&&(a.on=t)}return Et.fromIdentifier(t).withArgs(...r).withModifiers({...a,...Pt(e)}).endingAt(e.getPosition()).build()}function It(e){if(!e.check("using"))return{};if(e.advance(),!e.match("view"))throw Error("expected 'view transition' after 'using'");if(!e.match("transition"))throw Error("expected 'transition' after 'using view'");return{viewTransition:qt("transition")}}function Mt(e,t){const r=[];if(e.match("{"))r.push(e.parseCSSObjectLiteral());else{const t=bt(e,[d]);t&&r.push(t)}const n={};if(wt(e,d)){const t=bt(e);t&&(n.to=t)}return Et.from(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}function $t(e,t){const n=e.parseExpression();if(!n)return e.addError("Put command requires content expression"),null;const i=e.peek();if(!i||!C.includes(i.value))return e.addError(`Expected operation keyword (${C.join(", ")}) after put expression, got: ${i?.value}`),null;let a=e.advance().value;const s=a.toLowerCase();"at start of"===s||"at the start of"===s?a=E:"at end of"===s||"at the end of"===s?a=x:"at"===a&&(e.check(w)||e.check(b)?(wt(e,b),e.check(w)&&(e.advance(),e.check(h)&&(e.advance(),a=E))):e.check(r)&&(e.advance(),e.check(h)&&(e.advance(),a=x)));const o=e.parseExpression();return o?Et.fromIdentifier(t).withArgs(n).withModifier(a,o).endingAt(e.getPosition()).build():(e.addError("Put command requires target expression after operation keyword"),null)}const _t=["afterbegin","afterend","beforebegin","beforeend","delete","innerhtml","innermorph","into","morph","none","outerhtml","outermorph","over"];function zt(e,t){const r=[],n={};if(!e.isAtEnd()){const t=e.peek(),r=t?.value?.toLowerCase();r&&_t.includes(r)&&(e.advance(),n.strategy=qt(r))}const i="delete"===n.strategy?.value;wt(e,h);const a=i?e.parseExpression():bt(e,[p]);if(a&&r.push(a),!i&&wt(e,p)){const t=bt(e,["using"]);t&&(n.with=t)}return Et.fromIdentifier(t).withArgs(...r).withModifiers({...n,...It(e)}).endingAt(e.getPosition()).build()}function Vt(e,t){const r=[],n={};if(!(vt(e,["catch","finally"])||e.check("when")||e.check("where")||e.check(p))){const t=e.parseExpression();t&&r.push(t)}if(wt(e,p)){const t=function(e){if(!e)return null;const t="string"==typeof e.name?e.name:"string"==typeof e.value?e.value:null;return null===t?null:t.replace(/^\*/,"")}(e.parseExpression());null!==t&&(n.with=qt(t))}const i=Et.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition());return Object.keys(n).length>0&&i.withModifiers(n),i.build()}function Ht(i,a){const s=i.savePosition();let o=null,l=[];try{o=function(e){if(!e.check(":"))return null;if(e.advance(),e.check(":")){e.advance();const t=e.advance();return{type:"identifier",name:t.value,scope:"global",start:t.start-2,end:t.end}}const t=e.advance();return{type:"identifier",name:t.value,scope:"element",start:t.start-1,end:t.end}}(i)??function(e){if(!e.check(v)&&!e.check("local"))return null;const t=e.advance(),r=e.advance();return{type:"identifier",name:r.value,scope:t.value,start:t.start,end:r.end}}(i)??function(e){if(!e.check(b))return null;const t=e.savePosition();e.advance();const r=e.parseExpression();if(!r)return e.restorePosition(t),null;if("binaryExpression"===r.type&&r.operator===h){const e=r.left,t=r.right;return mt(e,t,{start:e.start??0,end:t.end??0,line:e.line??1,column:e.column??1})}return e.check(d)?r:(e.restorePosition(t),null)}(i),o||(o=i.parseExpression())}catch{i.restorePosition(s),o=null}if(!o){const a=function(i){if(i.match(":")){const e=i.advance();return{expression:{type:"identifier",name:e.value,scope:"element",start:e.start,end:e.end},tokens:[]}}const a=[];for(;!(i.isAtEnd()||i.check(d)||i.check(e)||i.check(n)||i.check(t)||i.check(r));)a.push(i.parsePrimary());if(0===a.length)return{expression:null,tokens:[]};if(a.length>=4){const e=(e,t)=>e[t];if(e(a[0],"value")===b&&e(a[2],"value")===h){const t=a[1],r=a[3];return{expression:mt(st(e(t,"value")||e(t,"name")||"",{start:t.start??0,end:t.end??0,line:t.line??1,column:t.column??1}),{type:"idSelector"===r.type?"idSelector":"cssSelector",value:e(r,"value")||e(r,"name")||"",start:r.start??0,end:r.end??0,line:r.line,column:r.column},{start:a[0].start??0,end:r.end??0,line:a[0].line??1,column:a[0].column??1}),tokens:[]}}}return 1===a.length?{expression:a[0],tokens:[]}:{expression:null,tokens:a}}(i);o=a.expression,l=a.tokens}if(o&&(o=function(e){const t=e=>{if(!e||"selector"!==e.type)return null;const t=e.value;return"string"==typeof t&&t.startsWith("*")?st(t,{start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1}):null},r={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},n=t(e);if(n)return n;if("binaryExpression"===e.type&&e.operator===h){const n=t(e.left);if(n)return mt(n,e.right,r)}if("propertyOfExpression"===e.type){const n=t(e.property);if(n)return mt(n,e.target,r)}return e}(o)),!i.check(d)){const e=i.isAtEnd()?"end of input":i.peek().value;throw Error("Expected 'to' in set command, found: "+e)}i.advance();const c=i.parseExpression()??i.parsePrimary();let u;var m;i.check(f)&&(m=i.peekAt(1))&&("selector"===m.kind||m.value.startsWith("<")||Wt.has(m.value))&&(i.advance(),u=bt(i));const p=[];o?p.push(o):l.length>0&&p.push(...l);const y=Et.fromIdentifier(a).withArgs(...p);return c&&y.withModifier("to",c),u&&y.withModifier("on",u),y.endingAt(i.getPosition()).build()}const Wt=new Set(["me","my","it","its","you","your","yourself"]),Bt=new Set(["top","middle","bottom","left","center","right","nearest"]);function Ft(e,t){return{type:"string",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Dt(e){if(e.isAtEnd())return;const t=e.current,r=e.parsePrimary();return e.current===t?void 0:r}const Ut=new Set(["then","and","else","end","when","where","catch","finally"]);const Kt=new Set(["top","middle","bottom","left","center","right","nearest"]),Zt=new Set(["up","down","left","right"]),Yt=["of","smoothly","instantly","by","up","down","left","right"];function Jt(e,t){const r=e.peek(),n=e.resolveKeyword(r.value).toLowerCase();return("smoothly"===n||"instantly"===n)&&(e.advance(),t.behavior=Ft("smoothly"===n?"smooth":"instant",r),!0)}function Gt(e,t){const r=[],n={};if(wt(e,"url"),!e.isAtEnd()&&ar(e)){const t=or(e);t&&r.push(t)}else{const t=bt(e,["with"]);t&&r.push(t)}if(wt(e,"with")){wt(e,"title");const t=bt(e);t&&(n.title=t)}return Et.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}function Xt(e,t){if(e.isAtEnd())return!0;const r=e.peek();return(!e.checkIsCommand()||"("!==e.peekAt(1)?.value)&&(!!vt(e,["catch","finally","on"])||yt(r,[...t.markers]))}function Qt(e,t,r,n){const i=[],a={};if("none"!==n.positional){const t=n.continuation??[];for(;!Xt(e,n);){const r="expression"===n.positional?e.parseExpression():e.parsePrimary();if(!r)break;if(i.push(r),e.match(","))continue;if("primary"===n.positional)continue;const a=r.name;if("identifier"===r.type&&a&&t.includes(a.toLowerCase()))continue;const s=e.peek();if(!s||!t.includes(s.value.toLowerCase()))break;e.advance(),i.push(e.createIdentifier(s.value))}}const s=new Set(n.commaList??[]);for(;!e.isAtEnd()&&yt(e.peek(),[...n.markers]);){const t=e.advance().value,r=e.resolveKeyword(t).toLowerCase();let n=e.parseExpression();if(n&&s.has(r)&&e.check(",")){const t=[n];for(;e.match(",");){const r=e.parseExpression();if(!r)break;t.push(r)}const r=t[0];n={type:"arrayLiteral",elements:t,start:r.start,end:t[t.length-1].end,line:r.line,column:r.column}}n&&(a[r]=n)}const o=Et.from(t).withName(r).withArgs(...i);return Object.keys(a).length>0&&o.withModifiers(a),o.endingAt(e.getPosition()).build()}const er=new Map([["put",$t],["trigger",xt],["send",xt],["remove",Nt],["take",function(e,t){const r=[],n={},a=bt(e,[m,i]);if(a&&r.push(a),wt(e,m)){const t=bt(e,[i]);t&&(n.from=t)}if(wt(e,i)){const t=bt(e);t&&(n.for=t)}return Et.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}],["toggle",Rt],["set",Ht],["add",(e,t)=>Mt(e,rr(t))],["halt",Ct],["measure",Lt],["js",function(e,t){const n=[];if(e.match("(")){for(;!e.check(")")&&!e.isAtEnd();)e.checkIdentifierLike()&&n.push(e.advance().value),e.match(",");e.consume(")","Expected ) after js parameters")}const i=e.peek().start,a=function(e,t){const r=e.getInputSlice(t);if(!r)return t;let n=0;for(;r.length>n;){const e=r[n];if("'"!==e&&"\u2019"!==e&&"\u2018"!==e)if('"'!==e)if("`"!==e)if("/"===e&&r.length>n+1&&"/"===r[n+1])for(n+=2;r.length>n&&"\n"!==r[n];)n++;else if("/"===e&&r.length>n+1&&"*"===r[n+1]){for(n+=2;r.length>n&&("*"!==r[n]||n+1>=r.length||"/"!==r[n+1]);)n++;n+=2}else{if(!("e"!==e&&"E"!==e||n+3>r.length||"end"!==r.slice(n,n+3).toLowerCase()||0!==n&&/[a-zA-Z0-9_]/.test(r[n-1])||r.length>n+3&&/[a-zA-Z0-9_]/.test(r[n+3])))return t+n;n++}else{for(n++;r.length>n&&"`"!==r[n];)"\\"===r[n]&&n++,n++;n++}else{for(n++;r.length>n&&'"'!==r[n];)"\\"===r[n]&&n++,n++;n++}else{for(n++;r.length>n&&r[n]!==e;)"\\"===r[n]&&n++,n++;n++}}return t+r.length}(e,i);for(;!e.isAtEnd()&&!e.check(r)&&e.peek().start<a;)e.advance();e.consume(r,"Expected end after js code body");const s={type:"literal",value:e.getInputSlice(i,a).trim(),start:t.start,end:e.getPosition().end},o={type:"arrayLiteral",elements:n.map(e=>({type:"literal",value:e,start:t.start,end:t.end})),start:t.start,end:e.getPosition().end};return Et.fromIdentifier(t).withArgs(s,o).endingAt(e.getPosition()).build()}],["go",function(e,t){const r=[],n={};for(;!vt(e,["when","where","catch","finally"]);){const t=e.peek(),i=e.resolveKeyword(t.value).toLowerCase();if("to"!==i&&"the"!==i)if("back"!==i&&"forward"!==i||0!==r.length||n.url){if("url"===i){e.advance();const t=ar(e)?or(e):Dt(e);t&&(n.url=t);continue}if("in"===i){e.advance();const t=e.peek(),r=[];for(;!e.isAtEnd()&&["new","window"].includes(e.peek().value.toLowerCase());)r.push(e.advance().value.toLowerCase());n.in=Ft(r.join(" ")||t.value,t);continue}if(!Bt.has(i)||n.position){if("of"===i){e.advance(),"the"===e.resolveKeyword(e.peek().value).toLowerCase()&&e.advance();const t=Dt(e);t&&(n.of=t);continue}if("smoothly"!==i&&"instantly"!==i){if("+"===t.value||"-"===t.value||"number"===t.kind){let r=1;"+"!==t.value&&"-"!==t.value||(e.advance(),"-"===t.value&&(r=-1));const i=e.peek();if("number"!==i.kind)break;e.advance();let a=i.end;const s=e.peek();e.isAtEnd()||"px"!==s.value||s.start!==i.end||(a=e.advance().end),n.by=ht({type:"literal",value:r*Number(i.value),raw:i.value,start:t.start,end:a,line:t.line,column:t.column});continue}if(0===r.length&&!n.of&&!n.url){if(ar(e)){const t=or(e);if(t){r.push(t);continue}}const t=Dt(e);if(t){r.push(t);continue}}break}e.advance(),n.behavior=Ft("smoothly"===i?"smooth":"instant",t)}else e.advance(),n.position=Ft(i,t)}else e.advance(),n[i]=Ft(i,t);else e.advance()}return Et.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}],["push",Gt],["replace",Gt],["scroll",(e,t)=>function(e,t){return e.isAtEnd()?null:"to"===e.resolveKeyword(e.peek().value).toLowerCase()?function(e,t){const r=[],n={};for(e.advance();!vt(e,["when","where","catch","finally"]);){const t=e.peek(),i=e.resolveKeyword(t.value).toLowerCase();if("the"!==i)if(!Kt.has(i)||n.position){if("of"===i){e.advance();const t=bt(e,Yt);t&&(n.of=t);continue}if(!Jt(e,n)){if(0===r.length&&!n.of){const t=bt(e,Yt);if(t){r.push(t);continue}}break}}else e.advance(),n.position=Ft(i,t);else e.advance()}return Et.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}(e,t):function(e){for(let t=0;12>t;t++){const r=e.peekAt(t);if(!r)return!1;const n=e.resolveKeyword(r.value).toLowerCase();if("by"===n)return!0;if(Ut.has(n))return!1}return!1}(e)?function(e,t){const r=[],n={};for(;!vt(e,["when","where","catch","finally"]);){const t=e.peek(),i=e.resolveKeyword(t.value).toLowerCase();if(Zt.has(i))e.advance(),n.direction=Ft(i,t);else{if("by"===i){e.advance();let t=1;const r=e.peek();"+"!==r.value&&"-"!==r.value||(e.advance(),"-"===r.value&&(t=-1));const i=e.peek();if("number"===i.kind){e.advance();const r=e.peek();let a=i.end;e.isAtEnd()||"px"!==r.value||r.start!==i.end||(a=e.advance().end),n.by=ht({type:"literal",value:t*Number(i.value),raw:i.value,start:i.start,end:a,line:i.line,column:i.column})}else{const t=bt(e,Yt);t&&(n.by=t)}continue}if(!Jt(e,n)){if(0===r.length){const t=bt(e,Yt);if(t){r.push(t);continue}}break}}}return Et.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}(e,t):null}(e,t)??ir(e,t)],["tell",function(i,a){const s=i.parseExpression();if(!s)throw Error("tell command requires a target expression");i.check(d)&&i.advance();const o=[];for(;!i.isAtEnd();){if(i.checkIsCommand()){try{i.advance();const e=i.parseCommand();if(!e)break;o.push(e)}catch{break}if(i.match(n)||i.match(e))continue;if(i.check(t))break;if(i.check(r)){i.advance();break}if(i.checkIsCommand())continue;break}break}if(0===o.length)throw Error("tell command requires at least one command after the target");return Et.fromIdentifier(a).withArgs(s,...o).endingAt(i.getPosition()).build()}],["pick",function(e,t){const r=Et.fromIdentifier(t);wt(e,b);const n=e.peek().value,i=e=>({type:"literal",value:e,start:t.start,end:t.end}),a=()=>{if(!e.match("of","from"))throw Error("pick: expected 'of' or 'from' before source expression");return e.parseExpression()};if("first"===n){e.advance();const t=e.parsePrimary(),n=a();return r.withArgs(n).withModifier("variant",i("first")).withModifier("count",t).endingAt(e.getPosition()).build()}if("last"===n){e.advance();const t=e.parsePrimary(),n=a();return r.withArgs(n).withModifier("variant",i("last")).withModifier("count",t).endingAt(e.getPosition()).build()}if("random"===n){let t;e.advance(),e.check("of")||e.check("from")||(t=e.parsePrimary());const n=a(),s=r.withArgs(n).withModifier("variant",i("random"));return t&&s.withModifier("count",t),s.endingAt(e.getPosition()).build()}if("item"===n||"items"===n||"character"===n||"characters"===n){let t,n;e.advance(),e.match("at","from"),t=e.match("start")?i("start"):e.parsePrimary();let s=!1;(e.match("to")||e.match(".."))&&(e.match("end")?s=!0:n=e.parsePrimary());let o="default";e.match("inclusive")?o="inclusive":e.match("exclusive")&&(o="exclusive");const l=a(),c=r.withArgs(l).withModifier("variant",i("range")).withModifier("rangeStart",t).withModifier("rangeMode",i(o));return s?c.withModifier("rangeEnd",i("end")):n&&c.withModifier("rangeEnd",n),c.endingAt(e.getPosition()).build()}if("match"===n||"matches"===n){e.advance(),e.match("of");const t=e.parsePrimary();let s;e.matchOperator("|")&&(s=e.advance().value);const o=a(),l=r.withArgs(o).withModifier("variant",i("match"===n?"match":"matches")).withModifier("regex",t);return s&&l.withModifier("flags",i(s)),l.endingAt(e.getPosition()).build()}return ir(e,t)}],["start",function(e,t){if(!e.match("view"))throw Error("start: expected 'view transition' (only `start view transition ... end` is supported)");if(!e.match("transition"))throw Error("start view: expected 'transition'");const r={};if(e.match("using")){const t=e.parsePrimary();r.transitionName=t}const n=e.parseCommandListUntilEnd("start view transition");return Et.fromIdentifier(t).withArgs(...n).withModifiers(r).endingAt(e.getPosition()).build()}],["swap",zt],["morph",zt],["show",Vt],["hide",Vt],["process",(e,t)=>function(e,t){if(!e.check("partials"))return null;const r=[];if(e.advance(),wt(e,u)){const t=bt(e,["using"]);t&&r.push(t)}const n=It(e),i=Et.fromIdentifier(t).withArgs(...r);return Object.keys(n).length>0&&i.withModifiers(n),i.endingAt(e.getPosition()).build()}(e,t)??ir(e,t)]]),tr=new Set(er.keys());function rr(e){return{kind:"identifier",value:e.name,start:e.start??0,end:e.end??0,line:e.line??0,column:e.column??0}}const nr={positional:"primary",markers:[]};function ir(e,t){return Qt(e,rr(t),t.name.toLowerCase(),nr)}function ar(e){const t=e.peek();if("/"===t.value)return!0;if(e.checkIdentifierLike()){const r=e.peekAt(1);return!!r&&":"===r.value&&r.start===t.end}return!1}const sr=new Set(["{",")"]);function or(e){const t=e.savePosition(),r=e.peek();let n="",i=null;for(;!e.isAtEnd();){const t=e.peek();if(i&&t.start!==i.end)break;if("$"===t.value&&"{"===e.peekAt(1)?.value){e.advance();let r=e.advance(),a=1;for(;!e.isAtEnd()&&a>0;)r=e.advance(),"{"===r.value?a++:"}"===r.value&&a--;n+=e.getInputSlice(t.start,r.end),i=r;continue}if(sr.has(t.value))break;i=e.advance(),n+=i.value}if(!n||"/"===n)return e.restorePosition(t),null;const a={start:r.start,end:i?i.end:r.end,line:r.line,column:r.column};return n.includes("${")?{type:"templateLiteral",value:n,...a}:{type:"literal",value:n,raw:n,...a}}function lr(e){if(e.check("{"))return!1;if(!e.checkIdentifierLike())return!1;const t=e.peekAt(1);return null!==t&&":"===t.value}function cr(e){const t=[],r=e.getPosition();do{if(!e.checkIdentifierLike())break;const r=e.advance(),n={type:"identifier",name:r.value,start:r.start,end:r.end,line:r.line,column:r.column};e.consume(":","Expected ':' after property name in fetch named arguments");const i=e.parsePrimary();i&&t.push({key:n,value:i})}while(e.match(",")&&!e.isAtEnd());const n=e.getPosition();return{type:"objectLiteral",properties:t,start:r.start,end:n.end,line:r.line,column:r.column}}const ur={positional:"none",markers:[],syntax:""},dr=e=>({positional:"expression",markers:[],syntax:e}),mr=dr("beep! [<expression>, \u2026]"),pr={append:{positional:"expression",markers:["to"],syntax:"append <value> [to <target>]"},prepend:{positional:"expression",markers:["to"],syntax:"prepend <value> [to <target>]"},make:{positional:"primary",markers:["a","an","from","called"],commaList:["from"],syntax:"make (a|an) <type> [from <args>] [called <name>]"},throw:{positional:"primary",markers:[],syntax:"throw <error>"},"beep!":mr,beep:mr,blur:dr("blur [<target>]"),break:ur,breakpoint:ur,call:dr("call <expression>"),clear:dr("clear <target>"),close:dr("close [<target>]"),continue:ur,copy:{positional:"expression",markers:["to"],syntax:"copy <source> [to clipboard]"},default:{positional:"expression",markers:["to"],syntax:"default <target> to <value>"},empty:dr("empty [<target>]"),exit:ur,focus:dr("focus [<target>]"),get:dr("get <expression>"),log:dr("log <expression>[, <expression>\u2026]"),open:dr("open [<dialog>] [as modal|non-modal]"),"pseudo-command":dr("<method>(\u2026) [on|from|\u2026] <target>"),render:{positional:"expression",markers:["with"],syntax:"render <template> [with <variables>]"},reset:dr("reset [<form>]"),return:dr("return [<value>]"),select:dr("select [<target>]"),settle:{positional:"expression",markers:["for"],syntax:"settle [<target>] [for <timeout>]"}},hr={positional:"expression",markers:[],continuation:["into","from","to","with","by","at","before","after","over"]};function fr(e){return pr[e.toLowerCase()]??null}const yr=new Set(["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","pc","pt","px"]),gr=new Set(["s","seconds","ms","milliseconds"]);class vr{constructor(e,t,r){this.current=0,this.errors=[],this.warnings=[],this.prattCache=new Map,this.tokens=e,this.keywordResolver=t?.keywords,this.registryIntegration=t?.registryIntegration,this.originalInput=r||e.map(e=>e.value).join(" ")}resolveKeyword(e){return this.keywordResolver?this.keywordResolver.resolve(e)??e:e}addWarning(e){this.warnings.push(e)}parse(){this.prattCache.clear();const e=this.parseInternal();return this.errors.length>0&&(e.errors=[...this.errors],e.recovered=!0),e}parseInternal(){try{if(0===this.tokens.length)return this.addError("Cannot parse empty input"),{success:!1,node:this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings};if(this.check("behavior")){const e=[];for(;this.check("behavior");){this.advance();const t=this.parseBehaviorDefinition();if(t&&e.push(t),this.error)break}return this.error?{success:!1,node:1===e.length?e[0]:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:1===e.length?e[0]:this.createProgramNode(e),tokens:this.tokens,warnings:this.warnings}}const e=this.peek(),t=e&&Ne(e.value)?e.value:null;if(this.check("init")||this.check("on")||this.check("def")||this.checkComment()||null!==t){const e=[];for(;!this.isAtEnd();)if(this.checkComment())this.advance();else{if(this.check("then")){const e=this.peekAt(1);if(null!==e&&("init"===e.value||"on"===e.value||"def"===e.value||void 0!==Ne(e.value))){this.advance();continue}}if(this.check("init")){this.advance();const t=this.parseTopLevelInitBlock();t&&e.push(t)}else if(this.check("on")){this.advance();const t=this.parseEventHandler();t&&e.push(t)}else{if(!this.check("def")){const t=this.peek(),r=t?Ne(t.value):void 0;if(r){const t=this.advance(),n=r(this.getContext(),t);n&&e.push(n);continue}break}{this.advance();const t=this.parseDefFeature();t&&e.push(t)}}}return this.isAtEnd()?this.error?{success:!1,node:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:this.createProgramNode(e),tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings})}if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value)){const e=this.parseCommandSequence();if(e){if(!this.isAtEnd()&&this.check("on")){me("\u2705 PARSER: Found event handlers after command sequence, parsing as program");const t=[e];me(`\u2705 PARSER: Starting with ${t.length} statement(s) from command sequence`);let r=0;for(;!this.isAtEnd()&&this.check("on");){me(`\u2705 PARSER: Parsing event handler #${r+1}, current token: ${this.peek().value}`),this.advance();const e=this.parseEventHandler();if(me("\u2705 PARSER: parseEventHandler returned:",e?`type=${e.type}, event=${e.event}`:"null"),e&&(t.push(e),r++,me(`\u2705 PARSER: Added event handler, now have ${t.length} statements total`)),me(`\u2705 PARSER: After parsing event handler, current token: ${this.isAtEnd()?"END":this.peek().value}, isAtEnd=${this.isAtEnd()}, check('on')=${this.check("on")}`),!this.isAtEnd()&&!this.check("on")){if(!this.isAtEnd())return me("\u26a0\ufe0f PARSER: Unexpected token after event handlers: "+this.peek().value),this.addError("Unexpected token after event handlers: "+this.peek().value),{success:!1,node:this.createProgramNode(t),tokens:this.tokens,error:this.error};me("\u2705 PARSER: No more event handlers, at end of input");break}}return me(`\u2705 PARSER: Finished parsing, creating Program node with ${t.length} statements`),this.error?{success:!1,node:this.createProgramNode(t),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:this.createProgramNode(t),tokens:this.tokens,warnings:this.warnings}}return this.isAtEnd()?this.error?{success:!1,node:e,tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:e,tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:e||this.createErrorNode(),tokens:this.tokens,error:this.error})}}const r=this.parseExpression();if(this.error)return{success:!1,node:r||this.createErrorNode(),tokens:this.tokens,error:this.error};if(!this.isAtEnd()){const e=this.peek();return r&&["number","string","identifier"].includes(e.kind)?this.addError(`Unexpected token: ${e.value} (missing operator between values? expected one of +, -, *, /, etc.)`):this.addError("Unexpected token: "+e.value),{success:!1,node:r||this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings}}return{success:!0,node:r,tokens:this.tokens,warnings:this.warnings}}catch(e){return this.addError(e instanceof Error?e.message:"Unknown parsing error"),{success:!1,node:this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings}}}parseExpression(){return this.parseExpressionPratt(0)}parseExpressionPratt(e){const t=`${this.current}:${e}`,r=this.prattCache.get(t);if(r)return this.current=r.endPos,r.node;if(this.isAtEnd())return this.addError("Unexpected end of expression"),this.createErrorNode();const n=this.peek(),i=vr.PRATT_TABLE.get(n.value);let a;if(i?.prefix){const e=this.advance();if(this.isAtEnd())return this.addError(`Expected expression after '${e.value}' operator`),this.createErrorNode();a=i.prefix.handler(e,this.makePrattContext())}else a=this.parseCall();for(;!this.isAtEnd();){const t=this.peek();if(60>=e){const e=this.tryParseStringPostfix(a,t);if(e){a=e;continue}}const r=vr.PRATT_TABLE.get(t.value);if(!r?.infix){if(he.has(t.value)||fe.has(t.value))break;break}const[n]=r.infix.bp;if(e>n)break;if("="===t.value&&this.tokens.length>this.current+1&&">"===this.tokens[this.current+1].value){if(this.advance(),this.advance(),this.addError('Arrow functions (=>) are not supported in hyperscript. Use "js ... end" blocks for JavaScript callbacks.'),!this.isAtEnd())try{this.parseExpressionPratt(0)}catch(e){me("arrow body discarded after error:",e instanceof Error?e.message:e+"")}return this.createErrorNode()}if("+"===t.value||"-"===t.value){const e=this.tokens.length>this.current+1?this.tokens[this.current+1]:null;if(e&&("+"===e.value||"-"===e.value))return this.addError(`Invalid operator combination: ${t.value}${e.value}`),a}if("*"===t.value||"/"===t.value||"%"===t.value){const e=this.tokens.length>this.current+1?this.tokens[this.current+1]:null;if(e&&("*"===e.value||"/"===e.value||"%"===e.value||"+"===e.value||"-"===e.value))return this.addError("*"===t.value&&"*"===e.value?"Unexpected token: "+e.value:`Invalid operator combination: ${t.value}${e.value}`),a}const i=this.advance();if(this.isAtEnd()&&!vr.POSTFIX_UNARY_OPERATORS.has(i.value))return this.addError(`Expected expression after '${i.value}' operator`),a;a=r.infix.handler(a,i,this.makePrattContext())}return this.prattCache.set(t,{node:a,endPos:this.current}),a}tryParseStringPostfix(e,t){const r=t.value;let n=null;if(yr.has(r)||gr.has(r)&&this.isNumericPostfixRoot(e)?n=r:"%"===r&&(this.canStartOperand(this.tokens.length>this.current+1?this.tokens[this.current+1]:null)||(n="%")),null==n)return null;const i=this.advance();return{type:"stringPostfix",expression:e,unit:n,start:e.start,end:i.end,line:e.line,column:e.column}}isNumericPostfixRoot(e){const t=e;return"literal"===t.type&&"number"==typeof t.value||("unaryExpression"!==t.type||"-"!==t.operator&&"+"!==t.operator?!("binaryExpression"!==t.type||!["+","-","*","/"].includes(t.operator??"")):void 0!==t.argument&&this.isNumericPostfixRoot(t.argument))}canStartOperand(e){if(!e)return!1;const t=e.value;return!he.has(t)&&!fe.has(t)&&("number"===e.kind||"string"===e.kind||"identifier"===e.kind||"symbol"===e.kind||["(","[","{","-","+","!","#",".","<","$","@"].includes(t))}makePrattContext(){const e=this;return{peek:()=>e.tokens.length>e.current?e.tokens[e.current]:void 0,advance:()=>{const t=e.tokens[e.current];return e.current++,t},parseExpr:t=>e.parseExpressionPratt(t),isStopToken:()=>{const t=e.tokens[e.current];return!t||he.has(t.value)||fe.has(t.value)},atEnd:()=>e.current>=e.tokens.length}}parseLogicalAnd(){return this.parseExpressionPratt(11)}parseImplicitBinary(){let e=this.parseCall();for(;!(this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("and")||this.check("else")||this.check(")")||this.check("]")||this.check(","));){if("identifier"!==e.type){if("literal"===e.type&&(this.checkNumber()||this.checkIdentifier())){const t=this.peek();return this.addError(`Missing operator between '${e.raw||e.value}' and '${t.value}'`),e}break}if(this.isCommand(e.name))if(this.isCompoundCommand(e.name.toLowerCase())){if(!(this.checkCssSelector()||this.checkIdSelector()||this.checkClassSelector()||this.checkTimeExpression()||this.checkString()||this.checkNumber()||this.checkContextVar()||this.checkIdentifier()||this.checkKeyword()))break;{const t=this.createCommandFromIdentifier(e);t&&(e=t)}}else if("wait"===e.name.toLowerCase()&&(this.checkTimeExpression()||this.checkNumber()||this.checkIdentifier()||this.checkContextVar()||this.check("("))){const t=this.createCommandFromIdentifier(e);t&&(e=t)}else{if(!this.checkSelector())break;{const t=this.parseCall();e=this.createBinaryExpression(" ",e,t)}}else{if(!this.checkSelector())break;{const t=this.parseCall();e=this.createBinaryExpression(" ",e,t)}}}return e}isCommand(e){return this.keywordResolver?this.keywordResolver.isCommand(e):S(e)}isKeyword(e){return this.keywordResolver?this.keywordResolver.isKeyword(e):T(e)}createCommandFromIdentifier(e){const t=this.resolveKeyword(e.name.toLowerCase());if(this.isCompoundCommand(t))return this.parseCompoundCommand(e);const r={kind:"identifier",value:e.name,start:e.start??0,end:e.end??0,line:e.line??0,column:e.column??0};return Qt(this.getContext(),r,t,fr(t)??hr)}isCompoundCommand(e){return tr.has(e.toLowerCase())}parseCompoundCommand(e){return function(e,t){const r=er.get(t.name.toLowerCase());return r?r(e,t):null}(this.getContext(),e)}parsePutCommand(e){return $t(this.getContext(),e)}parseSetCommand(e){return Ht(this.getContext(),e)}parseHaltCommand(e){return Ct(this.getContext(),e)}parseMeasureCommand(e){return Lt(this.getContext(),e)}parseTriggerCommand(e){return xt(this.getContext(),e)}parseCommandListUntilTerminator(e){const t=[],r=()=>this.check("end")||e.some(e=>this.check(e));for(me("\ud83d\udd04 parseCommandListUntilTerminator: Starting (extraStops:",e.join(","),")");!this.isAtEnd()&&!r();){me("\ud83d\udccd Loop iteration, current token:",this.peek().value,"kind:",this.peek().kind);let e=!1;const n=this.checkIsCommand(),i=!n&&this.checkIdentifier()&&this.isCommand(this.peek().value);if(n||i){me(n?"\u2705 Found COMMAND token:":"\u2705 Found IDENTIFIER that is a command:",this.peek().value),this.advance();const r=this.error;try{const n=this.parseCommand();this.error&&this.error!==r&&(me("\u26a0\ufe0f parseCommandListUntilTerminator: Command parsing added error, restoring. Error was:",this.error.message),this.error=r),n&&(me("\u2705 Parsed command:",n.name),t.push(n),e=!0)}catch(e){me("\u26a0\ufe0f parseCommandListUntilTerminator: Command parsing threw, restoring:",e instanceof Error?e.message:e+""),this.error=r,this.recordDropped("Discarded a command that failed to parse: "+(e instanceof Error?e.message:e+""))}}else this.checkIdentifier()&&me("\u274c IDENTIFIER is not a command:",this.peek().value);if(!e){me("\u274c No command parsed, breaking. Current token:",this.peek().value),this.isAtEnd()||r()||this.recordDropped(`Not a command, and the rest of the body was discarded: '${this.peek().value}'`);break}me("\ud83d\udccd After parsing command, current token:",this.peek().value);const a=this.current;for(;!(this.isAtEnd()||r()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("and")||this.check(","));)me("\u26a0\ufe0f Skipping unexpected token:",this.peek().value),this.advance();if(this.recordDroppedRange(a,this.current),this.match("then","and",","))me("\u2705 Found separator, continuing");else{if(!this.checkIsCommand()&&!this.isCommand(this.peek().value)){me("\ud83d\udccd No separator and no command, breaking. Current token:",this.peek().value);break}me("\u2705 Next token is a command, continuing without separator")}}let n="end";for(const t of e)if(this.check(t)){n=t;break}return this.check("end")||e.some(e=>this.check(e))||(n=""),me("\u2705 parseCommandListUntilTerminator: parsed",t.length,"commands (terminator:",n,")"),{commands:t,terminator:n}}parseCommandListUntilEnd(e="repeat"){const{commands:t}=this.parseCommandListUntilTerminator([]);if(me('\ud83d\udd0d After loop, checking for "end". Current token:',this.peek().value),!this.check("end"))throw me('\u274c ERROR: Expected "end" but got:',this.peek().value,"at position:",this.peek().start),Error(`Expected "end" to close ${e} block`);return me('\u2705 Found "end", consuming it'),this.advance(),t}parseCommandListUntilEndOrElse(){const{commands:e,terminator:t}=this.parseCommandListUntilTerminator(["else"]),r="else"===t;if(!r){if(!this.check("end"))throw Error('Expected "end" to close repeat block');this.advance()}return{commands:e,hasElse:r}}parseRepeatBody(){const{commands:e,terminator:t}=this.parseCommandListUntilTerminator(["else","until","while"]);if("end"===t)this.advance();else if(""===t)throw Error('Expected "end", "else", "until", or "while" to close repeat block');return{commands:e,terminator:t}}parseRepeatCommand(e){return function(e,t){const r=[];let n="forever",d=null,h=null,f=null,g=null,v=null,w=null;if(e.check(i)){e.advance(),n=i;const t=e.peek();Ve(t)&&(v=t.value,e.advance()),e.check(u)&&(e.advance(),g=e.parseExpression())}else if(e.check(u))e.advance(),n=i,v="it",g=e.parseExpression();else if(e.check(a))e.advance(),n=a,f=e.parseExpression();else if(e.check(s))if(e.advance(),n=s,e.check(y)){e.advance(),n="until-event";const t=e.peek();if(me("\ud83d\udccd Parsing event name, current token:",{value:t.value,kind:t.kind}),!Ve(t)&&!$e(t))throw Error('Expected event name after "event"');if(d=t.value,e.advance(),me("\u2705 Got event name:",d,"Next token:",e.peek().value),me('\ud83d\udd0d Checking for "from", current token:',e.peek().value),e.check(m)){me('\u2705 Found "from", advancing...'),e.advance(),me('\ud83d\udccd After consuming "from", current token:',e.peek().value),wt(e,b)&&me('\u2705 Found "the", advancing...');const t=e.peek();me("\ud83d\udd0d Before parsePrimary for event target:",{value:t.value,kind:t.kind,position:t.start}),h=e.parsePrimary(),me("\u2705 After parsePrimary, eventTarget:",h)}else me('\u274c No "from" found, skipping target parsing')}else f=e.parseExpression();else e.check(o)?(e.advance(),n=o):(w=e.parseExpression(),e.check(l)&&(e.advance(),n=l));let k,E=null;if(e.check(p)){const t=e.peekAt(1);t&&t.value.toLowerCase()===c&&(e.advance(),e.advance(),E=c)}else if(e.check(c)){e.advance();const t=e.peek();Ve(t)?(E=t.value,e.advance()):E=c}let x=null,C=!1;if(n===o){const t=e.parseRepeatBody();if(k=t.commands,"else"===t.terminator)e.advance(),x=e.parseCommandListUntilEnd();else if("until"===t.terminator||"while"===t.terminator){if(C=!0,n=t.terminator,e.advance(),f=e.parseExpression(),!e.check("end"))throw Error('Expected "end" to close repeat block');e.advance()}}else{const t=e.parseCommandListUntilEndOrElse();k=t.commands,t.hasElse&&(e.advance(),x=e.parseCommandListUntilEnd())}const A={start:t.start,end:t.end,line:t.line,column:t.column},S={loopType:ct(n,A)};v&&(S.for=ct(v,A)),g&&(S.in=g),w&&(S.times=w),f&&(S["while"===n?"while":"until"]=f),d&&(S.event=ct(d,A)),h&&(S.from=h),E&&(S.index=ct(E,A)),r.push(lt(k,{...A,end:A.end||0})),null!==x&&r.push(lt(x,{...A,end:A.end||0}));const T=Et.from(t).withArgs(...r).withModifiers(S);return C&&T.withModifier("bottomTested",{type:"literal",value:!0,...A}),T.endingAt(e.getPosition()).build()}(this.getContext(),e)}parseForCommand(e){return function(e,t){const r=[];let n=null,i=null;e.check("each")&&e.advance();const a=e.peek();if(!Ve(a))throw Error('Expected variable name after "for"');if(n=a.value,e.advance(),!e.check(u))throw Error('Expected "in" after variable name in for loop');if(e.advance(),i=e.parseExpression(),!i)throw Error('Expected collection expression after "in"');let s=null;if(e.check(p)){const t=e.peekAt(1);t&&t.value.toLowerCase()===c&&(e.advance(),e.advance(),s=c)}else if(e.check(c)){e.advance();const t=e.peek();Ve(t)?(s=t.value,e.advance()):s=c}const o=e.parseCommandListUntilEnd("for");r.push({type:"identifier",name:"for",start:t.start,end:t.end,line:t.line,column:t.column});const l={start:t.start,end:t.end,line:t.line,column:t.column};return r.push(ct(n,l)),r.push(i),s&&r.push(ct(s,l)),r.push(lt(o,{...l,end:l.end||0})),Et.from({...t,value:"repeat"}).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseWaitCommand(e){return function(e,t){const r=[];if(e.checkTimeExpression()||e.checkLiteral()||e.checkContextVar()||e.check("(")||e.checkIdentifierLike()&&!e.check("for")&&!vt(e)){const n=e.parseExpression();return r.push(n),Et.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}if(e.check("for")){e.advance();const n=[];do{if(e.checkTimeExpression()||e.checkLiteral()||e.check("(")){if(n.push({kind:"duration",expr:e.parseExpression()}),e.check("or")){e.advance();continue}break}const t=e.peek();if(!Ve(t))throw Error('Expected event name or duration after "for"');const r=t.value;e.advance();const i=[];if(e.check("(")){for(e.advance();!e.isAtEnd()&&!e.check(")");){const t=e.peek();if(!Ve(t))break;i.push(t.value),e.advance(),e.check(",")&&e.advance()}if(!e.check(")"))throw Error('Expected ")" after event parameters');e.advance()}if(n.push({kind:"event",name:r,params:i}),!e.check("or"))break;e.advance()}while(!e.isAtEnd());let i=null;e.check(m)&&(e.advance(),wt(e,b),i=e.parsePrimary());const a={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(dt(n.map(e=>ut("duration"===e.kind?[{key:st("duration",a),value:e.expr}]:[{key:st("name",a),value:at(e.name,`"${e.name}"`,a)},{key:st("args",a),value:dt(e.params.map(e=>at(e,`"${e}"`,a)),a)}],a)),a)),i&&r.push(i)}return Et.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}(this.getContext(),e)}parseInstallCommand(e){return function(e,t){const r=[];if(!e.checkIdentifierLike())throw Error('Expected behavior name after "install"');const n=e.advance().value,i=e.previous();if(r.push(st(n,{start:i.start,end:i.end,line:i.line,column:i.column})),e.check("(")){e.advance();const n=[];for(;!e.isAtEnd()&&!e.check(")");)if(n.push(kt(e)),e.check(","))e.advance();else if(!e.check(")"))break;if(!e.check(")"))throw Error('Expected ")" after behavior parameters');if(e.advance(),n.length>0){const i={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(ut(n.map(e=>({key:e.name?st(e.name,i):at("_positional","_positional",i),value:e.value})),i))}}return Et.from(t).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseTransitionCommand(e){return function(e,t){const r=[],n={};let i=null,a=null;const s=e.peek();if(e.checkAnySelector()||e.checkContextVar()||e.check("<")||Ve(s)&&jt.has(s.value)){const t=e.parsePrimary();("possessiveExpression"===t.type||"memberExpression"===t.type&&!t.computed)&&t.object&&t.property?.name?(a=t.object,i={type:"string",value:t.property.name,start:s.start||0,end:e.getPosition().end,line:s.line,column:s.column}):(a=t,e.check("'s")&&e.advance())}const o=e.peek();if(!i&&(Ve(o)||"*"===o.value)){let t="";e.check("*")&&(t="*",e.advance());const r=function(e){if(!e.checkIdentifierLike())return"";let t=e.advance().value;for(;e.check("-")&&!e.isAtEnd();)t+="-",e.advance(),e.checkIdentifierLike()&&(t+=e.advance().value);return t}(e);r&&(t+=r,i={type:"string",value:t,start:o.start||0,end:e.getPosition().end,line:o.line,column:o.column})}if(!i)throw Error("Transition command requires a CSS property");if(a&&r.push(a),r.push(i),!e.check(d))throw Error('Expected "to" keyword after property in transition command');e.advance();const l=e.parseExpression();if(n.to=l,e.check("over")){e.advance();const t=e.parseExpression();n.over=t}if(e.check(p)){e.advance();const t=e.parsePrimary();n.with=t}return Et.from(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseAddCommand(e){return Mt(this.getContext(),e)}parseIfCommand(e){return Ot(this.getContext(),e)}parseRemoveCommand(e){return Nt(this.getContext(),e)}parseToggleCommand(e){return Rt(this.getContext(),e)}parseCall(){let e=this.parsePrimary();for(;;)if(this.match("("))e=this.finishCall(e);else if(this.match(".")){const t=this.consumeIdentifierLike("Expected property name after '.' - malformed member access");e=this.createMemberExpression(e,this.createIdentifier(t.value),!1)}else if(this.match("?.")){const t=this.consumeIdentifierLike("Expected property name after '?.' - malformed optional access"),r=this.createMemberExpression(e,this.createIdentifier(t.value),!1);r.optional=!0,e=r}else if(this.match("[")){const t=this.parseExpression();this.consume("]","Expected ']' after array index"),e=this.createMemberExpression(e,t,!0)}else{if(!this.check("'s"))break;{let t;this.advance(),this.check("*")?(this.advance(),t="*"+this.consumeIdentifier("Expected property name after * in CSS property syntax").value):Ue(this.peek())&&this.peek().value.startsWith("@")?t=this.advance().value:this.check("[")&&this.tokens[this.current+1]?.value?.startsWith("@")?(this.advance(),t=this.advance().value,this.consume("]","Expected ']' after attribute reference")):t=this.consumeIdentifierLike("Expected property name after possessive").value,e=this.createPossessiveExpression(e,this.createIdentifier(t))}}return e}parsePrimary(){if(this.check("*")){const e=this.current;if(this.advance(),!this.isAtEnd()&&Ve(this.peek())){const e=this.advance().value;return this.createSelector("*"+e)}this.current=e}if(this.check("*")||this.check("/")||this.check("%")||this.check("mod")){const e=this.peek();return this.addError(`Binary operator '${e.value}' requires a left operand`),this.createErrorNode()}if(this.matchNumber()){const e=parseFloat(this.previous().value);return this.createLiteral(e,this.previous().value)}if(this.matchString()){const e=this.previous().value;if(2>e.length||e.startsWith('"')&&!e.endsWith('"')||e.startsWith("'")&&!e.endsWith("'"))return this.addError("Unclosed string literal - string not properly closed"),this.createErrorNode();const t=e.slice(1,-1),r=this.processEscapeSequences(t);return this.createLiteral(r,e)}if(this.matchTemplateLiteral()){const e=this.previous();return{type:"templateLiteral",value:e.value,start:e.start||0,end:e.end||0,line:e.line,column:e.column}}if(this.matchBoolean()){const e=this.previous().value;let t;switch(e){case"true":t=!0;break;case"false":t=!1;break;case"null":t=null;break;case"undefined":t=void 0;break;default:t="true"===e}return this.createLiteral(t,e)}if(this.matchTimeExpression()){const e=this.previous().value;return this.createLiteral(e,e)}if(this.matchQueryReference()){const e=this.previous().value,t=e.slice(1,-2).trim(),r=this.createSelector(t);return r.fromQuery=!0,r.raw=e,r}if(this.matchSelector())return this.createSelector(this.previous().value);if(this.match("<"))return this.parseHyperscriptSelector();if(this.match("(")){if(this.isAtEnd())return this.addError("Expected expression inside parentheses"),this.createErrorNode();const e=this.parseExpression();return this.consume(")","Expected closing parenthesis ')' after expression - unclosed parentheses"),e}if(this.match("{"))return this.parseObjectLiteral();if(this.match("["))return this.parseAttributeOrArrayLiteral();if(this.check(":")){if(this.advance(),this.check(":")){this.advance();const e=this.advance();return{type:"identifier",name:e.value,scope:"global",start:e.start-2,end:e.end,line:e.line,column:e.column-2}}{const e=this.advance();return{type:"identifier",name:e.value,scope:"element",start:e.start-1,end:e.end,line:e.line,column:e.column-1}}}if(this.matchBasicOperator()){const e=this.previous();return this.createIdentifier(e.value)}const e=this.peek();if((!e||"end"!==e.value&&"else"!==e.value&&"then"!==e.value)&&(this.matchPredicate(Ze)||this.matchPredicate(Me)||this.matchPredicate(_e)||this.matchPredicate(Ie)||this.matchPredicate($e))){const e=this.previous();if("new"===e.value)return this.parseConstructorCall();if("on"===e.value)return this.parseEventHandler();if("if"===e.value)return this.parseConditional();if("closest"===e.value||"first"===e.value||"last"===e.value||"previous"===e.value||"next"===e.value){if(this.check("(")||this.checkCssSelector()||this.checkClassSelector()||this.checkIdSelector()||this.check("<")||this.checkQueryReference())return this.parseNavigationFunction(e.value);if(this.check(".")){const t=this.current;if(this.advance(),this.checkIdentifier()){const t=this.advance().value,r=this.createSelector("."+t);return this.createCallExpression(this.createIdentifier(e.value),[r])}this.current=t}if(this.check("#")){const t=this.current;if(this.advance(),this.checkIdentifier()){const t=this.advance().value,r=this.createSelector("#"+t);return this.createCallExpression(this.createIdentifier(e.value),[r])}this.current=t}return this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("else")||this.check("end")?this.createIdentifier(e.value):this.parseNavigationFunction(e.value)}const t=this.check(".")||this.check("?.");return"my"!==e.value||t?"its"!==e.value||t?"your"!==e.value||t?"the"===e.value?this.parseTheXofY():"values"===e.value&&this.check("of")?(this.advance(),{type:"propertyOfExpression",property:{type:"identifier",name:"values"},target:this.parsePrimary(),line:e.line,column:e.column}):this.createIdentifier(e.value):this.parseContextPropertyAccess("you"):this.parseContextPropertyAccess("it"):this.parseContextPropertyAccess("me")}if(this.match("$"))return this.parseDollarExpression();if("\\"===this.peek().value)return this.parseBlockLiteral();if(Ue(this.peek())&&this.peek().value.startsWith("@")){const e=this.advance();return{type:"attributeAccess",attributeName:e.value.substring(1),start:e.start,end:e.end,line:e.line,column:e.column}}const t=this.peek();return this.addError(`Unexpected token: ${t.value} at line ${t.line}, column ${t.column}`),this.advance(),this.createErrorNode()}parseBlockLiteral(){const e=this.peek().start;this.advance();const t=[];for(;!(this.isAtEnd()||this.check("-")&&">"===this.tokens[this.current+1]?.value);){if(!this.checkIdentifier()){this.addError("Unexpected token in block literal parameters: "+this.peek().value);break}t.push(this.advance().value),this.match(",")}return this.check("-")&&">"===this.tokens[this.current+1]?.value?(this.advance(),this.advance(),{type:"blockLiteral",parameters:t,body:this.parseExpression(),start:e,end:this.previous().end,line:this.previous().line,column:this.previous().column}):(this.addError("Expected '->' in block literal"),this.createErrorNode())}parseDollarExpression(){if(this.checkNumber()){const e=this.advance().value;return this.createLiteral(e,"$"+e)}if(this.checkIdentifier()){const e=this.advance();let t=this.createIdentifier(e.value);for(;this.match(".");){if(!this.checkIdentifier())return this.addError("Expected property name after '.' in dollar expression"),this.createErrorNode();{const e=this.advance();t=this.createMemberExpression(t,this.createIdentifier(e.value),!1)}}return t}return this.addError("Expected identifier or number after '$'"),this.createErrorNode()}parseHyperscriptSelector(){let e="";for(;!this.check("/")&&!this.isAtEnd();)e+=this.advance().value;return this.consume("/","Expected '/' in hyperscript selector"),this.consume(">","Expected '>' after '/' in hyperscript selector"),this.createSelector(e)}parseObjectLiteral(){const e=[],t=this.getPosition();if(this.check("}"))return this.advance(),{type:"objectLiteral",properties:e,start:t.start,end:this.getPosition().end,line:t.line,column:t.column};do{let t;if(this.check("["))this.advance(),t=this.parseExpression(),this.consume("]","Expected ']' after computed property name in object literal");else if(this.matchString()){const e=this.previous().value,r=e.slice(1,-1);t=this.createLiteral(r,e)}else{if(!this.check("-")&&!this.checkPredicate(Ze))return this.addError("Expected property name in object literal"),this.createErrorNode();{let e="",r=!1;for(;this.check("-");)this.advance(),e+="-",r=!0;for(this.checkPredicate(Ze)&&(e+=this.advance().value);this.check("-");)this.advance(),e+="-",r=!0,this.checkPredicate(Ze)&&(e+=this.advance().value);if(""===e||"-"===e)return this.addError("Expected property name in object literal"),this.createErrorNode();t=r?this.createLiteral(e,e):this.createIdentifier(e)}}this.consume(":","Expected ':' after property name in object literal");const r=this.parseExpression();if(e.push({key:t,value:r}),!this.match(","))break;if(this.check("}"))break}while(!this.isAtEnd());return this.consume("}","Expected '}' after object literal properties"),{type:"objectLiteral",properties:e,start:t.start,end:this.getPosition().end,line:t.line,column:t.column}}parseCSSObjectLiteral(){const e=this.getPosition(),t=[];do{if(this.check("}"))break;let r;if(this.matchPredicate(Ze))r=this.createIdentifier(this.previous().value);else{if(!this.matchString())return this.addError("Expected CSS property name"),this.createErrorNode();{const e=this.previous().value,t=e.slice(1,-1);r=this.createLiteral(t,e)}}if(!this.consume(":","Expected ':' after CSS property name"))return this.createErrorNode();const n=[];let i=!1,a=0,s=-1,o=-1;for(;!this.isAtEnd()&&(0!==a||!this.check(";")&&!this.check("}"));){const e=this.advance();n.push(e.value),0>s&&"number"==typeof e.start&&(s=e.start),"number"==typeof e.end&&(o=e.end),"$"===e.value&&this.check("{")&&(i=!0),"{"===e.value&&a++,"}"===e.value&&a--}const l=this.originalInput&&s>=0&&o>s?this.originalInput.slice(s,o):n.join(""),c=i?{type:"templateLiteral",value:l,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}:this.createLiteral(l,l);if(t.push({key:r,value:c}),this.check(";")&&this.advance(),this.check("}"))break}while(!this.isAtEnd());return this.consume("}","Expected '}' after CSS object literal properties"),{type:"objectLiteral",properties:t,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseConstructorCall(){const e=this.previous();if(!this.checkIdentifier())return this.addError('Expected constructor name after "new"'),this.createErrorNode();const t=this.advance(),r=t.value;if(!this.check("("))return this.addError('Expected "(" after constructor name'),this.createErrorNode();this.advance();const n=[];if(!this.check(")"))do{n.push(this.parseExpression())}while(this.match(","));return this.consume(")","Expected ')' after constructor arguments"),{type:"callExpression",callee:{type:"identifier",name:r,start:t.start,end:t.end,line:t.line,column:t.column},arguments:n,isConstructor:!0,start:e.start,end:this.previous().end,line:e.line,column:e.column}}parseTopLevelInitBlock(){const e=this.getPosition(),t=this.parseCommandBlock(["end"]);return this.consume("end","Expected 'end' after init block"),{type:"initBlock",commands:t,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseDefFeature(){const e=this.getPosition();let t="";if(!this.checkIdentifier())return this.addError("Expected function name after 'def'"),{type:"def",name:"",params:[],body:[],start:e.start,end:this.getPosition().end,line:e.line,column:e.column};for(t=this.advance().value;this.check(".");)this.advance(),this.checkIdentifier()&&(t+="."+this.advance().value);const r=[];if(this.check("(")){if(this.advance(),!this.check(")"))for(this.checkIdentifier()&&r.push(this.advance().value);this.check(",");)this.advance(),this.checkIdentifier()&&r.push(this.advance().value);this.consume(")","Expected ')' after parameter list")}const n=this.parseCommandBlock(["end","catch","finally"]),{errorSymbol:i,errorHandler:a,finallyHandler:s}=this.parseErrorAndFinallyBlocks();return this.consume("end","Expected 'end' after function definition"),{type:"def",name:t,params:r,body:n,...void 0!==i&&{errorSymbol:i},...void 0!==a&&{errorHandler:a},...void 0!==s&&{finallyHandler:s},start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseErrorAndFinallyBlocks(){let e,t,r;return this.check("catch")&&(this.advance(),this.checkIdentifier()&&(e=this.advance().value),t=this.parseCommandBlock(["end","finally"])),this.check("finally")&&(this.advance(),r=this.parseCommandBlock(["end"])),{...void 0!==e&&{errorSymbol:e},...void 0!==t&&{errorHandler:t},...void 0!==r&&{finallyHandler:r}}}parseEventNameWithNamespace(e){let t;t=this.checkEvent()||this.checkIdentifier()||this.checkIsCommand()||this.checkIdentifierLike()?this.advance():this.consumeEvent(e);let r=t.value;return this.check(":")&&(this.advance(),r=`${r}:${this.advance().value}`),r}callExprToCommandNode(e,t){return{type:"command",name:e.callee.name,args:e.arguments,isBlocking:!1,...void 0!==t.start&&{start:t.start},...void 0!==t.end&&{end:t.end},...void 0!==t.line&&{line:t.line},...void 0!==t.column&&{column:t.column}}}createPseudoCommandNode(e,t,r,n,i){return{type:"command",name:"pseudo-command",args:[{type:"objectLiteral",properties:[{key:{type:"identifier",name:"methodName"},value:{type:"literal",value:e,raw:`"${e}"`}},{key:{type:"identifier",name:"methodArgs"},value:{type:"literal",value:t.arguments,raw:JSON.stringify(t.arguments)}},...r?[{key:{type:"identifier",name:"preposition"},value:{type:"literal",value:r,raw:`"${r}"`}}]:[],{key:{type:"identifier",name:"targetExpression"},value:n}]}],isBlocking:!1,...void 0!==i.start&&{start:i.start},...void 0!==i.end&&{end:i.end},...void 0!==i.line&&{line:i.line},...void 0!==i.column&&{column:i.column}}}tryParsePseudoCommand(e,t){const r=e.callee.name,n=this.peek();if(!(vr.PSEUDO_COMMAND_PREPOSITIONS.includes(n.value.toLowerCase())||Ze(n)&&!this.isCommand(n.value)||_e(n)))return{node:this.callExprToCommandNode(e,t),isPseudo:!1,targetFailed:!1};let i,a;this.isCommand(r)&&this.addWarning({type:"command-shadow",message:`Method '${r}' shadows hyperscript command`,suggestions:[`Rename method to avoid confusion (e.g., '${r}Fn', 'my${r.charAt(0).toUpperCase()+r.slice(1)}')`,`Use 'call' command instead: call ${r}(...)`,"This works but may cause ambiguity"],severity:"warning",code:"PSEUDO_CMD_SHADOW",...void 0!==t.line&&{line:t.line},...void 0!==t.column&&{column:t.column}}),vr.PSEUDO_COMMAND_PREPOSITIONS.includes(this.peek().value.toLowerCase())&&(i=this.advance().value.toLowerCase());try{a=this.parseExpression()}catch{return{node:this.callExprToCommandNode(e,t),isPseudo:!1,targetFailed:!0}}return{node:this.createPseudoCommandNode(r,e,i,a,t),isPseudo:!0,targetFailed:!1}}parseCommandWithErrorRecovery(){this.advance();const e=this.error;try{const t=this.parseCommand();return this.error&&this.error!==e&&(me("\u26a0\ufe0f Command parsing added error, restoring error state. Error was:",this.error.message),this.error=e),t}catch(t){return me("\u26a0\ufe0f Command parsing threw exception, restoring error state:",t instanceof Error?t.message:t+""),this.error=e,null}}parseTemporalKeywordModifiers(e){if(!this.check("debounced")&&!this.check("throttled"))return;const t=this.advance().value.toLowerCase(),r="debounced"===t?"debounce":"throttle";if(this.match("at"))if(this.checkTimeExpression()){const i=this.advance(),a=(n=i.value).endsWith("ms")?parseInt(n,10):n.endsWith("seconds")?1e3*parseFloat(n):n.endsWith("minutes")?6e4*parseFloat(n):n.endsWith("hours")?36e5*parseFloat(n):n.endsWith("days")?864e5*parseFloat(n):n.endsWith("s")?1e3*parseFloat(n):parseInt(n,10);e[r]=a,me(`\ud83d\udd27 parseEventHandler: Parsed '${t} at ${i.value}' (${a}ms)`)}else if(this.matchNumber()){const n=parseInt(this.previous().value,10);e[r]=n,me(`\ud83d\udd27 parseEventHandler: Parsed '${t} at ${n}'`)}else this.addError(`Expected time expression after '${t} at', got: ${this.peek().value}`);else this.addError(`Expected 'at' after '${t}'`);var n}parseEventHandler(){me("\ud83d\udd27 parseEventHandler: ENTRY - parsing event handler");const e=[];let t=!1;if(this.check("first")&&!this.checkIsCommand()&&this.tokens.length>this.current+1){const e=this.tokens[this.current+1],r=e?.value?.toLowerCase();r&&"of"!==r&&"in"!==r&&"from"!==r&&(this.advance(),t=!0,me("\ud83d\udd27 parseEventHandler: Parsed 'first' as .once alias"))}const r=this.parseEventNameWithNamespace("Expected event name after 'on'");for(e.push(r),me("\ud83d\udd27 parseEventHandler: Parsed first event name: "+r);this.check("or");){this.advance(),me("\ud83d\udd27 parseEventHandler: Found 'or', parsing additional event name");const t=this.parseEventNameWithNamespace("Expected event name after 'or'");e.push(t),me("\ud83d\udd27 parseEventHandler: Parsed additional event name: "+t)}let n;if(me("\ud83d\udd27 parseEventHandler: Total events parsed: "+e.join(", ")),this.registryIntegration){const t=e[0];if(this.registryIntegration.hasEventSource(t)){const e=this.registryIntegration.getEventSource(t);n=e?.name,me(`\ud83d\udd27 parseEventHandler: Detected custom event source '${n}' for event '${t}'`)}}const i=[];if(this.match("(")){if(!this.check(")"))do{const e=this.advance();i.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after event parameters"),me("\ud83d\udd27 parseEventHandler: Parsed event parameters: "+i.join(", "))}const a={};for(;this.check(".");){this.advance();const e=this.advance().value.toLowerCase();if("once"===e)a.once=!0,me("\ud83d\udd27 parseEventHandler: Parsed modifier '.once'");else if("prevent"===e)a.prevent=!0,me("\ud83d\udd27 parseEventHandler: Parsed modifier '.prevent'");else if("stop"===e)a.stop=!0,me("\ud83d\udd27 parseEventHandler: Parsed modifier '.stop'");else if("debounce"===e||"throttle"===e){if(!this.check("("))throw Error(`Expected '(' after '.${e}'`);{this.advance();const t=this.advance(),r=parseInt(t.value,10);if(isNaN(r))throw Error(`Expected number for ${e} delay, got: ${t.value}`);"debounce"===e?(a.debounce=r,me(`\ud83d\udd27 parseEventHandler: Parsed modifier '.debounce(${r})'`)):(a.throttle=r,me(`\ud83d\udd27 parseEventHandler: Parsed modifier '.throttle(${r})'`)),this.consume(")",`Expected ')' after ${e} delay`)}}else me(`\ud83d\udd27 parseEventHandler: Warning - unknown modifier '.${e}'`)}let s,o,l,c;if(this.parseTemporalKeywordModifiers(a),t&&(a.once=!0),Object.keys(a).length>0&&me("\ud83d\udd27 parseEventHandler: Parsed modifiers:",a),this.match("[")&&(s=this.parseExpression(),this.consume("]","Expected ']' after event condition")),this.match("from")){const e=this.advance();o=e.value,me(`\ud83d\udd27 parseEventHandler: Parsed 'from' target: ${o} (kind: ${e.kind})`),this.parseTemporalKeywordModifiers(a)}if(this.match("of")){const e=this.advance();l=e.value.startsWith("@")?e.value.substring(1):e.value,me("\ud83d\udd27 parseEventHandler: Parsed attribute name: "+l)}this.match("in")&&(me("\ud83d\udd27 parseEventHandler: Found 'in' keyword, parsing watch target"),c=this.parseExpression(),me("\ud83d\udd27 parseEventHandler: Parsed watch target expression"));const u=[];for(me(`\u2705 parseEventHandler: About to parse commands, current token: ${this.isAtEnd()?"END":this.peek().value}, isAtEnd: ${this.isAtEnd()}`);!this.isAtEnd();){if(me(`\u2705 parseEventHandler: Loop iteration, current token: ${this.peek().value}, kind: ${this.peek().kind}`),this.check("on")){me("\u2705 parseEventHandler: Stopping command parsing, found next event handler 'on'");break}if(this.checkComment()){me("\u2705 parseEventHandler: Skipping comment token: "+this.peek().value),this.advance();continue}if(this.check("end")){me("\u2705 parseEventHandler: Stopping command parsing, found 'end' keyword"),this.advance();break}if(this.check("catch")||this.check("finally")){me(`\u2705 parseEventHandler: Stopping command parsing, found '${this.peek().value}'`);break}if(this.checkIsCommand()){const e="("===this.tokens[this.current+1]?.value,t=this.peek().value.toLowerCase();if(e&&"js"!==t&&"tell"!==t){let e;const t=this.error;try{e=this.parseExpression()}catch(e){this.error=t,this.advance();const r=this.parseCommand();u.push(r);continue}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(u.push(t.node),t.isPseudo||t.targetFailed)continue}}else{const e=this.peek().value,t=this.parseCommandWithErrorRecovery();t?(u.push(t),me("\u2705 parseEventHandler: Parsed command, next token: "+(this.isAtEnd()?"END":this.peek().value))):this.recordDropped(`Command '${e}' failed to parse and was discarded`)}}else{if(!this.checkIdentifier()){this.isAtEnd()||this.check("end")||this.check("catch")||this.check("finally")||this.recordDropped(`Not a command, and the rest of the handler body was discarded: '${this.peek().value}'`);break}{const e=this.peek();if(this.isCommand(e.value)){const t=this.parseCommandWithErrorRecovery();t?u.push(t):this.recordDropped(`Command '${e.value}' failed to parse and was discarded`)}else{let e;const t=this.error;try{e=this.parseExpression()}catch(e){me("\u26a0\ufe0f Expression parsing error, restoring error state:",e instanceof Error?e.message:e+""),this.error=t;break}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(u.push(t.node),t.targetFailed)continue}else{if(!e||"binaryExpression"!==e.type||" "!==e.operator){this.recordDroppedExpression(e);break}{const t=e;if(!t.left||"identifier"!==t.left.type||!this.isCommand(t.left.name)){this.recordDroppedExpression(e);break}{const r={type:"command",name:t.left.name,args:[t.right],isBlocking:!1,...void 0!==e.start&&{start:e.start},...void 0!==e.end&&{end:e.end},...void 0!==e.line&&{line:e.line},...void 0!==e.column&&{column:e.column}};u.push(r)}}}}}}const e=this.current;for(;!(this.isAtEnd()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("and")||this.check(",")||this.check("on")||this.check("catch")||this.check("finally"));)this.advance();if(this.recordDroppedRange(e,this.current),!this.match("then","and",",")&&!this.checkIsCommand()&&!this.isCommand(this.peek().value))break}let d,m,p;this.isAtEnd()||!this.check("catch")&&!this.check("finally")||(({errorSymbol:d,errorHandler:m,finallyHandler:p}=this.parseErrorAndFinallyBlocks()),this.check("end")&&this.advance());const h=this.getPosition(),f={type:"eventHandler",event:1===e.length?e[0]:e.join("|"),events:e,commands:u,...void 0!==d&&{errorSymbol:d},...void 0!==m&&{errorHandler:m},...void 0!==p&&{finallyHandler:p},...i.length>0&&{args:i},...s&&{condition:s},...o&&{target:o},...l&&{attributeName:l},...c&&{watchTarget:c},...n&&{customEventSource:n},...Object.keys(a).length>0&&{modifiers:a},start:h.start,end:h.end,line:h.line,column:h.column};return me(`\ud83d\udd27 parseEventHandler: Created node with events: ${e.join(", ")}, attributeName: ${l||"none"}, watchTarget: ${c?"yes":"none"}`),f}parseBehaviorDefinition(){const e=this.getPosition(),t=this.consumeIdentifier("Expected behavior name after 'behavior' keyword").value;/^[A-Z]/.test(t)||this.addError(`Behavior name must start with uppercase letter (got "${t}")`);const r=[];if(this.match("(")){if(!this.check(")"))do{const e=this.consumeIdentifierLike("Expected parameter name");r.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after behavior parameters")}const n=new Set(r),i=[];let a;for(;!this.isAtEnd()&&!this.check("end");)if(this.match("on")){const e=this.getPosition(),t=this.parseEventNameWithNamespace("Expected event name after 'on'"),r=[];if(this.check("(")){for(this.advance();!this.isAtEnd()&&!this.check(")");){const e=this.peek();Ze(e)?(r.push(e.value),this.advance(),this.check(",")&&this.advance()):this.advance()}this.check(")")&&this.advance()}let a;if(this.check("from")){this.advance();const e=[];if(this.check("the")&&this.advance(),!this.isAtEnd()){const t=this.peek(),r=n.has(t.value);this.checkIsCommand()&&!r||(e.push(t.value),a=t.value,this.advance())}}const{commands:s,terminator:o}=this.parseCommandListUntilTerminator(["catch","finally"]);let l,c,u;if("catch"!==o&&"finally"!==o||({errorSymbol:l,errorHandler:c,finallyHandler:u}=this.parseErrorAndFinallyBlocks()),!this.check("end"))throw Error('Expected "end" to close behavior event handler');this.advance();const d={type:"eventHandler",event:t,commands:ft(s),...void 0!==l&&{errorSymbol:l},...void 0!==c&&{errorHandler:ft(c)},...void 0!==u&&{finallyHandler:ft(u)},...void 0!==a&&{target:a},...r.length>0&&{args:r},start:e.start,end:this.getPosition().end,line:e.line,column:e.column};i.push(d)}else{if(!this.match("init")){this.addError("Unexpected token in behavior body: "+this.peek().value);break}a={type:"initBlock",commands:ft(this.parseCommandBlock(["end"])),start:e.start,end:this.getPosition().end,line:e.line,column:e.column},this.consume("end","Expected 'end' after init block")}return this.consume("end","Expected 'end' to close behavior definition"),{type:"behavior",name:t,parameters:r,eventHandlers:i,...void 0!==a?{initBlock:a}:{},start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseCommandSequence(){const e=[];for(;!this.isAtEnd();){if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value)){this.advance();const t=this.error,r=this.parseCommand();for(this.error&&this.error!==t&&(this.error.message.includes("Expected closing parenthesis")||this.error.message.includes("Expected ')'")||this.error.message.includes("unclosed parenthes")||this.error.message.includes("Unclosed parenthes")||(me("\u26a0\ufe0f parseCommandSequence: Command parsing added non-critical error, restoring error state. Error was:",this.error.message),this.error=t)),e.push(r);!(this.isAtEnd()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("on"));)me("\u26a0\ufe0f parseCommandSequence: Skipping unexpected token:",this.peek().value),this.advance();if(this.check("on")){me('\u2705 parseCommandSequence: Found "on" token, stopping command sequence to allow event handler parsing');break}if(this.match("then"))continue;if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value))continue;break}{const t=this.peek(),r=this.getPosition(),n="Expected command, got: "+t.value;this.addError(n);const i=pt(r,n,t.value);if(e.push(i),this.synchronizeToCommandBoundary(),this.isAtEnd())break;if(this.match("then"))continue;if(this.check("end")||this.check("on"))break;if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value))continue;break}}return 1===e.length?e[0]:function(e){return{type:"CommandSequence",commands:e,start:e[0]?.start||0,end:e[e.length-1]?.end||0,line:e[0]?.line||1,column:e[0]?.column||1}}(e)}isTokenKeyword(e,t){return yt(e,t)}parseCommandBlock(e){const t=[];for(;!this.isAtEnd()&&!e.some(e=>this.check(e));)if(this.checkComment())this.advance();else{if(!this.checkIsCommand()&&!this.isCommand(this.peek().value))break;{this.advance();const e=this.parseCommand();if(t.push(e),this.match("then","and",","))continue}}return t}parseCommand(){const e=this.parseCommandCore();if(e&&"command"===e.type&&!e.body&&(this.check("when")||this.check("where"))){const t=this.peek().value.toLowerCase();this.advance();const r=this.parseExpression();r&&(e.modifiers={...e.modifiers??{},[t]:r})}return e}parseCommandCore(){const e=this.previous();let t=e.value;if("beep"===t&&this.check("!")&&(this.advance(),t="beep!"),"fetch"===t)return function(e,t){const r={};let n=null;if(!e.isAtEnd()&&ar(e)&&(n=or(e)),n||(n=e.parsePrimary()),!n)return e.addError("fetch requires a URL"),Et.from(t).endingAt(e.getPosition()).build();!e.isAtEnd()&&e.check("{")&&(r.with=e.parsePrimary());for(let t=0;3>t&&!e.isAtEnd();t++)if(!e.check("as")||r.as){if(!e.check("with")||r.with){if(e.check("do")&&!r.doNotThrow){const t=e.peekAt(1),n=e.peekAt(2);if("not"===t?.value&&"throw"===n?.value){const t=e.advance();e.advance();const n=e.advance();r.doNotThrow=ht({type:"literal",value:!0,start:t.start,end:n.end,line:t.line,column:t.column});continue}}break}e.advance(),r.with=lr(e)?cr(e):e.parsePrimary()}else e.advance(),e.isAtEnd()||wt(e,"a")||wt(e,"an"),r.as=e.parsePrimary();const i=Et.from(t).withArgs(n).endingAt(e.getPosition());return Object.keys(r).length>0&&i.withModifiers(r),i.build()}(this.getContext(),e);const r=t.toLowerCase();return"repeat"===r?this.parseRepeatCommand(e):"for"===r?this.parseForCommand(e):"if"===r||"unless"===r?this.parseIfCommand(e):"wait"===r?this.parseWaitCommand(e):"install"===r?this.parseInstallCommand(e):"transition"===r?this.parseTransitionCommand(e):"add"===r?this.parseAddCommand(e):this.isCompoundCommand(r)?this.parseCompoundCommand({type:"identifier",name:r,start:e.start||0,end:e.end||0,line:e.line,column:e.column})||{type:"command",name:r,args:[],partial:!0,start:(n=this.getPosition()).start,end:n.end,line:n.line,column:n.column}:"increment"!==t&&"decrement"!==t||this.isAtEnd()?Qt(this.getContext(),e,t,fr(t)??hr):function(e,t){const r=t.value,n="increment"===r?"+":"-";let i=!1;e.check(v)&&(i=!0,e.advance());const a=e.parseExpression();if(!a)throw Error("Expected variable or expression after "+r);let s;if(e.check("by")){e.advance();const t=e.parseExpression();if(!t)throw Error(`Expected amount after 'by' in ${r} command`);s=t}else s=at(1,"1",{start:t.start,end:e.previous().end,line:t.line,column:t.column});let o=a;i&&"identifier"===a.type&&(o={...a,scope:"global"});const l=ot(n,a,s,{start:t.start,end:e.previous().end,line:t.line,column:t.column});return l.coerceNumeric=!0,Et.from(t).withName("set").withArgs(o).withModifier("to",l).withOriginalCommand(r).endingAt({end:e.previous().end}).build()}(this.getContext(),e);var n}parseConditional(){const e=this.parseExpression();this.consume("then","Expected 'then' after if condition");const t=this.parseConditionalBranch();let r;this.match("else")&&(r=this.parseConditionalBranch());const n=this.getPosition();return{type:"conditionalExpression",test:e,consequent:t,alternate:r,start:n.start,end:n.end,line:n.line,column:n.column}}parseConditionalBranch(){if(this.checkIsCommand()){const e=this.advance(),t=this.createIdentifier(e.value);return this.createCommandFromIdentifier(t)||t}if(this.checkIdentifier()||this.checkKeyword()){const e=this.peek();if(this.isCommand(e.value)){const e=this.advance(),t=this.createIdentifier(e.value);return this.createCommandFromIdentifier(t)||t}}return this.parseExpression()}parseNavigationFunction(e){const t=this.getPosition(),r=[];if(this.match("of"))r.push(this.parseExpression());else{if(this.check("("))return this.finishCall(st(e,t));this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("else")||r.push(this.parsePrimary())}const n=this.createCallExpression(st(e,t),r);if("next"===e||"previous"===e){const e=this.parseRelativePositionalModifiers();e&&(n.relativePositional=e)}return n}parseRelativePositionalModifiers(){if(!(this.check("from")||this.check("within")||this.check("in")||this.check("with")))return null;let e,t,r,n=!1,i=!1;return this.match("from")&&(e=this.parseRelativePositionalOperand()),this.match("in")?(n=!0,r=this.parseRelativePositionalOperand()):this.match("within")&&(t=this.parseRelativePositionalOperand()),this.match("with")&&(this.match("wrapping"),i=!0),{from:e,within:t,inElt:r,inSearch:n,wrapping:i}}parseRelativePositionalOperand(){return this.match("the"),this.parsePrimary()}parseTheXofY(){if(!this.checkIdentifier())return this.createIdentifier("the");const e=this.peek(),t=e.value;return["first","last","next","previous","random","closest"].includes(t)?(this.advance(),this.parseNavigationFunction(t)):(this.advance(),this.check("of")?(this.advance(),{type:"propertyOfExpression",property:{type:"identifier",name:t},target:this.parseCall(),line:e.line,column:e.column}):this.createIdentifier(t))}parseContextPropertyAccess(e){const t=this.getPosition(),r=()=>st(e,t);if(this.match("*")){let e="";if(!this.checkIdentifier())return this.addError("Expected property name after 'my *'"),this.createMemberExpression(r(),this.createIdentifier(""),!1);for(e=this.advance().value;this.check("-")&&!this.isAtEnd();){if(e+="-",this.advance(),!this.checkIdentifier()){this.addError("Expected identifier after hyphen in CSS property name");break}e+=this.advance().value}const t="*"+e;return this.createMemberExpression(r(),this.createIdentifier(t),!1)}{if(this.check("[")&&this.tokens[this.current+1]?.value?.startsWith("@")){this.advance();const e=this.advance();return this.consume("]","Expected ']' after attribute reference"),this.createMemberExpression(r(),{type:"attributeAccess",attributeName:e.value.substring(1),start:e.start,end:e.end,line:e.line,column:e.column},!0)}if(Ue(this.peek())&&this.peek().value.startsWith("@")){const e=this.advance();return this.createMemberExpression(r(),this.createIdentifier(e.value),!1)}const t=this.consumeIdentifierLike(`Expected property name after '${{me:"my",it:"its",you:"your"}[e]}'`);return this.createMemberExpression(r(),this.createIdentifier(t.value),!1)}}parseMyPropertyAccess(){return this.parseContextPropertyAccess("me")}finishCall(e){const t=[];if(!this.check(")"))do{if(this.check(","))return this.addError("Unexpected token in function arguments"),this.createCallExpression(e,[this.createErrorNode()]);t.push(this.parseExpression())}while(this.match(","));if(!this.check(")")&&"identifier"===e.type){const t=e.name;O(t)&&me(`\ud83d\udca1 Tip: CSS functions like ${t}() should be quoted for clean parsing. Use '${t}(...)' or \`${t}(...)\` instead.`)}return this.consume(")","Expected ')' after arguments"),this.createCallExpression(e,t)}createLiteral(e,t){return at(e,t,this.getPosition())}createIdentifier(e){return st(e,this.getPosition())}createBinaryExpression(e,t,r){return ot(e,t,r,this.getPosition())}createUnaryExpression(e,t,r){return function(e,t,r,n){return{type:"unaryExpression",operator:e,argument:t,prefix:r,start:n.start,end:n.end,line:n.line,column:n.column}}(e,t,r,this.getPosition())}spanFromLeftmost(e){const t=this.getPosition(),r=e?.start;return"number"==typeof r&&t.start>r?this.originalInput?{...W(this.originalInput,r),start:r,end:t.end}:{...t,start:r}:t}createCallExpression(e,t){return function(e,t,r){return{type:"callExpression",callee:e,arguments:t,start:r.start,end:r.end,line:r.line,column:r.column}}(e,t,this.spanFromLeftmost(e))}createMemberExpression(e,t,r){return function(e,t,r,n){return{type:"memberExpression",object:e,property:t,computed:r,start:n.start,end:n.end,line:n.line,column:n.column}}(e,t,r,this.spanFromLeftmost(e))}createSelector(e){return function(e,t){return{type:"selector",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}(e,this.getPosition())}createPossessiveExpression(e,t){return function(e,t,r){return{type:"possessiveExpression",object:e,property:t,start:r.start,end:r.end,line:r.line,column:r.column}}(e,t,this.spanFromLeftmost(e))}createErrorNode(){return{type:"identifier",name:"__ERROR__",start:(e=this.getPosition()).start,end:e.end,line:e.line,column:e.column};var e}processEscapeSequences(e){return e.replace(/\\(.)/g,(e,t)=>{switch(t){case"n":return"\n";case"t":return"\t";case"r":return"\r";case"b":return"\b";case"f":return"\f";case"v":return"\v";case"0":return"\0";case"\\":return"\\";case'"':return'"';case"'":return"'";default:return t}})}createProgramNode(e){return function(e){if(me(`\u2705 createProgramNode: Called with ${e.length} statements`),0===e.length)return me("\u2705 createProgramNode: Returning error node (0 statements)"),{type:"identifier",name:"__ERROR__",start:0,end:0,line:1,column:1};if(1===e.length)return me(`\u2705 createProgramNode: Returning single statement (type=${e[0].type})`),e[0];const t={type:"Program",statements:e,start:e[0]?.start||0,end:e[e.length-1]?.end||0,line:e[0]?.line||1,column:e[0]?.column||1};return me(`\u2705 createProgramNode: Returning Program node with ${e.length} statements, type=${t.type}`),t}(e)}match(...e){for(const t of e)if(this.check(t))return this.advance(),!0;return!1}matchOperator(e){if(this.isAtEnd())return!1;const t=this.peek();return!(!nt(t)||t.value!==e||(this.advance(),0))}check(e){if(this.isAtEnd())return!1;const t=this.peek().value;return this.resolveKeyword(t)===e}checkPredicate(e){return!this.isAtEnd()&&e(this.peek())}matchPredicate(e){return!!this.checkPredicate(e)&&(this.advance(),!0)}checkSelector(){return this.checkPredicate(We)}matchSelector(){return this.matchPredicate(We)}checkAnySelector(){return this.checkPredicate(He)}checkLiteral(){return this.checkPredicate(Be)}checkIdentifierLike(){return this.checkPredicate(Ve)}checkIsCommand(){return this.checkPredicate(Ie)}checkCommandTerminator(){return this.checkPredicate(it)}checkReference(){return this.checkPredicate(Fe)}checkTimeExpression(){return this.checkPredicate(De)}checkEvent(){return this.checkPredicate($e)}checkContextVar(){return this.checkPredicate(_e)}checkComment(){return this.checkPredicate(Ke)}checkIdentifier(){return this.checkPredicate(Ze)}checkKeyword(){return this.checkPredicate(Me)}checkString(){return this.checkPredicate(Ye)}matchString(){return this.matchPredicate(Ye)}checkNumber(){return this.checkPredicate(Je)}matchNumber(){return this.matchPredicate(Je)}checkBoolean(){return this.checkPredicate(Ge)}matchBoolean(){return this.matchPredicate(Ge)}checkTemplateLiteral(){return this.checkPredicate(Xe)}matchTemplateLiteral(){return this.matchPredicate(Xe)}checkQueryReference(){return this.checkPredicate(Qe)}matchQueryReference(){return this.matchPredicate(Qe)}checkIdSelector(){return this.checkPredicate(et)}checkClassSelector(){return this.checkPredicate(tt)}checkCssSelector(){return this.checkPredicate(rt)}checkBasicOperator(){return this.checkPredicate(nt)}matchBasicOperator(){return this.matchPredicate(nt)}matchTimeExpression(){return this.matchPredicate(De)}matchIdentifierLike(){return this.matchPredicate(Ve)}matchComparisonOperator(){return this.matchPredicate(ze)}consumePredicate(e,t){return this.checkPredicate(e)?this.advance():(this.addError(t),this.peek())}consumeIdentifier(e){return this.consumePredicate(Ze,e)}consumeIdentifierLike(e){return this.consumePredicate(Ve,e)}consumeEvent(e){return this.consumePredicate($e,e)}advance(){return this.isAtEnd()||this.current++,this.previous()}isAtEnd(){return this.current>=this.tokens.length}peek(){return this.isAtEnd()?{kind:"unknown",value:"",start:0,end:0,line:1,column:1}:this.tokens[this.current]}peekAt(e){const t=this.current+e;return t>=0&&this.tokens.length>t?this.tokens[t]:null}previous(){return this.tokens[this.current-1]}consume(e,t){return this.check(e)?this.advance():(this.addError(t),this.peek())}addError(e){const t=this.peek();let r=t.start||0,n=t.line||1,i=t.column||1;if(e.includes("property name after '.'")){const e=this.current>0?this.previous():t;r=e.end||e.start||0,n=e.line||1,i=e.column||1}if(e.includes("parenthes")){const e=this.current>0?this.previous():t;r=e.end||e.start||0,n=e.line||1,i=e.column||1,0===r&&this.current>0&&(r=this.current)}if(e.includes("Expected expression after")){const e=this.current>0?this.previous():t;r=e.start||0,n=e.line||1,i=e.column||1,0===r&&(r=Math.max(1,this.current-1))}if(e.includes("Missing operand")){let e=t;for(let t=this.current-1;t>=0;t--){const r=this.tokens[t];if(r&&("+"===r.value||"-"===r.value)){e=r;break}}r=e.start||0,n=e.line||1,i=e.column||1}this.error={message:e,line:Math.max(1,n),column:Math.max(1,i),position:Math.max(0,r)},this.errors.push(this.error)}recordDroppedRange(e,t){const r=this.tokens.slice(e,t).filter(e=>!Ke(e)&&"end"!==e.value);0!==r.length&&this.recordDropped(`Discarded input the parser could not place: '${r.map(e=>e.value).join(" ")}'`)}recordDropped(e){const t=this.peek();this.errors.push({message:e,line:Math.max(1,t.line||1),column:Math.max(1,t.column||1),position:Math.max(0,t.start||0)})}recordDroppedExpression(e){this.recordDropped("Not a command, and the rest of the handler body was discarded: "+(e&&"string"==typeof e.name?`'${e.name}'`:"a "+(e?.type??"expression")))}synchronizeToCommandBoundary(){for(;!this.isAtEnd();){const e=this.peek();if("then"===e.value||"end"===e.value||"on"===e.value)return;if(this.checkIsCommand()||this.isCommand(e.value)&&!this.isKeyword(e.value))return;me("\u26a0\ufe0f synchronize: Skipping token:",e.value),this.advance()}}parseAttributeOrArrayLiteral(){const e=this.previous().start,t=this.previous().line,r=this.previous().column;if(!this.isAtEnd()&&this.peek().value.startsWith("@")){const n=[];for(;!this.check("]")&&!this.isAtEnd();){const e=this.advance();n.push(e.value)}this.consume("]","Expected ']' after attribute literal");const i=n.join("");if(!i.includes("="))return{type:"attributeAccess",attributeName:i.replace(/^@/,""),start:e,end:this.previous().end,line:t,column:r};const a="["+i+"]";return{type:"literal",value:a,raw:a,start:e,end:this.previous().end,line:t,column:r}}const n=new Set(["=","~=","|=","^=","$=","*="]),i=this.tokens[this.current],a=this.tokens[this.current+1];if("identifier"===i?.kind&&("]"===a?.value||a&&n.has(a.value)&&"string"===this.tokens[this.current+2]?.kind)){let e="["+this.advance().value;if(this.check("]"))this.advance(),e+="]";else{const t=this.advance().value,r=this.advance().value;e+=t+'"'+(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r)+'"',this.consume("]","Expected ']' after attribute selector"),e+="]"}return this.createSelector(e)}const s=[];if(!this.check("]"))do{if(this.check("]"))break;s.push(this.parseExpression())}while(this.match(","));return this.consume("]","Expected ']' after array elements"),{type:"arrayLiteral",elements:s,start:e,end:this.previous().end,line:t,column:r}}getPosition(){const e=this.current>0?this.previous():this.peek();return{start:e.start||0,end:e.end||0,line:e.line||1,column:e.column||1}}getContext(){const e=this,t={tokens:this.tokens,advance:this.advance.bind(this),peek:this.peek.bind(this),previous:this.previous.bind(this),consume:this.consume.bind(this),check:this.check.bind(this),checkIdentifierLike:this.checkIdentifierLike.bind(this),checkSelector:this.checkSelector.bind(this),checkAnySelector:this.checkAnySelector.bind(this),checkLiteral:this.checkLiteral.bind(this),checkReference:this.checkReference.bind(this),checkTimeExpression:this.checkTimeExpression.bind(this),checkEvent:this.checkEvent.bind(this),checkIsCommand:this.checkIsCommand.bind(this),checkContextVar:this.checkContextVar.bind(this),match:this.match.bind(this),matchOperator:this.matchOperator.bind(this),isAtEnd:this.isAtEnd.bind(this),createIdentifier:this.createIdentifier.bind(this),parseExpression:this.parseExpression.bind(this),parsePrimary:this.parsePrimary.bind(this),parseLogicalAnd:this.parseLogicalAnd.bind(this),parseCSSObjectLiteral:this.parseCSSObjectLiteral.bind(this),parseCommand:this.parseCommand.bind(this),parseCommandSequence:this.parseCommandSequence.bind(this),parseCommandListUntilEnd:this.parseCommandListUntilEnd.bind(this),parseCommandListUntilEndOrElse:this.parseCommandListUntilEndOrElse.bind(this),parseRepeatBody:this.parseRepeatBody.bind(this),getPosition:this.getPosition.bind(this),addError:this.addError.bind(this),addWarning:this.addWarning.bind(this),isCommand:this.isCommand.bind(this),isKeyword:this.isKeyword.bind(this),resolveKeyword:this.resolveKeyword.bind(this),savePosition:()=>e.current,restorePosition:t=>{e.current=t},peekAt:t=>e.peekAt(t),getInputSlice:(e,t)=>this.originalInput?0>e||e>=this.originalInput.length?"":void 0!==t?this.originalInput.slice(e,t):this.originalInput.slice(e):""};return Object.defineProperty(t,"current",{get:()=>e.current,set:t=>{e.current=t},enumerable:!0,configurable:!0}),t}}function br(e,t){const r=function(e){const t={input:"",position:0,line:1,column:1,tokens:[]};t.input=e;const r=e.length;for(;r>t.position&&(V(t),r>t.position);){const r=e[t.position];if("-"!==r||"-"!==_(t,1))if('"'!==r){if("'"===r||"'"===r){const e=_(t,1),r=t.tokens[t.tokens.length-1];if("s"!==e||!r||/\s/.test(t.input[t.position-1]??" ")||r.kind!==I.IDENTIFIER&&r.kind!==I.SELECTOR&&"]"!==r.value&&")"!==r.value&&"}"!==r.value)D(t);else{const e=t.position;z(t),z(t),H(t,I.OPERATOR,"'s",e)}continue}if("`"!==r)if("<"!==r)if("#"!==r){if("."===r){if("."===_(t,1)){const e=t.position;z(t),z(t),H(t,I.OPERATOR,"..",e);continue}const e=t.tokens[t.tokens.length-1],r=new Set(["from","to","into","on","in","at","between","first","last","next","previous","closest","random","of","some","no"]),n=e&&e.kind===I.IDENTIFIER&&k.has(e.value.toLowerCase()),i=e&&e.kind===I.IDENTIFIER&&r.has(e.value.toLowerCase());if((!e||e.kind===I.OPERATOR&&")"!==e.value&&"]"!==e.value||n||i||"("===e.value||"["===e.value||"{"===e.value||","===e.value||";"===e.value)&&(!e||e.end!==t.position)&&(ee(_(t))||"{"===_(t)||"-"===_(t))){K(t);continue}}if("@"!==r)if("{"!==r)if("}"!==r){if("["===r){const e=t.tokens[t.tokens.length-1],r=e&&e.kind===I.IDENTIFIER&&N.has(e.value)&&t.tokens.length>=2&&"on"===t.tokens[t.tokens.length-2]?.value;(!e||e.kind!==I.IDENTIFIER&&")"!==e.value&&"]"!==e.value||r)&&r?(z(t),H(t,I.SYMBOL,"[")):(z(t),H(t,I.OPERATOR,"["));continue}if("]"!==r){if("$"===r){const e=_(t,1);if(e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e){Q(t);continue}}ie(r)?J(t):"0">r||r>"9"?("a">r||r>"z")&&("A">r||r>"Z")&&"_"!==r?(H(t,I.UNKNOWN,r),z(t)):X(t):G(t)}else z(t),H(t,I.OPERATOR,"]")}else z(t),H(t,I.OPERATOR,"}");else z(t),H(t,I.OPERATOR,"{");else Y(t)}else K(t);else ne(t)?Z(t):J(t);else U(t)}else D(t);else F(t)}return t.tokens}(e);return new vr(r,t,e).parse()}vr.POSTFIX_UNARY_OPERATORS=new Set(["exists","does not exist","is empty","is not empty","ignoring case"]),vr.PRATT_TABLE=we,vr.PSEUDO_COMMAND_PREPOSITIONS=["from","on","with","into","at","to"];class wr{constructor(){this.hooks=new Map,this.beforeExecuteHooks=[],this.afterExecuteHooks=[],this.onErrorHooks=[],this.interceptCommandHooks=[]}register(e,t){this.unregister(e),this.hooks.set(e,t),t.beforeExecute&&this.beforeExecuteHooks.push(t.beforeExecute),t.afterExecute&&this.afterExecuteHooks.push(t.afterExecute),t.onError&&this.onErrorHooks.push(t.onError),t.interceptCommand&&this.interceptCommandHooks.push(t.interceptCommand)}unregister(e){const t=this.hooks.get(e);if(!t)return!1;if(t.beforeExecute){const e=this.beforeExecuteHooks.indexOf(t.beforeExecute);e>-1&&this.beforeExecuteHooks.splice(e,1)}if(t.afterExecute){const e=this.afterExecuteHooks.indexOf(t.afterExecute);e>-1&&this.afterExecuteHooks.splice(e,1)}if(t.onError){const e=this.onErrorHooks.indexOf(t.onError);e>-1&&this.onErrorHooks.splice(e,1)}if(t.interceptCommand){const e=this.interceptCommandHooks.indexOf(t.interceptCommand);e>-1&&this.interceptCommandHooks.splice(e,1)}return this.hooks.delete(e)}has(e){return this.hooks.has(e)}async runBeforeExecute(e){for(const t of this.beforeExecuteHooks)await t(e)}async runAfterExecute(e,t){for(const r of this.afterExecuteHooks)await r(e,t)}async runOnError(e,t){let r=t;for(const t of this.onErrorHooks){const n=await t(e,r);n instanceof Error&&(r=n)}return r}shouldIntercept(e,t){for(const r of this.interceptCommandHooks)if(r(e,t))return!0;return!1}getRegisteredNames(){return Array.from(this.hooks.keys())}clear(){this.hooks.clear(),this.beforeExecuteHooks=[],this.afterExecuteHooks=[],this.onErrorHooks=[],this.interceptCommandHooks=[]}}function kr(e){return{ok:!0,value:e}}function Er(e){return{ok:!1,error:e}}function xr(e){return!0===e.ok}const Cr=new Map,Ar=new WeakMap;function Sr(e){let t=Ar.get(e);return t||(t=new Map,Ar.set(e,t)),t}function Tr(e){return e.owner||(e.me instanceof Element?e.me:null)}function Or(e,t){const r=Tr(e);if(r)return Oe(t,e),Sr(r).get(t)}function Lr(e,t,r){const n=Tr(e);n&&(Sr(n).set(t,r),Te(t,r,e))}function jr(e,t){return{me:e??null,owner:e??null,it:null,you:null,result:null,locals:new Map,globals:t||Cr}}function qr(e){if(!e)return jr();if(e.locals instanceof Map&&e.globals instanceof Map)return e;const t=jr(e.me instanceof Element?e.me:null);return void 0!==e.it&&(t.it=e.it),void 0!==e.you&&(t.you=e.you),void 0!==e.result&&(t.result=e.result),void 0!==e.event&&Object.assign(t,{event:e.event}),t}function Pr(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName&&"classList"in e}function Nr(e){if(null===e||"object"!=typeof e)return!1;const t=e.nodeType;return 1===t||3===t||11===t}function Rr(e){return null!==e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length&&(Symbol.iterator in e||"function"==typeof e.item)}function Ir(e){if(null==e)return 0;if("number"==typeof e)return isFinite(e)?e:0;if("string"==typeof e)return parseFloat(e);if("boolean"==typeof e)return e?1:0;if(Array.isArray(e))return e.length;if("object"==typeof e){if("length"in e&&"number"==typeof e.length)return e.length;if("function"==typeof e.valueOf){const t=e.valueOf();if("number"==typeof t)return t}return NaN}return 0}function Mr(e,t,r){return"element"===r?Or(t,e):"global"===r&&t.globals&&t.globals.has(e)?t.globals.get(e):"global"!==r&&t.locals&&t.locals.has(e)?(Oe(e,t),t.locals.get(e)):t.globals&&t.globals.has(e)?t.globals.get(e):t.variables&&t.variables.has(e)?t.variables.get(e):"global"===r&&t.locals&&t.locals.has(e)?(Oe(e,t),t.locals.get(e)):"undefined"!=typeof window&&e in window?window[e]:"undefined"!=typeof globalThis&&e in globalThis?globalThis[e]:void 0}function $r(e,t,r,n){if("element"!==n){if("global"===n)return Le(r,e,t),void("undefined"!=typeof window&&(window[e]=t));if(e.startsWith("$"))return void Le(r,e.slice(1),t);if(r.locals&&r.locals.has(e))return r.locals.set(e,t),void Te(e,t,r);if(r.globals&&r.globals.has(e))return Le(r,e,t),void("undefined"!=typeof window&&e in window&&(window[e]=t));if(r.variables&&r.variables.has(e))r.variables.set(e,t);else{if("undefined"!=typeof window&&e in window)return window[e]=t,void Le(r,e,t);r.locals.set(e,t),Te(e,t,r)}}else Lr(r,e,t)}function _r(e,t){return"me"===e?t.me:"it"===e?t.it:"you"===e?t.you:Mr(e,t)}function zr(e,t,r){return r||"string"!=typeof t||!t.startsWith("#")?e:Array.isArray(e)?e[0]??null:e}function Vr(e){if("undefined"==typeof document)throw Error("DOM not available");const t=Array.from(document.querySelectorAll(e)).filter(e=>Pr(e));if(!t.length)throw Error(`No elements: "${e}"`);return t}function Hr(e){if(Pr(e))return[e];if(Array.isArray(e)){const t=e.filter(Pr);return t.length>0?t:null}if("undefined"!=typeof NodeList&&e instanceof NodeList){const t=Array.from(e).filter(Pr);return t.length>0?t:null}return null}const Wr=new class{constructor(e={}){this.types=new Map,this.coercionCache=new Map,this.config={strictMode:!1,cacheCoercions:!0,...e},this.registerBuiltinTypes()}register(e){this.types.has(e.name)&&console.warn(`ExpressionTypeRegistry: Overwriting existing type '${e.name}'`),this.types.set(e.name,e)}get(e){return this.types.get(e)}has(e){return this.types.has(e)}getTypeNames(){return Array.from(this.types.keys())}inferType(e){for(const[t,r]of this.types)if(r.isType(e))return t;return"Unknown"}getHyperScriptType(e){const t=this.inferType(e),r=this.types.get(t);return r?.hyperscriptType??"unknown"}coerce(e,t,r){const n=this.types.get(t);if(!n){if(this.config.strictMode)throw Error("Unknown target type: "+t);return null}if(n.isType(e))return e;if(this.config.cacheCoercions){const r=`${this.inferType(e)}:${t}:${JSON.stringify(e)}`;if(this.coercionCache.has(r))return this.coercionCache.get(r)}const i=this.inferType(e),a=n.coerceFrom?.[i];if(a){const n=a(e,r);if(this.config.cacheCoercions&&null!==n){const r=`${i}:${t}:${JSON.stringify(e)}`;this.coercionCache.set(r,n)}return n}return n.defaultValue}canCoerce(e,t){const r=this.types.get(t);if(!r)return!1;if(r.isType(e))return!0;const n=this.inferType(e);return void 0!==r.coerceFrom?.[n]}getCoercionInfo(e,t){const r=this.types.get(t);return r&&(e===t||r.coerceFrom?.[e])?{possible:!0,direct:!0}:{possible:!1,direct:!1}}clearCache(){this.coercionCache.clear()}getStats(){return{typeCount:this.types.size,cacheSize:this.coercionCache.size,typeNames:this.getTypeNames()}}registerBuiltinTypes(){this.register({name:"String",hyperscriptType:"string",tsType:"string",isType:e=>"string"==typeof e,defaultValue:"",description:"Text string value",examples:["hello","world",""],coerceFrom:{Number:e=>e+"",Boolean:e=>e+"",Null:()=>"",Undefined:()=>"",Array:e=>Array.isArray(e)?e.join(", "):null,Object:e=>{try{return JSON.stringify(e)}catch{return e+""}},Element:e=>e instanceof Element?e.textContent??e.outerHTML:null}}),this.register({name:"Number",hyperscriptType:"number",tsType:"number",isType:e=>"number"==typeof e&&!isNaN(e),defaultValue:0,description:"Numeric value (integer or float)",examples:[0,1,3.14,-42],coerceFrom:{String:e=>{const t=parseFloat(e);return isNaN(t)?null:t},Boolean:e=>e?1:0,Null:()=>0,Undefined:()=>null}}),this.register({name:"Boolean",hyperscriptType:"boolean",tsType:"boolean",isType:e=>"boolean"==typeof e,defaultValue:!1,description:"True or false value",examples:[!0,!1],coerceFrom:{String:e=>{const t=e.toLowerCase().trim();return"true"===t||"yes"===t||"1"===t||"false"!==t&&"no"!==t&&"0"!==t&&""!==t&&t.length>0},Number:e=>0!==e,Null:()=>!1,Undefined:()=>!1,Array:e=>!!Array.isArray(e)&&e.length>0,Element:e=>e instanceof Element,ElementList:e=>Array.isArray(e)&&e.length>0}}),this.register({name:"Element",hyperscriptType:"element",tsType:"Element | HTMLElement",isType:e=>e instanceof Element,defaultValue:null,description:"DOM Element",coerceFrom:{String:(e,t)=>{const r=e;if(r.startsWith("#")||r.startsWith(".")||r.match(/^[\w-]+$/))try{return document.querySelector(r)}catch{return null}return null},ElementList:e=>Array.isArray(e)&&e.length>0?e[0]:null,NodeList:e=>e.length>0?e[0]:null}}),this.register({name:"ElementList",hyperscriptType:"element-list",tsType:"Element[]",isType:e=>Array.isArray(e)&&e.length>0&&e.every(e=>e instanceof Element),defaultValue:[],description:"Array of DOM Elements",coerceFrom:{Element:e=>e instanceof Element?[e]:[],NodeList:e=>Array.from(e),String:e=>{try{return Array.from(document.querySelectorAll(e))}catch{return[]}},Array:e=>{const t=e;return t.every(e=>e instanceof Element)?t:[]}}}),this.register({name:"Array",hyperscriptType:"array",tsType:"unknown[]",isType:e=>Array.isArray(e),defaultValue:[],description:"Array of values",coerceFrom:{String:e=>{const t=e;try{const e=JSON.parse(t);if(Array.isArray(e))return e}catch{}return t.split(",").map(e=>e.trim())},ElementList:e=>e,NodeList:e=>Array.from(e),Object:e=>Object.values(e)}}),this.register({name:"Object",hyperscriptType:"object",tsType:"Record<string, unknown>",isType:e=>!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof Element),defaultValue:{},description:"Plain JavaScript object",coerceFrom:{String:e=>{try{const t=JSON.parse(e);if("object"==typeof t&&null!==t&&!Array.isArray(t))return t}catch{}return null},Array:e=>{const t={};return e.forEach((e,r)=>{t[r+""]=e}),t}}}),this.register({name:"Null",hyperscriptType:"null",tsType:"null",isType:e=>null===e,defaultValue:null,description:"Null value"}),this.register({name:"Undefined",hyperscriptType:"undefined",tsType:"undefined",isType:e=>void 0===e,defaultValue:void 0,description:"Undefined value"}),this.register({name:"Function",hyperscriptType:"function",tsType:"Function",isType:e=>"function"==typeof e,defaultValue:null,description:"JavaScript function"}),this.register({name:"Event",hyperscriptType:"event",tsType:"Event",isType:e=>e instanceof Event,defaultValue:null,description:"DOM Event"}),this.register({name:"NodeList",hyperscriptType:"element-list",tsType:"NodeList",isType:e=>e instanceof NodeList,defaultValue:null,description:"DOM NodeList (typically from querySelectorAll)",coerceFrom:{Array:e=>null}}),this.register({name:"Unknown",hyperscriptType:"unknown",tsType:"unknown",isType:e=>!0,defaultValue:null,description:"Unknown/any value type"})}};function Br(e){const t=Wr.get("String");return t?t.isType(e):"string"==typeof e}function Fr(e){const t=Wr.get("Number");return t?t.isType(e):"number"==typeof e}function Dr(e){const t=Wr.get("Boolean");return t?t.isType(e):"boolean"==typeof e}function Ur(e){const t=Wr.get("Object");return t?t.isType(e):"object"==typeof e&&null!==e}function Kr(e){const t=Wr.get("Function");return t?t.isType(e):"function"==typeof e}function Zr(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"style"in e}function Yr(e){return e instanceof Element}function Jr(e){return e instanceof HTMLElement}const Gr=new Set(["disabled","readonly","required","checked","selected","hidden","open","autofocus","autoplay","controls","loop","muted","multiple","reversed","defer","async","novalidate","formnovalidate","ismap"]);function Xr(e,t){return Gr.has(t.toLowerCase())?e.hasAttribute(t):e.getAttribute(t)}const Qr={id:e=>e.id,classname:e=>e.className,class:e=>e.className,tagname:e=>e.tagName.toLowerCase(),innertext:e=>e.textContent?.trim(),innerHTML:e=>e.innerHTML,outerhtml:e=>e.outerHTML,value:e=>function(e){if(null===e||"object"!=typeof e||!("tagName"in e))return!1;const t=e.tagName;return"INPUT"===t||"SELECT"===t||"TEXTAREA"===t}(e)?e.value:void 0,checked:e=>function(e){return null!==e&&"object"==typeof e&&"tagName"in e&&"INPUT"===e.tagName}(e)?e.checked:void 0,disabled:e=>"disabled"in e?e.disabled:void 0,selected:e=>function(e){return null!=e&&"object"==typeof e&&"tagName"in e&&"OPTION"===e.tagName}(e)?e.selected:void 0,tabindex:e=>Zr(e)?e.tabIndex:void 0,hidden:e=>Zr(e)?e.hidden:void 0,style:e=>getComputedStyle(e),children:e=>Array.from(e.children),parent:e=>e.parentElement,firstchild:e=>e.firstElementChild,lastchild:e=>e.lastElementChild,nextsibling:e=>e.nextElementSibling,previoussibling:e=>e.previousElementSibling,next:e=>e.nextElementSibling,previous:e=>e.previousElementSibling,values:e=>function(e){if(e instanceof HTMLFormElement)return new FormData(e);const t=new FormData;return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e.getAttribute("name");r&&"value"in e&&t.append(r,e.value)}),t}(e)};function en(e,t){if(t.startsWith("*"))return function(e,t){if(!Jr(e))return;if(t.startsWith("computed-"))return getComputedStyle(e).getPropertyValue(t.slice(9))||"";const r=t.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());return e.style[r]}(e,t.slice(1));if(t.startsWith("computed-")){const r=t.slice(9);return Jr(e)?getComputedStyle(e).getPropertyValue(r):void 0}if(t.startsWith("@"))return Xr(e,t.slice(1));const r=Qr[t.toLowerCase()];if(r)return r(e);if(function(e,t){return e.hasAttribute(t)}(e,t))return Xr(e,t);const n=e[t];return Kr(n)?n.bind(e):n}const tn={1:"one",2:"two",3:"three",4:"four",5:"five"};function rn(e,t,r,n){if(e.length!==t){return`${r} requires exactly ${i=t,tn[i]??i+""} argument${1===t?"":"s"}${n?` (${n})`:""}`}var i;return null}function nn(e,t,r,n){return"string"!=typeof e[t]?`${r} ${n||"argument "+(t+1)} must be a string`:null}function an(e,t,r){return rn(e,1,t,r)??nn(e,0,t,r)}function sn(e,t){return rn(e,2,t,"left, right")}function on(){return null}function ln(e,t,r,n){return e.length>t?`${r} expression takes at most ${1===t?"one":t+""} argument${1===t?"":"s"}${n?` (${n})`:""}`:null}function cn(e,t,r,n,i){return t>e.length||e.length>r?`${n} requires ${t}-${r} arguments${i?` (${i})`:""}`:null}const un={conversions:{dynamicResolvers:[]}},dn={Array:e=>Array.isArray(e)?e:e instanceof NodeList?Array.from(e):null==e?[]:[e],String:e=>null==e?"":Br(e)?e:Ur(e)?JSON.stringify(e):e+"",Boolean:e=>{if(Dr(e))return e;if(null==e)return!1;if(Br(e)){const t=e.toLowerCase().trim();return"false"!==t&&"0"!==t&&""!==t}return Fr(e)?0!==e&&!isNaN(e):!!e},Number:e=>{if(Fr(e))return e;if(null==e)return 0;const t=Number(e);return isNaN(t)?0:t},Math:e=>{if(Fr(e))return e;if(null==e)return 0;const t=(e+"").trim();if(!t)return 0;try{return function(e){if(e=e.replace(/\s/g,""),!/^[0-9+\-*/().]+$/.test(e))throw Error("Invalid characters in math expression");try{const t=Function(`"use strict"; return (${e})`)();if(!Fr(t)||!isFinite(t))throw Error("Expression did not evaluate to a finite number");return t}catch(e){throw Error("Math expression evaluation failed: "+(e instanceof Error?e.message:e+""))}}(t)}catch(e){return console.warn("Math conversion failed:",e),0}},Int:e=>{const t=dn.Number(e);return Math.trunc(t)},Float:e=>{const t=dn.Number(e);return parseFloat(""+t)},Date:e=>{if(e instanceof Date)return e;if(null==e)return new Date(NaN);if(Br(e)&&/^\d{4}-\d{2}-\d{2}$/.test(e)){const[t,r,n]=e.split("-").map(Number);return new Date(t,r-1,n)}return new Date(e)},JSON:e=>{if(!Br(e))return e;try{return JSON.parse(e)}catch{return e}},JSONString:e=>{try{return JSON.stringify(e)}catch{return"{}"}},Object:e=>{if(Ur(e))return e;if(Br(e))try{return JSON.parse(e)}catch(e){return{}}return{}},Fragment:e=>{const t=document.createDocumentFragment(),r=Array.isArray(e)||e instanceof NodeList?Array.from(e):[e];for(const e of r)if(e instanceof Node)t.append(e);else{const r=document.createElement("template");r.innerHTML=null==e?"":e+"",t.append(r.content)}return t},HTML:e=>Br(e)?e:e instanceof NodeList?Array.from(e).map(e=>e instanceof Element?e.outerHTML:e.textContent||"").join(""):Array.isArray(e)?e.map(e=>e instanceof Element?e.outerHTML:dn.String(e)).join(""):e instanceof Element?e.outerHTML:dn.String(e),Values:(e,t)=>{if(e instanceof HTMLFormElement)return function(e){const t={};return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e;if(r.name){const e=mn(r);void 0!==e&&(void 0!==t[r.name]?(Array.isArray(t[r.name])||(t[r.name]=[t[r.name]]),t[r.name].push(e)):t[r.name]=e)}}),t}(e);if(e instanceof HTMLElement){const t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(e=>{e.name&&(r[e.name]=mn(e))}),r}return{}},FormEncoded:(e,t)=>{const r=e instanceof HTMLElement?dn.Values(e,t):e;if(!Ur(r))return"";const n=new URLSearchParams;for(const[e,t]of Object.entries(r))if(null!=t)if(Array.isArray(t))for(const r of t)n.append(e,r+"");else n.append(e,t+"");return""+n},Set:e=>new Set(e),Map:e=>new Map(Object.entries(e??{})),Keys:e=>e instanceof Map?Array.from(e.keys()):Object.keys(e??{}),Entries:e=>e instanceof Map?Array.from(e.entries()):Object.entries(e??{}),Reversed:e=>Array.from(e).reverse(),Unique:e=>[...new Set(e)],Flat:e=>Array.from(e).flat(),"Values:Form":(e,t)=>{const r=dn.Values(e,t);return dn.FormEncoded(r,t)},"Values:JSON":(e,t)=>{const r=dn.Values(e,t);return JSON.stringify(r)}};function mn(e){if(e instanceof HTMLInputElement)switch(e.type){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":case"range":return e.valueAsNumber;case"date":case"datetime-local":return e.valueAsDate;case"file":return e.files;default:return e.value}return e instanceof HTMLSelectElement&&e.multiple?Array.from(e.selectedOptions).map(e=>e.value):e.value}const pn={boolean:"Boolean",bool:"Boolean",string:"String",str:"String",number:"Number",num:"Number",int:"Int",integer:"Int",float:"Float",array:"Array",object:"Object",obj:"Object",date:"Date",json:"JSON",jsonstring:"JSONString",formencoded:"FormEncoded"};function hn(e,t,r){if("string"!=typeof t)throw Error("Conversion type must be a string");if(t.startsWith("Fixed")){const{precision:r}=function(e){const t=e.match(/^Fixed(?::(\d+))?$/);return t?{precision:t[1]?parseInt(t[1],10):0}:{}}(t);return dn.Number(e).toFixed(r??0)}if(null==e)return e;let n=dn[t];if(n)return n(e,r);const i=pn[t.toLowerCase()];if(i&&(n=dn[i],n))return n(e,r);const a=un.conversions[t];if("function"==typeof a)return a(e,r);for(const r of un.conversions.dynamicResolvers){const n=r(t,e);if(void 0!==n)return n}return console.warn("Unknown conversion type: "+t),e}const fn={as:{name:"as",category:"Conversion",evaluatesTo:"Any",precedence:20,associativity:"Left",operators:["as"],async evaluate(e,...t){const[r,n]=t;return hn(r,n,e)},validate:e=>rn(e,2,"as","value, type")??nn(e,1,"as","conversion type")},is:{name:"is",category:"Conversion",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is a","is an"],async evaluate(e,...t){const[r,n]=t;if(!Br(n))throw Error("Type check requires a string type");switch(n.toLowerCase()){case"null":return null===r;case"undefined":return void 0===r;case"string":return Br(r);case"number":return Fr(r)&&!isNaN(r);case"boolean":return Dr(r);case"object":return Ur(r);case"array":return Array.isArray(r);case"function":return Kr(r);case"date":return r instanceof Date;case"element":return r instanceof Element;case"node":return r instanceof Node;case"nodelist":return r instanceof NodeList;case"empty":return null==r||""===r||Array.isArray(r)&&0===r.length||Ur(r)&&0===Object.keys(r).length;default:return r?.constructor?.name?.toLowerCase()===n.toLowerCase()}},validate:e=>rn(e,2,"is","value, type")??nn(e,1,"is","type")},async:{name:"async",category:"Conversion",evaluatesTo:"Any",precedence:25,associativity:"Right",operators:["async"],evaluate:async(e,t)=>t,validate:e=>rn(e,1,"async","expression")}},yn={name:"me",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me??null,validate:on},gn={name:"you",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.you??null,validate:on},vn={name:"it",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it??e.result,validate:on},bn={name:"its",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it??e.result,validate:on},wn={name:"result",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.result??e.it,validate:on},kn={name:"querySelector",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("querySelector requires a string selector");return document.querySelector(r)},validate:e=>an(e,"querySelector","selector")},En={name:"querySelectorAll",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("querySelectorAll requires a string selector");const n=document.querySelectorAll(r);return Array.from(n)},validate:e=>an(e,"querySelectorAll","selector")},xn={name:"getElementById",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("getElementById requires a string ID");return document.getElementById(r)},validate:e=>an(e,"getElementById","ID")};function Cn(e,t){if(t.startsWith("computed-")){const r=t.substring(9);return getComputedStyle(e).getPropertyValue(r)||""}const r=t.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());return e.style[r]}const An={me:yn,you:gn,it:vn,its:bn,result:wn,querySelector:kn,querySelectorAll:En,getElementById:xn,getElementsByClassName:{name:"getElementsByClassName",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("getElementsByClassName requires a string class name");const n=document.getElementsByClassName(r);return Array.from(n)},validate:e=>an(e,"getElementsByClassName","className")},closest:{name:"closest",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){let r=t[0];if(r&&"object"==typeof r&&"type"in r){const e=r;"identifier"===e.type&&e.name?r=e.name:"literal"===e.type&&"string"==typeof e.value&&(r=e.value)}if("string"!=typeof r)throw Error("closest requires a string selector");return e.me?e.me.closest(r):null},validate(e){if(1!==e.length)return"closest requires exactly 1 argument (selector)";const t=e[0];return"string"==typeof t||t&&"object"==typeof t&&"type"in t&&("identifier"===t.type||"literal"===t.type)?null:"closest selector must be a string or identifier"}},parent:{name:"parent",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me?e.me.parentElement:null,validate:on},window:{name:"window",category:"Reference",evaluatesTo:"Object",evaluate:async e=>window,validate:on},document:{name:"document",category:"Reference",evaluatesTo:"Object",evaluate:async e=>document,validate:on},elementWithSelector:{name:"elementWithSelector",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("Selector must be a string");const n=e?.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!n)throw Error("DOM not available - cannot resolve element selector");const i=n.querySelectorAll(r);return Array.from(i)},validate:e=>an(e,"elementWithSelector","selector")},styleRef:{name:"styleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r)throw Error("StyleRef requires a string property name");const i=n||e.me;if(i&&i instanceof HTMLElement)return Cn(i,r)},validate:e=>cn(e,1,2,"styleRef","property, optional element")??nn(e,0,"styleRef","property")??(2===e.length&&e[1]&&"object"!=typeof e[1]?"styleRef element must be an HTMLElement":null)},possessiveStyleRef:{name:"possessiveStyleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r||"string"!=typeof n)throw Error("Possessive styleRef requires possessor and property strings");let i=null;if("my"===r&&e.me?i=e.me instanceof HTMLElement?e.me:null:"its"===r&&e.it&&(i=e.it instanceof HTMLElement?e.it:null),i)return Cn(i,n)},validate:e=>rn(e,2,"possessiveStyleRef","possessor, property")??nn(e,0,"possessiveStyleRef","possessor")??nn(e,1,"possessiveStyleRef","property")},ofStyleRef:{name:"ofStyleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r||"string"!=typeof n)throw Error("Of styleRef requires property and reference strings");let i=null;if("me"===n&&e.me?i=e.me instanceof HTMLElement?e.me:null:"it"===n&&e.it&&(i=e.it instanceof HTMLElement?e.it:null),i)return Cn(i,r)},validate:e=>rn(e,2,"ofStyleRef","property, reference")??nn(e,0,"ofStyleRef","property")??nn(e,1,"ofStyleRef","reference")}};function Sn(e,t,r,n=[]){return{type:e,message:t,suggestions:n,...r&&{path:r}}}const Tn="undefined"!=typeof process&&"production"===process.env.NODE_ENV||"undefined"!=typeof process&&"true"===process.env.HYPERFIXI_SKIP_VALIDATION||"undefined"!=typeof globalThis&&"true"===globalThis.HYPERFIXI_SKIP_VALIDATION;let On;function Ln(){return On({validate:e=>({success:!0,data:e})})}function jn(e,t){if(Tn)return Ln();const r=On({validate:r=>{if("object"!=typeof r||null===r||Array.isArray(r))return{success:!1,error:Sn("type-mismatch","Expected object, received "+typeof r)};const n=r,i={};if(t?.strict){const t=Object.keys(e),r=Object.keys(n).filter(e=>!t.includes(e));if(r.length>0)return{success:!1,error:Sn("runtime-error","Unexpected properties: "+r.join(", "))}}for(const[t,r]of Object.entries(e)){const e=n[t];if(!(t in n)&&!r._isOptional)return{success:!1,error:Sn("missing-argument",`Required field "${t}" is missing`,t)};const a=r.validate(e);if(!a.success)return{success:!1,error:Sn("validation-error",a.error.message||`Field "${t}" validation failed`,a.error.path?`${t}.${a.error.path}`:t)};void 0!==a.data&&(i[t]=a.data)}return{success:!0,data:i}}});return r.strict=()=>jn(e,{strict:!0}),r}On=function(e){return e.describe||(e.describe=function(e){return this.description=e,this}),e.safeParse||(e.safeParse=function(e){const t=this.validate(e);return t.success?{success:!0,data:t.data}:{success:!1,error:{errors:t.error?[t.error]:[]}}}),e.parse||(e.parse=function(e){const t=this.validate(e);if(t.success&&void 0!==t.data)return t.data;throw Error(t.error?.message||"Validation failed")}),e.optional||(e.optional=function(){const e=this.validate.bind(this),t={...this,_isOptional:!0,validate:t=>null==t?{success:!0,data:void 0}:e(t)};return On(t)}),e.min||(e.min=function(e){const t=this.validate.bind(this),r={...this,validate:r=>{const n=t(r);return n.success&&"string"==typeof n.data&&e>n.data.length?{success:!1,error:Sn("runtime-error",`String must be at least ${e} characters long`)}:n}};return On(r)}),e.max||(e.max=function(e){const t=this.validate.bind(this),r={...this,validate:r=>{const n=t(r);return n.success&&"string"==typeof n.data&&n.data.length>e?{success:!1,error:Sn("runtime-error",`String must be at most ${e} characters long`)}:n}};return On(r)}),e.default||(e.default=function(e){const t=this.validate.bind(this),r={...this,_defaultValue:e,_hasDefault:!0,validate:r=>void 0===r?{success:!0,data:e}:t(r)};return On(r)}),e.rest||(e.rest=function(e){return this}),e.refine||(e.refine=function(e,t){const r=this.validate.bind(this),n={...this,validate:n=>{const i=r(n);return i.success?e(i.data)?i:{success:!1,error:Sn("runtime-error",t||"Refinement validation failed")}:i}};return On(n)}),new Proxy(e,{get:(e,t,r)=>t in e||"string"!=typeof t||t.startsWith("_")||"constructor"===t||"validate"===t||"then"===t?Reflect.get(e,t,r):function(...e){return r}})};const qn=e=>function(e={}){return Tn?Ln():On({validate:t=>e.optional&&null==t?{success:!0,data:void 0}:"string"!=typeof t?{success:!1,error:Sn("type-mismatch","Expected string, received "+typeof t)}:void 0!==e.minLength&&e.minLength>t.length?{success:!1,error:Sn("runtime-error",`String must be at least ${e.minLength} characters long`)}:void 0!==e.maxLength&&t.length>e.maxLength?{success:!1,error:Sn("runtime-error",`String must be at most ${e.maxLength} characters long`)}:e.pattern&&!e.pattern.test(t)?e.pattern.source.startsWith("^")&&e.pattern.source.endsWith("$")?{success:!1,error:Sn("runtime-error",`Expected "${e.pattern.source.slice(1,-1)}", received "${t}"`)}:{success:!1,error:Sn("missing-argument","String does not match required pattern")}:{success:!0,data:t},...e.description&&{description:e.description}})}(e||{}),Pn=e=>jn(e),Nn=e=>function(e){return Tn?Ln():On({validate:t=>{if(!Array.isArray(t))return{success:!1,error:Sn("type-mismatch","Expected array, received "+typeof t)};if(t.length!==e.length)return{success:!1,error:Sn("runtime-error",`Expected tuple of length ${e.length}, received length ${t.length}`)};const r=[];for(let n=0;e.length>n;n++){const i=e[n].validate(t[n]);if(!i.success)return{success:!1,error:Sn("runtime-error",i.error.message,i.error.path?`${n}.${i.error.path}`:""+n)};r.push(i.data)}return{success:!0,data:r}}})}(e),Rn=()=>Ln();class In{constructor(e=100,t=5e3){this.maxSize=e,this.ttl=t,this.cache=new Map,this.accessOrder=new Map,this.accessCounter=0}get(e){const t=this.cache.get(e);if(t){if(this.ttl>=Date.now()-t.timestamp)return t.accessCount++,this.accessOrder.set(e,++this.accessCounter),t.result;this.delete(e)}}set(e,t){this.maxSize>this.cache.size||this.cache.has(e)||this.evictLRU(),this.cache.set(e,{result:t,timestamp:Date.now(),accessCount:1}),this.accessOrder.set(e,++this.accessCounter)}delete(e){return this.accessOrder.delete(e),this.cache.delete(e)}clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}size(){return this.cache.size}evictLRU(){let e,t=1/0;for(const[r,n]of this.accessOrder)t>n&&(t=n,e=r);void 0!==e&&this.delete(e)}getStats(){const e=Array.from(this.cache.values()),t=Date.now();return{size:this.cache.size,maxSize:this.maxSize,hitRate:e.length>0?e.filter(e=>e.accessCount>1).length/e.length:0,avgAge:e.length>0?e.reduce((e,r)=>e+(t-r.timestamp),0)/e.length:0,totalAccesses:e.reduce((e,t)=>e+t.accessCount,0)}}}const Mn=new class{constructor(){this.domQueryCache=new In(200,3e3),this.exprResultCache=new In(500,2e3),this.cssMatchCache=new In(100,5e3),this.formValueCache=new In(50,1e3),this.hits=0,this.misses=0}querySelector(e){const t="querySelector:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=document.querySelector(e);return this.domQueryCache.set(t,n),n}querySelectorAll(e){const t="querySelectorAll:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=Array.from(document.querySelectorAll(e));return this.domQueryCache.set(t,n),n}getElementById(e){const t="getElementById:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=document.getElementById(e);return this.domQueryCache.set(t,n),n}getElementsByClassName(e){const t="getElementsByClassName:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=Array.from(document.getElementsByClassName(e));return this.domQueryCache.set(t,n),n}matches(e,t){const r=`matches:${this.getElementCacheKey(e)}:${t}`,n=this.cssMatchCache.get(r);if(void 0!==n)return this.hits++,n;this.misses++;const i=e.matches(t);return this.cssMatchCache.set(r,i),i}getExpressionResult(e){const t=this.exprResultCache.get(e);if(void 0!==t)return this.hits++,t;this.misses++}setExpressionResult(e,t){this.exprResultCache.set(e,t)}getFormValue(e){const t=this.getElementCacheKey(e),r=this.formValueCache.get("formValue:"+t);if(void 0!==r)return this.hits++,r;this.misses++}setFormValue(e,t){const r=this.getElementCacheKey(e);this.formValueCache.set("formValue:"+r,t)}invalidateElementCache(e){const t=this.getElementCacheKey(e);for(const e of[this.domQueryCache,this.cssMatchCache,this.formValueCache])for(const r of Array.from(e.cache.keys()))"string"==typeof r&&r.includes(t)&&e.delete(r)}invalidateAll(){this.domQueryCache.clear(),this.exprResultCache.clear(),this.cssMatchCache.clear(),this.formValueCache.clear(),this.hits=0,this.misses=0}getElementCacheKey(e){if(e.id)return"#"+e.id;const t=Array.from(e.classList).sort().join("."),r=this.getElementPosition(e);return`${e.tagName.toLowerCase()}${t?"."+t:""}@${r}`}getElementPosition(e){return""+Array.from(e.parentElement?.children||[]).indexOf(e)}getPerformanceStats(){const e=this.hits+this.misses;return{hits:this.hits,misses:this.misses,hitRate:Math.round(100*(e>0?this.hits/e*100:0))/100,domQueryCache:this.domQueryCache.getStats(),exprResultCache:this.exprResultCache.getStats(),cssMatchCache:this.cssMatchCache.getStats(),formValueCache:this.formValueCache.getStats()}}cleanup(){const e=Date.now();[this.domQueryCache,this.exprResultCache,this.cssMatchCache,this.formValueCache].forEach(t=>{Array.from(t.cache.entries()).forEach(([r,n])=>{e-n.timestamp>t.ttl&&t.delete(r)})})}};"undefined"!=typeof window&&setInterval(()=>{Mn.cleanup()},1e4);const $n=new class{constructor(){this.metrics={tokenizationTime:0,evaluationTime:0,cacheHitRate:0,memoryUsage:0,domOperations:0},this.startTimes=new Map}startTimer(e){this.startTimes.set(e,performance.now())}endTimer(e){const t=this.startTimes.get(e);if(t){const r=performance.now()-t;return this.startTimes.delete(e),r}return 0}recordTokenization(e){this.metrics.tokenizationTime+=e}recordEvaluation(e){this.metrics.evaluationTime+=e}updateCacheMetrics(){const e=Mn.getPerformanceStats();this.metrics.cacheHitRate=e.hitRate}getMetrics(){return this.updateCacheMetrics(),{...this.metrics}}reset(){this.metrics={tokenizationTime:0,evaluationTime:0,cacheHitRate:0,memoryUsage:0,domOperations:0}}};function _n(){Mn.cleanup(),$n.getMetrics().memoryUsage>52428800&&$n.reset()}let zn=null;function Vn(e,t){if("number"==typeof e){if(!Number.isFinite(e))throw Error(`${t} must be a finite number, got ${e}`);return e}if("string"==typeof e){const r=e.trim();if(""===r)return 0;const n=parseFloat(r);if(isNaN(n))throw Error(`${t} cannot be converted to number: "${e}"`);return n}if("boolean"==typeof e)return e?1:0;if(null==e)return 0;if("object"==typeof e&&null!==e){if(Array.isArray(e)&&1===e.length){const r=e[0];if(Array.isArray(r))throw Error(t+" is a nested array, cannot convert to number");return Vn(r,t)}if("string"==typeof e.textContent||"value"in e){const t=e.value??e.textContent;if(null!=t){const e=(t+"").trim();if(""===e)return 0;const r=parseFloat(e);if(!isNaN(r))return r}}const r=e.valueOf();if("number"==typeof r&&Number.isFinite(r))return r}throw Error(`${t} cannot be converted to number: ${typeof e}`)}function Hn(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e){const t=e.trim();if(""===t)return 0;const r=parseFloat(t);return isNaN(r)?null:r}return"boolean"==typeof e?e?1:0:null==e?0:null}function Wn(e,t){if(!Number.isFinite(e)){if(Number.isNaN(e))throw Error(t+" resulted in non-finite value: NaN");throw Error(`${t} resulted in non-finite value: ${e>0?"Infinity":"-Infinity"}`)}return e}function Bn(e){try{return Vn(e,"_"),!0}catch{return!1}}function Fn(e,t,r){if("==="===r)return e===t;if("!=="===r)return e!==t;if(null==e||null==t)return function(e,t,r){if(null==e&&null==t)switch(r){case"==":case">=":case"<=":return!0;default:return!1}switch(r){case"==":case">":case"<":case">=":case"<=":default:return!1;case"!=":return!0}}(e,t,r);const[n,i]=function(e,t){if("number"==typeof e&&"number"==typeof t)return[e,t];if("string"==typeof e&&"string"==typeof t){const r=parseFloat(e),n=parseFloat(t);return isNaN(r)||isNaN(n)?[e,t]:[r,n]}const r=Hn(e),n=Hn(t);return null!==r&&null!==n?[r,n]:[e+"",t+""]}(e,t);switch(r){case">":return n>i;case"<":return i>n;case">=":return n>=i;case"<=":return i>=n;case"==":return Dn(e,t);case"!=":return!Dn(e,t);default:return!1}}function Dn(e,t){if(e===t)return!0;if(typeof e==typeof t)return("string"==typeof e||"number"==typeof e)&&e===t;if("number"==typeof e&&"string"==typeof t){const r=parseFloat(t);return!isNaN(r)&&e===r}if("string"==typeof e&&"number"==typeof t){const r=parseFloat(e);return!isNaN(r)&&r===t}return"boolean"==typeof e?Dn(e?1:0,t):"boolean"==typeof t?Dn(e,t?1:0):e+""==t+""}function Un(e,t=[]){return{isValid:!1,errors:e,suggestions:t}}function Kn(e,t,r=[],n="error"){return{type:e,message:t,suggestions:r,severity:n}}function Zn(e,t,r,n,i,a=!0,s){return n}function Yn(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType}"undefined"!=typeof window&&function(e=3e4){zn&&clearInterval(zn),zn=setInterval(_n,e)}();const Jn=Nn([Rn(),Rn()]),Gn=Nn([Rn(),qn()]),Xn={name:"equals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is","==","equals"],async evaluate(e,t,r){try{return Zn(0,0,0,t==r)}catch(e){throw e}},validate:e=>sn(e,"equals"),inputSchema:Jn,metadata:{category:"Logical",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"value is 5",description:"Check if value equals 5 using loose equality",expectedOutput:!0,context:{result:5}},{input:'"5" == 5',description:'String "5" equals number 5 with type coercion',expectedOutput:!0}],relatedExpressions:["strictEquals","notEquals"],performance:{averageTime:.001,complexity:"O(1)"}}},Qn={name:"strictEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["==="],evaluate:async(e,t,r)=>t===r,validate:e=>sn(e,"strictEquals")},ei={name:"notEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["!=","is not","does not equal"],evaluate:async(e,t,r)=>t!=r,validate:e=>sn(e,"notEquals")},ti={name:"strictNotEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["!=="],evaluate:async(e,t,r)=>t!==r,validate:e=>sn(e,"strictNotEquals")},ri={name:"lessThan",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:["<","is less than"],evaluate:async(e,t,r)=>Fn(t,r,"<"),validate:e=>sn(e,"lessThan")},ni={name:"lessThanOrEqual",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:["<=","is less than or equal to"],evaluate:async(e,t,r)=>Fn(t,r,"<="),validate:e=>sn(e,"lessThanOrEqual")},ii={name:"greaterThan",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:[">","is greater than"],evaluate:async(e,t,r)=>Fn(t,r,">"),validate:e=>sn(e,"greaterThan")},ai={name:"greaterThanOrEqual",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:[">=","is greater than or equal to"],evaluate:async(e,t,r)=>Fn(t,r,">="),validate:e=>sn(e,"greaterThanOrEqual")},si={name:"and",category:"Logical",evaluatesTo:"Boolean",precedence:6,associativity:"Left",operators:["and","&&"],async evaluate(e,t,r){try{return Zn(0,0,0,t&&r)}catch(e){throw e}},validate:e=>sn(e,"and"),inputSchema:Jn,metadata:{category:"Logical",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"true and false",description:"Logical AND of boolean values",expectedOutput:!1},{input:"name and age",description:"Both name and age must be truthy",expectedOutput:!0,context:{variables:new Map([["name","John"],["age",25]])}}],relatedExpressions:["or","not"],performance:{averageTime:.001,complexity:"O(1)"}}},oi={name:"or",category:"Logical",evaluatesTo:"Boolean",precedence:5,associativity:"Left",operators:["or","||"],evaluate:async(e,t,r)=>t||r,validate:e=>sn(e,"or")},li={name:"not",category:"Logical",evaluatesTo:"Boolean",precedence:15,associativity:"Right",operators:["not","!"],evaluate:async(e,t)=>!t,validate:e=>rn(e,1,"not","operand")},ci={name:"isEmpty",category:"Logical",evaluatesTo:"Boolean",operators:["is empty","isEmpty"],async evaluate(e,t){let r;return r=null==t||(Br(t)||Array.isArray(t)||t instanceof NodeList?0===t.length:!(t instanceof Node||t instanceof Element||!Ur(t)||0!==Object.keys(t).length)),r},validate:e=>rn(e,1,"isEmpty","value")},ui={name:"no",category:"Logical",evaluatesTo:"Boolean",operators:["no"],async evaluate(e,t){let r;return r=null==t||!1===t||(Array.isArray(t)||t instanceof NodeList?0===t.length:(Br(t),!1)),r},validate:e=>rn(e,1,"no","value")},di={name:"isNotEmpty",category:"Logical",evaluatesTo:"Boolean",operators:["is not empty","isNotEmpty"],evaluate:async(e,t)=>!await ci.evaluate(e,t),validate:e=>rn(e,1,"isNotEmpty","value")},mi={name:"exists",category:"Logical",evaluatesTo:"Boolean",operators:["exists"],evaluate:async(e,t)=>pi(t),validate:e=>rn(e,1,"exists","value")};function pi(e){return null!=e&&(Array.isArray(e)?e.length>0:!("undefined"!=typeof NodeList&&e instanceof NodeList)||e.length>0)}const hi={name:"doesNotExist",category:"Logical",evaluatesTo:"Boolean",operators:["does not exist","doesNotExist"],evaluate:async(e,t)=>!pi(t),validate:e=>rn(e,1,"doesNotExist","value")},fi={name:"contains",category:"Logical",evaluatesTo:"Boolean",operators:["contains","includes","include"],async evaluate(e,t,r){let n;if(t&&r){if(Yn(t)&&Yn(r))return n=t.contains(r),n;if(Br(t)&&t.match(/^[.#][\w-]+$/)){const e=document.querySelector(t);if(e&&Yn(r))return n=e.contains(r),n;if(e&&Br(r)&&r.match(/^[.#][\w-]+$/)){const t=document.querySelector(r);return n=!!t&&e.contains(t),n}}if(Br(r)&&r.match(/^[.#][\w-]+$/)&&Yn(t)){const e=document.querySelector(r);return n=!!e&&t.contains(e),n}}if(Br(t)&&Br(r))n=t.includes(r);else if(Array.isArray(t)||"undefined"!=typeof NodeList&&t instanceof NodeList){const e=Array.from(t);n=e.includes(r)||r instanceof Node&&e.some(e=>e instanceof Node&&e.contains(r))}else n=!(!Ur(t)||!Br(r))&&r in t;return n},validate:e=>rn(e,2,"contains","container, value")},yi={name:"doesNotContain",category:"Logical",evaluatesTo:"Boolean",operators:["does not contain","doesNotContain","does not include","doesNotInclude"],evaluate:async(e,t,r)=>!await fi.evaluate(e,t,r),validate:e=>rn(e,2,"doesNotContain","container, value")},gi={name:"startsWith",category:"Logical",evaluatesTo:"Boolean",operators:["starts with","startsWith"],evaluate:async(e,t,r)=>null!=t&&null!=r&&(t+"").startsWith(r+""),validate:e=>rn(e,2,"startsWith","str, prefix")},vi={name:"endsWith",category:"Logical",evaluatesTo:"Boolean",operators:["ends with","endsWith"],evaluate:async(e,t,r)=>null!=t&&null!=r&&(t+"").endsWith(r+""),validate:e=>rn(e,2,"endsWith","str, suffix")},bi={name:"between",category:"Logical",evaluatesTo:"Boolean",operators:["is between","between"],async evaluate(e,t,r,n){let i=r,a=n;if(null!=i&&null!=a&&i>a){const e=i;i=a,a=e}return null!=i&&null!=a&&t>=i&&a>=t},validate:e=>rn(e,3,"between","value, min, max")},wi={name:"matches",category:"Logical",evaluatesTo:"Boolean",operators:["matches"],async evaluate(e,t,r){try{let e;if(t instanceof Element&&Br(r)){const n=r;if(n.startsWith(".")||n.startsWith("#")||n.startsWith(":")||n.startsWith("[")||/^[a-zA-Z][\w-]*$/.test(n))try{e=function(e,t){return Mn.matches(e,t)}(t,n)}catch(t){e=!1}else e=!1}else if(Br(t)&&Br(r)){const n=t,i=r;try{e=(i.startsWith("/")&&i.endsWith("/")?RegExp(i.slice(1,-1)):RegExp(i)).test(n)}catch(t){e=n.includes(i)}}else e=!1;return Zn(0,0,0,e)}catch(e){throw e}},validate:e=>rn(e,2,"matches","element, selector"),inputSchema:Gn,metadata:{category:"Logical",complexity:"medium",sideEffects:["dom-query"],dependencies:[],returnTypes:["Boolean"],examples:[{input:'element matches ".active"',description:"Check if element has active class",expectedOutput:!0},{input:'text matches "/^hello/"',description:'Check if text starts with "hello" using regex',expectedOutput:!0,context:{variables:new Map([["text","hello world"]])}}],relatedExpressions:["contains","startsWith","endsWith"],performance:{averageTime:.5,complexity:"O(n)"}}},ki={name:"has",category:"Logical",evaluatesTo:"Boolean",operators:["has","have"],async evaluate(e,t,r){let n=!1;if(t instanceof Element&&Br(r)){const e=r;e.startsWith(".")?n=t.classList.contains(e.slice(1)):e.startsWith("[")&&e.endsWith("]")&&(n=t.hasAttribute(e.slice(1,-1)))}return n},validate:e=>rn(e,2,"has","element, selector")},Ei={name:"doesNotHave",category:"Logical",evaluatesTo:"Boolean",operators:["does not have"],evaluate:async(e,t,r)=>!await ki.evaluate(e,t,r),validate:e=>rn(e,2,"doesNotHave","element, selector")},xi={equals:Xn,strictEquals:Qn,notEquals:ei,strictNotEquals:ti,lessThan:ri,lessThanOrEqual:ni,greaterThan:ii,greaterThanOrEqual:ai,and:si,or:oi,not:li,no:ui,isEmpty:ci,isNotEmpty:di,exists:mi,doesNotExist:hi,contains:fi,doesNotContain:yi,startsWith:gi,endsWith:vi,between:bi,matches:wi,has:ki,doesNotHave:Ei},Ci=new Set(["__proto__","constructor","prototype"]);function Ai(e,t){if(e instanceof Element)return en(e,t);if(Ur(e)){if(Ci.has(t))return;return e[t]}return e[t]}function Si(e){let t;if(Array.isArray(e))t=e;else{if(!("undefined"!=typeof NodeList&&e instanceof NodeList||"undefined"!=typeof HTMLCollection&&e instanceof HTMLCollection))return!1;t=Array.from(e)}return 0!==t.length&&t.every(e=>e instanceof Element||null!=e&&"object"==typeof e&&e.constructor!==Object&&!Array.isArray(e))}const Ti={possessive:{name:"possessive",category:"Reference",evaluatesTo:"Any",operators:["'s","s"],async evaluate(e,...t){const[r,n]=t;if(null!=r){if("string"!=typeof n)throw Error("Property name must be a string");return Si(r)&&!(n in r)?Array.from(r,e=>Ai(e,n)):Ai(r,n)}},validate:e=>rn(e,2,"possessive","element, property")??nn(e,1,"possessive","property name")},my:{name:"my",category:"Reference",evaluatesTo:"Any",operators:["my"],async evaluate(e,...t){const[r]=t;if(e.me){if("string"!=typeof r)throw Error("Property name must be a string");if(e.me instanceof Element)return en(e.me,r);if(Ur(e.me)){if(Ci.has(r))return;return e.me[r]}return e.me[r]}},validate:e=>an(e,"my","property")},its:{name:"its",category:"Reference",evaluatesTo:"Any",operators:["its"],async evaluate(e,...t){const[r]=t;if(null==e.it)return;if("string"!=typeof r)throw Error("Property name must be a string");const n=e.it;if(n instanceof Element)return en(n,r);if(Ur(n)){if(Ci.has(r))return;return n[r]}return n[r]},validate:e=>an(e,"its","property")},your:{name:"your",category:"Reference",evaluatesTo:"Any",operators:["your"],async evaluate(e,...t){const[r]=t;if(e.you){if("string"!=typeof r)throw Error("Property name must be a string");if(e.you instanceof Element)return en(e.you,r);if(Ur(e.you)){if(Ci.has(r))return;return e.you[r]}return e.you[r]}},validate:e=>an(e,"your","property")},of:{name:"of",category:"Reference",evaluatesTo:"Any",operators:["of"],async evaluate(e,...t){const[r,n]=t;if(null!=n){if("string"!=typeof r)throw Error("Property name must be a string");if(n instanceof Element)return en(n,r);if(Ur(n)){if(Ci.has(r))return;return n[r]}return n[r]}},validate:e=>rn(e,2,"of","property, object")??nn(e,0,"of","property name")},attribute:{name:"attribute",category:"Reference",evaluatesTo:"String",operators:["@"],async evaluate(e,...t){const[r,n]=t;if("string"!=typeof r)throw Error("Attribute name must be a string");const i=n||e.me;return i&&i instanceof Element?i.getAttribute(r):null},validate:e=>cn(e,1,2,"attribute","attributeName, optional element")??nn(e,0,"attribute","attribute name")??(2>e.length||null==e[1]||e[1]instanceof Element?null:"attribute element must be an Element")},attributeWithValue:{name:"attributeWithValue",category:"Reference",evaluatesTo:"Boolean",operators:["@="],async evaluate(e,...t){const[r,n,i]=t;if("string"!=typeof r)throw Error("Attribute name must be a string");if("string"!=typeof n)throw Error("Expected value must be a string");const a=i||e.me;return!!(a&&a instanceof Element)&&a.getAttribute(r)===n},validate:e=>cn(e,2,3,"attributeWithValue","attributeName, expectedValue, optional element")??nn(e,0,"attributeWithValue","attribute name")??nn(e,1,"attributeWithValue","expected value")??(3>e.length||null==e[2]||e[2]instanceof Element?null:"attributeWithValue element must be an Element")},classReference:{name:"classReference",category:"Reference",evaluatesTo:"Array",operators:["."],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("Class name must be a string");const n=r.startsWith(".")?r.slice(1):r,i=document.getElementsByClassName(n);return Array.from(i)},validate:e=>an(e,"classReference","className")},idReference:{name:"idReference",category:"Reference",evaluatesTo:"Element",operators:["#"],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("ID value must be a string");const n=r.startsWith("#")?r.slice(1):r;return document.getElementById(n)},validate:e=>an(e,"idReference","idValue")}};function Oi(e){return Array.isArray(e)?e:null==e?[]:"string"==typeof e?[e]:e instanceof NodeList||e instanceof HTMLCollection||"number"==typeof e.length?Array.from(e):[e]}function Li(e,t){const r=e.registry?.get(t);if(!r)throw Error(`Expression '${t}' not in ExecutionContext.registry. The bundle's ExpressionRegistry must include this expression's category. Use createExpressionRegistry() with the relevant category objects (referencesExpressions, logicalExpressions, conversionExpressions, positionalExpressions, propertiesExpressions, specialExpressions, mathematicalExpressions).`);return r}function ji(e){if(e&&"object"==typeof e&&"success"in e){if(e.success)return"value"in e?e.value:void 0;const t=e.errors||[];throw Error(t.length>0?t[0].message:"Expression evaluation failed")}return e}const qi=new Set(["literal","string","identifier","selector","attributeAccess","binaryExpression","unaryExpression","callExpression","memberExpression","possessiveExpression","propertyOfExpression","arrayLiteral","objectLiteral","templateLiteral","asExpression","betweenExpression","typeCheckExpression","collectionExpression","conditionalExpression","stringPostfix","blockLiteral","propertyAccess","contextReference","eventHandler"]);async function Pi(e,t){switch(e.type){case"literal":return function(e){return e.value}(e);case"identifier":return Hi(e,t);case"binaryExpression":return async function(e,t){const r=e.operator,n=e.right,i=e.left;if("="===r){const r=await Ni(e.right,t);if("identifier"===i?.type&&"string"==typeof i.name){const e=i.name;return e.startsWith("$")?Le(t,e.slice(1),r):"global"===i.scope?Le(t,e,r):"element"===i.scope?Lr(t,e,r):(t.locals||(t.locals=new Map),t.locals.set(e,r)),r}throw Error(`Assignment target must be a variable identifier (got '${i?.type??"undefined"}')`)}if("has"===r||"have"===r){const r=await Ni(e.left,t);return!!(r instanceof Element&&"selector"===n.type&&"string"==typeof n.value&&n.value.startsWith("."))&&r.classList.contains(n.value.slice(1))}if("in"===r||"is in"===r){const r="callExpression"===i?.type&&"identifier"===i.callee?.type?i.callee.name:null;if(("first"===r||"last"===r)&&Array.isArray(i.arguments)){const n=i.arguments[0];if("selector"===n?.type&&"string"==typeof n.value){const i=await Ni(e.right,t);if(i&&"function"==typeof i.querySelectorAll){const e=Array.from(i.querySelectorAll(n.value));return 0===e.length?null:"first"===r?e[0]:e[e.length-1]}}}if("selector"===i?.type&&i.fromQuery&&"string"==typeof i.value){const r=await Ni(e.right,t),n=r&&"function"==typeof r.querySelectorAll?r:null;if(n)return Array.from(n.querySelectorAll(i.value))}}if("of"===r&&"selector"===i?.type&&"string"==typeof i.value&&/^\*[a-zA-Z][\w-]*$/.test(i.value)){const r=await Ni(e.right,t);return Li(t,"styleRef").evaluate(t,i.value.slice(1),r)}if("of"===r){const r=Wi(e.left);if(r){const n=await Ni(e.right,t);let i=n;for(const e of r){if(null==i)return;i=Yr(i)?en(i,e):i[e]}return"function"==typeof i?i.bind(n):i}}const a=await Ni(e.left,t);if("and"===r){if(!a)return a;const r=await Ni(e.right,t);return Li(t,"and").evaluate(t,a,r)}if("or"===r){if(a)return a;const r=await Ni(e.right,t);return Li(t,"or").evaluate(t,a,r)}const s=await Ni(e.right,t),o=e=>"string"==typeof e?e.toLowerCase():e,l=e.ignoringCase?o(a):a,c=e.ignoringCase?o(s):s;switch(r){case"+":{let r=a,n=s;return e.coerceNumeric&&("string"==typeof r&&(r=Ir(r)),"string"==typeof n&&(n=Ir(n))),"string"==typeof r||"string"==typeof n?(r??"")+""+(n??""):Array.isArray(r)?Array.isArray(n)?[...r,...n]:[...r,n]:ji(await Li(t,"addition").evaluate(t,{left:r,right:n}))}case"-":return ji(await Li(t,"subtraction").evaluate(t,{left:a,right:s}));case"*":return ji(await Li(t,"multiplication").evaluate(t,{left:a,right:s}));case"/":return ji(await Li(t,"division").evaluate(t,{left:a,right:s}));case"%":case"mod":return ji(await Li(t,"modulo").evaluate(t,{left:a,right:s}));case"^":case"**":return ji(await Li(t,"power").evaluate(t,{left:a,right:s}));case">":case"is greater than":return Li(t,"greaterThan").evaluate(t,a,s);case"<":case"is less than":return Li(t,"lessThan").evaluate(t,a,s);case">=":case"is greater than or equal to":return Li(t,"greaterThanOrEqual").evaluate(t,a,s);case"<=":case"is less than or equal to":return Li(t,"lessThanOrEqual").evaluate(t,a,s);case"==":return Li(t,"equals").evaluate(t,l,c);case"is":case"am":case"equals":case"is equal":case"is equal to":{const r=Di(e,a,s);return void 0!==r?r:Li(t,"equals").evaluate(t,l,c)}case"!=":return Li(t,"notEquals").evaluate(t,l,c);case"is not":case"is not equal":case"is not equal to":{const r=Di(e,a,s);return void 0!==r?!r:Li(t,"notEquals").evaluate(t,l,c)}case"===":case"really equals":case"is really":case"is really equal to":return Li(t,"strictEquals").evaluate(t,l,c);case"!==":case"is not really":case"is not really equal to":return Li(t,"strictNotEquals").evaluate(t,l,c);case"as":return Li(t,"as").evaluate(t,a,Ki(s));case"contains":case"contain":case"includes":case"include":return Li(t,"contains").evaluate(t,l,c);case"does not contain":case"do not contain":case"does not contains":case"does not include":return Li(t,"doesNotContain").evaluate(t,l,c);case"starts with":return Li(t,"startsWith").evaluate(t,l,c);case"ends with":return Li(t,"endsWith").evaluate(t,l,c);case"does not start with":return!await Li(t,"startsWith").evaluate(t,l,c);case"does not end with":return!await Li(t,"endsWith").evaluate(t,l,c);case"match":case"matches":return Li(t,"matches").evaluate(t,l,Fi(e.right,c));case"does not match":case"do not match":return!await Li(t,"matches").evaluate(t,l,Fi(e.right,c));case"in":case"is in":case"am in":return Bi(a,s);case"is not in":case"am not in":return!Bi(a,s);case"of":return s&&"object"==typeof s?s[a]:void 0;case"precedes":return Ui(a,s,Node.DOCUMENT_POSITION_FOLLOWING);case"does not precede":return!Ui(a,s,Node.DOCUMENT_POSITION_FOLLOWING);case"follows":return Ui(a,s,Node.DOCUMENT_POSITION_PRECEDING);case"does not follow":return!Ui(a,s,Node.DOCUMENT_POSITION_PRECEDING);default:throw Error("Unknown binary operator: "+r)}}(e,t);case"asExpression":return async function(e,t){const r=await Ni(e.expression,t),n=Ki(e.targetType);return Li(t,"as").evaluate(t,r,n)}(e,t);case"betweenExpression":return async function(e,t){const r=await Ni(e.value,t),n=await Ni(e.min,t),i=await Ni(e.max,t),a=e=>"string"==typeof e?e.toLowerCase():e,[s,o,l]=e.ignoringCase?[a(r),a(n),a(i)]:[r,n,i],c=await xi.between.evaluate(t,s,o,l);return e.negated?!c:c}(e,t);case"typeCheckExpression":return async function(e,t){const r=function(e,t,r){if(null==e&&r)return!0;if(Object.prototype.toString.call(e).slice(8,-1)===t)return!0;const n=globalThis[t];return"function"==typeof n&&e instanceof n}(await Ni(e.value,t),e.typeName+"",!1!==e.nullOk);return e.negated?!r:r}(e,t);case"collectionExpression":return async function(e,t){const r=await Ni(e.collection,t);if(null==r)return r;const n=async(e,r)=>Ni(e,{...t,it:r});switch(e.operator){case"where":return async function(e,t,r){const n=Oi(e),i=[];for(const e of n)await r(t,e)&&i.push(e);return i}(r,e.right,n);case"sorted by":return async function(e,t,r,n){const i=[...Oi(e)],a=await Promise.all(i.map(e=>n(t,e))),s=i.map((e,t)=>t);s.sort((e,t)=>{const r=a[e],n=a[t];return r===n?0:null==r?1:null==n||n>r?-1:1});const o=s.map(e=>i[e]);return"desc"===r?o.reverse():o}(r,e.right,e.order??"asc",n);case"mapped to":return async function(e,t,r){const n=Oi(e);return Promise.all(n.map(e=>r(t,e)))}(r,e.right,n);case"split by":return a=await Ni(e.right,t),null==(i=r)?[]:(i+"").split(null==a?"":a+"");case"joined by":return function(e,t){const r=null==t?"":t+"";return Oi(e).map(e=>null==e?"":e+"").join(r)}(r,await Ni(e.right,t));default:throw Error("Unknown collection operator: "+e.operator)}var i,a}(e,t);case"unaryExpression":return async function(e,t){const r=e.operand??e.argument;if(!r)throw Error(`Unary expression has no operand (operator: ${e.operator})`);const n=await Ni(r,t);switch(e.operator){case"not":case"!":return xi.not.evaluate(t,n);case"no":return xi.no.evaluate(t,n);case"-":return-n;case"+":return+n;case"exists":case"some":return xi.exists.evaluate(t,n);case"does not exist":return xi.doesNotExist.evaluate(t,n);case"is empty":return xi.isEmpty.evaluate(t,n);case"is not empty":return xi.isNotEmpty.evaluate(t,n);default:throw Error("Unknown unary operator: "+e.operator)}}(e,t);case"memberExpression":return async function(e,t){const r=await Ni(e.object,t);if(e.computed){const n=await Ni(e.property,t);return Array.isArray(r)&&"number"==typeof n&&0>n?r[r.length+n]:r?.[n]}return Gi(r,e.property.name,t)}(e,t);case"propertyAccess":return async function(e,t){let r=await Ni(e.object,t);for(const n of(e.property+"").split(".")){if(null==r)return;r=await Gi(r,n,t)}return r}(e,t);case"callExpression":return async function(e,t){const r=await Ni(e.callee,t);if(e.isConstructor&&"function"==typeof r)return new r(...await Promise.all(e.arguments.map(e=>Ni(e,t))));if("identifier"===e.callee.type){const n=e.callee.name,i=await async function(e,t,r){return Xi.has(t)?Promise.all(e.map(e=>"identifier"===e.type&&e.name?e.name:"selector"===e.type&&e.value?e.value:Ni(e,r))):Promise.all(e.map(e=>Ni(e,r)))}(e.arguments,n,t);switch(n){case"closest":return An.closest.evaluate(t,...i);case"previous":case"next":{const r=e.relativePositional;if(r){const e=r.from?Qi(await Ni(r.from,t)):t.me,a=r.within?Qi(await Ni(r.within,t)):void 0,s=r.inElt?await Ni(r.inElt,t):void 0;return Li(t,n).evaluate(t,i[0],e,{within:a,inElt:s,inSearch:r.inSearch,wrapping:r.wrapping})}return Li(t,n).evaluate(t,...i)}case"first":return Li(t,"first").evaluate(t,...i);case"last":return Li(t,"last").evaluate(t,...i);default:if("function"==typeof r)return r(...i);throw Error("Cannot call non-function: "+n)}}if("function"==typeof r){const n=await Promise.all(e.arguments.map(e=>Ni(e,t)));if("memberExpression"===e.callee.type&&e.callee.object){const i=await Ni(e.callee.object,t);return r.apply(i,n)}return r(...n)}throw Error("Cannot call non-function")}(e,t);case"selector":return async function(e,t){let r=e.value;if("string"==typeof r&&!e.fromQuery&&/^\*[a-zA-Z][\w-]*$/.test(r))return An.styleRef.evaluate(t,r.slice(1));if("string"==typeof r&&e.fromQuery&&/\$[^=]/.test(r)){const{selector:n,elements:i}=await async function(e,t){const r=ia(e),n=await Promise.all(r.filter(e=>"expr"in e).map(e=>_i(e.expr,t)));return aa(r,n)}(r,t),a=ra(e,n);i.forEach((e,t)=>e.setAttribute("data-hs-query-id",t+""));try{return await An.elementWithSelector.evaluate(t,a)}finally{i.forEach(e=>e.removeAttribute("data-hs-query-id"))}}"string"==typeof r&&!e.fromQuery&&r.includes("{")&&(r=await function(e,t){return Ji(e,/\{([^}]*)\}/g,async(e,r)=>(await _i(r.trim(),t)??"")+"")}(r,t));const n="string"==typeof r?ra(e,r):r;return zr(await An.elementWithSelector.evaluate(t,n),r,e.fromQuery)}(e,t);case"contextReference":return async function(e,t){switch(e.contextType){case"me":case"you":case"it":return Li(t,e.contextType).evaluate(t);case"my":case"myself":case"I":return An.me.evaluate(t);case"your":case"yourself":return An.you.evaluate(t);case"its":return An.it.evaluate(t);case"event":return t.event;case"target":return t.target??t.event?.target??An.me.evaluate(t);case"body":return"undefined"!=typeof document?document.body:void 0;case"document":return An.document.evaluate(t);case"window":return An.window.evaluate(t);default:return}}(e,t);case"possessiveExpression":return async function(e,t){const r=await Ni(e.object,t),n=e.property.name;return Li(t,"possessive").evaluate(t,r,n)}(e,t);case"eventHandler":return async function(e,t){return{event:e.event,selector:e.selector,commands:e.commands,handler:async r=>{const n={...t,event:r,target:r.target,currentTarget:r.currentTarget};for(const t of e.commands)await Ni(t,n)}}}(e,t);case"conditionalExpression":return async function(e,t){return await Ni(e.test,t)?Ni(e.consequent,t):e.alternate?Ni(e.alternate,t):void 0}(e,t);case"string":return e.value;case"arrayLiteral":return async function(e,t){const r=[];for(const n of e.elements)r.push(await Ni(n,t));return r}(e,t);case"objectLiteral":return async function(e,t){const r={};for(const n of e.properties){const e=n.key;let i;i="identifier"===e.type?e.name:"literal"===e.type&&"string"===e.valueType?e.value:await Ni(e,t)+"",r[i]=await Ni(n.value,t)}return r}(e,t);case"attributeAccess":return async function(e,t){const r=e.attributeName;return t.me&&t.me instanceof Element?t.me.getAttribute(r):"@"+r}(e,t);case"propertyOfExpression":return async function(e,t){const r=e.property;if("identifier"!==r?.type)throw Error('Property name must be an identifier in "the X of Y" pattern');const n=r.name,i=await Ni(e.target,t);if(null==i)throw Error(`Cannot access property "${n}" of ${i}`);return Li(t,"possessive").evaluate(t,i,n)}(e,t);case"templateLiteral":return async function(e,t){let r=e.value;return r=await Ji(r,/\$([a-zA-Z_$][a-zA-Z0-9_.$]*|\d+)/g,async(e,r)=>{try{if(/^\d+$/.test(r))return r;if(r.includes(".")){const e=r.split(".");let n=Yi(e[0],t);for(let t=1;e.length>t&&null!=n;t++)n=n[e[t]];return(n??"")+""}return(Yi(r,t)??"")+""}catch{return""}}),r=await Ji(r,/\$(?:\{([^}]+)\}|\(([^)]+)\))/g,async(e,r,n)=>{const i=r||n;try{return await _i(i,t)+""}catch{return"undefined"}}),r}(e,t);case"stringPostfix":return async function(e,t){return`${await Ni(e.expression,t)}${e.unit}`}(e,t);case"blockLiteral":return Zi(e,t);default:throw Error("Unhandled evaluable AST node type: "+e.type)}}async function Ni(e,t){if(!e)throw Error("Cannot evaluate null or undefined AST node");if("literal"===e.type)return e.value;if("identifier"===e.type)return Hi(e,t);if(qi.has(e.type))return Pi(e,t);const r=qe.get(e.type);if(r)return r(e,t);throw Error("Unknown AST node type: "+e.type)}class Ri extends Error{constructor(e){super(`Expression node "${e}" is not synchronously evaluable`),this.name="NotSyncEvaluable"}}const Ii=new Set(["literal","string","selector","identifier","contextReference","arrayLiteral","objectLiteral","asExpression","stringPostfix","blockLiteral","memberExpression"]);function Mi(e,t){const r=e?.type;if("string"==typeof r&&Ii.has(r))return function(e,t){switch(e.type){case"literal":case"string":return e.value;case"selector":return function(e,t){const r=e.value;if("string"!=typeof r)throw new Ri("selector");if(!e.fromQuery&&/^\*[a-zA-Z][\w-]*$/.test(r))throw new Ri("selector");if(e.fromQuery&&/\$[^=]/.test(r)){const{selector:n,elements:i}=function(e,t){const r=ia(e),n=r.filter(e=>"expr"in e).map(e=>$i(e.expr,t));return aa(r,n)}(r,t),a=ra(e,n),s=t?.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!s)throw new Ri("selector");i.forEach((e,t)=>e.setAttribute("data-hs-query-id",t+""));try{return Array.from(s.querySelectorAll(a))}finally{i.forEach(e=>e.removeAttribute("data-hs-query-id"))}}const n=!e.fromQuery&&r.includes("{")?function(e,t){return e.replace(/\{([^}]*)\}/g,(e,r)=>($i(r.trim(),t)??"")+"")}(r,t):r,i=ra(e,n),a=t?.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!a)throw new Ri("selector");return zr(Array.from(a.querySelectorAll(i)),n,e.fromQuery)}(e,t);case"identifier":return function(e,t,r){return"me"===e||"my"===e||"I"===e?t.me:"you"===e||"your"===e||"yourself"===e?t.you:"it"===e||"its"===e?t.it??t.result:"result"===e?t.result??t.it:"window"===e?"undefined"!=typeof window?window:globalThis:"document"===e?"undefined"!=typeof document?document:void 0:"element"===r?Or(t,e):t.locals?.has(e)?t.locals.get(e):t.globals?.has(e)?t.globals.get(e):e.startsWith("$")&&t.globals?.has(e.slice(1))?t.globals.get(e.slice(1)):"body"===e&&"undefined"!=typeof document?document.body:"detail"===e?t.event?.detail??null:"sender"===e?t.event?.detail?.sender??null:void 0!==t[e]?t[e]:"undefined"!=typeof globalThis&&e in globalThis?globalThis[e]:void 0}(e.name,t,e.scope);case"contextReference":return function(e,t){switch(e){case"me":return t.me;case"you":return t.you;case"it":return t.it??t.result;case"event":return t.event;case"target":return t.target??t.event?.target??t.me;default:throw new Ri("contextReference")}}(e.contextType,t);case"arrayLiteral":return e.elements.map(e=>Mi(e,t));case"objectLiteral":return function(e,t){const r={};for(const n of e.properties){const e=n.key;let i;i="identifier"===e.type?e.name:"literal"===e.type&&"string"===e.valueType?e.value+"":Mi(e,t)+"",r[i]=Mi(n.value,t)}return r}(e,t);case"asExpression":return hn(Mi(e.expression,t),Ki(e.targetType),t);case"stringPostfix":return`${Mi(e.expression,t)}${e.unit}`;case"blockLiteral":return Zi(e,t);case"memberExpression":{const r=Mi(e.object,t);if(null==r)return;if(r instanceof Element||Array.isArray(r)||"undefined"!=typeof Node&&r instanceof Node)throw new Ri("memberExpression");const n=r[e.computed?Mi(e.property,t)+"":e.property.name];return"function"==typeof n?n.bind(r):n}default:throw new Ri((e.type??"unknown")+"")}}(e,t);throw new Ri("string"==typeof r?r:"unknown")}function $i(e,t){const r=br(e);if(!r.success||!r.node){const e=r.error??r.errors?.[0];throw Error("Failed to parse expression: "+(e?.message??"unknown error"))}return Mi(r.node,t)}async function _i(e,t){const r=br(e);if(!r.success||!r.node){const e=r.error??r.errors?.[0];throw Error("Failed to parse expression: "+(e?.message??"unknown error"))}const n=t.registry?t:{...t,registry:await Vi()};return Ni(r.node,n)}let zi=null;async function Vi(){if(!zi){const e=await Promise.resolve().then(function(){return wc});zi=e.createFullExpressionRegistry()}return zi}async function Hi(e,t){const r=e.name;return r.startsWith("$")?Se(r.slice(1),t):"global"===e.scope&&Se(r,t),"me"===r||"my"===r||"I"===r?An.me.evaluate(t):"you"===r||"your"===r||"yourself"===r?An.you.evaluate(t):"it"===r||"its"===r?An.it.evaluate(t):"result"===r?An.result.evaluate(t):"window"===r?An.window.evaluate(t):"document"===r?An.document.evaluate(t):"global"===e.scope&&t.globals?.has(r)?t.globals.get(r):"element"===e.scope?Or(t,r):t.locals&&t.locals.has(r)?(Oe(r,t),t.locals.get(r)):t.globals&&t.globals.has(r)?t.globals.get(r):r.startsWith("$")&&t.globals&&t.globals.has(r.slice(1))?t.globals.get(r.slice(1)):"body"===r&&"undefined"!=typeof document?document.body:"detail"===r?t.event?.detail??null:"sender"===r?t.event?.detail?.sender??null:void 0!==t[r]?t[r]:"undefined"!=typeof globalThis&&r in globalThis?globalThis[r]:void 0}function Wi(e){const t=e;if(!t)return null;if("identifier"===t.type&&"string"==typeof t.name)return[t.name];if("memberExpression"===t.type&&!t.computed){const e=Wi(t.object);if(!e)return null;const r=t.property,n="identifier"===r?.type&&"string"==typeof r.name?r.name:"string"==typeof r?.value?r.value:null;return null==n?null:[...e,n]}return null}function Bi(e,t){return Array.isArray(t)?t.includes(e):"string"==typeof t?t.includes(e+""):e instanceof Node&&t instanceof Node?e===t||t.contains(e):null!=t&&"object"==typeof t&&e in t}function Fi(e,t){return e&&"selector"===e.type&&"string"==typeof e.value?e.value:t}function Di(e,t,r){if(void 0!==r)return;const n=e.right;if(!n||"identifier"!==n.type||"string"!=typeof n.name)return;if(null==t||"object"!=typeof t)return;const i=t[n.name];return"boolean"==typeof i?!0===i:void 0}function Ui(e,t,r){return e instanceof Node&&t instanceof Node&&0!==(e.compareDocumentPosition(t)&r)}function Ki(e){if("string"==typeof e)return e;if(e&&"object"==typeof e){if("string"==typeof e.name)return e.name;if("string"==typeof e.value)return e.value}return e+""}function Zi(e,t){const r=e.parameters??[];return(...n)=>{const i=new Map(t.locals??new Map);r.forEach((e,t)=>i.set(e,n[t]));const a={...t,locals:i};try{return Mi(e.body,a)}catch(t){if(t instanceof Ri)return Ni(e.body,a);throw t}}}function Yi(e,t){if(t.locals?.has(e))return Oe(e,t),t.locals.get(e);if("me"===e&&t.me)return t.me;if("you"===e&&t.you)return t.you;if("it"===e){const e=t.it??t.result;if(e)return e}if("result"===e){const e=t.result??t.it;if(e)return e}return"undefined"!=typeof window&&"window"===e?window:t.globals?.has(e)?t.globals.get(e):void 0}async function Ji(e,t,r){const n=[];let i;for(;null!==(i=t.exec(e));)n.push({index:i.index,length:i[0].length,replacement:await r(i[0],...i.slice(1))});let a=e;for(let e=n.length-1;e>=0;e--){const{index:t,length:r,replacement:i}=n[e];a=a.substring(0,t)+i+a.substring(t+r)}return a}function Gi(e,t,r){if("string"==typeof t&&t.startsWith("@")){const r=t.substring(1);return e&&"function"==typeof e.getAttribute?e.getAttribute(r):void 0}return e instanceof Element&&"string"==typeof t?en(e,t):Si(e)&&!(t in e)?Li(r,"possessive").evaluate(r,e,t):e?.[t]}const Xi=new Set(["closest","previous","next"]);function Qi(e){return e instanceof Element?e:Array.isArray(e)&&e[0]instanceof Element?e[0]:void 0}const ea=RegExp("(\\.[a-zA-Z0-9_-]+):(?!(hover|active|focus|visited|link|focus-within|focus-visible|first-child|last-child|only-child|nth-child|nth-last-child|nth-of-type|nth-last-of-type|first-of-type|last-of-type|only-of-type|empty|root|target|lang|dir|not|has|is|where|matches|before|after|first-letter|first-line|selection|placeholder|marker|backdrop|enabled|disabled|checked|indeterminate|required|optional|valid|invalid|in-range|out-of-range|read-only|read-write|default|defined|fullscreen|modal|picture-in-picture|autofill)(?![a-zA-Z0-9_-]))","g"),ta=/[:&()[\]/]/g;function ra(e,t){return e.fromQuery||!t.startsWith(".")||t.includes("{")?function(e){return e.replace(ea,"$1\\:")}(t):function(e){return e[0]+e.slice(1).replace(ta,"\\$&")}(t)}const na=/\$\{([^}]+)\}|\$([a-zA-Z_$][a-zA-Z0-9_.$]*)/g;function ia(e){const t=[];let r,n=0;for(na.lastIndex=0;null!==(r=na.exec(e));)r.index>n&&t.push({lit:e.slice(n,r.index)}),t.push({expr:r[1]??r[2]}),n=r.index+r[0].length;return e.length>n&&t.push({lit:e.slice(n)}),t}function aa(e,t){let r="";const n=[];let i=0;for(const a of e){if("lit"in a){r+=a.lit;continue}const e=t[i++];Yr(e)?(r+=`[data-hs-query-id='${n.length}']`,n.push(e)):r+=(e??"")+""}return{selector:r,elements:n}}class sa{constructor(e){this.elementCleanups=new WeakMap,this.elementCount=0,this.typeCounts={listener:0,observer:0,interval:0,timeout:0,custom:0},this.globalCleanups=[],this.debugMode=e?.debug??!1}registerListener(e,t,r,n,i){this.addCleanup(e,{type:"listener",target:t,eventName:r,cleanup:()=>{t.removeEventListener(r,n,i),this.debugMode&&pe(`CleanupRegistry: Removed listener '${r}'`)},description:r+" listener"})}registerObserver(e,t){this.addCleanup(e,{type:"observer",cleanup:()=>{t.disconnect(),this.debugMode&&pe("CleanupRegistry: Disconnected MutationObserver")},description:"MutationObserver"})}registerInterval(e,t){this.addCleanup(e,{type:"interval",cleanup:()=>{clearInterval(t),this.debugMode&&pe("CleanupRegistry: Cleared interval")},description:"Interval"})}registerTimeout(e,t){this.addCleanup(e,{type:"timeout",cleanup:()=>{clearTimeout(t),this.debugMode&&pe("CleanupRegistry: Cleared timeout")},description:"Timeout"})}registerCustom(e,t,r){this.addCleanup(e,{type:"custom",cleanup:t,description:r||"Custom cleanup"})}registerGlobal(e,t="custom",r){this.globalCleanups.push({type:t,cleanup:e,description:r||"Global cleanup"}),this.debugMode&&pe("CleanupRegistry: Registered global cleanup: "+(r||t))}addCleanup(e,t){const r=this.elementCleanups.get(e);r?r.push(t):(this.elementCleanups.set(e,[t]),this.elementCount++),this.typeCounts[t.type]++,this.debugMode&&pe(`CleanupRegistry: Registered ${t.type} for element`,e)}cleanupElement(e){const t=this.elementCleanups.get(e);if(!t||0===t.length)return 0;let r=0;for(const e of t){try{e.cleanup(),r++}catch(e){this.debugMode&&pe("CleanupRegistry: Error during cleanup:",e)}this.typeCounts[e.type]--}return this.elementCleanups.delete(e),this.elementCount--,this.debugMode&&pe(`CleanupRegistry: Cleaned up ${r} resources for element`),r}cleanupElementTree(e){let t=this.cleanupElement(e);const r=e.querySelectorAll("*");for(const e of r)t+=this.cleanupElement(e);return t}cleanupGlobal(){let e=0;for(const t of this.globalCleanups)try{t.cleanup(),e++}catch(e){this.debugMode&&pe("CleanupRegistry: Error during global cleanup:",e)}return this.globalCleanups=[],this.debugMode&&pe(`CleanupRegistry: Cleaned up ${e} global resources`),e}cleanupAll(){return this.cleanupGlobal()}hasCleanups(e){const t=this.elementCleanups.get(e);return void 0!==t&&t.length>0}getCleanupCount(e){const t=this.elementCleanups.get(e);return t?.length??0}getStats(){let e=0,t=0,r=0,n=0,i=0;for(const a of this.globalCleanups)switch(a.type){case"listener":e++;break;case"observer":t++;break;case"interval":r++;break;case"timeout":n++;break;case"custom":i++}return{elementsTracked:this.elementCount,listeners:this.typeCounts.listener+e,observers:this.typeCounts.observer+t,intervals:this.typeCounts.interval+r,timeouts:this.typeCounts.timeout+n,custom:this.typeCounts.custom+i,global:this.globalCleanups.length}}setDebugMode(e){this.debugMode=e}}class oa{constructor(){this.sources=new Map,this.subscriptions=new Map,this.nextId=1}register(e,t){const r=e.toLowerCase();this.sources.has(r)&&pe("[EventSourceRegistry] Overwriting existing event source: "+e),this.sources.set(r,t)}unregister(e){const t=e.toLowerCase(),r=this.sources.get(t);if(r){for(const[e,r]of this.subscriptions.entries())r.source===t&&(r.unsubscribe(),this.subscriptions.delete(e));return r.destroy?.(),this.sources.delete(t)}return!1}get(e){return this.sources.get(e.toLowerCase())}has(e){return this.sources.has(e.toLowerCase())}subscribe(e,t,r){const n=this.get(e);if(!n)return void pe("[EventSourceRegistry] Unknown event source: "+e);n.initialize?.();const i=n.subscribe(t,r);return this.subscriptions.set(i.id,i),i}unsubscribe(e){const t=this.subscriptions.get(e);return!!t&&(t.unsubscribe(),this.subscriptions.delete(e))}getSourceNames(){return Array.from(this.sources.keys())}getSubscriptions(){return Array.from(this.subscriptions.values())}findSourceForEvent(e){for(const[t,r]of this.sources.entries())if(r.supports?.(e)??r.supportedEvents?.includes(e))return t}generateId(){return`sub_${this.nextId++}_${Date.now().toString(36)}`}destroy(){for(const e of this.subscriptions.values())e.unsubscribe();this.subscriptions.clear();for(const e of this.sources.values())e.destroy?.();this.sources.clear()}}const la={evaluate:(e,t)=>Ni(e,t)};class ca{constructor(e,t,r){this.impl=e,this.hookRegistry=r??null}setHookRegistry(e){this.hookRegistry=e}createHookContext(e,t,r={}){return{commandName:this.name,element:e.me instanceof Element?e.me:null,args:t,modifiers:r,event:e.event??void 0,executionContext:e}}get name(){const e=this.impl.name;if(e)return e;const t=this.impl.metadata?.name;return"string"==typeof t?t:""}get metadata(){const e=this.impl.metadata?.syntax;return{description:this.impl.metadata?.description||"",examples:this.impl.metadata?.examples||[],syntax:"string"==typeof e?e:e?e.join(" | "):""}}async execute(e,...t){const r=t[0],n=this.createHookContext(e,t,r&&"object"==typeof r&&"modifiers"in r&&r.modifiers||{});try{if(ue(`CommandAdapterV2: Executing '${this.name}' with args:`,t),this.hookRegistry&&await this.hookRegistry.runBeforeExecute(n),this.hookRegistry?.shouldIntercept(this.name,n))return void ue(`CommandAdapterV2: '${this.name}' intercepted by hook`);e.variables||(e.variables=new Map);const i=e;let a,s;if(this.impl.parseInput&&"function"==typeof this.impl.parseInput)if(ue(`CommandAdapterV2: '${this.name}' has parseInput(), calling it`),r&&"object"==typeof r&&("args"in r||"modifiers"in r)){const t=r.modifiers,n=t?.when||t?.where;if(n&&!this.impl.ownsConditionalModifier&&!await Ni(n,e))return void ue(`CommandAdapterV2: '${this.name}' skipped - when/where condition evaluated to false`);a=await this.impl.parseInput({args:r.args||[],modifiers:t||{},commandName:r.commandName,bodies:r.bodies},la,e)}else a=t;else ue(`CommandAdapterV2: '${this.name}' has no parseInput(), using args as-is`),a=t;if(ue("CommandAdapterV2: Calling execute with parsed input:",a),2===this.impl.execute.length)s=await this.impl.execute(a,i);else{const e=Array.isArray(a)?a:[a];s=await this.impl.execute(i,...e)}return ue("CommandAdapterV2: Command result:",s),this.hookRegistry&&await this.hookRegistry.runAfterExecute(n,s),s}catch(e){if(ue(`CommandAdapterV2: Error executing '${this.name}':`,e),this.hookRegistry&&e instanceof Error)throw await this.hookRegistry.runOnError(n,e);throw e}}validate(e){return{isValid:!this.impl.validate||this.impl.validate(e),errors:[],suggestions:[]}}}class ua{constructor(e,t){this.adapters=new Map,this.implementations=new Map,this.hookRegistry=t}setHookRegistry(e){this.hookRegistry=e;for(const t of this.adapters.values())t.setHookRegistry(e);pe(`CommandRegistryV2: Hook registry set and propagated to ${this.adapters.size} adapters`)}getHookRegistry(){return this.hookRegistry}register(e){const t=e.name||e.metadata?.name;if(!t||"string"!=typeof t)throw Error("Cannot register command: no name found. Provide a 'name' property or 'metadata.name' on the implementation.");const r=t.toLowerCase();pe(`CommandRegistryV2: Registering command '${r}'`),this.implementations.set(r,e);const n=new ca(e,void 0,this.hookRegistry);this.adapters.set(r,n),k.add(r);const i=e.metadata?.aliases;if(i&&Array.isArray(i))for(const t of i){const r=t.toLowerCase();this.implementations.set(r,e),this.adapters.set(r,n),k.add(r)}}getAdapter(e){return this.adapters.get(e.toLowerCase())}has(e){return this.adapters.has(e.toLowerCase())}getCommandNames(){return Array.from(this.adapters.keys())}getImplementation(e){return this.implementations.get(e.toLowerCase())}getAdapters(){return new Map(this.adapters)}validateCommand(e,t){const r=this.getAdapter(e);return r?r.validate(t):{isValid:!1,errors:[{type:"runtime-error",message:"Unknown command: "+e,suggestions:["Available commands: "+this.getCommandNames().join(", ")]}],suggestions:["Available commands: "+this.getCommandNames().join(", ")]}}}let da=null;function ma(){return da||(da=function(e){const t=e?.commands??new ua,r=e?.eventSources??new oa,n=new Set,i={commands:t,eventSources:r,use(e){if(n.has(e.name))pe(`[LokaScriptRegistry] Plugin '${e.name}' is already installed`);else{if(e.commands)for(const r of e.commands)t.register(r);if(e.eventSources)for(const t of e.eventSources)r.register(t.name,t);e.setup?.(i),n.add(e.name)}},reset(){n.clear()}};return i}()),da}class pa{constructor(e={}){const t=ma();this.options={enableEventSources:e.enableEventSources??!0,registry:e.registry??{}},this.eventSourceRegistry=this.options.registry.eventSources??t.eventSources,pe(`[RegistryIntegration] Initialized (events=${this.options.enableEventSources})`)}getEventSource(e){if(!this.options.enableEventSources)return;const t=this.eventSourceRegistry.get(e);if(t)return pe(`[RegistryIntegration] Found event source for '${e}'`),t;const r=this.eventSourceRegistry.findSourceForEvent(e);if(r){const t=this.eventSourceRegistry.get(r);return pe(`[RegistryIntegration] Found event source '${r}' supporting '${e}'`),t}}hasEventSource(e){return void 0!==this.getEventSource(e)}subscribeToEventSource(e,t,r){if(!this.options.enableEventSources)throw Error("Event sources are disabled in this runtime");const n=this.eventSourceRegistry.subscribe(e,t,r);if(!n)throw Error(`Failed to subscribe to event source '${e}'`);return pe(`[RegistryIntegration] Subscribed to '${e}' event '${t.event}' (id: ${n.id})`),n}getEventSourceNames(){return this.eventSourceRegistry.getSourceNames()}destroy(){this.eventSourceRegistry.destroy(),pe("[RegistryIntegration] Destroyed")}}class ha extends Error{constructor(e){super(`'${e.type}' used outside of a loop`),this.signal=e,this.name="StrayControlFlowError"}}function fa(e){return null!==e&&"object"==typeof e&&"command"in e&&"selector"in e}const ya=new WeakMap;function ga(e,t=new Set){if(null===e||"object"!=typeof e)return t;if(Array.isArray(e)){for(const r of e)ga(r,t);return t}const r=e;"identifier"===r.type&&"string"==typeof r.name&&t.add(r.name);for(const e of Object.keys(r))"start"!==e&&"end"!==e&&"line"!==e&&"column"!==e&&ga(r[e],t);return t}class va{constructor(e){this.autoCleanupObserver=null,this.registryIntegration=null,this.runtimeWarnings=[],this.ops=new WeakMap,this.options={commandTimeout:1e4,enableErrorReporting:!0,enableAutoCleanup:!0,...e},this.registry=e.registry,this.expressionRegistry=e.expressionRegistry,this.behaviorRegistry=new Map,this.globalVariables=Cr,this.hookRegistry=new wr,e.hooks&&this.hookRegistry.register("default",e.hooks),this.registry.setHookRegistry(this.hookRegistry),this.cleanupRegistry=new sa,this.options.enableAutoCleanup&&this.setupAutoCleanup(),!1!==e.registryIntegration&&(this.registryIntegration=new pa("object"==typeof e.registryIntegration?e.registryIntegration:{}),pe("RuntimeBase: Registry integration enabled")),this.behaviorAPI={has:e=>this.behaviorRegistry.has(e),get:e=>this.behaviorRegistry.get(e),set:(e,t)=>this.behaviorRegistry.set(e,t),resolve:null,install:async(e,t,r)=>await this.installBehaviorOnElement(e,t,r)}}setupAutoCleanup(){"undefined"!=typeof MutationObserver&&"undefined"!=typeof document&&(this.autoCleanupObserver=new MutationObserver(e=>{const t=[];for(const r of e)for(const e of r.removedNodes)e instanceof Element&&t.push(e);t.length>0&&queueMicrotask(()=>{for(const e of t)if(!e.isConnected){const t=this.cleanupRegistry.cleanupElementTree(e);t>0&&pe(`RuntimeBase: Auto-cleaned ${t} resources for removed element`)}})}),document.body?this.autoCleanupObserver.observe(document.body,{childList:!0,subtree:!0}):document.addEventListener("DOMContentLoaded",()=>{this.autoCleanupObserver?.observe(document.body,{childList:!0,subtree:!0})},{once:!0}))}registerHooks(e,t){this.hookRegistry.register(e,t)}unregisterHooks(e){return this.hookRegistry.unregister(e)}getRegisteredHooks(){return this.hookRegistry.getRegisteredNames()}cleanup(e){return this.cleanupRegistry.cleanupElement(e)}trackListener(e,t,r,n,i){this.cleanupRegistry.registerListener(e,t,r,n,i)}cleanupTree(e){return this.cleanupRegistry.cleanupElementTree(e)}getCleanupStats(){return this.cleanupRegistry.getStats()}getCleanupRegistry(){return this.cleanupRegistry}logError(...e){this.options.enableErrorReporting&&console.error(...e)}logWarn(...e){this.options.enableErrorReporting&&console.warn(...e)}destroy(){this.autoCleanupObserver&&(this.autoCleanupObserver.disconnect(),this.autoCleanupObserver=null),this.cleanupRegistry.cleanupAll(),this.hookRegistry.clear(),this.behaviorRegistry.clear(),pe("RuntimeBase: Destroyed")}hasErrorDiagnostics(e){const t=e.diagnostics;return!!t?.some(e=>"error"===e.severity)}getWarnings(){return this.runtimeWarnings}async execute(e,t){const r=await this.executeNode(e,t);if(xr(r))return r.value;const n=r.error;if("return"===n.type){const e=n.returnValue;return void 0!==e&&Object.assign(t,{it:e,result:e}),e}if("halt"!==n.type&&"exit"!==n.type)throw new ha(n)}async executeNode(e,t){return this.prepareContext(t),this.compile(e)(t)}prepareContext(e){e.registry||(e.registry=this.expressionRegistry),e.locals.has("_behaviors")||e.locals.set("_behaviors",this.behaviorAPI)}compile(e){const t=this.ops.get(e);if(t)return t;const r=this.compileNode(e);return this.ops.set(e,r),r}compileSequence(e){const t=e.map(e=>this.compile(e));return async e=>{let r;for(const n of t){const t=await n(e);if(!xr(t))return t;r=t.value}return kr(r)}}compileNode(e){if(this.hasErrorDiagnostics(e)){const t=e.diagnostics?.[0],r=t?.message||"Skipped error node";return async()=>(pe("\u26a0\ufe0f RUNTIME: Skipping error node: "+r),this.runtimeWarnings.push(r),kr(void 0))}switch(e.type){case"command":{const t=e,r=(t.args??[]).map(e=>function(e){const t=e?.type;return"block"===t||"command"===t}(e)?this.compile(e):void 0),n=r.some(Boolean);return e=>this.processCommandWithResult(t,e,n?r:void 0)}case"initBlock":case"block":{const t=e,r=(Array.isArray(t.commands)?t.commands:[]).map(e=>this.compile(e)),n="initBlock"===e.type;return async e=>{for(const t of r){const r=await t(e);if(!xr(r)){if(n&&"halt"===r.error.type)break;return r}}return kr(void 0)}}case"sequence":case"CommandSequence":{const t=e;return e=>this.executeCommandSequenceWithResult(t.commands||[],e)}case"Program":return t=>this.executeProgram(e,t);default:return t=>this.dispatch(e,t)}}async dispatch(e,t){switch(pe(`RUNTIME BASE: dispatch node type: '${e.type}'`),e.type){case"eventHandler":return kr(await this.executeEventHandler(e,t));case"event":{const r={type:"eventHandler",event:e.event,events:[e.event],commands:e.body||[],target:e.filter,modifiers:e.modifiers||{}};return kr(await this.executeEventHandler(r,t))}case"behavior":return kr(await this.executeBehaviorDefinition(e,t));case"def":return kr(this.installFunction(e,t));case"objectLiteral":return kr(await this.executeObjectLiteral(e,t));default:return await this.evaluateExpressionWithResult(e,t)}}async processCommandWithResult(e,t,r){const{name:n,args:i,modifiers:a}=e,s=n.toLowerCase();if(ue(`RUNTIME BASE (Result): Processing command '${s}'`),!this.registry.has(s)){const e=`Unknown command: ${n}. Ensure it is registered in the Runtime options.`;throw this.logWarn(e),Error(e)}const o=await this.registry.getAdapter(s);if(!o)throw Error(`Command '${s}' is registered but failed to load adapter.`);try{const e=await o.execute(t,{args:i||[],modifiers:a||{},bodies:r,commandName:s,runtime:this});return"object"==typeof(l=e)&&null!==l&&"type"in l&&"string"==typeof l.type&&["halt","exit","break","continue","return"].includes(l.type)?Er(e):kr(e)}catch(e){throw this.logError(`Error executing command '${s}':`,e),e}var l}async executeCommandSequenceWithResult(e,t){let r;for(const n of e){if(this.hasErrorDiagnostics(n)){const e=n.diagnostics?.[0];pe("\u26a0\ufe0f RUNTIME: Skipping error node: "+(e?.message||"unknown error")),this.runtimeWarnings.push(e?.message||"Skipped error node");continue}if("command"===n.type){const e=await this.compile(n)(t);if(!xr(e)){const r=e.error;switch(r.type){case"halt":case"exit":case"break":case"continue":return e;case"return":return void 0!==r.returnValue&&Object.assign(t,{it:r.returnValue,result:r.returnValue}),kr(r.returnValue)}}r=e.value}else{const e=await this.evaluateExpressionWithResult(n,t);if(!xr(e))return e;r=e.value}}return kr(r)}async evaluateExpression(e,t){const r=t.registry?t:{...t,registry:this.expressionRegistry},n=await Ni(e,r);if(fa(n)){const e={type:"command",name:n.command,args:[{type:"literal",value:n.selector}],isBlocking:!1},r=await this.processCommandWithResult(e,t);if(!xr(r))throw new ha(r.error);return r.value}return n}async evaluateExpressionWithResult(e,t){const r=t.registry?t:{...t,registry:this.expressionRegistry},n=await async function(e,t){try{return kr(await Ni(e,t))}catch(e){if(e instanceof Error){const t=e;if(t.isHalt)return Er({type:"halt"});if(t.isExit)return Er({type:"exit",returnValue:t.returnValue});if(t.isBreak)return Er({type:"break"});if(t.isContinue)return Er({type:"continue"});if(t.isReturn)return Er({type:"return",returnValue:t.returnValue})}throw e}}(e,r);if(!xr(n))return n;const i=n.value;return fa(i)?this.processCommandWithResult({type:"command",name:i.command,args:[{type:"literal",value:i.selector}],isBlocking:!1},t):kr(i)}installFunction(e,t){const r=e.params??[],n=e.errorHandler,i=e.finallyHandler,a=e.errorSymbol,s=this.compileSequence(e.body??[]),o=n?this.compileSequence(n):void 0,l=i?this.compileSequence(i):void 0;t.globals.set(e.name,async(...e)=>{const n={...t,locals:new Map(t.locals)};r.forEach((t,r)=>{t&&n.locals.set(t,e[r])});const i=async e=>{const t=await e(n);if(!xr(t)){const e=t.error;if("break"===e.type||"continue"===e.type)throw new ha(e);return"return"===e.type?e.returnValue:void 0}return t.value};if(!o&&!l)return await i(s);try{return await i(s)}catch(e){if(!o||e instanceof ha)throw e;return a&&n.locals.set(a,e),await i(o)}finally{l&&await i(l)}})}async executeProgram(e,t){if(!e.statements||!Array.isArray(e.statements))return kr(void 0);let r;const n=[],i=[],a=[],s=[];for(const t of e.statements)"eventHandler"===t.type?n.push(t):"def"===t.type?i.push(t):"initBlock"===t.type?a.push(t):s.push(t);for(const e of i)this.executeNode(e,t);for(const e of n){const r=await this.executeNode(e,t);if(!xr(r)){if("halt"===r.error.type||"exit"===r.error.type)break;return r}}for(const e of a){const n=await this.executeNode(e,t);if(!xr(n)){if("halt"===n.error.type||"exit"===n.error.type)break;if("return"===n.error.type){r=n.error.returnValue;break}return n}r=n.value}for(const e of s){const n=await this.executeNode(e,t);if(!xr(n)){if("halt"===n.error.type||"exit"===n.error.type)break;if("return"===n.error.type){r=n.error.returnValue;break}return n}r=n.value}return kr(r)}async executeBlock(e,t){return this.compile(e)(t)}async executeObjectLiteral(e,t){const r={};if(!e.properties)return r;for(const n of e.properties){let e;e="identifier"===n.key.type?n.key.name:"literal"===n.key.type?n.key.value+"":await this.execute(n.key,t)+"";const i=await this.execute(n.value,t);r[e]=i}return r}async executeBehaviorDefinition(e,t){const{name:r,parameters:n=[],eventHandlers:i=[],initBlock:a}=e,s=e.imperativeInstaller;"function"==typeof s?(this.behaviorRegistry.set(r,{name:r,parameters:n,type:"imperative",install:s}),pe(`RUNTIME BASE: Registered imperative behavior '${r}'`)):(this.behaviorRegistry.set(r,{name:r,parameters:n,eventHandlers:i,initBlock:a&&a}),pe(`RUNTIME BASE: Registered behavior '${r}'`))}async installBehaviorOnElement(e,t,r){pe("BEHAVIOR: installBehaviorOnElement called: "+e);let n=this.behaviorRegistry.get(e);if(!n&&(this.behaviorAPI.resolve&&this.behaviorAPI.resolve(e)&&(n=this.behaviorRegistry.get(e)),!n))throw Error(`Behavior "${e}" not found`);if("imperative"===n.type)return void("function"==typeof n.install&&(pe(`BEHAVIOR: Installing imperative behavior '${e}'`),n.install(t,r),pe(`BEHAVIOR: Finished installing imperative behavior '${e}'`)));pe("BEHAVIOR: Found behavior, eventHandlers count: "+(n.eventHandlers?.length||0));const i={me:t,owner:t,you:null,it:null,result:null,locals:new Map,globals:this.globalVariables,registry:this.expressionRegistry};if(n.parameters)for(const e of n.parameters)i.locals.set(e,e in r?r[e]:void 0);for(const[e,t]of Object.entries(r))n.parameters?.includes(e)||i.locals.set(e,t);if(n.initBlock){pe("BEHAVIOR: Running init block for "+e);const t=this.options.commandTimeout??1e4;try{await Promise.race([this.execute(n.initBlock,i),new Promise((r,n)=>setTimeout(()=>n(Error(`Behavior "${e}" init block timed out after ${t}ms`)),t))]),pe("BEHAVIOR: Init block completed for "+e)}catch(t){throw pe(`BEHAVIOR: Init block error for ${e}:`,t),t}}if(pe(`BEHAVIOR: About to attach ${n.eventHandlers?.length||0} handlers for ${e}`),n.eventHandlers){const t=this.options.commandTimeout??1e4;for(const r of n.eventHandlers)await Promise.race([this.executeEventHandler(r,i),new Promise((r,n)=>setTimeout(()=>n(Error(`Behavior "${e}" handler attachment timed out after ${t}ms`)),t))])}pe("BEHAVIOR: Finished installing "+e)}async executeEventHandler(e,t){const{event:r,events:n,commands:i,target:a,args:s,selector:o,condition:l,attributeName:c,watchTarget:u,modifiers:d,errorSymbol:m,errorHandler:p,finallyHandler:h}=e,f=n&&n.length>0?n:[r];pe(`BEHAVIOR: executeEventHandler: event='${r}', target='${a}'`);let y=[],g=null;if(a){const e="string"==typeof a?a.toLowerCase():"";if("window"===e||"the window"===e)g=window;else if("document"===e||"the document"===e||"body"===e)g=document;else if("me"===e||"myself"===e)y=t.me?[t.me]:[];else if("string"==typeof a&&t.locals.has(a)){const e=t.locals.get(a);pe(`BEHAVIOR: Target resolution: found local '${a}', isElement: ${this.isElement(e)}`),this.isElement(e)?y=[e]:Array.isArray(e)?y=e.filter(e=>this.isElement(e)):"string"==typeof e&&(y=this.queryElements(e,t))}else pe(`BEHAVIOR: Target resolution: querying for '${a}'`),y=this.queryElements(a,t)}else y=t.me?[t.me]:[];if(0===y.length&&!g)return void pe(`BEHAVIOR: executeEventHandler - No targets found for event '${r}', returning early`);if("mutation"===r&&c)return void this.setupMutationObserver(y,c,i,t);if("change"===r&&u)return void this.setupChangeObserver(u,i,t);const v=e.customEventSource;if(v&&this.registryIntegration){pe(`BEHAVIOR: executeEventHandler - Using custom event source '${v}' for event '${r}'`);const e=async e=>{const n=new Map(t.locals),a={...t,locals:n,it:e,event:e};pe(`CUSTOM EVENT: Executing commands for event '${r}'`);try{await this.execute({type:"program",commands:i},a)}catch(e){this.logError(`[HyperFixi] Error executing commands for custom event '${r}':`,e)}};try{const n=this.registryIntegration.subscribeToEventSource(v,{event:r,handler:e,target:a,selector:o},t);pe(`BEHAVIOR: Subscribed to custom event source '${v}' (id: ${n.id})`),this.cleanupRegistry.registerGlobal(()=>n.unsubscribe(),"listener",`Custom event source '${v}' subscription ${n.id}`)}catch(e){this.logError(`[HyperFixi] Failed to subscribe to custom event source '${v}':`,e)}return}const b=va.createEventHandler(this,i,t,o,s,{errorSymbol:m,errorHandler:p,finallyHandler:h},1===f.length?l:void 0);let w,k=null;if(d){let e=b;if(d.prevent){const t=e;e=async e=>(e.preventDefault(),t(e))}if(d.stop){const t=e;e=async e=>(e.stopPropagation(),t(e))}if(d.debounce){const t=d.debounce;let r;w=n=>{r&&clearTimeout(r),r=setTimeout(()=>e(n),t)},k=()=>{r&&(clearTimeout(r),r=void 0)}}else if(d.throttle){const t=d.throttle;let r=0;w=n=>{const i=Date.now();t>i-r||(r=i,e(n))}}else w=e}else w=b;const E=d?.once?{once:!0}:void 0;if(g){for(const e of f)g.addEventListener(e,w,E),y.length>0?this.cleanupRegistry.registerListener(y[0],g,e,w):this.cleanupRegistry.registerGlobal(()=>g.removeEventListener(e,w),"listener",`Global ${e} listener`);k&&(y.length>0?this.cleanupRegistry.registerCustom(y[0],k,"debounce-timeout"):this.cleanupRegistry.registerGlobal(k,"timeout","debounce-timeout"))}else for(const e of y){for(const t of f){if("resize"===t&&"undefined"!=typeof ResizeObserver){const t=new ResizeObserver(e=>{for(const r of e){const e=new CustomEvent("resize",{detail:r,bubbles:!1,cancelable:!1});if(e.synthetic=!0,w(e),E?.once){t.disconnect();break}}});t.observe(e),this.cleanupRegistry.registerCustom(e,()=>t.disconnect(),"resize-observer");continue}e.addEventListener(t,w,E),this.cleanupRegistry.registerListener(e,e,t,w)}k&&this.cleanupRegistry.registerCustom(e,k,"debounce-timeout")}}static createEventHandler(e,t,r,n,i,a,s){const o=e.compileSequence(t),l=a?.errorHandler?e.compileSequence(a.errorHandler):void 0,c=a?.finallyHandler?e.compileSequence(a.finallyHandler):void 0;return async t=>{e.options.logAll?.()&&console.log("[hyperfixi]",t.type,r.me,t);const u=ya.get(t)??0;if(u>=100)return;if(ya.set(t,u+1),n&&t.target instanceof Element)try{if(!t.target.matches(n)&&!t.target.closest(n))return}catch{pe(`Event delegation: invalid CSS selector '${n}', skipping filter`)}const d=new Map(r.locals),m={...r,locals:d,it:t,event:t};if(d.has("target")||m.locals.set("target",t.target),i&&i.length>0){const e=t,r=e.detail;for(const t of i)m.locals.set(t,e[t]??r?.[t]??null)}if(s){const r=t;for(const e of ga(s))!m.locals.has(e)&&e in r&&m.locals.set(e,r[e]);let n;try{n=await e.evaluateExpression(s,m)}catch(e){return void pe("Event filter threw; skipping handler body:",e)}if(!n)return}e.prepareContext(m);const p=async t=>{let r;try{r=await t(m)}catch(t){throw e.logError("COMMAND FAILED:",t),t}if(xr(r))return;const n=r.error;if("return"===n.type&&void 0!==n.returnValue&&Object.assign(m,{it:n.returnValue,result:n.returnValue}),"break"===n.type||"continue"===n.type)throw new ha(n)};if(l||c)try{await p(o)}catch(e){if(!l||e instanceof ha)throw e;a?.errorSymbol&&m.locals.set(a.errorSymbol,e),await p(l)}finally{c&&await p(c)}else await p(o)}}setupMutationObserver(e,t,r,n){pe(`RUNTIME BASE: Setting up MutationObserver for attribute '${t}' on ${e.length} elements`);for(const i of e){const e=new MutationObserver(async e=>{for(const a of e)if("attributes"===a.type&&a.attributeName===t){de(`MUTATION DETECTED: attribute '${t}' changed on`,i);const e={...n,me:i,it:a,locals:new Map(n.locals)},s=a.oldValue,o=i.getAttribute(t);e.locals.set("oldValue",s),e.locals.set("newValue",o);for(const t of r){let r;try{r=await this.executeNode(t,e)}catch(e){this.logError("Error executing mutation handler command:",e)}if(r&&!xr(r)){const e=r.error.type;if("halt"===e||"exit"===e||"return"===e)break}}}});e.observe(i,{attributes:!0,attributeOldValue:!0,attributeFilter:[t]}),this.cleanupRegistry.registerObserver(i,e),pe("RUNTIME BASE: MutationObserver attached to",i,`for attribute '${t}'`)}}async setupChangeObserver(e,t,r){pe("RUNTIME BASE: Setting up MutationObserver for content changes on watch target");const n=await this.execute(e,r);let i=[];this.isElement(n)?i=[n]:Array.isArray(n)&&(i=n.filter(e=>this.isElement(e))),pe(`RUNTIME BASE: Watching ${i.length} target elements for content changes`);for(const e of i){const n=new MutationObserver(async n=>{for(const i of n)if("childList"===i.type||"characterData"===i.type){de("CONTENT CHANGE DETECTED on",e,"mutation type:",i.type);const n={...r,me:r.me,it:i,locals:new Map(r.locals)};n.locals.set("target",e);const a=i.oldValue,s=e.textContent;null!==a&&n.locals.set("oldValue",a),n.locals.set("newValue",s);for(const e of t){let t;try{t=await this.executeNode(e,n)}catch(e){this.logError("Error executing change handler command:",e)}if(t&&!xr(t)){const e=t.error.type;if("halt"===e||"exit"===e||"return"===e)break}}}});n.observe(e,{childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0}),this.cleanupRegistry.registerObserver(e,n),pe("RUNTIME BASE: MutationObserver attached to",e,"for content changes")}}queryElements(e,t){const r=t.me,n=(r instanceof Element?r.ownerDocument:null)??("undefined"!=typeof document?document:null);if(!n)return[];let i=e;i.startsWith("<")&&i.endsWith("/>")&&(i=i.slice(1,-2).trim());try{return Array.from(n.querySelectorAll(i))}catch{return pe(`queryElements: invalid CSS selector '${i}'`),[]}}isElement(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement||!(!e||"object"!=typeof e)&&(!!e.style&&!!e.classList)}}function ba(...e){const t=new Map;for(const r of e)for(const[e,n]of Object.entries(r))t.set(e,n);return t}class wa{constructor(e){this.observer=null,this.initialized=!1,this.runtime=e}init(){"undefined"!=typeof document&&(this.initialized||(this.initialized=!0,this.scanDocument(),this.observer=new MutationObserver(e=>{for(const t of e)"childList"===t.type?t.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&(this.processElement(e),this.scanElement(e))}):"attributes"===t.type&&"_"===t.attributeName&&this.processElement(t.target)}),this.observer.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["_"]})))}destroy(){this.observer&&(this.observer.disconnect(),this.observer=null),this.initialized=!1}reset(){this.destroy()}scanAndProcessAll(){this.scanDocument()}scanDocument(){document.body&&this.scanElement(document.body)}scanElement(e){e.hasAttribute("_")&&this.processElement(e),e.querySelectorAll("[_]").forEach(e=>this.processElement(e))}processElement(e){const t=e.getAttribute("_");if(!t)return;const r=jr(e);this.runtime.execute(t,r).catch(r=>{console.error('[HyperFixi] Error executing _="" attribute:',r),console.error("Element:",e),console.error("Code:",t)})}}class ka{trackPerformance(e,t,r,n){}trackSimple(e,t,r,n=(r?"success":"error")){}toBoolean(e){return!(!1===e||0===e||0n===e||""===e||null==e||Fr(e)&&isNaN(e))}success(e,t){return{success:!0,value:e,type:t}}failure(e,t,r,n,i=[]){return{success:!1,error:{name:e,type:t,message:r,code:n,suggestions:i}}}validationSuccess(){return{isValid:!0,errors:[],suggestions:[]}}validationFailure(e,t,r=[]){return{isValid:!1,errors:[{type:e,message:t,suggestions:r}],suggestions:r}}isElement(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName}inferType(e){return null===e?"null":void 0===e?"undefined":this.isElement(e)?"element":Array.isArray(e)?"array":Ur(e)?"object":typeof e}inferEvaluationType(e){return void 0===e?"Undefined":null===e?"Null":Br(e)?"String":Fr(e)?"Number":Dr(e)?"Boolean":Array.isArray(e)?"Array":this.isElement(e)?"Element":"Object"}normalizeCollection(e){return Array.isArray(e)?e:e instanceof NodeList?Array.from(e):Br(e)?e.split(""):null==e?[]:Ur(e)&&Symbol.iterator in e?Array.from(e):[]}toNumber(e){if(Fr(e)&&Number.isFinite(e))return e;if(Br(e)){const t=Number(e);return Number.isFinite(t)?t:null}return Dr(e)?e?1:0:null}}const Ea=Pn({value:qn().describe("String literal value")}).strict(),xa=Pn({value:function(e={}){return Tn?Ln():On({validate:t=>{const r=Number(t);return isNaN(r)?{success:!1,error:Sn("type-mismatch","Expected number, received "+typeof t)}:void 0!==e.min&&e.min>r?{success:!1,error:Sn("runtime-error","Number must be at least "+e.min)}:void 0!==e.max&&r>e.max?{success:!1,error:Sn("runtime-error","Number must be at most "+e.max)}:{success:!0,data:r}}})}(Sa||{}).describe("Number literal value")}).strict(),Ca=Pn({value:(Tn?Ln():On({validate:e=>"boolean"!=typeof e?{success:!1,error:Sn("type-mismatch","Expected boolean, received "+typeof e)}:{success:!0,data:e}})).describe("Boolean literal value")}).strict(),Aa=Pn({left:Rn().describe("Left operand"),right:Rn().describe("Right operand")}).strict();var Sa;const Ta={stringLiteral:new class extends ka{constructor(){super(...arguments),this.name="stringLiteral",this.category="Special",this.syntax="\"string\" or 'string'",this.description="String literals with template interpolation support",this.outputType="String",this.inputSchema=Ea,this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid){const t=this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions);return this.trackSimple(e,r,!1),t}let i=t.value;(i.includes("${")||i.includes("$"))&&(i=this.interpolateString(i,e));const a=this.success(i,"string");return this.trackSimple(e,r,!0,i),a}catch(t){return this.trackSimple(e,r,!1),this.failure("StringEvaluationError","runtime-error","String literal evaluation failed: "+(t instanceof Error?t.message:t+""),"STRING_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid string literal input",["Provide a value parameter","Ensure value is a string"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}interpolateString(e,t){let r=e.replace(/\$\{([^}]+)\}/g,(e,r)=>{try{const e=this.resolveExpression(r.trim(),t);return void 0!==e?e+"":""}catch(e){return""}});return r=r.replace(/\$([a-zA-Z_$][a-zA-Z0-9_.$]*)/g,(e,r)=>{try{const e=this.resolveVariable(r,t);return void 0!==e?e+"":""}catch(e){return""}}),r}resolveExpression(e,t){if(e.includes(".")){const r=e.split(".");let n=this.resolveVariable(r[0],t);for(let e=1;r.length>e&&null!=n;e++)n=n[r[e]];return n}return this.resolveVariable(e,t)}resolveVariable(e,t){return"me"===e&&t.me?t.me:"you"===e&&t.you?t.you:"it"===e&&t.it?t.it:"result"===e&&t.result?t.result:t.locals?.has(e)?(Oe(e,t),t.locals.get(e)):t.globals?.has(e)?t.globals.get(e):void 0}},numberLiteral:new class extends ka{constructor(){super(...arguments),this.name="numberLiteral",this.category="Special",this.syntax="123 or 3.14",this.description="Numeric literal with validation",this.inputSchema=xa,this.outputType="Number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);return n.isValid?Number.isFinite(t.value)?(this.trackSimple(e,r,!0,t.value),this.success(t.value,"number")):(this.trackSimple(e,r,!1),this.failure("NumberValidationError","invalid-argument","Number literal must be finite","NUMBER_NOT_FINITE")):(this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions))}catch(t){return this.trackSimple(e,r,!1),this.failure("NumberEvaluationError","runtime-error","Number literal evaluation failed: "+(t instanceof Error?t.message:t+""),"NUMBER_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?Number.isFinite(t.data.value)?this.validationSuccess():this.validationFailure("invalid-argument","Number literal value must be finite",["Use finite numbers only","Avoid Infinity and NaN values"]):this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid number literal input",["Provide a value parameter","Ensure value is a number"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}},booleanLiteral:new class extends ka{constructor(){super(...arguments),this.name="booleanLiteral",this.category="Special",this.syntax="true or false",this.description="Boolean literal values",this.inputSchema=Ca,this.outputType="Boolean",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);return n.isValid?(this.trackSimple(e,r,!0,t.value),this.success(t.value,"boolean")):(this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions))}catch(t){return this.trackSimple(e,r,!1),this.failure("BooleanEvaluationError","runtime-error","Boolean literal evaluation failed: "+(t instanceof Error?t.message:t+""),"BOOLEAN_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid boolean literal input",["Provide a value parameter","Ensure value is a boolean"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}},stringConcatenation:new class extends ka{constructor(){super(...arguments),this.name="stringConcatenation",this.category="Special",this.syntax="left + right (string concatenation)",this.description="Concatenation of two values into a string",this.inputSchema=Aa,this.outputType="String",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors[0]?.message||"Invalid input","STRING_CONCATENATION_VALIDATION_FAILED",n.suggestions);const i=this.convertToString(t.left)+this.convertToString(t.right);return this.trackSimple(e,r,!0,i),this.success(i,"string")}catch(t){return this.trackSimple(e,r,!1),this.failure("StringConcatenationError","runtime-error",t instanceof Error?t.message:"String concatenation failed","STRING_CONCATENATION_ERROR",["Check that operands can be converted to strings"])}}validate(e){const t=Aa.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid string concatenation input",["Provide left and right operands for concatenation"])}convertToString(e){if(null===e)return"null";if(void 0===e)return"undefined";if(Br(e))return e;if(Fr(e))return""+e;if(Dr(e))return""+e;if(e instanceof Date)return""+e;try{return e+""}catch{return"[object Object]"}}}};class Oa{constructor(){this.name="addition",this.category="Special",this.syntax="left + right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Vn(e,"left operand");return{success:!0,value:Wn(n+Vn(r,"right operand"),"addition"),type:"number"}}catch(e){return{success:!1,errors:[Kn("runtime-error","Addition failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){const t=function(e){if(null==e)return Un([Kn("missing-argument","Input is null or undefined")],["Provide an object with left and right operands"]);if("object"!=typeof e)return Un([Kn("type-mismatch","Expected object, got "+typeof e)],["Provide an object with left and right operands"]);const t=e;if(!("left"in t)||!("right"in t)){const e=[];return"left"in t||e.push("left"),"right"in t||e.push("right"),Un([Kn("missing-argument",`Missing ${e.join(" and ")} operand${e.length>1?"s":""}`)],["Provide { left: value, right: value }"])}return{isValid:!0,errors:[],suggestions:[]}}(e);if(!t.isValid)return t;const{left:r,right:n}=e;return Bn(r)?Bn(n)?{isValid:!0,errors:[],suggestions:[]}:{isValid:!1,errors:[Kn("type-mismatch","Right operand cannot be converted to number: "+n)],suggestions:["Provide a numeric value for right operand"]}:{isValid:!1,errors:[Kn("type-mismatch","Left operand cannot be converted to number: "+r)],suggestions:["Provide a numeric value for left operand"]}}}const La={addition:new Oa,subtraction:new class{constructor(){this.name="subtraction",this.category="Special",this.syntax="left - right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Vn(e,"left operand");return{success:!0,value:Wn(n-Vn(r,"right operand"),"subtraction"),type:"number"}}catch(e){return{success:!1,errors:[Kn("runtime-error","Subtraction failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Oa).validate(e)}},multiplication:new class{constructor(){this.name="multiplication",this.category="Special",this.syntax="left * right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Vn(e,"left operand");return{success:!0,value:Wn(n*Vn(r,"right operand"),"multiplication"),type:"number"}}catch(e){return{success:!1,errors:[Kn("runtime-error","Multiplication failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Oa).validate(e)}},division:new class{constructor(){this.name="division",this.category="Special",this.syntax="left / right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=function(e,t,r=!0){if(0===t){if(r)return 0===e?NaN:e>0?1/0:-1/0;throw Error("Division by zero")}return e/t}(Vn(e,"left operand"),Vn(r,"right operand"),!0);return{success:!0,value:n,type:"number"}}catch(e){return{success:!1,errors:[Kn("runtime-error","Division failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Oa).validate(e)}},modulo:new class{constructor(){this.name="modulo",this.category="Special",this.syntax="left mod right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=function(e,t){if(0===t)throw Error("Modulo by zero");return e%t}(Vn(e,"left operand"),Vn(r,"right operand"));return{success:!0,value:n,type:"number"}}catch(e){return{success:!1,errors:[Kn("runtime-error","Modulo failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric and divisor is not zero"]}}}validate(e){return(new Oa).validate(e)}},power:new class{constructor(){this.name="power",this.category="Special",this.syntax="left ** right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Vn(e,"left operand"),i=Vn(r,"right operand");return{success:!0,value:Wn(Math.pow(n,i),"power"),type:"number"}}catch(e){return{success:!1,errors:[Kn("runtime-error","Power failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Oa).validate(e)}}},ja={name:"first",category:"Reference",evaluatesTo:"Any",operators:["first"],async evaluate(e,t){const r=void 0!==t?t:e.it;return null==r?null:Array.isArray(r)||r instanceof NodeList||r instanceof HTMLCollection?r.length>0?r[0]:null:r instanceof Element?r.children.length>0?r.children[0]:null:Br(r)?r.length>0?r[0]:null:Ur(r)&&"length"in r&&Fr(r.length)&&r.length>0?r[0]:null},validate:e=>ln(e,1,"first","collection")},qa={name:"last",category:"Reference",evaluatesTo:"Any",operators:["last"],async evaluate(e,t){const r=void 0!==t?t:e.it;if(null==r)return null;if(Array.isArray(r))return r.length>0?r[r.length-1]:null;if(r instanceof NodeList||r instanceof HTMLCollection)return r.length>0?r[r.length-1]:null;if(r instanceof Element){const e=r.children;return e.length>0?e[e.length-1]:null}return Br(r)?r.length>0?r[r.length-1]:null:Ur(r)&&"length"in r&&Fr(r.length)&&r.length>0?r[r.length-1]:null},validate:e=>ln(e,1,"last","collection")},Pa={name:"at",category:"Reference",evaluatesTo:"Any",operators:["at"],async evaluate(e,...t){const[r,n]=t;if(!Fr(r))throw Error("Index must be a number");const i=r,a=void 0!==n?n:e.it;if(null==a)return null;if(Array.isArray(a)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(a instanceof NodeList||a instanceof HTMLCollection){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(a instanceof Element){const e=a.children,t=0>i?e.length+i:i;return t>=0&&e.length>t?e[t]:null}if(Br(a)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(Ur(a)&&"length"in a&&Fr(a.length)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}return null},validate:e=>cn(e,1,2,"at","index, optional collection")??function(e){return"number"!=typeof e[0]?"at index must be a number":null}(e)};function Na(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;const e=r.querySelector(t);if(e)return e;r=r.nextElementSibling}const n=e.parentElement;return n&&n!==document.documentElement?Na(n,t):null}function Ra(e,t){let r=e.previousElementSibling;for(;r;){const e=Array.from(r.querySelectorAll(t)).reverse();if(e.length>0)return e[0];if(r.matches(t))return r;r=r.previousElementSibling}const n=e.parentElement;return n&&n!==document.documentElement?Ra(n,t):null}function Ia(e,t,r,n){if(r.inSearch){if(null==r.inElt)return;return function(e,t,r,n){const i=Array.from(t??[]),a=[];for(const t of i)(t.matches&&t.matches(r)||t===e)&&a.push(t);for(let t=0;a.length-1>t;t++)if(a[t]===e)return a[t+1];if(n){const e=a[0];if(e&&e.matches&&e.matches(r))return e}}(e,n?Array.from(r.inElt):Array.from(r.inElt).reverse(),t,!!r.wrapping)}const i=r.within??("undefined"!=typeof document?document.body:null);if(i)return n?function(e,t,r,n){const i=t.querySelectorAll(r);for(let t=0;i.length>t;t++){const r=i[t];if(2===r.compareDocumentPosition(e))return r}return n?i[0]:void 0}(e,i,t,!!r.wrapping):function(e,t,r,n){const i=t.querySelectorAll(r);for(let t=i.length-1;t>=0;t--){const r=i[t];if(4===r.compareDocumentPosition(e))return r}return n?i[i.length-1]:void 0}(e,i,t,!!r.wrapping)}function Ma(e){let t=0,r=e;for(;r&&r.parentElement;)t+=Array.from(r.parentElement.children).indexOf(r),r=r.parentElement,t+=1e3;return t}const $a={first:ja,last:qa,at:Pa,next:{name:"next",category:"Reference",evaluatesTo:"Element",operators:["next"],async evaluate(e,...t){const[r,n,i]=t,a=n||e.me;return a&&a instanceof Element?r?i?Ia(a,r,i,!0):Na(a,r):a.nextElementSibling:null},validate:e=>ln(e,3,"next","optional selector, optional fromElement, optional modifiers")||(1>e.length||null==e[0]||"string"==typeof e[0]?2>e.length||null==e[1]||e[1]instanceof Element?null:"fromElement must be an Element":"selector must be a string")},previous:{name:"previous",category:"Reference",evaluatesTo:"Element",operators:["previous","prev"],async evaluate(e,...t){const[r,n,i]=t,a=n||e.me;return a&&a instanceof Element?r?i?Ia(a,r,i,!1):Ra(a,r):a.previousElementSibling:null},validate:e=>ln(e,3,"previous","optional selector, optional fromElement, optional modifiers")||(1>e.length||null==e[0]||"string"==typeof e[0]?2>e.length||null==e[1]||e[1]instanceof Element?null:"fromElement must be an Element":"selector must be a string")},nextWithin:{name:"nextWithin",category:"Reference",evaluatesTo:"Element",operators:["next within"],async evaluate(e,...t){const[r,n,i]=t,a=i||e.me;if(!(a&&a instanceof Element))return null;const s=a.closest(n);return s?function(e,t,r){const n=Array.from(r.querySelectorAll(t)),i=Ma(e);for(const e of n)if(Ma(e)>i)return e;return null}(a,r,s):null},validate:e=>cn(e,2,3,"nextWithin","selector, withinSelector, optional fromElement")||("string"!=typeof e[0]?"selector must be a string":"string"!=typeof e[1]?"withinSelector must be a string":3>e.length||null==e[2]||e[2]instanceof Element?null:"fromElement must be an Element")},previousWithin:{name:"previousWithin",category:"Reference",evaluatesTo:"Element",operators:["previous within"],async evaluate(e,...t){const[r,n,i]=t,a=i||e.me;if(!(a&&a instanceof Element))return null;const s=a.closest(n);return s?function(e,t,r){const n=Array.from(r.querySelectorAll(t)),i=Ma(e);for(let e=n.length-1;e>=0;e--){const t=n[e];if(i>Ma(t))return t}return null}(a,r,s):null},validate:e=>cn(e,2,3,"previousWithin","selector, withinSelector, optional fromElement")||("string"!=typeof e[0]?"selector must be a string":"string"!=typeof e[1]?"withinSelector must be a string":3>e.length||null==e[2]||e[2]instanceof Element?null:"fromElement must be an Element")}};function _a(e,t,r,n,i,a){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var o,l=n.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?n.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),m=!1,p=r.length-1;p>=0;p--){var h={};for(var f in n)h[f]="access"===f?{}:n[f];for(var f in n.access)h.access[f]=n.access[f];h.addInitializer=function(e){if(m)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(e||null))};var y=(0,r[p])("accessor"===l?{get:d.get,set:d.set}:d[c],h);if("accessor"===l){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(o=s(y.get))&&(d.get=o),(o=s(y.set))&&(d.set=o),(o=s(y.init))&&i.unshift(o)}else(o=s(y))&&("field"===l?i.unshift(o):d[c]=o)}u&&Object.defineProperty(u,n.name,d),m=!0}function za(e,t,r){for(var n=arguments.length>2,i=0;t.length>i;i++)r=n?t[i].call(e,r):t[i].call(e);return n?r:void 0}function Va(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})}function Ha(e){const t=e.trim();return!(!t.startsWith("[@")||!t.endsWith("]"))||!!t.startsWith("@")}function Wa(e){const t=e.trim();if(t.startsWith("[@")&&t.endsWith("]")){const e=t.slice(2,-1),r=e.indexOf("=");if(-1===r)return{name:e.trim()};const n=e.slice(0,r).trim();let i=e.slice(r+1).trim();return(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),{name:n,value:i}}if(t.startsWith("@"))return{name:t.substring(1).trim()};throw Error("Invalid attribute syntax: "+e)}function Ba(e,t){for(const r of e)t(r);return e}function Fa(e,t,r){for(const n of e)for(const e of t)r(n,e);return e}function Da(e,t,r){const n=e.hasAttribute(t);void 0!==r?n&&e.getAttribute(t)===r?e.removeAttribute(t):e.setAttribute(t,r):n?e.removeAttribute(t):e.setAttribute(t,"")}function Ua(e){if(!e)return[];if("string"==typeof e)return e.trim().split(/[\s,]+/).map(e=>{const t=e.trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&Za(e));if(Array.isArray(e))return e.map(e=>{const t=(e+"").trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&Za(e));const t=(e+"").trim(),r=t.startsWith(".")?t.substring(1):t;return r.length>0&&Za(r)?[r]:[]}function Ka(e){const t=e.trim();return/^\{[^}]+\}$/.test(t)}function Za(e){if(!e||0===e.trim().length)return!1;const t=e.trim();return!!Ka(t)||/^[a-zA-Z_-][a-zA-Z0-9_-]*$/.test(t)}function Ya(e,t){return e.map(e=>{if(Ka(e)){const r=function(e){const t=e.trim(),r=t.match(/^\{(.+)\}$/);return r?r[1].trim():t}(e),n=t.locals.get(r)??t.globals.get(r);return null!=n?n+"":(ue(`Dynamic class variable '${r}' not found in context`),"")}return e}).filter(e=>e.length>0)}function Ja(e){return function(t,r){Object.defineProperty(t.prototype,"name",{value:e.name,writable:!1,enumerable:!0})}}function Ga(e){return{...e}}function Xa(e){return()=>new e}function Qa(e,t){return e?`[${e}] ${t}`:t}function es(e,t,r){if(Pr(e))return e;if(!e){const e=t.me;if(!e)throw Error(Qa(r,"No target element \u2014 provide explicit target or ensure context.me is set"));return rs(e)}if("string"==typeof e){const n=e.trim();if("me"===n){if(!t.me)throw Error(Qa(r,'Context reference "me" is not available'));return rs(t.me)}if("it"===n){if(!Pr(t.it))throw Error(Qa(r,'Context reference "it" is not an HTMLElement'));return t.it}if("you"===n){if(!t.you)throw Error(Qa(r,'Context reference "you" is not available'));return rs(t.you)}const i=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!i)throw Error(Qa(r,"DOM not available \u2014 cannot resolve element selector"));const a=i.querySelector(n);if(!a)throw Error(Qa(r,"Element not found with selector: "+n));if(!Pr(a))throw Error(Qa(r,"Element found but is not an HTMLElement: "+n));return a}throw Error(Qa(r,"Invalid target type: "+typeof e))}function ts(e,t){if(Array.isArray(e))return e.filter(Pr);if(Rr(e))return Array.from(e).filter(Pr);if(Pr(e))return[e];if(!e){const e=t.me;return e&&Pr(e)?[e]:[]}if("string"==typeof e){const r=e.trim();if("me"===r)return t.me&&Pr(t.me)?[t.me]:[];if("it"===r)return Pr(t.it)?[t.it]:[];if("you"===r)return t.you&&Pr(t.you)?[t.you]:[];const n=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(n){let e=r;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const t=n.querySelectorAll(e);return Array.from(t).filter(Pr)}}return[]}function rs(e){if(Pr(e))return e;throw Error("Value is not an HTMLElement")}function ns(e,t,r){switch(e.toLowerCase()){case"my":case"me":if(!t.me)throw Error(Qa(r,'No "me" element in context'));if(!Pr(t.me))throw Error(Qa(r,"context.me is not an HTMLElement"));return t.me;case"its":case"it":if(!t.it)throw Error(Qa(r,'No "it" value in context'));if(!Pr(t.it))throw Error(Qa(r,"context.it is not an HTMLElement"));return t.it;case"your":case"you":if(!t.you)throw Error(Qa(r,'No "you" element in context'));if(!Pr(t.you))throw Error(Qa(r,"context.you is not an HTMLElement"));return t.you;default:throw Error(Qa(r,"Unknown possessive: "+e))}}async function is(e,t,r,n,i={},a){let s=e;if((!s||0===s.length)&&i.fallbackModifierKey&&a){const e=a[i.fallbackModifierKey];e&&(s=[e])}if(!s||0===s.length){if(!r.me)throw Error(n+" command: no target specified and context.me is null");if(!Pr(r.me))throw Error(n+" command: context.me must be an HTMLElement");return[r.me]}const o=[];for(const e of s){const i=await t.evaluate(e,r);if(""!==i&&("string"!=typeof i||""!==i.trim()))if(Pr(i))o.push(i);else if(Rr(i)){const e=Array.from(i).filter(Pr);o.push(...e)}else if(Array.isArray(i)){const e=i.filter(Pr);o.push(...e)}else{if("string"!=typeof i){if(null==i)continue;throw Error(`Invalid ${n} target: expected HTMLElement or CSS selector, got ${typeof i}`)}try{let e=i;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const t=r.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!t)throw Error("DOM not available - cannot resolve element selector");const n=t.querySelectorAll(e),a=Array.from(n).filter(Pr);o.push(...a)}catch(e){throw Error(`Invalid CSS selector: "${i}" - ${e instanceof Error?e.message:e+""}`)}}}if(0===o.length){if(!r.me)throw Error(n+" command: no target specified and context.me is null");if(!Pr(r.me))throw Error(n+" command: context.me must be an HTMLElement");return[r.me]}return o}function as(e){return"string"==typeof e&&e.trim().startsWith("*")}function ss(e){const t=function(e){const t=e.trim();if(!t.startsWith("*"))return null;const r=t.substring(1).trim();return r?{property:r}:null}(e);if(!t)return null;const r=t.property.toLowerCase();return["display","visibility","opacity"].includes(r)?r:null}function os(e,t,r){e.style.setProperty(t,r)}"function"==typeof SuppressedError&&SuppressedError;const ls=["dialog","details","summary","select"];function cs(e){return e&&"object"==typeof e?"string"==typeof e.selector?e.selector:"string"==typeof e.value?e.value:"string"==typeof e.name?e.name:null:null}async function us(e,t,r){return function(e){if(!e||"object"!=typeof e)return!1;const t=e.type;if("selector"!==t&&"cssSelector"!==t&&"classSelector"!==t)return!1;const r=cs(e);return"string"==typeof r&&r.startsWith(".")}(e)||function(e){if(!e||"object"!=typeof e)return!1;const t=e.type;if("selector"!==t&&"cssSelector"!==t&&"cssProperty"!==t)return!1;const r=cs(e);return"string"==typeof r&&r.startsWith("*")}(e)?{value:cs(e),extractedFromNode:!0}:function(e){if(!e||"object"!=typeof e)return!1;if("attributeAccess"===e.type)return!0;if("selector"===e.type||"cssSelector"===e.type){const t=cs(e);return"string"==typeof t&&t.startsWith("@")}return!1}(e)?{value:(n=e,"attributeAccess"===n.type?"@"+n.attributeName:cs(n)),extractedFromNode:!0}:{value:await t.evaluate(e,r),extractedFromNode:!1};var n}class ds{async resolveTargets(e,t,r){const n=r?.[this.preposition];return is(n?[n]:[],e,t,this.mode)}async evaluateFirst(e,t,r){return us(e,t,r)}parseClassNames(e){return Ua(e)}isAttribute(e){return Ha(e.trim())}isCSSProperty(e){return as(e.trim())}validateTargets(e){return Array.isArray(e)&&function(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Pr(e))}(e)}validateType(e,t){return function(e,t){return"string"==typeof e&&t.includes(e)}(e,t)}validateStringArray(e,t=1){return Array.isArray(e)&&function(e,t=1){return Array.isArray(e)&&e.length>=t&&e.every(e=>"string"==typeof e&&e.length>0)}(e,t)}}let ms=(()=>{let e,t,r=[Ja({name:"add"})],n=[],i=ds;var a=t=class extends i{constructor(){super(...arguments),this.mode="add",this.preposition="to"}get metadata(){return a.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("add command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if("object"==typeof n&&null!==n&&!Array.isArray(n))return{type:"styles",styles:n,targets:await this.resolveTargets(t,r,e.modifiers)};if("string"==typeof n){const i=n.trim();if(this.isAttribute(i)){const{name:n,value:a}=function(e){const t=Wa(e);return{name:t.name,value:t.value??""}}(i);return{type:"attribute",name:n,value:a,targets:await this.resolveTargets(t,r,e.modifiers)}}if(this.isCSSProperty(i)){const n=i.substring(1).trim(),a=e.args[1];if(!a)throw Error("add *property requires a value argument");const s=await t.evaluate(a,r);return{type:"styles",styles:{[n]:s+""},targets:await this.resolveTargets(t,r,e.modifiers)}}}const i=this.parseClassNames(n);if(0===i.length)throw Error("add command: no valid class names found");return{type:"classes",classes:i,targets:await this.resolveTargets(t,r,e.modifiers)}}async execute(e,t){switch(e.type){case"classes":{const r=Ya(e.classes,t);r.length>0&&Fa(e.targets,r,(e,t)=>{e.classList.contains(t)||e.classList.add(t)});break}case"attribute":r=e.name,n=e.value,Ba(e.targets,e=>{e.setAttribute(r,n)});break;case"styles":!function(e,t){Fa(e,Object.entries(t),(e,[t,r])=>{e.style.setProperty(t,r)})}(e.targets,e.styles)}var r,n}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!this.validateType(t.type,["classes","attribute","styles"]))return!1;if(!this.validateTargets(t.targets))return!1;if("classes"===t.type){if(!this.validateStringArray(e.classes,1))return!1}else if("attribute"===t.type){if("string"!=typeof e.name||0===e.name.length)return!1;if("string"!=typeof e.value)return!1}else if("styles"===t.type){const t=e;if("object"!=typeof t.styles||null===t.styles)return!1;if(Array.isArray(t.styles))return!1;const r=t.styles;if(0===Object.keys(r).length)return!1;if(!Object.values(r).every(e=>"string"==typeof e))return!1}return!0}};return Va(t,"AddCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Add CSS classes, attributes, or styles to elements",syntax:"add <classes|@attr|{styles}> [to <target>]",examples:["add .active to me",'add "active selected" to <button/>',"add .highlighted to #modal",'add [@data-test="value"] to #element'],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),a=t})();const ps=Xa(ms),hs={before:"beforebegin",prepend:"afterbegin",append:"beforeend",after:"afterend",into:"replace"};function fs(e){const t=hs[e];if(void 0===t)throw Error(`Unknown semantic position '${e}'. Valid positions: ${Object.keys(hs).join(", ")}.`);return t}function ys(e){return e.includes("<")&&e.includes(">")}function gs(e,t,r){!function(e,t,r){"replace"!==r?Nr(t)?function(e,t,r){switch(r){case"beforebegin":e.parentElement?.insertBefore(t,e);break;case"afterbegin":e.insertBefore(t,e.firstChild);break;case"beforeend":e.appendChild(t);break;case"afterend":e.parentElement?.insertBefore(t,e.nextSibling)}}(e,t,r):function(e,t,r){const n=r,i=["beforebegin","afterbegin","beforeend","afterend"];if(!i.includes(n))throw Error(`Invalid insert position '${r}'. Expected one of ${i.join(", ")} (or 'replace').`);ys(t)?e.insertAdjacentHTML(n,t):e.insertAdjacentText(n,t)}(e,t,r):function(e,t){Nr(t)?(e.innerHTML="",e.appendChild(t)):ys(t)?e.innerHTML=t:e.textContent=t}(e,t)}(e,t,fs(r))}function vs(e,t,r){const n=e;if("function"==typeof n.moveBefore&&t.isConnected&&e.isConnected)try{return void n.moveBefore(t,r)}catch{}e.insertBefore(t,r)}function bs(e,t,r){switch(r){case"beforeend":for(const r of t)vs(e,r,null);break;case"afterbegin":for(let r=t.length-1;r>=0;r--)vs(e,t[r],e.firstChild);break;case"beforebegin":{const r=e.parentElement;if(!r)return;for(const n of t)vs(r,n,e);break}case"afterend":{const r=e.parentElement;if(!r)return;for(let n=t.length-1;n>=0;n--)vs(r,t[n],e.nextSibling);break}case"replace":e.innerHTML="";for(const r of t)vs(e,r,null)}}function ws(e){return!!e.parentNode&&(e.remove(),!0)}let ks=(()=>{let e,t,r=[Ja({name:"remove"})],n=[],i=ds;var a=t=class extends i{constructor(){super(...arguments),this.mode="remove",this.preposition="from"}get metadata(){return a.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("remove command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if(Pr(n))return{type:"element",targets:[n]};if(Array.isArray(n)&&n.length>0&&Pr(n[0]))return{type:"element",targets:n.filter(e=>Pr(e))};if("string"==typeof n){const i=n.trim();if(this.isAttribute(i))return{type:"attribute",name:Wa(i).name,targets:await this.resolveTargets(t,r,e.modifiers)};if(this.isCSSProperty(i))return{type:"styles",properties:[i.substring(1).trim()],targets:await this.resolveTargets(t,r,e.modifiers)}}const i=this.parseClassNames(n);if(0===i.length)throw Error("remove command: no valid class names found");return{type:"classes",classes:i,targets:await this.resolveTargets(t,r,e.modifiers)}}execute(e,t){switch(e.type){case"classes":{const r=Ya(e.classes,t);r.length>0&&Fa(e.targets,r,(e,t)=>{e.classList.remove(t)});break}case"attribute":r=e.name,Ba(e.targets,e=>{e.removeAttribute(r)});break;case"styles":!function(e,t){Fa(e,t,(e,t)=>{e.style.removeProperty(t)})}(e.targets,e.properties);break;case"element":for(const t of e.targets)ws(t)}var r}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!this.validateType(t.type,["classes","attribute","styles","element"]))return!1;if(!this.validateTargets(t.targets))return!1;if("classes"===t.type){if(!this.validateStringArray(e.classes,1))return!1}else if("attribute"===t.type){if("string"!=typeof e.name||0===e.name.length)return!1}else if("styles"===t.type&&!this.validateStringArray(e.properties,1))return!1;return!0}};return Va(t,"RemoveCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Remove CSS classes, attributes, styles, or elements from the DOM",syntax:"remove <classes|@attr|*prop|element> [from <target>]",examples:["remove .active from me",'remove "active selected" from <button/>',"remove .highlighted from #modal","remove me","remove closest .item"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),a=t})();const Es=Xa(ks);function xs(e){const t=e.trim().match(/^(\d+(?:\.\d+)?)\s*(s|ms|sec|seconds?|milliseconds?)?$/i);if(!t)return null;const r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();return"ms"===n||"millisecond"===n||"milliseconds"===n?{number:r,milliseconds:Math.floor(r)}:"s"===n||"sec"===n||"second"===n||"seconds"===n?{number:r,milliseconds:Math.floor(1e3*r)}:null}function Cs(e,t=300){if("number"==typeof e)return Math.max(0,Math.floor(e));if("string"==typeof e){const r=xs(e);return r?r.milliseconds:t}return t}function As(e){if("number"==typeof e){if(0>e)throw Error("Duration must be >= 0");return Math.floor(e)}if("string"==typeof e){const t=xs(e);if(!t)throw Error(`Invalid duration format: "${e}"`);return t.milliseconds}throw Error("Invalid duration type: "+typeof e)}function Ss(e){return e&&"none"!==e?e.split(",").map(e=>{const t=parseFloat(e.trim());return isNaN(t)?0:e.includes("s")&&!e.includes("ms")?1e3*t:t}):[0]}function Ts(e,t){let r=0;for(let n=0;e.length>n;n++)r=Math.max(r,(e[n]||0)+(t[n]||0));return r}function Os(e){return 0===e.length?[]:"SUMMARY"===e[0].tagName?e.map(e=>e.closest("details")).filter(e=>null!==e):e}function Ls(e){return"DIALOG"===e.tagName}function js(e){return"DETAILS"===e.tagName}function qs(e,t,r){return()=>{"class"===t?e.classList.toggle(r):"attribute"===t&&Da(e,r)}}function Ps(e,t,r,n){const i=qs(e,t,r),a=setTimeout(i,n);return()=>{clearTimeout(a)}}function Ns(e,t,r,n){const i=qs(e,t,r),a=()=>{i(),e.removeEventListener(n,a)};return e.addEventListener(n,a,{once:!0}),()=>{e.removeEventListener(n,a)}}function Rs(e,t,r){if(t.startsWith("@")){const n=t.substring(1);return void(!1===r?e.removeAttribute(n):e.setAttribute(n,!0===r?"":r+""))}const n=r+"";switch(t){case"textContent":return void(e.textContent=n);case"innerHTML":return void(e.innerHTML=n);case"innerText":return void(e.innerText=n);case"id":return void(e.id=n);case"className":return void(e.className=n);case"value":return void("value"in e&&(e.value=n));case"checked":return void("checked"in e&&(e.checked=!!r))}if(t.includes(".")){const n=t.split(".");let i=e;for(let e=0;n.length-1>e;e++)if(i=i[n[e]],null==i)return;return void(i[n[n.length-1]]=r)}if(t.includes("-")||t in e.style)e.style.setProperty(t,n);else try{e[t]=r}catch(e){if(!(e instanceof TypeError&&(e.message.includes("only a getter")||e.message.includes("read only"))))throw Error(`Cannot set property '${t}': ${e instanceof Error?e.message:"Unknown error"}`)}}function Is(e){return null==e||""===e}function Ms(e,t){return function(e){return!!e&&"object"==typeof e&&"string"==typeof e.type}(e)&&e.type===t}function $s(e){return Ms(e,"literal")}const _s=/^the\s+(.+?)\s+of\s+(.+)$/i,zs=new Set(["disabled","checked","hidden","readOnly","readonly","required","multiple","selected","autofocus","autoplay","controls","loop","muted","open","reversed","async","defer","noValidate","novalidate","formNoValidate","formnovalidate","draggable","spellcheck","contentEditable"]);function Vs(e){return"string"==typeof e&&_s.test(e)}function Hs(e,t){const r=e.match(_s);if(!r)return null;try{return{element:es(r[2].trim(),t),property:r[1].trim()}}catch{return null}}async function Ws(e,t,r){if(function(e){if(!Ms(e,"propertyOfExpression"))return!1;const t=e.property;return"object"==typeof t&&null!==t}(e))return async function(e,t,r){const n=e.property?.name;if(!n)return null;let i=await t.evaluate(e.target,r);return Array.isArray(i)&&(i=i[0]),Pr(i)?{element:i,property:n}:null}(e,t,r);if(function(e){if(!Ms(e,"propertyAccess"))return!1;const t=e.property;return"string"==typeof t||"object"==typeof t&&null!==t&&"string"==typeof t.name}(e))return async function(e,t,r){const n="string"==typeof e.property?e.property:e.property?.name;if(!n)return null;let i=await t.evaluate(e.object,r);return Array.isArray(i)&&(i=i[0]),Pr(i)?{element:i,property:n}:null}(e,t,r);const n=e;if("possessiveExpression"===n?.type||"memberExpression"===n?.type){const e=n.object,i=n.property;let a=await t.evaluate(e,r);if(Array.isArray(a)&&(a=a[0]),!Pr(a))return null;const s=i?.name||i?.value;return s?{element:a,property:s}:null}return null}function Bs(e){const{element:t,property:r}=e;return r.startsWith("*")?function(e,t){return window.getComputedStyle(e).getPropertyValue(t)}(t,r.substring(1)):en(t,r)}function Fs(e,t){const{element:r,property:n}=e;n.startsWith("*")?os(r,n.substring(1),t+""):Rs(r,n,t)}async function Ds(e,t,r){let n,i;if(e?.for){const i=await t.evaluate(e.for,r);n="number"==typeof i?i:"string"==typeof i?Cs(i):void 0}if(e?.until){const n=await t.evaluate(e.until,r);"string"==typeof n&&(i=n)}return{duration:n,untilEvent:i}}function Us(e,t){const r=t?.name,n=function(e){if(!e||"object"!=typeof e)return!1;if("identifier"!==e.type)return!1;const t=e.name;return"string"==typeof t&&function(e){if("string"!=typeof e)return!1;const t=e.toLowerCase();return ls.includes(t)}(t)}(t);if(Pr(e)||Array.isArray(e)&&e.every(e=>Pr(e)))return{type:"element",expression:""};if(n&&r)return{type:"element",expression:r};if("string"==typeof e){const t=e.trim();return t.startsWith("@")||t.startsWith("[@")?{type:"attribute",expression:t}:t.startsWith("*")?{type:"css-property",expression:t}:t.startsWith(".")?{type:"class",expression:t}:t.startsWith("#")||function(e){if("string"!=typeof e)return!1;const t=e.toLowerCase();return ls.some(e=>t.includes(e))}(t)?{type:"element",expression:t}:{type:"class",expression:t}}return{type:"class",expression:""}}const Ks=Xa((()=>{let e,t,r=[Ja({name:"toggle"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers?.between;if(Ms(n,"arrayLiteral")&&n.elements.length>=2){const{duration:i,untilEvent:a}=await Ds(e.modifiers,t,r),s=async e=>Ms(e,"selector")?e.value:t.evaluate(e,r);return{type:"classes-between",classA:(await s(n.elements[0])+"").replace(/^\./,""),classB:(await s(n.elements[1])+"").replace(/^\./,""),targets:await is([],t,r,"toggle",{fallbackModifierKey:"on"},e.modifiers),duration:i,untilEvent:a}}if(!e.args?.length)throw Error("toggle command requires an argument");const i=e.args[0],a=await Ws(i,t,r);if(a)return{type:"property",target:a};if("selector"===i.type&&"string"==typeof i.value&&i.value.startsWith("*")){let n=i.value,a=1;if("*"===n&&"identifier"===e.args[1]?.type&&(n="*"+e.args[1].name,a=2),"*"===n&&e.modifiers?.on){const i=e.modifiers.on?.name;if(i&&["display","visibility","opacity"].includes(i)){n="*"+i;const{duration:a,untilEvent:s}=await Ds(e.modifiers,t,r),o=ss(n);if(o){const e=r.me;return{type:"css-property",property:o,targets:e?[e]:[],duration:a,untilEvent:s}}}}const s=ss(n);if(s){const{duration:n,untilEvent:i}=await Ds(e.modifiers,t,r),o={fallbackModifierKey:"on"};return{type:"css-property",property:s,targets:await is(e.args.slice(a),t,r,"toggle",o,e.modifiers),duration:n,untilEvent:i}}}const{duration:s,untilEvent:o}=await Ds(e.modifiers,t,r),{value:l}=await us(i,t,r);if(Vs(l)){const e=Hs(l,r);if(e)return{type:"property",target:e}}const{type:c,expression:u}=Us(l,i),d={fallbackModifierKey:"on"};switch(c){case"attribute":{const{name:n,value:i}=Wa(u);return{type:"attribute",name:n,value:i,targets:await is(e.args.slice(1),t,r,"toggle",d,e.modifiers),duration:s,untilEvent:o}}case"css-property":{const n=ss(u);if(!n)throw Error("Invalid CSS property: "+u);return{type:"css-property",property:n,targets:await is(e.args.slice(1),t,r,"toggle",d,e.modifiers)}}case"element":{let n;if(Pr(l))n=[l];else if(Array.isArray(l)&&l.every(e=>Pr(e)))n=l;else if(u){const e=document.querySelectorAll(u);n=Array.from(e).filter(e=>Pr(e))}else n=await is([i],t,r,"toggle",d,e.modifiers);const a=function(e){if(0===e.length)return null;const t=e[0].tagName;if(!e.every(e=>e.tagName===t))return null;switch(t){case"DIALOG":return"dialog";case"DETAILS":return"details";case"SELECT":return"select";case"SUMMARY":return e.map(e=>e.closest("details")).filter(e=>null!==e).length>0?"details":null;default:return null}}(n);if("dialog"===a){const i=await async function(e,t,r){if(!e?.as)return"non-modal";const n=await t.evaluate(e.as,r);return"string"==typeof n&&"modal"===n.toLowerCase()?"modal":"non-modal"}(e.modifiers,t,r);return{type:"dialog",mode:i,targets:n}}return"details"===a?{type:"details",targets:Os(n)}:"select"===a?{type:"select",targets:n}:{type:"classes",classes:Ua(u),targets:n,duration:s,untilEvent:o}}default:{const n=Ua(u||l);if(!n.length)throw Error("toggle command: no valid class names found");return{type:"classes",classes:n,targets:await is(e.args.slice(1),t,r,"toggle",d,e.modifiers),duration:s,untilEvent:o}}}}async execute(e,t){switch(e.type){case"classes":{const r=Ya(e.classes,t);if(0===r.length)return[...e.targets];if(Fa(e.targets,r,(e,t)=>{e.classList.toggle(t)}),(e.duration||e.untilEvent)&&r.length)for(const t of e.targets)e.duration&&Ps(t,"class",r[0],e.duration),e.untilEvent&&Ns(t,"class",r[0],e.untilEvent);return[...e.targets]}case"attribute":if(r=e.name,n=e.value,Ba(e.targets,e=>{Da(e,r,n)}),e.duration||e.untilEvent)for(const t of e.targets)e.duration&&Ps(t,"attribute",e.name,e.duration),e.untilEvent&&Ns(t,"attribute",e.name,e.untilEvent);return[...e.targets];case"css-property":return Ba(e.targets,t=>function(e,t){const r=window.getComputedStyle(e);switch(t){case"display":"none"===r.display?(e.style.display=e.dataset.previousDisplay||"block",delete e.dataset.previousDisplay):(e.dataset.previousDisplay=r.display,e.style.display="none");break;case"visibility":e.style.visibility="hidden"===r.visibility?"visible":"hidden";break;case"opacity":e.style.opacity=0===parseFloat(r.opacity)?"1":"0"}}(t,e.property));case"property":return function(e){const t=Bs(e),r=e.property,n=r.startsWith("@")?r.substring(1):r;if("boolean"==typeof t||zs.has(n)||zs.has(n.toLowerCase())){const r=!t;return Fs(e,r),r}if("number"==typeof t){const r=0===t?1:0;return Fs(e,r),r}if("string"==typeof t){const n="__ht_"+r,i=e.element[n];return""===t&&void 0!==i?(Fs(e,i),i):(e.element[n]=t,Fs(e,""),"")}Fs(e,!t)}(e.target),[e.target.element];case"dialog":return Ba(e.targets,t=>{return n=e.mode,void((r=t).open?r.close():"modal"===n?r.showModal():r.show());var r,n});case"details":return Ba(e.targets,e=>{var t;(t=e).open=!t.open});case"select":return Ba(e.targets,e=>function(e){if(document.activeElement===e)e.blur();else{if(e.focus(),"showPicker"in e&&"function"==typeof e.showPicker)try{return void e.showPicker()}catch{}const t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});e.dispatchEvent(t)}}(e));case"classes-between":for(const t of e.targets){const r=t.classList.contains(e.classA),n=t.classList.contains(e.classB);r?(t.classList.remove(e.classA),t.classList.add(e.classB)):n?(t.classList.remove(e.classB),t.classList.add(e.classA)):t.classList.add(e.classA)}if(e.duration||e.untilEvent)for(const t of e.targets)e.duration&&Ps(t,"class",e.classA,e.duration),e.untilEvent&&Ns(t,"class",e.classA,e.untilEvent);return[...e.targets]}var r,n}};return Va(t,"ToggleCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Toggle classes, attributes, or interactive elements",syntax:["toggle <class> [on <target>]","toggle @attr","toggle <element> [as modal]","toggle <expr> for <duration>"],examples:["toggle .active on me","toggle @disabled","toggle #myDialog as modal","toggle .loading for 2s","toggle between .expanded and .collapsed","toggle .loading until click from #done"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());const Zs=Xa((()=>{let e,t,r=[Ja({name:"put"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("put requires arguments");const n=["into","before","after","at","at start of","at end of"].find(t=>e.modifiers?.[t]);let i=e.args[0]??null,a=null,s=null;if(n)a=n,s=e.modifiers[n];else{if(!e.args[1])throw Error("put requires content and position");a="into",s=e.args[1]}if(!i)throw Error("put requires content");if(!a)throw Error("put requires position keyword");const o=await t.evaluate(i,r),l=this.mapPosition(a);let c,u,d=null;if(s){const e=(m=s,m?.type||"unknown"),n=await Ws(s,t,r);if(n)return{value:o,targets:[n.element],position:"into",memberPath:n.property};if("memberExpression"===e){const e=s.object,n=s.property;if("selector"===e?.type)d=e.value;else if("identifier"===e?.type){const i=e.name;if("my"===i||"me"===i||"I"===i){if(r.me&&n?.name)return{value:o,targets:[r.me],position:"into",memberPath:n.name}}else if("its"===i||"it"===i){const e=await t.evaluate(s,r);"string"==typeof e&&(d=e)}else d=i}if(d&&n?.name)c=n.name;else if(!d&&!c){const e=await t.evaluate(s,r);"string"==typeof e&&(d=e)}}else if("identifier"===e&&"me"===s.name)d=null;else if("selector"===e||"cssSelector"===e)d=s.value||s.selector;else if("literal"===e){const e=s.value;if("string"==typeof e&&Vs(e)){const t=Hs(e,r);if(t)return{value:o,targets:[t.element],position:"into",memberPath:t.property}}"string"==typeof e&&this.looksLikeCss(e)?d=e:u=e+""}else if("identifier"===e){const e=s.name;if(this.looksLikeCss(e))d=e;else{const n=Hr(await t.evaluate(s,r));if(n)return{value:o,targets:n,position:l,memberPath:c};u=e}}else{const e=await t.evaluate(s,r),n=Hr(e);if(n)return{value:o,targets:n,position:l,memberPath:c};"string"==typeof e&&(this.looksLikeCss(e)?d=e:u=e)}}var m;return u?{value:o,targets:[],position:l,memberPath:c,variableName:u}:{value:o,targets:await this.resolveTargets(d,r),position:l,memberPath:c}}async execute(e,t){const{value:r,targets:n,position:i,memberPath:a,variableName:s}=e;if(s)return t.locals&&t.locals.set(s,r),t[s]=r,void Object.assign(t,{it:r});if(a)for(const e of n)this.setProperty(e,a,r);else for(const e of n){const t=this.parseValue(r);Array.isArray(t)?bs(e,t,fs(i)):gs(e,t,i)}return n}mapPosition(e){switch(e){case"into":return"into";case"before":return"before";case"after":return"after";case"at start of":return"prepend";case"at end of":return"append";default:throw Error("Invalid position: "+e)}}async resolveTargets(e,t){if(!e||"me"===e){if(!t.me||!Pr(t.me))throw Error("put: no target and context.me is null");return[t.me]}return Vr(e)}parseValue(e){return Pr(e)||Array.isArray(e)&&e.length>0&&e.every(Pr)||Nr(e)?e:null==e?"":e+""}looksLikeCss(e){return!!e&&(!!/^[#.\[]/.test(e)||(!(!/[>+~\s]/.test(e)||1>=e.length)||["div","span","p","a","button","input","form","ul","li","ol","table","tr","td","th","img","h1","h2","h3","h4","h5","h6","section","article","header","footer","nav","main","aside","dialog","label","select","option","textarea"].includes(e.toLowerCase())))}setProperty(e,t,r){const n=t.split(".");let i=e;for(let e=0;n.length-1>e;e++){if(!i[n[e]])throw Error(`Property path "${t}" does not exist`);i=i[n[e]]}i[n[n.length-1]]=r}};return Va(t,"PutCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Insert content into elements or properties",syntax:["put <value> into <target>","put <value> before <target>","put <value> after <target>"],examples:['put "Hello World" into me',"put <div>Content</div> before #target","put value into #elem's innerHTML"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());class Ys{constructor(){this.ownsConditionalModifier=!0}async parseInput(e,t,r){const{targets:n}=await async function(e,t,r,n){return{targets:await is(e.args,t,r,n)}}(e,t,r,this.mode),i=e.modifiers?.when??e.modifiers?.where,{matched:a,unmatched:s}=i?await async function(e,t,r,n){const i=[],a=[],s=n.it;try{for(const s of e)n.it=s,(await r.evaluate(t,n)?i:a).push(s)}finally{n.it=s}return{matched:i,unmatched:a}}(n,i,t,r):{matched:n,unmatched:void 0};return{targets:a,...void 0!==s&&{inverse:s},mode:this.mode,defaultDisplay:"show"===this.mode?"block":void 0}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!(!Array.isArray(t.targets)||!t.targets.every(e=>Pr(e))||"show"!==t.mode&&"hide"!==t.mode||"show"===t.mode&&"string"!=typeof t.defaultDisplay)}showElement(e,t="block"){const r=e.dataset.originalDisplay;void 0!==r?(e.style.display=r||t,delete e.dataset.originalDisplay):"none"===e.style.display&&(e.style.display=t),e.classList.add("show")}hideElement(e){if(!e.dataset.originalDisplay){const t=e.style.display;e.dataset.originalDisplay="none"===t?"":t}e.style.display="none",e.classList.remove("show")}}let Js=(()=>{let e,t,r=[Ja({name:"hide"})],n=[],i=Ys;var a=t=class extends i{constructor(){super(...arguments),this.mode="hide"}get metadata(){return a.metadata}async execute(e,t){for(const t of e.targets)this.hideElement(t);for(const t of e.inverse??[])this.showElement(t)}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&!!t.targets.every(e=>Pr(e))}};return Va(t,"HideCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Hide elements by setting display to none",syntax:"hide [<target>] [when <condition>]",examples:["hide me","hide #modal","hide .warnings","hide <button/>","hide <li/> when its textContent is empty"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),a=t})();const Gs=Xa(Js);let Xs=(()=>{let e,t,r=[Ja({name:"show"})],n=[],i=Ys;var a=t=class extends i{constructor(){super(...arguments),this.mode="show"}get metadata(){return a.metadata}async execute(e,t){const r=e.defaultDisplay||"block";for(const t of e.targets)this.showElement(t,r);for(const t of e.inverse??[])this.hideElement(t)}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&!!t.targets.every(e=>Pr(e))&&"string"==typeof t.defaultDisplay}};return Va(t,"ShowCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Show elements by restoring display property",syntax:"show [<target>] [when <condition>]",examples:["show me","show #modal","show .hidden","show <button/>","show <li/> when its textContent contains my value"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),a=t})();const Qs=Xa(Xs),eo={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function to(e){return e.replace(/[&<>"']/g,e=>eo[e])}let ro=(()=>{let e,t,r=[Ja({name:"make"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers.an??e.modifiers.a??e.args[0];if(!n)throw Error("Make command requires class name or DOM element expression");const i=n.raw;let a="string"==typeof i&&i.startsWith("<")?i:await t.evaluate(n,r);if(null==a)throw Error("Make command requires class name or DOM element expression");"string"==typeof a&&a.startsWith("<")&&(a=await async function(e,t){if(!e.includes("{"))return e;const r=/\{([^{}]+)\}/g,n=[];let i;for(;null!==(i=r.exec(e));){let e=i[0];try{const r=await _i(i[1].trim(),t);null!=r&&(e=to(r+""))}catch{}n.push({index:i.index,length:i[0].length,text:e})}let a=e;for(let e=n.length-1;e>=0;e--){const{index:t,length:r,text:i}=n[e];a=a.slice(0,t)+i+a.slice(t+r)}return a}(a,r));const s=void 0!==e.modifiers.an?"an":"a",o=await async function(e,t,r){if(!e)return[];if("arrayLiteral"===e.type&&Array.isArray(e.args)){const n=[];for(const i of e.args)n.push(await t.evaluate(i,r));return n}const n=await t.evaluate(e,r);return Array.isArray(n)?n:[n]}(e.modifiers.from,t,r),l=await async function(e,t,r){if(!e)return;if(("symbol"===e.type||"identifier"===e.type)&&"string"==typeof e.name)return e.name;const n=await t.evaluate(e,r);return"string"==typeof n?n:void 0}(e.modifiers.called,t,r);return{article:s,expression:a,constructorArgs:o,variableName:l}}async execute(e,t){const{expression:r,constructorArgs:n=[],variableName:i}=e,a="string"==typeof r&&r.startsWith("<"),s=a&&r.endsWith("/>")?function(e){const t=e.slice(1,-2);let r="div",n=t;const i=t.match(/^([a-zA-Z][a-zA-Z0-9]*)/);i&&(r=i[1],n=t.slice(i[0].length));const a=document.createElement(r),s=n.split(/(?=[.#])/);for(const e of s)if(e.startsWith("#")){const t=e.slice(1);t&&(a.id=t)}else if(e.startsWith(".")){const t=e.slice(1);t&&a.classList.add(t)}return a}(r):a&&/<\/[a-zA-Z]/.test(r)?function(e){const t=document.createElement("template");t.innerHTML=e.trim();const r=t.content.firstElementChild;if(r&&Pr(r))return r;const n=document.createElement("div");n.innerHTML=e.trim();const i=n.firstElementChild;return i&&Pr(i)?i:n}(r):function(e,t,r){if(Pr(e))return e;if("function"==typeof e){const r=e;return 0===t.length?new r:new r(...t)}const n=e+"";let i;if("undefined"!=typeof window&&(i=window[n]),i||"undefined"==typeof global||(i=global[n]),!i&&r.variables?.has(n)&&(i=r.variables.get(n)),!i||"function"!=typeof i)throw Error(`Constructor '${n}' not found or is not a function`);return 0===t.length?new i:new i(...t)}(r,n,t);return Object.assign(t,{it:s}),i&&$r(i,s,t),s}};return Va(t,"MakeCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Create DOM elements or class instances",syntax:["make a <tag#id.class1.class2/>","make a <ClassName> from <args> called <identifier>"],examples:["make an <a.navlink/> called linkElement",'make a URL from "/path/", "https://origin.example.com"'],sideEffects:["dom-creation","data-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})();const no=Xa(ro),io=Xa((()=>{let e,t,r=[Ja({name:"empty"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await is(e.args,t,r,"empty",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.innerHTML=""}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>Pr(e))}};return Va(t,"EmptyCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Remove all children from an element (sets innerHTML to empty)",syntax:["empty","empty <target>","empty the <target>"],examples:["empty me","empty #list","empty .results"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());function ao(e){if("string"!=typeof e)return;const t=e.toLowerCase().trim();return"non-modal"===t||"nonmodal"===t?"non-modal":"modal"===t?"modal":void 0}function so(e){return e.hasAttribute("popover")}const oo=Xa((()=>{let e,t,r=[Ja({name:"open"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=(e.args??[]).filter(e=>{const t=e;if("identifier"!==t?.type)return!0;const r=t.name?.toLowerCase();return"as"!==r&&"modal"!==r&&"non-modal"!==r&&"nonmodal"!==r}),i=Os(await is(n,t,r,"open",{fallbackModifierKey:"on"},e.modifiers)),a=await async function(e,t,r,n){if(t?.as){const e=ao(await r.evaluate(t.as,n));if(e)return e}for(const t of e){const e=t;if("asExpression"!==e?.type)continue;const r=e.targetType,n=ao(r?.name??r?.value);if(n)return n}for(let t=0;e.length-1>t;t++){const i=e[t];if("identifier"===i?.type&&"as"===i.name?.toLowerCase()){const i=await r.evaluate(e[t+1],n);if("string"==typeof i){const e=i.toLowerCase().trim();if("non-modal"===e||"nonmodal"===e)return"non-modal";if("modal"===e)return"modal"}}}return"modal"}(e.args??[],e.modifiers??{},t,r);return{targets:i,dialogMode:a}}async execute(e,t){for(const t of e.targets)if(Ls(t))t.open||("modal"===e.dialogMode?t.showModal():t.show());else if(js(t))t.open=!0;else if(so(t)){const e=t;if("function"==typeof e.showPopover)try{e.showPopover()}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!(!Array.isArray(t.targets)||!t.targets.every(e=>Pr(e))||"modal"!==t.dialogMode&&"non-modal"!==t.dialogMode)}};return Va(t,"OpenCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Open a dialog, details element, or popover",syntax:["open [<target>]","open <dialog> as modal","open <dialog> as non-modal"],examples:["open","open #myDialog","open #details","open #popup as non-modal"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());function lo(e){return e.hasAttribute("popover")}const co=Xa((()=>{let e,t,r=[Ja({name:"close"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:Os(await is(e.args,t,r,"close",{fallbackModifierKey:"on"},e.modifiers))}}async execute(e,t){for(const t of e.targets)if(Ls(t))t.open&&t.close();else if(js(t))t.open=!1;else if(lo(t)){const e=t;if("function"==typeof e.hidePopover)try{e.hidePopover()}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>Pr(e))}};return Va(t,"CloseCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Close a dialog, details element, or popover",syntax:["close","close <target>"],examples:["close","close #myDialog","close #details","close #popup"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());function uo(e){const t=e.tagName;return"INPUT"===t||"TEXTAREA"===t}const mo=Xa((()=>{let e,t,r=[Ja({name:"select"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await is(e.args,t,r,"select",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){if(0!==e.targets.length)for(const t of e.targets){if(uo(t)){t.select();continue}const e=t.ownerDocument??("undefined"!=typeof document?document:null),r=e?.defaultView;if(!e||!r)continue;const n=r.getSelection?.();if(n)try{const r=e.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r)}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>Pr(e))}};return Va(t,"SelectCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Select the contents of a text field, or select the contents of a DOM element",syntax:["select","select <target>"],examples:["select #search","select <textarea/>","select me"],sideEffects:["focus","dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());function po(e){return"FORM"===e.tagName}const ho=Xa((()=>{let e,t,r=[Ja({name:"reset"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await is(e.args,t,r,"reset",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)po(t)&&t.reset()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>Pr(e))}};return Va(t,"ResetCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Reset a <form> element to its default values (HTMLFormElement.reset())",syntax:["reset","reset <target>"],examples:["reset","reset #myForm","reset <form/>"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),za(t,n),i=t})());function fo(e,t){const r=e.bodies?.[t];if(!r)throw Error(`${e.commandName??"command"}: argument ${t} is a body but was not compiled \u2014 run it through the runtime`);return r}function yo(e,t){if("boolean"==typeof e)return e;if("function"==typeof e)return!0;if(e instanceof Promise)throw Error("Condition must be awaited - use await in the condition expression");if("string"==typeof e){if("me"===e)return!!t.me;if("it"===e)return!!t.it;if("you"===e)return!!t.you;const r=Mr(e,t);return void 0!==r?!!r:!!e}return!!e}const go=Xa((()=>{let e,t,r=[Ja({name:"if"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n="unless"===e.commandName?.toLowerCase()?"unless":"if";if(!e.args||0===e.args.length)throw Error(n+" command requires a condition to evaluate");let i,a;if("unless"===n){if(2>e.args.length)throw Error("unless command requires a condition and at least one command");i=fo(e,1)}else if(e.args.length>=2&&e.args[1]&&(i=fo(e,1),a=3>e.args.length?void 0:fo(e,2)),!i)throw Error('if command requires "then" branch with commands');return{mode:n,condition:await t.evaluate(e.args[0],r),thenCommands:i,elseCommands:a}}async execute(e,t){const{mode:r,condition:n,thenCommands:i,elseCommands:a}=e,s=yo(n,t);let o,l,c;if(("unless"===r?!s:s)?(o="then",c=i):a&&"if"===r?(o="else",c=a):o="none",c){const e=await c(t);if(!xr(e))return e.error;l=e.value}return{mode:r,conditionResult:s,executedBranch:o,result:l}}};return Va(t,"ConditionalCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Conditional execution based on boolean expressions",syntax:["if <condition> then <commands>","if <condition> then <commands> else <commands>","unless <condition> <commands>"],examples:["if x > 5 then add .active","if user.isAdmin then show #adminPanel else hide #adminPanel","unless user.isLoggedIn showLoginForm"],sideEffects:["conditional-execution"],aliases:["unless"],category:"control-flow",compatibility:"standard"}),za(t,n),i=t})()),vo=go,bo=go;let wo=(()=>{let e,t,r=[Ja({name:"repeat"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i,a;if(e.modifiers?.index){const i=await t.evaluate(e.modifiers.index,r);"string"==typeof i&&(n=i)}{const t=[];for(let r=e.args.length-1;r>=0;r--){const n=e.args[r];if("block"===n?.type&&n.commands&&(t.unshift(r),2===t.length))break}2===t.length?(i=fo(e,t[0]),a=fo(e,t[1])):1===t.length&&(i=fo(e,t[0]))}const s=e.modifiers??{},o=e=>async function(e,t,r){if(!e)return;const n=e;if(Ms(n,"string"))return n.value;if(Ms(n,"literal")&&"string"==typeof n.value)return n.value;if(Ms(n,"identifier"))return n.name;const i=await t.evaluate(e,r);return"string"==typeof i?i:void 0}(e,t,r),l=await o(s.loopType)??null,c=!!s.bottomTested&&await t.evaluate(s.bottomTested,r);if("for"===l||s.for){const e=await o(s.for),l=s.in&&await t.evaluate(s.in,r);if(!e||void 0===l)throw Error("for loops require variable and collection");return{type:"for",variable:e,collection:Array.isArray(l)?l:[l],indexVariable:n,commands:i,elseCommands:a}}if("times"===l||s.times){const e=s.times&&await t.evaluate(s.times,r),o="number"==typeof e?e:parseInt(e+"",10);if(isNaN(o))throw Error("times loops require a count number");return{type:"times",count:o,indexVariable:n,commands:i,elseCommands:a}}if("while"===l||s.while){const e=s.while;if(!e)throw Error("while loops require a condition");return{type:"while",condition:e,indexVariable:n,commands:i,elseCommands:a,bottomTested:c}}if("until-event"===l||s.event){const e=await o(s.event);if(!e)throw Error("until-event loops require an event name");let l=r.me;if(s.from){const e=s.from,n=Ms(e,"identifier")?e.name:void 0;if("document"===n)l=document;else if("window"===n&&"undefined"!=typeof window)l=window;else{const e=await t.evaluate(s.from,r);e instanceof EventTarget?l=e:"document"===e?l=document:"undefined"!=typeof window&&e===window&&(l=window)}}return{type:"until-event",eventName:e,eventTarget:l,indexVariable:n,commands:i,elseCommands:a}}if("until"===l||s.until){const e=s.until;if(!e)throw Error("until loops require a condition");return{type:"until",condition:e,indexVariable:n,commands:i,elseCommands:a,bottomTested:c}}if("forever"===l)return{type:"forever",indexVariable:n,commands:i,elseCommands:a};throw Error("repeat command requires a loop type (for/times/while/until/forever)")}async execute(e,t){const{type:r,variable:n,collection:i,condition:a,count:s,indexVariable:o,commands:l,elseCommands:c,bottomTested:u,eventName:d,eventTarget:m}=e;let p,h;switch(r){case"for":({config:p,iterCtx:h}=function(e,t,r){return{config:{type:"for",shouldContinue:e=>(e.collection?.length??0)>e.index,beforeIteration:(e,t)=>{e.item=e.collection?.[e.index],e.itemVariable&&t.locals&&t.locals.set(e.itemVariable,e.item)}},iterCtx:{index:0,collection:e,itemVariable:t,indexVariable:r}}}(i,n,o));break;case"times":({config:p,iterCtx:h}=function(e,t){return{config:{type:"times",shouldContinue:e=>(e.count??0)>e.index,beforeIteration:(e,t)=>{Object.assign(t,{it:e.index+1})}},iterCtx:{index:0,count:e,indexVariable:t}}}(s,o));break;case"while":({config:p,iterCtx:h}=function(e,t,r,n){return{config:{type:"while",shouldContinue:()=>t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,yo,t,o));break;case"until":({config:p,iterCtx:h}=function(e,t,r,n){return{config:{type:"until",shouldContinue:()=>!t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,yo,t,o));break;case"until-event":({config:p,iterCtx:h}=function(e,t,r){const n={index:0,eventFired:!1,indexVariable:r};return{config:{type:"until-event",shouldContinue:e=>!e.eventFired,eventSetup:{eventName:e,target:t,onEvent:()=>{n.eventFired=!0}}},iterCtx:n}}(d,m,o));break;case"forever":({config:p,iterCtx:h}=function(e,t=1e4){return{config:{type:"forever",maxIterations:t,shouldContinue:()=>!0},iterCtx:{index:0,indexVariable:e}}}(o));break;default:throw Error("Unknown repeat type: "+r)}if(u){const e=p.shouldContinue;p.shouldContinue=async t=>0===t.index||await e(t)}const f=await async function(e,t,r,n){const i=e.maxIterations??1e4;let a,s=0,o=!1;e.eventSetup&&e.eventSetup.target.addEventListener(e.eventSetup.eventName,e.eventSetup.onEvent,{once:!0});try{for(;i>s&&await e.shouldContinue(r);){e.beforeIteration&&await e.beforeIteration(r,t),r.indexVariable&&t.locals&&t.locals.set(r.indexVariable,s);const i=await n(t);if(!xr(i)){const t=i.error;if("break"===t.type){o=!0;break}if("continue"===t.type){s++,r.index=s,"until-event"===e.type&&await new Promise(e=>setTimeout(e,0));continue}return{iterations:s,lastResult:a,interrupted:o,signal:t}}a=i.value,s++,r.index=s,"until-event"===e.type&&await new Promise(e=>setTimeout(e,0))}}finally{e.eventSetup&&!r.eventFired&&e.eventSetup.target.removeEventListener(e.eventSetup.eventName,e.eventSetup.onEvent)}return{iterations:s,lastResult:a,interrupted:o}}(p,t,h,l??(async()=>kr(void 0)));if(f.signal)return f.signal;if(0===f.iterations&&!f.interrupted&&c){const e=await c(t);if(!xr(e))return e.error;const n=e.value;return Object.assign(t,{it:n}),{type:r,iterations:0,completed:!0,lastResult:n}}return Object.assign(t,{it:f.lastResult}),{type:r,iterations:f.iterations,completed:!f.interrupted,lastResult:f.lastResult,interrupted:f.interrupted}}};return Va(t,"RepeatCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Iteration in hyperscript - for-in, counted, conditional, event-driven, and infinite loops",syntax:["repeat for <var> in <collection> { <commands> }","repeat <count> times { <commands> }","repeat while <condition> { <commands> }","repeat until <condition> { <commands> }","repeat forever { <commands> }"],examples:["repeat for item in items { log item }",'repeat 5 times { log "hello" }',"repeat for item in items index i log i end"],sideEffects:["iteration","conditional-execution"],category:"control-flow",compatibility:"standard"}),za(t,n),i=t})();const ko=Xa(wo);class Eo{async parseInput(e,t,r){return{signalType:this.signalType}}async execute(e,t){return"exit"===this.signalType?{type:"exit",returnValue:void 0}:{type:this.signalType}}}let xo=(()=>{let e,t,r=[Ja({name:"break"})],n=[],i=Eo;var a=t=class extends i{constructor(){super(...arguments),this.signalType="break"}get metadata(){return a.metadata}};return Va(t,"BreakCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Exit from the current loop (repeat, for, while, until)",syntax:["break"],examples:["break","if found then break","repeat for item in items { if item == target then break }"],sideEffects:["control-flow"],category:"control-flow",compatibility:"standard"}),za(t,n),a=t})();const Co=Xa(xo);let Ao=(()=>{let e,t,r=[Ja({name:"continue"})],n=[],i=Eo;var a=t=class extends i{constructor(){super(...arguments),this.signalType="continue"}get metadata(){return a.metadata}};return Va(t,"ContinueCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Skip to the next iteration of the current loop",syntax:["continue"],examples:["continue","if item.isInvalid then continue","repeat for item in items { if item.skip then continue; process item }"],sideEffects:["control-flow"],category:"control-flow",compatibility:"standard"}),za(t,n),a=t})();const So=Xa(Ao),To=Xa((()=>{let e,t,r=[Ja({name:"halt"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(e.modifiers.the)return{target:r.event};const[n]=e.args;return n?{target:await t.evaluate(n,r)}:{}}async execute(e,t){let r=e.target;if(("the"===r&&t.event||"object"==typeof r&&null!==r&&"the"===r.target&&t.event)&&(r=t.event),this.isEvent(r)){const e=r;return e.preventDefault(),e.stopPropagation(),{halted:!0,timestamp:Date.now(),eventHalted:!0}}return"halted"in t&&(t.halted=!0),{type:"halt"}}isEvent(e){return null!==e&&"object"==typeof e&&"preventDefault"in e&&"stopPropagation"in e}};return Va(t,"HaltCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Stop command execution or prevent event defaults",syntax:["halt","halt the event"],examples:["halt","halt the event","if error then halt",'on click halt the event then log "clicked"'],sideEffects:["control-flow","event-prevention"],category:"control-flow",compatibility:"standard"}),za(t,n),i=t})()),Oo=Xa((()=>{let e,t,r=[Ja({name:"return"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return e.args&&0!==e.args.length?{value:await t.evaluate(e.args[0],r)}:{value:void 0}}async execute(e,t){const{value:r}=e;return"returnValue"in t&&(t.returnValue=r),Object.assign(t,{it:r}),{type:"return",returnValue:r}}};return Va(t,"ReturnCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Return a value from a command sequence or function, terminating execution",syntax:["return","return <value>"],examples:["return","return 42","return user.name","if found then return result"],sideEffects:["control-flow","context-mutation"],category:"control-flow",compatibility:"standard"}),za(t,n),i=t})());let Lo=(()=>{let e,t,r=[Ja({name:"exit"})],n=[],i=Eo;var a=t=class extends i{constructor(){super(...arguments),this.signalType="exit"}get metadata(){return a.metadata}};return Va(t,"ExitCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Immediately terminate execution of the current event handler or behavior",syntax:["exit"],examples:["exit","if no draggedItem exit","on click if disabled exit"],sideEffects:["control-flow"],category:"control-flow",compatibility:"standard"}),za(t,n),a=t})();const jo=Xa(Lo),qo=Xa((()=>{let e,t,r=[Ja({name:"throw"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const[n]=e.args;if(!n)throw Error("throw command requires a message or error object");return{message:await t.evaluate(n,r)}}async execute(e,t){const{message:r}=e;let n;throw n=r instanceof Error?r:Error("string"==typeof r?r:r+""),n}};return Va(t,"ThrowCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Throw an error with a specified message",syntax:["throw <message>"],examples:['throw "Invalid input"','if not valid then throw "Validation failed"'],sideEffects:["error-throwing","execution-termination"],category:"control-flow",compatibility:"standard"}),za(t,n),i=t})());async function Po(e,t,r){const n=await t.evaluate(e,r),i=Array.isArray(n)?n[0]:n;return Pr(i)?i:null}async function No(e,t,r,n){if(!e)return null;const i=e,a=i.type;if(n.nodeWriters&&a){const t=Re(a);if(t)return{kind:"node-write",node:e,writer:t}}if(n.selectorSource&&"selector"===a&&"string"==typeof i.value)return{kind:"selector",selector:i.value};const s=await async function(e,t,r,n){const i=e;if("attributeAccess"===i?.type)return{elements:await n(),name:i.attributeName};if("binaryExpression"===i?.type&&"of"===i.operator&&"attributeAccess"===i.left?.type){const e=await Po(i.right,t,r);if(e)return{elements:[e],name:i.left.attributeName}}if("memberExpression"===i?.type&&"attributeAccess"===i.property?.type){const e=await Po(i.object,t,r);if(e)return{elements:[e],name:i.property.attributeName}}return null}(e,t,r,n.scopeElements);if(s)return{kind:"attribute",elements:s.elements,name:s.name};const o=await Ws(e,t,r);if(o)return n.styleSplit&&o.property.startsWith("*")?{kind:"style",element:o.element,property:o.property.substring(1)}:{kind:"property",target:o};if(n.bareReference&&("identifier"===a||"variable"===a||"symbol"===a)&&"string"==typeof i.name){const e=i.scope;return{kind:"variable",name:i.name,scope:"element"===e||"global"===e?e:void 0}}return null}const Ro=Xa((()=>{let e,t,r=[Ja({name:"set"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("set command requires a target");const n=e.args[0],i=n?.name||n?.value,a=n?.scope,s=await No(n,t,r,{scopeElements:()=>this.resolveTargets(e.modifiers.on,t,r),nodeWriters:!0,styleSplit:!0});if(s)return function(e,t){switch(e.kind){case"node-write":return{type:"node-write",node:e.node,value:t,writer:e.writer};case"attribute":return{type:"attribute",elements:e.elements,name:e.name,value:t};case"style":return{type:"style",element:e.element,property:e.property,value:t+""};case"property":return{type:"property",element:e.target.element,property:e.target.property,value:t};default:throw Error(`set: unrequested write-target rung '${e.kind}'`)}}(s,await this.extractValue(e,t,r));if("memberExpression"===n?.type||"propertyAccess"===n?.type){const i=await this.tryParseMemberExpression(n,e,t,r);if(i)return i}let o;if(o="identifier"!==n?.type&&"variable"!==n?.type||"string"!=typeof i?await t.evaluate(n,r):i,function(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;if(Pr(e)||e instanceof Node)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(o))return{type:"object-literal",properties:o,targets:await this.resolveTargets(e.modifiers.on,t,r)};if(Vs(o)){const n=Hs(o,r);if(n){const i=await this.extractValue(e,t,r);return{type:"property",element:n.element,property:n.property,value:i}}return this.parseTheXofY(o,e,t,r)}if("string"==typeof o&&as(o)){const n=o.substring(1).trim(),i=await this.extractValue(e,t,r);return{type:"style",element:await this.resolveElement(e.modifiers.on,t,r),property:n,value:i+""}}if("string"==typeof o&&Ha(o)){const n=o.substring(1).trim(),i=await this.extractValue(e,t,r);return{type:"attribute",elements:await this.resolveTargets(e.modifiers.on,t,r),name:n,value:i}}if("string"==typeof o){const n=o.match(/^(my|me|its?|your?)\s+(.+)$/i);if(n){const i=ns(n[1],r),a=await this.extractValue(e,t,r);return{type:"property",element:i,property:n[2],value:a}}}if(Pr(o))return{type:"property",element:o,property:"textContent",value:await this.extractValue(e,t,r)};if(Array.isArray(o)&&o.length>0&&Pr(o[0])){const n=await this.extractValue(e,t,r);return{type:"property",element:o[0],property:"textContent",value:n}}if("string"!=typeof o)throw Error("set command target must be a string or object literal"+("memberExpression"===n?.type||"propertyAccess"===n?.type?` (a property chain evaluated to ${null===o?"null":typeof o} \u2014 check that all intermediate objects exist)`:""));return{type:"variable",name:o,value:await this.extractValue(e,t,r),scope:"element"===a||"global"===a?a:void 0}}async execute(e,t){switch(e.type){case"variable":return"element"===e.scope?Lr(t,e.name,e.value):"global"===e.scope?$r(e.name,e.value,t,"global"):$r(e.name,e.value,t),"result"!==e.name&&"it"!==e.name||Object.assign(t,{[e.name]:e.value}),Object.assign(t,{it:e.value}),{target:e.name,value:e.value,targetType:"variable"};case"attribute":for(const t of e.elements)t.setAttribute(e.name,e.value+"");return Object.assign(t,{it:e.value}),{target:"@"+e.name,value:e.value,targetType:"attribute"};case"property":return Rs(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"style":return os(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"object-literal":for(const t of e.targets)for(const[r,n]of Object.entries(e.properties))Rs(t,r,n);return Object.assign(t,{it:e.properties}),{target:e.targets[0]||"unknown",value:e.properties,targetType:"property"};case"member-assignment":return e.container[e.property]=e.value,Object.assign(t,{it:e.value}),{target:e.property,value:e.value,targetType:"property"};case"node-write":return await e.writer(e.node,e.value,t),Object.assign(t,{it:e.value}),{target:e.node.name??"",value:e.value,targetType:"variable"};default:throw Error("Unknown input type: "+e.type)}}async tryParseMemberExpression(e,t,r,n){const i=e.object,a=e.property;if(i?.name&&a?.name){const e=i.name.toLowerCase();if(["me","my","it","its","you","your"].includes(e)){const i=ns(e,n),s=await this.extractValue(t,r,n);return{type:"property",element:i,property:a.name,value:s}}}const s=e.object,o=e.computed;if(s){const i=s;let l;if("memberExpression"===i.type&&!i.computed&&"style"===i.property?.name&&i.object){const e=await r.evaluate(i.object,n);l=(e&&"object"==typeof e&&"style"in e?e.style:void 0)??await r.evaluate(s,n)}else l=await r.evaluate(s,n);if(null!=l&&"object"==typeof l){const i=o?await r.evaluate(e.property,n)+"":a?.name||"";if(i)return{type:"member-assignment",container:l,property:i,value:await this.extractValue(t,r,n)}}}return null}async extractValue(e,t,r){if(e.modifiers.to)return t.evaluate(e.modifiers.to,r);const n=e.args[1];if(n)return t.evaluate(n,r);throw Error('set command requires a value (use "to" keyword)')}async resolveElement(e,t,r){return es(e?await t.evaluate(e,r):void 0,r)}async resolveTargets(e,t,r){return ts(e?await t.evaluate(e,r):void 0,r)}async parseTheXofY(e,t,r,n){const i=e.match(/^the\s+(.+?)\s+of\s+(.+)$/i);if(!i)throw Error('Invalid "the X of Y" syntax');const[,a,s]=i,o=es(s,n),l=await this.extractValue(t,r,n);return{type:"property",element:o,property:a.trim(),value:l}}validate(e){if(!e||"object"!=typeof e)return!1;const t=e;if(!t.type||"string"!=typeof t.type)return!1;if(!["variable","attribute","property","style","object-literal"].includes(t.type))return!1;switch(t.type){case"variable":return"string"==typeof t.name&&"value"in t;case"attribute":return"string"==typeof t.name&&Array.isArray(t.elements)&&t.elements.every(Pr)&&"value"in t;case"property":return"string"==typeof t.property&&Pr(t.element)&&"value"in t;case"style":return"string"==typeof t.property&&""!==t.property&&Pr(t.element)&&"string"==typeof t.value;case"object-literal":return null!==t.properties&&"object"==typeof t.properties&&Array.isArray(t.targets)&&t.targets.length>0;default:return!1}}};return Va(t,"SetCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Set values to variables, attributes, or properties",syntax:["set <target> to <value>"],examples:['set myVar to "value"','set @data-theme to "dark"','set my innerHTML to "content"'],sideEffects:["state-mutation","dom-mutation"],category:"data",compatibility:"standard"}),za(t,n),i=t})()),Io=Xa((()=>{let e,t,r=[Ja({name:"get"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("get command requires an expression argument");const n=e.args[0],i=await t.evaluate(n,r);return i instanceof NodeList&&1===i.length||Array.isArray(i)&&1===i.length?{value:i[0]}:{value:i}}execute(e,t){return t.it=e.value,Object.assign(t,{result:e.value}),{value:e.value}}validate(e){return"object"==typeof e&&null!==e&&"value"in e}};return Va(t,"GetCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Evaluate an expression and store the result in it",syntax:"get <expression>",examples:["get #my-dialog","get <button/>","get me.parentElement"],sideEffects:["context-mutation"],category:"data",compatibility:"standard"}),za(t,n),i=t})());function Mo(e){return e&&"object"==typeof e&&e.type||"unknown"}let $o=(()=>{let e,t,r=[Ja({name:"increment"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n="decrement"===e.commandName?.toLowerCase()?"decrement":"increment",i=await async function(e,t,r,n){if(!e.args||0===e.args.length)throw Error(n+" command requires a target");const i=e.args[0];let a,s,o;const l=Mo(i);if("identifier"===l)a=i.name,i.scope&&(s=i.scope);else if("literal"===l)a=i.value;else{const e=Re(l);if(e){const n=await t.evaluate(i,r),s="number"==typeof n?n:null==n?0:Number(n)||0;a=s,o={node:i,writer:e,currentValue:s}}else{const e=await t.evaluate(i,r);a=Array.isArray(e)&&e.length>0?e[0]:e}}let c=1,u=s;for(let n=1;e.args.length>n;n++){const i=e.args[n];if($s(i)){const e=i.value;"global"===e?u="global":"number"==typeof e&&(c=e)}else if(i){const e=await t.evaluate(i,r);"number"==typeof e&&(c=e)}}const d=e.modifiers?.by;if(d){const e=d.value;if("literal"===Mo(d)&&"number"==typeof e)c=e;else if("literal"!==Mo(d)){const e=await t.evaluate(d,r);"number"==typeof e&&(c=e)}}return{target:a,amount:c,...u&&{scope:u},...o&&{customWrite:o}}}(e,t,r,n);return{...i,operation:n}}async execute(e,t){const{target:r,property:n,scope:i,amount:a=1,operation:s="increment",customWrite:o}=e;if(o){const e=isFinite(a)?a:1,r="increment"===s?o.currentValue+e:o.currentValue-e;return await o.writer(o.node,r,t),Object.assign(t,{it:r}),r}const l=function(e,t,r,n){if("number"==typeof e)return e;if(Pr(e)){const r=e;return t?t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)?Ir(r.getAttribute(t)):Ir(r[t]):Ir(r.value||r.textContent)}return"string"==typeof e?"element"===r?Ir(Mr(e,n,"element")):"global"===r?Ir(Mr(e,n,"global")):e.includes(".")?function(e,t){const r=e.split("."),n=r[1],i=_r(r[0],t);return i?Ir(i[n]):0}(e,n):Ir("me"===e&&n.me?n.me.value||0:"it"===e?n.it||0:"you"===e&&n.you?n.you.value||0:Mr(e,n)):Ir(e)}(r,n,i,t);let c;if(isNaN(l))c=NaN;else{const e=isFinite(a)?a:1;c="increment"===s?l+e:l-e}return function(e,t,r,n,i){if(Pr(e)){const r=e;return void(t?t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)?r.setAttribute(t,n+""):r[t]=n:"value"in r&&void 0!==r.value?r.value=n+"":r.textContent=n+"")}if("string"==typeof e){if("element"===r)return void $r(e,n,i,"element");if("global"===r)return void $r(e,n,i,"global");if(e.includes("."))return void function(e,t,r){const n=e.split("."),i=n[1],a=_r(n[0],r);a&&(a[i]=t)}(e,n,i);if("me"===e&&i.me)return void(i.me.value=n);if("it"===e)return void Object.assign(i,{it:n});if("you"===e&&i.you)return void(i.you.value=n);$r(e,n,i)}}(r,n,i,c,t),Object.assign(t,{it:c}),c}};return Va(t,"NumericModifyCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Modify a variable or property by a specified amount (default: 1)",syntax:["increment <target> [by <number>]","decrement <target> [by <number>]"],examples:["increment counter","increment counter by 5","decrement counter","decrement counter by 5"],sideEffects:["data-mutation","context-modification"],aliases:["decrement"],category:"data",compatibility:"standard"}),za(t,n),i=t})();const _o=Xa($o),zo=Xa($o),Vo=Xa((()=>{let e,t,r=[Ja({name:"default"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("default command requires a target");const n=await this.extractValue(e,t,r),i=e.args[0],a=function(e){if("contextReference"!==e?.type)return null;const t=e.name;return"string"!=typeof t?null:t.startsWith(":")?{name:t.slice(1),scope:"element"}:t.startsWith("$")?{name:t.slice(1),scope:"global"}:null}(i);if(a)return{type:"variable",name:a.name,value:n,scope:a.scope};const s=await No(i,t,r,{scopeElements:async()=>r.me?[r.me]:[],bareReference:!0});if(s)return function(e,t){switch(e.kind){case"attribute":return{type:"attribute",elements:e.elements,name:e.name,value:t};case"property":return{type:"property",element:e.target.element,property:e.target.property,value:t};case"variable":{const r=e.name.startsWith("$"),n=r?e.name.slice(1):e.name,i=r?"global":e.scope;return{type:"variable",name:n,value:t,...i?{scope:i}:{}}}default:throw Error(`default: unrequested write-target rung '${e.kind}'`)}}(s,n);const o=await t.evaluate(e.args[0],r);if(Pr(o))return{type:"element",element:o,value:n};if(Array.isArray(o)&&Pr(o[0]))return{type:"element",element:o[0],value:n};if("string"==typeof o)return{type:"variable",name:o,value:n};throw Error("Invalid target type: "+typeof o)}async extractValue(e,t,r){if(e.modifiers?.to)return t.evaluate(e.modifiers.to,r);const n=e.args[1];if(n)return t.evaluate(n,r);throw Error('default command requires a value (use "to <value>")')}async execute(e,t){switch(e.type){case"variable":return this.defaultVariable(t,e.name,e.value,e.scope);case"attribute":return this.defaultAttribute(t,e.elements,e.name,e.value);case"property":return this.defaultElementProperty(t,e.element,e.property,e.value);case"element":return this.defaultElementValue(t,e.element,e.value)}}defaultVariable(e,t,r,n){const i=Mr(t,e,n);return null!=i?{target:t,value:r,wasSet:!1,existingValue:i,targetType:"variable"}:($r(t,r,e,n),Object.assign(e,{it:r}),{target:t,value:r,wasSet:!0,targetType:"variable"})}defaultAttribute(e,t,r,n){if(0===t.length)throw Error("No element context available for attribute default");const i=t.filter(e=>null===e.getAttribute(r));if(0===i.length)return{target:"@"+r,value:n,wasSet:!1,existingValue:t[0].getAttribute(r),targetType:"attribute"};for(const e of i)e.setAttribute(r,n+"");return Object.assign(e,{it:n}),{target:"@"+r,value:n,wasSet:!0,targetType:"attribute"}}defaultElementProperty(e,t,r,n){const i=function(e,t){if(t.startsWith("@"))return e.getAttribute(t.substring(1));switch(t){case"textContent":return e.textContent;case"innerHTML":return e.innerHTML;case"innerText":return e.innerText;case"id":return e.id;case"className":return e.className;case"value":return"value"in e?e.value:void 0;case"checked":return"checked"in e?e.checked:void 0}if(t.includes(".")){const r=t.split(".");let n=e;for(const e of r){if(null==n)break;n=n[e]}return n}return t.includes("-")||t in e.style?e.style.getPropertyValue(t)||e.style[t]:e[t]}(t,r);return Is(i)?(Rs(t,r,n),Object.assign(e,{it:n}),{target:r,value:n,wasSet:!0,targetType:"property"}):{target:r,value:n,wasSet:!1,existingValue:i,targetType:"property"}}defaultElementValue(e,t,r){const n=function(e){return"value"in e?e.value:e.textContent}(t);return Is(n)?(function(e,t){"value"in e?e.value=t+"":e.textContent=t+""}(t,r),Object.assign(e,{it:r}),{target:"element",value:r,wasSet:!0,targetType:"element"}):{target:"element",value:r,wasSet:!1,existingValue:n,targetType:"element"}}};return Va(t,"DefaultCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Set a value only if it doesn't already exist",syntax:["default <expression> to <expression>"],examples:['default myVar to "fallback"','default @data-theme to "light"','default my innerHTML to "No content"'],sideEffects:["data-mutation","dom-mutation"],category:"data",compatibility:"standard"}),za(t,n),i=t})());function Ho(e){const t=e.tagName;return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t}const Wo=Xa((()=>{let e,t,r=[Ja({name:"clear"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.args?.[0],i=function(e){if(!e)return null;const t=e.type,r=e.name;if("string"!=typeof r||""===r)return null;if("variable"===t||"identifier"===t)return{name:r,scope:e.scope};if("contextReference"===t){if(r.startsWith(":"))return{name:r.slice(1),scope:"element"};if(r.startsWith("$"))return{name:r.slice(1),scope:"global"}}return null}(n);if(i)try{const e=await t.evaluate(n,r);if(!Pr(e)&&!Array.isArray(e))return{type:"variable",...i}}catch{return{type:"variable",...i}}return{type:"form-fields",targets:await is(e.args,t,r,"clear",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){if("variable"===e.type)return $r(e.name,null,t,e.scope),void Object.assign(t,{it:null});for(const t of e.targets)Ho(t)&&("SELECT"===t.tagName?t.selectedIndex=-1:t.value="")}validate(e){if("object"!=typeof e||null===e)return!1;if("variable"===e.type)return"string"==typeof e.name;if("form-fields"===e.type){const t=e.targets;return Array.isArray(t)&&t.every(e=>Pr(e))}return!1}};return Va(t,"ClearCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Reset a variable to null or clear the value of a form field (<input>, <textarea>, <select>)",syntax:["clear <var>","clear :var","clear <target>"],examples:["clear :count","clear myVar","clear #search","clear <textarea/>"],sideEffects:["state-mutation","dom-mutation"],category:"data",compatibility:"standard"}),za(t,n),i=t})());function Bo(e,t,r,n){return e?new Promise(r=>{const i=()=>{a({event:null,timedOut:!1,cancelled:!0})},a=Do(()=>{e.removeEventListener(t,s),n&&n.removeEventListener("abort",i)},r),s=e=>{a({event:e,timedOut:!1,cancelled:!1})};n?.aborted?r({event:null,timedOut:!1,cancelled:!0}):(e.addEventListener(t,s),n&&n.addEventListener("abort",i))}):Promise.reject(Error("waitForEvent: no target provided"))}function Fo(e){return new Promise(t=>setTimeout(t,e))}function Do(e,t){let r=!1;return n=>{r||(r=!0,e(),t(n))}}const Uo=Xa((()=>{let e,t,r=[Ja({name:"wait"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("wait command requires an argument");const n=e.args[0];return"arrayLiteral"===n.type&&n.elements?this.parseEventArrayWait(n.elements,e.args[1],t,r):this.parseTimeWait(e.args[0],t,r)}async execute(e,t){const r=Date.now();if("time"===e.type)return await Fo(e.milliseconds),{type:"time",result:e.milliseconds,duration:Date.now()-r};if("event"===e.type){const n=e.target??t.me??document,i=(await Bo(n,e.eventName)).event;if(Object.assign(t,{it:i}),e.destructure)for(const r of e.destructure)r in i&&t.locals.set(r,i[r]);return{type:"event",result:i,duration:Date.now()-r}}const{result:n,winningCondition:i}=await this.executeRace(e.conditions,t);if(Object.assign(t,{it:n}),n instanceof Event&&"event"===i?.type&&i.destructure)for(const e of i.destructure)e in n&&t.locals.set(e,n[e]);return{type:n instanceof Event?"event":"time",result:n,duration:Date.now()-r}}async parseTimeWait(e,t,r){return{type:"time",milliseconds:As(await t.evaluate(e,r))}}async parseEventArrayWait(e,t,r,n){let i;if(t){const e=await r.evaluate(t,n);if(!e||"object"!=typeof e||!("addEventListener"in e))throw Error("wait for from: target must be an EventTarget");i=e}i||(i=n.me??void 0);const a=[];for(const t of e){const e=t;if("objectLiteral"!==e.type||!e.properties)continue;let s,o="",l=[];for(const t of e.properties){const e=t.key?.name||t.key?.value;if("name"===e&&t.value){if("string"!=typeof t.value.value)throw Error("wait for: event name must be a string");o=t.value.value}else"args"===e&&t.value?.elements?l=t.value.elements.map(e=>e.value||e.name||""):"duration"===e&&t.value&&(s=t.value)}if(s){const e=await r.evaluate(s,n);a.push({type:"time",milliseconds:As(e)})}else o&&a.push({type:"event",eventName:o,target:i,destructure:l.length>0?l:void 0})}return 1===a.length?a[0]:{type:"race",conditions:a}}async executeRace(e,t){const r=new AbortController,n=r.signal,i=e.map(e=>"time"===e.type?Fo(e.milliseconds).then(()=>({result:e.milliseconds,winningCondition:e})):Bo(e.target??t.me??document,e.eventName,0,n).then(t=>({result:t.event,winningCondition:e})));try{return await Promise.race(i)}finally{r.abort()}}};return Va(t,"WaitCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Wait for time delay, event, or race condition",syntax:["wait <time>","wait for <event>","wait for <event> or <condition>"],examples:["wait 2s","wait for click","wait for click or 1s","wait for mousemove(clientX, clientY)"],sideEffects:["time","event-listening"],category:"async",compatibility:"standard"}),za(t,n),i=t})()),Ko=new Map;let Zo=[/^4\d{2}$/,/^5\d{2}$/],Yo=(()=>{let e,t,r=[Ja({name:"fetch"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("fetch requires a URL");const n=await this.parseURL(e.args[0],t,r),i=this.parseResponseType(e.modifiers.as);return{url:n,responseType:i,options:await this.parseRequestOptions(e.modifiers.with,t,r),throwOnError:!e.modifiers.doNotThrow&&"response"!==i}}async execute(e,t){const r=Date.now(),{url:n,responseType:i,options:a}=e,s=new AbortController;let o;t.me&&(o=()=>s.abort(),t.me.addEventListener("fetch:abort",o,{once:!0}));const l={...a,signal:s.signal},c=Ko.get(i);if(c?.accept){const e=new Headers(l.headers);e.has("Accept")||e.set("Accept",c.accept),l.headers=e}if(t.me){const e={...l,sender:t.me,headers:l.headers||{}};this.dispatchEvent(t.me,"fetch:beforeRequest",e),l.headers=e.headers}let u;a.timeout&&(u=setTimeout(()=>s.abort(),a.timeout));try{let a=await fetch(n,l);if(t.me){const e={response:a};this.dispatchEvent(t.me,"fetch:afterResponse",e),a=e.response}if(e.throwOnError&&function(e){const t=e+"";return Zo.some(e=>e.test(t))}(a.status)){const e=Error(`Fetch failed for ${n}: HTTP ${a.status} ${a.statusText}`.trim());throw e.response=a,e.isFetchStatusError=!0,e}const s=await this.handleResponse(a,i,t);t.me&&this.dispatchEvent(t.me,"fetch:afterRequest",{result:s});const o={status:a.status,statusText:a.statusText,headers:a.headers,data:s,url:a.url,duration:Date.now()-r};return Object.assign(t,{it:s}),o}catch(e){if(t.me&&this.dispatchEvent(t.me,"fetch:error",{reason:e instanceof Error?e.message:e+"",error:e}),e instanceof Error&&"AbortError"===e.name)throw Error("Fetch aborted for "+n);if(e instanceof Error&&!0===e.isFetchStatusError)throw e;throw Error(`Fetch failed for ${n}: ${e instanceof Error?e.message:e+""}`)}finally{u&&clearTimeout(u),t.me&&o&&t.me.removeEventListener("fetch:abort",o)}}async parseURL(e,t,r){const n=await t.evaluate(e,r);if("string"!=typeof n||!n){const t=e;if(null==n&&"identifier"===t?.type&&t.name)throw Error(`fetch: URL expression "${t.name}" evaluated to ${n+""} \u2014 check the variable is set, or quote it if you meant a literal URL (fetch 'https://example.com/path')`);throw Error("fetch: URL must be a non-empty string")}return n}parseResponseType(e){if(!e)return"text";if(("identifier"===e.type||"expression"===e.type)&&e.name){const t=e.name.toLowerCase();if("object"===t)return"json";if(["text","json","html","response","blob","arraybuffer"].includes(t))return"arraybuffer"===t?"arrayBuffer":t;if(Ko.has(t))return t;throw Error(`fetch: invalid response type "${t}"`)}return"text"}async parseRequestOptions(e,t,r){if(!e)return{};const n=await t.evaluate(e,r);if("object"!=typeof n||null===n)throw Error('fetch: "with" options must be an object');const i={};return"method"in n&&(i.method=(n.method+"").toUpperCase()),"headers"in n&&(i.headers=this.parseHeaders(n.headers)),"body"in n&&(i.body=this.parseBody(n.body)),"credentials"in n&&(i.credentials=n.credentials),"mode"in n&&(i.mode=n.mode),"cache"in n&&(i.cache=n.cache),i}parseHeaders(e){if(e instanceof Headers)return e;const t=new Headers;if("object"==typeof e&&null!==e)for(const[r,n]of Object.entries(e))t.set(r,n+"");return t}parseBody(e){return null==e?null:e instanceof FormData||e instanceof Blob||e instanceof ArrayBuffer||e instanceof URLSearchParams||"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):e+""}async handleResponse(e,t,r){switch(t){case"response":return e;case"json":return e.json();case"html":return this.parseHTML(await e.text());case"blob":return e.blob();case"arrayBuffer":return e.arrayBuffer();case"text":return e.text();default:{const n=Ko.get(t);return n?n.handler(e,r):e.text()}}}parseHTML(e){const t=(new DOMParser).parseFromString(e,"text/html"),r=document.createDocumentFragment();return Array.from(t.body.childNodes).forEach(e=>r.appendChild(e.cloneNode(!0))),1===r.childNodes.length&&Pr(r.firstChild)?r.firstChild:r}dispatchEvent(e,t,r){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!0}))}};return Va(t,"FetchCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Make HTTP requests with lifecycle event support",syntax:["fetch <url>","fetch <url> as <type>","fetch <url> with <options>"],examples:['fetch "/api/data"','fetch "/api/users" as json','fetch "/api/save" with { method:"POST" }','fetch "/api/optional" as json do not throw'],sideEffects:["network","event-dispatching"],category:"async",compatibility:"standard"}),za(t,n),i=t})();const Jo=Xa(Yo);function Go(e){const t=e.trim();return/^\d+$/.test(t)?parseInt(t,10):/^\d*\.\d+$/.test(t)?parseFloat(t):"true"===t||"false"!==t&&("null"===t?null:"undefined"!==t?t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t:void 0)}let Xo=(()=>{let e,t,r=[Ja({name:"trigger"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n="send"===e.commandName?.toLowerCase()?"send":"trigger",i=n;if(!e.args?.length)throw Error(i+" command requires an event name");const a=e=>e?.type||"unknown",s=e.args[0];let o,l,c;if("functionCall"===a(s)||"callExpression"===a(s)){o=s.name||s.callee?.name;const e=s.args||s.arguments;e?.length&&(l=await this.parseEventDetail(e,t,r))}else if("identifier"===a(s)||"keyword"===a(s))o=s.name;else{const e=await t.evaluate(s,r);o="string"==typeof e?e:e+""}const u=e.modifiers?.on||e.modifiers?.to;if(u)c=await this.resolveTargets([u],t,r,i);else{if(!r.me)throw Error(i+": no target specified and context.me is null");c=[r.me]}return{eventName:o,detail:l,targets:c,options:await this.parseEventOptions(e.modifiers?.with,t,r),mode:n}}async execute(e,t){const r=function(e,t,r={}){return new CustomEvent(e,{detail:void 0!==t?t:{},bubbles:void 0===r.bubbles||r.bubbles,cancelable:void 0===r.cancelable||r.cancelable,composed:void 0!==r.composed&&r.composed})}(e.eventName,e.detail,e.options);for(const t of e.targets)t.dispatchEvent(r);t.it=r}async resolveTargets(e,t,r,n){const i=[];for(const n of e){const e=await t.evaluate(n,r);if("window"!==e&&e!==window)if("document"!==e&&e!==document)if("me"===e&&r.me)i.push(r.me);else if("you"===e&&r.you)i.push(r.you);else if("it"===e&&r.it)i.push(r.it);else if(Pr(e))i.push(e);else if(e instanceof NodeList)i.push(...Array.from(e).filter(Pr));else if(Array.isArray(e))i.push(...e.filter(Pr));else{if("string"==typeof e){const t=document.querySelectorAll(e);if(0===t.length)throw Error(`No elements found: "${e}"`);i.push(...Array.from(t).filter(Pr));continue}if(!e||"object"!=typeof e||!("addEventListener"in e))throw Error("Invalid target: "+typeof e);i.push(e)}else i.push(document);else i.push(window)}if(!i.length)throw Error(n+": no valid targets");return i}async parseEventDetail(e,t,r){if(!e?.length)return;if(1===e.length){const n=e[0];if("objectLiteral"!==n?.type)return await t.evaluate(n,r)}const n={};for(const i of e){const e=await t.evaluate(i,r);if("object"!=typeof e||null===e||Array.isArray(e)){if("string"==typeof e&&e.includes(":")){const[t,r]=e.split(":",2);n[t.trim()]=Go(r.trim())}}else Object.assign(n,e)}return Object.keys(n).length?n:void 0}async parseEventOptions(e,t,r){const n={bubbles:!0,cancelable:!0,composed:!1};if(!e)return n;const i=e,a=Ms(i,"arrayLiteral")?i.elements:[e];for(const e of a){const i=await t.evaluate(e,r);if("string"==typeof i){const e=i.toLowerCase();"bubbles"===e?n.bubbles=!0:"nobubbles"===e?n.bubbles=!1:"cancelable"===e?n.cancelable=!0:"nocancelable"===e?n.cancelable=!1:"composed"===e&&(n.composed=!0)}}return n}};return Va(t,"EventDispatchCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Dispatch events on elements",syntax:["trigger <event> on <target>","trigger <event>(<detail>) on <target>","send <event> to <target>","send <event>(<detail>) to <target>"],examples:["trigger click on #button","trigger customEvent on me","send dataEvent to #target","send myEvent(count: 42) to me","send saved to #form with bubbles cancelable"],sideEffects:["event-dispatch"],aliases:["send"],category:"event",compatibility:"standard"}),za(t,n),i=t})();const Qo=Xa(Xo),el=Xa(Xo),tl=Xa((()=>{let e,t,r=[Ja({name:"transition"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("transition requires property and value");let n,i;const a=await t.evaluate(e.args[0],r),s=e=>Array.isArray(e)||Rr(e)?e[0]:e,o=s(a);if(Pr(o)||"string"==typeof a&&/^[#.]|^(?:me|it|you)$/.test(a))i=o,n=await t.evaluate(e.args[1],r)+"";else{if(e.args.length>=2)throw Error("transition: target element not found");if(null==a){const a=function(e){if(!e||"object"!=typeof e)return null;const t=e;if("identifier"===t.type&&"string"==typeof t.name&&t.name)return{property:t.name};if("propertyAccess"===t.type||"memberExpression"===t.type){const e=t.property,r="string"==typeof e?e:"string"==typeof e?.name?e.name:void 0;if(r)return{property:r,objectNode:t.object}}return null}(e.args[0]);if(!a)throw Error("transition requires a CSS property");if(n=a.property,void 0!==a.objectNode){const e=s(await t.evaluate(a.objectNode,r));Pr(e)&&(i=e)}}else n=a+""}if(!n||"undefined"===n||"null"===n)throw Error("transition requires a CSS property");if(!e.modifiers?.to)throw Error('transition requires "to <value>"');let l=await t.evaluate(e.modifiers.to,r);void 0===l&&"identifier"===e.modifiers.to.type&&(l=e.modifiers.to.name);const c={property:n,value:l};return void 0!==i&&(c.target=i),e.modifiers?.over&&(c.duration=await t.evaluate(e.modifiers.over,r)),e.modifiers?.with&&(c.timingFunction=await t.evaluate(e.modifiers.with,r)+""),c}async execute(e,t){let{property:r}=e;const{target:n,value:i,duration:a,timingFunction:s}=e;r.startsWith("*")&&(r=r.substring(1)),r=r.replace(/([A-Z])/g,"-$1").toLowerCase();const o=es(n,t,"transition"),l=Cs(a,300),c=getComputedStyle(o).getPropertyValue(r),u=o.style.transition,d=`${r} ${l}ms ${s||"ease"}`;o.style.transition=u?`${u}, ${d}`:d;let m=i+"",p=!1;if("initial"===m||"inherit"===m||"unset"===m||"revert"===m){const e=o.style.getPropertyValue(r);o.style.removeProperty(r),m=getComputedStyle(o).getPropertyValue(r),e&&o.style.setProperty(r,e),p=!0}o.style.setProperty(r,m);const h=await function(e,t,r){return new Promise(n=>{const i=r=>{r.target===e&&r.propertyName===t&&s({completed:!0,cancelled:!1})},a=r=>{r.target===e&&r.propertyName===t&&s({completed:!1,cancelled:!0})},s=Do(()=>{e.removeEventListener("transitionend",i),e.removeEventListener("transitioncancel",a),clearTimeout(o)},n);e.addEventListener("transitionend",i),e.addEventListener("transitioncancel",a);const o=setTimeout(()=>{s({completed:!0,cancelled:!1})},r+50)})}(o,r,l);return o.style.transition=u,p&&o.style.removeProperty(r),{element:o,property:r,fromValue:c,toValue:m,duration:l,completed:h.completed}}};return Va(t,"TransitionCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Animate CSS properties using CSS transitions",syntax:"transition [<target>] <property> to <value> [over <duration>] [with <timing>]",examples:["transition opacity to 0.5","transition my *opacity to 0 over 200ms","transition #box's *opacity to 0 over 200ms","transition left to 100px over 500ms","transition background-color to red over 1s with ease-in-out"],sideEffects:["style-change","timing"],category:"animation",compatibility:"standard"}),za(t,n),i=t})()),rl=Xa((()=>{let e,t,r=[Ja({name:"measure"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i,a;if(e.args?.length){const a=e.args[0];if("identifier"===a.type&&a.name){const s=a.name.toLowerCase();if("me"===s||"it"===s||"you"===s){const s=await t.evaluate(a,r);if(Pr(s)&&(n=s,e.args.length>1)){const n=e.args[1];i="identifier"===n.type?n.name:await t.evaluate(n,r)+""}}else i=a.name}else{const s=await t.evaluate(a,r);if(Pr(s)||"string"==typeof s&&/^[#.]/.test(s)){if(n=s,e.args.length>1){const n=e.args[1];i="identifier"===n.type?n.name:await t.evaluate(n,r)+""}}else"string"==typeof s&&(i=s)}}e.modifiers?.set&&(a=await t.evaluate(e.modifiers.set,r)+"");const s={};return void 0!==n&&(s.target=n),void 0!==i&&(s.property=i),void 0!==a&&(s.variable=a),s}async execute(e,t){const r=es(e.target,t,"measure"),n=e.property||"width",i=this.getMeasurement(r,n);return e.variable&&t.locals&&t.locals.set(e.variable,i.value),Object.assign(t,{it:i.value}),{result:i.value,wasAsync:!1,element:r,property:n,value:i.value,unit:i.unit,stored:!!e.variable}}getMeasurement(e,t){const r=getComputedStyle(e);if(t.startsWith("*")){const e=r.getPropertyValue(t.substring(1)),n=parseFloat(e);if(!isNaN(n)){const t=e.match(/([a-zA-Z%]+)$/);return{value:n,unit:t?t[1]:""}}return{value:e,unit:""}}const n=t.toLowerCase(),i=e.getBoundingClientRect(),a={width:()=>i.width,height:()=>i.height,top:()=>i.top,left:()=>i.left,right:()=>i.right,bottom:()=>i.bottom,x:()=>e.offsetLeft,y:()=>e.offsetTop,clientwidth:()=>e.clientWidth,"client-width":()=>e.clientWidth,clientheight:()=>e.clientHeight,"client-height":()=>e.clientHeight,offsetwidth:()=>e.offsetWidth,"offset-width":()=>e.offsetWidth,offsetheight:()=>e.offsetHeight,"offset-height":()=>e.offsetHeight,scrollwidth:()=>e.scrollWidth,"scroll-width":()=>e.scrollWidth,scrollheight:()=>e.scrollHeight,"scroll-height":()=>e.scrollHeight,scrolltop:()=>e.scrollTop,"scroll-top":()=>e.scrollTop,scrollleft:()=>e.scrollLeft,"scroll-left":()=>e.scrollLeft,offsettop:()=>e.offsetTop,"offset-top":()=>e.offsetTop,offsetleft:()=>e.offsetLeft,"offset-left":()=>e.offsetLeft};if(a[n])return{value:a[n](),unit:"px"};const s=r.getPropertyValue(t),o=parseFloat(s);if(!isNaN(o)){const e=s.match(/([a-zA-Z%]+)$/);return{value:o,unit:e?e[1]:"px"}}return{value:0,unit:"px"}}};return Va(t,"MeasureCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Measure DOM element dimensions, positions, and properties",syntax:["measure","measure <property>","measure <target> <property>"],examples:["measure","measure width","measure #element height","measure x and set dragX"],sideEffects:["data-mutation"],category:"animation",compatibility:"standard"}),za(t,n),i=t})()),nl=Xa((()=>{let e,t,r=[Ja({name:"settle"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i;const[a]=e.args;if(a){const e=await t.evaluate(a,r);(Pr(e)||"string"==typeof e&&(e.startsWith("#")||e.startsWith(".")||"me"===e||"it"===e||"you"===e))&&(n=e)}e.modifiers?.for&&(i=await t.evaluate(e.modifiers.for,r));const s={};return void 0!==n&&(s.target=n),void 0!==i&&(s.timeout=i),s}async execute(e,t){const{target:r,timeout:n}=e,i=es(r,t,"settle"),a=Cs(n,5e3),s=Date.now(),o=getComputedStyle(i),l=Ss(o.transitionDuration),c=Ss(o.transitionDelay),u=Ss(o.animationDuration),d=Ss(o.animationDelay),m=Ts(l,c),p=Ts(u,d),h=Math.max(m,p);var f,y,g;return{element:i,settled:(await(f=i,y=h,g=a,y>0?new Promise(e=>{const t=e=>{e.target===f&&n({completed:!0,type:"transition"})},r=e=>{e.target===f&&n({completed:!0,type:"animation"})},n=Do(()=>{f.removeEventListener("transitionend",t),f.removeEventListener("animationend",r),clearTimeout(i),clearTimeout(a)},e);f.addEventListener("transitionend",t),f.addEventListener("animationend",r);const i=setTimeout(()=>{n({completed:!0,type:"timeout"})},y+50),a=setTimeout(()=>{n({completed:!1,type:"timeout"})},g)}):Promise.resolve({completed:!0,type:"timeout"}))).completed,timeout:a,duration:Date.now()-s}}};return Va(t,"SettleCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Wait for CSS transitions and animations to complete",syntax:"settle [<target>] [for <timeout>]",examples:["settle","settle #animated-element","settle for 3000"],sideEffects:["timing"],category:"animation",compatibility:"standard"}),za(t,n),i=t})());const il=Xa((()=>{let e,t,r=[Ja({name:"take"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error('take requires property, "from", and source');const{value:n}=await us(e.args[0],t,r),i=n+"",a=e.modifiers?.from?await t.evaluate(e.modifiers.from,r):void 0;let s;if(!s&&e.modifiers?.for&&(s=await t.evaluate(e.modifiers.for,r)),void 0===a&&!i.startsWith("."))throw Error('take requires property, "from", and source');return{property:i,source:a,target:s}}async execute(e,t){const r=e.property.trim();if(r.startsWith(".")){const n=r.substring(1);let i;if(null!=e.source)i=ts(e.source,t);else{const e=t.me?.ownerDocument??("undefined"!=typeof document?document:null);i=e?Array.from(e.querySelectorAll("."+n)):[]}for(const e of i)e.classList.remove(n);const a=ts(e.target,t);if(0===a.length)throw Error("take: no recipient element found");for(const e of a)e.classList.add(n);return{targetElement:a[0],property:e.property,value:n}}const n=es(this.firstOf(e.source),t,"take"),i=es(e.target?this.firstOf(e.target):void 0,t,"take"),a=this.takeProperty(n,e.property);return this.putProperty(i,e.property,a),{targetElement:i,property:e.property,value:a}}firstOf(e){const t=null!==e&&"object"==typeof e&&"number"==typeof e.length&&"function"==typeof e.item;if(Array.isArray(e)||t){const t=e[0];if(void 0===t)throw Error("take: no matching elements");return t}return e}takeProperty(e,t){const r=t.trim(),n=r.toLowerCase();if("class"===n||"classes"===n){const t=Array.from(e.classList);return e.className="",t}if(r.startsWith(".")){const t=r.substring(1);return e.classList.contains(t)?(e.classList.remove(t),t):null}if(r.startsWith("@")){const t=r.substring(1),n=e.getAttribute(t);return e.removeAttribute(t),n}if(r.startsWith("data-")){const t=e.getAttribute(r);return e.removeAttribute(r),t}if("id"===n){const t=e.id;return e.id="",t}if("title"===n){const t=e.title;return e.title="",t}if("value"===n&&"value"in e){const t=e.value;return e.value="",t}const i=r.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());if(r.includes("-")||i in e.style||r in e.style){let t;return i in e.style?(t=e.style[i],e.style[i]=""):r in e.style?(t=e.style[r],e.style[r]=""):(t=e.style.getPropertyValue(r),e.style.removeProperty(r)),t}const a=e.getAttribute(t);return null!==a?(e.removeAttribute(t),a):null}putProperty(e,t,r){if(null==r)return;const n=t.trim(),i=n.toLowerCase();if("class"===i||"classes"===i)return void(Array.isArray(r)?r.forEach(t=>t&&"string"==typeof t&&e.classList.add(t)):"string"==typeof r&&(e.className=r));if(n.startsWith("."))return void(r&&e.classList.add(n.substring(1)));if(n.startsWith("@"))return void e.setAttribute(n.substring(1),r+"");if(n.startsWith("data-"))return void e.setAttribute(n,r+"");if("id"===i)return void(e.id=r+"");if("title"===i)return void(e.title=r+"");if("value"===i&&"value"in e)return void(e.value=r+"");const a=n.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());n.includes("-")||a in e.style||n in e.style?a in e.style?e.style[a]=r+"":n in e.style?e.style[n]=r+"":e.style.setProperty(n,r+""):e.setAttribute(t,r+"")}};return Va(t,"TakeCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Move classes, attributes, and properties from one element to another",syntax:["take <class> [from <source>] [for <recipient>]","take <property> from <source>","take <property> from <source> and put it on <target>"],examples:["take .active from .tab for me","take class from <#source/>","take @data-value from <.source/> and put it on <#target/>"],sideEffects:["dom-mutation","property-transfer"],category:"animation",compatibility:"standard"}),za(t,n),i=t})()),al=Xa((()=>{let e,t,r=[Ja({name:"log"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return e.args&&0!==e.args.length?{values:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}:{values:[]}}async execute(e,t){const r="undefined"!=typeof window?window.console:console;0===e.values.length?r.log():r.log(...e.values)}validate(e){return"object"==typeof e&&null!==e&&Array.isArray(e.values)}};return Va(t,"LogCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Log values to the console",syntax:"log [<values...>]",examples:['log "Hello World"',"log me.value","log x y z",'log "Result:" result'],sideEffects:["console-output"],category:"utility",compatibility:"standard"}),za(t,n),i=t})()),sl=Xa((()=>{let e,t,r=[Ja({name:"tell"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(2>e.args.length)throw Error("tell command requires a target and at least one command");const n=await t.evaluate(e.args[0],r),i=function(e){const t=[];for(let r=1;e.args.length>r;r++)t.push(fo(e,r));return t}(e);return{target:n,commands:i}}async execute(e,t){const{target:r,commands:n}=e,i=ts(r,t);if(0===i.length)throw Error("tell command found no target elements");const a=[];for(const e of i){const r={...t,me:e,you:e};for(const e of n){let t;try{t=await e(r)}catch(e){throw Error("Command execution failed in tell block: "+(e instanceof Error?e.message:"Unknown error"))}if(!xr(t))return t.error;const n=t.value;a.push(n),Object.assign(r,{it:n})}}return{targetElements:i,commandResults:a,executionCount:i.length*n.length}}};return Va(t,"TellCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Execute commands in the context of target elements",syntax:["tell <target> <command> [<command> ...]"],examples:["tell #sidebar hide","tell .buttons add .disabled","tell closest <form/> submit"],sideEffects:["context-switching","command-execution"],category:"utility",compatibility:"standard"}),za(t,n),i=t})()),ol=Xa((()=>{let e,t,r=[Ja({name:"call"})],n=[];var i=t=class{get metadata(){return i.metadata}parseInput(e,t,r){if(!e.args?.length)throw Error("call command requires an expression");return Promise.resolve({expression:e.args[0]})}async execute(e,t){const{expression:r}=e,n=t.locals?.get("__evaluator"),i=n?await n.evaluate(r,t):await Ni(r,t);let a,s,o=!1;return"function"==typeof i?(s="function",a=i(),a instanceof Promise&&(o=!0,a=await a)):i instanceof Promise?(s="promise",o=!0,a=await i):(s="value",a=i),Object.assign(t,{it:a,result:a}),{result:a,wasAsync:o,expressionType:s}}};return Va(t,"CallCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Evaluate an expression and store the result in the it variable",syntax:["call <expression>"],examples:["call myFunction()",'call fetch("/api/data")',"call element.focus()"],sideEffects:["function-execution","context-mutation"],category:"execution",compatibility:"standard"}),za(t,n),i=t})()),ll=Xa((()=>{let e,t,r=[Ja({name:"focus"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await is(e.args,t,r,"focus",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.focus()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>Pr(e))}};return Va(t,"FocusCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Focus an element (calls HTMLElement.focus())",syntax:["focus","focus <target>","focus on <target>"],examples:["focus","focus #search","focus on <input/>"],sideEffects:["focus"],category:"execution",compatibility:"standard"}),za(t,n),i=t})()),cl=Xa((()=>{let e,t,r=[Ja({name:"blur"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await is(e.args,t,r,"blur",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.blur()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>Pr(e))}};return Va(t,"BlurCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Remove focus from an element (calls HTMLElement.blur())",syntax:["blur","blur <target>","blur on <target>"],examples:["blur","blur #search","blur on <input/>"],sideEffects:["focus"],category:"execution",compatibility:"standard"}),za(t,n),i=t})()),ul=Xa((()=>{let e,t,r=[Ja({name:"copy"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const[n]=e.args;if(!n)throw Error("copy command requires a source (text or element)");return{source:await t.evaluate(n,r),format:"text"}}async execute(e,t){const{source:r,format:n="text"}=e,i=this.extractText(r,n,t);if("undefined"!=typeof navigator&&navigator.clipboard)try{return await navigator.clipboard.writeText(i),this.dispatchCopyEvent(t,"copy:success",{text:i,method:"clipboard-api"}),{success:!0,text:i,format:n,method:"clipboard-api"}}catch{}try{if(this.copyUsingExecCommand(i))return this.dispatchCopyEvent(t,"copy:success",{text:i,method:"execCommand"}),{success:!0,text:i,format:n,method:"execCommand"}}catch{}return this.dispatchCopyEvent(t,"copy:error",{text:i,error:"All copy methods failed"}),{success:!1,text:i,format:n,method:"fallback"}}extractText(e,t,r){if("string"==typeof e)return e;if(Pr(e))return"html"===t?e.outerHTML:e.textContent||"";if(e===r.me&&Pr(r.me)){const e=r.me;return"html"===t?e.outerHTML:e.textContent||""}return e+""}copyUsingExecCommand(e){if("undefined"==typeof document)return!1;const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;top:0;left:-9999px",t.setAttribute("readonly",""),document.body.appendChild(t);try{t.select(),t.setSelectionRange(0,e.length);const r=document.execCommand("copy");return document.body.removeChild(t),r}catch{return t.parentNode?.removeChild(t),!1}}dispatchCopyEvent(e,t,r){if(Pr(e.me)){const n=new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!1});e.me.dispatchEvent(n)}}};return Va(t,"CopyCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Copy text or element content to the clipboard",syntax:["copy <source>","copy <source> to clipboard"],examples:['copy "Hello World"',"copy #code-snippet","copy my textContent"],sideEffects:["clipboard-write","custom-events"],category:"utility",compatibility:"lokascript-extension"}),za(t,n),i=t})());function dl(e,t,r,n){return e.evaluate(function(e,t){if(!e)throw Error(t+" is required");return e}(r,n),t)}const ml=Xa((()=>{let e,t,r=[Ja({name:"pick"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers?.variant,i=n?.value;if("first"===i||"last"===i){const n=await t.evaluate(e.args[0],r),a=await dl(t,r,e.modifiers.count,"pick: count");if(!Array.isArray(n))throw Error(`pick ${i}: source must be an array, got ${typeof n}`);if("number"!=typeof a||!Number.isFinite(a))throw Error(`pick ${i}: count must be a number, got ${typeof a}`);return{variant:i,array:n,count:a}}if("random"===i){const n=await t.evaluate(e.args[0],r);if(!Array.isArray(n))throw Error("pick random: source must be an array");let i;if(e.modifiers.count){const n=await t.evaluate(e.modifiers.count,r);if("number"!=typeof n||!Number.isFinite(n))throw Error("pick random: count must be a number, got "+typeof n);i=n}return{variant:"random",array:n,count:i}}if("range"===i){const n=await t.evaluate(e.args[0],r);if(!Array.isArray(n)&&"string"!=typeof n)throw Error("pick items: source must be an array or string");const i=e.modifiers.rangeStart,a="start"===i?.value?"start":await dl(t,r,e.modifiers.rangeStart,"pick: start"),s="start"===a?"start":Number(a);let o;if(e.modifiers.rangeEnd)if("end"===e.modifiers.rangeEnd.value)o="end";else{const n=await t.evaluate(e.modifiers.rangeEnd,r);o=Number(n)}const l=e.modifiers.rangeMode;return{variant:"range",array:n,rangeStart:s,rangeEnd:o,rangeMode:l?.value??"default"}}if("match"===i||"matches"===i){const n=await t.evaluate(e.args[0],r);if("string"!=typeof n)throw Error(`pick ${i}: source must be a string, got ${typeof n}`);const a=await dl(t,r,e.modifiers.regex,"pick: regex"),s="string"==typeof a?a:a+"",o=e.modifiers.flags,l=o?.value;return{variant:i,source:n,regex:s,flags:l}}if(0===e.args.length)throw Error("pick command requires items to choose from");return{variant:"random",items:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r=e.variant??"random";if("first"===r){const r=e.array??[],n=r.slice(0,e.count??0);return Object.assign(t,{it:n}),{selectedItem:n,sourceLength:r.length,sourceType:"array",variant:"first"}}if("last"===r){const r=e.array??[],n=e.count??0,i=n>0?r.slice(-n):[];return Object.assign(t,{it:i}),{selectedItem:i,sourceLength:r.length,sourceType:"array",variant:"last"}}if("range"===r){const r=e.array??[];let n="start"===e.rangeStart?0:e.rangeStart??0,i=void 0===e.rangeEnd?n+1:"end"===e.rangeEnd?r.length:e.rangeEnd;"inclusive"===e.rangeMode?i++:"exclusive"===e.rangeMode&&n++;const a=r.slice(n,i);return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:r.length,sourceType:"array",variant:"range"}}if("match"===r){const r=e.source??"",n=RegExp(e.regex??"",e.flags).exec(r);return Object.assign(t,{it:n}),{selectedItem:n,sourceLength:r.length,sourceType:"string",variant:"match"}}if("matches"===r){const r=e.source??"",n=e.flags??"g",i=RegExp(e.regex??"",n.includes("g")?n:"g"+n),a=Array.from(r.matchAll(i));return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:r.length,sourceType:"string",variant:"matches"}}const n=e.items??e.array??[];if(0===n.length)throw Error("Cannot pick from empty collection");if(void 0===e.count){const r=Math.floor(Math.random()*n.length),i=n[r];return Object.assign(t,{it:i}),{selectedItem:i,selectedIndex:r,sourceLength:n.length,sourceType:e.items?"items":"array",variant:"random"}}const i=n.slice(),a=[];for(let t=0;e.count>t&&i.length>0;t++){const e=Math.floor(Math.random()*i.length);a.push(i.splice(e,1)[0])}return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:n.length,sourceType:e.items?"items":"array",variant:"random"}}};return Va(t,"PickCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Select from a collection (first/last/random/range/regex match)",syntax:["pick first <count> of <expr>","pick last <count> of <expr>","pick random [<count>] of <expr>","pick items <i> to <j> of <expr>","pick match of <regex> from <expr>","pick from <array>","pick <item1>, <item2>, ..."],examples:["pick first 3 of items","pick last 2 of items","pick random 2 of items","pick items 1 to 3 of items",'pick match of "[0-9]+" from text',"pick from colors",'pick "red", "green", "blue"'],sideEffects:["random-selection"],category:"utility",compatibility:"standard"}),za(t,n),i=t})());const pl=Xa((()=>{let e,t,r=[Ja({name:"beep"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return 0===e.args.length?{expressions:[]}:{expressions:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r=e.expressions||[];if(0===r.length)return this.debugContext(t),{expressionCount:0,debugged:!0,outputs:[]};const n=[];console.group("\ud83d\udd14 beep! Debug Output");for(const e of r){const t=this.debugExpression(e);n.push(t),console.log("Value:",e),console.log("Type:",t.type),console.log("Representation:",t.representation),console.log("---")}return console.groupEnd(),{expressionCount:r.length,debugged:!0,outputs:n}}debugContext(e){console.group("\ud83d\udd14 beep! Context Debug"),console.log("me:",e.me),console.log("it:",e.it),console.log("you:",e.you),console.log("locals:",e.locals),console.log("globals:",e.globals),console.log("variables:",e.variables),console.groupEnd()}debugExpression(e){return{value:e,type:this.getType(e),representation:this.getRepresentation(e)}}getType(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":Pr(e)?"HTMLElement":e instanceof Element?"Element":e instanceof Node?"Node":e instanceof Error?"Error":e instanceof Date?"Date":e instanceof RegExp?"RegExp":typeof e}getRepresentation(e){if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e))return`Array(${e.length}) [${e.slice(0,3).map(e=>this.getRepresentation(e)).join(", ")}${e.length>3?"...":""}]`;if(Pr(e)){const t=e;return`<${t.tagName.toLowerCase()}${t.id?"#"+t.id:""}${t.className?"."+t.className.split(" ").join("."):""}/>`}if(e instanceof Error)return"Error: "+e.message;if("string"==typeof e)return e.length>50?`"${e.substring(0,47)}..."`:`"${e}"`;if("object"==typeof e)try{const t=Object.keys(e);return`Object {${t.slice(0,3).join(", ")}${t.length>3?"...":""}}`}catch{return"[Object]"}return e+""}};return Va(t,"BeepCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Debug output for expressions with type information",syntax:["beep!","beep! <expression>","beep! <expression>, <expression>, ..."],examples:["beep!","beep! myValue","beep! me.id, me.className"],sideEffects:["console-output","debugging"],category:"utility",compatibility:"lokascript-extension"}),za(t,n),i=t})()),hl=Xa((()=>{let e,t,r=[Ja({name:"breakpoint"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{}}async execute(e,t){}validate(e){return"object"==typeof e&&null!==e}};return Va(t,"BreakpointCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Drop into the debugger (emits a debugger; statement)",syntax:["breakpoint"],examples:["breakpoint","on click breakpoint"],sideEffects:["debugging"],category:"utility",compatibility:"standard"}),za(t,n),i=t})()),fl=Xa((()=>{let e,t,r=[Ja({name:"js"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i;if(0===e.args.length)throw Error("js command requires JavaScript code");const a=e.args[0],s=e.args[1];if(a&&"literal"===a.type&&"string"==typeof a.value)n=a.value;else{if(!a||void 0===a.value)throw Error("js command requires JavaScript code");n=a.value+""}s&&"arrayLiteral"===s.type&&Array.isArray(s.elements)&&(i=s.elements.map(e=>"string"==typeof e.value?e.value:e.value+"").filter(e=>e&&e.length>0));const o={code:n};return i&&i.length>0&&(o.parameters=i),o}async execute(e,t){const{code:r,parameters:n=[]}=e;if(!r.trim())return{result:void 0,executed:!1,codeLength:r.length,parameters:n,preserveArrayResult:!0};try{const e=this.createExecutionContext(t,n),i=Function(...Object.keys(e),r),a=await i(...Object.values(e));return void 0!==a&&Object.assign(t,{it:a}),{result:a,executed:!0,codeLength:r.length,parameters:n,preserveArrayResult:!0}}catch(e){throw Error("JavaScript execution failed: "+(e instanceof Error?e.message:"Unknown error"))}}createExecutionContext(e,t){return{me:e.me,it:e.it,you:e.you,locals:e.locals,globals:e.globals,variables:e.variables,console:console,document:"undefined"!=typeof document?document:void 0,window:"undefined"!=typeof window?window:void 0,...t.reduce((t,r)=>{let n=e.locals?.get(r);return void 0===n&&(n=e.variables?.get(r)),void 0===n&&(n=e[r]),t[r]=n,t},{})}}};return Va(t,"JsCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Execute inline JavaScript code with access to hyperscript context",syntax:["js <code> end","js(param1, param2) <code> end"],examples:['js console.log("Hello") end',"js(x, y) return x + y end",'js me.style.color = "red" end'],sideEffects:["code-execution","data-mutation"],category:"advanced",compatibility:"standard"}),za(t,n),i=t})()),yl=Xa((()=>{let e,t,r=[Ja({name:"go"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers;if(n.back)return{kind:"back"};if(n.forward)return{kind:"forward"};const i=void 0!==n.in;if(void 0!==n.url){const e=await t.evaluate(n.url,r)+"";if(!this.isValidUrl(e))throw Error(`Invalid URL: "${e}"`);return{kind:"url",url:e,newWindow:i}}const a=n.of??e.args[0];if(!a&&!n.position)throw Error("Go command requires arguments");const s=a?await t.evaluate(a,r):"body";if("string"==typeof s&&this.isBareUrl(s)&&!n.of&&!n.position)return{kind:"url",url:s,newWindow:i};const o=this.resolveScrollTarget(s,r);if(!o)throw Error("Target element not found: "+s);const l=n.position?await t.evaluate(n.position,r)+"":void 0,c={vertical:"top",horizontal:"nearest"};"top"===l||"middle"===l||"bottom"===l?c.vertical=l:"left"!==l&&"center"!==l&&"right"!==l||(c.horizontal=l,c.vertical="nearest");const u="instant"===(n.behavior?await t.evaluate(n.behavior,r):void 0)?"instant":"smooth";let d=0;if(void 0!==n.by){const e=Number((await t.evaluate(n.by,r)+"").replace(/px$/,""));Number.isNaN(e)||(d=e)}return{kind:"scroll",target:o,position:c,offset:d,behavior:u}}async execute(e,t){if("back"===e.kind||"forward"===e.kind)return await this.goHistory(e.kind),{result:e.kind,type:"back"};if("url"===e.kind)return this.navigate(e.url,e.newWindow),{result:e.url,type:"url"};const{target:r,position:n,offset:i,behavior:a}=e;if("undefined"!=typeof window){const e=this.mapVerticalPosition(n.vertical),t=this.mapHorizontalPosition(n.horizontal);if(r.scrollIntoView?.({behavior:a,block:e,inline:t}),0!==i){const{x:e,y:t}=this.calculateScrollPosition(r,n,i);window.scrollTo?.({left:e,top:t,behavior:a})}}return{result:r,type:"scroll"}}isBareUrl(e){return!!e.startsWith("/")||/^[a-z][a-z0-9+.-]*:/i.test(e)}navigate(e,t){if(t){if("undefined"!=typeof window&&window.open){const t=window.open(e,"_blank");t?.focus&&t.focus()}}else e.startsWith("#")?"undefined"!=typeof window&&(window.location.hash=e):"undefined"!=typeof window&&(window.location.assign?.(e)??(window.location.href=e))}async goHistory(e){if("undefined"==typeof window||!window.history)throw Error("Browser history API not available");"back"===e?window.history.back():window.history.forward()}isValidUrl(e){try{return e.startsWith("/")||e.startsWith("#")||new URL(e),!0}catch{return!1}}mapVerticalPosition(e){return{top:"start",middle:"center",bottom:"end",nearest:"nearest"}[e]||"start"}mapHorizontalPosition(e){return{left:"start",center:"center",right:"end",nearest:"nearest"}[e]||"nearest"}calculateScrollPosition(e,t,r){if("undefined"==typeof window||!e.getBoundingClientRect)return{x:0,y:0};const n=e.getBoundingClientRect(),i=window.pageXOffset||document.documentElement?.scrollLeft||0,a=window.pageYOffset||document.documentElement?.scrollTop||0,s=window.innerWidth||800,o=window.innerHeight||600;let l=i,c=a;switch(t.horizontal){case"left":l=n.left+i;break;case"center":l=n.left+i+n.width/2-s/2;break;case"right":l=n.right+i-s}switch(t.vertical){case"top":c=n.top+a+r;break;case"middle":c=n.top+a+n.height/2-o/2+r;break;case"bottom":c=n.bottom+a-o+r}return{x:Math.max(0,l),y:Math.max(0,c)}}resolveScrollTarget(e,t){if("object"==typeof e&&e&&e.nodeType)return e;const r="string"==typeof e?e:e+"";if("body"===r&&"undefined"!=typeof document)return document.body;if("html"===r&&"undefined"!=typeof document)return document.documentElement;if("me"===r&&Pr(t.me))return t.me;if("it"===r&&Pr(t.it))return t.it;if("you"===r&&Pr(t.you))return t.you;const n=Mr(r,t);if(Pr(n))return n;if("undefined"!=typeof document)try{const e=document.querySelector(r);if(e)return e}catch{try{const e=document.getElementsByTagName(r);if(e.length>0)return e[0]}catch{}}return null}};return Va(t,"GoCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=Ga({description:"Navigation functionality including URL navigation, element scrolling, and browser history",syntax:["go back","go to url <url> [in new window]","go to [position] [of] <element>"],examples:["go back",'go to url "https://example.com"','go to url "https://example.com" in new window',"go to top of #header","go to bottom of #footer smoothly"],sideEffects:["navigation","scrolling"],category:"navigation",compatibility:"standard"}),za(t,n),i=t})());class gl{constructor(){this.name="install"}get metadata(){return gl.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("install command requires a behavior name");const n=e.args[0];let i,a;if(i="identifier"===n?.type&&"string"==typeof n.name?n.name:await t.evaluate(n,r)+"",!/^[A-Z][a-zA-Z0-9_]*$/.test(i))throw Error(`Behavior name must be PascalCase (start with uppercase): "${i}"`);const s=e.args[1];if(s){const e=await t.evaluate(s,r);if(e&&"object"==typeof e&&!Array.isArray(e)){a=e;for(const e of Object.keys(a))if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e))throw Error(`Invalid parameter name: "${e}"`)}}let o;return e.modifiers?.on&&(o=await t.evaluate(e.modifiers.on,r)),{behaviorName:i,parameters:a,target:o}}async execute(e,t){const{behaviorName:r,parameters:n={},target:i}=e;try{const e=this.resolveTarget(i,t);if(0===e.length)throw Error("No target elements found to install behavior on");if(!this.behaviorExists(r,t))throw Error(`Behavior "${r}" is not defined. Define it using the 'behavior' keyword before installing.`);const a=[];for(const i of e){const e=await this.installBehavior(r,i,n,t);a.push(e)}return{success:!0,behaviorName:r,installedCount:a.length,instances:a}}catch(e){throw Error(`Failed to install behavior "${r}": ${e instanceof Error?e.message:e+""}`)}}resolveTarget(e,t){if(null==e){const e=t.me||t.locals.get("me");if(Pr(e))return[e];throw Error('No target specified and "me" is not available in context')}if(Pr(e))return[e];if(Array.isArray(e)){const t=e.filter(e=>Pr(e));if(0===t.length)throw Error("Target array contains no valid HTMLElements");return t}if("string"==typeof e){if("me"===e){const e=t.me||t.locals.get("me");if(Pr(e))return[e];throw Error('"me" is not available in context')}if("undefined"!=typeof document){const t=document.querySelectorAll(e),r=Array.from(t).filter(e=>Pr(e));if(0===r.length)throw Error(`No elements found matching selector: "${e}"`);return r}throw Error("document is not available (not in browser environment)")}if(e&&"object"==typeof e&&"length"in e){const t=Array.from(e).filter(e=>Pr(e));if(0===t.length)throw Error("Target collection contains no valid HTMLElements");return t}if("object"==typeof e&&"element"in e){const t=e.element;if(Pr(t))return[t]}throw Error("Cannot resolve target to HTMLElement(s): "+e)}behaviorExists(e,t){const r=t.locals.get("_behaviors");if(r&&"object"==typeof r){const t=r;if(t.has(e))return!0;if(t.resolve&&t.resolve(e))return!0}if("undefined"!=typeof globalThis){const t=globalThis._hyperscript;if(t?.behaviors){if(t.behaviors.has(e))return!0;if(t.behaviors.resolve&&t.behaviors.resolve(e))return!0}}return!1}async installBehavior(e,t,r,n){const i=n.locals.get("_behaviors");if(i&&"object"==typeof i){const n=i;if(n.install&&"function"==typeof n.install)return await n.install(e,t,r)}if("undefined"!=typeof globalThis){const n=globalThis._hyperscript;if(n?.behaviors?.install)return await n.behaviors.install(e,t,r)}throw Error("Behavior system not available in context")}}function vl(e){return Pr(e)?e:e+""}gl.metadata=Ga({description:"Install a behavior on an element with optional parameters",syntax:["install <BehaviorName>","install <BehaviorName> on <element>","install <BehaviorName>(param: value)","install <BehaviorName>(param: value) on <element>"],examples:["install Removable","install Draggable on #box",'install Tooltip(text: "Help", position: "top")','install Sortable(axis: "y") on .list',"install MyBehavior(foo: 42) on the first <div/>"],category:"behaviors",compatibility:"standard",sideEffects:["behavior-installation","element-modification"]});class bl{constructor(e){this.position=e}concat(e,t){const r=null==e?"":e+"",n=t+"";return"append"===this.position?r+n:n+r}pushInto(e,t){return"append"===this.position?e.push(t):e.unshift(t),e}async parseInput(e,t,r){if(!e.args?.length)throw Error(this.name+" requires content");const n=await t.evaluate(e.args[0],r),i=e.modifiers?.to??e.target;if(!i)return{kind:"implicit",content:n};const a=await No(i,t,r,{scopeElements:async()=>Pr(r.me)?[r.me]:[],selectorSource:!0,bareReference:!0});if(a)return function(e,t){switch(e.kind){case"selector":return{kind:"selector",selector:e.selector,content:t};case"attribute":return{kind:"attribute",elements:e.elements,name:e.name,content:t};case"property":return{kind:"property",property:e.target,content:t};case"variable":return{kind:"variable",name:e.name,scope:e.scope,content:t};default:throw Error(`unrequested write-target rung '${e.kind}'`)}}(a,n);const s=await t.evaluate(i,r),o=function(e){if(Pr(e))return[e];if(Array.isArray(e)&&e.length>0&&e.every(e=>Pr(e)))return e;if(e&&"object"==typeof e&&"number"==typeof e.length&&"function"==typeof e.item){const t=Array.from(e).filter(e=>Pr(e));return t.length?t:null}return null}(s);return o?{kind:"elements",elements:o,content:n}:{kind:"value",target:s,content:n}}async execute(e,t){switch(e.kind){case"selector":return this.done(t,this.insertIntoSelector(e.selector,e.content));case"elements":return this.done(t,this.insertIntoEach(e.elements,e.content));case"attribute":{for(const t of e.elements)t.setAttribute(e.name,this.concat(t.getAttribute(e.name),e.content));const r=e.elements[0]?.getAttribute(e.name)??this.concat(null,e.content);return Object.assign(t,{it:r}),{target:"@"+e.name,value:r,targetType:"attribute"}}case"property":{const r=Bs(e.property),n=this.combineValue(r,e.content);return Pr(r)||Fs(e.property,n),Object.assign(t,{it:n}),{target:e.property.element,value:n,targetType:"property"}}case"variable":return this.executeVariable(e,t);case"value":{const r=this.combineValue(e.target,e.content,!0);return Object.assign(t,{it:r}),{target:e.target,value:r,targetType:this.targetTypeOf(e.target)}}case"implicit":return this.execImplicit(t,e.content)}}insertIntoSelector(e,t){return this.insertIntoEach(Vr(e),t)}insertIntoEach(e,t){const r=vl(t);for(const t of e)gs(t,r,this.position);return e}combineValue(e,t,r=!1){if(Array.isArray(e))return this.pushInto(e,t);if(e instanceof Set)return e.add(t),e;if(Pr(e))return gs(e,vl(t),this.position),e;if(r&&null!=e&&"string"!=typeof e&&"number"!=typeof e)throw Error(`Unable to ${this.name} a value!`);return this.concat(e,t)}targetTypeOf(e){return Array.isArray(e)?"array":e instanceof Set?"set":Pr(e)?"element":"result"}executeVariable(e,t){if("me"===e.name||"you"===e.name){const r="me"===e.name?t.me:t.you;if(Pr(r))return gs(r,vl(e.content),this.position),Object.assign(t,{it:r}),{target:r,value:r,targetType:"element"}}if("it"===e.name||"result"===e.name)return this.execImplicit(t,e.content);const r=Mr(e.name,t,e.scope),n=this.combineValue(r,e.content);return Array.isArray(r)||r instanceof Set||Pr(r)||$r(e.name,n,t,e.scope),Object.assign(t,{it:n}),{target:e.name,value:n,targetType:this.targetTypeOf(r)}}execImplicit(e,t){const r=e.it??e.result,n=this.combineValue(r,t);return Object.assign(e,{it:n,result:n}),{target:"result",value:n,targetType:this.targetTypeOf(r)}}done(e,t){const r=1===t.length?t[0]:t;return Object.assign(e,{it:r}),{target:r,value:r,targetType:"element"}}}const wl=Xa((()=>{let e,t,r=[Ja({name:"append"})],n=[],i=bl;var a=t=class extends i{get metadata(){return a.metadata}constructor(){super("append")}};return Va(t,"AppendCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Add content to the end of a string, array, Set, or HTML element",syntax:["append <content>","append <content> to <target>"],examples:['append "Hello"','append "World" to greeting',"append item to myArray",'append "<p>New</p>" to #content','append " (edited)" to #title\'s textContent'],sideEffects:["data-mutation","dom-mutation"],category:"content",compatibility:"standard"}),za(t,n),a=t})()),kl=Xa((()=>{let e,t,r=[Ja({name:"prepend"})],n=[],i=bl;var a=t=class extends i{get metadata(){return a.metadata}constructor(){super("prepend")}};return Va(t,"PrependCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;_a(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=Ga({description:"Add content to the start of a string, array, Set, or HTML element",syntax:["prepend <content>","prepend <content> to <target>"],examples:['prepend "Hello"','prepend "World" to greeting',"prepend item to myArray",'prepend "<p>First</p>" to #content'],sideEffects:["data-mutation","dom-mutation"],category:"content",compatibility:"lokascript-extension"}),za(t,n),a=t})());class El{constructor(){this.name="render"}get metadata(){return El.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("render command requires a template");const n=await t.evaluate(e.args[0],r);let i;if(!i&&e.modifiers?.with){const n=await t.evaluate(e.modifiers.with,r);n&&"object"==typeof n&&(i=n)}return{template:n,variables:i}}async execute(e,t){const{template:r,variables:n={}}=e,i=this.extractTemplateContent(r,t),a=this.createTemplateContext(t,n),s=[],o=await this.processTemplate(i,a,s),l=this.createDOMElement(o);return Object.assign(t,{it:l}),{element:l,rendered:o,directivesProcessed:s}}extractTemplateContent(e,t){if(e instanceof HTMLTemplateElement)return e.innerHTML;if("string"==typeof e){let r=e;if(!r.includes("<")&&!r.includes("$")){const e=this.resolveVariable(r,t);if(e instanceof HTMLTemplateElement)return e.innerHTML;"string"==typeof e&&(r=e)}const n=r.match(/<template[^>]*>([\s\S]*?)<\/template>/i);return n?n[1]:r}if(e&&"object"==typeof e&&"innerHTML"in e)return e.innerHTML;throw Error("Invalid template format")}createTemplateContext(e,t){return{...e,locals:new Map([...Array.from(e.locals.entries()),...Object.entries(t)])}}async processTemplate(e,t,r){const n=e.split("\n"),i=[];let a=0;for(;n.length>a;){const e=n[a].trim();if(e.startsWith("@repeat ")){const{nextIndex:e,rendered:s}=await this.processRepeatDirective(n,a,t);i.push(s),a=e,r.push("@repeat")}else if(e.startsWith("@if ")){const{nextIndex:e,rendered:s}=await this.processIfDirective(n,a,t,r);i.push(s),a=e,r.push("@if")}else if("@else"===e||"@end"===e)a++;else{const r=this.processVariableInterpolation(e,t);i.push(r),a++}}return i.join("\n")}async processRepeatDirective(e,t,r){const n=e[t].trim(),i=n.match(/^@repeat\s+in\s+(.+)$/);if(!i)throw Error("Invalid @repeat syntax: "+n);const a=this.evaluateExpression(i[1],r),{endIndex:s,blockContent:o}=this.extractDirectiveBlock(e,t+1),l=[];if(Array.isArray(a))for(const e of a){const t={...r,locals:new Map([...r.locals.entries(),["it",e]])},n=await this.processTemplate(o.join("\n"),t,[]);l.push(n)}return{nextIndex:s+1,rendered:l.join("\n")}}async processIfDirective(e,t,r,n){const i=e[t].trim(),a=i.match(/^@if\s+(.+)$/);if(!a)throw Error("Invalid @if syntax: "+i);const s=!!this.evaluateExpression(a[1],r),{endIndex:o,blockContent:l,elseContent:c}=this.extractIfElseBlock(e,t+1);let u="";return s?u=await this.processTemplate(l.join("\n"),r,[]):c.length>0&&(u=await this.processTemplate(c.join("\n"),r,[]),n.push("@else")),{nextIndex:o+1,rendered:u}}extractDirectiveBlock(e,t){const r=[];let n=1,i=t;for(;e.length>i&&n>0;){const t=e[i].trim();t.startsWith("@repeat ")||t.startsWith("@if ")?(n++,r.push(e[i])):"@end"===t?(n--,n>0&&r.push(e[i])):r.push(e[i]),i++}return{endIndex:i-1,blockContent:r}}extractIfElseBlock(e,t){const r=[],n=[];let i=1,a=t,s=!1;for(;e.length>a&&i>0;){const t=e[a].trim();if(t.startsWith("@if "))i++;else{if("@else"===t&&1===i){s=!0,a++;continue}if("@end"===t&&(i--,0===i))break}s?n.push(e[a]):r.push(e[a]),a++}return{endIndex:a,blockContent:r,elseContent:n}}processVariableInterpolation(e,t){return e.replace(/\$\{([^}]+)\}/g,(e,r)=>{try{const e=r.trim();if(e.startsWith("unescaped ")){const r=e.substring(10).trim();return(this.evaluateExpression(r,t)||"")+""}const n=this.evaluateExpression(e,t);return this.escapeHtml((n||"")+"")}catch(t){return ue(`render: template interpolation error for ${r}:`,t),e}})}evaluateExpression(e,t){if("true"===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("undefined"===e)return;const r=Number(e);if(!isNaN(r)&&""!==e.trim())return r;if(e.startsWith("[")&&e.endsWith("]"))try{return JSON.parse(e)}catch{}if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1);if(e.includes(".")){const r=e.split(".");let n=this.resolveVariable(r[0],t);for(let e=1;r.length>e&&null!=n;e++){if("object"!=typeof n||null===n)return;n=n[r[e]]}return n}return this.resolveVariable(e,t)}resolveVariable(e,t){return t.locals?.has(e)?t.locals.get(e):"me"===e?t.me:"it"===e?t.it??t.result:"you"===e?t.you:"result"===e?t.result??t.it:t.globals?.has(e)?t.globals.get(e):void 0}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}createDOMElement(e){if("undefined"==typeof document)return null;const t=document.createElement("div");return t.innerHTML=e,1===t.children.length?t.firstElementChild:t}}El.metadata=Ga({description:"Render templates with @if, @else, and @repeat directives",syntax:["render <template>","render <template> with <variables>","render <template> with (key: value, ...)"],examples:["render myTemplate",'render myTemplate with (name: "Alice")','render "<template>Hello ${name}!</template>" with (name: "World")',"render template with (items: data)"],category:"templates",compatibility:"standard",sideEffects:["dom-creation","template-execution"]});class xl{constructor(){this.name="pseudo-command"}get metadata(){return xl.metadata}async parseInput(e,t,r){if(1===e.args.length&&"objectLiteral"===e.args[0].type){const n=e.args[0].properties||[];let i,a,s="",o=[];for(const e of n){const n=e.value;switch(e.key?.name||e.key?.value){case"methodName":s=n?.value||await t.evaluate(n,r)+"";break;case"methodArgs":"arrayLiteral"===n?.type&&n.elements?o=await Promise.all(n.elements.map(e=>t.evaluate(e,r))):"literal"===n?.type&&Array.isArray(n.value)&&(o=await Promise.all(n.value.map(e=>t.evaluate(e,r))));break;case"preposition":const e=n?.value;e&&"null"!==e&&(i=e);break;case"target":case"targetExpression":a=await t.evaluate(n,r)}}if(!s)throw Error("pseudo-command requires method name");if(null==a)throw Error("pseudo-command requires a target expression");return{methodName:s,methodArgs:o,preposition:i,targetExpression:a}}if(2>e.args.length)throw Error("pseudo-command requires method name and target expression");const n=await t.evaluate(e.args[0],r)+"",i=Array.isArray(e.args[1])?await Promise.all(e.args[1].map(e=>t.evaluate(e,r))):[];let a,s;const o=["from","on","with","into","at","to"];for(const n of o)if(e.modifiers?.[n]){s=n,a=await t.evaluate(e.modifiers[n],r);break}if(!a&&e.args[2]&&(a=await t.evaluate(e.args[2],r)),!a)throw Error("pseudo-command requires a target expression");return{methodName:n,methodArgs:i,preposition:s,targetExpression:a}}async execute(e,t){const{methodName:r,methodArgs:n,targetExpression:i}=e;try{const e=await this.resolveTarget(i,t);if(null==e)throw Error("Target expression resolved to "+e);const a=this.resolveMethod(e,r);if(!a)throw Error(`Method "${r}" not found on target object`);if("function"!=typeof a)throw Error(`"${r}" is not a function (it's a ${typeof a})`);const s=await this.executeMethod(a,e,n);return t.locals.set("result",s),Object.assign(t,{it:s}),{result:s,methodName:r,target:e}}catch(e){throw Error("Pseudo-command failed: "+(e instanceof Error?e.message:e+""))}}async resolveTarget(e,t){return"object"==typeof e&&null!==e?e:"string"==typeof e?t.locals.has(e)?t.locals.get(e):t.variables?.has(e)?t.variables.get(e):t.globals.has(e)?t.globals.get(e):"me"===e&&t.me?t.me:"it"===e&&t.it?t.it:"document"===e?"undefined"!=typeof document?document:null:"window"===e?"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:null:this.resolvePropertyPath(e,t):e}resolvePropertyPath(e,t){const r=e.split(".");let n="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:null;t.locals.has(r[0])?(n=t.locals.get(r[0]),r.shift()):t.variables?.has(r[0])?(n=t.variables.get(r[0]),r.shift()):t.globals.has(r[0])&&(n=t.globals.get(r[0]),r.shift());for(const e of r){if(null==n)return null;n=n[e]}return n}resolveMethod(e,t){if(!e)return null;if(t in e)return e[t];const r=t.split(".");let n=e;for(let e=0;r.length>e;e++){const t=r[e];if(null==n)return null;if(!(t in n))return null;if(n=n[t],e===r.length-1&&"function"==typeof n)return n}return null}async executeMethod(e,t,r){try{const n=e.apply(t,r);return n&&"object"==typeof n&&"then"in n?await n:n}catch(e){throw Error("Method execution failed: "+(e instanceof Error?e.message:e+""))}}}xl.metadata=Ga({description:"Treat a method on an object as a top-level command",syntax:["<method>(<args>) [(to|on|with|into|from|at)] <expression>"],examples:['getElementById("d1") from the document',"reload() the location of the window",'setAttribute("foo", "bar") on me',"foo() on me"],category:"execution",compatibility:"standard",sideEffects:["method-execution"]});var Cl=new Set(["to","from","into","with","at","in","of","as","by","before","after","without"]),Al=new Set(["add","append","async","beep","blur","break","breakpoint","call","clear","close","continue","decrement","default","empty","exit","fetch","focus","for","get","go","halt","hide","if","increment","install","js","log","make","measure","morph","open","pick","process","push","put","remove","render","repeat","replace","reset","return","select","send","set","settle","show","swap","take","tell","throw","toggle","transition","trigger","unless","wait","live","bind","eventsource","socket","worker","intercept"]),Sl=new Set(["then","else","end","and","or","not","if","unless","for","while","until","forever","times","each","index","in","to","from","into","with","without","of","at","by","as","matches","contains","is","exists","on","when","every","event","init","def","behavior","global","local","the","a","an","first","last","start","before","after"]),Tl=new Set(["click","dblclick","mousedown","mouseup","mouseenter","mouseleave","mouseover","mouseout","mousemove","keydown","keyup","keypress","focus","blur","change","input","submit","reset","load","unload","resize","scroll","touchstart","touchend","touchmove","touchcancel","dragstart","dragend","dragenter","dragleave","dragover","drop","contextmenu","wheel","pointerdown","pointerup","pointermove","ms","s"]),Ol=new Set(["and","or","not","is","exists","matches","contains","then","else"]),Ll=new Set(["true","false","null","undefined","it","me","my","result"]),jl=new Set(["first","last","next","previous","prev","at","random","closest","parent","children","within","no","empty","some","starts with","ends with"]);function ql(e,t,r={}){const{allowEnglishFallback:n=!0}=r,i=new Map,a=new Map,s=new Map,o=new Map,l=new Map,c=new Map,u=new Map,d=new Map,m=new Map,p=new Map;function h(e,t,r=!1){for(const[n,i]of Object.entries(e)){const e=i.toLowerCase();t.set(e,n.toLowerCase()),!r&&m.has(e)||m.set(e,n.toLowerCase()),p.set(n.toLowerCase(),i.toLowerCase())}}e.commands&&h(e.commands,i,!0),e.logical&&h(e.logical,o,!0),e.events&&h(e.events,s),e.values&&h(e.values,c),e.temporal&&h(e.temporal,l),e.modifiers&&h(e.modifiers,a),e.attributes&&h(e.attributes,u),e.expressions&&h(e.expressions,d);const f=new Set(i.keys()),y=new Set(m.keys());if(n){for(const e of Al)f.add(e);for(const e of Sl)y.add(e);for(const e of Tl)y.add(e)}return{locale:t,resolve(e){const t=e.toLowerCase(),r=m.get(t);if(void 0!==r)return r;if(n){if(Al.has(t)||Sl.has(t))return t;if(Tl.has(t))return t}},isCommand(e){const t=e.toLowerCase();return!!i.has(t)||!(!n||!Al.has(t))},isKeyword(e){const t=e.toLowerCase();return!!(a.has(t)||o.has(t)||l.has(t)||c.has(t))||!(!n||!Sl.has(t))},isEvent(e){const t=e.toLowerCase();return!!s.has(t)||!!Tl.has(t)},isModifier(e){const t=e.toLowerCase();return a.has(t)||n&&Cl.has(t)},isLogical(e){const t=e.toLowerCase();return o.has(t)||n&&Ol.has(t)},isValue(e){const t=e.toLowerCase();return c.has(t)||n&&Ll.has(t)},isExpression(e){const t=e.toLowerCase();return d.has(t)||n&&jl.has(t)},getCommands:()=>Array.from(f),getKeywords:()=>Array.from(y),toLocale:e=>p.get(e.toLowerCase())}}function Pl(){return{locale:"en",resolve(e){const t=e.toLowerCase();if(Al.has(t)||Sl.has(t)||Tl.has(t))return t},isCommand:e=>Al.has(e.toLowerCase()),isKeyword:e=>Sl.has(e.toLowerCase()),isEvent:e=>Tl.has(e.toLowerCase()),isModifier:e=>Cl.has(e.toLowerCase()),isLogical:e=>Ol.has(e.toLowerCase()),isValue:e=>Ll.has(e.toLowerCase()),isExpression:e=>jl.has(e.toLowerCase()),getCommands:()=>Array.from(Al),getKeywords:()=>Array.from(Sl),toLocale:e=>e.toLowerCase()}}var Nl={commands:{on:"en",tell:"decir",trigger:"disparar",send:"enviar",take:"tomar",put:"poner",set:"establecer",get:"obtener",add:"agregar",remove:"quitar",toggle:"alternar",hide:"ocultar",show:"mostrar",if:"si",unless:"menos",repeat:"repetir",for:"para",while:"mientras",until:"hasta",continue:"continuar",break:"romper",halt:"detener",wait:"esperar",fetch:"buscar",call:"llamar",return:"retornar",make:"hacer",log:"registrar",throw:"lanzar",catch:"atrapar",measure:"medir",transition:"transici\u00f3n",increment:"incrementar",decrement:"decrementar",default:"predeterminar",go:"ir",pushUrl:"pushUrl",replaceUrl:"reemplazarUrl",copy:"copiar",pick:"escoger",beep:"pitido",js:"js",async:"as\u00edncrono",render:"renderizar",swap:"intercambiar",morph:"transformar",settle:"estabilizar",append:"anexar",exit:"salir",install:"instalar",breakpoint:"punto-interrupci\u00f3n",clear:"limpiar",close:"cerrar",open:"abrir",select:"seleccionar",clone:"clonar",prepend:"anteponer"},modifiers:{to:"a",from:"de",into:"en",with:"con",at:"en",in:"en",of:"de",as:"como",by:"por",before:"antes",after:"despu\u00e9s",over:"sobre",under:"bajo",between:"entre",through:"trav\u00e9s",without:"sin"},events:{click:"clic",dblclick:"dobleclic",mouseenter:"rat\u00f3nentrar",mouseleave:"rat\u00f3nsalir",mousedown:"rat\u00f3n abajo",mouseup:"rat\u00f3n arriba",mouseover:"rat\u00f3n encima",mouseout:"rat\u00f3n fuera",mousemove:"rat\u00f3nmover",keydown:"tecla abajo",keyup:"tecla arriba",keypress:"teclapresar",focus:"enfocar",blur:"desenfocar",change:"cambiar",input:"entrada",submit:"env\u00edo",reset:"reiniciar",load:"cargar",unload:"descargar",resize:"redimensionar",scroll:"desplazar",touchstart:"toqueempezar",touchend:"toqueterminar",touchmove:"toquemover",touchcancel:"toquecancelar"},logical:{when:"cuando",where:"donde",and:"y",or:"o",not:"no",is:"es",exists:"existe",matches:"coincide",contains:"contiene",includes:"incluye",equals:"iguala",has:"tiene",have:"tengo",then:"entonces",else:"sino",otherwise:"delocontrario",end:"fin",live:"vivo",changes:"cambia"},temporal:{seconds:"segundos",second:"segundo",milliseconds:"milisegundos",millisecond:"milisegundo",minutes:"minutos",minute:"minuto",hours:"horas",hour:"hora",ms:"ms",s:"s",min:"min",h:"h"},values:{true:"verdadero",false:"falso",null:"nulo",undefined:"indefinido",it:"ello",its:"su",me:"yo",my:"mi",you:"tu",your:"tu",yourself:"ti mismo",myself:"yo mismo",element:"elemento",target:"objetivo",detail:"detalle",event:"evento",window:"ventana",document:"documento",body:"cuerpo",result:"resultado",value:"valor"},attributes:{class:"clase",classes:"clases",style:"estilo",styles:"estilos",attribute:"atributo",attributes:"atributos",property:"propiedad",properties:"propiedades"},expressions:{characters:"caracteres",inclusive:"inclusivo",exclusive:"exclusivo",first:"primero",last:"\u00faltimo",next:"siguiente",previous:"anterior",prev:"ant",at:"en",random:"aleatorio",closest:"cercano",parent:"padre",children:"hijos",within:"dentro",no:"ning\u00fan",empty:"vac\u00edo",some:"alg\u00fan","starts with":"empieza con","ends with":"termina con","ignoring case":"ignorando may\u00fasculas","sorted by":"ordenado por","mapped to":"transformado a","split by":"dividido por","joined by":"unido por"}},Rl=ql(Nl,"es",{allowEnglishFallback:!0}),Il={commands:{on:"\u3067",tell:"\u4f1d\u3048\u308b",trigger:"\u5f15\u304d\u91d1",send:"\u9001\u308b",take:"\u53d6\u308b",put:"\u7f6e\u304f",set:"\u8a2d\u5b9a",get:"\u53d6\u5f97",add:"\u8ffd\u52a0",remove:"\u524a\u9664",toggle:"\u5207\u308a\u66ff\u3048",hide:"\u96a0\u3059",show:"\u8868\u793a",if:"\u3082\u3057",unless:"\u306a\u3044\u9650\u308a",repeat:"\u7e70\u308a\u8fd4\u3057",for:"\u305f\u3081\u306b",while:"\u306e\u9593",until:"\u307e\u3067",continue:"\u7d9a\u3051\u308b",break:"\u4e2d\u65ad",halt:"\u505c\u6b62",wait:"\u5f85\u3064",fetch:"\u30d5\u30a7\u30c3\u30c1",call:"\u547c\u3073\u51fa\u3057",return:"\u623b\u308b",make:"\u4f5c\u308b",log:"\u8a18\u9332",throw:"\u6295\u3052\u308b",catch:"\u6355\u307e\u3048\u308b",measure:"\u6e2c\u5b9a",transition:"\u9077\u79fb",increment:"\u5897\u52a0",decrement:"\u6e1b\u5c11",default:"\u65e2\u5b9a",go:"\u79fb\u52d5",pushUrl:"URL\u30d7\u30c3\u30b7\u30e5",replaceUrl:"URL\u7f6e\u63db",copy:"\u30b3\u30d4\u30fc",pick:"\u9078\u629e",beep:"\u30d3\u30fc\u30d7",js:"JS\u5b9f\u884c",async:"\u975e\u540c\u671f",render:"\u63cf\u753b",swap:"\u4ea4\u63db",morph:"\u5909\u5f62",settle:"\u5b89\u5b9a",append:"\u672b\u5c3e\u8ffd\u52a0",exit:"\u9000\u51fa",install:"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb",breakpoint:"\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8",clear:"\u30af\u30ea\u30a2",close:"\u9589\u3058\u308b",open:"\u958b\u304f",select:"\u9078\u3076",clone:"\u8907\u88fd",prepend:"\u5148\u982d\u8ffd\u52a0",socket:"\u30bd\u30b1\u30c3\u30c8"},modifiers:{to:"\u306b",from:"\u304b\u3089",into:"\u3078",with:"\u3068",at:"\u3067",in:"\u306e\u4e2d",of:"\u306e",as:"\u3068\u3057\u3066",by:"\u306b\u3088\u3063\u3066",before:"\u524d\u306b",after:"\u5f8c\u306b",over:"\u4e0a\u306b",under:"\u4e0b\u306b",between:"\u9593\u306b",through:"\u901a\u3057\u3066",without:"\u306a\u3057\u3067"},events:{click:"\u30af\u30ea\u30c3\u30af",dblclick:"dblclick",mousedown:"\u30de\u30a6\u30b9\u62bc\u4e0b",mouseup:"\u30de\u30a6\u30b9\u89e3\u653e",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc",mouseout:"\u30de\u30a6\u30b9\u30a2\u30a6\u30c8",mousemove:"mousemove",keydown:"\u30ad\u30fc\u30c0\u30a6\u30f3",keyup:"\u30ad\u30fc\u30a2\u30c3\u30d7",keypress:"\u30ad\u30fc\u30d7\u30ec\u30b9",focus:"\u30d5\u30a9\u30fc\u30ab\u30b9",blur:"\u307c\u304b\u3057",change:"\u5909\u66f4",input:"\u5165\u529b",submit:"\u9001\u4fe1",reset:"\u30ea\u30bb\u30c3\u30c8",load:"\u8aad\u307f\u8fbc\u307f",unload:"unload",resize:"\u30b5\u30a4\u30ba\u5909\u66f4",scroll:"\u30b9\u30af\u30ed\u30fc\u30eb",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"\u6642",where:"\u3069\u3053",and:"\u305d\u3057\u3066",or:"\u307e\u305f\u306f",not:"\u3067\u306f\u306a\u3044",is:"\u3067\u3042\u308b",exists:"\u5b58\u5728\u3059\u308b",matches:"\u4e00\u81f4\u3059\u308b",contains:"\u542b\u3080",includes:"\u542b\u3081\u308b",equals:"\u7b49\u3057\u3044",has:"\u3042\u308b",have:"\u3042\u308b",then:"\u305d\u308c\u304b\u3089",else:"\u305d\u3046\u3067\u306a\u3051\u308c\u3070",otherwise:"\u305d\u3046\u3067\u306a\u3051\u308c\u3070",end:"\u7d42\u308f\u308a",live:"\u30e9\u30a4\u30d6",bind:"\u30d0\u30a4\u30f3\u30c9",changes:"\u5909\u308f\u3063\u305f\u3089"},temporal:{seconds:"\u79d2",second:"\u79d2",milliseconds:"\u30df\u30ea\u79d2",millisecond:"\u30df\u30ea\u79d2",minutes:"\u5206",minute:"\u5206",hours:"\u6642\u9593",hour:"\u6642\u9593",ms:"ms",s:"\u79d2",min:"\u5206",h:"\u6642"},values:{true:"\u771f",false:"\u507d",null:"null",undefined:"\u672a\u5b9a\u7fa9",it:"\u305d\u308c",its:"\u305d\u306e",me:"\u79c1",my:"\u79c1\u306e",you:"\u3042\u306a\u305f",your:"\u3042\u306a\u305f\u306e",yourself:"\u3042\u306a\u305f\u81ea\u8eab",myself:"\u79c1\u81ea\u8eab",element:"\u8981\u7d20",target:"\u5bfe\u8c61",detail:"\u8a73\u7d30",event:"\u30a4\u30d9\u30f3\u30c8",window:"\u30a6\u30a3\u30f3\u30c9\u30a6",document:"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8",body:"\u30dc\u30c7\u30a3",result:"\u7d50\u679c",value:"\u5024"},attributes:{class:"\u30af\u30e9\u30b9",classes:"\u30af\u30e9\u30b9\u7fa4",style:"\u30b9\u30bf\u30a4\u30eb",styles:"\u30b9\u30bf\u30a4\u30eb\u7fa4",attribute:"\u5c5e\u6027",attributes:"\u5c5e\u6027\u7fa4",property:"\u30d7\u30ed\u30d1\u30c6\u30a3",properties:"\u30d7\u30ed\u30d1\u30c6\u30a3\u7fa4"},expressions:{characters:"\u6587\u5b57",inclusive:"\u542b\u3080",exclusive:"\u9664\u304f",first:"\u6700\u521d",last:"\u6700\u5f8c",next:"\u6b21",previous:"\u524d",prev:"\u524d",at:"\u3067",random:"\u30e9\u30f3\u30c0\u30e0",closest:"\u6700\u3082\u8fd1\u3044",parent:"\u89aa",children:"\u5b50",within:"\u4ee5\u5185",no:"\u306a\u3044",empty:"\u7a7a",some:"\u3044\u304f\u3064\u304b","starts with":"\u3067\u59cb\u307e\u308b","ends with":"\u3067\u7d42\u308f\u308b","ignoring case":"\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u7121\u8996","sorted by":"\u3067\u30bd\u30fc\u30c8","mapped to":"\u306b\u5909\u63db","split by":"\u3067\u5206\u5272","joined by":"\u3067\u7d50\u5408"}},Ml=ql(Il,"ja",{allowEnglishFallback:!0}),$l={commands:{on:"sur",tell:"dire",trigger:"d\u00e9clencher",send:"envoyer",take:"prendre",put:"mettre",set:"d\u00e9finir",get:"obtenir",add:"ajouter",remove:"supprimer",toggle:"basculer",blur:"d\u00e9focaliser",hide:"cacher",show:"montrer",if:"si",unless:"saufsi",repeat:"r\u00e9p\u00e9ter",for:"pour",while:"tantque",until:"jusqu\u00e0",continue:"continuer",break:"arr\u00eater",halt:"stopper",wait:"attendre",fetch:"r\u00e9cup\u00e9rer",call:"appeler",return:"retourner",make:"cr\u00e9er",log:"enregistrer",throw:"lancer",catch:"attraper",measure:"mesurer",transition:"transition",increment:"incr\u00e9menter",decrement:"d\u00e9cr\u00e9menter",default:"d\u00e9faut",go:"aller",pushUrl:"pousserUrl",replaceUrl:"remplacerUrl",copy:"copier",pick:"choisir",beep:"bip",js:"js",async:"asynchrone",render:"rendu",swap:"\u00e9changer",morph:"transformer",settle:"stabiliser",append:"annexer",exit:"sortir",install:"installer",breakpoint:"point-arr\u00eat",clear:"effacer",close:"fermer",open:"ouvrir",select:"s\u00e9lectionner",clone:"cloner",prepend:"pr\u00e9fixer",focus:"focaliser"},modifiers:{to:"\u00e0",from:"de",into:"dans",with:"avec",at:"\u00e0",in:"en",of:"de",as:"comme",by:"par",before:"avant",after:"apr\u00e8s",over:"sur",under:"sous",between:"entre",through:"\u00e0 travers",without:"sans"},events:{click:"clic",dblclick:"doubleclic",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"sourisentrer",mouseleave:"sourissortir",mouseover:"souris dessus",mouseout:"souris dehors",mousemove:"sourisbouger",keydown:"touche bas",keyup:"touche haut",keypress:"touchepress\u00e9e",focus:"focus",blur:"flou",change:"changer",input:"saisie",submit:"soumettre",reset:"r\u00e9initialiser",load:"charger",unload:"d\u00e9charger",resize:"redimensionner",scroll:"d\u00e9filer",touchstart:"touchercommencer",touchend:"toucherfin",touchmove:"toucherbouger",touchcancel:"toucherannuler"},logical:{when:"quand",where:"o\u00f9",and:"et",or:"ou",not:"non",is:"est",exists:"existe",matches:"correspond",contains:"contient",includes:"inclut",equals:"\u00e9gale",has:"a",have:"ai",then:"alors",else:"sinon",otherwise:"autrement",end:"fin",live:"vif",changes:"change"},temporal:{seconds:"secondes",second:"seconde",milliseconds:"millisecondes",millisecond:"milliseconde",minutes:"minutes",minute:"minute",hours:"heures",hour:"heure",ms:"ms",s:"s",min:"min",h:"h"},values:{true:"vrai",false:"faux",null:"nul",undefined:"ind\u00e9fini",it:"\u00e7a",its:"son",me:"moi",my:"mon",you:"tu",your:"ton",yourself:"toi-m\u00eame",myself:"moi-m\u00eame",element:"\u00e9l\u00e9ment",target:"cible",detail:"d\u00e9tail",event:"\u00e9v\u00e9nement",window:"fen\u00eatre",document:"document",body:"corps",result:"r\u00e9sultat",value:"valeur"},attributes:{class:"classe",classes:"classes",style:"style",styles:"styles",attribute:"attribut",attributes:"attributs",property:"propri\u00e9t\u00e9",properties:"propri\u00e9t\u00e9s"},expressions:{characters:"caract\u00e8res",inclusive:"inclusif",exclusive:"exclusif",first:"premier",last:"dernier",next:"suivant",previous:"pr\u00e9c\u00e9dent",prev:"pr\u00e9c",at:"\u00e0",random:"al\u00e9atoire",closest:"proche",parent:"parent",children:"enfants",within:"dans",no:"aucun",empty:"vide",some:"quelques","starts with":"commence par","ends with":"finit par","ignoring case":"en ignorant la casse","sorted by":"tri\u00e9 par","mapped to":"transform\u00e9 en","split by":"divis\u00e9 par","joined by":"joint par"}},_l=ql($l,"fr",{allowEnglishFallback:!0}),zl={commands:{on:"bei",tell:"sagen",trigger:"ausl\u00f6sen",send:"senden",take:"nehmen",put:"setzen",set:"festlegen",get:"erhalten",add:"hinzuf\u00fcgen",remove:"entfernen",toggle:"umschalten",blur:"defokussieren",hide:"verstecken",show:"zeigen",if:"falls",unless:"wennnicht",repeat:"wiederholen",for:"f\u00fcr",while:"w\u00e4hrend",until:"bis",continue:"weiter",break:"unterbrechen",halt:"anhalten",wait:"warten",fetch:"abrufen",call:"aufrufen",return:"zur\u00fcckgeben",make:"erstellen",log:"protokollieren",throw:"werfen",catch:"fangen",measure:"messen",transition:"\u00fcbergang",increment:"erh\u00f6hen",decrement:"verringern",default:"standard",go:"gehen",pushUrl:"urlHinzuf\u00fcgen",replaceUrl:"urlErsetzen",copy:"kopieren",pick:"ausw\u00e4hlen",beep:"piepton",js:"js",async:"asynchron",render:"rendern",swap:"tauschen",morph:"verwandeln",settle:"stabilisieren",append:"anh\u00e4ngen",exit:"beenden",install:"installieren",breakpoint:"haltepunkt",clear:"bereinigen",close:"schlie\u00dfen",open:"\u00f6ffnen",select:"markieren",clone:"klonen",prepend:"voranstellen",focus:"fokussieren"},modifiers:{to:"zu",from:"von",into:"in",with:"mit",at:"bei",in:"in",of:"von",as:"als",by:"durch",before:"vor",after:"nach",over:"\u00fcber",under:"unter",between:"zwischen",through:"durch",without:"ohne"},events:{click:"klick",dblclick:"doppelklick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mauseintreten",mouseleave:"mausverlassen",mouseover:"maus dr\u00fcber",mouseout:"maus weg",mousemove:"mausbewegen",keydown:"taste unten",keyup:"taste oben",keypress:"tastedr\u00fccken",focus:"fokus",blur:"defokussieren",change:"\u00e4ndern",input:"eingabe",submit:"absenden",reset:"zur\u00fccksetzen",load:"laden",unload:"entladen",resize:"gr\u00f6\u00dfen\u00e4nderung",scroll:"scrollen",touchstart:"ber\u00fchrungstart",touchend:"ber\u00fchrungend",touchmove:"ber\u00fchrungbewegen",touchcancel:"ber\u00fchrungabbrechen"},logical:{when:"wenn",where:"wo",and:"und",or:"oder",not:"nicht",is:"ist",exists:"existiert",matches:"passt",contains:"enth\u00e4lt",includes:"beinhaltet",equals:"gleicht",has:"hat",have:"habe",then:"dann",else:"sonst",otherwise:"andernfalls",end:"ende",live:"live",changes:"\u00e4ndert"},temporal:{seconds:"sekunden",second:"sekunde",milliseconds:"millisekunden",millisecond:"millisekunde",minutes:"minuten",minute:"minute",hours:"stunden",hour:"stunde",ms:"ms",s:"s",min:"min",h:"std"},values:{true:"wahr",false:"falsch",null:"null",undefined:"undefiniert",it:"es",its:"sein",me:"ich",my:"mein",you:"du",your:"dein",yourself:"dich selbst",myself:"ich selbst",element:"element",target:"ziel",detail:"detail",event:"ereignis",window:"fenster",document:"dokument",body:"k\u00f6rper",result:"ergebnis",value:"wert"},attributes:{class:"klasse",classes:"klassen",style:"stil",styles:"stile",attribute:"attribut",attributes:"attribute",property:"eigenschaft",properties:"eigenschaften"},expressions:{characters:"Zeichen",inclusive:"inklusiv",exclusive:"exklusiv",first:"erste",last:"letzte",next:"n\u00e4chste",previous:"vorherige",prev:"vorh",at:"bei",random:"zuf\u00e4llig",closest:"n\u00e4chstgelegene",parent:"elternteil",children:"kinder",within:"innerhalb",no:"kein",empty:"leer",some:"einige","starts with":"beginnt mit","ends with":"endet mit","ignoring case":"ohne Gro\u00df-/Kleinschreibung","sorted by":"sortiert nach","mapped to":"zugeordnet zu","split by":"geteilt durch","joined by":"verbunden mit"}},Vl=ql(zl,"de",{allowEnglishFallback:!0}),Hl={commands:{on:"\u0639\u0644\u0649",tell:"\u0623\u062e\u0628\u0631",trigger:"\u062a\u0634\u063a\u064a\u0644",send:"\u0623\u0631\u0633\u0644",take:"\u062e\u0630",put:"\u0636\u0639",set:"\u0627\u0636\u0628\u0637",get:"\u0627\u062d\u0635\u0644",add:"\u0623\u0636\u0641",remove:"\u0627\u062d\u0630\u0641",toggle:"\u0628\u062f\u0644",hide:"\u0627\u062e\u0641",show:"\u0627\u0638\u0647\u0631",if:"\u0625\u0630\u0627",unless:"\u0625\u0644\u0627",repeat:"\u0643\u0631\u0631",for:"\u0644\u0643\u0644",while:"\u0628\u064a\u0646\u0645\u0627",until:"\u062d\u062a\u0649",continue:"\u0648\u0627\u0635\u0644",break:"\u062a\u0648\u0642\u0641",halt:"\u0623\u0648\u0642\u0641",wait:"\u0627\u0646\u062a\u0638\u0631",fetch:"\u0627\u062d\u0636\u0631",call:"\u0627\u0633\u062a\u062f\u0639",return:"\u0627\u0631\u062c\u0639",make:"\u0627\u0635\u0646\u0639",log:"\u0633\u062c\u0644",throw:"\u0627\u0631\u0645",catch:"\u0627\u0644\u062a\u0642\u0637",measure:"\u0642\u0633",transition:"\u0627\u0646\u062a\u0642\u0627\u0644",increment:"\u0632\u0650\u062f",decrement:"\u0623\u0646\u0642\u0635",default:"\u0627\u0641\u062a\u0631\u0627\u0636\u064a",go:"\u0627\u0630\u0647\u0628",pushUrl:"\u0627\u062f\u0641\u0639 \u0631\u0627\u0628\u0637",replaceUrl:"\u0627\u0633\u062a\u0628\u062f\u0644 \u0631\u0627\u0628\u0637",copy:"\u0627\u0646\u0633\u062e",pick:"\u0627\u062e\u062a\u0631",beep:"\u0635\u0641\u0651\u0631",js:"\u062c\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062a",async:"\u0645\u062a\u0632\u0627\u0645\u0646",render:"\u0627\u0631\u0633\u0645",swap:"\u0627\u0633\u062a\u0628\u062f\u0644",morph:"\u062d\u0648\u0651\u0644",settle:"\u0627\u0633\u062a\u0642\u0631",append:"\u0623\u0644\u062d\u0642",exit:"\u0627\u062e\u0631\u062c",install:"\u062b\u0628\u0651\u062a",breakpoint:"\u0646\u0642\u0637\u0629-\u062a\u0648\u0642\u0641",clear:"\u0646\u0638\u0651\u0641",close:"\u0623\u063a\u0644\u0642",open:"\u0627\u0641\u062a\u062d",select:"\u0638\u0644\u0644",clone:"\u0627\u0633\u062a\u0646\u0633\u062e",prepend:"\u0633\u0628\u0642",socket:"\u0645\u0642\u0628\u0633"},modifiers:{to:"\u0625\u0644\u0649",from:"\u0645\u0646",into:"\u0641\u064a",with:"\u0645\u0639",at:"\u0639\u0646\u062f",in:"\u0641\u064a",of:"\u0645\u0646",as:"\u0643\u0640",by:"\u0628\u0648\u0627\u0633\u0637\u0629",before:"\u0642\u0628\u0644",after:"\u0628\u0639\u062f",over:"\u0641\u0648\u0642",under:"\u062a\u062d\u062a",between:"\u0628\u064a\u0646",through:"\u0639\u0628\u0631",without:"\u0628\u062f\u0648\u0646"},events:{click:"\u0646\u0642\u0631",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"\u0641\u0623\u0631\u0629 \u0641\u0648\u0642",mouseout:"mouseout",mousemove:"mousemove",keydown:"\u0645\u0641\u062a\u0627\u062d \u0623\u0633\u0641\u0644",keyup:"\u0645\u0641\u062a\u0627\u062d \u0623\u0639\u0644\u0649",keypress:"keypress",focus:"\u062a\u0631\u0643\u064a\u0632",blur:"\u0636\u0628\u0627\u0628\u064a\u0629",change:"\u062a\u063a\u064a\u064a\u0631",input:"\u0625\u062f\u062e\u0627\u0644",submit:"\u0625\u0631\u0633\u0627\u0644",reset:"reset",load:"\u062a\u062d\u0645\u064a\u0644",unload:"unload",resize:"\u062a\u063a\u064a\u064a\u0631 \u062d\u062c\u0645",scroll:"\u062a\u0645\u0631\u064a\u0631",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"\u0639\u0646\u062f\u0645\u0627",where:"\u0623\u064a\u0646",and:"\u0648",or:"\u0623\u0648",not:"\u0644\u064a\u0633",is:"\u0647\u0648",exists:"\u0645\u0648\u062c\u0648\u062f",matches:"\u064a\u0637\u0627\u0628\u0642",contains:"\u064a\u062d\u062a\u0648\u064a",includes:"\u064a\u0634\u0645\u0644",equals:"\u064a\u0633\u0627\u0648\u064a",has:"\u0644\u062f\u064a\u0647",have:"\u0644\u062f\u064a",then:"\u062b\u0645",else:"\u0648\u0625\u0644\u0627",otherwise:"\u062e\u0644\u0627\u0641 \u0630\u0644\u0643",end:"\u0627\u0644\u0646\u0647\u0627\u064a\u0629",live:"\u062d\u064a",bind:"\u0627\u0631\u0628\u0637",changes:"\u064a\u062a\u063a\u064a\u0631"},temporal:{seconds:"\u062b\u0648\u0627\u0646\u0650",second:"\u062b\u0627\u0646\u064a\u0629",milliseconds:"\u0645\u064a\u0644\u064a \u062b\u0627\u0646\u064a\u0629",millisecond:"\u0645\u064a\u0644\u064a \u062b\u0627\u0646\u064a\u0629",minutes:"\u062f\u0642\u0627\u0626\u0642",minute:"\u062f\u0642\u064a\u0642\u0629",hours:"\u0633\u0627\u0639\u0627\u062a",hour:"\u0633\u0627\u0639\u0629",ms:"\u0645.\u062b",s:"\u062b",min:"\u062f",h:"\u0633"},values:{true:"\u0635\u062d\u064a\u062d",false:"\u062e\u0637\u0623",null:"\u0641\u0627\u0631\u063a",undefined:"\u063a\u064a\u0631 \u0645\u0639\u0631\u0641",it:"\u0647\u0648",its:"\u0644\u0647",me:"\u0623\u0646\u0627",my:"\u0644\u064a",myself:"\u0646\u0641\u0633\u064a",you:"\u0623\u0646\u062a",your:"\u0644\u0643",yourself:"\u0646\u0641\u0633\u0643",element:"\u0639\u0646\u0635\u0631",target:"\u0647\u062f\u0641",detail:"\u062a\u0641\u0627\u0635\u064a\u0644",event:"\u062d\u062f\u062b",window:"\u0646\u0627\u0641\u0630\u0629",document:"\u0648\u062b\u064a\u0642\u0629",body:"\u062c\u0633\u0645",result:"\u0646\u062a\u064a\u062c\u0629",value:"\u0642\u064a\u0645\u0629"},attributes:{class:"\u0641\u0626\u0629",classes:"\u0641\u0626\u0627\u062a",style:"\u0623\u0633\u0644\u0648\u0628",styles:"\u0623\u0633\u0627\u0644\u064a\u0628",attribute:"\u062e\u0627\u0635\u064a\u0629",attributes:"\u062e\u0635\u0627\u0626\u0635",property:"\u062e\u0627\u0635\u064a\u0629",properties:"\u062e\u0635\u0627\u0626\u0635"},expressions:{characters:"\u062d\u0631\u0648\u0641",inclusive:"\u0634\u0627\u0645\u0644",exclusive:"\u062d\u0635\u0631\u064a",first:"\u0623\u0648\u0644",last:"\u0622\u062e\u0631",next:"\u0627\u0644\u062a\u0627\u0644\u064a",previous:"\u0627\u0644\u0633\u0627\u0628\u0642",prev:"\u0633\u0627\u0628\u0642",at:"\u0639\u0646\u062f",random:"\u0639\u0634\u0648\u0627\u0626\u064a",closest:"\u0627\u0644\u0623\u0642\u0631\u0628",parent:"\u0648\u0627\u0644\u062f",children:"\u0623\u0637\u0641\u0627\u0644",within:"\u062f\u0627\u062e\u0644",no:"\u0644\u0627 \u064a\u0648\u062c\u062f",empty:"\u0641\u0627\u0631\u063a",some:"\u0628\u0639\u0636","starts with":"\u064a\u0628\u062f\u0623 \u0628\u0640","ends with":"\u064a\u0646\u062a\u0647\u064a \u0628\u0640","ignoring case":"\u0645\u0639 \u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u062d\u0627\u0644\u0629","sorted by":"\u0645\u0631\u062a\u0628 \u062d\u0633\u0628","mapped to":"\u0645\u062d\u0648\u0644 \u0625\u0644\u0649","split by":"\u0645\u0642\u0633\u0645 \u0628\u0648\u0627\u0633\u0637\u0629","joined by":"\u0645\u062f\u0645\u0648\u062c \u0628\u0648\u0627\u0633\u0637\u0629"}},Wl=ql(Hl,"ar",{allowEnglishFallback:!0}),Bl={commands:{on:"\uc5d0",tell:"\ub9d0\ud558\ub2e4",trigger:"\ud2b8\ub9ac\uac70",send:"\ubcf4\ub0b4\ub2e4",take:"\uac00\uc838\uc624\ub2e4",put:"\ub123\ub2e4",set:"\uc124\uc815",get:"\uc5bb\ub2e4",add:"\ucd94\uac00",remove:"\uc81c\uac70",toggle:"\ud1a0\uae00",hide:"\uc228\uae30\ub2e4",show:"\ubcf4\uc774\ub2e4",if:"\ub9cc\uc57d",unless:"\uc544\ub2c8\ub77c\uba74",repeat:"\ubc18\ubcf5",for:"\uac01\uac01",while:"\ub3d9\uc548",until:"\uae4c\uc9c0",continue:"\uacc4\uc18d",break:"\uc911\ub2e8",halt:"\uc815\uc9c0",wait:"\ub300\uae30",fetch:"\uac00\uc838\uc624\uae30",call:"\ud638\ucd9c",return:"\ubc18\ud658",make:"\ub9cc\ub4e4\ub2e4",log:"\ub85c\uadf8",throw:"\ub358\uc9c0\ub2e4",catch:"\uc7a1\ub2e4",measure:"\uce21\uc815",transition:"\uc804\ud658",increment:"\uc99d\uac00",decrement:"\uac10\uc18c",default:"\uae30\ubcf8\uac12",go:"\uc774\ub3d9",pushUrl:"URL\ud478\uc2dc",replaceUrl:"URL\uad50\uccb4",copy:"\ubcf5\uc0ac",pick:"\uc120\ud0dd",beep:"\ube44\ud504",js:"JS\uc2e4\ud589",async:"\ube44\ub3d9\uae30",render:"\ub80c\ub354\ub9c1",swap:"\uad50\ud658",morph:"\ubcc0\ud615",settle:"\uc548\uc815",append:"\ub367\ubd99\uc774\ub2e4",exit:"\ub098\uac00\uae30",install:"\uc124\uce58",breakpoint:"\uc911\ub2e8\uc810",clear:"\uc9c0\uc6b0\uae30",close:"\ub2eb\uae30",open:"\uc5f4\uae30",select:"\uace0\ub974\uae30",clone:"\ubcf5\uc81c",prepend:"\uc55e\uc5d0\ucd94\uac00",socket:"\uc18c\ucf13"},modifiers:{to:"\uc5d0",from:"\uc5d0\uc11c",into:"\uc73c\ub85c",with:"\uc640",at:"\uc5d0",in:"\uc548\uc5d0",of:"\uc758",as:"\ub85c",by:"\uc5d0\uc758\ud574",before:"\uc804\uc5d0",after:"\ud6c4\uc5d0",over:"\uc704\uc5d0",under:"\uc544\ub798",between:"\uc0ac\uc774",through:"\ud1b5\ud574",without:"\uc5c6\uc774"},events:{click:"\ud074\ub9ad",dblclick:"\ub354\ube14\ud074\ub9ad",mousedown:"\ub9c8\uc6b0\uc2a4\ub2e4\uc6b4",mouseup:"\ub9c8\uc6b0\uc2a4\uc5c5",mouseenter:"\ub9c8\uc6b0\uc2a4\uc5d4\ud130",mouseleave:"\ub9c8\uc6b0\uc2a4\ub9ac\ube0c",mouseover:"\ub9c8\uc6b0\uc2a4\uc624\ubc84",mouseout:"\ub9c8\uc6b0\uc2a4\uc544\uc6c3",mousemove:"\ub9c8\uc6b0\uc2a4\ubb34\ube0c",keydown:"\ud0a4\ub2e4\uc6b4",keyup:"\ud0a4\uc5c5",keypress:"\ud0a4\ud504\ub808\uc2a4",focus:"\ud3ec\ucee4\uc2a4",blur:"\ube14\ub7ec",change:"\ubcc0\uacbd",input:"\uc785\ub825",submit:"\uc81c\ucd9c",reset:"\uc7ac\uc124\uc815",load:"\ub85c\ub4dc",unload:"unload",resize:"\ub9ac\uc0ac\uc774\uc988",scroll:"\uc2a4\ud06c\ub864",touchstart:"touchstart",touchend:"\ud130\uce58\uc885\ub8cc",touchmove:"touchmove",touchcancel:"\ud130\uce58\ucde8\uc18c"},logical:{when:"\ub54c",where:"\uc5b4\ub514",and:"\uadf8\ub9ac\uace0",or:"\ub610\ub294",not:"\uc544\ub2c8",is:"\uc774\ub2e4",exists:"\uc874\uc7ac",matches:"\uc77c\uce58",contains:"\ud3ec\ud568",includes:"\ud3ec\ud568\ud558\ub2e4",equals:"\uac19\ub2e4",has:"\uc788\ub2e4",have:"\uc788\ub2e4",then:"\uadf8\ub7ec\uba74",else:"\uc544\ub2c8\uba74",otherwise:"\uadf8\ub807\uc9c0\uc54a\uc73c\uba74",end:"\ub05d",live:"\ub77c\uc774\ube0c",bind:"\ubc14\uc778\ub4dc",changes:"\ubcc0\uacbd\ub418\uba74"},temporal:{seconds:"\ucd08",second:"\ucd08",milliseconds:"\ubc00\ub9ac\ucd08",millisecond:"\ubc00\ub9ac\ucd08",minutes:"\ubd84",minute:"\ubd84",hours:"\uc2dc\uac04",hour:"\uc2dc\uac04",ms:"ms",s:"\ucd08",min:"\ubd84",h:"\uc2dc"},values:{true:"\ucc38",false:"\uac70\uc9d3",null:"\ub110",undefined:"\uc815\uc758\uc548\ub428",it:"\uadf8\uac83",its:"\uadf8\uac83\uc758",me:"\ub098",my:"\ub0b4",myself:"\ub098\uc790\uc2e0",you:"\ub108",your:"\ub124",yourself:"\ub108\uc790\uc2e0",element:"\uc694\uc18c",target:"\ub300\uc0c1",detail:"\uc138\ubd80",event:"\uc774\ubca4\ud2b8",window:"\ucc3d",document:"\ubb38\uc11c",body:"\ubc14\ub514",result:"\uacb0\uacfc",value:"\uac12"},attributes:{class:"\ud074\ub798\uc2a4",classes:"\ud074\ub798\uc2a4\ub4e4",style:"\uc2a4\ud0c0\uc77c",styles:"\uc2a4\ud0c0\uc77c\ub4e4",attribute:"\uc18d\uc131",attributes:"\uc18d\uc131\ub4e4",property:"\ud504\ub85c\ud37c\ud2f0",properties:"\ud504\ub85c\ud37c\ud2f0\ub4e4"},expressions:{characters:"\ubb38\uc790",inclusive:"\ud3ec\ud568",exclusive:"\uc81c\uc678",first:"\uccab\ubc88\uc9f8",last:"\ub9c8\uc9c0\ub9c9",next:"\ub2e4\uc74c",previous:"\uc774\uc804",prev:"\uc774\uc804",at:"\uc5d0\uc11c",random:"\ubb34\uc791\uc704",closest:"\uac00\uc7a5\uac00\uae4c\uc6b4",parent:"\ubd80\ubaa8",children:"\uc790\uc2dd",within:"\uc774\ub0b4",no:"\uc5c6\uc74c",empty:"\ube44\uc5b4\uc788\ub294",some:"\uc77c\ubd80","starts with":"\ub85c\uc2dc\uc791","ends with":"\ub85c\ub05d\ub098\ub294","ignoring case":"\ub300\uc18c\ubb38\uc790_\ubb34\uc2dc","sorted by":"\ub85c_\uc815\ub82c","mapped to":"\ub85c_\ubcc0\ud658","split by":"\ub85c_\ubd84\ud560","joined by":"\ub85c_\uacb0\ud569"}},Fl=ql(Bl,"ko",{allowEnglishFallback:!0}),Dl={commands:{on:"\u5f53",tell:"\u544a\u8bc9",trigger:"\u89e6\u53d1",send:"\u53d1\u9001",take:"\u62ff\u53d6",put:"\u653e\u7f6e",set:"\u8bbe\u7f6e",get:"\u83b7\u5f97",add:"\u6dfb\u52a0",remove:"\u79fb\u9664",toggle:"\u5207\u6362",hide:"\u9690\u85cf",show:"\u663e\u793a",if:"\u5982\u679c",unless:"\u9664\u975e",repeat:"\u91cd\u590d",for:"\u4e3a",while:"\u5f53",until:"\u76f4\u5230",continue:"\u7ee7\u7eed",break:"\u4e2d\u65ad",halt:"\u505c\u6b62",wait:"\u7b49\u5f85",fetch:"\u6293\u53d6",call:"\u8c03\u7528",return:"\u8fd4\u56de",make:"\u5236\u4f5c",log:"\u65e5\u5fd7",throw:"\u629b\u51fa",catch:"\u6355\u83b7",measure:"\u6d4b\u91cf",transition:"\u8fc7\u6e21",increment:"\u589e\u52a0",decrement:"\u51cf\u5c11",default:"\u9ed8\u8ba4",go:"\u524d\u5f80",pushUrl:"\u63a8\u9001\u7f51\u5740",replaceUrl:"\u66ff\u6362\u7f51\u5740",copy:"\u590d\u5236",pick:"\u9009\u53d6",beep:"\u8702\u9e23",js:"JS\u6267\u884c",async:"\u5f02\u6b65",render:"\u6e32\u67d3",swap:"\u4ea4\u6362",morph:"\u53d8\u5f62",settle:"\u7a33\u5b9a",append:"\u8ffd\u52a0",exit:"\u9000\u51fa",install:"\u5b89\u88c5",breakpoint:"\u65ad\u70b9",clear:"\u6e05\u9664",close:"\u5173\u95ed",open:"\u6253\u5f00",select:"\u9009\u62e9",clone:"\u514b\u9686",prepend:"\u524d\u7f6e"},modifiers:{to:"\u5230",from:"\u4ece",into:"\u8fdb\u5165",with:"\u4e0e",at:"\u5728",in:"\u5728",of:"\u7684",as:"\u4f5c\u4e3a",by:"\u901a\u8fc7",before:"\u4e4b\u524d",after:"\u4e4b\u540e",over:"\u5728\u4e0a",under:"\u5728\u4e0b",between:"\u4e4b\u95f4",through:"\u901a\u8fc7",without:"\u6ca1\u6709"},events:{click:"\u70b9\u51fb",dblclick:"\u53cc\u51fb",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"\u9f20\u6807\u79fb\u5165",mouseout:"\u9f20\u6807\u79fb\u51fa",mousemove:"\u9f20\u6807\u79fb\u52a8",keydown:"\u6309\u952e\u6309\u4e0b",keyup:"\u677e\u952e",keypress:"keypress",focus:"\u805a\u7126",blur:"\u5931\u7126",change:"\u6539\u53d8",input:"\u8f93\u5165",submit:"\u63d0\u4ea4",reset:"\u91cd\u7f6e",load:"\u52a0\u8f7d",unload:"\u5378\u8f7d",resize:"\u8c03\u6574\u5927\u5c0f",scroll:"\u6eda\u52a8",touchstart:"\u89e6\u6478\u5f00\u59cb",touchend:"touchend",touchmove:"\u89e6\u6478\u79fb\u52a8",touchcancel:"touchcancel"},logical:{when:"\u5f53",where:"\u54ea\u91cc",and:"\u548c",or:"\u6216",not:"\u975e",is:"\u662f",exists:"\u5b58\u5728",matches:"\u5339\u914d",contains:"\u5305\u542b",includes:"\u5305\u62ec",equals:"\u7b49\u4e8e",has:"\u6709",have:"\u6709",then:"\u90a3\u4e48",else:"\u5426\u5219",otherwise:"\u8981\u4e0d\u7136",end:"\u7ed3\u675f",live:"\u5b9e\u65f6",bind:"\u7ed1\u5b9a",changes:"\u6539\u53d8\u65f6"},temporal:{seconds:"\u79d2",second:"\u79d2",milliseconds:"\u6beb\u79d2",millisecond:"\u6beb\u79d2",minutes:"\u5206\u949f",minute:"\u5206\u949f",hours:"\u5c0f\u65f6",hour:"\u5c0f\u65f6",ms:"\u6beb\u79d2",s:"\u79d2",min:"\u5206",h:"\u65f6"},values:{true:"\u771f",false:"\u5047",null:"\u7a7a",undefined:"\u672a\u5b9a\u4e49",it:"\u5b83",its:"\u5b83\u7684",me:"\u6211",my:"\u6211\u7684",myself:"\u6211\u81ea\u5df1",you:"\u4f60",your:"\u4f60\u7684",yourself:"\u4f60\u81ea\u5df1",element:"\u5143\u7d20",target:"\u76ee\u6807",detail:"\u8be6\u60c5",event:"\u4e8b\u4ef6",window:"\u7a97\u53e3",document:"\u6587\u6863",body:"\u4e3b\u4f53",result:"\u7ed3\u679c",value:"\u503c"},attributes:{class:"\u7c7b",classes:"\u7c7b\u522b",style:"\u6837\u5f0f",styles:"\u6837\u5f0f\u96c6",attribute:"\u5c5e\u6027",attributes:"\u5c5e\u6027\u96c6",property:"\u7279\u6027",properties:"\u7279\u6027\u96c6"},expressions:{characters:"\u5b57\u7b26",inclusive:"\u5305\u542b",exclusive:"\u6392\u9664",first:"\u7b2c\u4e00\u4e2a",last:"\u6700\u540e\u4e00\u4e2a",next:"\u4e0b\u4e00\u4e2a",previous:"\u4e0a\u4e00\u4e2a",prev:"\u4e0a\u4e2a",at:"\u5728",random:"\u968f\u673a",closest:"\u6700\u8fd1\u7684",parent:"\u7236\u7ea7",children:"\u5b50\u7ea7",within:"\u4e4b\u5185",no:"\u6ca1\u6709",empty:"\u7a7a\u7684",some:"\u4e00\u4e9b","starts with":"\u4ee5\u5f00\u5934","ends with":"\u4ee5\u7ed3\u5c3e","ignoring case":"\u5ffd\u7565\u5927\u5c0f\u5199","sorted by":"\u6309_\u6392\u5e8f","mapped to":"\u6620\u5c04\u4e3a","split by":"\u6309_\u5206\u5272","joined by":"\u7528_\u8fde\u63a5"}},Ul=ql(Dl,"zh",{allowEnglishFallback:!0}),Kl={commands:{on:"\u00fczerinde",tell:"s\u00f6yle",trigger:"tetikle",send:"g\u00f6nder",take:"tut",put:"koy",set:"ayarla",get:"al",add:"ekle",remove:"kald\u0131r",toggle:"de\u011fi\u015ftir",hide:"gizle",show:"g\u00f6ster",if:"e\u011fer",unless:"de\u011filse",repeat:"tekrarla",for:"i\u00e7in",while:"s\u00fcresince",until:"kadar",continue:"devam",break:"dur",halt:"durdur",wait:"bekle",fetch:"getir",call:"\u00e7a\u011f\u0131r",return:"d\u00f6n",make:"yap",log:"kaydet",throw:"f\u0131rlat",catch:"yakala",measure:"\u00f6l\u00e7",transition:"ge\u00e7i\u015f",increment:"art\u0131r",decrement:"azalt",default:"varsay\u0131lan",go:"git",pushUrl:"urlEkle",replaceUrl:"urlDe\u011fi\u015ftir",copy:"kopyala",pick:"se\u00e7",beep:"bip",js:"js",async:"asenkron",render:"render",swap:"takas",morph:"d\u00f6n\u00fc\u015ft\u00fcr",settle:"sabitlen",append:"ili\u015ftir",exit:"\u00e7\u0131k",install:"kur",breakpoint:"kesme-noktas\u0131",clear:"temizle",close:"kapat",open:"a\u00e7",select:"vurgula",clone:"klonla",prepend:"ba\u015f\u0131naekle",socket:"soket"},modifiers:{to:"e",from:"den",into:"i\u00e7ine",with:"ile",at:"de",in:"i\u00e7inde",of:"nin",as:"olarak",by:"taraf\u0131ndan",before:"\u00f6nce",after:"sonra",over:"\u00fczerinde",under:"alt\u0131nda",between:"aras\u0131nda",through:"boyunca",without:"olmadan"},events:{click:"t\u0131klama",dblclick:"dblclick",mousedown:"farebas",mouseup:"fareb\u0131rak",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"farei\u00e7inde",mouseout:"fared\u0131\u015f\u0131nda",mousemove:"mousemove",keydown:"tu\u015fbasma",keyup:"tu\u015fb\u0131rakma",keypress:"keypress",focus:"odak",blur:"bulan\u0131k",change:"de\u011fi\u015fim",input:"giri\u015f",submit:"g\u00f6nderme",reset:"s\u0131f\u0131rla",load:"y\u00fckle",unload:"unload",resize:"boyutland\u0131rma",scroll:"kayd\u0131r",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"iken",where:"nerede",and:"ve",or:"veya",not:"de\u011fil",is:"dir",exists:"var",matches:"e\u015fle\u015fir",contains:"i\u00e7erir",includes:"dahil",equals:"e\u015fittir",has:"var",have:"var",then:"ard\u0131ndan",else:"yoksa",otherwise:"aksi_halde",end:"son",live:"canl\u0131",changes:"de\u011fi\u015fti\u011finde"},temporal:{seconds:"saniye",second:"saniye",milliseconds:"milisaniye",millisecond:"milisaniye",minutes:"dakika",minute:"dakika",hours:"saat",hour:"saat",ms:"ms",s:"s",min:"dk",h:"sa"},values:{true:"do\u011fru",false:"yanl\u0131\u015f",null:"bo\u015f",undefined:"tan\u0131ms\u0131z",it:"o",its:"onun",me:"ben",my:"benim",myself:"kendim",you:"sen",your:"senin",yourself:"kendin",element:"\u00f6\u011fe",target:"hedef",detail:"detay",event:"olay",window:"pencere",document:"belge",body:"g\u00f6vde",result:"sonu\u00e7",value:"de\u011fer"},attributes:{class:"s\u0131n\u0131f",classes:"s\u0131n\u0131flar",style:"stil",styles:"stiller",attribute:"\u00f6zellik",attributes:"\u00f6zellikler",property:"\u00f6zellik",properties:"\u00f6zellikler"},expressions:{characters:"karakterler",inclusive:"dahil",exclusive:"hari\u00e7",first:"ilk",last:"sonuncu",next:"sonraki",previous:"\u00f6nceki",prev:"\u00f6nc",at:"de",random:"rastgele",closest:"enyak\u0131n",parent:"ebeveyn",children:"\u00e7ocuklar",within:"i\u00e7inde",no:"yok",empty:"bo\u015f",some:"baz\u0131","starts with":"ile ba\u015flar","ends with":"ile biter","ignoring case":"b\u00fcy\u00fck k\u00fc\u00e7\u00fck harf duyars\u0131z","sorted by":"g\u00f6re s\u0131ral\u0131","mapped to":"ye d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f","split by":"ile b\u00f6l\u00fcnm\u00fc\u015f","joined by":"ile birle\u015ftirilmi\u015f"}},Zl=ql(Kl,"tr",{allowEnglishFallback:!0}),Yl={commands:{on:"pada",tell:"katakan",trigger:"picu",send:"kirim",take:"ambil",put:"taruh",set:"atur",get:"dapatkan",add:"tambah",remove:"hapus",toggle:"alihkan",hide:"sembunyikan",show:"tampilkan",if:"jika",unless:"kecuali",repeat:"ulangi",for:"untuk",while:"selama",until:"sampai",continue:"lanjutkan",break:"hentikan",halt:"berhenti",wait:"tunggu",fetch:"muat",call:"panggil",return:"kembali",make:"buat",log:"catat",throw:"lempar",catch:"tangkap",measure:"ukur",transition:"transisi",increment:"naikkan",decrement:"kurangi",default:"bawaan",go:"pergi",pushUrl:"tambahUrl",replaceUrl:"gantiUrl",copy:"salin",pick:"pilih",beep:"bunyi",js:"js",async:"asinkron",render:"olah",swap:"tukar",morph:"ubah",settle:"stabilkan",append:"sisipkan",exit:"keluar",install:"pasang",breakpoint:"titik-henti",clear:"bersihkan",close:"tutupkan",open:"buka",select:"tandai",clone:"klon",prepend:"awali"},modifiers:{to:"ke",from:"dari",into:"ke_dalam",with:"dengan",at:"di",in:"dalam",of:"dari",as:"sebagai",by:"oleh",before:"sebelum",after:"setelah",over:"di_atas",under:"di_bawah",between:"antara",through:"melalui",without:"tanpa"},events:{click:"klik",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"arahkan",mouseout:"tinggalkan",mousemove:"mousemove",keydown:"tekan_tombol",keyup:"keyup",keypress:"keypress",focus:"fokus",blur:"blur",change:"ubah",input:"masukan",submit:"kirim",reset:"reset",load:"muat",unload:"bongkar",resize:"ubah_ukuran",scroll:"gulir",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"ketika",where:"di_mana",and:"dan",or:"atau",not:"bukan",is:"adalah",exists:"ada",matches:"cocok",contains:"berisi",includes:"termasuk",equals:"sama",has:"punya",have:"punya",then:"lalu",else:"lainnya",otherwise:"sebaliknya",end:"akhir",live:"langsung",changes:"berubah"},temporal:{seconds:"detik",second:"detik",milliseconds:"milidetik",millisecond:"milidetik",minutes:"menit",minute:"menit",hours:"jam",hour:"jam",ms:"ms",s:"d",min:"mnt",h:"j"},values:{true:"benar",false:"salah",null:"kosong",undefined:"tidak_terdefinisi",it:"itu",its:"miliknya",me:"saya",my:"saya punya",myself:"saya sendiri",you:"kamu",your:"kamu punya",yourself:"kamu sendiri",element:"elemen",target:"target",detail:"detail",event:"peristiwa",window:"jendela",document:"dokumen",body:"badan",result:"hasil",value:"nilai"},attributes:{class:"kelas",classes:"kelas_kelas",style:"gaya",styles:"gaya_gaya",attribute:"atribut",attributes:"atribut_atribut",property:"properti",properties:"properti_properti"},expressions:{characters:"karakter",inclusive:"inklusif",exclusive:"eksklusif",first:"pertama",last:"terakhir",next:"berikutnya",previous:"sebelumnya",prev:"sblm",at:"di",random:"acak",closest:"terdekat",parent:"induk",children:"anak_anak",within:"dalam",no:"tidak_ada",empty:"kosong",some:"beberapa","starts with":"dimulai dengan","ends with":"diakhiri dengan","ignoring case":"abaikan kapital","sorted by":"diurutkan berdasarkan","mapped to":"dipetakan ke","split by":"dipisah oleh","joined by":"digabung oleh"}},Jl=ql(Yl,"id",{allowEnglishFallback:!0}),Gl={commands:{on:"kaqpi",tell:"niy",trigger:"kichay",send:"kachay",take:"hapiy",put:"churay",set:"churanay",get:"taripay",add:"yapay",remove:"qichuy",toggle:"tikray",hide:"pakay",show:"rikuchiy",if:"sichus",unless:"mana sichus",repeat:"kutipay",for:"sapankaq",while:"kaykamaqa",until:"hayk_akama",continue:"purichiy",break:"p_akiy",halt:"sayay",wait:"suyay",fetch:"apamuy",call:"qayay",return:"kutimuy",make:"ruray",log:"qillqakuy",throw:"wikchuy",catch:"hapsiy",measure:"tupuy",transition:"pasay",increment:"yapachiy",decrement:"pisiyachiy",default:"\u00f1awpaq_kaq",go:"riy",pushUrl:"url_tanqay",replaceUrl:"url_tikray",copy:"qillqay",pick:"akllay",beep:"waqay",js:"js",async:"mana_suyaspa",render:"rikurichiy",swap:"t'inkuy",morph:"tukunay",settle:"tiyakuy",append:"qatichiy",exit:"lluqsiy",install:"tarpuy",breakpoint:"sayachinay",clear:"pichay",close:"wichqay",open:"paskay",select:"marcay",clone:"kikinchay",prepend:"\u00f1awpachiy",socket:"tinkina"},modifiers:{to:"man",from:"manta",into:"ukupi",with:"wan",at:"pi",in:"ukupi",of:"pa",as:"hina",by:"rayku",before:"\u00f1awpaqpi",after:"qhepapi",over:"hawapi",under:"urapi",between:"chawpipi",through:"pasaspa",without:"mana"},events:{click:"\u00f1itiy",dblclick:"dblclick",mousedown:"rat\u00f1itiy",mouseup:"rathuqariy",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"mouseover",mouseout:"mouseout",mousemove:"mousemove",keydown:"llave uray",keyup:"llave hawa",keypress:"keypress",focus:"qhaway",blur:"paqariy",change:"kambiay",input:"yaykuchiy",submit:"apaykachay",reset:"musuqchay",load:"apakuy",unload:"unload",resize:"hatun_kay",scroll:"kunray",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"maykama",where:"maypi",and:"chaymanta",or:"utaq",not:"mana",is:"kanqa",exists:"tiyan",matches:"tupan",contains:"ukupi_kan",includes:"churasqa",equals:"kikin",has:"kachkan",have:"kachkani",then:"chayqa",else:"manachus",otherwise:"huk_kaqpi",end:"tukuy",live:"kawsay",changes:"tukurikun"},temporal:{seconds:"sikundukuna",second:"sikundu",milliseconds:"iskay_paqta_sikundukuna",millisecond:"iskay_paqta_sikundu",minutes:"minutukuna",minute:"minutu",hours:"horakuna",hour:"hora",ms:"ms",s:"s",min:"m",h:"h"},values:{true:"cheqaq",false:"llulla",null:"chusaq",undefined:"mana_riqsisqa",it:"chay",its:"chaypaq",me:"noqa",my:"noqaq",myself:"noqa killa",you:"qam",your:"qampaq",yourself:"qam killa",element:"raku",target:"punta",detail:"sut_iy",event:"ruway",window:"k_iri",document:"qillqa",body:"kurku",result:"lluqsiy",value:"chanin"},attributes:{class:"ayllu",classes:"ayllukuna",style:"sami",styles:"samikuna",attribute:"kaq",attributes:"kaqkuna",property:"kanay",properties:"kanaykuna"},expressions:{characters:"sanampa",first:"\u00f1awpaq",last:"qhipa",next:"qhipantin",previous:"\u00f1awpaqnin",prev:"\u00f1awpaq",at:"pi",random:"imaymanata",closest:"kaylla",parent:"mama_tayta",children:"wawakuna",within:"ukupi",no:"mana_kanchu",empty:"chusaq",some:"wakin","starts with":"qallarisqa wan","ends with":"tukusqa wan","ignoring case":"hatun-huchuy qillqata-saqiy","sorted by":"niqpi ruwasqa","mapped to":"kay kaqman","split by":"rakisqa","joined by":"hu\u00f1usqa"}},Xl=ql(Gl,"qu",{allowEnglishFallback:!0}),Ql={commands:{on:"kwenye",tell:"ambia",trigger:"chochea",send:"tuma",take:"chukua",put:"weka",set:"seti",get:"pata",add:"ongeza",remove:"ondoa",toggle:"badilisha",blur:"blur",hide:"ficha",show:"onyesha",if:"kama",unless:"isipokuwa",repeat:"rudia",for:"kwa",while:"wakati",until:"hadi",continue:"endelea",break:"vunja",halt:"simama",wait:"ngoja",fetch:"leta",call:"ita",return:"rudisha",make:"tengeneza",log:"andika",throw:"tupa",catch:"shika",measure:"pima",transition:"mpito",increment:"ongezeko",decrement:"punguza",default:"msingi",go:"nenda",pushUrl:"sukumaUrl",replaceUrl:"badilishaUrl",copy:"nakala",pick:"chagua",beep:"lia",js:"js",async:"sainkroni",render:"chora",swap:"badilishana",morph:"geuza",settle:"tulia",append:"ambatanisha",exit:"toka",install:"sakinisha",breakpoint:"nukta-simama",clear:"safisha",close:"funga",open:"fungua",select:"alama",clone:"nakili",prepend:"tanguliza",focus:"lenga",socket:"soketi"},modifiers:{to:"kwa",from:"kutoka",into:"ndani",with:"na",at:"katika",in:"ndani",of:"ya",as:"kuwa",by:"na",before:"kabla",after:"baada",over:"juu",under:"chini",between:"kati",through:"kupitia",without:"bila"},events:{click:"bonyeza",dblclick:"dblclick",mousedown:"panya_shuka",mouseup:"panya_juu",mouseenter:"panya_ingia",mouseleave:"panya_toka",mouseover:"sogeza juu",mouseout:"panya_nje",mousemove:"panya_sogea",keydown:"kitufe_shuka",keyup:"kitufe_juu",keypress:"keypress",focus:"lenga",blur:"blur",change:"kubadilisha",input:"ingizo",submit:"wasilisha",reset:"reset",load:"pakia",unload:"shuka",resize:"badilisha_ukubwa",scroll:"sogeza",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"wakati",where:"wapi",and:"na",or:"au",not:"si",is:"ni",exists:"ipo",matches:"inafanana",contains:"ina",includes:"pamoja",equals:"sawa",has:"ana",have:"nina",then:"kisha",else:"sivyo",otherwise:"vinginevyo",end:"mwisho",live:"mubashara",changes:"inabadilika"},temporal:{seconds:"sekunde",second:"sekunde",milliseconds:"millisekunde",millisecond:"millisekunde",minutes:"dakika",minute:"dakika",hours:"masaa",hour:"saa",ms:"ms",s:"s",min:"dk",h:"sa"},values:{true:"kweli",false:"uongo",null:"tupu",undefined:"haijafafanuliwa",it:"hiyo",its:"yake",me:"mimi",my:"yangu",myself:"mimi mwenyewe",you:"wewe",your:"yako",yourself:"wewe mwenyewe",element:"kipengele",target:"lengo",detail:"maelezo",event:"tukio",window:"dirisha",document:"hati",body:"mwili",result:"matokeo",value:"thamani"},attributes:{class:"darasa",classes:"madarasa",style:"mtindo",styles:"mitindo",attribute:"sifa",attributes:"sifa",property:"mali",properties:"mali"},expressions:{characters:"herufi",first:"kwanza",last:"wamwisho",next:"ijayo",previous:"iliyopita",prev:"awali",at:"katika",random:"nasibu",closest:"karibu",parent:"mzazi",children:"watoto",within:"ndani_ya",no:"hakuna",empty:"tupu",some:"baadhi","starts with":"huanza na","ends with":"huisha na","ignoring case":"puuza herufi kubwa ndogo","sorted by":"kupangwa kwa","mapped to":"kubadilishwa kuwa","split by":"kugawanywa kwa","joined by":"kuunganishwa kwa"}},ec=ql(Ql,"sw",{allowEnglishFallback:!0}),tc={commands:{on:"em",tell:"dizer",trigger:"disparar",send:"enviar",take:"pegar",put:"colocar",set:"definir",get:"obter",add:"adicionar",remove:"remover",toggle:"alternar",blur:"desfocar",hide:"esconder",show:"mostrar",if:"se",unless:"salvo",repeat:"repetir",for:"para",while:"enquanto",until:"at\u00e9",continue:"continuar",break:"interromper",halt:"parar",wait:"esperar",fetch:"buscar",call:"chamar",return:"retornar",make:"fazer",log:"registrar",throw:"lan\u00e7ar",catch:"capturar",measure:"medir",transition:"transi\u00e7\u00e3o",increment:"incrementar",decrement:"decrementar",default:"padr\u00e3o",go:"ir",pushUrl:"pushUrl",replaceUrl:"substituirUrl",copy:"copiar",pick:"escolher",beep:"apitar",js:"js",async:"ass\u00edncrono",render:"renderizar",swap:"trocar",morph:"transformar",settle:"estabilizar",append:"anexar",exit:"sair",install:"instalar",breakpoint:"ponto-interrup\u00e7\u00e3o",clear:"limpar",close:"fechar",open:"abrir",select:"selecionar",clone:"clonar",prepend:"preceder",focus:"focar",socket:"soquete"},modifiers:{to:"para",from:"de",into:"em",with:"com",at:"em",in:"dentro",of:"de",as:"como",by:"por",before:"antes",after:"depois",over:"sobre",under:"sob",between:"entre",through:"atrav\u00e9s",without:"sem"},events:{click:"clique",dblclick:"duploClique",mouseenter:"mouseEntrar",mouseleave:"mouseSair",mousedown:"mouse pressionado",mouseup:"mouse solto",mouseover:"mouse sobre",mouseout:"mouse fora",mousemove:"mouseMover",keydown:"tecla baixo",keyup:"tecla cima",keypress:"teclaPressionar",focus:"foco",blur:"desfoque",change:"mudan\u00e7a",input:"entrada",submit:"envio",reset:"redefinir",load:"carregar",unload:"descarregar",resize:"redimensionar",scroll:"rolar",touchstart:"toqueIn\u00edcio",touchend:"toqueFim",touchmove:"toqueMover",touchcancel:"toqueCancelar"},logical:{when:"quando",where:"onde",and:"e",or:"ou",not:"n\u00e3o",is:"\u00e9",exists:"existe",matches:"corresponde",contains:"cont\u00e9m",includes:"inclui",equals:"igual",has:"tem",have:"tenho",then:"ent\u00e3o",else:"sen\u00e3o",otherwise:"caso_contr\u00e1rio",end:"fim",live:"vivo",changes:"muda"},temporal:{seconds:"segundos",second:"segundo",milliseconds:"milissegundos",millisecond:"milissegundo",minutes:"minutos",minute:"minuto",hours:"horas",hour:"hora",ms:"ms",s:"s",min:"min",h:"h"},values:{true:"verdadeiro",false:"falso",null:"nulo",undefined:"indefinido",it:"isso",its:"seu",me:"eu",my:"meu",myself:"eu mesmo",you:"voc\u00ea",your:"seu",yourself:"voc\u00ea mesmo",element:"elemento",target:"alvo",detail:"detalhe",event:"evento",window:"janela",document:"documento",body:"corpo",result:"resultado",value:"valor"},attributes:{class:"classe",classes:"classes",style:"estilo",styles:"estilos",attribute:"atributo",attributes:"atributos",property:"propriedade",properties:"propriedades"},expressions:{characters:"caracteres",inclusive:"inclusivo",exclusive:"exclusivo",first:"primeiro",last:"\u00faltimo",next:"pr\u00f3ximo",previous:"anterior",prev:"ant",at:"em",random:"aleat\u00f3rio",closest:"maispr\u00f3ximo",parent:"pai",children:"filhos",within:"dentro",no:"nenhum",empty:"vazio",some:"algum","starts with":"come\u00e7a com","ends with":"termina com","ignoring case":"ignorando mai\u00fasculas","sorted by":"ordenado por","mapped to":"mapeado para","split by":"dividido por","joined by":"unido por"}},rc=ql(tc,"pt",{allowEnglishFallback:!0});ql({commands:{on:"su",tell:"dire",trigger:"scatenare",send:"inviare",take:"prendere",put:"mettere",set:"impostare",get:"ottenere",add:"aggiungere",remove:"rimuovere",toggle:"commutare",hide:"nascondere",show:"mostrare",if:"se",unless:"salvo",repeat:"ripetere",for:"per",while:"mentre",until:"fino",continue:"continuare",break:"interrompere",halt:"fermare",wait:"aspettare",fetch:"recuperare",call:"chiamare",return:"ritornare",make:"fare",log:"registrare",throw:"lanciare",catch:"catturare",measure:"misurare",transition:"transizione",increment:"incrementare",decrement:"decrementare",default:"predefinito",go:"andare",pushUrl:"pushUrl",replaceUrl:"sostituireUrl",copy:"copiare",pick:"scegliere",beep:"beep",js:"js",async:"asincrono",render:"renderizzare",swap:"scambiare",morph:"trasformare",settle:"stabilizzare",append:"accodare",exit:"uscire",install:"installare",breakpoint:"punto-interruzione",clear:"cancellare",close:"chiudere",open:"aprire",select:"selezionare",clone:"clonare",prepend:"anteporre",focus:"focalizzare"},modifiers:{to:"a",from:"da",into:"in",with:"con",at:"a",in:"in",of:"di",as:"come",by:"per",before:"prima",after:"dopo",over:"sopra",under:"sotto",between:"tra",through:"attraverso",without:"senza"},events:{click:"clic",dblclick:"doppioclic",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseentra",mouseleave:"mouseesce",mouseover:"mousesopra",mouseout:"mousefuori",mousemove:"mousemuovi",keydown:"tastogi\u00f9",keyup:"tastosu",keypress:"tastopremi",focus:"fuoco",blur:"sfuocare",change:"cambio",input:"input",submit:"invio",reset:"reimpostare",load:"carica",unload:"scarica",resize:"ridimensiona",scroll:"scorrimento",touchstart:"toccoinizia",touchend:"toccofine",touchmove:"toccomuovi",touchcancel:"toccoannulla"},logical:{when:"quando",where:"dove",and:"e",or:"o",not:"non",is:"\u00e8",exists:"esiste",matches:"corrisponde",contains:"contiene",includes:"include",equals:"uguale",has:"ha",have:"ho",then:"allora",else:"altrimenti",otherwise:"altrimenti",end:"fine",live:"vivo",changes:"cambia"},temporal:{seconds:"secondi",second:"secondo",milliseconds:"millisecondi",millisecond:"millisecondo",minutes:"minuti",minute:"minuto",hours:"ore",hour:"ora",ms:"ms",s:"s",min:"min",h:"h"},values:{true:"vero",false:"falso",null:"nullo",undefined:"indefinito",it:"esso",its:"suo",me:"io",my:"mio",you:"tu",your:"tuo",yourself:"te stesso",myself:"me stesso",element:"elemento",target:"obiettivo",detail:"dettaglio",event:"evento",window:"finestra",document:"documento",body:"corpo",result:"risultato",value:"valore"},attributes:{class:"classe",classes:"classi",style:"stile",styles:"stili",attribute:"attributo",attributes:"attributi",property:"propriet\u00e0",properties:"propriet\u00e0"},expressions:{characters:"caratteri",inclusive:"inclusivo",exclusive:"esclusivo",first:"primo",last:"ultimo",next:"prossimo",previous:"precedente",prev:"prec",at:"a",random:"casuale",closest:"vicino",parent:"genitore",children:"figli",within:"dentro",no:"nessun",empty:"vuoto",some:"qualche","starts with":"inizia con","ends with":"finisce con","ignoring case":"ignorando maiuscole","sorted by":"ordinato per","mapped to":"trasformato in","split by":"diviso per","joined by":"unito per"}},"it",{allowEnglishFallback:!0}),ql({commands:{on:"khi",tell:"n\u00f3i v\u1edbi",trigger:"k\u00edch ho\u1ea1t",send:"g\u1eedi",take:"l\u1ea5y",put:"\u0111\u1eb7t",set:"g\u00e1n",get:"l\u1ea5y gi\u00e1 tr\u1ecb",add:"th\u00eam",remove:"x\u00f3a",toggle:"chuy\u1ec3n \u0111\u1ed5i",hide:"\u1ea9n",show:"hi\u1ec3n th\u1ecb",if:"n\u1ebfu",unless:"tr\u1eeb khi",repeat:"l\u1eb7p l\u1ea1i",for:"v\u1edbi m\u1ed7i",while:"trong khi",until:"cho \u0111\u1ebfn khi",continue:"ti\u1ebfp t\u1ee5c",break:"d\u1eebng",halt:"d\u1eebng l\u1ea1i",wait:"ch\u1edd",fetch:"t\u1ea3i",call:"g\u1ecdi",return:"tr\u1ea3 v\u1ec1",make:"t\u1ea1o",log:"in ra",throw:"n\u00e9m",catch:"b\u1eaft",measure:"\u0111o l\u01b0\u1eddng",transition:"chuy\u1ec3n ti\u1ebfp",increment:"t\u0103ng",decrement:"gi\u1ea3m",default:"m\u1eb7c \u0111\u1ecbnh",go:"\u0111i \u0111\u1ebfn",pushUrl:"pushUrl",replaceUrl:"thayTh\u1ebfUrl",copy:"sao ch\u00e9p",pick:"ch\u1ecdn",beep:"beep",js:"js",async:"b\u1ea5t \u0111\u1ed3ng b\u1ed9",render:"k\u1ebft xu\u1ea5t",swap:"ho\u00e1n \u0111\u1ed5i",morph:"bi\u1ebfn \u0111\u1ed5i",settle:"\u1ed5n \u0111\u1ecbnh",append:"n\u1ed1i",exit:"tho\u00e1t",focus:"t\u1eadp trung",blur:"m\u1ea5t t\u1eadp trung",init:"kh\u1edfi t\u1ea1o",behavior:"h\u00e0nh vi",install:"c\u00e0i \u0111\u1eb7t",clone:"nh\u00e2n b\u1ea3n",prepend:"th\u00eam v\u00e0o \u0111\u1ea7u",else:"kh\u00f4ng th\u00ec",breakpoint:"\u0111i\u1ec3m-d\u1eebng",clear:"t\u1ea9y",close:"\u0111\u00f3ng",open:"m\u1edf",select:"\u0111\u00e1nh-d\u1ea5u"},modifiers:{into:"v\u00e0o",before:"tr\u01b0\u1edbc",after:"sau",then:"r\u1ed3i",end:"k\u1ebft th\u00fac",from:"t\u1eeb",to:"\u0111\u1ebfn",with:"v\u1edbi",as:"nh\u01b0",by:"b\u1edfi",on:"tr\u00ean",in:"trong",at:"t\u1ea1i",of:"c\u1ee7a",between:"gi\u1eefa",the:"",times:"l\u1ea7n"},events:{click:"nh\u1ea5p",dblclick:"dblclick",input:"nh\u1eadp",change:"change",submit:"n\u1ed9p",keydown:"keydown",keyup:"keyup",keypress:"keypress",mouseover:"mouseover",mouseout:"mouseout",mouseenter:"mouseenter",mouseleave:"mouseleave",focus:"focus",blur:"blur",reset:"reset",load:"load",scroll:"cu\u1ed9n",resize:"\u0111\u1ed5i k\u00edch th\u01b0\u1edbc"},logical:{when:"khi",where:"\u1edf_\u0111\u00e2u",and:"v\u00e0",or:"ho\u1eb7c",not:"kh\u00f4ng",is:"l\u00e0",equals:"b\u1eb1ng",contains:"ch\u1ee9a",matches:"kh\u1edbp",exists:"t\u1ed3n t\u1ea1i",has:"c\u00f3",have:"c\u00f3",empty:"tr\u1ed1ng",true:"\u0111\u00fang",false:"sai",null:"r\u1ed7ng",else:"kh\u00f4ng th\u00ec",end:"k\u1ebft th\u00fac",then:"r\u1ed3i",live:"live",changes:"thay \u0111\u1ed5i"},temporal:{now:"b\u00e2y gi\u1edd",today:"h\u00f4m nay",tomorrow:"ng\u00e0y mai",yesterday:"h\u00f4m qua",always:"lu\u00f4n lu\u00f4n",never:"kh\u00f4ng bao gi\u1edd",sometimes:"\u0111\u00f4i khi",once:"m\u1ed9t l\u1ea7n",twice:"hai l\u1ea7n",forever:"m\u00e3i m\u00e3i"},values:{true:"\u0111\u00fang",false:"sai",null:"r\u1ed7ng",undefined:"kh\u00f4ng x\u00e1c \u0111\u1ecbnh",none:"kh\u00f4ng c\u00f3",all:"t\u1ea5t c\u1ea3",any:"b\u1ea5t k\u1ef3",some:"m\u1ed9t s\u1ed1",each:"m\u1ed7i",every:"t\u1ea5t c\u1ea3",body:"body",event:"s\u1ef1 ki\u1ec7n",it:"n\u00f3",its:"c\u1ee7a n\u00f3",me:"t\u00f4i",my:"c\u1ee7a t\u00f4i",result:"k\u1ebft qu\u1ea3",target:"m\u1ee5c ti\u00eau",you:"b\u1ea1n",your:"c\u1ee7a b\u1ea1n"},attributes:{id:"id",class:"l\u1edbp",style:"ki\u1ec3u",value:"gi\u00e1 tr\u1ecb",text:"v\u0103n b\u1ea3n",html:"html",src:"ngu\u1ed3n",href:"li\u00ean k\u1ebft",disabled:"v\u00f4 hi\u1ec7u",hidden:"\u1ea9n",checked:"\u0111\u01b0\u1ee3c ch\u1ecdn",selected:"\u0111\u01b0\u1ee3c ch\u1ecdn"},expressions:{random:"ng\u1eabu nhi\u00ean",characters:"k\u00fd t\u1ef1",inclusive:"bao g\u1ed3m",exclusive:"lo\u1ea1i tr\u1eeb",me:"t\u00f4i",my:"c\u1ee7a t\u00f4i",it:"n\u00f3",its:"c\u1ee7a n\u00f3",result:"k\u1ebft qu\u1ea3",event:"s\u1ef1 ki\u1ec7n",target:"m\u1ee5c ti\u00eau",first:"\u0111\u1ea7u ti\u00ean",last:"cu\u1ed1i c\u00f9ng",next:"ti\u1ebfp theo",previous:"tr\u01b0\u1edbc \u0111\u00f3",parent:"cha",children:"con",closest:"g\u1ea7n nh\u1ea5t",empty:"l\u00e0m-r\u1ed7ng","starts with":"b\u1eaft \u0111\u1ea7u b\u1eb1ng","ends with":"k\u1ebft th\u00fac b\u1eb1ng","ignoring case":"kh\u00f4ng ph\u00e2n bi\u1ec7t hoa th\u01b0\u1eddng","sorted by":"s\u1eafp x\u1ebfp theo","mapped to":"\u00e1nh x\u1ea1 th\u00e0nh","split by":"t\u00e1ch b\u1edfi","joined by":"n\u1ed1i b\u1edfi"}},"vi",{allowEnglishFallback:!0}),ql({commands:{on:"gdy",tell:"powiedz",trigger:"wyzw\u00f3l",send:"wy\u015blij",take:"we\u017a",put:"umie\u015b\u0107",set:"ustaw",get:"uzyskaj",add:"dodaj",remove:"usu\u0144",toggle:"prze\u0142\u0105cz",blur:"rozmyj",hide:"ukryj",show:"poka\u017c",if:"je\u015bli",unless:"chyba",repeat:"powt\u00f3rz",for:"dla",while:"dop\u00f3ki",until:"a\u017c",continue:"kontynuuj",break:"przerwij",halt:"zatrzymaj",wait:"czekaj",fetch:"pobierz",call:"wywo\u0142aj",return:"zwr\u00f3\u0107",make:"utw\u00f3rz",log:"loguj",throw:"rzu\u0107",catch:"z\u0142ap",measure:"zmierz",transition:"animuj",increment:"zwi\u0119ksz",decrement:"zmniejsz",default:"domy\u015blnie",go:"id\u017a",pushUrl:"dodajUrl",replaceUrl:"zamie\u0144Url",copy:"kopiuj",pick:"wybierz",beep:"sygna\u0142",js:"js",async:"async",render:"renderuj",swap:"zamie\u0144",morph:"przekszta\u0142\u0107",settle:"ustabilizuj",append:"do\u0142\u0105cz",exit:"wyjd\u017a",install:"zainstaluj",breakpoint:"punkt-przerwania",clear:"zeruj",close:"zamknij",open:"otw\u00f3rz",select:"zaznacz",clone:"sklonuj",prepend:"poprzed\u017a",focus:"skup"},modifiers:{to:"do",from:"z",into:"do",with:"z",at:"przy",in:"w",of:"z",as:"jako",by:"przez",before:"przed",after:"po",over:"nad",under:"pod",between:"mi\u0119dzy",through:"przez",without:"bez"},events:{click:"klikni\u0119cie",dblclick:"podw\u00f3jneklikni\u0119cie",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"myszwej\u015bcie",mouseleave:"myszwyj\u015bcie",mouseover:"mysznad",mouseout:"myszpoza",mousemove:"myszruch",keydown:"klawiszd\u00f3\u0142",keyup:"klawiszg\u00f3ra",keypress:"klawisznaci\u015bni\u0119cie",focus:"fokus",blur:"rozmycie",change:"zmiana",input:"wej\u015bcie",submit:"wys\u0142aniu",reset:"zresetuj",load:"za\u0142aduj",unload:"wy\u0142aduj",resize:"zmiana rozmiaru",scroll:"przewi\u0144",touchstart:"dotykstart",touchend:"dotykkoniec",touchmove:"dotykruch",touchcancel:"dotykanuluj"},logical:{when:"kiedy",where:"gdzie",and:"i",or:"lub",not:"nie",is:"jest",exists:"istnieje",matches:"pasuje",contains:"zawiera",includes:"obejmuje",equals:"r\u00f3wna si\u0119",has:"ma",have:"mam",then:"wtedy",else:"inaczej",otherwise:"wpp",end:"koniec",live:"\u017cywy",changes:"zmienia"},temporal:{seconds:"sekundy",second:"sekunda",milliseconds:"milisekundy",millisecond:"milisekunda",minutes:"minuty",minute:"minuta",hours:"godziny",hour:"godzina",ms:"ms",s:"s",min:"min",h:"godz"},values:{true:"prawda",false:"fa\u0142sz",null:"null",undefined:"niezdefiniowane",it:"to",its:"jego",me:"ja",my:"m\u00f3j",you:"ty",your:"tw\u00f3j",yourself:"ty sam",myself:"ja sam",element:"element",target:"cel",detail:"szczeg\u00f3\u0142",event:"zdarzenie",window:"okno",document:"dokument",body:"body",result:"wynik",value:"warto\u015b\u0107"},attributes:{class:"klasa",classes:"klasy",style:"styl",styles:"style",attribute:"atrybut",attributes:"atrybuty",property:"w\u0142a\u015bciwo\u015b\u0107",properties:"w\u0142a\u015bciwo\u015bci"},expressions:{characters:"znaki",inclusive:"w\u0142\u0105cznie",exclusive:"wy\u0142\u0105cznie",first:"pierwszy",last:"ostatni",next:"nast\u0119pny",previous:"poprzedni",prev:"poprz",at:"przy",random:"losowy",closest:"najbli\u017cszy",parent:"rodzic",children:"dzieci",within:"wewn\u0105trz",no:"brak",empty:"pusty",some:"jaki\u015b","starts with":"zaczyna si\u0119 od","ends with":"ko\u0144czy si\u0119 na","ignoring case":"ignoruj\u0105c wielko\u015b\u0107 liter","sorted by":"sortowane wed\u0142ug","mapped to":"przekszta\u0142cone na","split by":"podzielone przez","joined by":"po\u0142\u0105czone przez"}},"pl",{allowEnglishFallback:!0}),ql({commands:{on:"\u043f\u0440\u0438",tell:"\u0441\u043a\u0430\u0437\u0430\u0442\u044c",trigger:"\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c",send:"\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c",take:"\u0432\u0437\u044f\u0442\u044c",put:"\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c",set:"\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",get:"\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c",add:"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c",remove:"\u0443\u0434\u0430\u043b\u0438\u0442\u044c",toggle:"\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c",hide:"\u0441\u043a\u0440\u044b\u0442\u044c",show:"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c",if:"\u0435\u0441\u043b\u0438",unless:"\u043a\u0440\u043e\u043c\u0435",repeat:"\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c",for:"\u0434\u043b\u044f",while:"\u043f\u043e\u043a\u0430",until:"\u0434\u043e",continue:"\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c",break:"\u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c",halt:"\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",wait:"\u0436\u0434\u0430\u0442\u044c",fetch:"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",call:"\u0432\u044b\u0437\u0432\u0430\u0442\u044c",return:"\u0432\u0435\u0440\u043d\u0443\u0442\u044c",make:"\u0441\u043e\u0437\u0434\u0430\u0442\u044c",log:"\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c",throw:"\u0431\u0440\u043e\u0441\u0438\u0442\u044c",catch:"\u043f\u043e\u0439\u043c\u0430\u0442\u044c",measure:"\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c",transition:"\u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c",increment:"\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c",decrement:"\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c",default:"\u043f\u043e_\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e",go:"\u043f\u0435\u0440\u0435\u0439\u0442\u0438",pushUrl:"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c_url",replaceUrl:"\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c_url",copy:"\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",pick:"\u0432\u044b\u0431\u0440\u0430\u0442\u044c",beep:"\u0437\u0432\u0443\u043a",js:"js",async:"\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e",render:"\u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c",swap:"\u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c",morph:"\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c",settle:"\u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c",append:"\u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c",exit:"\u0432\u044b\u0439\u0442\u0438",else:"\u0438\u043d\u0430\u0447\u0435",install:"\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c",init:"\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c",behavior:"\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435",focus:"\u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c",blur:"\u0440\u0430\u0437\u043c\u044b\u0442\u044c",clone:"\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c",prepend:"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u043e",breakpoint:"\u0442\u043e\u0447\u043a\u0430-\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430",clear:"\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c",close:"\u0437\u0430\u043a\u0440\u044b\u0442\u044c",open:"\u043e\u0442\u043a\u0440\u044b\u0442\u044c",select:"\u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c"},modifiers:{to:"\u043a",from:"\u0438\u0437",into:"\u0432",with:"\u0441",at:"\u0443",in:"\u0432",of:"\u0438\u0437",as:"\u043a\u0430\u043a",by:"\u043d\u0430",before:"\u0434\u043e",after:"\u043f\u043e\u0441\u043b\u0435",over:"\u043d\u0430\u0434",under:"\u043f\u043e\u0434",between:"\u043c\u0435\u0436\u0434\u0443",through:"\u0447\u0435\u0440\u0435\u0437",without:"\u0431\u0435\u0437",on:"\u043d\u0430"},events:{click:"\u043a\u043b\u0438\u043a",dblclick:"\u0434\u0432\u043e\u0439\u043d\u043e\u0439_\u043a\u043b\u0438\u043a",mousedown:"\u043c\u044b\u0448\u044c\u0432\u043d\u0438\u0437",mouseup:"\u043c\u044b\u0448\u044c\u0432\u0432\u0435\u0440\u0445",mouseenter:"\u043c\u044b\u0448\u044c_\u0432\u0445\u043e\u0434",mouseleave:"\u043c\u044b\u0448\u044c_\u0432\u044b\u0445\u043e\u0434",mouseover:"\u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0435",mouseout:"\u0443\u0445\u043e\u0434",mousemove:"\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435_\u043c\u044b\u0448\u0438",keydown:"\u043a\u043b\u0430\u0432\u0438\u0448\u0430_\u0432\u043d\u0438\u0437",keyup:"\u043a\u043b\u0430\u0432\u0438\u0448\u0430_\u0432\u0432\u0435\u0440\u0445",keypress:"\u043d\u0430\u0436\u0430\u0442\u0438\u0435_\u043a\u043b\u0430\u0432\u0438\u0448\u0438",focus:"\u0444\u043e\u043a\u0443\u0441",blur:"\u043f\u043e\u0442\u0435\u0440\u044f_\u0444\u043e\u043a\u0443\u0441\u0430",change:"\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435",input:"\u0432\u0432\u043e\u0434",submit:"\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430",reset:"\u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c",load:"\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430",unload:"\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430",resize:"\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u0440\u0430\u0437\u043c\u0435\u0440\u0430",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430",touchstart:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u043d\u0430\u0447\u0430\u043b\u043e",touchend:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u043a\u043e\u043d\u0435\u0446",touchmove:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435",touchcancel:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u043e\u0442\u043c\u0435\u043d\u0430"},logical:{when:"\u043a\u043e\u0433\u0434\u0430",where:"\u0433\u0434\u0435",and:"\u0438",or:"\u0438\u043b\u0438",not:"\u043d\u0435",is:"\u0435\u0441\u0442\u044c",exists:"\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",matches:"\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442",contains:"\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442",includes:"\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442",equals:"\u0440\u0430\u0432\u043d\u043e",then:"\u0437\u0430\u0442\u0435\u043c",else:"\u0438\u043d\u0430\u0447\u0435",otherwise:"\u0432_\u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c_\u0441\u043b\u0443\u0447\u0430\u0435",end:"\u043a\u043e\u043d\u0435\u0446",live:"\u0436\u0438\u0432\u043e\u0439",changes:"\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f",has:"\u0438\u043c\u0435\u0435\u0442",have:"\u0438\u043c\u0435\u044e",isNot:"\u043d\u0435_\u0435\u0441\u0442\u044c",empty:"\u043f\u0443\u0441\u0442\u043e\u0439"},temporal:{seconds:"\u0441\u0435\u043a\u0443\u043d\u0434",second:"\u0441\u0435\u043a\u0443\u043d\u0434\u0430",milliseconds:"\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434",millisecond:"\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430",minutes:"\u043c\u0438\u043d\u0443\u0442",minute:"\u043c\u0438\u043d\u0443\u0442\u0430",hours:"\u0447\u0430\u0441\u043e\u0432",hour:"\u0447\u0430\u0441",ms:"\u043c\u0441",s:"\u0441",min:"\u043c\u0438\u043d",h:"\u0447",forever:"\u0432\u0441\u0435\u0433\u0434\u0430",once:"\u043e\u0434\u043d\u0430\u0436\u0434\u044b",every:"\u043a\u0430\u0436\u0434\u044b\u0439",until:"\u0434\u043e"},values:{true:"\u0438\u0441\u0442\u0438\u043d\u0430",false:"\u043b\u043e\u0436\u044c",null:"\u043d\u0438\u0447\u0435\u0433\u043e",undefined:"\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e",it:"\u044d\u0442\u043e",its:"\u0435\u0433\u043e",me:"\u044f",my:"\u043c\u043e\u0439",you:"\u0442\u044b",your:"\u0442\u0432\u043e\u0439",yourself:"\u0441\u0430\u043c",myself:"\u044f_\u0441\u0430\u043c",element:"\u044d\u043b\u0435\u043c\u0435\u043d\u0442",target:"\u0446\u0435\u043b\u044c",detail:"\u0434\u0435\u0442\u0430\u043b\u0438",event:"\u0441\u043e\u0431\u044b\u0442\u0438\u0435",window:"\u043e\u043a\u043d\u043e",document:"\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",body:"\u0442\u0435\u043b\u043e",result:"\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442",value:"\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435",first:"\u043f\u0435\u0440\u0432\u044b\u0439",last:"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439",next:"\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439",previous:"\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439",closest:"\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439",parent:"\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c"},attributes:{class:"\u043a\u043b\u0430\u0441\u0441",classes:"\u043a\u043b\u0430\u0441\u0441\u044b",style:"\u0441\u0442\u0438\u043b\u044c",styles:"\u0441\u0442\u0438\u043b\u0438",attribute:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442",attributes:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b",property:"\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e",properties:"\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430",disabled:"\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e",hidden:"\u0441\u043a\u0440\u044b\u0442\u043e",checked:"\u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e",selected:"\u0432\u044b\u0431\u0440\u0430\u043d\u043e",readonly:"\u0442\u043e\u043b\u044c\u043a\u043e_\u0447\u0442\u0435\u043d\u0438\u0435",required:"\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e",text:"\u0442\u0435\u043a\u0441\u0442",html:"html"},expressions:{characters:"\u0441\u0438\u043c\u0432\u043e\u043b\u044b",inclusive:"\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e",exclusive:"\u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e",first:"\u043f\u0435\u0440\u0432\u044b\u0439",last:"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439",next:"\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439",previous:"\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439",prev:"\u043f\u0440\u0435\u0434",at:"\u0432",random:"\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439",closest:"\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439",parent:"\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c",children:"\u0434\u0435\u0442\u0438",within:"\u0432\u043d\u0443\u0442\u0440\u0438",no:"\u043d\u0435\u0442",empty:"\u043f\u0443\u0441\u0442\u043e\u0439",some:"\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435","starts with":"\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f_\u0441","ends with":"\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f_\u043d\u0430","ignoring case":"\u0431\u0435\u0437_\u0443\u0447\u0451\u0442\u0430_\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430","sorted by":"\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e_\u043f\u043e","mapped to":"\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043e_\u0432","split by":"\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043e_\u043f\u043e","joined by":"\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e_\u0447\u0435\u0440\u0435\u0437"}},"ru",{allowEnglishFallback:!0}),ql({commands:{on:"\u043f\u0440\u0438",tell:"\u0441\u043a\u0430\u0437\u0430\u0442\u0438",trigger:"\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438",send:"\u043d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438",take:"\u0432\u0437\u044f\u0442\u0438",put:"\u043f\u043e\u043a\u043b\u0430\u0441\u0442\u0438",set:"\u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438",get:"\u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438",add:"\u0434\u043e\u0434\u0430\u0442\u0438",remove:"\u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438",toggle:"\u043f\u0435\u0440\u0435\u043c\u043a\u043d\u0443\u0442\u0438",hide:"\u0441\u0445\u043e\u0432\u0430\u0442\u0438",show:"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0438",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0438",if:"\u044f\u043a\u0449\u043e",unless:"\u043a\u0440\u0456\u043c",repeat:"\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0438",for:"\u0434\u043b\u044f",while:"\u043f\u043e\u043a\u0438",until:"\u0434\u043e",continue:"\u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438",break:"\u043f\u0435\u0440\u0435\u0440\u0432\u0430\u0442\u0438",halt:"\u0437\u0443\u043f\u0438\u043d\u0438\u0442\u0438",wait:"\u0447\u0435\u043a\u0430\u0442\u0438",fetch:"\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438",call:"\u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0442\u0438",return:"\u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438",make:"\u0441\u0442\u0432\u043e\u0440\u0438\u0442\u0438",log:"\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u0438",throw:"\u043a\u0438\u043d\u0443\u0442\u0438",catch:"\u0437\u043b\u043e\u0432\u0438\u0442\u0438",measure:"\u0432\u0438\u043c\u0456\u0440\u044f\u0442\u0438",transition:"\u0430\u043d\u0456\u043c\u0443\u0432\u0430\u0442\u0438",increment:"\u0437\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438",decrement:"\u0437\u043c\u0435\u043d\u0448\u0438\u0442\u0438",default:"\u0437\u0430_\u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c",go:"\u043f\u0435\u0440\u0435\u0439\u0442\u0438",pushUrl:"\u0434\u043e\u0434\u0430\u0442\u0438_url",replaceUrl:"\u0437\u0430\u043c\u0456\u043d\u0438\u0442\u0438_url",copy:"\u043a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438",pick:"\u0432\u0438\u0431\u0440\u0430\u0442\u0438",beep:"\u0437\u0432\u0443\u043a",js:"js",async:"\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e",render:"\u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438",swap:"\u043f\u043e\u043c\u0456\u043d\u044f\u0442\u0438",morph:"\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0443\u0432\u0430\u0442\u0438",settle:"\u0441\u0442\u0430\u0431\u0456\u043b\u0456\u0437\u0443\u0432\u0430\u0442\u0438",append:"\u0434\u043e\u043f\u0438\u0441\u0430\u0442\u0438",exit:"\u0432\u0438\u0439\u0442\u0438",else:"\u0456\u043d\u0430\u043a\u0448\u0435",install:"\u0456\u043d\u0441\u0442\u0430\u043b\u044e\u0432\u0430\u0442\u0438",init:"\u0456\u043d\u0456\u0446\u0456\u0430\u043b\u0456\u0437\u0443\u0432\u0430\u0442\u0438",behavior:"\u043f\u043e\u0432\u0435\u0434\u0456\u043d\u043a\u0430",focus:"\u0441\u0444\u043e\u043a\u0443\u0441\u0443\u0432\u0430\u0442\u0438",blur:"\u0440\u043e\u0437\u0444\u043e\u043a\u0443\u0441\u0443\u0432\u0430\u0442\u0438",clone:"\u043a\u043b\u043e\u043d\u0443\u0432\u0430\u0442\u0438",prepend:"\u0434\u043e\u0434\u0430\u0442\u0438 \u043d\u0430 \u043f\u043e\u0447\u0430\u0442\u043e\u043a",breakpoint:"\u0442\u043e\u0447\u043a\u0430-\u0437\u0443\u043f\u0438\u043d\u043a\u0438",clear:"\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u0438",close:"\u0437\u0430\u043a\u0440\u0438\u0442\u0438",open:"\u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438",select:"\u0432\u0438\u0434\u0456\u043b\u0438\u0442\u0438"},modifiers:{to:"\u0434\u043e",from:"\u0437",into:"\u0432",with:"\u0437",at:"\u0432",in:"\u0443",of:"\u0437",as:"\u044f\u043a",by:"\u043d\u0430",before:"\u0434\u043e",after:"\u043f\u0456\u0441\u043b\u044f",over:"\u043d\u0430\u0434",under:"\u043f\u0456\u0434",between:"\u043c\u0456\u0436",through:"\u0447\u0435\u0440\u0435\u0437",without:"\u0431\u0435\u0437",on:"\u043d\u0430"},events:{click:"\u043a\u043b\u0456\u043a",dblclick:"\u043f\u043e\u0434\u0432\u0456\u0439\u043d\u0438\u0439_\u043a\u043b\u0456\u043a",mousedown:"\u043c\u0438\u0448\u0430\u0432\u043d\u0438\u0437",mouseup:"\u043c\u0438\u0448\u0430\u0432\u0433\u043e\u0440\u0443",mouseenter:"\u043c\u0438\u0448\u0430_\u0432\u0445\u0456\u0434",mouseleave:"\u043c\u0438\u0448\u0430_\u0432\u0438\u0445\u0456\u0434",mouseover:"\u043d\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u044f",mouseout:"\u0432\u0456\u0434\u0432\u0435\u0434\u0435\u043d\u043d\u044f",mousemove:"\u0440\u0443\u0445_\u043c\u0438\u0448\u0456",keydown:"\u043a\u043b\u0430\u0432\u0456\u0448\u0430_\u0432\u043d\u0438\u0437",keyup:"\u043a\u043b\u0430\u0432\u0456\u0448\u0430_\u0432\u0433\u043e\u0440\u0443",keypress:"\u043d\u0430\u0442\u0438\u0441\u043a\u0430\u043d\u043d\u044f_\u043a\u043b\u0430\u0432\u0456\u0448\u0456",focus:"\u0444\u043e\u043a\u0443\u0441",blur:"\u0440\u043e\u0437\u0444\u043e\u043a\u0443\u0441",change:"\u0437\u043c\u0456\u043d\u0430",input:"\u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f",submit:"\u043d\u0430\u0434\u0441\u0438\u043b\u0430\u043d\u043d\u044f",reset:"\u0441\u043a\u0438\u043d\u0443\u0442\u0438",load:"\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f",unload:"\u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f",resize:"\u0437\u043c\u0456\u043d\u0430\u0440\u043e\u0437\u043c\u0456\u0440\u0443",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430",touchstart:"\u0434\u043e\u0442\u0438\u043a_\u043f\u043e\u0447\u0430\u0442\u043e\u043a",touchend:"\u0434\u043e\u0442\u0438\u043a_\u043a\u0456\u043d\u0435\u0446\u044c",touchmove:"\u0434\u043e\u0442\u0438\u043a_\u0440\u0443\u0445",touchcancel:"\u0434\u043e\u0442\u0438\u043a_\u0441\u043a\u0430\u0441\u0443\u0432\u0430\u043d\u043d\u044f"},logical:{when:"\u043a\u043e\u043b\u0438",where:"\u0434\u0435",and:"\u0456",or:"\u0430\u0431\u043e",not:"\u043d\u0435",is:"\u0454",exists:"\u0456\u0441\u043d\u0443\u0454",matches:"\u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0454",contains:"\u043c\u0456\u0441\u0442\u0438\u0442\u044c",includes:"\u0432\u043a\u043b\u044e\u0447\u0430\u0454",equals:"\u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454",then:"\u0442\u043e\u0434\u0456",else:"\u0456\u043d\u0430\u043a\u0448\u0435",otherwise:"\u0432_\u0456\u043d\u0448\u043e\u043c\u0443_\u0432\u0438\u043f\u0430\u0434\u043a\u0443",end:"\u043a\u0456\u043d\u0435\u0446\u044c",live:"\u0436\u0438\u0432\u0438\u0439",changes:"\u0437\u043c\u0456\u043d\u044e\u0454\u0442\u044c\u0441\u044f",has:"\u043c\u0430\u0454",have:"\u043c\u0430\u044e",isNot:"\u043d\u0435_\u0454",empty:"\u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439"},temporal:{seconds:"\u0441\u0435\u043a\u0443\u043d\u0434",second:"\u0441\u0435\u043a\u0443\u043d\u0434\u0430",milliseconds:"\u043c\u0456\u043b\u0456\u0441\u0435\u043a\u0443\u043d\u0434",millisecond:"\u043c\u0456\u043b\u0456\u0441\u0435\u043a\u0443\u043d\u0434\u0430",minutes:"\u0445\u0432\u0438\u043b\u0438\u043d",minute:"\u0445\u0432\u0438\u043b\u0438\u043d\u0430",hours:"\u0433\u043e\u0434\u0438\u043d",hour:"\u0433\u043e\u0434\u0438\u043d\u0430",ms:"\u043c\u0441",s:"\u0441",min:"\u0445\u0432",h:"\u0433\u043e\u0434",forever:"\u0437\u0430\u0432\u0436\u0434\u0438",once:"\u043e\u0434\u0438\u043d_\u0440\u0430\u0437",every:"\u043a\u043e\u0436\u043d\u0438\u0439",until:"\u0434\u043e"},values:{true:"\u0456\u0441\u0442\u0438\u043d\u0430",false:"\u0445\u0438\u0431\u043d\u0456\u0441\u0442\u044c",null:"\u043d\u0456\u0447\u043e\u0433\u043e",undefined:"\u043d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043e",it:"\u0446\u0435",its:"\u0439\u043e\u0433\u043e",me:"\u044f",my:"\u043c\u0456\u0439",you:"\u0442\u0438",your:"\u0442\u0432\u0456\u0439",yourself:"\u0441\u0430\u043c",myself:"\u044f_\u0441\u0430\u043c",element:"\u0435\u043b\u0435\u043c\u0435\u043d\u0442",target:"\u0446\u0456\u043b\u044c",detail:"\u0434\u0435\u0442\u0430\u043b\u0456",event:"\u043f\u043e\u0434\u0456\u044f",window:"\u0432\u0456\u043a\u043d\u043e",document:"\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",body:"\u0442\u0456\u043b\u043e",result:"\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442",value:"\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f",first:"\u043f\u0435\u0440\u0448\u0438\u0439",last:"\u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439",next:"\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439",previous:"\u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439",closest:"\u043d\u0430\u0439\u0431\u043b\u0438\u0436\u0447\u0438\u0439",parent:"\u0431\u0430\u0442\u044c\u043a\u0456\u0432\u0441\u044c\u043a\u0438\u0439"},attributes:{class:"\u043a\u043b\u0430\u0441",classes:"\u043a\u043b\u0430\u0441\u0438",style:"\u0441\u0442\u0438\u043b\u044c",styles:"\u0441\u0442\u0438\u043b\u0456",attribute:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442",attributes:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438",property:"\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c",properties:"\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456",disabled:"\u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e",hidden:"\u043f\u0440\u0438\u0445\u043e\u0432\u0430\u043d\u043e",checked:"\u043f\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043e",selected:"\u0432\u0438\u0431\u0440\u0430\u043d\u043e",readonly:"\u043b\u0438\u0448\u0435_\u0447\u0438\u0442\u0430\u043d\u043d\u044f",required:"\u043e\u0431\u043e\u0432'\u044f\u0437\u043a\u043e\u0432\u043e",text:"\u0442\u0435\u043a\u0441\u0442",html:"html"},expressions:{characters:"\u0441\u0438\u043c\u0432\u043e\u043b\u0438",inclusive:"\u0432\u043a\u043b\u044e\u0447\u043d\u043e",exclusive:"\u0432\u0438\u043a\u043b\u044e\u0447\u043d\u043e",first:"\u043f\u0435\u0440\u0448\u0438\u0439",last:"\u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439",next:"\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439",previous:"\u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439",prev:"\u043f\u043e\u043f\u0435\u0440",at:"\u0432",random:"\u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0438\u0439",closest:"\u043d\u0430\u0439\u0431\u043b\u0438\u0436\u0447\u0438\u0439",parent:"\u0431\u0430\u0442\u044c\u043a\u0456\u0432\u0441\u044c\u043a\u0438\u0439",children:"\u0434\u0456\u0442\u0438",within:"\u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0456",no:"\u043d\u0456",empty:"\u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439",some:"\u0434\u0435\u044f\u043a\u0456","starts with":"\u043f\u043e\u0447\u0438\u043d\u0430\u0454\u0442\u044c\u0441\u044f_\u0437","ends with":"\u0437\u0430\u043a\u0456\u043d\u0447\u0443\u0454\u0442\u044c\u0441\u044f_\u043d\u0430","ignoring case":"\u0431\u0435\u0437_\u0443\u0440\u0430\u0445\u0443\u0432\u0430\u043d\u043d\u044f_\u0440\u0435\u0433\u0456\u0441\u0442\u0440\u0443","sorted by":"\u0432\u0456\u0434\u0441\u043e\u0440\u0442\u043e\u0432\u0430\u043d\u043e_\u0437\u0430","mapped to":"\u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043e_\u043d\u0430","split by":"\u0440\u043e\u0437\u0434\u0456\u043b\u0435\u043d\u043e_\u0437\u0430","joined by":"\u043e\u0431'\u0454\u0434\u043d\u0430\u043d\u043e_\u0447\u0435\u0440\u0435\u0437"}},"uk",{allowEnglishFallback:!0}),ql({commands:{on:"\u092a\u0930",tell:"\u092c\u0924\u093e\u090f\u0902",trigger:"\u091f\u094d\u0930\u093f\u0917\u0930",send:"\u092d\u0947\u091c\u0947\u0902",take:"\u0932\u0947\u0902",put:"\u0930\u0916\u0947\u0902",set:"\u0938\u0947\u091f",get:"\u092a\u094d\u0930\u093e\u092a\u094d\u0924",add:"\u091c\u094b\u0921\u093c\u0947\u0902",remove:"\u0939\u091f\u093e\u090f\u0902",toggle:"\u091f\u0949\u0917\u0932",hide:"\u091b\u093f\u092a\u093e\u090f\u0902",show:"\u0926\u093f\u0916\u093e\u090f\u0902",if:"\u0905\u0917\u0930",unless:"\u091c\u092c \u0924\u0915 \u0928\u0939\u0940\u0902",repeat:"\u0926\u094b\u0939\u0930\u093e\u090f\u0902",for:"\u0939\u0947\u0924\u0941",while:"\u091c\u092c \u0924\u0915",until:"\u0924\u0915",continue:"\u091c\u093e\u0930\u0940",break:"\u0930\u094b\u0915\u0947\u0902",halt:"\u0930\u094b\u0915\u0947\u0902",wait:"\u092a\u094d\u0930\u0924\u0940\u0915\u094d\u0937\u093e",fetch:"\u0932\u093e\u090f\u0902",call:"\u0915\u0949\u0932",return:"\u0932\u094c\u091f\u093e\u090f\u0902",make:"\u092c\u0928\u093e\u090f\u0902",log:"\u0932\u0949\u0917",throw:"\u092b\u0947\u0902\u0915\u0947\u0902",catch:"\u092a\u0915\u0921\u093c\u0947\u0902",measure:"\u092e\u093e\u092a\u0947\u0902",transition:"\u0938\u0902\u0915\u094d\u0930\u092e\u0923",increment:"\u092c\u0922\u093c\u093e\u090f\u0902",decrement:"\u0918\u091f\u093e\u090f\u0902",default:"\u0921\u093f\u092b\u093c\u0949\u0932\u094d\u091f",go:"\u091c\u093e\u090f\u0902",pushUrl:"url_\u091c\u094b\u0921\u093c\u0947\u0902",replaceUrl:"url_\u092c\u0926\u0932\u0947\u0902",copy:"\u0915\u0949\u092a\u0940",pick:"\u091a\u0941\u0928\u0947\u0902",beep:"\u092c\u0940\u092a",js:"\u091c\u0947\u090f\u0938",async:"\u0905\u0938\u093f\u0902\u0915",render:"\u0930\u0947\u0902\u0921\u0930",swap:"\u0935\u093f\u0928\u093f\u092e\u092f",morph:"\u0930\u0942\u092a\u093e\u0902\u0924\u0930",settle:"\u0938\u094d\u0925\u093f\u0930",append:"\u0938\u0902\u0932\u0917\u094d\u0928",exit:"\u092c\u093e\u0939\u0930",else:"\u0935\u0930\u0928\u093e",install:"\u0907\u0902\u0938\u094d\u091f\u0949\u0932",init:"\u092a\u094d\u0930\u093e\u0930\u0902\u092d",behavior:"\u0935\u094d\u092f\u0935\u0939\u093e\u0930",focus:"\u092b\u094b\u0915\u0938",blur:"\u0927\u0941\u0902\u0927\u0932\u093e",clone:"\u0915\u094d\u0932\u094b\u0928",prepend:"\u091c\u094b\u0921\u093c\u0947\u0902_\u0936\u0941\u0930\u0942",breakpoint:"\u092c\u094d\u0930\u0947\u0915\u092a\u094d\u0935\u093e\u0907\u0902\u091f",clear:"\u0938\u093e\u092b\u093c-\u0915\u0930\u0947\u0902",close:"\u092c\u0902\u0926-\u0915\u0930\u0947\u0902",open:"\u0916\u094b\u0932\u0947\u0902",select:"\u091a\u093f\u0939\u094d\u0928\u093f\u0924-\u0915\u0930\u0947\u0902",socket:"\u0938\u0949\u0915\u0947\u091f"},modifiers:{to:"\u0915\u094b",from:"\u0938\u0947",into:"\u092e\u0947\u0902",with:"\u0915\u0947_\u0938\u093e\u0925",at:"\u092a\u0930",in:"\u092e\u0947\u0902",of:"\u0915\u093e",as:"\u0915\u0947_\u0930\u0942\u092a_\u092e\u0947\u0902",by:"\u0926\u094d\u0935\u093e\u0930\u093e",before:"\u0938\u0947 \u092a\u0939\u0932\u0947",after:"\u0915\u0947 \u092c\u093e\u0926",over:"\u0915\u0947_\u090a\u092a\u0930",under:"\u0915\u0947_\u0928\u0940\u091a\u0947",between:"\u0915\u0947_\u092c\u0940\u091a",through:"\u0915\u0947_\u092e\u093e\u0927\u094d\u092f\u092e_\u0938\u0947",without:"\u0915\u0947_\u092c\u093f\u0928\u093e",on:"\u092a\u0930"},events:{click:"\u0915\u094d\u0932\u093f\u0915",dblclick:"\u0921\u092c\u0932_\u0915\u094d\u0932\u093f\u0915",mousedown:"\u092e\u093e\u0909\u0938\u0928\u0940\u091a\u0947",mouseup:"\u092e\u093e\u0909\u0938\u090a\u092a\u0930",mouseenter:"\u092e\u093e\u0909\u0938_\u092a\u094d\u0930\u0935\u0947\u0936",mouseleave:"\u092e\u093e\u0909\u0938_\u092c\u093e\u0939\u0930",mouseover:"\u092e\u093e\u0909\u0938_\u0913\u0935\u0930",mouseout:"\u092e\u093e\u0909\u0938_\u0906\u0909\u091f",mousemove:"\u092e\u093e\u0909\u0938_\u092e\u0942\u0935",keydown:"\u0915\u0940_\u0928\u0940\u091a\u0947",keyup:"\u0915\u0940_\u090a\u092a\u0930",keypress:"\u0915\u0940_\u092a\u094d\u0930\u0947\u0938",focus:"\u092b\u094b\u0915\u0938",blur:"\u0927\u0941\u0902\u0927\u0932\u093e",change:"\u092a\u0930\u093f\u0935\u0930\u094d\u0924\u0928",input:"\u0907\u0928\u092a\u0941\u091f",submit:"\u091c\u092e\u093e",reset:"\u0930\u0940\u0938\u0947\u091f",load:"\u0932\u094b\u0921",unload:"\u0905\u0928\u0932\u094b\u0921",resize:"\u0906\u0915\u093e\u0930_\u092c\u0926\u0932\u0947\u0902",scroll:"\u0938\u094d\u0915\u094d\u0930\u0949\u0932",touchstart:"\u091f\u091a_\u0936\u0941\u0930\u0942",touchend:"\u091f\u091a_\u0938\u092e\u093e\u092a\u094d\u0924",touchmove:"\u091f\u091a_\u092e\u0942\u0935",touchcancel:"\u091f\u091a_\u0930\u0926\u094d\u0926"},logical:{when:"\u091c\u092c",where:"\u0915\u0939\u093e\u0901",and:"\u0914\u0930",or:"\u092f\u093e",not:"\u0928\u0939\u0940\u0902",is:"\u0939\u0948",exists:"\u092e\u094c\u091c\u0942\u0926",matches:"\u092e\u0947\u0932 \u0916\u093e\u0924\u093e",contains:"\u0936\u093e\u092e\u093f\u0932",includes:"\u092e\u0947\u0902_\u0939\u0948",equals:"\u092c\u0930\u093e\u092c\u0930",then:"\u092b\u093f\u0930",else:"\u0935\u0930\u0928\u093e",otherwise:"\u0905\u0928\u094d\u092f\u0925\u093e",end:"\u0938\u092e\u093e\u092a\u094d\u0924",live:"\u0932\u093e\u0907\u0935",changes:"\u092c\u0926\u0932\u0928\u0947 \u092a\u0930",has:"\u0939\u0948",have:"\u0939\u0948",isNot:"\u0928\u0939\u0940\u0902_\u0939\u0948",empty:"\u0916\u093e\u0932\u0940"},temporal:{seconds:"\u0938\u0947\u0915\u0902\u0921",second:"\u0938\u0947\u0915\u0902\u0921",milliseconds:"\u092e\u093f\u0932\u0940\u0938\u0947\u0915\u0902\u0921",millisecond:"\u092e\u093f\u0932\u0940\u0938\u0947\u0915\u0902\u0921",minutes:"\u092e\u093f\u0928\u091f",minute:"\u092e\u093f\u0928\u091f",hours:"\u0918\u0902\u091f\u0947",hour:"\u0918\u0902\u091f\u093e",ms:"\u092e\u093f\u0938\u0947",s:"\u0938\u0947",min:"\u092e\u093f",h:"\u0918\u0902",forever:"\u0939\u092e\u0947\u0936\u093e",once:"\u090f\u0915_\u092c\u093e\u0930",every:"\u0939\u0930",until:"\u0924\u0915"},values:{true:"\u0938\u091a",false:"\u091d\u0942\u0920",null:"\u0916\u093e\u0932\u0940",undefined:"\u0905\u092a\u0930\u093f\u092d\u093e\u0937\u093f\u0924",it:"\u092f\u0939",its:"\u0907\u0938\u0915\u093e",me:"\u092e\u0948\u0902",my:"\u092e\u0947\u0930\u093e",you:"\u0906\u092a",your:"\u0906\u092a\u0915\u093e",yourself:"\u0938\u094d\u0935\u092f\u0902",myself:"\u092e\u0948\u0902_\u0938\u094d\u0935\u092f\u0902",element:"\u0924\u0924\u094d\u0935",target:"\u0932\u0915\u094d\u0937\u094d\u092f",detail:"\u0935\u093f\u0935\u0930\u0923",event:"\u0918\u091f\u0928\u093e",window:"\u0935\u093f\u0902\u0921\u094b",document:"\u0926\u0938\u094d\u0924\u093e\u0935\u0947\u091c\u093c",body:"\u092c\u0949\u0921\u0940",result:"\u092a\u0930\u093f\u0923\u093e\u092e",value:"\u092e\u093e\u0928",first:"\u092a\u0939\u0932\u093e",last:"\u0905\u0902\u0924\u093f\u092e",next:"\u0905\u0917\u0932\u093e",previous:"\u092a\u093f\u091b\u0932\u093e",closest:"\u0928\u093f\u0915\u091f\u0924\u092e",parent:"\u092e\u0942\u0932"},attributes:{class:"\u0915\u094d\u0932\u093e\u0938",classes:"\u0915\u094d\u0932\u093e\u0938\u0947\u0938",style:"\u0938\u094d\u091f\u093e\u0907\u0932",styles:"\u0938\u094d\u091f\u093e\u0907\u0932\u094d\u0938",attribute:"\u0917\u0941\u0923",attributes:"\u0917\u0941\u0923",property:"\u0938\u0902\u092a\u0924\u094d\u0924\u093f",properties:"\u0938\u0902\u092a\u0924\u094d\u0924\u093f\u092f\u093e\u0901",disabled:"\u0905\u0915\u094d\u0937\u092e",hidden:"\u091b\u093f\u092a\u093e",checked:"\u091a\u0947\u0915",selected:"\u091a\u092f\u0928\u093f\u0924",readonly:"\u0915\u0947\u0935\u0932_\u092a\u0922\u093c\u0928\u0947",required:"\u0906\u0935\u0936\u094d\u092f\u0915",text:"\u092a\u093e\u0920",html:"html"},expressions:{characters:"\u0905\u0915\u094d\u0937\u0930",first:"\u092a\u0939\u0932\u093e",last:"\u0905\u0902\u0924\u093f\u092e",next:"\u0905\u0917\u0932\u093e",previous:"\u092a\u093f\u091b\u0932\u093e",prev:"\u092a\u093f\u091b",at:"\u092a\u0930",random:"\u092f\u093e\u0926\u0943\u091a\u094d\u091b\u093f\u0915",closest:"\u0928\u093f\u0915\u091f\u0924\u092e",parent:"\u092e\u0942\u0932",children:"\u092c\u091a\u094d\u091a\u0947",within:"\u0915\u0947_\u0905\u0902\u0926\u0930",no:"\u0928\u0939\u0940\u0902",empty:"\u0916\u093e\u0932\u0940",some:"\u0915\u0941\u091b","starts with":"\u0938\u0947_\u0936\u0941\u0930\u0942","ends with":"\u092a\u0930_\u0938\u092e\u093e\u092a\u094d\u0924","ignoring case":"\u0915\u0947\u0938_\u0905\u0928\u0926\u0947\u0916\u093e","sorted by":"\u0926\u094d\u0935\u093e\u0930\u093e_\u0915\u094d\u0930\u092e\u092c\u0926\u094d\u0927","mapped to":"\u092e\u0947\u0902_\u092a\u0930\u093f\u0935\u0930\u094d\u0924\u093f\u0924","split by":"\u0926\u094d\u0935\u093e\u0930\u093e_\u0935\u093f\u092d\u093e\u091c\u093f\u0924","joined by":"\u0926\u094d\u0935\u093e\u0930\u093e_\u091c\u0941\u0921\u093c\u093e"}},"hi",{allowEnglishFallback:!0}),ql({commands:{on:"\u09a4\u09c7",toggle:"\u099f\u0997\u09b2",add:"\u09af\u09cb\u0997",remove:"\u09b8\u09b0\u09be\u09a8",set:"\u09b8\u09c7\u099f",get:"\u09aa\u09be\u09a8",put:"\u09b0\u09be\u0996\u09c1\u09a8",take:"\u09a8\u09bf\u09a8",show:"\u09a6\u09c7\u0996\u09be\u09a8",hide:"\u09b2\u09c1\u0995\u09be\u09a8",increment:"\u09ac\u09c3\u09a6\u09cd\u09a7\u09bf",decrement:"\u09b9\u09cd\u09b0\u09be\u09b8",if:"\u09af\u09a6\u09bf",else:"\u09a8\u09a4\u09c1\u09ac\u09be",repeat:"\u09aa\u09c1\u09a8\u09b0\u09be\u09ac\u09c3\u09a4\u09cd\u09a4\u09bf",for:"\u099c\u09a8\u09cd\u09af",while:"\u09af\u09a4\u0995\u09cd\u09b7\u09a3",wait:"\u0985\u09aa\u09c7\u0995\u09cd\u09b7\u09be",fetch:"\u0986\u09a8\u09c1\u09a8",call:"\u0995\u09b2",return:"\u09ab\u09bf\u09b0\u09c1\u09a8",log:"\u09b2\u0997",trigger:"\u099f\u09cd\u09b0\u09bf\u0997\u09be\u09b0",send:"\u09aa\u09be\u09a0\u09be\u09a8",go:"\u09af\u09be\u09a8",halt:"\u09a5\u09be\u09ae\u09c1\u09a8",throw:"\u09a8\u09bf\u0995\u09cd\u09b7\u09c7\u09aa",continue:"\u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",make:"\u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c1\u09a8",append:"\u099c\u09c1\u09a1\u09bc\u09c1\u09a8",prepend:"\u09b6\u09c1\u09b0\u09c1\u09a4\u09c7 \u09af\u09cb\u0997",focus:"\u09ab\u09cb\u0995\u09be\u09b8",blur:"\u099d\u09be\u09aa\u09b8\u09be",transition:"\u09b8\u0982\u0995\u09cd\u09b0\u09ae\u09a3",settle:"\u09b8\u09cd\u09a5\u09bf\u09b0",measure:"\u09ae\u09be\u09aa\u09c1\u09a8",async:"\u0985\u09cd\u09af\u09be\u09b8\u09bf\u0999\u09cd\u0995",tell:"\u09ac\u09b2\u09c1\u09a8",default:"\u09a1\u09bf\u09ab\u09b2\u09cd\u099f",init:"\u09b6\u09c1\u09b0\u09c1",behavior:"\u0986\u099a\u09b0\u09a3",install:"\u0987\u09a8\u09b8\u09cd\u099f\u09b2",clone:"\u0995\u09cd\u09b2\u09cb\u09a8",swap:"\u09ac\u09a6\u09b2",morph:"\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0",beep:"\u09ac\u09c0\u09aa",break:"\u09ad\u09be\u0999\u09c1\u09a8",copy:"\u0995\u09aa\u09bf",exit:"\u09ac\u09c7\u09b0",js:"\u099c\u09c7\u098f\u09b8",pick:"\u09ac\u09be\u099b\u09c1\u09a8",render:"\u09b0\u09c7\u09a8\u09cd\u09a1\u09be\u09b0",until:"\u09aa\u09b0\u09cd\u09af\u09a8\u09cd\u09a4",breakpoint:"\u09ac\u09cd\u09b0\u09c7\u0995\u09aa\u09af\u09bc\u09c7\u09a8\u09cd\u099f",clear:"\u09aa\u09b0\u09bf\u09b7\u09cd\u0995\u09be\u09b0",close:"\u09ac\u09a8\u09cd\u09a7",open:"\u0996\u09c1\u09b2\u09c1\u09a8",select:"\u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8",socket:"\u09b8\u0995\u09c7\u099f"},modifiers:{to:"\u0995\u09c7",from:"\u09a5\u09c7\u0995\u09c7",into:"\u09a4\u09c7",on:"\u09a4\u09c7",with:"\u09b8\u09be\u09a5\u09c7",by:"\u09a6\u09cd\u09ac\u09be\u09b0\u09be",as:"\u09b9\u09bf\u09b8\u09be\u09ac\u09c7",before:"\u0986\u0997\u09c7",after:"\u09aa\u09b0\u09c7",at:"\u098f",in:"\u098f",over:"\u0989\u09aa\u09b0",between:"\u09ae\u09a7\u09cd\u09af\u09c7",then:"\u09a4\u09be\u09b0\u09aa\u09b0",and:"\u098f\u09ac\u0982",end:"\u09b6\u09c7\u09b7",until:"\u09aa\u09b0\u09cd\u09af\u09a8\u09cd\u09a4",of:"\u09b0"},events:{click:"\u0995\u09cd\u09b2\u09bf\u0995",change:"\u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8",input:"\u0987\u09a8\u09aa\u09c1\u099f",submit:"\u099c\u09ae\u09be",load:"\u09b2\u09cb\u09a1",focus:"\u09ab\u09cb\u0995\u09be\u09b8",blur:"\u099d\u09be\u09aa\u09b8\u09be",reset:"\u09b0\u09bf\u09b8\u09c7\u099f",keydown:"keydown",keyup:"keyup",mouseover:"mouseover",mouseout:"mouseout",scroll:"\u09b8\u09cd\u0995\u09cd\u09b0\u09cb\u09b2",resize:"\u09b0\u09bf\u09b8\u09be\u0987\u099c",every:"\u09aa\u09cd\u09b0\u09a4\u09bf"},logical:{if:"\u09af\u09a6\u09bf",when:"\u09af\u0996\u09a8",where:"\u0995\u09cb\u09a5\u09be\u09af\u09bc",else:"\u09a8\u09a4\u09c1\u09ac\u09be",not:"\u09a8\u09be",and:"\u098f\u09ac\u0982",or:"\u0985\u09a5\u09ac\u09be",is:"\u09b9\u09af\u09bc",exists:"\u0986\u099b\u09c7",has:"\u0986\u099b\u09c7",have:"\u0986\u099b\u09bf",empty:"\u0996\u09be\u09b2\u09bf",true:"\u09b8\u09a4\u09cd\u09af",false:"\u09ae\u09bf\u09a5\u09cd\u09af\u09be",null:"\u09b6\u09c2\u09a8\u09cd\u09af",undefined:"\u0985\u09a8\u09bf\u09b0\u09cd\u09a7\u09be\u09b0\u09bf\u09a4",end:"\u09b6\u09c7\u09b7",then:"\u09a4\u09be\u09b0\u09aa\u09b0",live:"\u09b2\u09be\u0987\u09ad",bind:"\u09ac\u09be\u0987\u09a8\u09cd\u09a1",changes:"\u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09bf\u09a4 \u09b9\u09b2\u09c7"},temporal:{now:"\u098f\u0996\u09a8",seconds:"\u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",milliseconds:"\u09ae\u09bf\u09b2\u09bf\u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",minutes:"\u09ae\u09bf\u09a8\u09bf\u099f",hours:"\u0998\u09a3\u09cd\u099f\u09be",forever:"\u099a\u09bf\u09b0\u0995\u09be\u09b2",times:"\u09ac\u09be\u09b0",s:"\u09b8\u09c7",ms:"\u09ae\u09bf\u09b8\u09c7"},values:{me:"\u0986\u09ae\u09bf",my:"\u0986\u09ae\u09be\u09b0",it:"\u098f\u099f\u09bf",its:"\u098f\u09b0",result:"\u09ab\u09b2\u09be\u09ab\u09b2",event:"\u0998\u099f\u09a8\u09be",target:"\u09b2\u0995\u09cd\u09b7\u09cd\u09af",body:"\u09ac\u09a1\u09bf",you:"\u0986\u09aa\u09a8\u09bf",your:"\u09a4\u09cb\u09ae\u09be\u09b0"},attributes:{class:"\u09b6\u09cd\u09b0\u09c7\u09a3\u09bf",id:"\u0986\u0987\u09a1\u09bf",style:"\u09b6\u09c8\u09b2\u09c0",value:"\u09ae\u09be\u09a8",text:"\u09aa\u09be\u09a0\u09cd\u09af",html:"\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2",disabled:"\u0985\u0995\u09cd\u09b7\u09ae",checked:"\u099a\u09c7\u0995 \u0995\u09b0\u09be"},expressions:{characters:"\u0985\u0995\u09cd\u09b7\u09b0",inclusive:"\u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u09ad\u09c1\u0995\u09cd\u09a4",exclusive:"\u09ac\u09be\u09a6",first:"\u09aa\u09cd\u09b0\u09a5\u09ae",last:"\u09b6\u09c7\u09b7",next:"\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0",previous:"\u0986\u0997\u09c7\u09b0",closest:"\u09a8\u09bf\u0995\u099f\u09a4\u09ae",parent:"\u09ae\u09c2\u09b2",children:"\u09b8\u09a8\u09cd\u09a4\u09be\u09a8",random:"\u098f\u09b2\u09cb\u09ae\u09c7\u09b2\u09cb",length:"\u09a6\u09c8\u09b0\u09cd\u0998\u09cd\u09af",index:"\u09b8\u09c2\u099a\u0995",empty:"\u0996\u09be\u09b2\u09bf","starts with":"\u09a6\u09bf\u09af\u09bc\u09c7_\u09b6\u09c1\u09b0\u09c1","ends with":"\u09a6\u09bf\u09af\u09bc\u09c7_\u09b6\u09c7\u09b7","ignoring case":"\u0995\u09c7\u09b8_\u0989\u09aa\u09c7\u0995\u09cd\u09b7\u09be","sorted by":"\u09a6\u09cd\u09ac\u09be\u09b0\u09be_\u09b8\u09be\u099c\u09be\u09a8\u09cb","mapped to":"\u09a4\u09c7_\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09bf\u09a4","split by":"\u09a6\u09cd\u09ac\u09be\u09b0\u09be_\u09ac\u09bf\u09ad\u0995\u09cd\u09a4","joined by":"\u09a6\u09cd\u09ac\u09be\u09b0\u09be_\u09af\u09c1\u0995\u09cd\u09a4"}},"bn",{allowEnglishFallback:!0}),ql({commands:{on:"\u0e40\u0e21\u0e37\u0e48\u0e2d",toggle:"\u0e2a\u0e25\u0e31\u0e1a",add:"\u0e40\u0e1e\u0e34\u0e48\u0e21",remove:"\u0e25\u0e1a",set:"\u0e15\u0e31\u0e49\u0e07",get:"\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32",put:"\u0e43\u0e2a\u0e48",take:"\u0e23\u0e31\u0e1a",show:"\u0e41\u0e2a\u0e14\u0e07",hide:"\u0e0b\u0e48\u0e2d\u0e19",increment:"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e48\u0e32",decrement:"\u0e25\u0e14\u0e04\u0e48\u0e32",if:"\u0e16\u0e49\u0e32",else:"\u0e44\u0e21\u0e48\u0e07\u0e31\u0e49\u0e19",repeat:"\u0e17\u0e33\u0e0b\u0e49\u0e33",for:"\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a",while:"\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e35\u0e48",wait:"\u0e23\u0e2d",fetch:"\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",call:"\u0e40\u0e23\u0e35\u0e22\u0e01",return:"\u0e04\u0e37\u0e19\u0e04\u0e48\u0e32",log:"\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01",trigger:"\u0e17\u0e23\u0e34\u0e01\u0e40\u0e01\u0e2d\u0e23\u0e4c",send:"\u0e2a\u0e48\u0e07",go:"\u0e44\u0e1b",halt:"\u0e2b\u0e22\u0e38\u0e14",throw:"\u0e42\u0e22\u0e19",continue:"\u0e15\u0e48\u0e2d\u0e44\u0e1b",make:"\u0e2a\u0e23\u0e49\u0e32\u0e07",append:"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e17\u0e49\u0e32\u0e22",prepend:"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e2b\u0e19\u0e49\u0e32",focus:"\u0e42\u0e1f\u0e01\u0e31\u0e2a",blur:"\u0e40\u0e1a\u0e25\u0e2d",transition:"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e1c\u0e48\u0e32\u0e19",settle:"\u0e04\u0e07\u0e17\u0e35\u0e48",measure:"\u0e27\u0e31\u0e14",async:"\u0e2d\u0e30\u0e0b\u0e34\u0e07\u0e04\u0e4c",tell:"\u0e1a\u0e2d\u0e01",default:"\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",init:"\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",behavior:"\u0e1e\u0e24\u0e15\u0e34\u0e01\u0e23\u0e23\u0e21",install:"\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",clone:"\u0e42\u0e04\u0e25\u0e19",swap:"\u0e2a\u0e25\u0e31\u0e1a\u0e17\u0e35\u0e48",morph:"\u0e41\u0e1b\u0e25\u0e07\u0e23\u0e48\u0e32\u0e07",beep:"\u0e1a\u0e35\u0e4a\u0e1a",break:"\u0e02\u0e31\u0e14\u0e08\u0e31\u0e07\u0e2b\u0e27\u0e30",copy:"\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01",exit:"\u0e2d\u0e2d\u0e01",js:"\u0e40\u0e08\u0e40\u0e2d\u0e2a",pick:"\u0e40\u0e25\u0e37\u0e2d\u0e01",render:"\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25",until:"\u0e08\u0e19\u0e16\u0e36\u0e07",breakpoint:"\u0e08\u0e38\u0e14\u0e1e\u0e31\u0e01",clear:"\u0e40\u0e04\u0e25\u0e35\u0e22\u0e23\u0e4c",close:"\u0e1b\u0e34\u0e14",open:"\u0e40\u0e1b\u0e34\u0e14",select:"\u0e17\u0e33\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22"},modifiers:{to:"\u0e44\u0e1b\u0e22\u0e31\u0e07",from:"\u0e08\u0e32\u0e01",into:"\u0e43\u0e19",on:"\u0e40\u0e21\u0e37\u0e48\u0e2d",with:"\u0e14\u0e49\u0e27\u0e22",by:"\u0e42\u0e14\u0e22",as:"\u0e40\u0e1b\u0e47\u0e19",before:"\u0e01\u0e48\u0e2d\u0e19",after:"\u0e2b\u0e25\u0e31\u0e07",at:"\u0e17\u0e35\u0e48",in:"\u0e43\u0e19",over:"\u0e40\u0e2b\u0e19\u0e37\u0e2d",between:"\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07",then:"\u0e41\u0e25\u0e49\u0e27",and:"\u0e41\u0e25\u0e30",end:"\u0e08\u0e1a",until:"\u0e08\u0e19\u0e16\u0e36\u0e07",of:"\u0e02\u0e2d\u0e07"},events:{click:"\u0e04\u0e25\u0e34\u0e01",change:"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07",input:"\u0e2d\u0e34\u0e19\u0e1e\u0e38\u0e15",submit:"\u0e2a\u0e48\u0e07",load:"\u0e42\u0e2b\u0e25\u0e14",focus:"\u0e42\u0e1f\u0e01\u0e31\u0e2a",blur:"\u0e40\u0e1a\u0e25\u0e2d",reset:"\u0e23\u0e35\u0e40\u0e0b\u0e47\u0e15",keydown:"\u0e01\u0e14\u0e04\u0e35\u0e22\u0e4c",keyup:"\u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e04\u0e35\u0e22\u0e4c",mouseover:"\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e40\u0e02\u0e49\u0e32",mouseout:"\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e2d\u0e2d\u0e01",scroll:"\u0e40\u0e25\u0e37\u0e48\u0e2d\u0e19",resize:"\u0e1b\u0e23\u0e31\u0e1a\u0e02\u0e19\u0e32\u0e14",every:"\u0e17\u0e38\u0e01"},logical:{if:"\u0e16\u0e49\u0e32",when:"\u0e40\u0e21\u0e37\u0e48\u0e2d",where:"\u0e17\u0e35\u0e48\u0e44\u0e2b\u0e19",else:"\u0e44\u0e21\u0e48\u0e07\u0e31\u0e49\u0e19",not:"\u0e44\u0e21\u0e48",and:"\u0e41\u0e25\u0e30",or:"\u0e2b\u0e23\u0e37\u0e2d",is:"\u0e40\u0e1b\u0e47\u0e19",exists:"\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",has:"\u0e21\u0e35",have:"\u0e21\u0e35",empty:"\u0e27\u0e48\u0e32\u0e07",true:"\u0e08\u0e23\u0e34\u0e07",false:"\u0e40\u0e17\u0e47\u0e08",null:"\u0e27\u0e48\u0e32\u0e07",undefined:"\u0e44\u0e21\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14",end:"\u0e08\u0e1a",then:"\u0e41\u0e25\u0e49\u0e27",live:"\u0e2a\u0e14",changes:"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19"},temporal:{now:"\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49",seconds:"\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",milliseconds:"\u0e21\u0e34\u0e25\u0e25\u0e34\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",minutes:"\u0e19\u0e32\u0e17\u0e35",hours:"\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",forever:"\u0e15\u0e25\u0e2d\u0e14\u0e44\u0e1b",times:"\u0e04\u0e23\u0e31\u0e49\u0e07",s:"\u0e27\u0e34",ms:"\u0e21\u0e27"},values:{me:"\u0e09\u0e31\u0e19",my:"\u0e02\u0e2d\u0e07\u0e09\u0e31\u0e19",it:"\u0e21\u0e31\u0e19",its:"\u0e02\u0e2d\u0e07\u0e21\u0e31\u0e19",result:"\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c",event:"\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c",target:"\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",body:"\u0e1a\u0e2d\u0e14\u0e35\u0e49",you:"\u0e04\u0e38\u0e13",your:"\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13"},attributes:{class:"\u0e04\u0e25\u0e32\u0e2a",id:"\u0e44\u0e2d\u0e14\u0e35",style:"\u0e2a\u0e44\u0e15\u0e25\u0e4c",value:"\u0e04\u0e48\u0e32",text:"\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",html:"\u0e40\u0e2d\u0e0a\u0e17\u0e35\u0e40\u0e2d\u0e47\u0e21\u0e41\u0e2d\u0e25",disabled:"\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",checked:"\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e25\u0e49\u0e27"},expressions:{characters:"\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30",inclusive:"\u0e23\u0e27\u0e21",exclusive:"\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19",first:"\u0e41\u0e23\u0e01",last:"\u0e2a\u0e38\u0e14\u0e17\u0e49\u0e32\u0e22",next:"\u0e16\u0e31\u0e14\u0e44\u0e1b",previous:"\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32",closest:"\u0e43\u0e01\u0e25\u0e49\u0e2a\u0e38\u0e14",parent:"\u0e15\u0e49\u0e19\u0e17\u0e32\u0e07",children:"\u0e25\u0e39\u0e01",random:"\u0e2a\u0e38\u0e48\u0e21",length:"\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27",index:"\u0e14\u0e31\u0e0a\u0e19\u0e35",empty:"\u0e25\u0e49\u0e32\u0e07","starts with":"\u0e02\u0e36\u0e49\u0e19\u0e15\u0e49\u0e19\u0e14\u0e49\u0e27\u0e22","ends with":"\u0e25\u0e07\u0e17\u0e49\u0e32\u0e22\u0e14\u0e49\u0e27\u0e22","ignoring case":"\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e15\u0e31\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c","sorted by":"\u0e40\u0e23\u0e35\u0e22\u0e07\u0e15\u0e32\u0e21","mapped to":"\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19","split by":"\u0e41\u0e22\u0e01\u0e14\u0e49\u0e27\u0e22","joined by":"\u0e23\u0e27\u0e21\u0e14\u0e49\u0e27\u0e22"}},"th",{allowEnglishFallback:!0}),ql({commands:{on:"apabila",tell:"beritahu",trigger:"cetuskan",send:"hantar",take:"ambil",put:"letak",set:"tetapkan",get:"dapatkan",add:"tambah",remove:"buang",toggle:"togol",hide:"sembunyi",show:"tunjuk",if:"jika",unless:"kecuali",repeat:"ulang",for:"untuk",while:"selagi",until:"sehingga",continue:"teruskan",break:"henti",halt:"henti",wait:"tunggu",fetch:"ambil_dari",call:"panggil",return:"pulang",make:"buat",log:"catat",throw:"lempar",catch:"tangkap",measure:"ukur",transition:"peralihan",increment:"tambah_satu",decrement:"kurang_satu",default:"lalai",go:"pergi",pushUrl:"tolak_url",replaceUrl:"ganti_url",copy:"salin",pick:"pilih",beep:"bunyi",js:"js",async:"tak_segerak",render:"papar",swap:"tukar_tempat",morph:"ubah_bentuk",settle:"selesai",append:"tambah_hujung",prepend:"tambah_mula",exit:"keluar",else:"kalau_tidak",focus:"fokus",blur:"kabur",install:"pasang",behavior:"kelakuan",init:"mula",clone:"klon",breakpoint:"titik-henti",clear:"bersihkan",close:"tutup",open:"buka",select:"tandai",socket:"soket"},modifiers:{to:"ke",from:"dari",into:"ke_dalam",with:"dengan",at:"di",in:"dalam",of:"daripada",as:"sebagai",by:"oleh",before:"sebelum",after:"selepas",over:"atas",under:"bawah",between:"antara",through:"melalui",without:"tanpa",on:"pada",then:"kemudian",and:"dan",end:"tamat",until:"sehingga"},events:{click:"click",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"mouseover",mouseout:"mouseout",mousemove:"mousemove",keydown:"keydown",keyup:"keyup",keypress:"keypress",focus:"focus",blur:"blur",change:"change",input:"input",submit:"submit",reset:"reset",load:"load",unload:"unload",resize:"resize",scroll:"scroll",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel",every:"setiap"},logical:{when:"apabila",where:"di_mana",and:"dan",or:"atau",not:"bukan",is:"adalah",exists:"wujud",matches:"sepadan",contains:"mengandungi",includes:"termasuk",equals:"sama",has:"ada",have:"ada",then:"kemudian",else:"kalau_tidak",otherwise:"jika_tidak",end:"tamat",live:"langsung",changes:"berubah",if:"jika",empty:"kosong",true:"benar",false:"salah",null:"null",undefined:"tidak_ditakrifkan"},temporal:{seconds:"saat",second:"saat",milliseconds:"milisaat",millisecond:"milisaat",minutes:"minit",minute:"minit",hours:"jam",hour:"jam",ms:"ms",s:"s",min:"min",h:"j",now:"sekarang",forever:"selamanya",times:"kali"},values:{true:"benar",false:"salah",null:"null",undefined:"tidak_ditakrifkan",it:"ia",its:"nya",me:"saya",my:"saya_punya",myself:"diri_saya",you:"kamu",your:"kamu_punya",yourself:"diri_kamu",element:"elemen",target:"sasaran",detail:"perincian",event:"peristiwa",window:"tetingkap",document:"dokumen",body:"badan",result:"hasil",value:"nilai"},attributes:{class:"kelas",classes:"kelas_kelas",style:"gaya",styles:"gaya_gaya",attribute:"atribut",attributes:"atribut_atribut",property:"sifat",properties:"sifat_sifat",id:"id",value:"nilai",text:"teks",html:"html",disabled:"dilumpuhkan",checked:"ditanda"},expressions:{characters:"aksara",inclusive:"inklusif",exclusive:"eksklusif",first:"pertama",last:"terakhir",next:"seterusnya",previous:"sebelumnya",prev:"sebelum",at:"di",random:"rawak",closest:"terdekat",parent:"induk",children:"anak_anak",within:"dalam",no:"tiada",empty:"kosong",some:"beberapa","starts with":"bermula_dengan","ends with":"berakhir_dengan","ignoring case":"abaikan_huruf_besar_kecil","sorted by":"disusun_mengikut","mapped to":"dipetakan_ke","split by":"dipecah_oleh","joined by":"digabung_oleh",length:"panjang",index:"indeks"}},"ms",{allowEnglishFallback:!0}),ql({commands:{on:"kapag",tell:"sabihin",trigger:"palitawin",send:"ipadala",take:"kumuha",put:"ilagay",set:"itakda",get:"kunin",add:"idagdag",remove:"alisin",toggle:"palitan",hide:"itago",show:"ipakita",if:"kung",unless:"maliban_kung",repeat:"ulitin",for:"para_sa",while:"habang",until:"hanggang",continue:"magpatuloy",break:"itigil",halt:"huminto",wait:"maghintay",fetch:"kuhanin_mula",call:"tawagin",return:"ibalik",make:"gumawa",log:"itala",throw:"ihagis",catch:"hulihin",measure:"sukatin",transition:"lumipat",increment:"dagdagan",decrement:"bawasan",default:"pamantayan",go:"pumunta",pushUrl:"itulak_url",replaceUrl:"palitan_url",copy:"kopyahin",pick:"pumili",beep:"tunog",js:"js",async:"sabay",render:"irender",swap:"palitan_pwesto",morph:"baguhin",settle:"magpatahimik",append:"idagdag_sa_dulo",prepend:"idagdag_sa_simula",exit:"lumabas",else:"kung_hindi",focus:"ituon",blur:"alisin_tuon",install:"ikabit",behavior:"ugali",init:"simulan",clone:"i-clone",breakpoint:"breakpoint",clear:"burahin",close:"isara",open:"buksan",select:"piliin"},modifiers:{to:"sa",from:"mula_sa",into:"papasok_sa",with:"kasama",at:"sa",in:"sa_loob",of:"ng",as:"bilang",by:"sa_pamamagitan_ng",before:"bago",after:"matapos",over:"sa_ibabaw",under:"sa_ilalim",between:"sa_pagitan",through:"sa_pamamagitan",without:"walang",on:"sa",then:"pagkatapos",and:"at",end:"wakas",until:"hanggang"},events:{click:"click",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"mouseover",mouseout:"mouseout",mousemove:"mousemove",keydown:"keydown",keyup:"keyup",keypress:"keypress",focus:"focus",blur:"blur",change:"change",input:"input",submit:"submit",reset:"reset",load:"load",unload:"unload",resize:"resize",scroll:"scroll",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel",every:"bawat"},logical:{when:"kapag",where:"kung_saan",and:"at",or:"o",not:"hindi",is:"ay",exists:"may",matches:"tumutugma",contains:"naglalaman",includes:"kasama",equals:"katumbas",has:"may",have:"may",then:"pagkatapos",else:"kung_hindi",otherwise:"kung_hindi_man",end:"wakas",live:"live",changes:"nagbabago",if:"kung",empty:"walang_laman",true:"totoo",false:"mali",null:"wala",undefined:"hindi_tinukoy"},temporal:{seconds:"segundo",second:"segundo",milliseconds:"milisegundo",millisecond:"milisegundo",minutes:"minuto",minute:"minuto",hours:"oras",hour:"oras",ms:"ms",s:"s",min:"min",h:"h",now:"ngayon",forever:"magpakailanman",times:"beses"},values:{true:"totoo",false:"mali",null:"wala",undefined:"hindi_tinukoy",it:"ito",its:"nito",me:"ako",my:"aking",myself:"sarili_ko",you:"ikaw",your:"iyong",yourself:"sarili_mo",element:"elemento",target:"target",detail:"detalye",event:"pangyayari",window:"bintana",document:"dokumento",body:"katawan",result:"resulta",value:"halaga"},attributes:{class:"klase",classes:"mga_klase",style:"estilo",styles:"mga_estilo",attribute:"katangian",attributes:"mga_katangian",property:"ari_arian",properties:"mga_ari_arian",id:"id",value:"halaga",text:"teksto",html:"html",disabled:"hindi_pinagana",checked:"naka_tsek"},expressions:{characters:"karakter",inclusive:"kasama",exclusive:"bukod",first:"una",last:"huli",next:"susunod",previous:"nakaraan",prev:"nakaraan",at:"sa",random:"random",closest:"pinakamalapit",parent:"magulang",children:"mga_anak",within:"sa_loob_ng",no:"walang",empty:"walang_laman",some:"ilan","starts with":"nagsisimula_sa","ends with":"nagtatapos_sa","ignoring case":"huwag_pansinin_ang_case","sorted by":"nakaayos_ayon_sa","mapped to":"binago_sa","split by":"hinati_sa","joined by":"pinagsama_sa",length:"haba",index:"indeks"}},"tl",{allowEnglishFallback:!0}),ql({commands:{add:"\u05d4\u05d5\u05e1\u05e3",append:"\u05e6\u05e8\u05e3",async:"\u05d0\u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05e0\u05d9",beep:"\u05d1\u05d9\u05e4",break:"\u05e9\u05d1\u05d5\u05e8",call:"\u05e7\u05e8\u05d0",clear:"\u05e0\u05e7\u05d4",continue:"\u05d4\u05de\u05e9\u05da",copy:"\u05d4\u05e2\u05ea\u05e7",decrement:"\u05d4\u05e7\u05d8\u05df",default:"\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc",exit:"\u05e6\u05d0",fetch:"\u05d4\u05d1\u05d0",for:"\u05e2\u05d1\u05d5\u05e8",get:"\u05e7\u05d1\u05dc",go:"\u05dc\u05da",halt:"\u05e2\u05e6\u05d5\u05e8",hide:"\u05d4\u05e1\u05ea\u05e8",if:"\u05d0\u05dd",unless:"\u05d0\u05dc\u05d0",increment:"\u05d4\u05d2\u05d3\u05dc",install:"\u05d4\u05ea\u05e7\u05df",js:"js",log:"\u05e8\u05e9\u05d5\u05dd",make:"\u05e6\u05d5\u05e8",measure:"\u05de\u05d3\u05d5\u05d3",morph:"\u05d4\u05e4\u05d5\u05da",on:"\u05d1",pick:"\u05d1\u05d7\u05e8",put:"\u05e9\u05d9\u05dd",remove:"\u05d4\u05e1\u05e8",render:"\u05e8\u05e0\u05d3\u05e8",repeat:"\u05d7\u05d6\u05d5\u05e8",return:"\u05d4\u05d7\u05d6\u05e8",scroll:"\u05d2\u05dc\u05d5\u05dc",send:"\u05e9\u05dc\u05d7",set:"\u05e7\u05d1\u05e2",settle:"\u05d4\u05ea\u05d9\u05d9\u05e6\u05d1",show:"\u05d4\u05e8\u05d0\u05d4",swap:"\u05d4\u05d7\u05dc\u05e3",take:"\u05e7\u05d7",tell:"\u05d0\u05de\u05d5\u05e8",throw:"\u05d6\u05e8\u05d5\u05e7",toggle:"\u05de\u05ea\u05d2",transition:"\u05de\u05e2\u05d1\u05e8",trigger:"\u05d4\u05e4\u05e2\u05dc",until:"\u05e2\u05d3",wait:"\u05d7\u05db\u05d4",while:"\u05db\u05dc \u05e2\u05d5\u05d3"},modifiers:{after:"\u05d0\u05d7\u05e8\u05d9",before:"\u05dc\u05e4\u05e0\u05d9",from:"\u05de",into:"\u05dc\u05ea\u05d5\u05da",to:"\u05e2\u05dc",with:"\u05e2\u05dd"},events:{blur:"\u05d8\u05e9\u05d8\u05e9",change:"\u05e9\u05d9\u05e0\u05d5\u05d9",click:"\u05dc\u05d7\u05d9\u05e6\u05d4",focus:"\u05de\u05e7\u05d3",input:"\u05e7\u05dc\u05d8",submit:"\u05e9\u05dc\u05d9\u05d7\u05d4"},logical:{and:"\u05d5\u05d2\u05dd",else:"\u05d0\u05d7\u05e8\u05ea",end:"\u05e1\u05d5\u05e3",then:"\u05d0\u05d6",live:"\u05d7\u05d9",bind:"\u05e7\u05e9\u05d5\u05e8",changes:"\u05de\u05e9\u05ea\u05e0\u05d4",when:"\u05db\u05d0\u05e9\u05e8",where:"\u05d0\u05d9\u05e4\u05d4"},temporal:{},values:{body:"\u05d2\u05d5\u05e3",event:"\u05d0\u05d9\u05e8\u05d5\u05e2",it:"\u05d6\u05d4",its:"\u05e9\u05dc\u05d5",me:"\u05d0\u05e0\u05d9",my:"\u05e9\u05dc\u05d9",result:"\u05ea\u05d5\u05e6\u05d0\u05d4",target:"\u05d9\u05e2\u05d3",you:"\u05d0\u05ea\u05d4",your:"\u05e9\u05dc\u05da"},attributes:{},expressions:{random:"\u05d0\u05e7\u05e8\u05d0\u05d9",characters:"\u05ea\u05d5\u05d5\u05d9\u05dd",inclusive:"\u05db\u05d5\u05dc\u05dc",exclusive:"\u05d1\u05dc\u05e2\u05d3\u05d9",last:"\u05d0\u05d7\u05e8\u05d5\u05df"}},"he",{allowEnglishFallback:!0});var nc=class e{static register(t,r){e.providers.set(t.toLowerCase(),r)}static unregister(t){e.providers.delete(t.toLowerCase())}static setDefault(t){const r=t.toLowerCase();if("en"!==r&&!e.providers.has(r))throw Error(`Locale '${t}' is not registered. Available locales: ${e.getAvailable().join(", ")}`);e.defaultLocale=r}static getDefault(){return e.defaultLocale}static get(t){const r=(t||e.defaultLocale).toLowerCase();if("en"===r)return e.englishProvider;const n=e.providers.get(r);if(!n)throw Error(`Locale '${r}' is not registered. Available locales: ${e.getAvailable().join(", ")}`);return n}static has(t){const r=t.toLowerCase();return"en"===r||e.providers.has(r)}static getAvailable(){return["en",...Array.from(e.providers.keys())]}static reset(){e.providers.clear(),e.defaultLocale="en"}static registerAll(t){for(const[r,n]of Object.entries(t))e.register(r,n)}};nc.providers=new Map,nc.defaultLocale="en",nc.englishProvider=Pl();var ic=nc;function ac(e){return{name:"halt-call-fused-verb-final",description:"Split the swept `halt <operand> call <args>` blob; both verbs clause-final",priority:95,match:{commands:["halt"],requiredRoles:["action","event","patient"],predicate:t=>{const r=t.roles.get("patient");return!!r&&/\bcall\b/.test(r.value)&&!!r.translated&&r.translated.includes(e.callVerb)}},transform:{roleOrder:[],custom:t=>{const r=t.roles.get("patient"),n=t.roles.get("event"),i=t.roles.get("action");let a=(r.translated??r.value).trim();const s="EVENTBLOCKPLACEHOLDER";let o="";a.endsWith(s)&&(a=a.slice(0,-21).trim(),o=" "+s);const l=a.indexOf(e.callVerb),c=a.slice(0,l).trim(),u=a.slice(l+e.callVerb.length).trim();return[c,e.patientMarker,n.translated??n.value,e.eventMarker,i.translated??i.value,e.connective,u,e.patientMarker,e.callVerb].join(" ")+o}}}}function sc(e){return{name:"pick-range-verb-final",description:"Reassemble the pick range (unit + endpoints + root) adjacent, verb-final",priority:95,match:{commands:["pick"],requiredRoles:["action","patient","destination"],predicate:e=>{const t=e.roles.get("patient"),r=e.roles.get("destination");return!!t&&!!r&&/^\S+\s+\d+$/.test(t.value.trim())&&/^\d+\s+of\s+\S+$/.test(r.value.trim())}},transform:{roleOrder:[],custom:t=>{const r=t.roles.get("patient"),n=t.roles.get("destination"),i=t.roles.get("action"),a=t.roles.get("event"),s=(r.translated??r.value).trim().split(/\s+/),o=s[s.length-1],l=s.slice(0,-1).join(" "),c=n.value.trim().match(/^(\d+)\s+of\s+(\S+)$/);return[c[2],e.genitive,l,o,e.rangeSep,c[1],e.patientMarker,...a?[a.translated??a.value,e.eventMarker]:[],i.translated??i.value].join(" ")}}}}var oc={en:{code:"en",name:"English",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","source","destination","quantity","duration","method","style"],markers:[{form:"on",role:"event",position:"preposition",required:!0},{form:"to",role:"destination",position:"preposition",required:!1},{form:"into",role:"destination",position:"preposition",required:!1},{form:"from",role:"source",position:"preposition",required:!1},{form:"with",role:"style",position:"preposition",required:!1},{form:"by",role:"quantity",position:"preposition",required:!1},{form:"as",role:"method",position:"preposition",required:!1},{form:"over",role:"duration",position:"preposition",required:!1},{form:"for",role:"duration",position:"preposition",required:!1}]},ja:{code:"ja",name:"\u65e5\u672c\u8a9e",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\u3092",role:"patient",position:"postposition",required:!0},{form:"\u306b",role:"destination",position:"postposition",required:!0},{form:"\u304b\u3089",role:"source",position:"postposition",required:!0},{form:"\u3067",role:"event",position:"postposition",required:!0},{form:"\u3067",role:"style",position:"postposition",required:!1},{form:"\u3068",role:"style",position:"postposition",required:!1},{form:"\u3078",role:"destination",position:"postposition",required:!1}],rules:[{name:"event-handler",description:"Transform event handlers to Japanese SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"],optionalRoles:["patient"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Japanese order",priority:90,match:{commands:["put","\u7f6e\u304f"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Japanese verb-final order",priority:90,match:{commands:["set","\u8a2d\u5b9a"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Japanese verb-final order",priority:90,match:{commands:["bind","\u30d0\u30a4\u30f3\u30c9"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},ac({callVerb:"\u547c\u3073\u51fa\u3057",patientMarker:"\u3092",eventMarker:"\u3067",connective:"\u305d\u308c\u304b\u3089"}),sc({genitive:"\u306e",rangeSep:"\u304b\u3089",patientMarker:"\u3092",eventMarker:"\u3067"})]},ko:{code:"ko",name:"\ud55c\uad6d\uc5b4",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\ub97c",role:"patient",position:"postposition",required:!0,alternatives:["\uc744"]},{form:"\uc5d0",role:"destination",position:"postposition",required:!0},{form:"\uc5d0\uc11c",role:"source",position:"postposition",required:!0},{form:"\ud560 \ub54c",role:"event",position:"postposition",required:!0},{form:"\ub85c",role:"style",position:"postposition",required:!1,alternatives:["\uc73c\ub85c"]},{form:"\uc640",role:"style",position:"postposition",required:!1,alternatives:["\uacfc"]},{form:"\ub85c",role:"method",position:"postposition",required:!1,alternatives:["\uc73c\ub85c"]}],rules:[{name:"event-handler",description:"Transform event handlers to Korean SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Korean verb-final order",priority:90,match:{commands:["put","\ub123\ub2e4"],requiredRoles:["action","patient","destination"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Korean verb-final order",priority:90,match:{commands:["set","\uc124\uc815"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Korean verb-final order",priority:90,match:{commands:["bind","\ubc14\uc778\ub4dc"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},ac({callVerb:"\ud638\ucd9c",patientMarker:"\ub97c",eventMarker:"\ud560 \ub54c",connective:"\uadf8\ub7ec\uba74"}),sc({genitive:"\uc758",rangeSep:"\ubd80\ud130",patientMarker:"\ub97c",eventMarker:"\ud560 \ub54c"})]},zh:{code:"zh",name:"\u4e2d\u6587",wordOrder:"SVO",adpositionType:"preposition",morphology:"isolating",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u5f53",role:"event",position:"preposition",required:!0},{form:"\u65f6",role:"event",position:"postposition",required:!0},{form:"\u628a",role:"patient",position:"preposition",required:!1},{form:"\u5230",role:"destination",position:"preposition",required:!1},{form:"\u4ece",role:"source",position:"preposition",required:!1},{form:"\u7528",role:"style",position:"preposition",required:!1},{form:"\u7684",role:"method",position:"postposition",required:!1}],rules:[{name:"event-handler-standard",description:"Standard event handler: \u5f53 X \u65f6 Y",priority:100,match:{requiredRoles:["event","action"]},transform:{roleOrder:["event","action","patient"],insertMarkers:!0,custom:(e,t)=>{const r=e.roles.get("event"),n=e.roles.get("action"),i=new Map(e.roles);i.delete("event"),i.delete("action");const a=function(e,t,r){const n=[];for(const i of e){let e=t.find(e=>e.role===i.role);"event"===e?.role&&/^[#.<@[]/.test(i.translated||i.value)&&(e=void 0),"duration"===e?.role&&/^(me|you|it)$/i.test(i.value)&&(e=void 0),e?"preposition"===r?(e.form&&n.push(e.form),n.push(i.translated||i.value)):"postposition"===r?(n.push(i.translated||i.value),e.form&&n.push(e.form)):n.push(i.translated||i.value):n.push(i.translated||i.value)}return n}(function(e,t){const r=[],n=new Set;for(const i of t){const t=e.get(i);t&&(r.push(t),n.add(i))}for(const[t,i]of e)n.has(t)||r.push(i);return r}(i,(t.canonicalOrder||[]).filter(e=>"event"!==e&&"action"!==e)),t.markers,t.adpositionType),s=["\u5f53",r?.translated||r?.value||"","\u65f6"];return n&&s.push(n.translated||n.value),s.push(...a),s.filter(Boolean).join(" ")}}},{name:"ba-construction",description:"BA construction for object-fronting: \u628a X Y",priority:80,match:{commands:["put","set","move"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","action","destination"],insertMarkers:!0}},{name:"bind-to",description:"Bind binds a variable to an element: \u7ed1\u5b9a X \u5230 Y (no \u628a)",priority:90,match:{commands:["bind","\u7ed1\u5b9a"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["action","patient","destination"],custom:e=>{const t=e.roles.get("action"),r=e.roles.get("patient"),n=e.roles.get("destination");return[t?.translated||t?.value||"",r?.translated||r?.value||"","\u5230",n?.translated||n?.value||""].filter(Boolean).join(" ")}}}]},ar:{code:"ar",name:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",wordOrder:"VSO",adpositionType:"preposition",morphology:"fusional",direction:"rtl",canonicalOrder:["action","agent","patient","destination","source"],markers:[{form:"\u0639\u0646\u062f",role:"event",position:"preposition",required:!0},{form:"\u0625\u0644\u0649",role:"destination",position:"preposition",required:!1},{form:"\u0641\u064a",role:"destination",position:"preposition",required:!1},{form:"\u0645\u0646",role:"source",position:"preposition",required:!1},{form:"\u0628\u0640-",role:"style",position:"preposition",required:!1},{form:"\u0645\u0639",role:"style",position:"preposition",required:!1},{form:"\u0643\u0640-",role:"method",position:"preposition",required:!1}],rules:[{name:"event-handler-vso",description:"VSO event handler: VERB TARGET \u0639\u0646\u062f EVENT",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["action","patient","event"],insertMarkers:!0}}]},tr:{code:"tr",name:"T\u00fcrk\u00e7e",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"i",role:"patient",position:"postposition",required:!0,alternatives:["\u0131","u","\u00fc"]},{form:"e",role:"destination",position:"postposition",required:!0,alternatives:["a"]},{form:"den",role:"source",position:"postposition",required:!0,alternatives:["dan"]},{form:"de",role:"event",position:"postposition",required:!0,alternatives:["da"]},{form:"ile",role:"style",position:"postposition",required:!1},{form:"olarak",role:"method",position:"postposition",required:!1}],rules:[{name:"event-handler-sov",description:"SOV event handler",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Turkish verb-final order",priority:90,match:{commands:["put","koy"],requiredRoles:["action","patient","destination"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Turkish verb-final order",priority:90,match:{commands:["set","ayarla"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Turkish verb-final order",priority:90,match:{commands:["bind"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"wait-oblique-verb-final",description:"Keep wait's from-phrase and or-run inside the clause, verb-final",priority:90,match:{commands:["wait","bekle"],requiredRoles:["action","duration","source"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","source","duration","action"],insertMarkers:!0}},{name:"repeat-until-event-verb-final",description:"Keep repeat-until-event's from-phrase before the verb",priority:90,match:{commands:["repeat","tekrarla"],requiredRoles:["action","patient","source"],predicate:e=>/^repeat\s+until\s+event\b/i.test((e.original??"").trim())},transform:{roleOrder:["patient","source","action"],insertMarkers:!0}},ac({callVerb:"\u00e7a\u011f\u0131r",patientMarker:"i",eventMarker:"de",connective:"ard\u0131ndan"}),sc({genitive:"nin",rangeSep:"ile",patientMarker:"i",eventMarker:"de"})]},es:{code:"es",name:"Espa\u00f1ol",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"en",role:"event",position:"preposition",required:!0},{form:"a",role:"destination",position:"preposition",required:!1},{form:"hacia",role:"destination",position:"preposition",required:!1},{form:"de",role:"source",position:"preposition",required:!1},{form:"con",role:"style",position:"preposition",required:!1},{form:"por",role:"quantity",position:"preposition",required:!1},{form:"como",role:"method",position:"preposition",required:!1}]},de:{code:"de",name:"Deutsch",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"bei",role:"event",position:"preposition",required:!0},{form:"zu",role:"destination",position:"preposition",required:!1},{form:"in",role:"destination",position:"preposition",required:!1},{form:"von",role:"source",position:"preposition",required:!1},{form:"aus",role:"source",position:"preposition",required:!1},{form:"mit",role:"style",position:"preposition",required:!1},{form:"um",role:"quantity",position:"preposition",required:!1},{form:"als",role:"method",position:"preposition",required:!1}]},fr:{code:"fr",name:"Fran\u00e7ais",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"sur",role:"event",position:"preposition",required:!0},{form:"\u00e0",role:"destination",position:"preposition",required:!1},{form:"dans",role:"destination",position:"preposition",required:!1},{form:"de",role:"source",position:"preposition",required:!1},{form:"avec",role:"style",position:"preposition",required:!1},{form:"par",role:"quantity",position:"preposition",required:!1},{form:"comme",role:"method",position:"preposition",required:!1}]},pt:{code:"pt",name:"Portugu\u00eas",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"em",role:"event",position:"preposition",required:!0},{form:"para",role:"destination",position:"preposition",required:!1},{form:"em",role:"destination",position:"preposition",required:!1},{form:"de",role:"source",position:"preposition",required:!1},{form:"com",role:"style",position:"preposition",required:!1},{form:"por",role:"quantity",position:"preposition",required:!1},{form:"como",role:"method",position:"preposition",required:!1}]},id:{code:"id",name:"Bahasa Indonesia",wordOrder:"SVO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"pada",role:"event",position:"preposition",required:!0},{form:"ke",role:"destination",position:"preposition",required:!1},{form:"dari",role:"source",position:"preposition",required:!1},{form:"dengan",role:"style",position:"preposition",required:!1},{form:"sebagai",role:"method",position:"preposition",required:!1}]},ms:{code:"ms",name:"Bahasa Melayu",wordOrder:"SVO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"apabila",role:"event",position:"preposition",required:!0},{form:"ke",role:"destination",position:"preposition",required:!1},{form:"dari",role:"source",position:"preposition",required:!1},{form:"dengan",role:"style",position:"preposition",required:!1},{form:"sebagai",role:"method",position:"preposition",required:!1}]},qu:{code:"qu",name:"Runasimi",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","source","destination","event","action"],markers:[{form:"ta",role:"patient",position:"postposition",required:!0},{form:"man",role:"destination",position:"postposition",required:!0},{form:"manta",role:"source",position:"postposition",required:!0},{form:"pi",role:"event",position:"postposition",required:!0},{form:"wan",role:"style",position:"postposition",required:!1},{form:"hina",role:"method",position:"postposition",required:!1}],rules:[{name:"wait-oblique-verb-final",description:"Keep wait's from-phrase and or-run inside the clause, verb-final",priority:90,match:{commands:["wait","suyay"],requiredRoles:["action","duration","source"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","source","duration","action"],insertMarkers:!0}},ac({callVerb:"qayay",patientMarker:"ta",eventMarker:"pi",connective:"chayqa"}),sc({genitive:"pa",rangeSep:"kama",patientMarker:"ta",eventMarker:"pi"})]},sw:{code:"sw",name:"Kiswahili",wordOrder:"SVO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"kwenye",role:"event",position:"preposition",required:!0},{form:"kwa",role:"destination",position:"preposition",required:!1},{form:"kutoka",role:"source",position:"preposition",required:!1},{form:"na",role:"style",position:"preposition",required:!1},{form:"kuwa",role:"method",position:"preposition",required:!1}]},bn:{code:"bn",name:"\u09ac\u09be\u0982\u09b2\u09be",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\u0995\u09c7",role:"patient",position:"postposition",required:!0},{form:"\u09a4\u09c7",role:"destination",position:"postposition",required:!0},{form:"\u098f",role:"event",position:"postposition",required:!0},{form:"\u09a5\u09c7\u0995\u09c7",role:"source",position:"postposition",required:!0},{form:"\u09a6\u09bf\u09af\u09bc\u09c7",role:"style",position:"postposition",required:!1},{form:"\u099c\u09a8\u09cd\u09af",role:"duration",position:"postposition",required:!1}],rules:[{name:"event-handler",description:"Transform event handlers to Bengali SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"],optionalRoles:["patient"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Bengali verb-final order",priority:90,match:{commands:["put","\u09b0\u09be\u0996\u09c1\u09a8"],requiredRoles:["action","patient","destination"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Bengali verb-final order",priority:90,match:{commands:["set","\u09b8\u09c7\u099f"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Bengali verb-final order",priority:90,match:{commands:["bind","\u09ac\u09be\u0987\u09a8\u09cd\u09a1"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},ac({callVerb:"\u0995\u09b2",patientMarker:"\u0995\u09c7",eventMarker:"\u098f",connective:"\u09a4\u09be\u09b0\u09aa\u09b0"}),sc({genitive:"\u09b0",rangeSep:"\u09a5\u09c7\u0995\u09c7",patientMarker:"\u0995\u09c7",eventMarker:"\u098f"})]},it:{code:"it",name:"Italiano",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"su",role:"event",position:"preposition",required:!0},{form:"in",role:"destination",position:"preposition",required:!1},{form:"a",role:"destination",position:"preposition",required:!1},{form:"da",role:"source",position:"preposition",required:!1},{form:"di",role:"source",position:"preposition",required:!1},{form:"con",role:"style",position:"preposition",required:!1},{form:"come",role:"method",position:"preposition",required:!1}]},ru:{code:"ru",name:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u043f\u0440\u0438",role:"event",position:"preposition",required:!0},{form:"\u0432",role:"destination",position:"preposition",required:!1},{form:"\u043d\u0430",role:"destination",position:"preposition",required:!1},{form:"\u043a",role:"destination",position:"preposition",required:!1},{form:"\u0438\u0437",role:"source",position:"preposition",required:!1},{form:"\u043e\u0442",role:"source",position:"preposition",required:!1},{form:"\u0441",role:"source",position:"preposition",required:!1},{form:"\u0441",role:"style",position:"preposition",required:!1},{form:"\u0441\u043e",role:"style",position:"preposition",required:!1},{form:"\u043a\u0430\u043a",role:"method",position:"preposition",required:!1}]},uk:{code:"uk",name:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u043f\u0440\u0438",role:"event",position:"preposition",required:!0},{form:"\u0432",role:"destination",position:"preposition",required:!1},{form:"\u043d\u0430",role:"destination",position:"preposition",required:!1},{form:"\u0434\u043e",role:"destination",position:"preposition",required:!1},{form:"\u0437",role:"source",position:"preposition",required:!1},{form:"\u0432\u0456\u0434",role:"source",position:"preposition",required:!1},{form:"\u0456\u0437",role:"source",position:"preposition",required:!1},{form:"\u0437",role:"style",position:"preposition",required:!1},{form:"\u0456\u0437",role:"style",position:"preposition",required:!1},{form:"\u044f\u043a",role:"method",position:"preposition",required:!1}]},vi:{code:"vi",name:"Ti\u1ebfng Vi\u1ec7t",wordOrder:"SVO",adpositionType:"preposition",morphology:"isolating",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"khi",role:"event",position:"preposition",required:!0},{form:"v\u00e0o",role:"destination",position:"preposition",required:!1},{form:"cho",role:"destination",position:"preposition",required:!1},{form:"\u0111\u1ebfn",role:"destination",position:"preposition",required:!1},{form:"t\u1eeb",role:"source",position:"preposition",required:!1},{form:"kh\u1ecfi",role:"source",position:"preposition",required:!1},{form:"v\u1edbi",role:"style",position:"preposition",required:!1},{form:"nh\u01b0",role:"method",position:"preposition",required:!1}]},hi:{code:"hi",name:"\u0939\u093f\u0928\u094d\u0926\u0940",wordOrder:"SOV",adpositionType:"postposition",morphology:"fusional",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\u0915\u094b",role:"patient",position:"postposition",required:!0},{form:"\u092e\u0947\u0902",role:"destination",position:"postposition",required:!0},{form:"\u092a\u0930",role:"destination",position:"postposition",required:!1},{form:"\u092a\u0930",role:"event",position:"postposition",required:!0},{form:"\u0938\u0947",role:"source",position:"postposition",required:!0},{form:"\u0938\u0947",role:"style",position:"postposition",required:!1},{form:"\u0938\u093e\u0925",role:"style",position:"postposition",required:!1},{form:"\u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902",role:"method",position:"postposition",required:!1}],rules:[{name:"event-handler",description:"Transform event handlers to Hindi SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"],optionalRoles:["patient"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Hindi verb-final order",priority:90,match:{commands:["put","\u0930\u0916\u0947\u0902"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Hindi verb-final order",priority:90,match:{commands:["set","\u0938\u0947\u091f"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Hindi verb-final order",priority:90,match:{commands:["bind","\u092c\u093e\u0907\u0902\u0921","\u092c\u093e\u0902\u0927\u0947\u0902"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},ac({callVerb:"\u0915\u0949\u0932",patientMarker:"\u0915\u094b",eventMarker:"\u092a\u0930",connective:"\u092b\u093f\u0930"}),sc({genitive:"\u0915\u093e",rangeSep:"\u0938\u0947",patientMarker:"\u0915\u094b",eventMarker:"\u092a\u0930"})]},tl:{code:"tl",name:"Tagalog",wordOrder:"VSO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["action","agent","patient","destination","source"],markers:[{form:"kapag",role:"event",position:"preposition",required:!0},{form:"sa",role:"destination",position:"preposition",required:!1},{form:"mula_sa",role:"source",position:"preposition",required:!1},{form:"nang",role:"style",position:"preposition",required:!1},{form:"bilang",role:"method",position:"preposition",required:!1}],rules:[{name:"event-handler-vso",description:"VSO event handler: VERB TARGET kapag EVENT",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["action","patient","event"],insertMarkers:!0}}]},th:{code:"th",name:"\u0e44\u0e17\u0e22",wordOrder:"SVO",adpositionType:"preposition",morphology:"isolating",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u0e40\u0e21\u0e37\u0e48\u0e2d",role:"event",position:"preposition",required:!0},{form:"\u0e43\u0e19",role:"destination",position:"preposition",required:!1},{form:"\u0e44\u0e1b\u0e22\u0e31\u0e07",role:"destination",position:"preposition",required:!1},{form:"\u0e08\u0e32\u0e01",role:"source",position:"preposition",required:!1},{form:"\u0e14\u0e49\u0e27\u0e22",role:"style",position:"preposition",required:!1},{form:"\u0e40\u0e1b\u0e47\u0e19",role:"method",position:"preposition",required:!1}]},pl:{code:"pl",name:"Polski",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"gdy",role:"event",position:"preposition",required:!0},{form:"przy",role:"event",position:"preposition",required:!1},{form:"do",role:"destination",position:"preposition",required:!1},{form:"w",role:"destination",position:"preposition",required:!1},{form:"na",role:"destination",position:"preposition",required:!1},{form:"z",role:"source",position:"preposition",required:!1},{form:"od",role:"source",position:"preposition",required:!1},{form:"ze",role:"source",position:"preposition",required:!1},{form:"z",role:"style",position:"preposition",required:!1},{form:"ze",role:"style",position:"preposition",required:!1},{form:"jako",role:"method",position:"preposition",required:!1}]},he:{code:"he",name:"\u05e2\u05d1\u05e8\u05d9\u05ea",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"rtl",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u05d1",role:"event",position:"preposition",required:!0},{form:"\u05e2\u05dc",role:"destination",position:"preposition",required:!1},{form:"\u05d0\u05dc",role:"destination",position:"preposition",required:!1},{form:"\u05dc",role:"destination",position:"preposition",required:!1},{form:"\u05d0\u05ea",role:"patient",position:"preposition",required:!1},{form:"\u05de",role:"source",position:"preposition",required:!1},{form:"\u05de\u05df",role:"source",position:"preposition",required:!1},{form:"\u05e2\u05dd",role:"style",position:"preposition",required:!1},{form:"\u05db",role:"method",position:"preposition",required:!1}],rules:[{name:"bind-to",description:"Bind binds a variable to an element: \u05e7\u05e9\u05d5\u05e8 X \u05dc Y",priority:90,match:{commands:["bind","\u05e7\u05e9\u05d5\u05e8"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["action","patient","destination"],custom:e=>{const t=e.roles.get("action"),r=e.roles.get("patient"),n=e.roles.get("destination");return[t?.translated||t?.value||"",r?.translated||r?.value||"","\u05dc",n?.translated||n?.value||""].filter(Boolean).join(" ")}}}]}};function lc(e){return oc[e]}function cc(e){const t={};for(const[r,n]of Object.entries(e.words))t[n]=r;const r={};if(e.categories)for(const[t,n]of Object.entries(e.categories)){r[t]={};for(const[e,i]of Object.entries(n))r[t][i]=e}const n={source:e.target,target:e.source,words:t};return Object.keys(r).length>0&&(n.categories=r),n}function uc(e,t,r,n){const i={},a={};for(const r of["commands","modifiers","events","logical","temporal","values","attributes"]){const n=e[r],s=t[r];if(n&&s){a[r]={};for(const[e,t]of Object.entries(n)){const n=s[e];n&&t!==n&&(i[t]=n,a[r][t]=n)}}}return{source:r,target:n,words:i,categories:a}}cc(uc(Il,Dl,"ja","zh")),cc(uc(Bl,Il,"ko","ja")),cc({source:"es",target:"pt",words:{en:"em",decir:"dizer",disparar:"disparar",enviar:"enviar",tomar:"pegar",poner:"colocar",establecer:"definir",obtener:"obter",agregar:"adicionar",quitar:"remover",alternar:"alternar",ocultar:"esconder",mostrar:"mostrar",si:"se",menos:"a menos",repetir:"repetir",para:"para",mientras:"enquanto",hasta:"at\u00e9",continuar:"continuar",romper:"parar",detener:"parar",esperar:"esperar",buscar:"buscar",llamar:"chamar",retornar:"retornar",hacer:"fazer",registrar:"registrar",lanzar:"lan\u00e7ar",atrapar:"capturar",medir:"medir","transici\u00f3n":"transi\u00e7\u00e3o",incrementar:"incrementar",decrementar:"decrementar",predeterminar:"padr\u00e3o",ir:"ir",copiar:"copiar",escoger:"escolher",intercambiar:"trocar",transformar:"transformar","a\u00f1adir":"anexar",salir:"sair",a:"para",de:"de",dentro:"em",con:"com",como:"como",por:"por",clic:"clique",cambio:"mudan\u00e7a",entrada:"entrada","env\u00edo":"envio",carga:"carregar",enfoque:"foco",desenfoque:"desfoque",verdadero:"verdadeiro",falso:"falso",y:"e",o:"ou",no:"n\u00e3o",es:"\u00e9",segundos:"segundos",milisegundos:"milissegundos",nulo:"nulo",indefinido:"indefinido","vac\u00edo":"vazio"},categories:{commands:{en:"em",decir:"dizer",tomar:"pegar",poner:"colocar",establecer:"definir",obtener:"obter",agregar:"adicionar",quitar:"remover",ocultar:"esconder",si:"se",mientras:"enquanto",hasta:"at\u00e9",romper:"parar",detener:"parar",llamar:"chamar",hacer:"fazer",lanzar:"lan\u00e7ar",atrapar:"capturar",escoger:"escolher",intercambiar:"trocar","a\u00f1adir":"anexar",salir:"sair"},events:{clic:"clique",cambio:"mudan\u00e7a",carga:"carregar",enfoque:"foco",desenfoque:"desfoque"},logical:{verdadero:"verdadeiro",y:"e",o:"ou",no:"n\u00e3o",es:"\u00e9"}}}),ic.register("en",Pl()),ic.register("es",Rl),ic.register("ja",Ml),ic.register("fr",_l),ic.register("de",Vl),ic.register("ar",Wl),ic.register("ko",Fl),ic.register("zh",Ul),ic.register("tr",Zl),ic.register("id",Jl),ic.register("pt",rc),ic.register("qu",Xl),ic.register("sw",ec);let dc="en";const mc=ba(An,xi,Ta,La,Ti,fn,$a),pc=function(e,t){const r=new ua(null);for(const t of e)r.register(t);return new va({registry:r,expressionRegistry:t.expressionRegistry,enableAsyncCommands:t.enableAsyncCommands??!0,commandTimeout:t.commandTimeout??1e4,enableErrorReporting:t.enableErrorReporting??!0})}([ps(),Es(),Ks(),Zs(),Gs(),Qs(),no(),io(),oo(),co(),mo(),ho(),vo(),bo(),ko(),Co(),So(),To(),Oo(),jo(),qo(),Ro(),Io(),_o(),zo(),Vo(),Wo(),Uo(),Jo(),Qo(),el(),tl(),rl(),nl(),il(),al(),sl(),ol(),ul(),ml(),pl(),hl(),ll(),cl(),fl(),yl(),new gl,wl(),kl(),new El,new xl],{expressionRegistry:mc});function hc(e){const t=function(){if("en"!==dc)return ic.get(dc)}();return br(e,t?{keywords:t}:void 0)}const fc={parse:e=>hc(e),execute:async(e,t)=>{const r=qr(t),n=hc(e);if(!n.success||!n.node)throw Error(n.error?.message||"Parse failed");return await pc.execute(n.node,r)}},yc=function(e){return new wa(e)}(fc),gc={en:{},es:Nl,ja:Il,fr:$l,de:zl,ar:Hl,ko:Bl,zh:Dl,tr:Kl,id:Yl,pt:tc,qu:Gl,sw:Ql},vc={getLocale:()=>dc,setLocale(e){if(ic.has(e)){if(dc=e,ic.setDefault(e),"undefined"!=typeof document){document.documentElement.setAttribute("lang",e);const t=lc(e);"rtl"===t?.direction?document.documentElement.setAttribute("dir","rtl"):document.documentElement.setAttribute("dir","ltr")}}else console.warn(`Locale '${e}' not registered. Available: ${ic.getAvailable().join(", ")}`)},getAvailableLocales:()=>ic.getAvailable(),detectAndSetLocale(){if("undefined"==typeof navigator)return"en";const e=navigator.languages||[navigator.language];for(const t of e){const e=t.split("-")[0].toLowerCase();if(ic.has(e))return this.setLocale(e),e}return"en"},registerLocale(e,t){ic.register(e,t)},getProfile:lc,getSupportedGrammarLocales:function(){return Object.keys(oc)},profiles:oc,dictionaries:gc,createKeywordProvider:ql},bc={runtime:fc,parse:e=>hc(e),compile:e=>{const t=performance.now();try{const r=hc(e);return{success:r.success,ast:r.node,errors:r.errors??(r.error?[r.error]:[]),tokens:r.tokens||[],compilationTime:performance.now()-t}}catch(e){return{success:!1,ast:void 0,errors:[{message:e instanceof Error?e.message:e+"",line:1,column:1}],tokens:[],compilationTime:performance.now()-t}}},execute:async(e,t)=>{const r=qr(t);if("string"==typeof e){const t=hc(e);if(!t.success||!t.node)throw Error(t.error?.message||"Parse failed");return await pc.execute(t.node,r)}if(e&&"object"==typeof e)return await pc.execute(e,r);throw Error("execute() requires a code string or compiled AST")},run:async(e,t)=>{const r=qr(t),n=hc(e);if(!n.success||!n.node)throw Error(n.error?.message||"Parse failed");return await pc.execute(n.node,r)},evaluate:async(e,t)=>bc.run(e,t),processNode:e=>{e===document?yc.scanAndProcessAll():e instanceof HTMLElement&&yc.processElement(e)},process:e=>bc.processNode(e),createContext:jr,attributeProcessor:yc,version:"1.1.0-classic-i18n",i18n:vc,commands:["add","remove","toggle","put","hide","show","make","if","unless","repeat","break","continue","halt","return","exit","throw","set","get","increment","decrement","default","wait","fetch","trigger","send","transition","measure","settle","take","log","tell","call","copy","pick","beep","js","go","install","append","prepend","render","pseudo-command"],locales:["en","es","ja","fr","de","ar","ko","zh","tr","id","pt","qu","sw"],eval:async(e,t)=>fc.execute(e,t),init:e=>{!1!==e?.autoDetectLocale&&vc.detectAndSetLocale(),yc.init()}};"undefined"!=typeof window&&(window.hyperfixi=bc,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{bc.init()}):bc.init());var wc=Object.freeze({__proto__:null,conversion:fn,conversionExpressions:fn,createCommonRegistry:function(){return ba(An,xi,Ta,La,fn,$a)},createCoreRegistry:function(){return ba(An,xi,Ta,La)},createExpressionRegistry:ba,createFullExpressionRegistry:function(){return ba(An,xi,fn,$a,Ti,Ta,La)},createFullRegistry:function(){return ba(An,xi,Ta,La,fn,$a,Ti)},logical:xi,logicalExpressions:xi,mathematical:La,positional:$a,positionalExpressions:$a,properties:Ti,propertiesExpressions:Ti,references:An,referencesExpressions:An,special:Ta,specialExpressions:Ta});return bc}();
1
+ var hyperfixi=function(){"use strict";const e="then",t="else",r="end",n="and",i="for",a="while",s="until",o="forever",l="times",c="index",u="in",d="to",m="from",p="with",h="of",f="on",y="event",g="behavior",v="global",b="the",w="start",k=new Set(["add","append","beep","blur","break","breakpoint","call","clear","close","continue","copy","decrement","default","empty","exit","fetch","focus","get","go","halt","hide","if","increment","install","js","log","make","measure","morph","open","pick","prepend","process","pseudo-command","push","put","remove","render","repeat","replace","reset","return","scroll","select","send","set","settle","show","start","swap","take","tell","throw","toggle","transition","trigger","unless","wait","for"]),E=(new Set(["if","unless","repeat","wait","for","while"]),"at start of"),x="at end of",A=["into","before","after","at",E,x,"at the start of","at the end of"],C=new Set(["if","else","unless","for","while","until","end","and","or","not","in","to","from","into","with","without","as","matches","contains","then","on","when","every","init","def","behavior","the","of","first","last"]),S=e=>k.has(e.toLowerCase()),T=e=>C.has(e.toLowerCase()),O=e=>L.has(e.toLowerCase()),L=new Set(["hsl","hsla","rgb","rgba","hwb","lab","lch","oklch","oklab","color","color-mix","calc","min","max","clamp","var","url","linear-gradient","radial-gradient","conic-gradient","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient"]),j=new Set(["me","it","you","result","my","its","your"]),q=new Set(["and","or","not","no"]),P=new Set(["==","!=","===","!==","<",">","<=",">=","is","is not","am","is a","is an","is not a","is not an","precedes","does not precede","follows","does not follow","contains","starts with","ends with","does not start with","does not end with","has","have","does not contain","include","includes","does not include","match","matches","exists","does not exist","is empty","is not empty","is in","is not in","is between","is not between","equals","in","is equal to","is really equal to","is not equal to","is not really equal to","is greater than","is less than","is greater than or equal to","is less than or equal to","really equals","am in","am not in","am between","am not between","is really","is not really","is equal","is not equal","contain","do not contain","does not contains","do not match","does not match","ignoring case","sorted by","mapped to","split by","joined by"]),N=new Set(["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","focus","blur","change","input","submit","reset","select","load","unload","resize","scroll","keydown","keyup","keypress","touchstart","touchend","touchmove","touchcancel","drag","drop","dragover","dragenter","dragleave","cut","copy","paste","toggle"]),R=new Set(["on","init","behavior","def","if","else","unless","for","while","until","end","and","or","not","in","to","from","into","with","as","then","when","where","after","before","by","at","between","no","start","of","the","new","global","local","equal","equals","greater","less","than","really","catch","finally","throw","return"]);var I;!function(e){e.IDENTIFIER="identifier",e.STRING="string",e.NUMBER="number",e.SELECTOR="selector",e.OPERATOR="operator",e.TIME="time",e.TEMPLATE="template",e.COMMENT="comment",e.SYMBOL="symbol",e.UNKNOWN="unknown"}(I||(I={}));const M=new Set(["+","-","*","/","mod"]),$=new Set(["ms","s","seconds","minutes","hours","days"]);function _(e,t=1){const r=e.position+t;return e.input.length>r?e.input[r]:""}function z(e){const t=e.input[e.position];return e.position++,"\n"===t?(e.line++,e.column=1):"\r"===t?("\n"===(e.input.length>e.position?e.input[e.position]:"")&&e.position++,e.line++,e.column=1):e.column++,t}function V(e){const t=e.input,r=t.length;for(;r>e.position;){const r=t[e.position];if(" "!==r&&"\t"!==r&&"\r"!==r&&"\n"!==r)break;z(e)}}function H(e,t,r,n,i){const a=n??e.position-r.length,s=e.position;let o=e.column-r.length;void 0!==n&&(o=W(e.input,n).column);const l={kind:t,value:r,start:a,end:s,line:B(e,a),column:o};e.tokens.push(l)}function W(e,t){let r=1,n=-1;const i=Math.min(t,e.length);for(let t=0;i>t;t++){const i=e[t];"\n"===i?(r++,n=t):"\r"===i&&(r++,e.length>t+1&&"\n"===e[t+1]&&t++,n=t)}return{line:r,column:t-n}}function B(e,t){return W(e.input,t).line}function F(e){const t=e.position;let r="";for(z(e),z(e);e.input.length>e.position&&"\n"!==e.input[e.position];)r+=z(e);H(e,I.COMMENT,"--"+r,t)}function D(e){const t=e.position,r=z(e);let n=r;for(;e.input.length>e.position;){const t=z(e);if(n+=t,t===r)break;"\\"===t&&e.input.length>e.position&&(n+=z(e))}H(e,I.STRING,n,t)}function U(e){const t=e.position;z(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if("`"===t){z(e);break}if("\\"===t){if(z(e),e.input.length>e.position){const t=z(e);switch(t){case"n":r+="\n";break;case"t":r+="\t";break;case"r":r+="\r";break;case"\\":r+="\\";break;case"`":r+="`";break;default:r+=t}}}else r+=z(e)}if(e.position>=e.input.length&&!e.input.endsWith("`"))throw Error(`Unterminated template literal at line ${e.line}, column ${e.column-r.length}`);H(e,I.TEMPLATE,r,t)}function K(e){const t=e.position;let r=z(e);if(e.input.length>e.position&&"{"===e.input[e.position]){for(r+=z(e);e.input.length>e.position;){const t=e.input[e.position];if(r+=z(e),"}"===t)break}H(e,I.SELECTOR,r,t)}else{for(;e.input.length>e.position;){const t=e.input[e.position];if("\\"===t)z(e),e.input.length>e.position&&(r+=z(e));else{if(!te(t)&&"-"!==t&&"_"!==t&&":"!==t)break;r+=z(e)}}H(e,I.SELECTOR,r,t)}}function Z(e){const t=e.position;if(re(e))return void function(e,t){const r=e.input;let n="",i=0,a="";for(;r.length>e.position;){const t=r[e.position];if(a)n+=z(e),t===a&&(a="");else if('"'!==t&&"'"!==t){if("<"===t){if("/"===r[e.position+1]){for(;r.length>e.position&&">"!==r[e.position];)n+=z(e);if(r.length>e.position&&(n+=z(e)),i--,0>=i)break;continue}let t=!1,a="";for(;r.length>e.position;){const i=r[e.position];if(a)n+=z(e),i===a&&(a="");else if('"'!==i&&"'"!==i){if(">"===i){t="/"===r[e.position-1],n+=z(e);break}n+=z(e)}else a=i,n+=z(e)}if(t||i++,0>=i)break;continue}n+=z(e)}else a=t,n+=z(e)}H(e,I.SELECTOR,n,t)}(e,t);let r="";for(r+=z(e);e.input.length-1>e.position;){const t=e.input[e.position],n=e.input[e.position+1];if(r+=z(e),"/"===t&&">"===n){r+=z(e);break}}H(e,I.SELECTOR,r,t)}function Y(e){const t=e.position;let r=z(e);for(;e.input.length>e.position;){const t=e.input[e.position];if(!te(t)&&"_"!==t&&"-"!==t)break;r+=z(e)}H(e,I.SYMBOL,r,t)}function J(e){const t=e.position;let r="";const n=e.input[e.position];if(("'"===n||"'"===n)&&"s"===_(e,1))return r="'s",z(e),z(e),void H(e,I.OPERATOR,r,t);const i=e.input.substring(e.position,e.position+2),a=e.input.substring(e.position,e.position+3);["===","!=="].includes(a)?(r=a,z(e),z(e),z(e)):["==","!=","<=",">=","&&","||","**","~=","|=","^=","$=","*=","?."].includes(i)?(r=i,z(e),z(e)):r=z(e),H(e,I.OPERATOR,r,t)}function G(e){const t=e.position,r=e.input,n=r.length;let i="";for(;n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=z(e)}if(n>e.position&&"."===r[e.position]&&(e.position+1>=n||"."!==r[e.position+1]))for(i+=z(e);n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=z(e)}if(n>e.position){const t=r[e.position];if("e"===t||"E"===t){const t=n>e.position+1?r[e.position+1]:"",a=n>e.position+2?r[e.position+2]:"";if(t>="0"&&"9">=t||!("+"!==t&&"-"!==t||"0">a||a>"9"))for(i+=z(e),"+"!==r[e.position]&&"-"!==r[e.position]||(i+=z(e));n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=z(e)}}}const a=e.position;let s="";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z"))break;s+=z(e)}$.has(s)?H(e,I.TIME,i+s,t):(e.position=a,H(e,I.NUMBER,i,t))}function Q(e){const t=e.position,r=e.input,n=r.length;let i="";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;i+=z(e)}const a=function(e,t,r){const n=t.toLowerCase(),i=e.position;if("'s"===t||"'s"===t)return!1;const a=e.tokens[e.tokens.length-1];if(a&&(a.kind===I.IDENTIFIER||a.kind===I.SELECTOR)){const t=e.input.length>e.position?e.input[e.position]:"";if("'"===t||"'"===t)return!1}V(e);let s="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;s+=z(e)}if(s){const t=s.toLowerCase(),i=`${n} ${t}`,a=function(e,t,r,n){const i=t.toLowerCase(),a=r.toLowerCase();if("at"===i){const t=e.position;if("the"===a){V(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;r+=z(e)}const i=r.toLowerCase();if("start"===i||"end"===i){V(e);let t="";for(;e.input.length>e.position;){const r=e.input[e.position];if(("a">r||r>"z")&&("A">r||r>"Z")&&("0">r||r>"9")&&"_"!==r&&"-"!==r)break;t+=z(e)}if("of"===t.toLowerCase())return H(e,I.IDENTIFIER,`at the ${i} of`,n),!0}return e.position=t,!1}if("start"===a||"end"===a){V(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;r+=z(e)}return"of"===r.toLowerCase()?(H(e,I.IDENTIFIER,`at ${a} of`,n),!0):(e.position=t,!1)}}return!1}(e,n,t,r);if(a)return!0;const o=function(e,t,r){const n=e.position;let i=`${t} ${r}`,a=e.position;const s=[t,r];for(;8>s.length&&(V(e),e.input.length>e.position);){let t="";for(;e.input.length>e.position;){const r=e.input[e.position];if(("a">r||r>"z")&&("A">r||r>"Z"))break;t+=z(e)}if(!t)break;s.push(t.toLowerCase());const r=s.join(" ");P.has(r)&&(i=r,a=e.position)}return P.has(i)&&i!==`${t} ${r}`?(e.position=a,i):(e.position=n,null)}(e,n,t);if(o)return H(e,I.OPERATOR,o,r),!0;if(P.has(i))return H(e,I.OPERATOR,i,r),!0}return P.has(n)?(e.position=i,H(e,I.OPERATOR,t,r),!0):(e.position=i,!1)}(e,i,t);if(a)return;const s=function(e){const t=e.toLowerCase();return"include"===t||"includes"===t||q.has(t)||M.has(e)||M.has(t)||P.has(t)?I.OPERATOR:I.IDENTIFIER}(i);H(e,s,i,t)}function X(e){const t=e.position,r=e.input,n=r.length;z(e);let i="$";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t)break;i+=z(e)}H(e,I.IDENTIFIER,i,t)}function ee(e){return/[a-zA-Z]/.test(e)}function te(e){return/[a-zA-Z0-9]/.test(e)}function re(e){const t=e.input,r=t[e.position+1];if(!r||!/[a-zA-Z]/.test(r))return!1;let n=e.position+1,i="";for(;t.length>n&&/[a-zA-Z0-9-]/.test(t[n]);)i+=t[n],n++;return i.length>0&&-1!==t.indexOf("</"+i+">",n)}function ne(e){if(re(e))return!0;let t=e.position+1,r=!1;for(;e.input.length>t;){const n=e.input[t];if("/"===n&&e.input.length>t+1&&">"===e.input[t+1])return r;if(te(n)||"."===n||"#"===n||"["===n||"]"===n||":"===n||"-"===n||"_"===n||" "===n||"="===n||'"'===n||"'"===n||"("===n||")"===n||"*"===n||"^"===n||"$"===n||"~"===n||"|"===n||">"===n||"+"===n||","===n||"{"===n||"}"===n)r=!0,t++;else{if(" "!==n&&"\t"!==n)return!1;t++}if(t-e.position>50)return!1}return!1}function ie(e){return"+-*/^%=!<>&|(){}[],.;:?''~$".includes(e)}const ae=function(){if("undefined"!=typeof localStorage)try{const e=localStorage,t=e.getItem("hyperfixi:debug")||e.getItem("lokascript:debug");if("*"===t||"true"===t)return!0}catch{}return!("undefined"==typeof window||!window.__HYPERFIXI_DEBUG__)||"undefined"!=typeof process&&"true"===process.env?.HYPERFIXI_DEBUG}(),se=ae,oe=ae,le=ae,ce=ae,ue=(...e)=>{se&&console.log("\ud83d\udd27",...e)},de=(...e)=>{oe&&console.log("\ud83c\udfaf",...e)},me=(...e)=>{le&&console.log("\ud83d\udcdd",...e)},pe=(...e)=>{ce&&console.log("\ud83d\ude80",...e)},he=new Set(["then","end","to","into","on","with","from","in","by","for","while","until","unless","else","catch","finally"]),fe=new Set([")","]","}",","]);function ye(e,t){return{infix:{bp:[e,e+1],handler:t??((t,r,n)=>{const i=n.parseExpr(e+1);return{type:"binaryExpression",operator:r.value,left:t,right:i,start:t.start,end:i.end??r.end,line:t.line??r.line,column:t.column??r.column}})}}}function ge(e,t){return{infix:{bp:[e+1,e],handler:(t,r,n)=>{const i=n.parseExpr(e);return{type:"binaryExpression",operator:r.value,left:t,right:i,start:t.start,end:i.end??r.end,line:t.line??r.line,column:t.column??r.column}}}}}function ve(e,t){return{prefix:{bp:e,handler:t??((t,r)=>{const n=r.parseExpr(e);return{type:"unaryExpression",operator:t.value,operand:n,argument:n,prefix:!0,start:t.start,end:n.end??t.end,line:t.line,column:t.column}})}}}function be(e){return(t,r,n)=>{const i=n.advance();if(!i||!i.value)throw Error(`Type check requires a type name after 'is ${e?"not ":""}a/an', got: <end>`);let a=!0;const s=n.peek();return s&&"!"===s.value&&(n.advance(),a=!1),{type:"typeCheckExpression",value:t,typeName:i.value,nullOk:a,negated:e,start:t.start,end:i.end}}}function we(e,t=70){let r=e.parseExpr(t);if("in"===e.peek()?.value){const n=e.advance(),i=e.parseExpr(t);r={type:"binaryExpression",operator:"in",left:r,right:i,start:r.start,end:i.end??n.end,line:r.line??n.line,column:r.column??n.column}}return r}const ke=function(...e){const t=new Map;for(const r of e)for(const[e,n]of r){const r=t.get(e);t.set(e,r?{prefix:n.prefix??r.prefix,infix:n.infix??r.infix}:{...n})}return t}(new Map([["or",ye(10)],["||",ye(10)],["and",ye(20)],["&&",ye(20)],["==",ye(30)],["!=",ye(30)],["<",ye(30)],[">",ye(30)],["<=",ye(30)],[">=",ye(30)],["is",ye(30)],["matches",ye(30)],["contains",ye(30)],["starts with",ye(30)],["ends with",ye(30)],["does not start with",ye(30)],["does not end with",ye(30)],["is between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!1,start:e.start,end:a.end}})],["is not between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!0,start:e.start,end:a.end}})],["am between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!1,start:e.start,end:a.end}})],["am not between",ye(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw Error("between requires 'and' between min and max operands, got: "+(i?.value??"<end>"));r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!0,start:e.start,end:a.end}})],["ignoring case",{infix:{bp:[25,26],handler:(e,t,r)=>(e.ignoringCase=!0,e)}}],["where",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"where",collection:e,right:n,start:e.start,end:n.end}})],["sorted by",ye(28,(e,t,r)=>{const n=r.parseExpr(29);let i="asc";const a=r.peek();if(a&&"string"==typeof a.value){const e=a.value.toLowerCase();"asc"===e||"ascending"===e?(r.advance(),i="asc"):"desc"!==e&&"descending"!==e||(r.advance(),i="desc")}return{type:"collectionExpression",operator:"sorted by",collection:e,right:n,order:i,start:e.start,end:n.end}})],["mapped to",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"mapped to",collection:e,right:n,start:e.start,end:n.end}})],["split by",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"split by",collection:e,right:n,start:e.start,end:n.end}})],["joined by",ye(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"joined by",collection:e,right:n,start:e.start,end:n.end}})],["+",{...ye(40),...ve(80)}],["-",{...ye(40),...ve(80)}],["*",ye(50)],["/",ye(50)],["%",ye(50)],["mod",ye(50)],["^",ge(60)],["**",ge(60)],["as",ye(70,(e,t,r)=>{const n=()=>{const e=r.peek();!e||"a"!==e.value&&"an"!==e.value||r.advance();const t=r.parseExpr(71),n=r.peek();if(n&&":"===n.value&&t&&"identifier"===t.type){r.advance();const e=r.advance();if(e&&void 0!==e.value)return{...t,name:`${t.name+""}:${e.value}`,end:e.end}}return t};let i=n(),a={type:"asExpression",expression:e,targetType:i,start:e.start,end:i.end??t.end,line:e.line??t.line,column:e.column??t.column};for(;r.peek()&&"|"===r.peek().value;){r.advance();const e=n();a={type:"asExpression",expression:a,targetType:e,start:a.start,end:e.end??a.end,line:a.line,column:a.column}}return a})],["not",ve(80)],["!",ve(80)],["no",ve(27)]]),new Map([["===",ye(30)],["!==",ye(30)],["is not",ye(30)],["am",ye(30)],["is in",ye(30)],["is not in",ye(30)],["precedes",ye(30)],["does not precede",ye(30)],["follows",ye(30)],["does not follow",ye(30)],["is a",ye(30,be(!1))],["is an",ye(30,be(!1))],["is not a",ye(30,be(!0))],["is not an",ye(30,be(!0))],["has",ye(30)],["have",ye(30)],["match",ye(30)],["include",ye(30)],["includes",ye(30)],["equals",ye(30)],["does not contain",ye(30)],["does not include",ye(30)],["am in",ye(30)],["am not in",ye(30)],["is really",ye(30)],["is not really",ye(30)],["is equal",ye(30)],["is not equal",ye(30)],["contain",ye(30)],["do not contain",ye(30)],["does not contains",ye(30)],["do not match",ye(30)],["does not match",ye(30)],["is equal to",ye(30)],["is not equal to",ye(30)],["is really equal to",ye(30)],["is not really equal to",ye(30)],["really equals",ye(30)],["is greater than",ye(30)],["is less than",ye(30)],["is greater than or equal to",ye(30)],["is less than or equal to",ye(30)],["in",ye(30)],["of",{infix:{bp:[90,70],handler:function(e,t,r){const n=we(r);return{type:"binaryExpression",operator:t.value,left:e,right:n,start:e.start,end:n.end??t.end,line:e.line??t.line,column:e.column??t.column}}}}],["really",ye(30)],["exists",{prefix:{bp:80,handler:(e,t)=>({type:"unaryExpression",operator:e.value,operand:t.parseExpr(80),start:e.start})},infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["does not exist",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["is empty",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["is not empty",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["some",ve(80)]]),new Map([["=",ge(5)]])),Ee=new Set,xe=new Set,Ae=new Set,Ce=new Set;function Se(e,t){void 0!==console&&console.error(`[hyperfixi] ${e} threw:`,t)}function Te(e,t){if(0!==xe.size)for(const r of xe)try{r(e,t)}catch(e){Se("globalReadHook",e)}}function Oe(e,t,r){if(0!==Ae.size)for(const n of Ae)try{n(e,t,r)}catch(e){Se("localWriteHook",e)}}function Le(e,t){if(0!==Ce.size)for(const r of Ce)try{r(e,t)}catch(e){Se("localReadHook",e)}}function je(e,t,r){if(e.globals.set(t,r),0!==Ee.size)for(const n of Ee)try{n(t,r,e)}catch(e){Se("globalWriteHook",e)}}const qe=new Map,Pe=new Map,Ne=new Map;function Re(e){return qe.get(e.toLowerCase())}function Ie(e){return Ne.get(e)}function Me(e){return e.kind===I.IDENTIFIER&&k.has(e.value.toLowerCase())}function $e(e){return e.kind===I.IDENTIFIER&&R.has(e.value.toLowerCase())}function _e(e){return e.kind===I.IDENTIFIER&&N.has(e.value.toLowerCase())}function ze(e){return e.kind===I.IDENTIFIER&&j.has(e.value.toLowerCase())}function Ve(e){return P.has(e.value.toLowerCase())}function He(e){return e.kind===I.IDENTIFIER}function We(e){return e.kind===I.SELECTOR}function Be(e){return e.kind===I.SELECTOR&&!e.value.startsWith("<")}function Fe(e){return e.kind===I.STRING||e.kind===I.NUMBER||e.kind===I.TEMPLATE}function De(e){return e.kind===I.IDENTIFIER}function Ue(e){return e.kind===I.TIME}function Ke(e){return e.kind===I.SYMBOL}function Ze(e){return e.kind===I.COMMENT}function Ye(e){if(e.kind!==I.IDENTIFIER)return!1;const t=e.value.toLowerCase();return!(k.has(t)||R.has(t)||N.has(t)||j.has(t))}function Je(e){return e.kind===I.STRING}function Ge(e){return e.kind===I.NUMBER}function Qe(e){if(e.kind===I.IDENTIFIER){const t=e.value;return"true"===t||"false"===t||"null"===t||"undefined"===t}return!1}function Xe(e){return e.kind===I.TEMPLATE}function et(e){return e.kind===I.SELECTOR&&e.value.startsWith("<")}function tt(e){return e.kind===I.SELECTOR&&e.value.startsWith("#")}function rt(e){return e.kind===I.SELECTOR&&e.value.startsWith(".")}function nt(e){return e.kind===I.SELECTOR&&!e.value.startsWith("#")&&!e.value.startsWith(".")}function it(e){if(e.kind!==I.OPERATOR)return!1;const t=e.value.toLowerCase();return!q.has(t)&&!P.has(t)}function at(e){const t=e.value.toLowerCase();return"then"===t||"and"===t||"else"===t||"end"===t||"on"===t}function st(e,t,r){return{type:"literal",value:e,raw:t,start:r.start,end:r.end,line:r.line,column:r.column}}function ot(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}function lt(e,t,r,n){return{type:"binaryExpression",operator:e,left:t,right:r,start:n.start,end:n.end,line:n.line,column:n.column}}function ct(e,t){return{type:"block",commands:e,start:t.start,end:t.end,line:t.line,column:t.column}}function ut(e,t){return{type:"string",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}function dt(e,t){return{type:"objectLiteral",properties:e,start:t.start,end:t.end,line:t.line,column:t.column}}function mt(e,t){return{type:"arrayLiteral",elements:e,start:t.start,end:t.end,line:t.line,column:t.column}}function pt(e,t,r){return{type:"propertyOfExpression",property:e,target:t,start:r.start,end:r.end,line:r.line,column:r.column}}function ht(e,t,r){return{type:"command",name:"__ERROR__",args:[],diagnostics:[{message:t,severity:"error",code:"parse-error",line:e.line,column:e.column,...r&&{source:r}}],start:e.start,end:e.end,line:e.line,column:e.column}}function ft(e){return e}function yt(e){return e}function gt(e,t){return!!e&&t.some(t=>e.value===t||e.value.toLowerCase()===t)}const vt=[e,n,t,r];function bt(e,t=[]){if(e.isAtEnd())return!0;for(const t of vt)if(e.check(t))return!0;for(const r of t)if(e.check(r))return!0;return!!e.checkIsCommand()}function wt(e,t=[]){if(!bt(e,t))return e.parseExpression()}function kt(e,t){return!!e.check(t)&&(e.advance(),!0)}function Et(e){const t=e.savePosition();let r;if(e.checkIdentifierLike()){const n=e.peek().value;e.advance(),e.check(":")?(e.advance(),r=n):e.restorePosition(t)}const n=e.parseExpression();return void 0!==r?{name:r,value:n}:{value:n}}function xt(e){if(e.check("{"))return!1;if(!e.checkIdentifierLike())return!1;const t=e.peekAt(1);return null!==t&&":"===t.value}function At(e,t,r){const n=[],i=e.getPosition();do{if(!e.checkIdentifierLike())break;const i=e.advance(),a={type:"identifier",name:i.value,start:i.start,end:i.end,line:i.line,column:i.column};e.consume(":",`Expected ':' after property name in ${r} named arguments`);const s=t();s&&n.push({key:a,value:s})}while(e.match(",")&&!e.isAtEnd());const a=e.getPosition();return{type:"objectLiteral",properties:n,start:i.start,end:a.end,line:i.line,column:i.column}}function Ct(e,t){return"beep"===e?.value&&"!"===t?.value&&t.start===e.end}class St{constructor(e){this.args=[],this.isBlocking=!1,this.name=e}static from(e){const t=new St(e.value);return t.startPos={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},t}static fromIdentifier(e){const t=new St(e.name);return void 0!==e.start&&(t.startPos={start:e.start,end:e.end??0,line:e.line??1,column:e.column??1}),t}static named(e){return new St(e)}withArgs(...e){return this.args.push(...e),this}withBody(e){return this.body=e,this}withImplicitTarget(e){return this.implicitTarget=e,this}withModifier(e,t){return this.modifiers||(this.modifiers={}),this.modifiers[e]=t,this}withModifiers(e){return this.modifiers={...this.modifiers,...e},this}withName(e){return this.name=e,this}withOriginalCommand(e){return this.originalCmd=e,this}blocking(e=!0){return this.isBlocking=e,this}startingAt(e){return this.startPos={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},this}endingAt(e){return this.endPos={start:e.start??this.startPos?.start??0,end:e.end,line:e.line??this.startPos?.line??1,column:e.column??this.startPos?.column??1},this}build(){const e={type:"command",name:this.name,args:this.args,isBlocking:this.isBlocking,start:this.startPos?.start??0,end:this.endPos?.end??this.startPos?.end??0,line:this.startPos?.line??1,column:this.startPos?.column??1};return this.body&&(e.body=this.body),this.implicitTarget&&(e.implicitTarget=this.implicitTarget),this.modifiers&&(e.modifiers=this.modifiers),this.originalCmd&&(e.originalCommand=this.originalCmd),e}clone(){const e=new St(this.name);return e.args=[...this.args],e.body=this.body?[...this.body]:void 0,e.implicitTarget=this.implicitTarget,e.isBlocking=this.isBlocking,e.modifiers=this.modifiers?{...this.modifiers}:void 0,e.originalCmd=this.originalCmd,e.startPos=this.startPos?{...this.startPos}:void 0,e.endPos=this.endPos?{...this.endPos}:void 0,e}}function Tt(e,t){const r=[];let n="";const i=e.peek().start||0,a=e.peek().line||1,s=e.peek().column||1;if(e.checkIdentifierLike()){for(n=e.advance().value;e.check(":")&&!e.isAtEnd();)e.advance(),n+=":",e.checkIdentifierLike()&&(n+=e.advance().value);if(e.check("(")){e.advance();const t=[];for(;!e.isAtEnd()&&!e.check(")");){const{name:r,value:n}=Et(e);if(t.push(void 0!==r?{type:"objectLiteral",properties:[{key:{type:"identifier",name:r},value:n}],start:n.start,end:n.end,line:n.line,column:n.column}:n),e.check(","))e.advance();else if(!e.check(")"))break}e.check(")")&&e.advance(),r.push({type:"functionCall",name:n,args:t,start:i,end:e.getPosition().end,line:a,column:s})}else r.push({type:"string",value:n,start:i,end:e.getPosition().end,line:a,column:s})}const o=[...r],l={};for(;!bt(e);){if(e.check(f)||e.check(d)){if(l.on)break;e.advance();const t=wt(e,[p]);t&&(l.on=t);continue}if(e.check(p)){e.advance();const t=[];for(;!bt(e,[f,d]);){const r=e.savePosition(),n=e.parsePrimary();n&&t.push(n),e.savePosition()===r&&e.advance()}const r=t[0],n=t[t.length-1];l.with=ft({type:"arrayLiteral",elements:t,...void 0!==r?.start?{start:r.start}:{},...void 0!==n?.end?{end:n.end}:{},...void 0!==r?.line?{line:r.line}:{},...void 0!==r?.column?{column:r.column}:{}});continue}const t=e.savePosition(),r=e.parsePrimary();r&&o.push(r),e.savePosition()===t&&e.advance()}const c=St.fromIdentifier(t).withArgs(...o);return Object.keys(l).length>0&&c.withModifiers(l),c.endingAt(e.getPosition()).build()}function Ot(e,t){const r=St.fromIdentifier(t);if(e.check(b)){const t=e.advance(),n=e.check(y)?e.advance():t;r.withModifier("the",{type:"literal",value:"event",start:t.start,end:n.end,line:t.line,column:t.column})}return r.endingAt(e.getPosition()).build()}function Lt(i,a){const s=[],o=()=>i.check(r)||a&&i.check(t);for(;!i.isAtEnd()&&!o();){if(Ze(i.peek())){i.advance();continue}if(!i.checkIsCommand()&&!i.isCommand(i.peek().value))break;i.advance();const t=i.parseCommand();t&&s.push(t),(i.check(e)||i.check(n)||i.check(","))&&i.advance()}return s}const jt=new Set(["is","am","are","not","no","and","or","==","===","!=","!==","<",">","<=",">=","+","-","*","/","mod"]);function qt(e,t,r){return null!==t&&!jt.has(t.value?.toLowerCase?.()??"")&&(e.checkIsCommand()||e.isCommand(r.value?.toLowerCase()))}function Pt(n,i){const a=[];let s=!1;const o=n.savePosition();let l=null;for(let t=0;500>t&&!n.isAtEnd();t++){const t=n.peek();if(t.value===e){s=!0;break}if(t.value===r||t.value===g||"def"===t.value||t.value===f)break;if(void 0!==t.line&&t.line!==i.line&&qt(n,l,t))break;Ze(t)||(l=t),n.advance()}n.restorePosition(o);let c=!1;if(!s){const e=n.savePosition(),a=i.line,s=100;let o=!1,l=null;for(;!n.isAtEnd()&&s>n.current-e;){const e=n.peek(),i=e.value?.toLowerCase();if(o&&void 0!==e.line&&e.line!==a)break;if(i===g||"def"===i||i===f)break;if(i===t||i===r){e.line===a&&(c=!0);break}if(qt(n,l,e)){if(void 0!==e.line&&e.line!==a){c=!0;break}o=!0}Ze(e)||(l=e),n.advance()}n.restorePosition(e)}const u=s||c;let d;if(u)d=n.parseExpression();else{const t=[],r=20;let a=0,s=!0;for(;!n.isAtEnd()&&!n.check(e)&&(s||!n.checkIsCommand()&&!n.isCommand(n.peek().value))&&r>a;){s=!1;const e=n.savePosition();t.push(n.parseLogicalAnd()),n.savePosition()===e&&n.advance(),a++}if(0===t.length)throw Error("Expected condition after if/unless");d=1===t.length?t[0]:{type:"expression",tokens:t,start:t[0].start,end:t[t.length-1].end,line:i.line,column:i.column}}if(a.push(d),u){kt(n,e);const s=Lt(n,!0);if(0===s.length&&n.isAtEnd())throw Error("Expected command after 'then' in if statement - incomplete conditional");a.push(ct(s,{start:i.start,end:n.getPosition().end,line:i.line,column:i.column}));let o=!1;if(n.check(t))if(n.advance(),n.check("if")){const e=n.peek();n.advance();const t=Pt(n,e);a.push(ct([t],{start:e.start,end:n.getPosition().end,line:e.line,column:e.column})),o=!0}else{const e=Lt(n,!1);a.push(ct(e,{start:i.start,end:n.getPosition().end,line:i.line,column:i.column}))}o||n.atEndOfInput()||n.consume(r,"Expected 'end' after if block")}else{if(!n.checkIsCommand()&&!n.isCommand(n.peek().value))throw Error("Expected command after if condition in single-line form");{n.advance();const e=n.parseCommand();a.push(ct([e],{start:i.start,end:n.getPosition().end,line:i.line,column:i.column}))}}return St.from(i).withArgs(...a).endingAt(n.getPosition()).build()}function Nt(e,t){const r=[],n={};if(e.checkAnySelector()||e.checkContextVar()||e.match("<")){const t=e.parsePrimary();if(r.push(t),e.match("*")){if(e.checkIdentifierLike()){const t=e.advance();r.push({type:"identifier",name:"*"+t.value,start:t.start-1,end:t.end,line:t.line,column:t.column})}}else if(e.checkIdentifierLike()){const t=e.parsePrimary();r.push(t)}}else if(e.checkIdentifierLike()){const t=e.parsePrimary();r.push(t)}if(e.match("and")&&e.match("set")&&e.checkIdentifierLike()){const t=e.advance();n.set={type:"identifier",name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}const i=St.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition());return Object.keys(n).length>0&&i.withModifiers(n),i.build()}const Rt=new Set(["me","it","you","result"]);function It(e){const{owner:t,property:r}=function(e){const t=e.peek();if(!t||gt(t,[d,"from"]))throw Error("Transition command requires a CSS property");const r=e.parseExpression(),n=Mt(r);if(n)return{owner:n.owner,property:$t(n.name,t,e)};let i="";e.check("*")&&(i="*",e.advance());const a=function(e){if(!e.checkIdentifierLike())return"";let t=e.advance().value;for(;e.check("-")&&!e.isAtEnd();)t+="-",e.advance(),e.checkIdentifierLike()&&(t+=e.advance().value);return t}(e);if(!a)throw Error("Transition command requires a CSS property");return{owner:r,property:$t(i+a,t,e)}}(e);let n=null;if(e.check("from")&&(e.advance(),n=e.parseExpression()),!e.check(d))throw Error('Expected "to" keyword after property in transition command');return e.advance(),{owner:t,property:r,from:n,to:e.parseExpression()}}function Mt(e){const t=e;switch(t.type){case"selector":return"string"==typeof t.value&&t.value.startsWith("*")?{owner:null,name:t.value}:null;case"identifier":return"string"!=typeof t.name||Rt.has(t.name)?null:{owner:null,name:t.name};case"possessiveExpression":case"memberExpression":return!t.computed&&t.object&&"string"==typeof t.property?.name?{owner:t.object,name:t.property.name}:null;case"binaryExpression":{if("of"!==t.operator||!t.left||!t.right)return null;const e=Mt(t.left);return e&&!e.owner?{owner:t.right,name:e.name}:null}case"propertyOfExpression":return t.target&&"string"==typeof t.property?.name?{owner:t.target,name:t.property.name}:null;default:return null}}function $t(e,t,r){return{type:"string",value:e,start:t.start||0,end:r.getPosition().end,line:t.line,column:t.column}}function _t(e){return!(e.isAtEnd()||Ze(e.peek())||gt(e.peek(),["over","using",p])||bt(e,["catch","finally","on"]))}function zt(e){return{type:"literal",value:e,raw:e}}function Vt(e){const t={};if(kt(e,i)){const r=e.parseExpression();return r&&(t.for=r),t}if(!e.check(s))return t;e.advance();const r=e.peek();if(!r||!He(r))return t;e.advance();let n=r.value;if(e.check(":")){e.advance();const t=e.peek();t&&He(t)&&(e.advance(),n=`${n}:${t.value}`)}if(t.until=zt(n),kt(e,m)){const r=wt(e);r&&(t.from=r)}return t}function Ht(e,t){const r=[],n=wt(e,[m]);n&&r.push(n);const i={};if(kt(e,m)){const t=wt(e);t&&(i.from=t)}return St.fromIdentifier(t).withArgs(...r).withModifiers(i).endingAt(e.getPosition()).build()}function Wt(e,t){const r=[],a={};if(e.check("between")){e.advance();const t=[],r=wt(e,[n]);if(r&&"binaryExpression"===r.type&&"and"===r.operator)r.left&&t.push(r.left),r.right&&t.push(r.right);else{r&&t.push(r),kt(e,n);const a=wt(e,[m,f,i]);a&&t.push(a)}const s=t[0],o=t[t.length-1];a.between={type:"arrayLiteral",elements:t,...void 0!==s?.start?{start:s.start}:{},...void 0!==o?.end?{end:o.end}:{},...void 0!==s?.line?{line:s.line}:{},...void 0!==s?.column?{column:s.column}:{}}}else{const t=wt(e,[m,f]),n="asExpression"===t?.type?function(e){const t="string"==typeof e?e:e?.name;return"modal"===t||"non-modal"===t?t:void 0}(t.targetType):void 0;t&&void 0!==n&&t.expression?(r.push(t.expression),a.as=zt(n)):"binaryExpression"===t?.type&&"of"===t.operator&&"selector"===t.left?.type&&"string"==typeof t.left.value&&t.left.value.startsWith("*")&&t.right?(r.push(t.left),a.on=t.right):t&&r.push(t),void 0===n&&e.check("modal")&&(e.advance(),a.as=zt("modal"))}if(kt(e,m)||kt(e,f)){const t=wt(e);t&&(a.on=t)}return St.fromIdentifier(t).withArgs(...r).withModifiers({...a,...Vt(e)}).endingAt(e.getPosition()).build()}function Bt(e){if(!e.check("using"))return{};if(e.advance(),!e.match("view"))throw Error("expected 'view transition' after 'using'");if(!e.match("transition"))throw Error("expected 'transition' after 'using view'");return{viewTransition:zt("transition")}}function Ft(e,t){const r=[];if(e.match("{"))r.push(e.parseCSSObjectLiteral());else{const t=wt(e,[d]);t&&r.push(t)}const n={};if(kt(e,d)){const t=wt(e);t&&(n.to=t)}return St.from(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}function Dt(e,t){const n=e.parseExpression();if(!n)return e.addError("Put command requires content expression"),null;const i=e.peek();if(!i||!A.includes(i.value))return e.addError(`Expected operation keyword (${A.join(", ")}) after put expression, got: ${i?.value}`),null;let a=e.advance().value;const s=a.toLowerCase();"at start of"===s||"at the start of"===s?a=E:"at end of"===s||"at the end of"===s?a=x:"at"===a&&(e.check(w)||e.check(b)?(kt(e,b),e.check(w)&&(e.advance(),e.check(h)&&(e.advance(),a=E))):e.check(r)&&(e.advance(),e.check(h)&&(e.advance(),a=x)));const o=e.parseExpression();return o?St.fromIdentifier(t).withArgs(n).withModifier(a,o).endingAt(e.getPosition()).build():(e.addError("Put command requires target expression after operation keyword"),null)}const Ut=["afterbegin","afterend","beforebegin","beforeend","delete","innerhtml","innermorph","into","morph","none","outerhtml","outermorph","over"];function Kt(e,t){const r=[],n={};if(!e.isAtEnd()){const t=e.peek(),r=t?.value?.toLowerCase();r&&Ut.includes(r)&&(e.advance(),n.strategy=zt(r))}const i="delete"===n.strategy?.value;kt(e,h);const a=i?e.parseExpression():wt(e,[p]);a&&r.push(a);const s="morph"===t.name;if(!i&&(kt(e,p)||s&&kt(e,d))){const t=wt(e,["using"]);t&&(n.with=t)}return s&&void 0===n.with&&e.addError("Expected 'to' and the content to morph into"),St.fromIdentifier(t).withArgs(...r).withModifiers({...n,...Bt(e)}).endingAt(e.getPosition()).build()}function Zt(e,t){const r=[],n={};if(!(bt(e,["catch","finally"])||e.check("when")||e.check("where")||e.check(p))){const t=e.parseExpression();t&&r.push(t)}if(kt(e,p)){const t=function(e){if(!e)return null;const t="string"==typeof e.name?e.name:"string"==typeof e.value?e.value:null;return null===t?null:t.replace(/^\*/,"")}(e.parseExpression());null!==t&&(n.with=zt(t))}const i=St.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition());return Object.keys(n).length>0&&i.withModifiers(n),i.build()}function Yt(i,a){const s=i.savePosition();let o=null,l=[];try{o=function(e){if(!e.check(":"))return null;if(e.advance(),e.check(":")){e.advance();const t=e.advance();return{type:"identifier",name:t.value,scope:"global",start:t.start-2,end:t.end}}const t=e.advance();return{type:"identifier",name:t.value,scope:"element",start:t.start-1,end:t.end}}(i)??function(e){if(!e.check(v)&&!e.check("local"))return null;const t=e.advance(),r=e.advance();return{type:"identifier",name:r.value,scope:t.value,start:t.start,end:r.end}}(i)??function(e){if(!e.check(b))return null;const t=e.savePosition();e.advance();const r=e.parseExpression();if(!r)return e.restorePosition(t),null;if("binaryExpression"===r.type&&r.operator===h){const e=r.left,t=r.right;return pt(e,t,{start:e.start??0,end:t.end??0,line:e.line??1,column:e.column??1})}return e.check(d)?r:(e.restorePosition(t),null)}(i),o||(o=i.parseExpression())}catch{i.restorePosition(s),o=null}if(!o){const a=function(i){if(i.match(":")){const e=i.advance();return{expression:{type:"identifier",name:e.value,scope:"element",start:e.start,end:e.end},tokens:[]}}const a=[];for(;!(i.isAtEnd()||i.check(d)||i.check(e)||i.check(n)||i.check(t)||i.check(r));)a.push(i.parsePrimary());if(0===a.length)return{expression:null,tokens:[]};if(a.length>=4){const e=(e,t)=>e[t];if(e(a[0],"value")===b&&e(a[2],"value")===h){const t=a[1],r=a[3];return{expression:pt(ot(e(t,"value")||e(t,"name")||"",{start:t.start??0,end:t.end??0,line:t.line??1,column:t.column??1}),{type:"idSelector"===r.type?"idSelector":"cssSelector",value:e(r,"value")||e(r,"name")||"",start:r.start??0,end:r.end??0,line:r.line,column:r.column},{start:a[0].start??0,end:r.end??0,line:a[0].line??1,column:a[0].column??1}),tokens:[]}}}return 1===a.length?{expression:a[0],tokens:[]}:{expression:null,tokens:a}}(i);o=a.expression,l=a.tokens}if(o&&(o=function(e){const t=e=>{if(!e||"selector"!==e.type)return null;const t=e.value;return"string"==typeof t&&t.startsWith("*")?ot(t,{start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1}):null},r={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},n=t(e);if(n)return n;if("binaryExpression"===e.type&&e.operator===h){const n=t(e.left);if(n)return pt(n,e.right,r)}if("propertyOfExpression"===e.type){const n=t(e.property);if(n)return pt(n,e.target,r)}return e}(o)),!i.check(d)){const e=i.isAtEnd()?"end of input":i.peek().value;throw Error("Expected 'to' in set command, found: "+e)}i.advance();const c=i.parseExpression()??i.parsePrimary();let u;var m;i.check(f)&&(m=i.peekAt(1))&&("selector"===m.kind||m.value.startsWith("<")||Jt.has(m.value))&&(i.advance(),u=wt(i));const p=[];o?p.push(o):l.length>0&&p.push(...l);const y=St.fromIdentifier(a).withArgs(...p);return c&&y.withModifier("to",c),u&&y.withModifier("on",u),y.endingAt(i.getPosition()).build()}const Jt=new Set(["me","my","it","its","you","your","yourself"]),Gt=new Set(["top","middle","bottom","left","center","right","nearest"]);function Qt(e,t){return{type:"string",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Xt(e){if(e.isAtEnd())return;const t=e.current,r=e.parsePrimary();return e.current===t?void 0:r}const er=new Set(["then","and","else","end","when","where","catch","finally"]);const tr=new Set(["top","middle","bottom","left","center","right","nearest"]),rr=new Set(["up","down","left","right"]),nr=["of","smoothly","instantly","by","up","down","left","right"];function ir(e,t){const r=e.peek(),n=e.resolveKeyword(r.value).toLowerCase();return("smoothly"===n||"instantly"===n)&&(e.advance(),t.behavior=Qt("smoothly"===n?"smooth":"instant",r),!0)}function ar(e,t){const r=[],n={};if(kt(e,"url"),!e.isAtEnd()&&pr(e)){const t=fr(e);t&&r.push(t)}else{const t=wt(e,["with"]);t&&r.push(t)}if(kt(e,"with")){kt(e,"title");const t=wt(e);t&&(n.title=t)}return St.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}function sr(e,t){if(e.isAtEnd())return!0;const r=e.peek();return(!e.checkIsCommand()||"("!==e.peekAt(1)?.value)&&!Ct(r,e.peekAt(1))&&(!!bt(e,["catch","finally","on"])||gt(r,[...t.markers]))}function or(e,t,r,n){const i=[],a={};if("none"!==n.positional){const t=n.continuation??[];for(;!sr(e,n);){const r="expression"===n.positional?e.parseExpression():e.parsePrimary();if(!r)break;if(i.push(r),e.match(","))continue;if("primary"===n.positional)continue;const a=r.name;if("identifier"===r.type&&a&&t.includes(a.toLowerCase()))continue;const s=e.peek();if(!s||!t.includes(s.value.toLowerCase()))break;e.advance(),i.push(e.createIdentifier(s.value))}}const s=new Set(n.commaList??[]),o=new Set(n.namedArgs??[]);for(;!e.isAtEnd()&&gt(e.peek(),[...n.markers]);){const t=e.advance().value,n=e.resolveKeyword(t).toLowerCase();let i=o.has(n)&&xt(e)?At(e,()=>e.parseExpression(),r):e.parseExpression();if(i&&s.has(n)&&e.check(",")){const t=[i];for(;e.match(",");){const r=e.parseExpression();if(!r)break;t.push(r)}const r=t[0];i={type:"arrayLiteral",elements:t,start:r.start,end:t[t.length-1].end,line:r.line,column:r.column}}i&&(a[n]=i)}const l=St.from(t).withName(r).withArgs(...i);return Object.keys(a).length>0&&l.withModifiers(a),l.endingAt(e.getPosition()).build()}const lr=new Map([["put",Dt],["trigger",Tt],["send",Tt],["remove",Ht],["take",function(e,t){const r=[],n={},a=wt(e,[m,i]);if(a&&r.push(a),kt(e,m)){const t=wt(e,[i]);t&&(n.from=t)}if(kt(e,i)){const t=wt(e);t&&(n.for=t)}return St.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}],["toggle",Wt],["set",Yt],["add",(e,t)=>Ft(e,ur(t))],["halt",Ot],["measure",Nt],["js",function(e,t){const n=[];if(e.match("(")){for(;!e.check(")")&&!e.isAtEnd();)e.checkIdentifierLike()&&n.push(e.advance().value),e.match(",");e.consume(")","Expected ) after js parameters")}const i=e.peek().start,a=function(e,t){const r=e.getInputSlice(t);if(!r)return t;let n=0;for(;r.length>n;){const e=r[n];if("'"!==e&&"\u2019"!==e&&"\u2018"!==e)if('"'!==e)if("`"!==e)if("/"===e&&r.length>n+1&&"/"===r[n+1])for(n+=2;r.length>n&&"\n"!==r[n];)n++;else if("/"===e&&r.length>n+1&&"*"===r[n+1]){for(n+=2;r.length>n&&("*"!==r[n]||n+1>=r.length||"/"!==r[n+1]);)n++;n+=2}else{if(!("e"!==e&&"E"!==e||n+3>r.length||"end"!==r.slice(n,n+3).toLowerCase()||0!==n&&/[a-zA-Z0-9_]/.test(r[n-1])||r.length>n+3&&/[a-zA-Z0-9_]/.test(r[n+3])))return t+n;n++}else{for(n++;r.length>n&&"`"!==r[n];)"\\"===r[n]&&n++,n++;n++}else{for(n++;r.length>n&&'"'!==r[n];)"\\"===r[n]&&n++,n++;n++}else{for(n++;r.length>n&&r[n]!==e;)"\\"===r[n]&&n++,n++;n++}}return t+r.length}(e,i);for(;!e.isAtEnd()&&!e.check(r)&&e.peek().start<a;)e.advance();e.consume(r,"Expected end after js code body");const s={type:"literal",value:e.getInputSlice(i,a).trim(),start:t.start,end:e.getPosition().end},o={type:"arrayLiteral",elements:n.map(e=>({type:"literal",value:e,start:t.start,end:t.end})),start:t.start,end:e.getPosition().end};return St.fromIdentifier(t).withArgs(s,o).endingAt(e.getPosition()).build()}],["go",function(e,t){const r=[],n={};for(;!bt(e,["when","where","catch","finally"]);){const t=e.peek(),i=e.resolveKeyword(t.value).toLowerCase();if("to"!==i&&"the"!==i)if("back"!==i&&"forward"!==i||0!==r.length||n.url){if("url"===i){e.advance();const t=pr(e)?fr(e):Xt(e);t&&(n.url=t);continue}if("in"===i){e.advance();const t=e.peek(),r=[];for(;!e.isAtEnd()&&["new","window"].includes(e.peek().value.toLowerCase());)r.push(e.advance().value.toLowerCase());n.in=Qt(r.join(" ")||t.value,t);continue}if(!Gt.has(i)||n.position){if("of"===i){e.advance(),"the"===e.resolveKeyword(e.peek().value).toLowerCase()&&e.advance();const t=Xt(e);t&&(n.of=t);continue}if("smoothly"!==i&&"instantly"!==i){if("+"===t.value||"-"===t.value||"number"===t.kind){let r=1;"+"!==t.value&&"-"!==t.value||(e.advance(),"-"===t.value&&(r=-1));const i=e.peek();if("number"!==i.kind)break;e.advance();let a=i.end;const s=e.peek();e.isAtEnd()||"px"!==s.value||s.start!==i.end||(a=e.advance().end),n.by=ft({type:"literal",value:r*Number(i.value),raw:i.value,start:t.start,end:a,line:t.line,column:t.column});continue}if(0===r.length&&!n.of&&!n.url){if(pr(e)){const t=fr(e);if(t){r.push(t);continue}}const t=Xt(e);if(t){r.push(t);continue}}break}e.advance(),n.behavior=Qt("smoothly"===i?"smooth":"instant",t)}else e.advance(),n.position=Qt(i,t)}else e.advance(),n[i]=Qt(i,t);else e.advance()}return St.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}],["push",ar],["replace",ar],["scroll",(e,t)=>function(e,t){return e.isAtEnd()?null:"to"===e.resolveKeyword(e.peek().value).toLowerCase()?function(e,t){const r=[],n={};for(e.advance();!bt(e,["when","where","catch","finally"]);){const t=e.peek(),i=e.resolveKeyword(t.value).toLowerCase();if("the"!==i)if(!tr.has(i)||n.position){if("of"===i){e.advance();const t=wt(e,nr);t&&(n.of=t);continue}if(!ir(e,n)){if(0===r.length&&!n.of){const t=wt(e,nr);if(t){r.push(t);continue}}break}}else e.advance(),n.position=Qt(i,t);else e.advance()}return St.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}(e,t):function(e){for(let t=0;12>t;t++){const r=e.peekAt(t);if(!r)return!1;const n=e.resolveKeyword(r.value).toLowerCase();if("by"===n)return!0;if(er.has(n))return!1}return!1}(e)?function(e,t){const r=[],n={};for(;!bt(e,["when","where","catch","finally"]);){const t=e.peek(),i=e.resolveKeyword(t.value).toLowerCase();if(rr.has(i))e.advance(),n.direction=Qt(i,t);else{if("by"===i){e.advance();let t=1;const r=e.peek();"+"!==r.value&&"-"!==r.value||(e.advance(),"-"===r.value&&(t=-1));const i=e.peek();if("number"===i.kind){e.advance();const r=e.peek();let a=i.end;e.isAtEnd()||"px"!==r.value||r.start!==i.end||(a=e.advance().end),n.by=ft({type:"literal",value:t*Number(i.value),raw:i.value,start:i.start,end:a,line:i.line,column:i.column})}else{const t=wt(e,nr);t&&(n.by=t)}continue}if(!ir(e,n)){if(0===r.length){const t=wt(e,nr);if(t){r.push(t);continue}}break}}}return St.fromIdentifier(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}(e,t):null}(e,t)??mr(e,t)],["tell",function(i,a){const s=i.parseExpression();if(!s)throw Error("tell command requires a target expression");i.check(d)&&i.advance();const o=[];for(;!i.isAtEnd();){if(i.checkIsCommand()){const a=i.peek().value;try{i.advance();const e=i.parseCommand();if(!e)break;o.push(e)}catch(e){i.addError(`'${a}' in a tell body failed to parse: ${e instanceof Error?e.message:e+""}`);break}if(i.match(n)||i.match(e))continue;if(i.check(t))break;if(i.check(r)){i.advance();break}if(i.checkIsCommand())continue;break}break}if(0===o.length)throw Error("tell command requires at least one command after the target");return St.fromIdentifier(a).withArgs(s,...o).endingAt(i.getPosition()).build()}],["pick",function(e,t){const r=St.fromIdentifier(t);kt(e,b);const n=e.peek().value,i=e=>({type:"literal",value:e,start:t.start,end:t.end}),a=()=>{if(!e.match("of","from"))throw Error("pick: expected 'of' or 'from' before source expression");return e.parseExpression()};if("first"===n){e.advance();const t=e.parsePrimary(),n=a();return r.withArgs(n).withModifier("variant",i("first")).withModifier("count",t).endingAt(e.getPosition()).build()}if("last"===n){e.advance();const t=e.parsePrimary(),n=a();return r.withArgs(n).withModifier("variant",i("last")).withModifier("count",t).endingAt(e.getPosition()).build()}if("random"===n){let t;e.advance(),e.check("of")||e.check("from")||(t=e.parsePrimary());const n=a(),s=r.withArgs(n).withModifier("variant",i("random"));return t&&s.withModifier("count",t),s.endingAt(e.getPosition()).build()}if("item"===n||"items"===n||"character"===n||"characters"===n){let t,n;e.advance(),e.match("at","from"),t=e.match("start")?i("start"):e.parsePrimary();let s=!1;(e.match("to")||e.match(".."))&&(e.match("end")?s=!0:n=e.parsePrimary());let o="default";e.match("inclusive")?o="inclusive":e.match("exclusive")&&(o="exclusive");const l=a(),c=r.withArgs(l).withModifier("variant",i("range")).withModifier("rangeStart",t).withModifier("rangeMode",i(o));return s?c.withModifier("rangeEnd",i("end")):n&&c.withModifier("rangeEnd",n),c.endingAt(e.getPosition()).build()}if("match"===n||"matches"===n){e.advance(),e.match("of");const t=e.parsePrimary();let s;e.matchOperator("|")&&(s=e.advance().value);const o=a(),l=r.withArgs(o).withModifier("variant",i("match"===n?"match":"matches")).withModifier("regex",t);return s&&l.withModifier("flags",i(s)),l.endingAt(e.getPosition()).build()}return mr(e,t)}],["start",function(e,t){if(!e.match("view"))throw Error("start: expected 'view transition' (only `start view transition ... end` is supported)");if(!e.match("transition"))throw Error("start view: expected 'transition'");const r={};if(e.match("using")){const t=e.parsePrimary();r.transitionName=t}const n=e.parseCommandListUntilEnd("start view transition");return St.fromIdentifier(t).withArgs(...n).withModifiers(r).endingAt(e.getPosition()).build()}],["swap",Kt],["morph",Kt],["show",Zt],["hide",Zt],["process",(e,t)=>function(e,t){if(!e.check("partials"))return null;const r=[];if(e.advance(),kt(e,u)){const t=wt(e,["using"]);t&&r.push(t)}const n=Bt(e),i=St.fromIdentifier(t).withArgs(...r);return Object.keys(n).length>0&&i.withModifiers(n),i.endingAt(e.getPosition()).build()}(e,t)??mr(e,t)]]),cr=new Set(lr.keys());function ur(e){return{kind:"identifier",value:e.name,start:e.start??0,end:e.end??0,line:e.line??0,column:e.column??0}}const dr={positional:"primary",markers:[]};function mr(e,t){return or(e,ur(t),t.name.toLowerCase(),dr)}function pr(e){const t=e.peek();if("/"===t.value)return!0;if(e.checkIdentifierLike()){const r=e.peekAt(1);return!!r&&":"===r.value&&r.start===t.end}return!1}const hr=new Set(["{",")"]);function fr(e){const t=e.savePosition(),r=e.peek();let n="",i=null;for(;!e.isAtEnd();){const t=e.peek();if(i&&t.start!==i.end)break;if("$"===t.value&&"{"===e.peekAt(1)?.value){e.advance();let r=e.advance(),a=1;for(;!e.isAtEnd()&&a>0;)r=e.advance(),"{"===r.value?a++:"}"===r.value&&a--;n+=e.getInputSlice(t.start,r.end),i=r;continue}if(hr.has(t.value))break;i=e.advance(),n+=i.value}if(!n||"/"===n)return e.restorePosition(t),null;const a={start:r.start,end:i?i.end:r.end,line:r.line,column:r.column};return n.includes("${")?{type:"templateLiteral",value:n,...a}:{type:"literal",value:n,raw:n,...a}}const yr={positional:"none",markers:[],syntax:""},gr=e=>({positional:"expression",markers:[],syntax:e}),vr={append:{positional:"expression",markers:["to"],syntax:"append <value> [to <target>]"},prepend:{positional:"expression",markers:["to"],syntax:"prepend <value> [to <target>]"},make:{positional:"primary",markers:["a","an","from","called"],commaList:["from"],syntax:"make (a|an) <type> [from <args>] [called <name>]"},throw:{positional:"primary",markers:[],syntax:"throw <error>"},beep:gr("beep! [<expression>, \u2026]"),blur:gr("blur [<target>]"),break:yr,breakpoint:yr,call:gr("call <expression>"),clear:gr("clear <target>"),close:gr("close [<target>]"),continue:yr,copy:{positional:"expression",markers:["to"],syntax:"copy <source> [to clipboard]"},default:{positional:"expression",markers:["to"],syntax:"default <target> to <value>"},empty:gr("empty [<target>]"),exit:yr,focus:gr("focus [<target>]"),get:gr("get <expression>"),log:gr("log <expression>[, <expression>\u2026]"),open:gr("open [<dialog>] [as modal|non-modal]"),"pseudo-command":gr("<method>(\u2026) [on|from|\u2026] <target>"),render:{positional:"expression",markers:["with"],namedArgs:["with"],syntax:"render <template> [with <name>: <value>, \u2026]"},reset:gr("reset [<form>]"),return:gr("return [<value>]"),select:gr("select [<target>]"),settle:{positional:"expression",markers:["for"],syntax:"settle [<target>] [for <timeout>]"}},br={positional:"expression",markers:[],continuation:["into","from","to","with","by","at","before","after","over"]};function wr(e){return vr[e.toLowerCase()]??null}const kr=new Set(["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","pc","pt","px"]),Er=new Set(["s","seconds","ms","milliseconds"]);class xr{constructor(e,t,r){this.current=0,this.errors=[],this.warnings=[],this.prattCache=new Map,this.tokens=e,this.keywordResolver=t?.keywords,this.registryIntegration=t?.registryIntegration,this.originalInput=r||e.map(e=>e.value).join(" ")}resolveKeyword(e){return this.keywordResolver?this.keywordResolver.resolve(e)??e:e}addWarning(e){this.warnings.push(e)}parse(){this.prattCache.clear();const e=this.parseInternal();return this.errors.length>0&&(e.errors=[...this.errors],e.recovered=!0),e}parseInternal(){try{if(0===this.tokens.length)return this.addError("Cannot parse empty input"),{success:!1,node:this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings};if(this.check("behavior")){const e=[];for(;this.check("behavior");){this.advance();const t=this.parseBehaviorDefinition();if(t&&e.push(t),this.error)break}return this.error?{success:!1,node:1===e.length?e[0]:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:1===e.length?e[0]:this.createProgramNode(e),tokens:this.tokens,warnings:this.warnings}}const e=this.peek(),t=e&&Re(e.value)?e.value:null;if(this.check("init")||this.check("on")||this.check("def")||this.checkComment()||null!==t){const e=[];for(;!this.isAtEnd();)if(this.checkComment())this.advance();else{if(this.check("then")){const e=this.peekAt(1);if(null!==e&&("init"===e.value||"on"===e.value||"def"===e.value||void 0!==Re(e.value))){this.advance();continue}}if(this.check("init")){this.advance();const t=this.parseTopLevelInitBlock();t&&e.push(t)}else if(this.check("on")){this.advance();const t=this.parseEventHandler();t&&e.push(t)}else{if(!this.check("def")){const t=this.peek(),r=t?Re(t.value):void 0;if(r){const t=this.advance(),n=r(this.getContext(),t);n&&e.push(n);continue}break}{this.advance();const t=this.parseDefFeature();t&&e.push(t)}}}return this.isAtEnd()?this.error?{success:!1,node:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:this.createProgramNode(e),tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings})}if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value)){const e=this.parseCommandSequence();if(e){if(!this.isAtEnd()&&this.check("on")){me("\u2705 PARSER: Found event handlers after command sequence, parsing as program");const t=[e];me(`\u2705 PARSER: Starting with ${t.length} statement(s) from command sequence`);let r=0;for(;!this.isAtEnd()&&this.check("on");){me(`\u2705 PARSER: Parsing event handler #${r+1}, current token: ${this.peek().value}`),this.advance();const e=this.parseEventHandler();if(me("\u2705 PARSER: parseEventHandler returned:",e?`type=${e.type}, event=${e.event}`:"null"),e&&(t.push(e),r++,me(`\u2705 PARSER: Added event handler, now have ${t.length} statements total`)),me(`\u2705 PARSER: After parsing event handler, current token: ${this.isAtEnd()?"END":this.peek().value}, isAtEnd=${this.isAtEnd()}, check('on')=${this.check("on")}`),!this.isAtEnd()&&!this.check("on")){if(!this.isAtEnd())return me("\u26a0\ufe0f PARSER: Unexpected token after event handlers: "+this.peek().value),this.addError("Unexpected token after event handlers: "+this.peek().value),{success:!1,node:this.createProgramNode(t),tokens:this.tokens,error:this.error};me("\u2705 PARSER: No more event handlers, at end of input");break}}return me(`\u2705 PARSER: Finished parsing, creating Program node with ${t.length} statements`),this.error?{success:!1,node:this.createProgramNode(t),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:this.createProgramNode(t),tokens:this.tokens,warnings:this.warnings}}return this.isAtEnd()?this.error?{success:!1,node:e,tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:e,tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:e||this.createErrorNode(),tokens:this.tokens,error:this.error})}}const r=this.parseExpression();if(this.error)return{success:!1,node:r||this.createErrorNode(),tokens:this.tokens,error:this.error};if(!this.isAtEnd()){const e=this.peek();return r&&["number","string","identifier"].includes(e.kind)?this.addError(`Unexpected token: ${e.value} (missing operator between values? expected one of +, -, *, /, etc.)`):this.addError("Unexpected token: "+e.value),{success:!1,node:r||this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings}}return{success:!0,node:r,tokens:this.tokens,warnings:this.warnings}}catch(e){return this.addError(e instanceof Error?e.message:"Unknown parsing error"),{success:!1,node:this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings}}}parseExpression(){return this.parseExpressionPratt(0)}parseExpressionPratt(e){const t=`${this.current}:${e}`,r=this.prattCache.get(t);if(r)return this.current=r.endPos,r.node;if(this.isAtEnd())return this.addError("Unexpected end of expression"),this.createErrorNode();const n=this.peek(),i=xr.PRATT_TABLE.get(n.value);let a;if(Ct(n,this.tokens[this.current+1]))a=this.parseBeepExpression();else if(i?.prefix){const e=this.advance();if(this.isAtEnd())return this.addError(`Expected expression after '${e.value}' operator`),this.createErrorNode();a=i.prefix.handler(e,this.makePrattContext())}else a=this.parseCall();for(;!this.isAtEnd();){const t=this.peek();if(60>=e){const e=this.tryParseStringPostfix(a,t);if(e){a=e;continue}}if("*"===t.value&&this.isSpacedStyleRef(this.current))break;const r=xr.PRATT_TABLE.get(t.value);if(!r?.infix){if(he.has(t.value)||fe.has(t.value))break;break}const[n]=r.infix.bp;if(e>n)break;if("="===t.value&&this.tokens.length>this.current+1&&">"===this.tokens[this.current+1].value){if(this.advance(),this.advance(),this.addError('Arrow functions (=>) are not supported in hyperscript. Use "js ... end" blocks for JavaScript callbacks.'),!this.isAtEnd())try{this.parseExpressionPratt(0)}catch(e){me("arrow body discarded after error:",e instanceof Error?e.message:e+"")}return this.createErrorNode()}if("+"===t.value||"-"===t.value){const e=this.tokens.length>this.current+1?this.tokens[this.current+1]:null;if(e&&("+"===e.value||"-"===e.value))return this.addError(`Invalid operator combination: ${t.value}${e.value}`),a}if("*"===t.value||"/"===t.value||"%"===t.value){const e=this.tokens.length>this.current+1?this.tokens[this.current+1]:null;if(e&&("*"===e.value||"/"===e.value||"%"===e.value||"+"===e.value||"-"===e.value))return this.addError("*"===t.value&&"*"===e.value?"Unexpected token: "+e.value:`Invalid operator combination: ${t.value}${e.value}`),a}const i=this.advance();if(this.isAtEnd()&&!xr.POSTFIX_UNARY_OPERATORS.has(i.value))return this.addError(`Expected expression after '${i.value}' operator`),a;a=r.infix.handler(a,i,this.makePrattContext())}return this.prattCache.set(t,{node:a,endPos:this.current}),a}parseBeepExpression(){const e=this.advance();if(this.advance(),this.isAtEnd())return this.addError("Expected expression after 'beep!'"),this.createErrorNode();const t=this.parseExpressionPratt(xr.BEEP_OPERAND_BP);return{type:"unaryExpression",operator:"beep!",operand:t,argument:t,prefix:!0,start:e.start,end:this.previous().end,line:e.line,column:e.column}}isStyleRefStar(e){const t=this.tokens[e],r=this.tokens[e+1];return"*"===t?.value&&!!r&&r.start===t.end&&He(r)}isSpacedStyleRef(e){const t=this.tokens[e-1];return this.isStyleRefStar(e)&&!!t&&this.tokens[e].start>t.end}tryParseStringPostfix(e,t){const r=t.value;let n=null;if(kr.has(r)||Er.has(r)&&this.isNumericPostfixRoot(e)?n=r:"%"===r&&(this.canStartOperand(this.tokens.length>this.current+1?this.tokens[this.current+1]:null)||(n="%")),null==n)return null;const i=this.advance();return{type:"stringPostfix",expression:e,unit:n,start:e.start,end:i.end,line:e.line,column:e.column}}isNumericPostfixRoot(e){const t=e;return"literal"===t.type&&"number"==typeof t.value||("unaryExpression"!==t.type||"-"!==t.operator&&"+"!==t.operator?!("binaryExpression"!==t.type||!["+","-","*","/"].includes(t.operator??"")):void 0!==t.argument&&this.isNumericPostfixRoot(t.argument))}canStartOperand(e){if(!e)return!1;const t=e.value;return!he.has(t)&&!fe.has(t)&&("number"===e.kind||"string"===e.kind||"identifier"===e.kind||"symbol"===e.kind||["(","[","{","-","+","!","#",".","<","$","@"].includes(t))}makePrattContext(){const e=this;return{peek:()=>e.tokens.length>e.current?e.tokens[e.current]:void 0,advance:()=>{const t=e.tokens[e.current];return e.current++,t},parseExpr:t=>e.parseExpressionPratt(t),isStopToken:()=>{const t=e.tokens[e.current];return!t||he.has(t.value)||fe.has(t.value)},atEnd:()=>e.current>=e.tokens.length}}parseLogicalAnd(){return this.parseExpressionPratt(11)}parseImplicitBinary(){let e=this.parseCall();for(;!(this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("and")||this.check("else")||this.check(")")||this.check("]")||this.check(","));){if("identifier"!==e.type){if("literal"===e.type&&(this.checkNumber()||this.checkIdentifier())){const t=this.peek();return this.addError(`Missing operator between '${e.raw||e.value}' and '${t.value}'`),e}break}if(this.isCommand(e.name))if(this.isCompoundCommand(e.name.toLowerCase())){if(!(this.checkCssSelector()||this.checkIdSelector()||this.checkClassSelector()||this.checkTimeExpression()||this.checkString()||this.checkNumber()||this.checkContextVar()||this.checkIdentifier()||this.checkKeyword()))break;{const t=this.createCommandFromIdentifier(e);t&&(e=t)}}else if("wait"===e.name.toLowerCase()&&(this.checkTimeExpression()||this.checkNumber()||this.checkIdentifier()||this.checkContextVar()||this.check("("))){const t=this.createCommandFromIdentifier(e);t&&(e=t)}else{if(!this.checkSelector())break;{const t=this.parseCall();e=this.createBinaryExpression(" ",e,t)}}else{if(!this.checkSelector())break;{const t=this.parseCall();e=this.createBinaryExpression(" ",e,t)}}}return e}isCommand(e){return this.keywordResolver?this.keywordResolver.isCommand(e):S(e)}isKeyword(e){return this.keywordResolver?this.keywordResolver.isKeyword(e):T(e)}createCommandFromIdentifier(e){const t=this.resolveKeyword(e.name.toLowerCase());if(this.isCompoundCommand(t))return this.parseCompoundCommand(e);const r={kind:"identifier",value:e.name,start:e.start??0,end:e.end??0,line:e.line??0,column:e.column??0};return or(this.getContext(),r,t,wr(t)??br)}isCompoundCommand(e){return cr.has(e.toLowerCase())}parseCompoundCommand(e){return function(e,t){const r=lr.get(t.name.toLowerCase());return r?r(e,t):null}(this.getContext(),e)}parsePutCommand(e){return Dt(this.getContext(),e)}parseSetCommand(e){return Yt(this.getContext(),e)}parseHaltCommand(e){return Ot(this.getContext(),e)}parseMeasureCommand(e){return Nt(this.getContext(),e)}parseTriggerCommand(e){return Tt(this.getContext(),e)}parseCommandListUntilTerminator(e){const t=[],r=()=>this.check("end")||e.some(e=>this.check(e));for(me("\ud83d\udd04 parseCommandListUntilTerminator: Starting (extraStops:",e.join(","),")");!this.isAtEnd()&&!r();){if(this.checkComment()){this.advance();continue}me("\ud83d\udccd Loop iteration, current token:",this.peek().value,"kind:",this.peek().kind);let e=!1;const n=this.checkIsCommand(),i=!n&&this.checkIdentifier()&&this.isCommand(this.peek().value);if(n||i){me(n?"\u2705 Found COMMAND token:":"\u2705 Found IDENTIFIER that is a command:",this.peek().value),this.advance();const r=this.error;try{const n=this.parseCommand();this.error&&this.error!==r&&(me("\u26a0\ufe0f parseCommandListUntilTerminator: Command parsing added error, restoring. Error was:",this.error.message),this.error=r),n&&(me("\u2705 Parsed command:",n.name),t.push(n),e=!0)}catch(e){me("\u26a0\ufe0f parseCommandListUntilTerminator: Command parsing threw, restoring:",e instanceof Error?e.message:e+""),this.error=r,this.recordDropped("Discarded a command that failed to parse: "+(e instanceof Error?e.message:e+""))}}else this.checkIdentifier()&&me("\u274c IDENTIFIER is not a command:",this.peek().value);if(!e){me("\u274c No command parsed, breaking. Current token:",this.peek().value),this.isAtEnd()||r()||this.recordDropped(`Not a command, and the rest of the body was discarded: '${this.peek().value}'`);break}me("\ud83d\udccd After parsing command, current token:",this.peek().value);const a=this.current;for(;!(this.isAtEnd()||r()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("and")||this.check(","));)me("\u26a0\ufe0f Skipping unexpected token:",this.peek().value),this.advance();if(this.recordDroppedRange(a,this.current),this.match("then","and",","))me("\u2705 Found separator, continuing");else{if(!this.checkIsCommand()&&!this.isCommand(this.peek().value)){me("\ud83d\udccd No separator and no command, breaking. Current token:",this.peek().value);break}me("\u2705 Next token is a command, continuing without separator")}}let n="end";for(const t of e)if(this.check(t)){n=t;break}return this.check("end")||e.some(e=>this.check(e))||(n=""),me("\u2705 parseCommandListUntilTerminator: parsed",t.length,"commands (terminator:",n,")"),{commands:t,terminator:n}}parseCommandListUntilEnd(e="repeat"){const{commands:t}=this.parseCommandListUntilTerminator([]);if(me('\ud83d\udd0d After loop, checking for "end". Current token:',this.peek().value),this.check("end"))me('\u2705 Found "end", consuming it'),this.advance();else if(!this.atEndOfInput())throw me('\u274c ERROR: Expected "end" but got:',this.peek().value,"at position:",this.peek().start),Error(`Expected "end" to close ${e} block`);return t}parseCommandListUntilEndOrElse(){const{commands:e,terminator:t}=this.parseCommandListUntilTerminator(["else"]),r="else"===t;if(!r)if(this.check("end"))this.advance();else if(!this.atEndOfInput())throw Error('Expected "end" to close repeat block');return{commands:e,hasElse:r}}parseRepeatBody(){const{commands:e,terminator:t}=this.parseCommandListUntilTerminator(["else","until","while"]);if("end"===t)this.advance();else if(""===t){if(!this.atEndOfInput())throw Error('Expected "end", "else", "until", or "while" to close repeat block');return{commands:e,terminator:"end"}}return{commands:e,terminator:t}}parseRepeatCommand(e){return function(e,t){const r=[];let n="forever",d=null,h=null,f=null,g=null,v=null,w=null;if(e.check(i)){e.advance(),n=i;const t=e.peek();He(t)&&(v=t.value,e.advance()),e.check(u)&&(e.advance(),g=e.parseExpression())}else if(e.check(u))e.advance(),n=i,v="it",g=e.parseExpression();else if(e.check(a))e.advance(),n=a,f=e.parseExpression();else if(e.check(s))if(e.advance(),n=s,e.check(y)){e.advance(),n="until-event";const t=e.peek();if(me("\ud83d\udccd Parsing event name, current token:",{value:t.value,kind:t.kind}),!He(t)&&!_e(t))throw Error('Expected event name after "event"');if(d=t.value,e.advance(),me("\u2705 Got event name:",d,"Next token:",e.peek().value),me('\ud83d\udd0d Checking for "from", current token:',e.peek().value),e.check(m)){me('\u2705 Found "from", advancing...'),e.advance(),me('\ud83d\udccd After consuming "from", current token:',e.peek().value),kt(e,b)&&me('\u2705 Found "the", advancing...');const t=e.peek();me("\ud83d\udd0d Before parsePrimary for event target:",{value:t.value,kind:t.kind,position:t.start}),h=e.parsePrimary(),me("\u2705 After parsePrimary, eventTarget:",h)}else me('\u274c No "from" found, skipping target parsing')}else f=e.parseExpression();else e.check(o)?(e.advance(),n=o):e.checkIsCommand()||e.isCommand(e.peek().value)?n=o:(w=e.parseExpression(),e.check(l)&&(e.advance(),n=l));let k,E=null;if(e.check(p)){const t=e.peekAt(1);t&&t.value.toLowerCase()===c&&(e.advance(),e.advance(),E=c)}else if(e.check(c)){e.advance();const t=e.peek();He(t)?(E=t.value,e.advance()):E=c}let x=null,A=!1;if(n===o){const t=e.parseRepeatBody();if(k=t.commands,"else"===t.terminator)e.advance(),x=e.parseCommandListUntilEnd();else if("until"===t.terminator||"while"===t.terminator)if(A=!0,n=t.terminator,e.advance(),f=e.parseExpression(),e.check("end"))e.advance();else if(!e.atEndOfInput())throw Error('Expected "end" to close repeat block')}else{const t=e.parseCommandListUntilEndOrElse();k=t.commands,t.hasElse&&(e.advance(),x=e.parseCommandListUntilEnd())}const C={start:t.start,end:t.end,line:t.line,column:t.column},S={loopType:ut(n,C)};v&&(S.for=ut(v,C)),g&&(S.in=g),w&&(S.times=w),f&&(S["while"===n?"while":"until"]=f),d&&(S.event=ut(d,C)),h&&(S.from=h),E&&(S.index=ut(E,C)),r.push(ct(k,{...C,end:C.end||0})),null!==x&&r.push(ct(x,{...C,end:C.end||0}));const T=St.from(t).withArgs(...r).withModifiers(S);return A&&T.withModifier("bottomTested",{type:"literal",value:!0,...C}),T.endingAt(e.getPosition()).build()}(this.getContext(),e)}parseForCommand(e){return function(e,t){let r=null,n=null;e.check("each")&&e.advance();const a=e.peek();if(!He(a))throw Error('Expected variable name after "for"');if(r=a.value,e.advance(),!e.check(u))throw Error('Expected "in" after variable name in for loop');if(e.advance(),n=e.parseExpression(),!n)throw Error('Expected collection expression after "in"');let s=null;if(e.check(p)){const t=e.peekAt(1);t&&t.value.toLowerCase()===c&&(e.advance(),e.advance(),s=c)}else if(e.check(c)){e.advance();const t=e.peek();He(t)?(s=t.value,e.advance()):s=c}const o=e.parseCommandListUntilEnd("for"),l={start:t.start,end:t.end,line:t.line,column:t.column},d={loopType:ut(i,l),for:ut(r,l),in:n};return s&&(d.index=ut(s,l)),St.from({...t,value:"repeat"}).withArgs(ct(o,{...l,end:l.end||0})).withModifiers(d).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseWaitCommand(e){return function(e,t){const r=[];if(e.checkTimeExpression()||e.checkLiteral()||e.checkContextVar()||e.check("(")||e.checkIdentifierLike()&&!e.check("for")&&!bt(e)){const n=e.parseExpression();return r.push(n),St.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}if(e.check("for")){e.advance();const n=[];do{if(e.checkTimeExpression()||e.checkLiteral()||e.check("(")){if(n.push({kind:"duration",expr:e.parseExpression()}),e.check("or")){e.advance();continue}break}const t=e.peek();if(!He(t))throw Error('Expected event name or duration after "for"');const r=t.value;e.advance();const i=[];if(e.check("(")){for(e.advance();!e.isAtEnd()&&!e.check(")");){const t=e.peek();if(!He(t))break;i.push(t.value),e.advance(),e.check(",")&&e.advance()}if(!e.check(")"))throw Error('Expected ")" after event parameters');e.advance()}if(n.push({kind:"event",name:r,params:i}),!e.check("or"))break;e.advance()}while(!e.isAtEnd());let i=null;e.check(m)&&(e.advance(),kt(e,b),i=e.parsePrimary());const a={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(mt(n.map(e=>dt("duration"===e.kind?[{key:ot("duration",a),value:e.expr}]:[{key:ot("name",a),value:st(e.name,`"${e.name}"`,a)},{key:ot("args",a),value:mt(e.params.map(e=>st(e,`"${e}"`,a)),a)}],a)),a)),i&&r.push(i)}return St.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}(this.getContext(),e)}parseInstallCommand(e){return function(e,t){const r=[];if(!e.checkIdentifierLike())throw Error('Expected behavior name after "install"');const n=e.advance().value,i=e.previous();if(r.push(ot(n,{start:i.start,end:i.end,line:i.line,column:i.column})),e.check("(")){e.advance();const n=[];for(;!e.isAtEnd()&&!e.check(")");)if(n.push(Et(e)),e.check(","))e.advance();else if(!e.check(")"))break;if(!e.check(")"))throw Error('Expected ")" after behavior parameters');if(e.advance(),n.length>0){const i={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(dt(n.map(e=>({key:e.name?ot(e.name,i):st("_positional","_positional",i),value:e.value})),i))}}return St.from(t).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseTransitionCommand(e){return function(e,t){const r=[];do{r.push(It(e))}while(_t(e));const[n,...i]=r,a=n.owner?[n.owner,n.property]:[n.property],s={to:n.to};n.from&&(s.from=n.from),i.length>0&&(s.pairs=function(e){const t=(e,t)=>({key:{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column},value:t}),r=e.map(e=>{const r=[t("property",e.property),t("to",e.to)];return e.owner&&r.push(t("owner",e.owner)),e.from&&r.push(t("from",e.from)),{type:"objectLiteral",properties:r,start:(e.owner??e.property).start,end:e.to.end,line:(e.owner??e.property).line,column:(e.owner??e.property).column}}),n=r[0];return{type:"arrayLiteral",elements:r,start:n.start,end:r[r.length-1].end,line:n.line,column:n.column}}(i));for(let t=0;3>t&&!e.isAtEnd();t++)if(e.check("over")&&!s.over)e.advance(),s.over=e.parseExpression();else if(e.check("using")&&!s.using)e.advance(),s.using=e.parseExpression();else{if(!e.check(p)||s.with)break;e.advance(),s.with=e.parsePrimary()}return St.from(t).withArgs(...a).withModifiers(s).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseAddCommand(e){return Ft(this.getContext(),e)}parseIfCommand(e){return Pt(this.getContext(),e)}parseRemoveCommand(e){return Ht(this.getContext(),e)}parseToggleCommand(e){return Wt(this.getContext(),e)}parseCall(){let e=this.parsePrimary();for(;;)if(this.match("("))e=this.finishCall(e);else if(this.match(".")){const t=this.consumeIdentifierLike("Expected property name after '.' - malformed member access");e=this.createMemberExpression(e,this.createIdentifier(t.value),!1)}else if(this.match("?.")){const t=this.consumeIdentifierLike("Expected property name after '?.' - malformed optional access"),r=this.createMemberExpression(e,this.createIdentifier(t.value),!1);r.optional=!0,e=r}else if(this.match("[")){const t=this.parseExpression();this.consume("]","Expected ']' after array index"),e=this.createMemberExpression(e,t,!0)}else{if(!this.check("'s"))break;{let t;this.advance(),this.check("*")?(this.advance(),t="*"+this.consumeIdentifier("Expected property name after * in CSS property syntax").value):Ke(this.peek())&&this.peek().value.startsWith("@")?t=this.advance().value:this.check("[")&&this.tokens[this.current+1]?.value?.startsWith("@")?(this.advance(),t=this.advance().value,this.consume("]","Expected ']' after attribute reference")):t=this.consumeIdentifierLike("Expected property name after possessive").value,e=this.createPossessiveExpression(e,this.createIdentifier(t))}}return e}parsePrimary(){if(this.check("*")){const e=this.current;if(this.advance(),!this.isAtEnd()&&He(this.peek())){const e=this.advance().value;return this.createSelector("*"+e)}this.current=e}if(this.check("*")||this.check("/")||this.check("%")||this.check("mod")){const e=this.peek();return this.addError(`Binary operator '${e.value}' requires a left operand`),this.createErrorNode()}if(this.matchNumber()){const e=parseFloat(this.previous().value);return this.createLiteral(e,this.previous().value)}if(this.matchString()){const e=this.previous().value;if(2>e.length||e.startsWith('"')&&!e.endsWith('"')||e.startsWith("'")&&!e.endsWith("'"))return this.addError("Unclosed string literal - string not properly closed"),this.createErrorNode();const t=e.slice(1,-1),r=this.processEscapeSequences(t);return this.createLiteral(r,e)}if(this.matchTemplateLiteral()){const e=this.previous();return{type:"templateLiteral",value:e.value,start:e.start||0,end:e.end||0,line:e.line,column:e.column}}if(this.matchBoolean()){const e=this.previous().value;let t;switch(e){case"true":t=!0;break;case"false":t=!1;break;case"null":t=null;break;case"undefined":t=void 0;break;default:t="true"===e}return this.createLiteral(t,e)}if(this.matchTimeExpression()){const e=this.previous().value;return this.createLiteral(e,e)}if(this.matchQueryReference()){const e=this.previous().value,t=e.slice(1,-2).trim(),r=this.createSelector(t);return r.fromQuery=!0,r.raw=e,r}if(this.matchSelector())return this.createSelector(this.previous().value);if(this.match("<"))return this.parseHyperscriptSelector();if(this.match("(")){if(this.isAtEnd())return this.addError("Expected expression inside parentheses"),this.createErrorNode();const e=this.parseExpression();return this.consume(")","Expected closing parenthesis ')' after expression - unclosed parentheses"),e}if(this.match("{"))return this.parseObjectLiteral();if(this.match("["))return this.parseAttributeOrArrayLiteral();if(this.check(":")){if(this.advance(),this.check(":")){this.advance();const e=this.advance();return{type:"identifier",name:e.value,scope:"global",start:e.start-2,end:e.end,line:e.line,column:e.column-2}}{const e=this.advance();return{type:"identifier",name:e.value,scope:"element",start:e.start-1,end:e.end,line:e.line,column:e.column-1}}}if(this.matchBasicOperator()){const e=this.previous();return this.createIdentifier(e.value)}const e=this.peek();if((!e||"end"!==e.value&&"else"!==e.value&&"then"!==e.value)&&(this.matchPredicate(Ye)||this.matchPredicate($e)||this.matchPredicate(ze)||this.matchPredicate(Me)||this.matchPredicate(_e))){const e=this.previous();if("new"===e.value)return this.parseConstructorCall();if("on"===e.value)return this.parseEventHandler();if("if"===e.value)return this.parseConditional();if("closest"===e.value||"first"===e.value||"last"===e.value||"previous"===e.value||"next"===e.value){if(this.check("(")||this.checkCssSelector()||this.checkClassSelector()||this.checkIdSelector()||this.check("<")||this.checkQueryReference())return this.parseNavigationFunction(e.value);if(this.check(".")){const t=this.current;if(this.advance(),this.checkIdentifier()){const t=this.advance().value,r=this.createSelector("."+t);return this.createCallExpression(this.createIdentifier(e.value),[r])}this.current=t}if(this.check("#")){const t=this.current;if(this.advance(),this.checkIdentifier()){const t=this.advance().value,r=this.createSelector("#"+t);return this.createCallExpression(this.createIdentifier(e.value),[r])}this.current=t}return this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("else")||this.check("end")?this.createIdentifier(e.value):this.parseNavigationFunction(e.value)}const t=this.check(".")||this.check("?.");return"my"!==e.value||t?"its"!==e.value||t?"your"!==e.value||t?"the"===e.value?this.parseTheXofY():"values"===e.value&&this.check("of")?(this.advance(),{type:"propertyOfExpression",property:{type:"identifier",name:"values"},target:this.parsePrimary(),line:e.line,column:e.column}):this.createIdentifier(e.value):this.parseContextPropertyAccess("you"):this.parseContextPropertyAccess("it"):this.parseContextPropertyAccess("me")}if(this.match("$"))return this.parseDollarExpression();if("\\"===this.peek().value)return this.parseBlockLiteral();if(Ke(this.peek())&&this.peek().value.startsWith("@")){const e=this.advance();return{type:"attributeAccess",attributeName:e.value.substring(1),start:e.start,end:e.end,line:e.line,column:e.column}}const t=this.peek();return this.addError(`Unexpected token: ${t.value} at line ${t.line}, column ${t.column}`),this.advance(),this.createErrorNode()}parseBlockLiteral(){const e=this.peek().start;this.advance();const t=[];for(;!(this.isAtEnd()||this.check("-")&&">"===this.tokens[this.current+1]?.value);){if(!this.checkIdentifier()){this.addError("Unexpected token in block literal parameters: "+this.peek().value);break}t.push(this.advance().value),this.match(",")}return this.check("-")&&">"===this.tokens[this.current+1]?.value?(this.advance(),this.advance(),{type:"blockLiteral",parameters:t,body:this.parseExpression(),start:e,end:this.previous().end,line:this.previous().line,column:this.previous().column}):(this.addError("Expected '->' in block literal"),this.createErrorNode())}parseDollarExpression(){if(this.checkNumber()){const e=this.advance().value;return this.createLiteral(e,"$"+e)}if(this.checkIdentifier()){const e=this.advance();let t=this.createIdentifier(e.value);for(;this.match(".");){if(!this.checkIdentifier())return this.addError("Expected property name after '.' in dollar expression"),this.createErrorNode();{const e=this.advance();t=this.createMemberExpression(t,this.createIdentifier(e.value),!1)}}return t}return this.addError("Expected identifier or number after '$'"),this.createErrorNode()}parseHyperscriptSelector(){let e="";for(;!this.check("/")&&!this.isAtEnd();)e+=this.advance().value;return this.consume("/","Expected '/' in hyperscript selector"),this.consume(">","Expected '>' after '/' in hyperscript selector"),this.createSelector(e)}parseObjectLiteral(){const e=[],t=this.getPosition();if(this.check("}"))return this.advance(),{type:"objectLiteral",properties:e,start:t.start,end:this.getPosition().end,line:t.line,column:t.column};do{let t;if(this.check("["))this.advance(),t=this.parseExpression(),this.consume("]","Expected ']' after computed property name in object literal");else if(this.matchString()){const e=this.previous().value,r=e.slice(1,-1);t=this.createLiteral(r,e)}else{if(!this.check("-")&&!this.checkPredicate(Ye))return this.addError("Expected property name in object literal"),this.createErrorNode();{let e="",r=!1;for(;this.check("-");)this.advance(),e+="-",r=!0;for(this.checkPredicate(Ye)&&(e+=this.advance().value);this.check("-");)this.advance(),e+="-",r=!0,this.checkPredicate(Ye)&&(e+=this.advance().value);if(""===e||"-"===e)return this.addError("Expected property name in object literal"),this.createErrorNode();t=r?this.createLiteral(e,e):this.createIdentifier(e)}}this.consume(":","Expected ':' after property name in object literal");const r=this.parseExpression();if(e.push({key:t,value:r}),!this.match(","))break;if(this.check("}"))break}while(!this.isAtEnd());return this.consume("}","Expected '}' after object literal properties"),{type:"objectLiteral",properties:e,start:t.start,end:this.getPosition().end,line:t.line,column:t.column}}parseCSSObjectLiteral(){const e=this.getPosition(),t=[];do{if(this.check("}"))break;let r;if(this.matchPredicate(Ye))r=this.createIdentifier(this.previous().value);else{if(!this.matchString())return this.addError("Expected CSS property name"),this.createErrorNode();{const e=this.previous().value,t=e.slice(1,-1);r=this.createLiteral(t,e)}}if(!this.consume(":","Expected ':' after CSS property name"))return this.createErrorNode();const n=[];let i=!1,a=0,s=-1,o=-1;for(;!this.isAtEnd()&&(0!==a||!this.check(";")&&!this.check("}"));){const e=this.advance();n.push(e.value),0>s&&"number"==typeof e.start&&(s=e.start),"number"==typeof e.end&&(o=e.end),"$"===e.value&&this.check("{")&&(i=!0),"{"===e.value&&a++,"}"===e.value&&a--}const l=this.originalInput&&s>=0&&o>s?this.originalInput.slice(s,o):n.join(""),c=i?{type:"templateLiteral",value:l,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}:this.createLiteral(l,l);if(t.push({key:r,value:c}),this.check(";")&&this.advance(),this.check("}"))break}while(!this.isAtEnd());return this.consume("}","Expected '}' after CSS object literal properties"),{type:"objectLiteral",properties:t,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseConstructorCall(){const e=this.previous();if(!this.checkIdentifier())return this.addError('Expected constructor name after "new"'),this.createErrorNode();const t=this.advance(),r=t.value;if(!this.check("("))return this.addError('Expected "(" after constructor name'),this.createErrorNode();this.advance();const n=[];if(!this.check(")"))do{n.push(this.parseExpression())}while(this.match(","));return this.consume(")","Expected ')' after constructor arguments"),{type:"callExpression",callee:{type:"identifier",name:r,start:t.start,end:t.end,line:t.line,column:t.column},arguments:n,isConstructor:!0,start:e.start,end:this.previous().end,line:e.line,column:e.column}}parseTopLevelInitBlock(){const e=this.getPosition(),t=this.parseCommandBlock(["end"]);return this.match("end")||this.atEndOfInput()||this.checkFeatureStart()||this.consume("end","Expected 'end' after init block"),{type:"initBlock",commands:t,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseDefFeature(){const e=this.getPosition();let t="";if(!this.checkIdentifier())return this.addError("Expected function name after 'def'"),{type:"def",name:"",params:[],body:[],start:e.start,end:this.getPosition().end,line:e.line,column:e.column};for(t=this.advance().value;this.check(".");)this.advance(),this.checkIdentifier()&&(t+="."+this.advance().value);const r=[];if(this.check("(")){if(this.advance(),!this.check(")"))for(this.checkIdentifier()&&r.push(this.advance().value);this.check(",");)this.advance(),this.checkIdentifier()&&r.push(this.advance().value);this.consume(")","Expected ')' after parameter list")}const n=this.parseCommandBlock(["end","catch","finally"]),{errorSymbol:i,errorHandler:a,finallyHandler:s}=this.parseErrorAndFinallyBlocks();return this.consume("end","Expected 'end' after function definition"),{type:"def",name:t,params:r,body:n,...void 0!==i&&{errorSymbol:i},...void 0!==a&&{errorHandler:a},...void 0!==s&&{finallyHandler:s},start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseErrorAndFinallyBlocks(){let e,t,r;return this.check("catch")&&(this.advance(),this.checkIdentifier()&&(e=this.advance().value),t=this.parseCommandBlock(["end","finally"])),this.check("finally")&&(this.advance(),r=this.parseCommandBlock(["end"])),{...void 0!==e&&{errorSymbol:e},...void 0!==t&&{errorHandler:t},...void 0!==r&&{finallyHandler:r}}}parseEventNameWithNamespace(e){let t;t=this.checkEvent()||this.checkIdentifier()||this.checkIsCommand()||this.checkIdentifierLike()?this.advance():this.consumeEvent(e);let r=t.value;return this.check(":")&&(this.advance(),r=`${r}:${this.advance().value}`),r}callExprToCommandNode(e,t){return{type:"command",name:e.callee.name,args:e.arguments,isBlocking:!1,...void 0!==t.start&&{start:t.start},...void 0!==t.end&&{end:t.end},...void 0!==t.line&&{line:t.line},...void 0!==t.column&&{column:t.column}}}createPseudoCommandNode(e,t,r,n,i){return{type:"command",name:"pseudo-command",args:[{type:"objectLiteral",properties:[{key:{type:"identifier",name:"methodName"},value:{type:"literal",value:e,raw:`"${e}"`}},{key:{type:"identifier",name:"methodArgs"},value:{type:"literal",value:t.arguments,raw:JSON.stringify(t.arguments)}},...r?[{key:{type:"identifier",name:"preposition"},value:{type:"literal",value:r,raw:`"${r}"`}}]:[],{key:{type:"identifier",name:"targetExpression"},value:n}]}],isBlocking:!1,...void 0!==i.start&&{start:i.start},...void 0!==i.end&&{end:i.end},...void 0!==i.line&&{line:i.line},...void 0!==i.column&&{column:i.column}}}isArgumentListOnly(e){let t=0;for(let r=e;this.tokens.length>r;r++){const n=this.tokens[r];if("operator"===n.kind)if("("===n.value||"["===n.value||"{"===n.value)t++;else if(")"===n.value||"]"===n.value||"}"===n.value){if(0===--t)return r===e+1}else if(","===n.value&&1===t)return!0}return!1}tryParsePseudoCommand(e,t){const r=e.callee.name,n=this.peek(),i="the"===n.value.toLowerCase();if(!(i||xr.PSEUDO_COMMAND_PREPOSITIONS.includes(n.value.toLowerCase())||Ye(n)&&!this.isCommand(n.value)||ze(n)))return{node:this.callExprToCommandNode(e,t),isPseudo:!1,targetFailed:!1};let a,s;this.isCommand(r)&&this.addWarning({type:"command-shadow",message:`Method '${r}' shadows hyperscript command`,suggestions:[`Rename method to avoid confusion (e.g., '${r}Fn', 'my${r.charAt(0).toUpperCase()+r.slice(1)}')`,`Use 'call' command instead: call ${r}(...)`,"This works but may cause ambiguity"],severity:"warning",code:"PSEUDO_CMD_SHADOW",...void 0!==t.line&&{line:t.line},...void 0!==t.column&&{column:t.column}}),i?this.advance():xr.PSEUDO_COMMAND_PREPOSITIONS.includes(this.peek().value.toLowerCase())&&(a=this.advance().value.toLowerCase());try{s=this.parseExpression()}catch{return{node:this.callExprToCommandNode(e,t),isPseudo:!1,targetFailed:!0}}return{node:this.createPseudoCommandNode(r,e,a,s,t),isPseudo:!0,targetFailed:!1}}parseCommandWithErrorRecovery(){this.advance();const e=this.error;try{const t=this.parseCommand();return this.error&&this.error!==e&&(me("\u26a0\ufe0f Command parsing added error, restoring error state. Error was:",this.error.message),this.error=e),t}catch(t){return me("\u26a0\ufe0f Command parsing threw exception, restoring error state:",t instanceof Error?t.message:t+""),this.error=e,null}}parseTemporalKeywordModifiers(e){if(!this.check("debounced")&&!this.check("throttled"))return;const t=this.advance().value.toLowerCase(),r="debounced"===t?"debounce":"throttle";if(this.match("at"))if(this.checkTimeExpression()){const i=this.advance(),a=(n=i.value).endsWith("ms")?parseInt(n,10):n.endsWith("seconds")?1e3*parseFloat(n):n.endsWith("minutes")?6e4*parseFloat(n):n.endsWith("hours")?36e5*parseFloat(n):n.endsWith("days")?864e5*parseFloat(n):n.endsWith("s")?1e3*parseFloat(n):parseInt(n,10);e[r]=a,me(`\ud83d\udd27 parseEventHandler: Parsed '${t} at ${i.value}' (${a}ms)`)}else if(this.matchNumber()){const n=parseInt(this.previous().value,10);e[r]=n,me(`\ud83d\udd27 parseEventHandler: Parsed '${t} at ${n}'`)}else this.addError(`Expected time expression after '${t} at', got: ${this.peek().value}`);else this.addError(`Expected 'at' after '${t}'`);var n}parseEventHandler(){me("\ud83d\udd27 parseEventHandler: ENTRY - parsing event handler");const e=[];let t=!1;if(this.check("first")&&!this.checkIsCommand()&&this.tokens.length>this.current+1){const e=this.tokens[this.current+1],r=e?.value?.toLowerCase();r&&"of"!==r&&"in"!==r&&"from"!==r&&(this.advance(),t=!0,me("\ud83d\udd27 parseEventHandler: Parsed 'first' as .once alias"))}const r=this.parseEventNameWithNamespace("Expected event name after 'on'");for(e.push(r),me("\ud83d\udd27 parseEventHandler: Parsed first event name: "+r);this.check("or");){this.advance(),me("\ud83d\udd27 parseEventHandler: Found 'or', parsing additional event name");const t=this.parseEventNameWithNamespace("Expected event name after 'or'");e.push(t),me("\ud83d\udd27 parseEventHandler: Parsed additional event name: "+t)}let n;if(me("\ud83d\udd27 parseEventHandler: Total events parsed: "+e.join(", ")),this.registryIntegration){const t=e[0];if(this.registryIntegration.hasEventSource(t)){const e=this.registryIntegration.getEventSource(t);n=e?.name,me(`\ud83d\udd27 parseEventHandler: Detected custom event source '${n}' for event '${t}'`)}}const i=[];if(this.match("(")){if(!this.check(")"))do{const e=this.advance();i.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after event parameters"),me("\ud83d\udd27 parseEventHandler: Parsed event parameters: "+i.join(", "))}const a={};for(;this.check(".");){this.advance();const e=this.advance().value.toLowerCase();if("once"===e)a.once=!0,me("\ud83d\udd27 parseEventHandler: Parsed modifier '.once'");else if("prevent"===e)a.prevent=!0,me("\ud83d\udd27 parseEventHandler: Parsed modifier '.prevent'");else if("stop"===e)a.stop=!0,me("\ud83d\udd27 parseEventHandler: Parsed modifier '.stop'");else if("debounce"===e||"throttle"===e){if(!this.check("("))throw Error(`Expected '(' after '.${e}'`);{this.advance();const t=this.advance(),r=parseInt(t.value,10);if(isNaN(r))throw Error(`Expected number for ${e} delay, got: ${t.value}`);"debounce"===e?(a.debounce=r,me(`\ud83d\udd27 parseEventHandler: Parsed modifier '.debounce(${r})'`)):(a.throttle=r,me(`\ud83d\udd27 parseEventHandler: Parsed modifier '.throttle(${r})'`)),this.consume(")",`Expected ')' after ${e} delay`)}}else me(`\ud83d\udd27 parseEventHandler: Warning - unknown modifier '.${e}'`)}let s,o,l,c,u;if(this.parseTemporalKeywordModifiers(a),t&&(a.once=!0),Object.keys(a).length>0&&me("\ud83d\udd27 parseEventHandler: Parsed modifiers:",a),this.match("[")&&(s=this.parseExpression(),this.consume("]","Expected ']' after event condition")),this.match("from")){if(this.check("the")&&this.advance(),xr.POSITIONAL_SOURCE_HEADS.has(this.peek().value.toLowerCase())){const e=this.current;l=this.parseExpression(),o=this.tokens.slice(e,this.current).map(e=>e.value).join(" ")}else o=this.advance().value;me("\ud83d\udd27 parseEventHandler: Parsed 'from' target: "+o),this.parseTemporalKeywordModifiers(a)}if(this.match("of")){const e=this.advance();c=e.value.startsWith("@")?e.value.substring(1):e.value,me("\ud83d\udd27 parseEventHandler: Parsed attribute name: "+c)}this.match("in")&&(me("\ud83d\udd27 parseEventHandler: Found 'in' keyword, parsing watch target"),u=this.parseExpression(),me("\ud83d\udd27 parseEventHandler: Parsed watch target expression"));const d=[];for(me(`\u2705 parseEventHandler: About to parse commands, current token: ${this.isAtEnd()?"END":this.peek().value}, isAtEnd: ${this.isAtEnd()}`);!this.isAtEnd();){if(me(`\u2705 parseEventHandler: Loop iteration, current token: ${this.peek().value}, kind: ${this.peek().kind}`),this.check("on")){me("\u2705 parseEventHandler: Stopping command parsing, found next event handler 'on'");break}if(this.checkComment()){me("\u2705 parseEventHandler: Skipping comment token: "+this.peek().value),this.advance();continue}if(this.check("end")){me("\u2705 parseEventHandler: Stopping command parsing, found 'end' keyword"),this.advance();break}if(this.check("catch")||this.check("finally")){me(`\u2705 parseEventHandler: Stopping command parsing, found '${this.peek().value}'`);break}if(this.checkIsCommand()){const e="("===this.tokens[this.current+1]?.value,t=this.peek().value.toLowerCase();if(e&&"js"!==t&&"tell"!==t&&this.isArgumentListOnly(this.current+1)){let e;const t=this.error;try{e=this.parseExpression()}catch(e){this.error=t,this.advance();const r=this.parseCommand();d.push(r);continue}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(d.push(t.node),t.isPseudo||t.targetFailed)continue}}else{const e=this.peek().value,t=this.parseCommandWithErrorRecovery();t?(d.push(t),me("\u2705 parseEventHandler: Parsed command, next token: "+(this.isAtEnd()?"END":this.peek().value))):this.recordDropped(`Command '${e}' failed to parse and was discarded`)}}else{if(!this.checkIdentifier()&&!this.checkEventNamedCall()){this.isAtEnd()||this.check("end")||this.check("catch")||this.check("finally")||this.recordDropped(`Not a command, and the rest of the handler body was discarded: '${this.peek().value}'`);break}{const e=this.peek();if(this.isCommand(e.value)){const t=this.parseCommandWithErrorRecovery();t?d.push(t):this.recordDropped(`Command '${e.value}' failed to parse and was discarded`)}else{let e;const t=this.error;try{e=this.parseExpression()}catch(e){me("\u26a0\ufe0f Expression parsing error, restoring error state:",e instanceof Error?e.message:e+""),this.error=t;break}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(d.push(t.node),t.targetFailed)continue}else{if(!e||"binaryExpression"!==e.type||" "!==e.operator){this.recordDroppedExpression(e);break}{const t=e;if(!t.left||"identifier"!==t.left.type||!this.isCommand(t.left.name)){this.recordDroppedExpression(e);break}{const r={type:"command",name:t.left.name,args:[t.right],isBlocking:!1,...void 0!==e.start&&{start:e.start},...void 0!==e.end&&{end:e.end},...void 0!==e.line&&{line:e.line},...void 0!==e.column&&{column:e.column}};d.push(r)}}}}}}const e=this.current;for(;!(this.isAtEnd()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("and")||this.check(",")||this.check("on")||this.check("catch")||this.check("finally"));)this.advance();if(this.recordDroppedRange(e,this.current),!this.match("then","and",",")&&!this.checkIsCommand()&&!this.isCommand(this.peek().value))break}let m,p,h;this.isAtEnd()||!this.check("catch")&&!this.check("finally")||(({errorSymbol:m,errorHandler:p,finallyHandler:h}=this.parseErrorAndFinallyBlocks()),this.check("end")&&this.advance());const f=this.getPosition(),y={type:"eventHandler",event:1===e.length?e[0]:e.join("|"),events:e,commands:d,...void 0!==m&&{errorSymbol:m},...void 0!==p&&{errorHandler:p},...void 0!==h&&{finallyHandler:h},...i.length>0&&{args:i},...s&&{condition:s},...o&&{target:o},...l&&{targetExpression:l},...c&&{attributeName:c},...u&&{watchTarget:u},...n&&{customEventSource:n},...Object.keys(a).length>0&&{modifiers:a},start:f.start,end:f.end,line:f.line,column:f.column};return me(`\ud83d\udd27 parseEventHandler: Created node with events: ${e.join(", ")}, attributeName: ${c||"none"}, watchTarget: ${u?"yes":"none"}`),y}parseBehaviorDefinition(){const e=this.getPosition(),t=this.consumeIdentifier("Expected behavior name after 'behavior' keyword").value;/^[A-Z]/.test(t)||this.addError(`Behavior name must start with uppercase letter (got "${t}")`);const r=[];if(this.match("(")){if(!this.check(")"))do{const e=this.consumeIdentifierLike("Expected parameter name");r.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after behavior parameters")}const n=new Set(r),i=[];let a;for(;!this.isAtEnd()&&!this.check("end");)if(this.match("on")){const e=this.getPosition(),t=this.parseEventNameWithNamespace("Expected event name after 'on'"),r=[];if(this.check("(")){for(this.advance();!this.isAtEnd()&&!this.check(")");){const e=this.peek();Ye(e)?(r.push(e.value),this.advance(),this.check(",")&&this.advance()):this.advance()}this.check(")")&&this.advance()}let a;if(this.check("from")){this.advance();const e=[];if(this.check("the")&&this.advance(),!this.isAtEnd()){const t=this.peek(),r=n.has(t.value);this.checkIsCommand()&&!r||(e.push(t.value),a=t.value,this.advance())}}const{commands:s,terminator:o}=this.parseCommandListUntilTerminator(["catch","finally"]);let l,c,u;if("catch"!==o&&"finally"!==o||({errorSymbol:l,errorHandler:c,finallyHandler:u}=this.parseErrorAndFinallyBlocks()),!this.check("end"))throw Error('Expected "end" to close behavior event handler');this.advance();const d={type:"eventHandler",event:t,commands:yt(s),...void 0!==l&&{errorSymbol:l},...void 0!==c&&{errorHandler:yt(c)},...void 0!==u&&{finallyHandler:yt(u)},...void 0!==a&&{target:a},...r.length>0&&{args:r},start:e.start,end:this.getPosition().end,line:e.line,column:e.column};i.push(d)}else{if(!this.match("init")){this.addError("Unexpected token in behavior body: "+this.peek().value);break}a={type:"initBlock",commands:yt(this.parseCommandBlock(["end"])),start:e.start,end:this.getPosition().end,line:e.line,column:e.column},this.consume("end","Expected 'end' after init block")}return this.consume("end","Expected 'end' to close behavior definition"),{type:"behavior",name:t,parameters:r,eventHandlers:i,...void 0!==a?{initBlock:a}:{},start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseCommandSequence(){const e=[];for(;!this.isAtEnd();){if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value)){this.advance();const t=this.error,r=this.parseCommand();for(this.error&&this.error!==t&&(this.error.message.includes("Expected closing parenthesis")||this.error.message.includes("Expected ')'")||this.error.message.includes("unclosed parenthes")||this.error.message.includes("Unclosed parenthes")||(me("\u26a0\ufe0f parseCommandSequence: Command parsing added non-critical error, restoring error state. Error was:",this.error.message),this.error=t)),e.push(r);!(this.isAtEnd()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("on"));)me("\u26a0\ufe0f parseCommandSequence: Skipping unexpected token:",this.peek().value),this.advance();if(this.check("on")){me('\u2705 parseCommandSequence: Found "on" token, stopping command sequence to allow event handler parsing');break}if(this.match("then"))continue;if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value))continue;break}{const t=this.peek(),r=this.getPosition(),n="Expected command, got: "+t.value;this.addError(n);const i=ht(r,n,t.value);if(e.push(i),this.synchronizeToCommandBoundary(),this.isAtEnd())break;if(this.match("then"))continue;if(this.check("end")||this.check("on"))break;if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value))continue;break}}return 1===e.length?e[0]:function(e){return{type:"CommandSequence",commands:e,start:e[0]?.start||0,end:e[e.length-1]?.end||0,line:e[0]?.line||1,column:e[0]?.column||1}}(e)}isTokenKeyword(e,t){return gt(e,t)}parseCommandBlock(e){const t=[];for(;!this.isAtEnd()&&!e.some(e=>this.check(e));)if(this.checkComment())this.advance();else{if(!this.checkIsCommand()&&!this.isCommand(this.peek().value))break;{this.advance();const e=this.parseCommand();if(t.push(e),this.match("then","and",","))continue}}return t}parseCommand(){const e=this.parseCommandCore();if(e&&"command"===e.type&&!e.body&&(this.check("when")||this.check("where"))){const t=this.peek().value.toLowerCase();this.advance();const r=this.parseExpression();r&&(e.modifiers={...e.modifiers??{},[t]:r})}return e}parseCommandCore(){const e=this.previous(),t=e.value;if("beep"===t&&this.check("!")&&this.advance(),"fetch"===t)return function(e,t){const r={};let n=null;if(!e.isAtEnd()&&pr(e)&&(n=fr(e)),n||(n=e.parsePrimary()),!n)return e.addError("fetch requires a URL"),St.from(t).endingAt(e.getPosition()).build();!e.isAtEnd()&&e.check("{")&&(r.with=e.parsePrimary());for(let t=0;3>t&&!e.isAtEnd();t++)if(!e.check("as")||r.as){if(!e.check("with")||r.with){if(e.check("do")&&!r.doNotThrow){const t=e.peekAt(1),n=e.peekAt(2);if("not"===t?.value&&"throw"===n?.value){const t=e.advance();e.advance();const n=e.advance();r.doNotThrow=ft({type:"literal",value:!0,start:t.start,end:n.end,line:t.line,column:t.column});continue}}break}e.advance(),r.with=xt(e)?At(e,()=>e.parsePrimary(),"fetch"):e.parsePrimary()}else e.advance(),e.isAtEnd()||kt(e,"a")||kt(e,"an"),r.as=e.parsePrimary();const i=St.from(t).withArgs(n).endingAt(e.getPosition());return Object.keys(r).length>0&&i.withModifiers(r),i.build()}(this.getContext(),e);const r=t.toLowerCase();return"repeat"===r?this.parseRepeatCommand(e):"for"===r?this.parseForCommand(e):"if"===r||"unless"===r?this.parseIfCommand(e):"wait"===r?this.parseWaitCommand(e):"install"===r?this.parseInstallCommand(e):"transition"===r?this.parseTransitionCommand(e):"add"===r?this.parseAddCommand(e):this.isCompoundCommand(r)?this.parseCompoundCommand({type:"identifier",name:r,start:e.start||0,end:e.end||0,line:e.line,column:e.column})||{type:"command",name:r,args:[],partial:!0,start:(n=this.getPosition()).start,end:n.end,line:n.line,column:n.column}:"increment"!==t&&"decrement"!==t||this.isAtEnd()?or(this.getContext(),e,t,wr(t)??br):function(e,t){const r=t.value,n="increment"===r?"+":"-";let i=!1;e.check(v)&&(i=!0,e.advance());const a=e.parseExpression();if(!a)throw Error("Expected variable or expression after "+r);let s;if(e.check("by")){e.advance();const t=e.parseExpression();if(!t)throw Error(`Expected amount after 'by' in ${r} command`);s=t}else s=st(1,"1",{start:t.start,end:e.previous().end,line:t.line,column:t.column});let o=a;i&&"identifier"===a.type&&(o={...a,scope:"global"});const l=lt(n,a,s,{start:t.start,end:e.previous().end,line:t.line,column:t.column});return l.coerceNumeric=!0,St.from(t).withName("set").withArgs(o).withModifier("to",l).withOriginalCommand(r).endingAt({end:e.previous().end}).build()}(this.getContext(),e);var n}parseConditional(){const e=this.parseExpression();this.consume("then","Expected 'then' after if condition");const t=this.parseConditionalBranch();let r;this.match("else")&&(r=this.parseConditionalBranch());const n=this.getPosition();return{type:"conditionalExpression",test:e,consequent:t,alternate:r,start:n.start,end:n.end,line:n.line,column:n.column}}parseConditionalBranch(){if(this.checkIsCommand()){const e=this.advance(),t=this.createIdentifier(e.value);return this.createCommandFromIdentifier(t)||t}if(this.checkIdentifier()||this.checkKeyword()){const e=this.peek();if(this.isCommand(e.value)){const e=this.advance(),t=this.createIdentifier(e.value);return this.createCommandFromIdentifier(t)||t}}return this.parseExpression()}parseNavigationFunction(e){const t=this.getPosition(),r=[];if(this.match("of"))r.push(this.parseExpression());else{if(this.check("("))return this.finishCall(ot(e,t));this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("else")||r.push(this.parsePrimary())}const n=this.createCallExpression(ot(e,t),r);if("closest"===e&&r.length>0&&this.match("to")&&(n.closestTo=this.parseExpression()),"next"===e||"previous"===e){const e=this.parseRelativePositionalModifiers();e&&(n.relativePositional=e)}return n}parseRelativePositionalModifiers(){if(!(this.check("from")||this.check("within")||this.check("in")||this.check("with")))return null;let e,t,r,n=!1,i=!1;return this.match("from")&&(e=this.parseRelativePositionalOperand()),this.match("in")?(n=!0,r=this.parseRelativePositionalOperand()):this.match("within")&&(t=this.parseRelativePositionalOperand()),this.match("with")&&(this.match("wrapping"),i=!0),{from:e,within:t,inElt:r,inSearch:n,wrapping:i}}parseRelativePositionalOperand(){return this.match("the"),this.parsePrimary()}parseTheXofY(){if(this.isStyleRefStar(this.current))return this.parsePrimary();if(!this.checkIdentifier())return this.createIdentifier("the");const e=this.peek(),t=e.value;return["first","last","next","previous","random","closest"].includes(t)?(this.advance(),this.parseNavigationFunction(t)):(this.advance(),this.check("of")?(this.advance(),{type:"propertyOfExpression",property:{type:"identifier",name:t},target:we(this.makePrattContext(),71),line:e.line,column:e.column}):this.createIdentifier(t))}parseContextPropertyAccess(e){const t=this.getPosition(),r=()=>ot(e,t);if(this.match("*")){let e="";if(!this.checkIdentifier())return this.addError("Expected property name after 'my *'"),this.createMemberExpression(r(),this.createIdentifier(""),!1);for(e=this.advance().value;this.check("-")&&!this.isAtEnd();){if(e+="-",this.advance(),!this.checkIdentifier()){this.addError("Expected identifier after hyphen in CSS property name");break}e+=this.advance().value}const t="*"+e;return this.createMemberExpression(r(),this.createIdentifier(t),!1)}{if(this.check("[")&&this.tokens[this.current+1]?.value?.startsWith("@")){this.advance();const e=this.advance();return this.consume("]","Expected ']' after attribute reference"),this.createMemberExpression(r(),{type:"attributeAccess",attributeName:e.value.substring(1),start:e.start,end:e.end,line:e.line,column:e.column},!0)}if(Ke(this.peek())&&this.peek().value.startsWith("@")){const e=this.advance();return this.createMemberExpression(r(),this.createIdentifier(e.value),!1)}const t=this.consumeIdentifierLike(`Expected property name after '${{me:"my",it:"its",you:"your"}[e]}'`);return this.createMemberExpression(r(),this.createIdentifier(t.value),!1)}}parseMyPropertyAccess(){return this.parseContextPropertyAccess("me")}finishCall(e){const t=[];if(!this.check(")"))do{if(this.check(","))return this.addError("Unexpected token in function arguments"),this.createCallExpression(e,[this.createErrorNode()]);t.push(this.parseExpression())}while(this.match(","));if(!this.check(")")&&"identifier"===e.type){const t=e.name;O(t)&&me(`\ud83d\udca1 Tip: CSS functions like ${t}() should be quoted for clean parsing. Use '${t}(...)' or \`${t}(...)\` instead.`)}return this.consume(")","Expected ')' after arguments"),this.createCallExpression(e,t)}createLiteral(e,t){return st(e,t,this.getPosition())}createIdentifier(e){return ot(e,this.getPosition())}createBinaryExpression(e,t,r){return lt(e,t,r,this.getPosition())}createUnaryExpression(e,t,r){return function(e,t,r,n){return{type:"unaryExpression",operator:e,argument:t,prefix:r,start:n.start,end:n.end,line:n.line,column:n.column}}(e,t,r,this.getPosition())}spanFromLeftmost(e){const t=this.getPosition(),r=e?.start;return"number"==typeof r&&t.start>r?this.originalInput?{...W(this.originalInput,r),start:r,end:t.end}:{...t,start:r}:t}createCallExpression(e,t){return function(e,t,r){return{type:"callExpression",callee:e,arguments:t,start:r.start,end:r.end,line:r.line,column:r.column}}(e,t,this.spanFromLeftmost(e))}createMemberExpression(e,t,r){return function(e,t,r,n){return{type:"memberExpression",object:e,property:t,computed:r,start:n.start,end:n.end,line:n.line,column:n.column}}(e,t,r,this.spanFromLeftmost(e))}createSelector(e){return function(e,t){return{type:"selector",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}(e,this.getPosition())}createPossessiveExpression(e,t){return function(e,t,r){return{type:"possessiveExpression",object:e,property:t,start:r.start,end:r.end,line:r.line,column:r.column}}(e,t,this.spanFromLeftmost(e))}createErrorNode(){return{type:"identifier",name:"__ERROR__",start:(e=this.getPosition()).start,end:e.end,line:e.line,column:e.column};var e}processEscapeSequences(e){return e.replace(/\\(.)/g,(e,t)=>{switch(t){case"n":return"\n";case"t":return"\t";case"r":return"\r";case"b":return"\b";case"f":return"\f";case"v":return"\v";case"0":return"\0";case"\\":return"\\";case'"':return'"';case"'":return"'";default:return t}})}createProgramNode(e){return function(e){if(me(`\u2705 createProgramNode: Called with ${e.length} statements`),0===e.length)return me("\u2705 createProgramNode: Returning error node (0 statements)"),{type:"identifier",name:"__ERROR__",start:0,end:0,line:1,column:1};if(1===e.length)return me(`\u2705 createProgramNode: Returning single statement (type=${e[0].type})`),e[0];const t={type:"Program",statements:e,start:e[0]?.start||0,end:e[e.length-1]?.end||0,line:e[0]?.line||1,column:e[0]?.column||1};return me(`\u2705 createProgramNode: Returning Program node with ${e.length} statements, type=${t.type}`),t}(e)}match(...e){for(const t of e)if(this.check(t))return this.advance(),!0;return!1}matchOperator(e){if(this.isAtEnd())return!1;const t=this.peek();return!(!it(t)||t.value!==e||(this.advance(),0))}check(e){if(this.isAtEnd())return!1;const t=this.peek().value;return this.resolveKeyword(t)===e}checkPredicate(e){return!this.isAtEnd()&&e(this.peek())}matchPredicate(e){return!!this.checkPredicate(e)&&(this.advance(),!0)}checkSelector(){return this.checkPredicate(Be)}matchSelector(){return this.matchPredicate(Be)}checkAnySelector(){return this.checkPredicate(We)}checkLiteral(){return this.checkPredicate(Fe)}checkEventNamedCall(){if(this.isAtEnd()||!this.checkIdentifierLike()||this.checkIsCommand())return!1;const e=this.peek(),t=this.tokens[this.current+1];return"("===t?.value&&t.start===e.end}checkIdentifierLike(){return this.checkPredicate(He)}checkIsCommand(){return this.checkPredicate(Me)}checkCommandTerminator(){return this.checkPredicate(at)}checkReference(){return this.checkPredicate(De)}checkTimeExpression(){return this.checkPredicate(Ue)}checkEvent(){return this.checkPredicate(_e)}checkContextVar(){return this.checkPredicate(ze)}checkComment(){return this.checkPredicate(Ze)}checkIdentifier(){return this.checkPredicate(Ye)}checkKeyword(){return this.checkPredicate($e)}checkString(){return this.checkPredicate(Je)}matchString(){return this.matchPredicate(Je)}checkNumber(){return this.checkPredicate(Ge)}matchNumber(){return this.matchPredicate(Ge)}checkBoolean(){return this.checkPredicate(Qe)}matchBoolean(){return this.matchPredicate(Qe)}checkTemplateLiteral(){return this.checkPredicate(Xe)}matchTemplateLiteral(){return this.matchPredicate(Xe)}checkQueryReference(){return this.checkPredicate(et)}matchQueryReference(){return this.matchPredicate(et)}checkIdSelector(){return this.checkPredicate(tt)}checkClassSelector(){return this.checkPredicate(rt)}checkCssSelector(){return this.checkPredicate(nt)}checkBasicOperator(){return this.checkPredicate(it)}matchBasicOperator(){return this.matchPredicate(it)}matchTimeExpression(){return this.matchPredicate(Ue)}matchIdentifierLike(){return this.matchPredicate(He)}matchComparisonOperator(){return this.matchPredicate(Ve)}consumePredicate(e,t){return this.checkPredicate(e)?this.advance():(this.addError(t),this.peek())}consumeIdentifier(e){return this.consumePredicate(Ye,e)}consumeIdentifierLike(e){return this.consumePredicate(He,e)}consumeEvent(e){return this.consumePredicate(_e,e)}advance(){return this.isAtEnd()||this.current++,this.previous()}isAtEnd(){return this.current>=this.tokens.length}atEndOfInput(){for(let e=this.current;this.tokens.length>e;e++)if(!Ze(this.tokens[e]))return!1;return!0}checkFeatureStart(){if(this.isAtEnd())return!1;const e=this.peek().value;return"init"===e||"on"===e||"def"===e||void 0!==Re(e)}peek(){return this.isAtEnd()?{kind:"unknown",value:"",start:0,end:0,line:1,column:1}:this.tokens[this.current]}peekAt(e){const t=this.current+e;return t>=0&&this.tokens.length>t?this.tokens[t]:null}previous(){return this.tokens[this.current-1]}consume(e,t){return this.check(e)?this.advance():(this.addError(t),this.peek())}addError(e){const t=this.peek();let r=t.start||0,n=t.line||1,i=t.column||1;if(e.includes("property name after '.'")){const e=this.current>0?this.previous():t;r=e.end||e.start||0,n=e.line||1,i=e.column||1}if(e.includes("parenthes")){const e=this.current>0?this.previous():t;r=e.end||e.start||0,n=e.line||1,i=e.column||1,0===r&&this.current>0&&(r=this.current)}if(e.includes("Expected expression after")){const e=this.current>0?this.previous():t;r=e.start||0,n=e.line||1,i=e.column||1,0===r&&(r=Math.max(1,this.current-1))}if(e.includes("Missing operand")){let e=t;for(let t=this.current-1;t>=0;t--){const r=this.tokens[t];if(r&&("+"===r.value||"-"===r.value)){e=r;break}}r=e.start||0,n=e.line||1,i=e.column||1}this.error={message:e,line:Math.max(1,n),column:Math.max(1,i),position:Math.max(0,r)},this.errors.push(this.error)}recordDroppedRange(e,t){const r=this.tokens.slice(e,t).filter(e=>!Ze(e)&&"end"!==e.value);0!==r.length&&this.recordDropped(`Discarded input the parser could not place: '${r.map(e=>e.value).join(" ")}'`)}recordDropped(e){const t=this.peek();this.errors.push({message:e,line:Math.max(1,t.line||1),column:Math.max(1,t.column||1),position:Math.max(0,t.start||0)})}recordDroppedExpression(e){this.recordDropped("Not a command, and the rest of the handler body was discarded: "+(e&&"string"==typeof e.name?`'${e.name}'`:"a "+(e?.type??"expression")))}synchronizeToCommandBoundary(){for(;!this.isAtEnd();){const e=this.peek();if("then"===e.value||"end"===e.value||"on"===e.value)return;if(this.checkIsCommand()||this.isCommand(e.value)&&!this.isKeyword(e.value))return;me("\u26a0\ufe0f synchronize: Skipping token:",e.value),this.advance()}}parseAttributeOrArrayLiteral(){const e=this.previous().start,t=this.previous().line,r=this.previous().column;if(!this.isAtEnd()&&this.peek().value.startsWith("@")){const n=[];for(;!this.check("]")&&!this.isAtEnd();){const e=this.advance();n.push(e.value)}this.consume("]","Expected ']' after attribute literal");const i=n.join("");if(!i.includes("="))return{type:"attributeAccess",attributeName:i.replace(/^@/,""),start:e,end:this.previous().end,line:t,column:r};const a="["+i+"]";return{type:"literal",value:a,raw:a,start:e,end:this.previous().end,line:t,column:r}}const n=new Set(["=","~=","|=","^=","$=","*="]),i=this.tokens[this.current],a=this.tokens[this.current+1];if("identifier"===i?.kind&&("]"===a?.value||a&&n.has(a.value)&&"string"===this.tokens[this.current+2]?.kind)){let e="["+this.advance().value;if(this.check("]"))this.advance(),e+="]";else{const t=this.advance().value,r=this.advance().value;e+=t+'"'+(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r)+'"',this.consume("]","Expected ']' after attribute selector"),e+="]"}return this.createSelector(e)}const s=[];if(!this.check("]"))do{if(this.check("]"))break;s.push(this.parseExpression())}while(this.match(","));return this.consume("]","Expected ']' after array elements"),{type:"arrayLiteral",elements:s,start:e,end:this.previous().end,line:t,column:r}}getPosition(){const e=this.current>0?this.previous():this.peek();return{start:e.start||0,end:e.end||0,line:e.line||1,column:e.column||1}}getContext(){const e=this,t={tokens:this.tokens,advance:this.advance.bind(this),peek:this.peek.bind(this),previous:this.previous.bind(this),consume:this.consume.bind(this),check:this.check.bind(this),checkIdentifierLike:this.checkIdentifierLike.bind(this),checkSelector:this.checkSelector.bind(this),checkAnySelector:this.checkAnySelector.bind(this),checkLiteral:this.checkLiteral.bind(this),checkReference:this.checkReference.bind(this),checkTimeExpression:this.checkTimeExpression.bind(this),checkEvent:this.checkEvent.bind(this),checkIsCommand:this.checkIsCommand.bind(this),checkContextVar:this.checkContextVar.bind(this),match:this.match.bind(this),matchOperator:this.matchOperator.bind(this),isAtEnd:this.isAtEnd.bind(this),atEndOfInput:this.atEndOfInput.bind(this),createIdentifier:this.createIdentifier.bind(this),parseExpression:this.parseExpression.bind(this),parsePrimary:this.parsePrimary.bind(this),parseLogicalAnd:this.parseLogicalAnd.bind(this),parseCSSObjectLiteral:this.parseCSSObjectLiteral.bind(this),parseCommand:this.parseCommand.bind(this),parseCommandSequence:this.parseCommandSequence.bind(this),parseCommandListUntilEnd:this.parseCommandListUntilEnd.bind(this),parseCommandListUntilEndOrElse:this.parseCommandListUntilEndOrElse.bind(this),parseRepeatBody:this.parseRepeatBody.bind(this),getPosition:this.getPosition.bind(this),addError:this.addError.bind(this),addWarning:this.addWarning.bind(this),isCommand:this.isCommand.bind(this),isKeyword:this.isKeyword.bind(this),resolveKeyword:this.resolveKeyword.bind(this),savePosition:()=>e.current,restorePosition:t=>{e.current=t},peekAt:t=>e.peekAt(t),getInputSlice:(e,t)=>this.originalInput?0>e||e>=this.originalInput.length?"":void 0!==t?this.originalInput.slice(e,t):this.originalInput.slice(e):""};return Object.defineProperty(t,"current",{get:()=>e.current,set:t=>{e.current=t},enumerable:!0,configurable:!0}),t}}function Ar(e,t){const r=function(e){const t={input:"",position:0,line:1,column:1,tokens:[]};t.input=e;const r=e.length;for(;r>t.position&&(V(t),r>t.position);){const r=e[t.position];if("-"!==r||"-"!==_(t,1))if('"'!==r){if("'"===r||"'"===r){const e=_(t,1),r=t.tokens[t.tokens.length-1];if("s"!==e||!r||/\s/.test(t.input[t.position-1]??" ")||r.kind!==I.IDENTIFIER&&r.kind!==I.SELECTOR&&"]"!==r.value&&")"!==r.value&&"}"!==r.value)D(t);else{const e=t.position;z(t),z(t),H(t,I.OPERATOR,"'s",e)}continue}if("`"!==r)if("<"!==r)if("#"!==r){if("."===r){if("."===_(t,1)){const e=t.position;z(t),z(t),H(t,I.OPERATOR,"..",e);continue}const e=t.tokens[t.tokens.length-1],r=new Set(["from","to","into","on","in","at","between","first","last","next","previous","closest","random","of","some","no"]),n=e&&e.kind===I.IDENTIFIER&&k.has(e.value.toLowerCase()),i=e&&e.kind===I.IDENTIFIER&&r.has(e.value.toLowerCase());if((!e||e.kind===I.OPERATOR&&")"!==e.value&&"]"!==e.value||n||i||"("===e.value||"["===e.value||"{"===e.value||","===e.value||";"===e.value)&&(!e||e.end!==t.position)&&(ee(_(t))||"{"===_(t)||"-"===_(t))){K(t);continue}}if("@"!==r)if("{"!==r)if("}"!==r){if("["===r){const e=t.tokens[t.tokens.length-1],r=e&&e.kind===I.IDENTIFIER&&N.has(e.value)&&t.tokens.length>=2&&"on"===t.tokens[t.tokens.length-2]?.value;(!e||e.kind!==I.IDENTIFIER&&")"!==e.value&&"]"!==e.value||r)&&r?(z(t),H(t,I.SYMBOL,"[")):(z(t),H(t,I.OPERATOR,"["));continue}if("]"!==r){if("$"===r){const e=_(t,1);if(e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e){X(t);continue}}ie(r)?J(t):"0">r||r>"9"?("a">r||r>"z")&&("A">r||r>"Z")&&"_"!==r?(H(t,I.UNKNOWN,r),z(t)):Q(t):G(t)}else z(t),H(t,I.OPERATOR,"]")}else z(t),H(t,I.OPERATOR,"}");else z(t),H(t,I.OPERATOR,"{");else Y(t)}else K(t);else ne(t)?Z(t):J(t);else U(t)}else D(t);else F(t)}return t.tokens}(e);return new xr(r,t,e).parse()}xr.POSTFIX_UNARY_OPERATORS=new Set(["exists","does not exist","is empty","is not empty","ignoring case"]),xr.PRATT_TABLE=ke,xr.BEEP_OPERAND_BP=80,xr.PSEUDO_COMMAND_PREPOSITIONS=["from","on","with","into","at","to"],xr.POSITIONAL_SOURCE_HEADS=new Set(["closest","next","previous","first","last"]);class Cr{constructor(){this.hooks=new Map,this.beforeExecuteHooks=[],this.afterExecuteHooks=[],this.onErrorHooks=[],this.interceptCommandHooks=[]}register(e,t){this.unregister(e),this.hooks.set(e,t),t.beforeExecute&&this.beforeExecuteHooks.push(t.beforeExecute),t.afterExecute&&this.afterExecuteHooks.push(t.afterExecute),t.onError&&this.onErrorHooks.push(t.onError),t.interceptCommand&&this.interceptCommandHooks.push(t.interceptCommand)}unregister(e){const t=this.hooks.get(e);if(!t)return!1;if(t.beforeExecute){const e=this.beforeExecuteHooks.indexOf(t.beforeExecute);e>-1&&this.beforeExecuteHooks.splice(e,1)}if(t.afterExecute){const e=this.afterExecuteHooks.indexOf(t.afterExecute);e>-1&&this.afterExecuteHooks.splice(e,1)}if(t.onError){const e=this.onErrorHooks.indexOf(t.onError);e>-1&&this.onErrorHooks.splice(e,1)}if(t.interceptCommand){const e=this.interceptCommandHooks.indexOf(t.interceptCommand);e>-1&&this.interceptCommandHooks.splice(e,1)}return this.hooks.delete(e)}has(e){return this.hooks.has(e)}async runBeforeExecute(e){for(const t of this.beforeExecuteHooks)await t(e)}async runAfterExecute(e,t){for(const r of this.afterExecuteHooks)await r(e,t)}async runOnError(e,t){let r=t;for(const t of this.onErrorHooks){const n=await t(e,r);n instanceof Error&&(r=n)}return r}shouldIntercept(e,t){for(const r of this.interceptCommandHooks)if(r(e,t))return!0;return!1}getRegisteredNames(){return Array.from(this.hooks.keys())}clear(){this.hooks.clear(),this.beforeExecuteHooks=[],this.afterExecuteHooks=[],this.onErrorHooks=[],this.interceptCommandHooks=[]}}function Sr(e){return{ok:!0,value:e}}function Tr(e){return{ok:!1,error:e}}function Or(e){return!0===e.ok}const Lr=new Map,jr=new WeakMap;function qr(e){let t=jr.get(e);return t||(t=new Map,jr.set(e,t)),t}function Pr(e){return e.owner||(e.me instanceof Element?e.me:null)}function Nr(e,t){const r=Pr(e);if(r)return Le(t,e),qr(r).get(t)}function Rr(e,t,r){const n=Pr(e);n&&(qr(n).set(t,r),Oe(t,r,e))}function Ir(e,t){return{me:e??null,owner:e??null,it:null,you:null,result:null,locals:new Map,globals:t||Lr}}function Mr(e){if(!e)return Ir();if(e.locals instanceof Map&&e.globals instanceof Map)return e;const t=Ir(e.me instanceof Element?e.me:null);return void 0!==e.it&&(t.it=e.it),void 0!==e.you&&(t.you=e.you),void 0!==e.result&&(t.result=e.result),void 0!==e.event&&Object.assign(t,{event:e.event}),t}function $r(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName&&"classList"in e}function _r(e){if(null===e||"object"!=typeof e)return!1;const t=e.nodeType;return 1===t||3===t||11===t}function zr(e){return null!==e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length&&(Symbol.iterator in e||"function"==typeof e.item)}function Vr(e,t){const r=t.map(Hr),n=r.filter(t=>function(e,t){const r=e;return"function"!=typeof CustomEvent||"function"!=typeof r?.dispatchEvent||r.dispatchEvent(new CustomEvent("hyperscript:beep",{bubbles:!0,cancelable:!0,detail:{element:e,value:t}}))}(e,t.value));if(0===n.length)return r;console.group("\ud83d\udd14 beep! Debug Output");for(const e of n)console.log("Value:",e.value),console.log("Type:",e.type),console.log("Representation:",e.representation),console.log("---");return console.groupEnd(),r}function Hr(e){return{value:e,type:Wr(e),representation:Br(e)}}function Wr(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":$r(e)?"HTMLElement":"undefined"!=typeof Element&&e instanceof Element?"Element":"undefined"!=typeof Node&&e instanceof Node?"Node":e instanceof Error?"Error":e instanceof Date?"Date":e instanceof RegExp?"RegExp":typeof e}function Br(e){if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e))return`Array(${e.length}) [${e.slice(0,3).map(e=>Br(e)).join(", ")}${e.length>3?"...":""}]`;if($r(e)){const t=e;return`<${t.tagName.toLowerCase()}${t.id?"#"+t.id:""}${t.className?"."+t.className.split(" ").join("."):""}/>`}if(e instanceof Error)return"Error: "+e.message;if("string"==typeof e)return e.length>50?`"${e.substring(0,47)}..."`:`"${e}"`;if("object"==typeof e)try{const t=Object.keys(e);return`Object {${t.slice(0,3).join(", ")}${t.length>3?"...":""}}`}catch{return"[Object]"}return e+""}function Fr(e){if(null==e)return 0;if("number"==typeof e)return isFinite(e)?e:0;if("string"==typeof e)return parseFloat(e);if("boolean"==typeof e)return e?1:0;if(Array.isArray(e))return e.length;if("object"==typeof e){if("length"in e&&"number"==typeof e.length)return e.length;if("function"==typeof e.valueOf){const t=e.valueOf();if("number"==typeof t)return t}return NaN}return 0}function Dr(e){return"number"==typeof e?e:parseFloat(e+"")}function Ur(e){return $r(e)?Ur(e.value||e.textContent):e?Dr(e):0}function Kr(e,t,r){return"element"===r?Nr(t,e):"global"===r&&t.globals&&t.globals.has(e)?t.globals.get(e):"global"!==r&&t.locals&&t.locals.has(e)?(Le(e,t),t.locals.get(e)):t.globals&&t.globals.has(e)?t.globals.get(e):t.variables&&t.variables.has(e)?t.variables.get(e):"global"===r&&t.locals&&t.locals.has(e)?(Le(e,t),t.locals.get(e)):"undefined"!=typeof window&&e in window?window[e]:"undefined"!=typeof globalThis&&e in globalThis?globalThis[e]:void 0}function Zr(e,t,r,n){if("element"!==n){if("global"===n)return je(r,e,t),void("undefined"!=typeof window&&(window[e]=t));if(e.startsWith("$"))return void je(r,e.slice(1),t);if(r.locals&&r.locals.has(e))return r.locals.set(e,t),void Oe(e,t,r);if(r.globals&&r.globals.has(e))return je(r,e,t),void("undefined"!=typeof window&&e in window&&(window[e]=t));if(r.variables&&r.variables.has(e))r.variables.set(e,t);else{if("undefined"!=typeof window&&e in window)return window[e]=t,void je(r,e,t);r.locals.set(e,t),Oe(e,t,r)}}else Rr(r,e,t)}function Yr(e,t){return"me"===e?t.me:"it"===e?t.it:"you"===e?t.you:Kr(e,t)}function Jr(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!$r(e)}function Gr(e,t,r){return r||"string"!=typeof t||!t.startsWith("#")?e:Array.isArray(e)?e[0]??null:e}function Qr(e){if("undefined"==typeof document)throw Error("DOM not available");const t=Array.from(document.querySelectorAll(e)).filter(e=>$r(e));if(!t.length)throw Error(`No elements: "${e}"`);return t}function Xr(e){if($r(e))return[e];if(Array.isArray(e)){const t=e.filter($r);return t.length>0?t:null}if("undefined"!=typeof NodeList&&e instanceof NodeList){const t=Array.from(e).filter($r);return t.length>0?t:null}return null}const en=new class{constructor(e={}){this.types=new Map,this.coercionCache=new Map,this.config={strictMode:!1,cacheCoercions:!0,...e},this.registerBuiltinTypes()}register(e){this.types.has(e.name)&&console.warn(`ExpressionTypeRegistry: Overwriting existing type '${e.name}'`),this.types.set(e.name,e)}get(e){return this.types.get(e)}has(e){return this.types.has(e)}getTypeNames(){return Array.from(this.types.keys())}inferType(e){for(const[t,r]of this.types)if(r.isType(e))return t;return"Unknown"}getHyperScriptType(e){const t=this.inferType(e),r=this.types.get(t);return r?.hyperscriptType??"unknown"}coerce(e,t,r){const n=this.types.get(t);if(!n){if(this.config.strictMode)throw Error("Unknown target type: "+t);return null}if(n.isType(e))return e;if(this.config.cacheCoercions){const r=`${this.inferType(e)}:${t}:${JSON.stringify(e)}`;if(this.coercionCache.has(r))return this.coercionCache.get(r)}const i=this.inferType(e),a=n.coerceFrom?.[i];if(a){const n=a(e,r);if(this.config.cacheCoercions&&null!==n){const r=`${i}:${t}:${JSON.stringify(e)}`;this.coercionCache.set(r,n)}return n}return n.defaultValue}canCoerce(e,t){const r=this.types.get(t);if(!r)return!1;if(r.isType(e))return!0;const n=this.inferType(e);return void 0!==r.coerceFrom?.[n]}getCoercionInfo(e,t){const r=this.types.get(t);return r&&(e===t||r.coerceFrom?.[e])?{possible:!0,direct:!0}:{possible:!1,direct:!1}}clearCache(){this.coercionCache.clear()}getStats(){return{typeCount:this.types.size,cacheSize:this.coercionCache.size,typeNames:this.getTypeNames()}}registerBuiltinTypes(){this.register({name:"String",hyperscriptType:"string",tsType:"string",isType:e=>"string"==typeof e,defaultValue:"",description:"Text string value",examples:["hello","world",""],coerceFrom:{Number:e=>e+"",Boolean:e=>e+"",Null:()=>"",Undefined:()=>"",Array:e=>Array.isArray(e)?e.join(", "):null,Object:e=>{try{return JSON.stringify(e)}catch{return e+""}},Element:e=>e instanceof Element?e.textContent??e.outerHTML:null}}),this.register({name:"Number",hyperscriptType:"number",tsType:"number",isType:e=>"number"==typeof e&&!isNaN(e),defaultValue:0,description:"Numeric value (integer or float)",examples:[0,1,3.14,-42],coerceFrom:{String:e=>{const t=parseFloat(e);return isNaN(t)?null:t},Boolean:e=>e?1:0,Null:()=>0,Undefined:()=>null}}),this.register({name:"Boolean",hyperscriptType:"boolean",tsType:"boolean",isType:e=>"boolean"==typeof e,defaultValue:!1,description:"True or false value",examples:[!0,!1],coerceFrom:{String:e=>{const t=e.toLowerCase().trim();return"true"===t||"yes"===t||"1"===t||"false"!==t&&"no"!==t&&"0"!==t&&""!==t&&t.length>0},Number:e=>0!==e,Null:()=>!1,Undefined:()=>!1,Array:e=>!!Array.isArray(e)&&e.length>0,Element:e=>e instanceof Element,ElementList:e=>Array.isArray(e)&&e.length>0}}),this.register({name:"Element",hyperscriptType:"element",tsType:"Element | HTMLElement",isType:e=>e instanceof Element,defaultValue:null,description:"DOM Element",coerceFrom:{String:(e,t)=>{const r=e;if(r.startsWith("#")||r.startsWith(".")||r.match(/^[\w-]+$/))try{return document.querySelector(r)}catch{return null}return null},ElementList:e=>Array.isArray(e)&&e.length>0?e[0]:null,NodeList:e=>e.length>0?e[0]:null}}),this.register({name:"ElementList",hyperscriptType:"element-list",tsType:"Element[]",isType:e=>Array.isArray(e)&&e.length>0&&e.every(e=>e instanceof Element),defaultValue:[],description:"Array of DOM Elements",coerceFrom:{Element:e=>e instanceof Element?[e]:[],NodeList:e=>Array.from(e),String:e=>{try{return Array.from(document.querySelectorAll(e))}catch{return[]}},Array:e=>{const t=e;return t.every(e=>e instanceof Element)?t:[]}}}),this.register({name:"Array",hyperscriptType:"array",tsType:"unknown[]",isType:e=>Array.isArray(e),defaultValue:[],description:"Array of values",coerceFrom:{String:e=>{const t=e;try{const e=JSON.parse(t);if(Array.isArray(e))return e}catch{}return t.split(",").map(e=>e.trim())},ElementList:e=>e,NodeList:e=>Array.from(e),Object:e=>Object.values(e)}}),this.register({name:"Object",hyperscriptType:"object",tsType:"Record<string, unknown>",isType:e=>!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof Element),defaultValue:{},description:"Plain JavaScript object",coerceFrom:{String:e=>{try{const t=JSON.parse(e);if("object"==typeof t&&null!==t&&!Array.isArray(t))return t}catch{}return null},Array:e=>{const t={};return e.forEach((e,r)=>{t[r+""]=e}),t}}}),this.register({name:"Null",hyperscriptType:"null",tsType:"null",isType:e=>null===e,defaultValue:null,description:"Null value"}),this.register({name:"Undefined",hyperscriptType:"undefined",tsType:"undefined",isType:e=>void 0===e,defaultValue:void 0,description:"Undefined value"}),this.register({name:"Function",hyperscriptType:"function",tsType:"Function",isType:e=>"function"==typeof e,defaultValue:null,description:"JavaScript function"}),this.register({name:"Event",hyperscriptType:"event",tsType:"Event",isType:e=>e instanceof Event,defaultValue:null,description:"DOM Event"}),this.register({name:"NodeList",hyperscriptType:"element-list",tsType:"NodeList",isType:e=>e instanceof NodeList,defaultValue:null,description:"DOM NodeList (typically from querySelectorAll)",coerceFrom:{Array:e=>null}}),this.register({name:"Unknown",hyperscriptType:"unknown",tsType:"unknown",isType:e=>!0,defaultValue:null,description:"Unknown/any value type"})}};function tn(e){const t=en.get("String");return t?t.isType(e):"string"==typeof e}function rn(e){const t=en.get("Number");return t?t.isType(e):"number"==typeof e}function nn(e){const t=en.get("Boolean");return t?t.isType(e):"boolean"==typeof e}function an(e){const t=en.get("Object");return t?t.isType(e):"object"==typeof e&&null!==e}function sn(e){const t=en.get("Function");return t?t.isType(e):"function"==typeof e}function on(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"style"in e}function ln(e){return e instanceof Element}function cn(e){return e instanceof HTMLElement}const un=new Set(["disabled","readonly","required","checked","selected","hidden","open","autofocus","autoplay","controls","loop","muted","multiple","reversed","defer","async","novalidate","formnovalidate","ismap"]);function dn(e,t){return un.has(t.toLowerCase())?e.hasAttribute(t):e.getAttribute(t)}const mn={id:e=>e.id,classname:e=>e.className,class:e=>e.className,tagname:e=>e.tagName.toLowerCase(),innertext:e=>e.textContent?.trim(),innerHTML:e=>e.innerHTML,outerhtml:e=>e.outerHTML,value:e=>"value"in e?e.value:void 0,checked:e=>function(e){return null!==e&&"object"==typeof e&&"tagName"in e&&"INPUT"===e.tagName}(e)?e.checked:void 0,disabled:e=>"disabled"in e?e.disabled:void 0,selected:e=>function(e){return null!=e&&"object"==typeof e&&"tagName"in e&&"OPTION"===e.tagName}(e)?e.selected:void 0,tabindex:e=>on(e)?e.tabIndex:void 0,hidden:e=>on(e)?e.hidden:void 0,style:e=>getComputedStyle(e),children:e=>Array.from(e.children),parent:e=>e.parentElement,firstchild:e=>e.firstElementChild,lastchild:e=>e.lastElementChild,nextsibling:e=>e.nextElementSibling,previoussibling:e=>e.previousElementSibling,next:e=>e.nextElementSibling,previous:e=>e.previousElementSibling,values:e=>function(e){if(e instanceof HTMLFormElement)return new FormData(e);const t=new FormData;return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e.getAttribute("name");r&&"value"in e&&t.append(r,e.value)}),t}(e)};function pn(e,t){if(t.startsWith("*"))return function(e,t){if(!cn(e))return;if(t.startsWith("computed-"))return getComputedStyle(e).getPropertyValue(t.slice(9))||"";const r=t.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());return e.style[r]}(e,t.slice(1));if(t.startsWith("computed-")){const r=t.slice(9);return cn(e)?getComputedStyle(e).getPropertyValue(r):void 0}if(t.startsWith("@"))return dn(e,t.slice(1));const r=mn[t.toLowerCase()];if(r)return r(e);if(function(e,t){return e.hasAttribute(t)}(e,t))return dn(e,t);const n=e[t];return sn(n)?n.bind(e):n}const hn={1:"one",2:"two",3:"three",4:"four",5:"five"};function fn(e,t,r,n){if(e.length!==t){return`${r} requires exactly ${i=t,hn[i]??i+""} argument${1===t?"":"s"}${n?` (${n})`:""}`}var i;return null}function yn(e,t,r,n){return"string"!=typeof e[t]?`${r} ${n||"argument "+(t+1)} must be a string`:null}function gn(e,t,r){return fn(e,1,t,r)??yn(e,0,t,r)}function vn(e,t){return fn(e,2,t,"left, right")}function bn(){return null}function wn(e,t,r,n){return e.length>t?`${r} expression takes at most ${1===t?"one":t+""} argument${1===t?"":"s"}${n?` (${n})`:""}`:null}function kn(e,t,r,n,i){return t>e.length||e.length>r?`${n} requires ${t}-${r} arguments${i?` (${i})`:""}`:null}const En={conversions:{dynamicResolvers:[]}},xn={Array:e=>Array.isArray(e)?e:e instanceof NodeList?Array.from(e):null==e?[]:[e],String:e=>null==e?"":tn(e)?e:an(e)?JSON.stringify(e):e+"",Boolean:e=>{if(nn(e))return e;if(null==e)return!1;if(tn(e)){const t=e.toLowerCase().trim();return"false"!==t&&"0"!==t&&""!==t}return rn(e)?0!==e&&!isNaN(e):!!e},Number:e=>{if(rn(e))return e;if(null==e)return 0;const t=Number(e);return isNaN(t)?0:t},Math:e=>{if(rn(e))return e;if(null==e)return 0;const t=(e+"").trim();if(!t)return 0;try{return function(e){if(e=e.replace(/\s/g,""),!/^[0-9+\-*/().]+$/.test(e))throw Error("Invalid characters in math expression");try{const t=Function(`"use strict"; return (${e})`)();if(!rn(t)||!isFinite(t))throw Error("Expression did not evaluate to a finite number");return t}catch(e){throw Error("Math expression evaluation failed: "+(e instanceof Error?e.message:e+""))}}(t)}catch(e){return console.warn("Math conversion failed:",e),0}},Int:e=>{const t=xn.Number(e);return Math.trunc(t)},Float:e=>{const t=xn.Number(e);return parseFloat(""+t)},Date:e=>{if(e instanceof Date)return e;if(null==e)return new Date(NaN);if(tn(e)&&/^\d{4}-\d{2}-\d{2}$/.test(e)){const[t,r,n]=e.split("-").map(Number);return new Date(t,r-1,n)}return new Date(e)},JSON:e=>{if(!tn(e))return e;try{return JSON.parse(e)}catch{return e}},JSONString:e=>{try{return JSON.stringify(e)}catch{return"{}"}},Object:e=>{if(an(e))return e;if(tn(e))try{return JSON.parse(e)}catch(e){return{}}return{}},Fragment:e=>{const t=document.createDocumentFragment(),r=Array.isArray(e)||e instanceof NodeList?Array.from(e):[e];for(const e of r)if(e instanceof Node)t.append(e);else{const r=document.createElement("template");r.innerHTML=null==e?"":e+"",t.append(r.content)}return t},HTML:e=>tn(e)?e:e instanceof NodeList?Array.from(e).map(e=>e instanceof Element?e.outerHTML:e.textContent||"").join(""):Array.isArray(e)?e.map(e=>e instanceof Element?e.outerHTML:xn.String(e)).join(""):e instanceof Element?e.outerHTML:xn.String(e),Values:(e,t)=>{if(e instanceof HTMLFormElement)return function(e){const t={};return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e;if(r.name){const e=An(r);void 0!==e&&(void 0!==t[r.name]?(Array.isArray(t[r.name])||(t[r.name]=[t[r.name]]),t[r.name].push(e)):t[r.name]=e)}}),t}(e);if(e instanceof HTMLElement){const t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(e=>{e.name&&(r[e.name]=An(e))}),r}return{}},FormEncoded:(e,t)=>{const r=e instanceof HTMLElement?xn.Values(e,t):e;if(!an(r))return"";const n=new URLSearchParams;for(const[e,t]of Object.entries(r))if(null!=t)if(Array.isArray(t))for(const r of t)n.append(e,r+"");else n.append(e,t+"");return""+n},Set:e=>new Set(e),Map:e=>new Map(Object.entries(e??{})),Keys:e=>e instanceof Map?Array.from(e.keys()):Object.keys(e??{}),Entries:e=>e instanceof Map?Array.from(e.entries()):Object.entries(e??{}),Reversed:e=>Array.from(e).reverse(),Unique:e=>[...new Set(e)],Flat:e=>Array.from(e).flat(),"Values:Form":(e,t)=>{const r=xn.Values(e,t);return xn.FormEncoded(r,t)},"Values:JSON":(e,t)=>{const r=xn.Values(e,t);return JSON.stringify(r)}};function An(e){if(e instanceof HTMLInputElement)switch(e.type){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":case"range":return e.valueAsNumber;case"date":case"datetime-local":return e.valueAsDate;case"file":return e.files;default:return e.value}return e instanceof HTMLSelectElement&&e.multiple?Array.from(e.selectedOptions).map(e=>e.value):e.value}const Cn={boolean:"Boolean",bool:"Boolean",string:"String",str:"String",number:"Number",num:"Number",int:"Int",integer:"Int",float:"Float",array:"Array",object:"Object",obj:"Object",date:"Date",json:"JSON",jsonstring:"JSONString",formencoded:"FormEncoded"};function Sn(e,t,r){if("string"!=typeof t)throw Error("Conversion type must be a string");if(t.startsWith("Fixed")){const{precision:r}=function(e){const t=e.match(/^Fixed(?::(\d+))?$/);return t?{precision:t[1]?parseInt(t[1],10):0}:{}}(t);return xn.Number(e).toFixed(r??0)}if(null==e)return e;let n=xn[t];if(n)return n(e,r);const i=Cn[t.toLowerCase()];if(i&&(n=xn[i],n))return n(e,r);const a=En.conversions[t];if("function"==typeof a)return a(e,r);for(const r of En.conversions.dynamicResolvers){const n=r(t,e);if(void 0!==n)return n}return console.warn("Unknown conversion type: "+t),e}const Tn={as:{name:"as",category:"Conversion",evaluatesTo:"Any",precedence:20,associativity:"Left",operators:["as"],async evaluate(e,...t){const[r,n]=t;return Sn(r,n,e)},validate:e=>fn(e,2,"as","value, type")??yn(e,1,"as","conversion type")},is:{name:"is",category:"Conversion",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is a","is an"],async evaluate(e,...t){const[r,n]=t;if(!tn(n))throw Error("Type check requires a string type");switch(n.toLowerCase()){case"null":return null===r;case"undefined":return void 0===r;case"string":return tn(r);case"number":return rn(r)&&!isNaN(r);case"boolean":return nn(r);case"object":return an(r);case"array":return Array.isArray(r);case"function":return sn(r);case"date":return r instanceof Date;case"element":return r instanceof Element;case"node":return r instanceof Node;case"nodelist":return r instanceof NodeList;case"empty":return null==r||""===r||Array.isArray(r)&&0===r.length||an(r)&&0===Object.keys(r).length;default:return r?.constructor?.name?.toLowerCase()===n.toLowerCase()}},validate:e=>fn(e,2,"is","value, type")??yn(e,1,"is","type")},async:{name:"async",category:"Conversion",evaluatesTo:"Any",precedence:25,associativity:"Right",operators:["async"],evaluate:async(e,t)=>t,validate:e=>fn(e,1,"async","expression")}},On={name:"me",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me??null,validate:bn},Ln={name:"you",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.you??null,validate:bn},jn={name:"it",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it??e.result,validate:bn},qn={name:"its",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it??e.result,validate:bn},Pn={name:"result",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.result??e.it,validate:bn},Nn={name:"querySelector",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("querySelector requires a string selector");return document.querySelector(r)},validate:e=>gn(e,"querySelector","selector")},Rn={name:"querySelectorAll",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("querySelectorAll requires a string selector");const n=document.querySelectorAll(r);return Array.from(n)},validate:e=>gn(e,"querySelectorAll","selector")},In={name:"getElementById",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("getElementById requires a string ID");return document.getElementById(r)},validate:e=>gn(e,"getElementById","ID")};function Mn(e,t){if(t.startsWith("computed-")){const r=t.substring(9);return getComputedStyle(e).getPropertyValue(r)||""}const r=t.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());return e.style[r]}const $n={me:On,you:Ln,it:jn,its:qn,result:Pn,querySelector:Nn,querySelectorAll:Rn,getElementById:In,getElementsByClassName:{name:"getElementsByClassName",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("getElementsByClassName requires a string class name");const n=document.getElementsByClassName(r);return Array.from(n)},validate:e=>gn(e,"getElementsByClassName","className")},closest:{name:"closest",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){let r=t[0];if(r&&"object"==typeof r&&"type"in r){const e=r;"identifier"===e.type&&e.name?r=e.name:"literal"===e.type&&"string"==typeof e.value&&(r=e.value)}if("string"!=typeof r)throw Error("closest requires a string selector");const n=t.length>1?t[1]:e.me;return n instanceof Element?n.closest(r):null},validate(e){if(1!==e.length&&2!==e.length)return"closest requires a selector and, optionally, the element to start from";const t=e[0];return"string"==typeof t||t&&"object"==typeof t&&"type"in t&&("identifier"===t.type||"literal"===t.type)?null:"closest selector must be a string or identifier"}},parent:{name:"parent",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me?e.me.parentElement:null,validate:bn},window:{name:"window",category:"Reference",evaluatesTo:"Object",evaluate:async e=>window,validate:bn},document:{name:"document",category:"Reference",evaluatesTo:"Object",evaluate:async e=>document,validate:bn},elementWithSelector:{name:"elementWithSelector",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("Selector must be a string");const n=e?.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!n)throw Error("DOM not available - cannot resolve element selector");const i=n.querySelectorAll(r);return Array.from(i)},validate:e=>gn(e,"elementWithSelector","selector")},styleRef:{name:"styleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r)throw Error("StyleRef requires a string property name");const i=n||e.me;if(i&&i instanceof HTMLElement)return Mn(i,r)},validate:e=>kn(e,1,2,"styleRef","property, optional element")??yn(e,0,"styleRef","property")??(2===e.length&&e[1]&&"object"!=typeof e[1]?"styleRef element must be an HTMLElement":null)},possessiveStyleRef:{name:"possessiveStyleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r||"string"!=typeof n)throw Error("Possessive styleRef requires possessor and property strings");let i=null;if("my"===r&&e.me?i=e.me instanceof HTMLElement?e.me:null:"its"===r&&e.it&&(i=e.it instanceof HTMLElement?e.it:null),i)return Mn(i,n)},validate:e=>fn(e,2,"possessiveStyleRef","possessor, property")??yn(e,0,"possessiveStyleRef","possessor")??yn(e,1,"possessiveStyleRef","property")},ofStyleRef:{name:"ofStyleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r||"string"!=typeof n)throw Error("Of styleRef requires property and reference strings");let i=null;if("me"===n&&e.me?i=e.me instanceof HTMLElement?e.me:null:"it"===n&&e.it&&(i=e.it instanceof HTMLElement?e.it:null),i)return Mn(i,r)},validate:e=>fn(e,2,"ofStyleRef","property, reference")??yn(e,0,"ofStyleRef","property")??yn(e,1,"ofStyleRef","reference")}};function _n(e,t,r,n=[]){return{type:e,message:t,suggestions:n,...r&&{path:r}}}const zn="undefined"!=typeof process&&"production"===process.env.NODE_ENV||"undefined"!=typeof process&&"true"===process.env.HYPERFIXI_SKIP_VALIDATION||"undefined"!=typeof globalThis&&"true"===globalThis.HYPERFIXI_SKIP_VALIDATION;let Vn;function Hn(){return Vn({validate:e=>({success:!0,data:e})})}function Wn(e,t){if(zn)return Hn();const r=Vn({validate:r=>{if("object"!=typeof r||null===r||Array.isArray(r))return{success:!1,error:_n("type-mismatch","Expected object, received "+typeof r)};const n=r,i={};if(t?.strict){const t=Object.keys(e),r=Object.keys(n).filter(e=>!t.includes(e));if(r.length>0)return{success:!1,error:_n("runtime-error","Unexpected properties: "+r.join(", "))}}for(const[t,r]of Object.entries(e)){const e=n[t];if(!(t in n)&&!r._isOptional)return{success:!1,error:_n("missing-argument",`Required field "${t}" is missing`,t)};const a=r.validate(e);if(!a.success)return{success:!1,error:_n("validation-error",a.error.message||`Field "${t}" validation failed`,a.error.path?`${t}.${a.error.path}`:t)};void 0!==a.data&&(i[t]=a.data)}return{success:!0,data:i}}});return r.strict=()=>Wn(e,{strict:!0}),r}Vn=function(e){return e.describe||(e.describe=function(e){return this.description=e,this}),e.safeParse||(e.safeParse=function(e){const t=this.validate(e);return t.success?{success:!0,data:t.data}:{success:!1,error:{errors:t.error?[t.error]:[]}}}),e.parse||(e.parse=function(e){const t=this.validate(e);if(t.success&&void 0!==t.data)return t.data;throw Error(t.error?.message||"Validation failed")}),e.optional||(e.optional=function(){const e=this.validate.bind(this),t={...this,_isOptional:!0,validate:t=>null==t?{success:!0,data:void 0}:e(t)};return Vn(t)}),e.min||(e.min=function(e){const t=this.validate.bind(this),r={...this,validate:r=>{const n=t(r);return n.success&&"string"==typeof n.data&&e>n.data.length?{success:!1,error:_n("runtime-error",`String must be at least ${e} characters long`)}:n}};return Vn(r)}),e.max||(e.max=function(e){const t=this.validate.bind(this),r={...this,validate:r=>{const n=t(r);return n.success&&"string"==typeof n.data&&n.data.length>e?{success:!1,error:_n("runtime-error",`String must be at most ${e} characters long`)}:n}};return Vn(r)}),e.default||(e.default=function(e){const t=this.validate.bind(this),r={...this,_defaultValue:e,_hasDefault:!0,validate:r=>void 0===r?{success:!0,data:e}:t(r)};return Vn(r)}),e.rest||(e.rest=function(e){return this}),e.refine||(e.refine=function(e,t){const r=this.validate.bind(this),n={...this,validate:n=>{const i=r(n);return i.success?e(i.data)?i:{success:!1,error:_n("runtime-error",t||"Refinement validation failed")}:i}};return Vn(n)}),new Proxy(e,{get:(e,t,r)=>t in e||"string"!=typeof t||t.startsWith("_")||"constructor"===t||"validate"===t||"then"===t?Reflect.get(e,t,r):function(...e){return r}})};const Bn=e=>function(e={}){return zn?Hn():Vn({validate:t=>e.optional&&null==t?{success:!0,data:void 0}:"string"!=typeof t?{success:!1,error:_n("type-mismatch","Expected string, received "+typeof t)}:void 0!==e.minLength&&e.minLength>t.length?{success:!1,error:_n("runtime-error",`String must be at least ${e.minLength} characters long`)}:void 0!==e.maxLength&&t.length>e.maxLength?{success:!1,error:_n("runtime-error",`String must be at most ${e.maxLength} characters long`)}:e.pattern&&!e.pattern.test(t)?e.pattern.source.startsWith("^")&&e.pattern.source.endsWith("$")?{success:!1,error:_n("runtime-error",`Expected "${e.pattern.source.slice(1,-1)}", received "${t}"`)}:{success:!1,error:_n("missing-argument","String does not match required pattern")}:{success:!0,data:t},...e.description&&{description:e.description}})}(e||{}),Fn=e=>Wn(e),Dn=e=>function(e){return zn?Hn():Vn({validate:t=>{if(!Array.isArray(t))return{success:!1,error:_n("type-mismatch","Expected array, received "+typeof t)};if(t.length!==e.length)return{success:!1,error:_n("runtime-error",`Expected tuple of length ${e.length}, received length ${t.length}`)};const r=[];for(let n=0;e.length>n;n++){const i=e[n].validate(t[n]);if(!i.success)return{success:!1,error:_n("runtime-error",i.error.message,i.error.path?`${n}.${i.error.path}`:""+n)};r.push(i.data)}return{success:!0,data:r}}})}(e),Un=()=>Hn();class Kn{constructor(e=100,t=5e3){this.maxSize=e,this.ttl=t,this.cache=new Map,this.accessOrder=new Map,this.accessCounter=0}get(e){const t=this.cache.get(e);if(t){if(this.ttl>=Date.now()-t.timestamp)return t.accessCount++,this.accessOrder.set(e,++this.accessCounter),t.result;this.delete(e)}}set(e,t){this.maxSize>this.cache.size||this.cache.has(e)||this.evictLRU(),this.cache.set(e,{result:t,timestamp:Date.now(),accessCount:1}),this.accessOrder.set(e,++this.accessCounter)}delete(e){return this.accessOrder.delete(e),this.cache.delete(e)}clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}size(){return this.cache.size}evictLRU(){let e,t=1/0;for(const[r,n]of this.accessOrder)t>n&&(t=n,e=r);void 0!==e&&this.delete(e)}getStats(){const e=Array.from(this.cache.values()),t=Date.now();return{size:this.cache.size,maxSize:this.maxSize,hitRate:e.length>0?e.filter(e=>e.accessCount>1).length/e.length:0,avgAge:e.length>0?e.reduce((e,r)=>e+(t-r.timestamp),0)/e.length:0,totalAccesses:e.reduce((e,t)=>e+t.accessCount,0)}}}const Zn=new class{constructor(){this.domQueryCache=new Kn(200,3e3),this.exprResultCache=new Kn(500,2e3),this.cssMatchCache=new Kn(100,5e3),this.formValueCache=new Kn(50,1e3),this.hits=0,this.misses=0}querySelector(e){const t="querySelector:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=document.querySelector(e);return this.domQueryCache.set(t,n),n}querySelectorAll(e){const t="querySelectorAll:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=Array.from(document.querySelectorAll(e));return this.domQueryCache.set(t,n),n}getElementById(e){const t="getElementById:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=document.getElementById(e);return this.domQueryCache.set(t,n),n}getElementsByClassName(e){const t="getElementsByClassName:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=Array.from(document.getElementsByClassName(e));return this.domQueryCache.set(t,n),n}matches(e,t){const r=`matches:${this.getElementCacheKey(e)}:${t}`,n=this.cssMatchCache.get(r);if(void 0!==n)return this.hits++,n;this.misses++;const i=e.matches(t);return this.cssMatchCache.set(r,i),i}getExpressionResult(e){const t=this.exprResultCache.get(e);if(void 0!==t)return this.hits++,t;this.misses++}setExpressionResult(e,t){this.exprResultCache.set(e,t)}getFormValue(e){const t=this.getElementCacheKey(e),r=this.formValueCache.get("formValue:"+t);if(void 0!==r)return this.hits++,r;this.misses++}setFormValue(e,t){const r=this.getElementCacheKey(e);this.formValueCache.set("formValue:"+r,t)}invalidateElementCache(e){const t=this.getElementCacheKey(e);for(const e of[this.domQueryCache,this.cssMatchCache,this.formValueCache])for(const r of Array.from(e.cache.keys()))"string"==typeof r&&r.includes(t)&&e.delete(r)}invalidateAll(){this.domQueryCache.clear(),this.exprResultCache.clear(),this.cssMatchCache.clear(),this.formValueCache.clear(),this.hits=0,this.misses=0}getElementCacheKey(e){if(e.id)return"#"+e.id;const t=Array.from(e.classList).sort().join("."),r=this.getElementPosition(e);return`${e.tagName.toLowerCase()}${t?"."+t:""}@${r}`}getElementPosition(e){return""+Array.from(e.parentElement?.children||[]).indexOf(e)}getPerformanceStats(){const e=this.hits+this.misses;return{hits:this.hits,misses:this.misses,hitRate:Math.round(100*(e>0?this.hits/e*100:0))/100,domQueryCache:this.domQueryCache.getStats(),exprResultCache:this.exprResultCache.getStats(),cssMatchCache:this.cssMatchCache.getStats(),formValueCache:this.formValueCache.getStats()}}cleanup(){const e=Date.now();[this.domQueryCache,this.exprResultCache,this.cssMatchCache,this.formValueCache].forEach(t=>{Array.from(t.cache.entries()).forEach(([r,n])=>{e-n.timestamp>t.ttl&&t.delete(r)})})}};"undefined"!=typeof window&&setInterval(()=>{Zn.cleanup()},1e4);const Yn=new class{constructor(){this.metrics={tokenizationTime:0,evaluationTime:0,cacheHitRate:0,memoryUsage:0,domOperations:0},this.startTimes=new Map}startTimer(e){this.startTimes.set(e,performance.now())}endTimer(e){const t=this.startTimes.get(e);if(t){const r=performance.now()-t;return this.startTimes.delete(e),r}return 0}recordTokenization(e){this.metrics.tokenizationTime+=e}recordEvaluation(e){this.metrics.evaluationTime+=e}updateCacheMetrics(){const e=Zn.getPerformanceStats();this.metrics.cacheHitRate=e.hitRate}getMetrics(){return this.updateCacheMetrics(),{...this.metrics}}reset(){this.metrics={tokenizationTime:0,evaluationTime:0,cacheHitRate:0,memoryUsage:0,domOperations:0}}};function Jn(){Zn.cleanup(),Yn.getMetrics().memoryUsage>52428800&&Yn.reset()}let Gn=null;function Qn(e,t){if("number"==typeof e){if(!Number.isFinite(e))throw Error(`${t} must be a finite number, got ${e}`);return e}if("string"==typeof e){const r=e.trim();if(""===r)return 0;const n=parseFloat(r);if(isNaN(n))throw Error(`${t} cannot be converted to number: "${e}"`);return n}if("boolean"==typeof e)return e?1:0;if(null==e)return 0;if("object"==typeof e&&null!==e){if(Array.isArray(e)&&1===e.length){const r=e[0];if(Array.isArray(r))throw Error(t+" is a nested array, cannot convert to number");return Qn(r,t)}if("string"==typeof e.textContent||"value"in e){const t=e.value??e.textContent;if(null!=t){const e=(t+"").trim();if(""===e)return 0;const r=parseFloat(e);if(!isNaN(r))return r}}const r=e.valueOf();if("number"==typeof r&&Number.isFinite(r))return r}throw Error(`${t} cannot be converted to number: ${typeof e}`)}function Xn(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e){const t=e.trim();if(""===t)return 0;const r=parseFloat(t);return isNaN(r)?null:r}return"boolean"==typeof e?e?1:0:null==e?0:null}function ei(e,t){if(!Number.isFinite(e)){if(Number.isNaN(e))throw Error(t+" resulted in non-finite value: NaN");throw Error(`${t} resulted in non-finite value: ${e>0?"Infinity":"-Infinity"}`)}return e}function ti(e){try{return Qn(e,"_"),!0}catch{return!1}}function ri(e,t,r){if("==="===r)return e===t;if("!=="===r)return e!==t;if(null==e||null==t)return function(e,t,r){if(null==e&&null==t)switch(r){case"==":case">=":case"<=":return!0;default:return!1}switch(r){case"==":case">":case"<":case">=":case"<=":default:return!1;case"!=":return!0}}(e,t,r);const[n,i]=function(e,t){if("number"==typeof e&&"number"==typeof t)return[e,t];if("string"==typeof e&&"string"==typeof t){const r=parseFloat(e),n=parseFloat(t);return isNaN(r)||isNaN(n)?[e,t]:[r,n]}const r=Xn(e),n=Xn(t);return null!==r&&null!==n?[r,n]:[e+"",t+""]}(e,t);switch(r){case">":return n>i;case"<":return i>n;case">=":return n>=i;case"<=":return i>=n;case"==":return ni(e,t);case"!=":return!ni(e,t);default:return!1}}function ni(e,t){if(e===t)return!0;if(typeof e==typeof t)return("string"==typeof e||"number"==typeof e)&&e===t;if("number"==typeof e&&"string"==typeof t){const r=parseFloat(t);return!isNaN(r)&&e===r}if("string"==typeof e&&"number"==typeof t){const r=parseFloat(e);return!isNaN(r)&&r===t}return"boolean"==typeof e?ni(e?1:0,t):"boolean"==typeof t?ni(e,t?1:0):e+""==t+""}function ii(e,t=[]){return{isValid:!1,errors:e,suggestions:t}}function ai(e,t,r=[],n="error"){return{type:e,message:t,suggestions:r,severity:n}}function si(e,t,r,n,i,a=!0,s){return n}function oi(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType}"undefined"!=typeof window&&function(e=3e4){Gn&&clearInterval(Gn),Gn=setInterval(Jn,e)}();const li=Dn([Un(),Un()]),ci=Dn([Un(),Bn()]),ui={name:"equals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is","==","equals"],async evaluate(e,t,r){try{return si(0,0,0,t==r)}catch(e){throw e}},validate:e=>vn(e,"equals"),inputSchema:li,metadata:{category:"Logical",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"value is 5",description:"Check if value equals 5 using loose equality",expectedOutput:!0,context:{result:5}},{input:'"5" == 5',description:'String "5" equals number 5 with type coercion',expectedOutput:!0}],relatedExpressions:["strictEquals","notEquals"],performance:{averageTime:.001,complexity:"O(1)"}}},di={name:"strictEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["==="],evaluate:async(e,t,r)=>t===r,validate:e=>vn(e,"strictEquals")},mi={name:"notEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["!=","is not","does not equal"],evaluate:async(e,t,r)=>t!=r,validate:e=>vn(e,"notEquals")},pi={name:"strictNotEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["!=="],evaluate:async(e,t,r)=>t!==r,validate:e=>vn(e,"strictNotEquals")},hi={name:"lessThan",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:["<","is less than"],evaluate:async(e,t,r)=>ri(t,r,"<"),validate:e=>vn(e,"lessThan")},fi={name:"lessThanOrEqual",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:["<=","is less than or equal to"],evaluate:async(e,t,r)=>ri(t,r,"<="),validate:e=>vn(e,"lessThanOrEqual")},yi={name:"greaterThan",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:[">","is greater than"],evaluate:async(e,t,r)=>ri(t,r,">"),validate:e=>vn(e,"greaterThan")},gi={name:"greaterThanOrEqual",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:[">=","is greater than or equal to"],evaluate:async(e,t,r)=>ri(t,r,">="),validate:e=>vn(e,"greaterThanOrEqual")},vi={name:"and",category:"Logical",evaluatesTo:"Boolean",precedence:6,associativity:"Left",operators:["and","&&"],async evaluate(e,t,r){try{return si(0,0,0,t&&r)}catch(e){throw e}},validate:e=>vn(e,"and"),inputSchema:li,metadata:{category:"Logical",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"true and false",description:"Logical AND of boolean values",expectedOutput:!1},{input:"name and age",description:"Both name and age must be truthy",expectedOutput:!0,context:{variables:new Map([["name","John"],["age",25]])}}],relatedExpressions:["or","not"],performance:{averageTime:.001,complexity:"O(1)"}}},bi={name:"or",category:"Logical",evaluatesTo:"Boolean",precedence:5,associativity:"Left",operators:["or","||"],evaluate:async(e,t,r)=>t||r,validate:e=>vn(e,"or")},wi={name:"not",category:"Logical",evaluatesTo:"Boolean",precedence:15,associativity:"Right",operators:["not","!"],evaluate:async(e,t)=>!t,validate:e=>fn(e,1,"not","operand")},ki={name:"isEmpty",category:"Logical",evaluatesTo:"Boolean",operators:["is empty","isEmpty"],async evaluate(e,t){let r;return r=null==t||(tn(t)||Array.isArray(t)||t instanceof NodeList?0===t.length:!(t instanceof Node||t instanceof Element||!an(t)||0!==t.length)),r},validate:e=>fn(e,1,"isEmpty","value")},Ei={name:"no",category:"Logical",evaluatesTo:"Boolean",operators:["no"],async evaluate(e,t){let r;return r=null==t||!1===t||(Array.isArray(t)||t instanceof NodeList?0===t.length:(tn(t),!1)),r},validate:e=>fn(e,1,"no","value")},xi={name:"isNotEmpty",category:"Logical",evaluatesTo:"Boolean",operators:["is not empty","isNotEmpty"],evaluate:async(e,t)=>!await ki.evaluate(e,t),validate:e=>fn(e,1,"isNotEmpty","value")},Ai={name:"exists",category:"Logical",evaluatesTo:"Boolean",operators:["exists"],evaluate:async(e,t)=>Ci(t),validate:e=>fn(e,1,"exists","value")};function Ci(e){return null!=e&&(Array.isArray(e)?e.length>0:!("undefined"!=typeof NodeList&&e instanceof NodeList)||e.length>0)}const Si={name:"doesNotExist",category:"Logical",evaluatesTo:"Boolean",operators:["does not exist","doesNotExist"],evaluate:async(e,t)=>!Ci(t),validate:e=>fn(e,1,"doesNotExist","value")},Ti={name:"contains",category:"Logical",evaluatesTo:"Boolean",operators:["contains","includes","include"],async evaluate(e,t,r){let n;if(t&&r){if(oi(t)&&oi(r))return n=t.contains(r),n;if(tn(t)&&t.match(/^[.#][\w-]+$/)){const e=document.querySelector(t);if(e&&oi(r))return n=e.contains(r),n;if(e&&tn(r)&&r.match(/^[.#][\w-]+$/)){const t=document.querySelector(r);return n=!!t&&e.contains(t),n}}if(tn(r)&&r.match(/^[.#][\w-]+$/)&&oi(t)){const e=document.querySelector(r);return n=!!e&&t.contains(e),n}}if(tn(t)&&tn(r))n=t.includes(r);else if(Array.isArray(t)||"undefined"!=typeof NodeList&&t instanceof NodeList){const e=Array.from(t);n=e.includes(r)||r instanceof Node&&e.some(e=>e instanceof Node&&e.contains(r))}else n=!(!an(t)||!tn(r))&&r in t;return n},validate:e=>fn(e,2,"contains","container, value")},Oi={name:"doesNotContain",category:"Logical",evaluatesTo:"Boolean",operators:["does not contain","doesNotContain","does not include","doesNotInclude"],evaluate:async(e,t,r)=>!await Ti.evaluate(e,t,r),validate:e=>fn(e,2,"doesNotContain","container, value")},Li={name:"startsWith",category:"Logical",evaluatesTo:"Boolean",operators:["starts with","startsWith"],evaluate:async(e,t,r)=>null!=t&&null!=r&&(t+"").startsWith(r+""),validate:e=>fn(e,2,"startsWith","str, prefix")},ji={name:"endsWith",category:"Logical",evaluatesTo:"Boolean",operators:["ends with","endsWith"],evaluate:async(e,t,r)=>null!=t&&null!=r&&(t+"").endsWith(r+""),validate:e=>fn(e,2,"endsWith","str, suffix")},qi={name:"between",category:"Logical",evaluatesTo:"Boolean",operators:["is between","between"],async evaluate(e,t,r,n){let i=r,a=n;if(null!=i&&null!=a&&i>a){const e=i;i=a,a=e}return null!=i&&null!=a&&t>=i&&a>=t},validate:e=>fn(e,3,"between","value, min, max")},Pi={name:"matches",category:"Logical",evaluatesTo:"Boolean",operators:["matches"],async evaluate(e,t,r){try{let e;if(t instanceof Element&&tn(r)){const n=r;if(n.startsWith(".")||n.startsWith("#")||n.startsWith(":")||n.startsWith("[")||/^[a-zA-Z][\w-]*$/.test(n))try{e=function(e,t){return Zn.matches(e,t)}(t,n)}catch(t){e=!1}else e=!1}else if(tn(t)&&tn(r)){const n=t,i=r;try{e=(i.startsWith("/")&&i.endsWith("/")?RegExp(i.slice(1,-1)):RegExp(i)).test(n)}catch(t){e=n.includes(i)}}else e=!1;return si(0,0,0,e)}catch(e){throw e}},validate:e=>fn(e,2,"matches","element, selector"),inputSchema:ci,metadata:{category:"Logical",complexity:"medium",sideEffects:["dom-query"],dependencies:[],returnTypes:["Boolean"],examples:[{input:'element matches ".active"',description:"Check if element has active class",expectedOutput:!0},{input:'text matches "/^hello/"',description:'Check if text starts with "hello" using regex',expectedOutput:!0,context:{variables:new Map([["text","hello world"]])}}],relatedExpressions:["contains","startsWith","endsWith"],performance:{averageTime:.5,complexity:"O(n)"}}},Ni={name:"has",category:"Logical",evaluatesTo:"Boolean",operators:["has","have"],async evaluate(e,t,r){let n=!1;if(t instanceof Element&&tn(r)){const e=r;e.startsWith(".")?n=t.classList.contains(e.slice(1)):e.startsWith("[")&&e.endsWith("]")&&(n=t.hasAttribute(e.slice(1,-1)))}return n},validate:e=>fn(e,2,"has","element, selector")},Ri={name:"doesNotHave",category:"Logical",evaluatesTo:"Boolean",operators:["does not have"],evaluate:async(e,t,r)=>!await Ni.evaluate(e,t,r),validate:e=>fn(e,2,"doesNotHave","element, selector")},Ii={equals:ui,strictEquals:di,notEquals:mi,strictNotEquals:pi,lessThan:hi,lessThanOrEqual:fi,greaterThan:yi,greaterThanOrEqual:gi,and:vi,or:bi,not:wi,no:Ei,isEmpty:ki,isNotEmpty:xi,exists:Ai,doesNotExist:Si,contains:Ti,doesNotContain:Oi,startsWith:Li,endsWith:ji,between:qi,matches:Pi,has:Ni,doesNotHave:Ri},Mi=new Set(["__proto__","constructor","prototype"]);function $i(e,t){if(e instanceof Element)return pn(e,t);if(an(e)){if(Mi.has(t))return;return e[t]}return e[t]}function _i(e){let t;if(Array.isArray(e))t=e;else{if(!("undefined"!=typeof NodeList&&e instanceof NodeList||"undefined"!=typeof HTMLCollection&&e instanceof HTMLCollection))return!1;t=Array.from(e)}return 0!==t.length&&t.every(e=>e instanceof Element||null!=e&&"object"==typeof e&&e.constructor!==Object&&!Array.isArray(e))}const zi={possessive:{name:"possessive",category:"Reference",evaluatesTo:"Any",operators:["'s","s"],async evaluate(e,...t){const[r,n]=t;if(null!=r){if("string"!=typeof n)throw Error("Property name must be a string");return _i(r)&&!(n in r)?Array.from(r,e=>$i(e,n)):$i(r,n)}},validate:e=>fn(e,2,"possessive","element, property")??yn(e,1,"possessive","property name")},my:{name:"my",category:"Reference",evaluatesTo:"Any",operators:["my"],async evaluate(e,...t){const[r]=t;if(e.me){if("string"!=typeof r)throw Error("Property name must be a string");if(e.me instanceof Element)return pn(e.me,r);if(an(e.me)){if(Mi.has(r))return;return e.me[r]}return e.me[r]}},validate:e=>gn(e,"my","property")},its:{name:"its",category:"Reference",evaluatesTo:"Any",operators:["its"],async evaluate(e,...t){const[r]=t;if(null==e.it)return;if("string"!=typeof r)throw Error("Property name must be a string");const n=e.it;if(n instanceof Element)return pn(n,r);if(an(n)){if(Mi.has(r))return;return n[r]}return n[r]},validate:e=>gn(e,"its","property")},your:{name:"your",category:"Reference",evaluatesTo:"Any",operators:["your"],async evaluate(e,...t){const[r]=t;if(e.you){if("string"!=typeof r)throw Error("Property name must be a string");if(e.you instanceof Element)return pn(e.you,r);if(an(e.you)){if(Mi.has(r))return;return e.you[r]}return e.you[r]}},validate:e=>gn(e,"your","property")},of:{name:"of",category:"Reference",evaluatesTo:"Any",operators:["of"],async evaluate(e,...t){const[r,n]=t;if(null!=n){if("string"!=typeof r)throw Error("Property name must be a string");if(n instanceof Element)return pn(n,r);if(an(n)){if(Mi.has(r))return;return n[r]}return n[r]}},validate:e=>fn(e,2,"of","property, object")??yn(e,0,"of","property name")},attribute:{name:"attribute",category:"Reference",evaluatesTo:"String",operators:["@"],async evaluate(e,...t){const[r,n]=t;if("string"!=typeof r)throw Error("Attribute name must be a string");const i=n||e.me;return i&&i instanceof Element?i.getAttribute(r):null},validate:e=>kn(e,1,2,"attribute","attributeName, optional element")??yn(e,0,"attribute","attribute name")??(2>e.length||null==e[1]||e[1]instanceof Element?null:"attribute element must be an Element")},attributeWithValue:{name:"attributeWithValue",category:"Reference",evaluatesTo:"Boolean",operators:["@="],async evaluate(e,...t){const[r,n,i]=t;if("string"!=typeof r)throw Error("Attribute name must be a string");if("string"!=typeof n)throw Error("Expected value must be a string");const a=i||e.me;return!!(a&&a instanceof Element)&&a.getAttribute(r)===n},validate:e=>kn(e,2,3,"attributeWithValue","attributeName, expectedValue, optional element")??yn(e,0,"attributeWithValue","attribute name")??yn(e,1,"attributeWithValue","expected value")??(3>e.length||null==e[2]||e[2]instanceof Element?null:"attributeWithValue element must be an Element")},classReference:{name:"classReference",category:"Reference",evaluatesTo:"Array",operators:["."],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("Class name must be a string");const n=r.startsWith(".")?r.slice(1):r,i=document.getElementsByClassName(n);return Array.from(i)},validate:e=>gn(e,"classReference","className")},idReference:{name:"idReference",category:"Reference",evaluatesTo:"Element",operators:["#"],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("ID value must be a string");const n=r.startsWith("#")?r.slice(1):r;return document.getElementById(n)},validate:e=>gn(e,"idReference","idValue")}};function Vi(e){return Array.isArray(e)?e:null==e?[]:"string"==typeof e?[e]:e instanceof NodeList||e instanceof HTMLCollection||"number"==typeof e.length?Array.from(e):[e]}function Hi(e,t){const r=e.registry?.get(t);if(!r)throw Error(`Expression '${t}' not in ExecutionContext.registry. The bundle's ExpressionRegistry must include this expression's category. Use createExpressionRegistry() with the relevant category objects (referencesExpressions, logicalExpressions, conversionExpressions, positionalExpressions, propertiesExpressions, specialExpressions, mathematicalExpressions).`);return r}function Wi(e){if(e&&"object"==typeof e&&"success"in e){if(e.success)return"value"in e?e.value:void 0;const t=e.errors||[];throw Error(t.length>0?t[0].message:"Expression evaluation failed")}return e}const Bi=new Set(["literal","string","identifier","selector","attributeAccess","binaryExpression","unaryExpression","callExpression","memberExpression","possessiveExpression","propertyOfExpression","arrayLiteral","objectLiteral","templateLiteral","asExpression","betweenExpression","typeCheckExpression","collectionExpression","conditionalExpression","stringPostfix","blockLiteral","propertyAccess","contextReference","eventHandler"]);async function Fi(e,t){switch(e.type){case"literal":return function(e){return e.value}(e);case"identifier":return Xi(e,t);case"binaryExpression":return async function(e,t){const r=e.operator,n=e.right,i=e.left;if("="===r){const r=await Di(e.right,t);if("identifier"===i?.type&&"string"==typeof i.name){const e=i.name;return e.startsWith("$")?je(t,e.slice(1),r):"global"===i.scope?je(t,e,r):"element"===i.scope?Rr(t,e,r):(t.locals||(t.locals=new Map),t.locals.set(e,r)),r}throw Error(`Assignment target must be a variable identifier (got '${i?.type??"undefined"}')`)}if("has"===r||"have"===r){const r=await Di(e.left,t);return!!(r instanceof Element&&"selector"===n.type&&"string"==typeof n.value&&n.value.startsWith("."))&&r.classList.contains(n.value.slice(1))}if("in"===r||"is in"===r){const n="callExpression"===i?.type&&"identifier"===i.callee?.type?i.callee.name:null;if(("first"===n||"last"===n)&&Array.isArray(i.arguments)){const r=i.arguments[0];if("selector"===r?.type&&"string"==typeof r.value){const i=await Di(e.right,t);if(i&&"function"==typeof i.querySelectorAll){const e=Array.from(i.querySelectorAll(r.value));return 0===e.length?null:"first"===n?e[0]:e[e.length-1]}}}if("selector"===i?.type&&"string"==typeof i.value&&(i.fromQuery||"in"===r&&i.value.startsWith("."))){const r=await Di(e.right,t),n=r&&"function"==typeof r.querySelectorAll?r:null;if(n){const e=i.fromQuery?i.value:ha(i,i.value);return Array.from(n.querySelectorAll(e))}}}if("of"===r&&"selector"===i?.type&&"string"==typeof i.value&&/^\*[a-zA-Z][\w-]*$/.test(i.value)){const r=await Di(e.right,t);return Hi(t,"styleRef").evaluate(t,i.value.slice(1),r)}if("of"===r){if("attributeAccess"===i?.type){const r=await Di(e.right,t);if(null==r)return;return Hi(t,"possessive").evaluate(t,r,"@"+i.attributeName)}const r=ea(e.left);if(r){const n=await Di(e.right,t);let i=n;for(const e of r){if(null==i)return;i=!_i(i)||e in i?ln(i)?pn(i,e):i[e]:await Hi(t,"possessive").evaluate(t,i,e)}return"function"==typeof i?i.bind(n):i}}const a=await Di(e.left,t);if("and"===r){if(!a)return a;const r=await Di(e.right,t);return Hi(t,"and").evaluate(t,a,r)}if("or"===r){if(a)return a;const r=await Di(e.right,t);return Hi(t,"or").evaluate(t,a,r)}const s=await Di(e.right,t),o=e=>"string"==typeof e?e.toLowerCase():e,l=e.ignoringCase?o(a):a,c=e.ignoringCase?o(s):s;switch(r){case"+":return e.coerceNumeric?Ur(a)+Dr(s):"string"==typeof a||"string"==typeof s?(a??"")+""+(s??""):Array.isArray(a)?Array.isArray(s)?[...a,...s]:[...a,s]:Wi(await Hi(t,"addition").evaluate(t,{left:a,right:s}));case"-":return e.coerceNumeric?Ur(a)-Dr(s):Wi(await Hi(t,"subtraction").evaluate(t,{left:a,right:s}));case"*":return Wi(await Hi(t,"multiplication").evaluate(t,{left:a,right:s}));case"/":return Wi(await Hi(t,"division").evaluate(t,{left:a,right:s}));case"%":case"mod":return Wi(await Hi(t,"modulo").evaluate(t,{left:a,right:s}));case"^":case"**":return Wi(await Hi(t,"power").evaluate(t,{left:a,right:s}));case">":case"is greater than":return Hi(t,"greaterThan").evaluate(t,a,s);case"<":case"is less than":return Hi(t,"lessThan").evaluate(t,a,s);case">=":case"is greater than or equal to":return Hi(t,"greaterThanOrEqual").evaluate(t,a,s);case"<=":case"is less than or equal to":return Hi(t,"lessThanOrEqual").evaluate(t,a,s);case"==":return Hi(t,"equals").evaluate(t,l,c);case"is":case"am":case"equals":case"is equal":case"is equal to":{const r=na(e,a,s);return void 0!==r?r:Hi(t,"equals").evaluate(t,l,c)}case"!=":return Hi(t,"notEquals").evaluate(t,l,c);case"is not":case"is not equal":case"is not equal to":{const r=na(e,a,s);return void 0!==r?!r:Hi(t,"notEquals").evaluate(t,l,c)}case"===":case"really equals":case"is really":case"is really equal to":return Hi(t,"strictEquals").evaluate(t,l,c);case"!==":case"is not really":case"is not really equal to":return Hi(t,"strictNotEquals").evaluate(t,l,c);case"as":return Hi(t,"as").evaluate(t,a,aa(s));case"contains":case"contain":case"includes":case"include":return Hi(t,"contains").evaluate(t,l,c);case"does not contain":case"do not contain":case"does not contains":case"does not include":return Hi(t,"doesNotContain").evaluate(t,l,c);case"starts with":return Hi(t,"startsWith").evaluate(t,l,c);case"ends with":return Hi(t,"endsWith").evaluate(t,l,c);case"does not start with":return!await Hi(t,"startsWith").evaluate(t,l,c);case"does not end with":return!await Hi(t,"endsWith").evaluate(t,l,c);case"match":case"matches":return Hi(t,"matches").evaluate(t,l,ra(e.right,c));case"does not match":case"do not match":return!await Hi(t,"matches").evaluate(t,l,ra(e.right,c));case"in":case"is in":case"am in":return ta(a,s);case"is not in":case"am not in":return!ta(a,s);case"of":return s&&"object"==typeof s?s[a]:void 0;case"precedes":return ia(a,s,Node.DOCUMENT_POSITION_FOLLOWING);case"does not precede":return!ia(a,s,Node.DOCUMENT_POSITION_FOLLOWING);case"follows":return ia(a,s,Node.DOCUMENT_POSITION_PRECEDING);case"does not follow":return!ia(a,s,Node.DOCUMENT_POSITION_PRECEDING);default:throw Error("Unknown binary operator: "+r)}}(e,t);case"asExpression":return async function(e,t){const r=await Di(e.expression,t),n=aa(e.targetType);return Hi(t,"as").evaluate(t,r,n)}(e,t);case"betweenExpression":return async function(e,t){const r=await Di(e.value,t),n=await Di(e.min,t),i=await Di(e.max,t),a=e=>"string"==typeof e?e.toLowerCase():e,[s,o,l]=e.ignoringCase?[a(r),a(n),a(i)]:[r,n,i],c=await Ii.between.evaluate(t,s,o,l);return e.negated?!c:c}(e,t);case"typeCheckExpression":return async function(e,t){const r=function(e,t,r){if(null==e&&r)return!0;if(Object.prototype.toString.call(e).slice(8,-1)===t)return!0;const n=globalThis[t];return"function"==typeof n&&e instanceof n}(await Di(e.value,t),e.typeName+"",!1!==e.nullOk);return e.negated?!r:r}(e,t);case"collectionExpression":return async function(e,t){const r=await Di(e.collection,t);if(null==r)return r;const n=async(e,r)=>Di(e,{...t,it:r});switch(e.operator){case"where":return async function(e,t,r){const n=Vi(e),i=[];for(const e of n)await r(t,e)&&i.push(e);return i}(r,e.right,n);case"sorted by":return async function(e,t,r,n){const i=[...Vi(e)],a=await Promise.all(i.map(e=>n(t,e))),s=i.map((e,t)=>t);s.sort((e,t)=>{const r=a[e],n=a[t];return r===n?0:null==r?1:null==n||n>r?-1:1});const o=s.map(e=>i[e]);return"desc"===r?o.reverse():o}(r,e.right,e.order??"asc",n);case"mapped to":return async function(e,t,r){const n=Vi(e);return Promise.all(n.map(e=>r(t,e)))}(r,e.right,n);case"split by":return a=await Di(e.right,t),null==(i=r)?[]:(i+"").split(null==a?"":a+"");case"joined by":return function(e,t){const r=null==t?"":t+"";return Vi(e).map(e=>null==e?"":e+"").join(r)}(r,await Di(e.right,t));default:throw Error("Unknown collection operator: "+e.operator)}var i,a}(e,t);case"unaryExpression":return async function(e,t){const r=e.operand??e.argument;if(!r)throw Error(`Unary expression has no operand (operator: ${e.operator})`);const n=await Di(r,t);switch(e.operator){case"not":case"!":return Ii.not.evaluate(t,n);case"beep!":return Vr(t.me,[n]),n;case"no":return Ii.no.evaluate(t,n);case"-":return-n;case"+":return+n;case"exists":case"some":return Ii.exists.evaluate(t,n);case"does not exist":return Ii.doesNotExist.evaluate(t,n);case"is empty":return Ii.isEmpty.evaluate(t,n);case"is not empty":return Ii.isNotEmpty.evaluate(t,n);default:throw Error("Unknown unary operator: "+e.operator)}}(e,t);case"memberExpression":return async function(e,t){const r=await Di(e.object,t);if(e.computed){const n=await Di(e.property,t);return Array.isArray(r)&&"number"==typeof n&&0>n?r[r.length+n]:r?.[n]}return ca(r,e.property.name,t)}(e,t);case"propertyAccess":return async function(e,t){let r=await Di(e.object,t);for(const n of(e.property+"").split(".")){if(null==r)return;r=await ca(r,n,t)}return r}(e,t);case"callExpression":return async function(e,t){const r=await Di(e.callee,t);if(e.isConstructor&&"function"==typeof r)return new r(...await Promise.all(e.arguments.map(e=>Di(e,t))));if("identifier"===e.callee.type){const n=e.callee.name,i=await async function(e,t,r){return ua.has(t)?Promise.all(e.map(e=>"identifier"===e.type&&e.name?e.name:"selector"===e.type&&e.value?e.value:Di(e,r))):Promise.all(e.map(e=>Di(e,r)))}(e.arguments,n,t);switch(n){case"closest":if(e.closestTo){const r=da(await Di(e.closestTo,t))??null;return $n.closest.evaluate(t,i[0],r)}return $n.closest.evaluate(t,...i);case"previous":case"next":{const r=e.relativePositional;if(r){const e=r.from?da(await Di(r.from,t)):t.me,a=r.within?da(await Di(r.within,t)):void 0,s=r.inElt?await Di(r.inElt,t):void 0;return Hi(t,n).evaluate(t,i[0],e,{within:a,inElt:s,inSearch:r.inSearch,wrapping:r.wrapping})}return Hi(t,n).evaluate(t,...i)}case"first":return Hi(t,"first").evaluate(t,...i);case"last":return Hi(t,"last").evaluate(t,...i);default:if("function"==typeof r)return r(...i);throw Error("Cannot call non-function: "+n)}}if("function"==typeof r){const n=await Promise.all(e.arguments.map(e=>Di(e,t)));if("memberExpression"===e.callee.type&&e.callee.object){const i=await Di(e.callee.object,t);return r.apply(i,n)}return r(...n)}throw Error("Cannot call non-function")}(e,t);case"selector":return async function(e,t){let r=e.value;if("string"==typeof r&&!e.fromQuery&&/^\*[a-zA-Z][\w-]*$/.test(r))return $n.styleRef.evaluate(t,r.slice(1));if("string"==typeof r&&e.fromQuery&&/\$[^=]/.test(r)){const{selector:n,elements:i}=await async function(e,t){const r=ya(e),n=await Promise.all(r.filter(e=>"expr"in e).map(e=>Ji(e.expr,t)));return ga(r,n)}(r,t),a=ha(e,n);i.forEach((e,t)=>e.setAttribute("data-hs-query-id",t+""));try{return await $n.elementWithSelector.evaluate(t,a)}finally{i.forEach(e=>e.removeAttribute("data-hs-query-id"))}}"string"==typeof r&&!e.fromQuery&&r.includes("{")&&(r=await function(e,t){return la(e,/\{([^}]*)\}/g,async(e,r)=>(await Ji(r.trim(),t)??"")+"")}(r,t));const n="string"==typeof r?ha(e,r):r;return Gr(await $n.elementWithSelector.evaluate(t,n),r,e.fromQuery)}(e,t);case"contextReference":return async function(e,t){switch(e.contextType){case"me":case"you":case"it":return Hi(t,e.contextType).evaluate(t);case"my":case"myself":case"I":return $n.me.evaluate(t);case"your":case"yourself":return $n.you.evaluate(t);case"its":return $n.it.evaluate(t);case"event":return t.event;case"target":return t.target??t.event?.target??$n.me.evaluate(t);case"body":return"undefined"!=typeof document?document.body:void 0;case"document":return $n.document.evaluate(t);case"window":return $n.window.evaluate(t);default:return}}(e,t);case"possessiveExpression":return async function(e,t){const r=await Di(e.object,t),n=e.property.name;return Hi(t,"possessive").evaluate(t,r,n)}(e,t);case"eventHandler":return async function(e,t){return{event:e.event,selector:e.selector,commands:e.commands,handler:async r=>{const n={...t,event:r,target:r.target,currentTarget:r.currentTarget};for(const t of e.commands)await Di(t,n)}}}(e,t);case"conditionalExpression":return async function(e,t){return await Di(e.test,t)?Di(e.consequent,t):e.alternate?Di(e.alternate,t):void 0}(e,t);case"string":return e.value;case"arrayLiteral":return async function(e,t){const r=[];for(const n of e.elements)r.push(await Di(n,t));return r}(e,t);case"objectLiteral":return async function(e,t){const r={};for(const n of e.properties){const e=n.key;let i;i="identifier"===e.type?e.name:"literal"===e.type&&"string"===e.valueType?e.value:await Di(e,t)+"",r[i]=await Di(n.value,t)}return r}(e,t);case"attributeAccess":return async function(e,t){const r=e.attributeName;return t.me&&t.me instanceof Element?t.me.getAttribute(r):"@"+r}(e,t);case"propertyOfExpression":return async function(e,t){const r=e.property;if("identifier"!==r?.type)throw Error('Property name must be an identifier in "the X of Y" pattern');const n=r.name,i=await Di(e.target,t);return null==i?void 0:Hi(t,"possessive").evaluate(t,i,n)}(e,t);case"templateLiteral":return async function(e,t){let r=e.value;return r=await la(r,/\$([a-zA-Z_$][a-zA-Z0-9_.$]*|\d+)/g,async(e,r)=>{try{if(/^\d+$/.test(r))return r;if(r.includes(".")){const e=r.split(".");let n=oa(e[0],t);for(let t=1;e.length>t&&null!=n;t++)n=n[e[t]];return(n??"")+""}return(oa(r,t)??"")+""}catch{return""}}),r=await la(r,/\$(?:\{([^}]+)\}|\(([^)]+)\))/g,async(e,r,n)=>{const i=r||n;try{return await Ji(i,t)+""}catch{return"undefined"}}),r}(e,t);case"stringPostfix":return async function(e,t){return`${await Di(e.expression,t)}${e.unit}`}(e,t);case"blockLiteral":return sa(e,t);default:throw Error("Unhandled evaluable AST node type: "+e.type)}}async function Di(e,t){if(!e)throw Error("Cannot evaluate null or undefined AST node");if("literal"===e.type)return e.value;if("identifier"===e.type)return Xi(e,t);if(Bi.has(e.type))return Fi(e,t);const r=Pe.get(e.type);if(r)return r(e,t);throw Error("Unknown AST node type: "+e.type)}class Ui extends Error{constructor(e){super(`Expression node "${e}" is not synchronously evaluable`),this.name="NotSyncEvaluable"}}const Ki=new Set(["literal","string","selector","identifier","contextReference","arrayLiteral","objectLiteral","asExpression","stringPostfix","blockLiteral","memberExpression"]);function Zi(e,t){const r=e?.type;if("string"==typeof r&&Ki.has(r))return function(e,t){switch(e.type){case"literal":case"string":return e.value;case"selector":return function(e,t){const r=e.value;if("string"!=typeof r)throw new Ui("selector");if(!e.fromQuery&&/^\*[a-zA-Z][\w-]*$/.test(r))throw new Ui("selector");if(e.fromQuery&&/\$[^=]/.test(r)){const{selector:n,elements:i}=function(e,t){const r=ya(e),n=r.filter(e=>"expr"in e).map(e=>Yi(e.expr,t));return ga(r,n)}(r,t),a=ha(e,n),s=t?.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!s)throw new Ui("selector");i.forEach((e,t)=>e.setAttribute("data-hs-query-id",t+""));try{return Array.from(s.querySelectorAll(a))}finally{i.forEach(e=>e.removeAttribute("data-hs-query-id"))}}const n=!e.fromQuery&&r.includes("{")?function(e,t){return e.replace(/\{([^}]*)\}/g,(e,r)=>(Yi(r.trim(),t)??"")+"")}(r,t):r,i=ha(e,n),a=t?.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!a)throw new Ui("selector");return Gr(Array.from(a.querySelectorAll(i)),n,e.fromQuery)}(e,t);case"identifier":return function(e,t,r){return"me"===e||"my"===e||"I"===e?t.me:"you"===e||"your"===e||"yourself"===e?t.you:"it"===e||"its"===e?t.it??t.result:"result"===e?t.result??t.it:"window"===e?"undefined"!=typeof window?window:globalThis:"document"===e?"undefined"!=typeof document?document:void 0:"element"===r?Nr(t,e):t.locals?.has(e)?t.locals.get(e):t.globals?.has(e)?t.globals.get(e):e.startsWith("$")&&t.globals?.has(e.slice(1))?t.globals.get(e.slice(1)):"body"===e&&"undefined"!=typeof document?document.body:"detail"===e?t.event?.detail??null:"sender"===e?t.event?.detail?.sender??null:void 0!==t[e]?t[e]:"undefined"!=typeof globalThis&&e in globalThis?globalThis[e]:void 0}(e.name,t,e.scope);case"contextReference":return function(e,t){switch(e){case"me":return t.me;case"you":return t.you;case"it":return t.it??t.result;case"event":return t.event;case"target":return t.target??t.event?.target??t.me;default:throw new Ui("contextReference")}}(e.contextType,t);case"arrayLiteral":return e.elements.map(e=>Zi(e,t));case"objectLiteral":return function(e,t){const r={};for(const n of e.properties){const e=n.key;let i;i="identifier"===e.type?e.name:"literal"===e.type&&"string"===e.valueType?e.value+"":Zi(e,t)+"",r[i]=Zi(n.value,t)}return r}(e,t);case"asExpression":return Sn(Zi(e.expression,t),aa(e.targetType),t);case"stringPostfix":return`${Zi(e.expression,t)}${e.unit}`;case"blockLiteral":return sa(e,t);case"memberExpression":{const r=Zi(e.object,t);if(null==r)return;if(r instanceof Element||Array.isArray(r)||"undefined"!=typeof Node&&r instanceof Node)throw new Ui("memberExpression");const n=r[e.computed?Zi(e.property,t)+"":e.property.name];return"function"==typeof n?n.bind(r):n}default:throw new Ui((e.type??"unknown")+"")}}(e,t);throw new Ui("string"==typeof r?r:"unknown")}function Yi(e,t){const r=Ar(e);if(!r.success||!r.node){const e=r.error??r.errors?.[0];throw Error("Failed to parse expression: "+(e?.message??"unknown error"))}return Zi(r.node,t)}async function Ji(e,t){const r=Ar(e);if(!r.success||!r.node){const e=r.error??r.errors?.[0];throw Error("Failed to parse expression: "+(e?.message??"unknown error"))}const n=t.registry?t:{...t,registry:await Qi()};return Di(r.node,n)}let Gi=null;async function Qi(){if(!Gi){const e=await Promise.resolve().then(function(){return Wc});Gi=e.createFullExpressionRegistry()}return Gi}async function Xi(e,t){const r=e.name;return r.startsWith("$")?Te(r.slice(1),t):"global"===e.scope&&Te(r,t),"me"===r||"my"===r||"I"===r?$n.me.evaluate(t):"you"===r||"your"===r||"yourself"===r?$n.you.evaluate(t):"it"===r||"its"===r?$n.it.evaluate(t):"result"===r?$n.result.evaluate(t):"window"===r?$n.window.evaluate(t):"document"===r?$n.document.evaluate(t):"global"===e.scope&&t.globals?.has(r)?t.globals.get(r):"element"===e.scope?Nr(t,r):t.locals&&t.locals.has(r)?(Le(r,t),t.locals.get(r)):t.globals&&t.globals.has(r)?t.globals.get(r):r.startsWith("$")&&t.globals&&t.globals.has(r.slice(1))?t.globals.get(r.slice(1)):"body"===r&&"undefined"!=typeof document?document.body:"detail"===r?t.event?.detail??null:"sender"===r?t.event?.detail?.sender??null:void 0!==t[r]?t[r]:"undefined"!=typeof globalThis&&r in globalThis?globalThis[r]:void 0}function ea(e){const t=e;if(!t)return null;if("identifier"===t.type&&"string"==typeof t.name)return[t.name];if("memberExpression"===t.type&&!t.computed){const e=ea(t.object);if(!e)return null;const r=t.property,n="identifier"===r?.type&&"string"==typeof r.name?r.name:"string"==typeof r?.value?r.value:null;return null==n?null:[...e,n]}return null}function ta(e,t){return Array.isArray(t)?t.includes(e):"string"==typeof t?t.includes(e+""):e instanceof Node&&t instanceof Node?e===t||t.contains(e):null!=t&&"object"==typeof t&&e in t}function ra(e,t){return e&&"selector"===e.type&&"string"==typeof e.value?e.value:t}function na(e,t,r){if(void 0!==r)return;const n=e.right;if(!n||"identifier"!==n.type||"string"!=typeof n.name)return;if(null==t||"object"!=typeof t)return;const i=t[n.name];return"boolean"==typeof i?!0===i:void 0}function ia(e,t,r){return e instanceof Node&&t instanceof Node&&0!==(e.compareDocumentPosition(t)&r)}function aa(e){if("string"==typeof e)return e;if(e&&"object"==typeof e){if("string"==typeof e.name)return e.name;if("string"==typeof e.value)return e.value}return e+""}function sa(e,t){const r=e.parameters??[];return(...n)=>{const i=new Map(t.locals??new Map);r.forEach((e,t)=>i.set(e,n[t]));const a={...t,locals:i};try{return Zi(e.body,a)}catch(t){if(t instanceof Ui)return Di(e.body,a);throw t}}}function oa(e,t){if(t.locals?.has(e))return Le(e,t),t.locals.get(e);if("me"===e&&t.me)return t.me;if("you"===e&&t.you)return t.you;if("it"===e){const e=t.it??t.result;if(e)return e}if("result"===e){const e=t.result??t.it;if(e)return e}return"undefined"!=typeof window&&"window"===e?window:t.globals?.has(e)?t.globals.get(e):void 0}async function la(e,t,r){const n=[];let i;for(;null!==(i=t.exec(e));)n.push({index:i.index,length:i[0].length,replacement:await r(i[0],...i.slice(1))});let a=e;for(let e=n.length-1;e>=0;e--){const{index:t,length:r,replacement:i}=n[e];a=a.substring(0,t)+i+a.substring(t+r)}return a}function ca(e,t,r){if("string"==typeof t&&t.startsWith("@")){const r=t.substring(1);return e&&"function"==typeof e.getAttribute?e.getAttribute(r):void 0}return e instanceof Element&&"string"==typeof t?pn(e,t):_i(e)&&!(t in e)?Hi(r,"possessive").evaluate(r,e,t):e?.[t]}const ua=new Set(["closest","previous","next"]);function da(e){return e instanceof Element?e:Array.isArray(e)&&e[0]instanceof Element?e[0]:void 0}const ma=RegExp("(\\.[a-zA-Z0-9_-]+):(?!(hover|active|focus|visited|link|focus-within|focus-visible|first-child|last-child|only-child|nth-child|nth-last-child|nth-of-type|nth-last-of-type|first-of-type|last-of-type|only-of-type|empty|root|target|lang|dir|not|has|is|where|matches|before|after|first-letter|first-line|selection|placeholder|marker|backdrop|enabled|disabled|checked|indeterminate|required|optional|valid|invalid|in-range|out-of-range|read-only|read-write|default|defined|fullscreen|modal|picture-in-picture|autofill)(?![a-zA-Z0-9_-]))","g"),pa=/[:&()[\]/]/g;function ha(e,t){return e.fromQuery||!t.startsWith(".")||t.includes("{")?function(e){return e.replace(ma,"$1\\:")}(t):function(e){return e[0]+e.slice(1).replace(pa,"\\$&")}(t)}const fa=/\$\{([^}]+)\}|\$([a-zA-Z_$][a-zA-Z0-9_.$]*)/g;function ya(e){const t=[];let r,n=0;for(fa.lastIndex=0;null!==(r=fa.exec(e));)r.index>n&&t.push({lit:e.slice(n,r.index)}),t.push({expr:r[1]??r[2]}),n=r.index+r[0].length;return e.length>n&&t.push({lit:e.slice(n)}),t}function ga(e,t){let r="";const n=[];let i=0;for(const a of e){if("lit"in a){r+=a.lit;continue}const e=t[i++];ln(e)?(r+=`[data-hs-query-id='${n.length}']`,n.push(e)):r+=(e??"")+""}return{selector:r,elements:n}}class va{constructor(e){this.elementCleanups=new WeakMap,this.elementCount=0,this.typeCounts={listener:0,observer:0,interval:0,timeout:0,custom:0},this.globalCleanups=[],this.debugMode=e?.debug??!1}registerListener(e,t,r,n,i){this.addCleanup(e,{type:"listener",target:t,eventName:r,cleanup:()=>{t.removeEventListener(r,n,i),this.debugMode&&pe(`CleanupRegistry: Removed listener '${r}'`)},description:r+" listener"})}registerObserver(e,t){this.addCleanup(e,{type:"observer",cleanup:()=>{t.disconnect(),this.debugMode&&pe("CleanupRegistry: Disconnected MutationObserver")},description:"MutationObserver"})}registerInterval(e,t){this.addCleanup(e,{type:"interval",cleanup:()=>{clearInterval(t),this.debugMode&&pe("CleanupRegistry: Cleared interval")},description:"Interval"})}registerTimeout(e,t){this.addCleanup(e,{type:"timeout",cleanup:()=>{clearTimeout(t),this.debugMode&&pe("CleanupRegistry: Cleared timeout")},description:"Timeout"})}registerCustom(e,t,r){this.addCleanup(e,{type:"custom",cleanup:t,description:r||"Custom cleanup"})}registerGlobal(e,t="custom",r){this.globalCleanups.push({type:t,cleanup:e,description:r||"Global cleanup"}),this.debugMode&&pe("CleanupRegistry: Registered global cleanup: "+(r||t))}addCleanup(e,t){const r=this.elementCleanups.get(e);r?r.push(t):(this.elementCleanups.set(e,[t]),this.elementCount++),this.typeCounts[t.type]++,this.debugMode&&pe(`CleanupRegistry: Registered ${t.type} for element`,e)}cleanupElement(e){const t=this.elementCleanups.get(e);if(!t||0===t.length)return 0;let r=0;for(const e of t){try{e.cleanup(),r++}catch(e){this.debugMode&&pe("CleanupRegistry: Error during cleanup:",e)}this.typeCounts[e.type]--}return this.elementCleanups.delete(e),this.elementCount--,this.debugMode&&pe(`CleanupRegistry: Cleaned up ${r} resources for element`),r}cleanupElementTree(e){let t=this.cleanupElement(e);const r=e.querySelectorAll("*");for(const e of r)t+=this.cleanupElement(e);return t}cleanupGlobal(){let e=0;for(const t of this.globalCleanups)try{t.cleanup(),e++}catch(e){this.debugMode&&pe("CleanupRegistry: Error during global cleanup:",e)}return this.globalCleanups=[],this.debugMode&&pe(`CleanupRegistry: Cleaned up ${e} global resources`),e}cleanupAll(){return this.cleanupGlobal()}hasCleanups(e){const t=this.elementCleanups.get(e);return void 0!==t&&t.length>0}getCleanupCount(e){const t=this.elementCleanups.get(e);return t?.length??0}getStats(){let e=0,t=0,r=0,n=0,i=0;for(const a of this.globalCleanups)switch(a.type){case"listener":e++;break;case"observer":t++;break;case"interval":r++;break;case"timeout":n++;break;case"custom":i++}return{elementsTracked:this.elementCount,listeners:this.typeCounts.listener+e,observers:this.typeCounts.observer+t,intervals:this.typeCounts.interval+r,timeouts:this.typeCounts.timeout+n,custom:this.typeCounts.custom+i,global:this.globalCleanups.length}}setDebugMode(e){this.debugMode=e}}class ba{constructor(){this.sources=new Map,this.subscriptions=new Map,this.nextId=1}register(e,t){const r=e.toLowerCase();this.sources.has(r)&&pe("[EventSourceRegistry] Overwriting existing event source: "+e),this.sources.set(r,t)}unregister(e){const t=e.toLowerCase(),r=this.sources.get(t);if(r){for(const[e,r]of this.subscriptions.entries())r.source===t&&(r.unsubscribe(),this.subscriptions.delete(e));return r.destroy?.(),this.sources.delete(t)}return!1}get(e){return this.sources.get(e.toLowerCase())}has(e){return this.sources.has(e.toLowerCase())}subscribe(e,t,r){const n=this.get(e);if(!n)return void pe("[EventSourceRegistry] Unknown event source: "+e);n.initialize?.();const i=n.subscribe(t,r);return this.subscriptions.set(i.id,i),i}unsubscribe(e){const t=this.subscriptions.get(e);return!!t&&(t.unsubscribe(),this.subscriptions.delete(e))}getSourceNames(){return Array.from(this.sources.keys())}getSubscriptions(){return Array.from(this.subscriptions.values())}findSourceForEvent(e){for(const[t,r]of this.sources.entries())if(r.supports?.(e)??r.supportedEvents?.includes(e))return t}generateId(){return`sub_${this.nextId++}_${Date.now().toString(36)}`}destroy(){for(const e of this.subscriptions.values())e.unsubscribe();this.subscriptions.clear();for(const e of this.sources.values())e.destroy?.();this.sources.clear()}}const wa={evaluate:(e,t)=>Di(e,t)};class ka{constructor(e,t,r){this.impl=e,this.hookRegistry=r??null}setHookRegistry(e){this.hookRegistry=e}createHookContext(e,t,r={}){return{commandName:this.name,element:e.me instanceof Element?e.me:null,args:t,modifiers:r,event:e.event??void 0,executionContext:e}}get name(){const e=this.impl.name;if(e)return e;const t=this.impl.metadata?.name;return"string"==typeof t?t:""}get metadata(){const e=this.impl.metadata?.syntax;return{description:this.impl.metadata?.description||"",examples:this.impl.metadata?.examples||[],syntax:"string"==typeof e?e:e?e.join(" | "):""}}async execute(e,...t){const r=t[0],n=this.createHookContext(e,t,r&&"object"==typeof r&&"modifiers"in r&&r.modifiers||{});try{if(ue(`CommandAdapterV2: Executing '${this.name}' with args:`,t),this.hookRegistry&&await this.hookRegistry.runBeforeExecute(n),this.hookRegistry?.shouldIntercept(this.name,n))return void ue(`CommandAdapterV2: '${this.name}' intercepted by hook`);e.variables||(e.variables=new Map);const i=e;let a,s;if(this.impl.parseInput&&"function"==typeof this.impl.parseInput)if(ue(`CommandAdapterV2: '${this.name}' has parseInput(), calling it`),r&&"object"==typeof r&&("args"in r||"modifiers"in r)){const t=r.modifiers,n=t?.when||t?.where;if(n&&!this.impl.ownsConditionalModifier&&!await Di(n,e))return void ue(`CommandAdapterV2: '${this.name}' skipped - when/where condition evaluated to false`);a=await this.impl.parseInput({args:r.args||[],modifiers:t||{},commandName:r.commandName,bodies:r.bodies},wa,e)}else a=t;else ue(`CommandAdapterV2: '${this.name}' has no parseInput(), using args as-is`),a=t;if(ue("CommandAdapterV2: Calling execute with parsed input:",a),2===this.impl.execute.length)s=await this.impl.execute(a,i);else{const e=Array.isArray(a)?a:[a];s=await this.impl.execute(i,...e)}return ue("CommandAdapterV2: Command result:",s),this.hookRegistry&&await this.hookRegistry.runAfterExecute(n,s),s}catch(e){if(ue(`CommandAdapterV2: Error executing '${this.name}':`,e),this.hookRegistry&&e instanceof Error)throw await this.hookRegistry.runOnError(n,e);throw e}}validate(e){return{isValid:!this.impl.validate||this.impl.validate(e),errors:[],suggestions:[]}}}class Ea{constructor(e,t){this.adapters=new Map,this.implementations=new Map,this.hookRegistry=t}setHookRegistry(e){this.hookRegistry=e;for(const t of this.adapters.values())t.setHookRegistry(e);pe(`CommandRegistryV2: Hook registry set and propagated to ${this.adapters.size} adapters`)}getHookRegistry(){return this.hookRegistry}register(e){const t=e.name||e.metadata?.name;if(!t||"string"!=typeof t)throw Error("Cannot register command: no name found. Provide a 'name' property or 'metadata.name' on the implementation.");const r=t.toLowerCase();pe(`CommandRegistryV2: Registering command '${r}'`),this.implementations.set(r,e);const n=new ka(e,void 0,this.hookRegistry);this.adapters.set(r,n),k.add(r);const i=e.metadata?.aliases;if(i&&Array.isArray(i))for(const t of i){const r=t.toLowerCase();this.implementations.set(r,e),this.adapters.set(r,n),k.add(r)}}getAdapter(e){return this.adapters.get(e.toLowerCase())}has(e){return this.adapters.has(e.toLowerCase())}getCommandNames(){return Array.from(this.adapters.keys())}getImplementation(e){return this.implementations.get(e.toLowerCase())}getAdapters(){return new Map(this.adapters)}validateCommand(e,t){const r=this.getAdapter(e);return r?r.validate(t):{isValid:!1,errors:[{type:"runtime-error",message:"Unknown command: "+e,suggestions:["Available commands: "+this.getCommandNames().join(", ")]}],suggestions:["Available commands: "+this.getCommandNames().join(", ")]}}}let xa=null;function Aa(){return xa||(xa=function(e){const t=e?.commands??new Ea,r=e?.eventSources??new ba,n=new Set,i={commands:t,eventSources:r,use(e){if(n.has(e.name))pe(`[LokaScriptRegistry] Plugin '${e.name}' is already installed`);else{if(e.commands)for(const r of e.commands)t.register(r);if(e.eventSources)for(const t of e.eventSources)r.register(t.name,t);e.setup?.(i),n.add(e.name)}},reset(){n.clear()}};return i}()),xa}class Ca{constructor(e={}){const t=Aa();this.options={enableEventSources:e.enableEventSources??!0,registry:e.registry??{}},this.eventSourceRegistry=this.options.registry.eventSources??t.eventSources,pe(`[RegistryIntegration] Initialized (events=${this.options.enableEventSources})`)}getEventSource(e){if(!this.options.enableEventSources)return;const t=this.eventSourceRegistry.get(e);if(t)return pe(`[RegistryIntegration] Found event source for '${e}'`),t;const r=this.eventSourceRegistry.findSourceForEvent(e);if(r){const t=this.eventSourceRegistry.get(r);return pe(`[RegistryIntegration] Found event source '${r}' supporting '${e}'`),t}}hasEventSource(e){return void 0!==this.getEventSource(e)}subscribeToEventSource(e,t,r){if(!this.options.enableEventSources)throw Error("Event sources are disabled in this runtime");const n=this.eventSourceRegistry.subscribe(e,t,r);if(!n)throw Error(`Failed to subscribe to event source '${e}'`);return pe(`[RegistryIntegration] Subscribed to '${e}' event '${t.event}' (id: ${n.id})`),n}getEventSourceNames(){return this.eventSourceRegistry.getSourceNames()}destroy(){this.eventSourceRegistry.destroy(),pe("[RegistryIntegration] Destroyed")}}class Sa extends Error{constructor(e){super(`'${e.type}' used outside of a loop`),this.signal=e,this.name="StrayControlFlowError"}}function Ta(e){return null!==e&&"object"==typeof e&&"command"in e&&"selector"in e}const Oa=new WeakMap;function La(e,t=new Set){if(null===e||"object"!=typeof e)return t;if(Array.isArray(e)){for(const r of e)La(r,t);return t}const r=e;"identifier"===r.type&&"string"==typeof r.name&&t.add(r.name);for(const e of Object.keys(r))"start"!==e&&"end"!==e&&"line"!==e&&"column"!==e&&La(r[e],t);return t}class ja{constructor(e){this.autoCleanupObserver=null,this.registryIntegration=null,this.runtimeWarnings=[],this.ops=new WeakMap,this.options={commandTimeout:1e4,enableErrorReporting:!0,enableAutoCleanup:!0,...e},this.registry=e.registry,this.expressionRegistry=e.expressionRegistry,this.behaviorRegistry=new Map,this.globalVariables=Lr,this.hookRegistry=new Cr,e.hooks&&this.hookRegistry.register("default",e.hooks),this.registry.setHookRegistry(this.hookRegistry),this.cleanupRegistry=new va,this.options.enableAutoCleanup&&this.setupAutoCleanup(),!1!==e.registryIntegration&&(this.registryIntegration=new Ca("object"==typeof e.registryIntegration?e.registryIntegration:{}),pe("RuntimeBase: Registry integration enabled")),this.behaviorAPI={has:e=>this.behaviorRegistry.has(e),get:e=>this.behaviorRegistry.get(e),set:(e,t)=>this.behaviorRegistry.set(e,t),resolve:null,install:async(e,t,r)=>await this.installBehaviorOnElement(e,t,r)}}setupAutoCleanup(){"undefined"!=typeof MutationObserver&&"undefined"!=typeof document&&(this.autoCleanupObserver=new MutationObserver(e=>{const t=[];for(const r of e)for(const e of r.removedNodes)e instanceof Element&&t.push(e);t.length>0&&queueMicrotask(()=>{for(const e of t)if(!e.isConnected){const t=this.cleanupRegistry.cleanupElementTree(e);t>0&&pe(`RuntimeBase: Auto-cleaned ${t} resources for removed element`)}})}),document.body?this.autoCleanupObserver.observe(document.body,{childList:!0,subtree:!0}):document.addEventListener("DOMContentLoaded",()=>{this.autoCleanupObserver?.observe(document.body,{childList:!0,subtree:!0})},{once:!0}))}registerHooks(e,t){this.hookRegistry.register(e,t)}unregisterHooks(e){return this.hookRegistry.unregister(e)}getRegisteredHooks(){return this.hookRegistry.getRegisteredNames()}cleanup(e){return this.cleanupRegistry.cleanupElement(e)}trackListener(e,t,r,n,i){this.cleanupRegistry.registerListener(e,t,r,n,i)}cleanupTree(e){return this.cleanupRegistry.cleanupElementTree(e)}getCleanupStats(){return this.cleanupRegistry.getStats()}getCleanupRegistry(){return this.cleanupRegistry}logError(...e){this.options.enableErrorReporting&&console.error(...e)}logWarn(...e){this.options.enableErrorReporting&&console.warn(...e)}destroy(){this.autoCleanupObserver&&(this.autoCleanupObserver.disconnect(),this.autoCleanupObserver=null),this.cleanupRegistry.cleanupAll(),this.hookRegistry.clear(),this.behaviorRegistry.clear(),pe("RuntimeBase: Destroyed")}hasErrorDiagnostics(e){const t=e.diagnostics;return!!t?.some(e=>"error"===e.severity)}getWarnings(){return this.runtimeWarnings}async execute(e,t){const r=await this.executeNode(e,t);if(Or(r))return r.value;const n=r.error;if("return"===n.type){const e=n.returnValue;return void 0!==e&&Object.assign(t,{it:e,result:e}),e}if("halt"!==n.type&&"exit"!==n.type)throw new Sa(n)}async executeNode(e,t){return this.prepareContext(t),this.compile(e)(t)}prepareContext(e){e.registry||(e.registry=this.expressionRegistry),e.locals.has("_behaviors")||e.locals.set("_behaviors",this.behaviorAPI)}compile(e){const t=this.ops.get(e);if(t)return t;const r=this.compileNode(e);return this.ops.set(e,r),r}compileSequence(e){const t=e.map(e=>this.compile(e));return async e=>{let r;for(const n of t){const t=await n(e);if(!Or(t))return t;r=t.value}return Sr(r)}}compileNode(e){if(this.hasErrorDiagnostics(e)){const t=e.diagnostics?.[0],r=t?.message||"Skipped error node";return async()=>(pe("\u26a0\ufe0f RUNTIME: Skipping error node: "+r),this.runtimeWarnings.push(r),Sr(void 0))}switch(e.type){case"command":{const t=e,r=(t.args??[]).map(e=>function(e){const t=e?.type;return"block"===t||"command"===t}(e)?this.compile(e):void 0),n=r.some(Boolean);return e=>this.processCommandWithResult(t,e,n?r:void 0)}case"initBlock":case"block":{const t=e,r=(Array.isArray(t.commands)?t.commands:[]).map(e=>this.compile(e)),n="initBlock"===e.type;return async e=>{for(const t of r){const r=await t(e);if(!Or(r)){if(n&&"halt"===r.error.type)break;return r}}return Sr(void 0)}}case"sequence":case"CommandSequence":{const t=e;return e=>this.executeCommandSequenceWithResult(t.commands||[],e)}case"Program":return t=>this.executeProgram(e,t);default:return t=>this.dispatch(e,t)}}async dispatch(e,t){switch(pe(`RUNTIME BASE: dispatch node type: '${e.type}'`),e.type){case"eventHandler":return Sr(await this.executeEventHandler(e,t));case"event":{const r={type:"eventHandler",event:e.event,events:[e.event],commands:e.body||[],target:e.filter,modifiers:e.modifiers||{}};return Sr(await this.executeEventHandler(r,t))}case"behavior":return Sr(await this.executeBehaviorDefinition(e,t));case"def":return Sr(this.installFunction(e,t));case"objectLiteral":return Sr(await this.executeObjectLiteral(e,t));default:return await this.evaluateExpressionWithResult(e,t)}}async processCommandWithResult(e,t,r){const{name:n,args:i,modifiers:a}=e,s=n.toLowerCase();if(ue(`RUNTIME BASE (Result): Processing command '${s}'`),!this.registry.has(s)){const e=`Unknown command: ${n}. Ensure it is registered in the Runtime options.`;throw this.logWarn(e),Error(e)}const o=await this.registry.getAdapter(s);if(!o)throw Error(`Command '${s}' is registered but failed to load adapter.`);try{const e=await o.execute(t,{args:i||[],modifiers:a||{},bodies:r,commandName:s,runtime:this});return"object"==typeof(l=e)&&null!==l&&"type"in l&&"string"==typeof l.type&&["halt","exit","break","continue","return"].includes(l.type)?Tr(e):Sr(e)}catch(e){throw this.logError(`Error executing command '${s}':`,e),e}var l}async executeCommandSequenceWithResult(e,t){let r;for(const n of e){if(this.hasErrorDiagnostics(n)){const e=n.diagnostics?.[0];pe("\u26a0\ufe0f RUNTIME: Skipping error node: "+(e?.message||"unknown error")),this.runtimeWarnings.push(e?.message||"Skipped error node");continue}if("command"===n.type){const e=await this.compile(n)(t);if(!Or(e)){const r=e.error;switch(r.type){case"halt":case"exit":case"break":case"continue":return e;case"return":return void 0!==r.returnValue&&Object.assign(t,{it:r.returnValue,result:r.returnValue}),Sr(r.returnValue)}}r=e.value}else{const e=await this.evaluateExpressionWithResult(n,t);if(!Or(e))return e;r=e.value}}return Sr(r)}async evaluateExpression(e,t){const r=t.registry?t:{...t,registry:this.expressionRegistry},n=await Di(e,r);if(Ta(n)){const e={type:"command",name:n.command,args:[{type:"literal",value:n.selector}],isBlocking:!1},r=await this.processCommandWithResult(e,t);if(!Or(r))throw new Sa(r.error);return r.value}return n}async evaluateExpressionWithResult(e,t){const r=t.registry?t:{...t,registry:this.expressionRegistry},n=await async function(e,t){try{return Sr(await Di(e,t))}catch(e){if(e instanceof Error){const t=e;if(t.isHalt)return Tr({type:"halt"});if(t.isExit)return Tr({type:"exit",returnValue:t.returnValue});if(t.isBreak)return Tr({type:"break"});if(t.isContinue)return Tr({type:"continue"});if(t.isReturn)return Tr({type:"return",returnValue:t.returnValue})}throw e}}(e,r);if(!Or(n))return n;const i=n.value;return Ta(i)?this.processCommandWithResult({type:"command",name:i.command,args:[{type:"literal",value:i.selector}],isBlocking:!1},t):Sr(i)}installFunction(e,t){const r=e.params??[],n=e.errorHandler,i=e.finallyHandler,a=e.errorSymbol,s=this.compileSequence(e.body??[]),o=n?this.compileSequence(n):void 0,l=i?this.compileSequence(i):void 0;t.globals.set(e.name,async(...e)=>{const n={...t,locals:new Map(t.locals)};r.forEach((t,r)=>{t&&n.locals.set(t,e[r])});const i=async e=>{const t=await e(n);if(!Or(t)){const e=t.error;if("break"===e.type||"continue"===e.type)throw new Sa(e);return"return"===e.type?e.returnValue:void 0}return t.value};if(!o&&!l)return await i(s);try{return await i(s)}catch(e){if(!o||e instanceof Sa)throw e;return a&&n.locals.set(a,e),await i(o)}finally{l&&await i(l)}})}async executeProgram(e,t){if(!e.statements||!Array.isArray(e.statements))return Sr(void 0);let r;const n=[],i=[],a=[],s=[];for(const t of e.statements)"eventHandler"===t.type?n.push(t):"def"===t.type?i.push(t):"initBlock"===t.type?a.push(t):s.push(t);for(const e of i)this.executeNode(e,t);for(const e of n){const r=await this.executeNode(e,t);if(!Or(r)){if("halt"===r.error.type||"exit"===r.error.type)break;return r}}for(const e of a){const n=await this.executeNode(e,t);if(!Or(n)){if("halt"===n.error.type||"exit"===n.error.type)break;if("return"===n.error.type){r=n.error.returnValue;break}return n}r=n.value}for(const e of s){const n=await this.executeNode(e,t);if(!Or(n)){if("halt"===n.error.type||"exit"===n.error.type)break;if("return"===n.error.type){r=n.error.returnValue;break}return n}r=n.value}return Sr(r)}async executeBlock(e,t){return this.compile(e)(t)}async executeObjectLiteral(e,t){const r={};if(!e.properties)return r;for(const n of e.properties){let e;e="identifier"===n.key.type?n.key.name:"literal"===n.key.type?n.key.value+"":await this.execute(n.key,t)+"";const i=await this.execute(n.value,t);r[e]=i}return r}async executeBehaviorDefinition(e,t){const{name:r,parameters:n=[],eventHandlers:i=[],initBlock:a}=e,s=e.imperativeInstaller;"function"==typeof s?(this.behaviorRegistry.set(r,{name:r,parameters:n,type:"imperative",install:s}),pe(`RUNTIME BASE: Registered imperative behavior '${r}'`)):(this.behaviorRegistry.set(r,{name:r,parameters:n,eventHandlers:i,initBlock:a&&a}),pe(`RUNTIME BASE: Registered behavior '${r}'`))}async installBehaviorOnElement(e,t,r){pe("BEHAVIOR: installBehaviorOnElement called: "+e);let n=this.behaviorRegistry.get(e);if(!n&&(this.behaviorAPI.resolve&&this.behaviorAPI.resolve(e)&&(n=this.behaviorRegistry.get(e)),!n))throw Error(`Behavior "${e}" not found`);if("imperative"===n.type)return void("function"==typeof n.install&&(pe(`BEHAVIOR: Installing imperative behavior '${e}'`),n.install(t,r),pe(`BEHAVIOR: Finished installing imperative behavior '${e}'`)));pe("BEHAVIOR: Found behavior, eventHandlers count: "+(n.eventHandlers?.length||0));const i={me:t,owner:t,you:null,it:null,result:null,locals:new Map,globals:this.globalVariables,registry:this.expressionRegistry};if(n.parameters)for(const e of n.parameters)i.locals.set(e,e in r?r[e]:void 0);for(const[e,t]of Object.entries(r))n.parameters?.includes(e)||i.locals.set(e,t);if(n.initBlock){pe("BEHAVIOR: Running init block for "+e);const t=this.options.commandTimeout??1e4;try{await Promise.race([this.execute(n.initBlock,i),new Promise((r,n)=>setTimeout(()=>n(Error(`Behavior "${e}" init block timed out after ${t}ms`)),t))]),pe("BEHAVIOR: Init block completed for "+e)}catch(t){throw pe(`BEHAVIOR: Init block error for ${e}:`,t),t}}if(pe(`BEHAVIOR: About to attach ${n.eventHandlers?.length||0} handlers for ${e}`),n.eventHandlers){const t=this.options.commandTimeout??1e4;for(const r of n.eventHandlers)await Promise.race([this.executeEventHandler(r,i),new Promise((r,n)=>setTimeout(()=>n(Error(`Behavior "${e}" handler attachment timed out after ${t}ms`)),t))])}pe("BEHAVIOR: Finished installing "+e)}async executeEventHandler(e,t){const{event:r,events:n,commands:i,target:a,targetExpression:s,args:o,selector:l,condition:c,attributeName:u,watchTarget:d,modifiers:m,errorSymbol:p,errorHandler:h,finallyHandler:f}=e,y=n&&n.length>0?n:[r];pe(`BEHAVIOR: executeEventHandler: event='${r}', target='${a}'`);let g=[],v=null;if(s){const e=await this.execute(s,t);e===window?v=window:e===document?v=document:this.isElement(e)?g=[e]:Array.isArray(e)&&(g=e.filter(e=>this.isElement(e)))}else if(a){const e="string"==typeof a?a.toLowerCase():"";if("window"===e||"the window"===e)v=window;else if("document"===e||"the document"===e||"body"===e)v=document;else if("me"===e||"myself"===e)g=t.me?[t.me]:[];else if("string"==typeof a&&t.locals.has(a)){const e=t.locals.get(a);pe(`BEHAVIOR: Target resolution: found local '${a}', isElement: ${this.isElement(e)}`),this.isElement(e)?g=[e]:Array.isArray(e)?g=e.filter(e=>this.isElement(e)):"string"==typeof e&&(g=this.queryElements(e,t))}else pe(`BEHAVIOR: Target resolution: querying for '${a}'`),g=this.queryElements(a,t)}else g=t.me?[t.me]:[];if(0===g.length&&!v)return void pe(`BEHAVIOR: executeEventHandler - No targets found for event '${r}', returning early`);if("mutation"===r&&u)return void this.setupMutationObserver(g,u,i,t);if("change"===r&&d)return void this.setupChangeObserver(d,i,t);const b=e.customEventSource;if(b&&this.registryIntegration){pe(`BEHAVIOR: executeEventHandler - Using custom event source '${b}' for event '${r}'`);const e=async e=>{const n=new Map(t.locals),a={...t,locals:n,it:e,event:e};pe(`CUSTOM EVENT: Executing commands for event '${r}'`);try{await this.execute({type:"program",commands:i},a)}catch(e){this.logError(`[HyperFixi] Error executing commands for custom event '${r}':`,e)}};try{const n=this.registryIntegration.subscribeToEventSource(b,{event:r,handler:e,target:a,selector:l},t);pe(`BEHAVIOR: Subscribed to custom event source '${b}' (id: ${n.id})`),this.cleanupRegistry.registerGlobal(()=>n.unsubscribe(),"listener",`Custom event source '${b}' subscription ${n.id}`)}catch(e){this.logError(`[HyperFixi] Failed to subscribe to custom event source '${b}':`,e)}return}const w=ja.createEventHandler(this,i,t,l,o,{errorSymbol:p,errorHandler:h,finallyHandler:f},1===y.length?c:void 0);let k,E=null;if(m){let e=w;if(m.prevent){const t=e;e=async e=>(e.preventDefault(),t(e))}if(m.stop){const t=e;e=async e=>(e.stopPropagation(),t(e))}if(m.debounce){const t=m.debounce;let r;k=n=>{r&&clearTimeout(r),r=setTimeout(()=>e(n),t)},E=()=>{r&&(clearTimeout(r),r=void 0)}}else if(m.throttle){const t=m.throttle;let r=0;k=n=>{const i=Date.now();t>i-r||(r=i,e(n))}}else k=e}else k=w;const x=m?.once?{once:!0}:void 0;if(v){for(const e of y)v.addEventListener(e,k,x),g.length>0?this.cleanupRegistry.registerListener(g[0],v,e,k):this.cleanupRegistry.registerGlobal(()=>v.removeEventListener(e,k),"listener",`Global ${e} listener`);E&&(g.length>0?this.cleanupRegistry.registerCustom(g[0],E,"debounce-timeout"):this.cleanupRegistry.registerGlobal(E,"timeout","debounce-timeout"))}else for(const e of g){for(const t of y){if("resize"===t&&"undefined"!=typeof ResizeObserver){const t=new ResizeObserver(e=>{for(const r of e){const e=new CustomEvent("resize",{detail:r,bubbles:!1,cancelable:!1});if(e.synthetic=!0,k(e),x?.once){t.disconnect();break}}});t.observe(e),this.cleanupRegistry.registerCustom(e,()=>t.disconnect(),"resize-observer");continue}e.addEventListener(t,k,x),this.cleanupRegistry.registerListener(e,e,t,k)}E&&this.cleanupRegistry.registerCustom(e,E,"debounce-timeout")}}static createEventHandler(e,t,r,n,i,a,s){const o=e.compileSequence(t),l=a?.errorHandler?e.compileSequence(a.errorHandler):void 0,c=a?.finallyHandler?e.compileSequence(a.finallyHandler):void 0;return async t=>{e.options.logAll?.()&&console.log("[hyperfixi]",t.type,r.me,t);const u=Oa.get(t)??0;if(u>=100)return;if(Oa.set(t,u+1),n&&t.target instanceof Element)try{if(!t.target.matches(n)&&!t.target.closest(n))return}catch{pe(`Event delegation: invalid CSS selector '${n}', skipping filter`)}const d=new Map(r.locals),m={...r,locals:d,it:t,event:t};if(d.has("target")||m.locals.set("target",t.target),i&&i.length>0){const e=t,r=e.detail;for(const t of i)m.locals.set(t,e[t]??r?.[t]??null)}if(s){const r=t;for(const e of La(s))!m.locals.has(e)&&e in r&&m.locals.set(e,r[e]);let n;try{n=await e.evaluateExpression(s,m)}catch(e){return void pe("Event filter threw; skipping handler body:",e)}if(!n)return}e.prepareContext(m);const p=async t=>{let r;try{r=await t(m)}catch(t){throw e.logError("COMMAND FAILED:",t),t}if(Or(r))return;const n=r.error;if("return"===n.type&&void 0!==n.returnValue&&Object.assign(m,{it:n.returnValue,result:n.returnValue}),"break"===n.type||"continue"===n.type)throw new Sa(n)};if(l||c)try{await p(o)}catch(e){if(!l||e instanceof Sa)throw e;a?.errorSymbol&&m.locals.set(a.errorSymbol,e),await p(l)}finally{c&&await p(c)}else await p(o)}}setupMutationObserver(e,t,r,n){pe(`RUNTIME BASE: Setting up MutationObserver for attribute '${t}' on ${e.length} elements`);for(const i of e){const e=new MutationObserver(async e=>{for(const a of e)if("attributes"===a.type&&a.attributeName===t){de(`MUTATION DETECTED: attribute '${t}' changed on`,i);const e={...n,me:i,it:a,locals:new Map(n.locals)},s=a.oldValue,o=i.getAttribute(t);e.locals.set("oldValue",s),e.locals.set("newValue",o);for(const t of r){let r;try{r=await this.executeNode(t,e)}catch(e){this.logError("Error executing mutation handler command:",e)}if(r&&!Or(r)){const e=r.error.type;if("halt"===e||"exit"===e||"return"===e)break}}}});e.observe(i,{attributes:!0,attributeOldValue:!0,attributeFilter:[t]}),this.cleanupRegistry.registerObserver(i,e),pe("RUNTIME BASE: MutationObserver attached to",i,`for attribute '${t}'`)}}async setupChangeObserver(e,t,r){pe("RUNTIME BASE: Setting up MutationObserver for content changes on watch target");const n=await this.execute(e,r);let i=[];this.isElement(n)?i=[n]:Array.isArray(n)&&(i=n.filter(e=>this.isElement(e))),pe(`RUNTIME BASE: Watching ${i.length} target elements for content changes`);for(const e of i){const n=new MutationObserver(async n=>{for(const i of n)if("childList"===i.type||"characterData"===i.type){de("CONTENT CHANGE DETECTED on",e,"mutation type:",i.type);const n={...r,me:r.me,it:i,locals:new Map(r.locals)};n.locals.set("target",e);const a=i.oldValue,s=e.textContent;null!==a&&n.locals.set("oldValue",a),n.locals.set("newValue",s);for(const e of t){let t;try{t=await this.executeNode(e,n)}catch(e){this.logError("Error executing change handler command:",e)}if(t&&!Or(t)){const e=t.error.type;if("halt"===e||"exit"===e||"return"===e)break}}}});n.observe(e,{childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0}),this.cleanupRegistry.registerObserver(e,n),pe("RUNTIME BASE: MutationObserver attached to",e,"for content changes")}}queryElements(e,t){const r=t.me,n=(r instanceof Element?r.ownerDocument:null)??("undefined"!=typeof document?document:null);if(!n)return[];let i=e;i.startsWith("<")&&i.endsWith("/>")&&(i=i.slice(1,-2).trim());try{return Array.from(n.querySelectorAll(i))}catch{return pe(`queryElements: invalid CSS selector '${i}'`),[]}}isElement(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement||!(!e||"object"!=typeof e)&&(!!e.style&&!!e.classList)}}function qa(...e){const t=new Map;for(const r of e)for(const[e,n]of Object.entries(r))t.set(e,n);return t}class Pa{constructor(e){this.observer=null,this.initialized=!1,this.runtime=e}init(){"undefined"!=typeof document&&(this.initialized||(this.initialized=!0,this.scanDocument(),this.observer=new MutationObserver(e=>{for(const t of e)"childList"===t.type?t.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&(this.processElement(e),this.scanElement(e))}):"attributes"===t.type&&"_"===t.attributeName&&this.processElement(t.target)}),this.observer.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["_"]})))}destroy(){this.observer&&(this.observer.disconnect(),this.observer=null),this.initialized=!1}reset(){this.destroy()}scanAndProcessAll(){this.scanDocument()}scanDocument(){document.body&&this.scanElement(document.body)}scanElement(e){e.hasAttribute("_")&&this.processElement(e),e.querySelectorAll("[_]").forEach(e=>this.processElement(e))}processElement(e){const t=e.getAttribute("_");if(!t)return;const r=Ir(e);this.runtime.execute(t,r).catch(r=>{console.error('[HyperFixi] Error executing _="" attribute:',r),console.error("Element:",e),console.error("Code:",t)})}}class Na{trackPerformance(e,t,r,n){}trackSimple(e,t,r,n=(r?"success":"error")){}toBoolean(e){return!(!1===e||0===e||0n===e||""===e||null==e||rn(e)&&isNaN(e))}success(e,t){return{success:!0,value:e,type:t}}failure(e,t,r,n,i=[]){return{success:!1,error:{name:e,type:t,message:r,code:n,suggestions:i}}}validationSuccess(){return{isValid:!0,errors:[],suggestions:[]}}validationFailure(e,t,r=[]){return{isValid:!1,errors:[{type:e,message:t,suggestions:r}],suggestions:r}}isElement(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName}inferType(e){return null===e?"null":void 0===e?"undefined":this.isElement(e)?"element":Array.isArray(e)?"array":an(e)?"object":typeof e}inferEvaluationType(e){return void 0===e?"Undefined":null===e?"Null":tn(e)?"String":rn(e)?"Number":nn(e)?"Boolean":Array.isArray(e)?"Array":this.isElement(e)?"Element":"Object"}normalizeCollection(e){return Array.isArray(e)?e:e instanceof NodeList?Array.from(e):tn(e)?e.split(""):null==e?[]:an(e)&&Symbol.iterator in e?Array.from(e):[]}toNumber(e){if(rn(e)&&Number.isFinite(e))return e;if(tn(e)){const t=Number(e);return Number.isFinite(t)?t:null}return nn(e)?e?1:0:null}}const Ra=Fn({value:Bn().describe("String literal value")}).strict(),Ia=Fn({value:function(e={}){return zn?Hn():Vn({validate:t=>{const r=Number(t);return isNaN(r)?{success:!1,error:_n("type-mismatch","Expected number, received "+typeof t)}:void 0!==e.min&&e.min>r?{success:!1,error:_n("runtime-error","Number must be at least "+e.min)}:void 0!==e.max&&r>e.max?{success:!1,error:_n("runtime-error","Number must be at most "+e.max)}:{success:!0,data:r}}})}(_a||{}).describe("Number literal value")}).strict(),Ma=Fn({value:(zn?Hn():Vn({validate:e=>"boolean"!=typeof e?{success:!1,error:_n("type-mismatch","Expected boolean, received "+typeof e)}:{success:!0,data:e}})).describe("Boolean literal value")}).strict(),$a=Fn({left:Un().describe("Left operand"),right:Un().describe("Right operand")}).strict();var _a;const za={stringLiteral:new class extends Na{constructor(){super(...arguments),this.name="stringLiteral",this.category="Special",this.syntax="\"string\" or 'string'",this.description="String literals with template interpolation support",this.outputType="String",this.inputSchema=Ra,this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid){const t=this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions);return this.trackSimple(e,r,!1),t}let i=t.value;(i.includes("${")||i.includes("$"))&&(i=this.interpolateString(i,e));const a=this.success(i,"string");return this.trackSimple(e,r,!0,i),a}catch(t){return this.trackSimple(e,r,!1),this.failure("StringEvaluationError","runtime-error","String literal evaluation failed: "+(t instanceof Error?t.message:t+""),"STRING_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid string literal input",["Provide a value parameter","Ensure value is a string"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}interpolateString(e,t){let r=e.replace(/\$\{([^}]+)\}/g,(e,r)=>{try{const e=this.resolveExpression(r.trim(),t);return void 0!==e?e+"":""}catch(e){return""}});return r=r.replace(/\$([a-zA-Z_$][a-zA-Z0-9_.$]*)/g,(e,r)=>{try{const e=this.resolveVariable(r,t);return void 0!==e?e+"":""}catch(e){return""}}),r}resolveExpression(e,t){if(e.includes(".")){const r=e.split(".");let n=this.resolveVariable(r[0],t);for(let e=1;r.length>e&&null!=n;e++)n=n[r[e]];return n}return this.resolveVariable(e,t)}resolveVariable(e,t){return"me"===e&&t.me?t.me:"you"===e&&t.you?t.you:"it"===e&&t.it?t.it:"result"===e&&t.result?t.result:t.locals?.has(e)?(Le(e,t),t.locals.get(e)):t.globals?.has(e)?t.globals.get(e):void 0}},numberLiteral:new class extends Na{constructor(){super(...arguments),this.name="numberLiteral",this.category="Special",this.syntax="123 or 3.14",this.description="Numeric literal with validation",this.inputSchema=Ia,this.outputType="Number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);return n.isValid?Number.isFinite(t.value)?(this.trackSimple(e,r,!0,t.value),this.success(t.value,"number")):(this.trackSimple(e,r,!1),this.failure("NumberValidationError","invalid-argument","Number literal must be finite","NUMBER_NOT_FINITE")):(this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions))}catch(t){return this.trackSimple(e,r,!1),this.failure("NumberEvaluationError","runtime-error","Number literal evaluation failed: "+(t instanceof Error?t.message:t+""),"NUMBER_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?Number.isFinite(t.data.value)?this.validationSuccess():this.validationFailure("invalid-argument","Number literal value must be finite",["Use finite numbers only","Avoid Infinity and NaN values"]):this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid number literal input",["Provide a value parameter","Ensure value is a number"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}},booleanLiteral:new class extends Na{constructor(){super(...arguments),this.name="booleanLiteral",this.category="Special",this.syntax="true or false",this.description="Boolean literal values",this.inputSchema=Ma,this.outputType="Boolean",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);return n.isValid?(this.trackSimple(e,r,!0,t.value),this.success(t.value,"boolean")):(this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions))}catch(t){return this.trackSimple(e,r,!1),this.failure("BooleanEvaluationError","runtime-error","Boolean literal evaluation failed: "+(t instanceof Error?t.message:t+""),"BOOLEAN_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid boolean literal input",["Provide a value parameter","Ensure value is a boolean"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}},stringConcatenation:new class extends Na{constructor(){super(...arguments),this.name="stringConcatenation",this.category="Special",this.syntax="left + right (string concatenation)",this.description="Concatenation of two values into a string",this.inputSchema=$a,this.outputType="String",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors[0]?.message||"Invalid input","STRING_CONCATENATION_VALIDATION_FAILED",n.suggestions);const i=this.convertToString(t.left)+this.convertToString(t.right);return this.trackSimple(e,r,!0,i),this.success(i,"string")}catch(t){return this.trackSimple(e,r,!1),this.failure("StringConcatenationError","runtime-error",t instanceof Error?t.message:"String concatenation failed","STRING_CONCATENATION_ERROR",["Check that operands can be converted to strings"])}}validate(e){const t=$a.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid string concatenation input",["Provide left and right operands for concatenation"])}convertToString(e){if(null===e)return"null";if(void 0===e)return"undefined";if(tn(e))return e;if(rn(e))return""+e;if(nn(e))return""+e;if(e instanceof Date)return""+e;try{return e+""}catch{return"[object Object]"}}}};class Va{constructor(){this.name="addition",this.category="Special",this.syntax="left + right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Qn(e,"left operand");return{success:!0,value:ei(n+Qn(r,"right operand"),"addition"),type:"number"}}catch(e){return{success:!1,errors:[ai("runtime-error","Addition failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){const t=function(e){if(null==e)return ii([ai("missing-argument","Input is null or undefined")],["Provide an object with left and right operands"]);if("object"!=typeof e)return ii([ai("type-mismatch","Expected object, got "+typeof e)],["Provide an object with left and right operands"]);const t=e;if(!("left"in t)||!("right"in t)){const e=[];return"left"in t||e.push("left"),"right"in t||e.push("right"),ii([ai("missing-argument",`Missing ${e.join(" and ")} operand${e.length>1?"s":""}`)],["Provide { left: value, right: value }"])}return{isValid:!0,errors:[],suggestions:[]}}(e);if(!t.isValid)return t;const{left:r,right:n}=e;return ti(r)?ti(n)?{isValid:!0,errors:[],suggestions:[]}:{isValid:!1,errors:[ai("type-mismatch","Right operand cannot be converted to number: "+n)],suggestions:["Provide a numeric value for right operand"]}:{isValid:!1,errors:[ai("type-mismatch","Left operand cannot be converted to number: "+r)],suggestions:["Provide a numeric value for left operand"]}}}const Ha={addition:new Va,subtraction:new class{constructor(){this.name="subtraction",this.category="Special",this.syntax="left - right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Qn(e,"left operand");return{success:!0,value:ei(n-Qn(r,"right operand"),"subtraction"),type:"number"}}catch(e){return{success:!1,errors:[ai("runtime-error","Subtraction failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Va).validate(e)}},multiplication:new class{constructor(){this.name="multiplication",this.category="Special",this.syntax="left * right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Qn(e,"left operand");return{success:!0,value:ei(n*Qn(r,"right operand"),"multiplication"),type:"number"}}catch(e){return{success:!1,errors:[ai("runtime-error","Multiplication failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Va).validate(e)}},division:new class{constructor(){this.name="division",this.category="Special",this.syntax="left / right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=function(e,t,r=!0){if(0===t){if(r)return 0===e?NaN:e>0?1/0:-1/0;throw Error("Division by zero")}return e/t}(Qn(e,"left operand"),Qn(r,"right operand"),!0);return{success:!0,value:n,type:"number"}}catch(e){return{success:!1,errors:[ai("runtime-error","Division failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Va).validate(e)}},modulo:new class{constructor(){this.name="modulo",this.category="Special",this.syntax="left mod right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=function(e,t){if(0===t)throw Error("Modulo by zero");return e%t}(Qn(e,"left operand"),Qn(r,"right operand"));return{success:!0,value:n,type:"number"}}catch(e){return{success:!1,errors:[ai("runtime-error","Modulo failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric and divisor is not zero"]}}}validate(e){return(new Va).validate(e)}},power:new class{constructor(){this.name="power",this.category="Special",this.syntax="left ** right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Qn(e,"left operand"),i=Qn(r,"right operand");return{success:!0,value:ei(Math.pow(n,i),"power"),type:"number"}}catch(e){return{success:!1,errors:[ai("runtime-error","Power failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new Va).validate(e)}}},Wa={name:"first",category:"Reference",evaluatesTo:"Any",operators:["first"],async evaluate(e,t){const r=void 0!==t?t:e.it;return null==r?null:Array.isArray(r)||r instanceof NodeList||r instanceof HTMLCollection?r.length>0?r[0]:null:r instanceof Element?r.children.length>0?r.children[0]:null:tn(r)?r.length>0?r[0]:null:an(r)&&"length"in r&&rn(r.length)&&r.length>0?r[0]:null},validate:e=>wn(e,1,"first","collection")},Ba={name:"last",category:"Reference",evaluatesTo:"Any",operators:["last"],async evaluate(e,t){const r=void 0!==t?t:e.it;if(null==r)return null;if(Array.isArray(r))return r.length>0?r[r.length-1]:null;if(r instanceof NodeList||r instanceof HTMLCollection)return r.length>0?r[r.length-1]:null;if(r instanceof Element){const e=r.children;return e.length>0?e[e.length-1]:null}return tn(r)?r.length>0?r[r.length-1]:null:an(r)&&"length"in r&&rn(r.length)&&r.length>0?r[r.length-1]:null},validate:e=>wn(e,1,"last","collection")},Fa={name:"at",category:"Reference",evaluatesTo:"Any",operators:["at"],async evaluate(e,...t){const[r,n]=t;if(!rn(r))throw Error("Index must be a number");const i=r,a=void 0!==n?n:e.it;if(null==a)return null;if(Array.isArray(a)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(a instanceof NodeList||a instanceof HTMLCollection){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(a instanceof Element){const e=a.children,t=0>i?e.length+i:i;return t>=0&&e.length>t?e[t]:null}if(tn(a)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(an(a)&&"length"in a&&rn(a.length)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}return null},validate:e=>kn(e,1,2,"at","index, optional collection")??function(e){return"number"!=typeof e[0]?"at index must be a number":null}(e)};function Da(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;const e=r.querySelector(t);if(e)return e;r=r.nextElementSibling}const n=e.parentElement;return n&&n!==document.documentElement?Da(n,t):null}function Ua(e,t){let r=e.previousElementSibling;for(;r;){const e=Array.from(r.querySelectorAll(t)).reverse();if(e.length>0)return e[0];if(r.matches(t))return r;r=r.previousElementSibling}const n=e.parentElement;return n&&n!==document.documentElement?Ua(n,t):null}function Ka(e,t,r,n){if(r.inSearch){if(null==r.inElt)return;return function(e,t,r,n){const i=Array.from(t??[]),a=[];for(const t of i)(t.matches&&t.matches(r)||t===e)&&a.push(t);for(let t=0;a.length-1>t;t++)if(a[t]===e)return a[t+1];if(n){const e=a[0];if(e&&e.matches&&e.matches(r))return e}}(e,n?Array.from(r.inElt):Array.from(r.inElt).reverse(),t,!!r.wrapping)}const i=r.within??("undefined"!=typeof document?document.body:null);if(i)return n?function(e,t,r,n){const i=t.querySelectorAll(r);for(let t=0;i.length>t;t++){const r=i[t];if(2===r.compareDocumentPosition(e))return r}return n?i[0]:void 0}(e,i,t,!!r.wrapping):function(e,t,r,n){const i=t.querySelectorAll(r);for(let t=i.length-1;t>=0;t--){const r=i[t];if(4===r.compareDocumentPosition(e))return r}return n?i[i.length-1]:void 0}(e,i,t,!!r.wrapping)}function Za(e){let t=0,r=e;for(;r&&r.parentElement;)t+=Array.from(r.parentElement.children).indexOf(r),r=r.parentElement,t+=1e3;return t}const Ya={first:Wa,last:Ba,at:Fa,next:{name:"next",category:"Reference",evaluatesTo:"Element",operators:["next"],async evaluate(e,...t){const[r,n,i]=t,a=n||e.me;return a&&a instanceof Element?r?i?Ka(a,r,i,!0):Da(a,r):a.nextElementSibling:null},validate:e=>wn(e,3,"next","optional selector, optional fromElement, optional modifiers")||(1>e.length||null==e[0]||"string"==typeof e[0]?2>e.length||null==e[1]||e[1]instanceof Element?null:"fromElement must be an Element":"selector must be a string")},previous:{name:"previous",category:"Reference",evaluatesTo:"Element",operators:["previous","prev"],async evaluate(e,...t){const[r,n,i]=t,a=n||e.me;return a&&a instanceof Element?r?i?Ka(a,r,i,!1):Ua(a,r):a.previousElementSibling:null},validate:e=>wn(e,3,"previous","optional selector, optional fromElement, optional modifiers")||(1>e.length||null==e[0]||"string"==typeof e[0]?2>e.length||null==e[1]||e[1]instanceof Element?null:"fromElement must be an Element":"selector must be a string")},nextWithin:{name:"nextWithin",category:"Reference",evaluatesTo:"Element",operators:["next within"],async evaluate(e,...t){const[r,n,i]=t,a=i||e.me;if(!(a&&a instanceof Element))return null;const s=a.closest(n);return s?function(e,t,r){const n=Array.from(r.querySelectorAll(t)),i=Za(e);for(const e of n)if(Za(e)>i)return e;return null}(a,r,s):null},validate:e=>kn(e,2,3,"nextWithin","selector, withinSelector, optional fromElement")||("string"!=typeof e[0]?"selector must be a string":"string"!=typeof e[1]?"withinSelector must be a string":3>e.length||null==e[2]||e[2]instanceof Element?null:"fromElement must be an Element")},previousWithin:{name:"previousWithin",category:"Reference",evaluatesTo:"Element",operators:["previous within"],async evaluate(e,...t){const[r,n,i]=t,a=i||e.me;if(!(a&&a instanceof Element))return null;const s=a.closest(n);return s?function(e,t,r){const n=Array.from(r.querySelectorAll(t)),i=Za(e);for(let e=n.length-1;e>=0;e--){const t=n[e];if(i>Za(t))return t}return null}(a,r,s):null},validate:e=>kn(e,2,3,"previousWithin","selector, withinSelector, optional fromElement")||("string"!=typeof e[0]?"selector must be a string":"string"!=typeof e[1]?"withinSelector must be a string":3>e.length||null==e[2]||e[2]instanceof Element?null:"fromElement must be an Element")}};function Ja(e,t,r,n,i,a){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var o,l=n.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?n.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),m=!1,p=r.length-1;p>=0;p--){var h={};for(var f in n)h[f]="access"===f?{}:n[f];for(var f in n.access)h.access[f]=n.access[f];h.addInitializer=function(e){if(m)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(e||null))};var y=(0,r[p])("accessor"===l?{get:d.get,set:d.set}:d[c],h);if("accessor"===l){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(o=s(y.get))&&(d.get=o),(o=s(y.set))&&(d.set=o),(o=s(y.init))&&i.unshift(o)}else(o=s(y))&&("field"===l?i.unshift(o):d[c]=o)}u&&Object.defineProperty(u,n.name,d),m=!0}function Ga(e,t,r){for(var n=arguments.length>2,i=0;t.length>i;i++)r=n?t[i].call(e,r):t[i].call(e);return n?r:void 0}function Qa(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})}function Xa(e){const t=e.trim();return!(!t.startsWith("[@")||!t.endsWith("]"))||!!t.startsWith("@")}function es(e){const t=e.trim();if(t.startsWith("[@")&&t.endsWith("]")){const e=t.slice(2,-1),r=e.indexOf("=");if(-1===r)return{name:e.trim()};const n=e.slice(0,r).trim();let i=e.slice(r+1).trim();return(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),{name:n,value:i}}if(t.startsWith("@"))return{name:t.substring(1).trim()};throw Error("Invalid attribute syntax: "+e)}function ts(e){const t=e.trim().match(/^(\d+(?:\.\d+)?)\s*(s|ms|sec|seconds?|milliseconds?)?$/i);if(!t)return null;const r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();return"ms"===n||"millisecond"===n||"milliseconds"===n?{number:r,milliseconds:Math.floor(r)}:"s"===n||"sec"===n||"second"===n||"seconds"===n?{number:r,milliseconds:Math.floor(1e3*r)}:null}function rs(e,t=300){if("number"==typeof e)return Math.max(0,Math.floor(e));if("string"==typeof e){const r=ts(e);return r?r.milliseconds:t}return t}function ns(e){if("number"==typeof e){if(0>e)throw Error("Duration must be >= 0");return Math.floor(e)}if("string"==typeof e){const t=ts(e);if(!t)throw Error(`Invalid duration format: "${e}"`);return t.milliseconds}throw Error("Invalid duration type: "+typeof e)}function is(e){return e&&"none"!==e?e.split(",").map(e=>{const t=parseFloat(e.trim());return isNaN(t)?0:e.includes("s")&&!e.includes("ms")?1e3*t:t}):[0]}function as(e,t){let r=0;for(let n=0;e.length>n;n++)r=Math.max(r,(e[n]||0)+(t[n]||0));return r}function ss(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function os(e,t){for(const r of e)t(r);return e}function ls(e,t,r){for(const n of e)for(const e of t)r(n,e);return e}function cs(e,t,r){const n=e.hasAttribute(t);void 0!==r?n&&e.getAttribute(t)===r?e.removeAttribute(t):e.setAttribute(t,r):n?e.removeAttribute(t):e.setAttribute(t,"")}function us(e){return e.startsWith("--")?e:ss(e)}function ds(e){if(!e)return[];if("string"==typeof e)return e.trim().split(/[\s,]+/).map(e=>{const t=e.trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&ps(e));if(Array.isArray(e))return e.map(e=>{const t=(e+"").trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&ps(e));const t=(e+"").trim(),r=t.startsWith(".")?t.substring(1):t;return r.length>0&&ps(r)?[r]:[]}function ms(e){const t=e.trim();return/^\{[^}]+\}$/.test(t)}function ps(e){if(!e||0===e.trim().length)return!1;const t=e.trim();return!!ms(t)||/^[a-zA-Z_-][a-zA-Z0-9_-]*$/.test(t)}function hs(e,t){return e.map(e=>{if(ms(e)){const r=function(e){const t=e.trim(),r=t.match(/^\{(.+)\}$/);return r?r[1].trim():t}(e),n=t.locals.get(r)??t.globals.get(r);return null!=n?n+"":(ue(`Dynamic class variable '${r}' not found in context`),"")}return e}).filter(e=>e.length>0)}function fs(e){return function(t,r){Object.defineProperty(t.prototype,"name",{value:e.name,writable:!1,enumerable:!0})}}function ys(e){return{...e}}function gs(e){return()=>new e}function vs(e,t){return e?`[${e}] ${t}`:t}function bs(e,t,r){if($r(e))return e;if(!e){const e=t.me;if(!e)throw Error(vs(r,"No target element \u2014 provide explicit target or ensure context.me is set"));return ks(e)}if("string"==typeof e){const n=e.trim();if("me"===n){if(!t.me)throw Error(vs(r,'Context reference "me" is not available'));return ks(t.me)}if("it"===n){if(!$r(t.it))throw Error(vs(r,'Context reference "it" is not an HTMLElement'));return t.it}if("you"===n){if(!t.you)throw Error(vs(r,'Context reference "you" is not available'));return ks(t.you)}const i=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!i)throw Error(vs(r,"DOM not available \u2014 cannot resolve element selector"));const a=i.querySelector(n);if(!a)throw Error(vs(r,"Element not found with selector: "+n));if(!$r(a))throw Error(vs(r,"Element found but is not an HTMLElement: "+n));return a}throw Error(vs(r,"Invalid target type: "+typeof e))}function ws(e,t){if(Array.isArray(e))return e.filter($r);if(zr(e))return Array.from(e).filter($r);if($r(e))return[e];if(!e){const e=t.me;return e&&$r(e)?[e]:[]}if("string"==typeof e){const r=e.trim();if("me"===r)return t.me&&$r(t.me)?[t.me]:[];if("it"===r)return $r(t.it)?[t.it]:[];if("you"===r)return t.you&&$r(t.you)?[t.you]:[];const n=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(n){let e=r;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const t=n.querySelectorAll(e);return Array.from(t).filter($r)}}return[]}function ks(e){if($r(e))return e;throw Error("Value is not an HTMLElement")}function Es(e,t,r){switch(e.toLowerCase()){case"my":case"me":if(!t.me)throw Error(vs(r,'No "me" element in context'));if(!$r(t.me))throw Error(vs(r,"context.me is not an HTMLElement"));return t.me;case"its":case"it":if(!t.it)throw Error(vs(r,'No "it" value in context'));if(!$r(t.it))throw Error(vs(r,"context.it is not an HTMLElement"));return t.it;case"your":case"you":if(!t.you)throw Error(vs(r,'No "you" element in context'));if(!$r(t.you))throw Error(vs(r,"context.you is not an HTMLElement"));return t.you;default:throw Error(vs(r,"Unknown possessive: "+e))}}async function xs(e,t,r,n,i={},a){let s=e;if((!s||0===s.length)&&i.fallbackModifierKey&&a){const e=a[i.fallbackModifierKey];e&&(s=[e])}if(!s||0===s.length){if(!r.me)throw Error(n+" command: no target specified and context.me is null");if(!$r(r.me))throw Error(n+" command: context.me must be an HTMLElement");return[r.me]}const o=[];for(const e of s){const i=await t.evaluate(e,r);if(""!==i&&("string"!=typeof i||""!==i.trim()))if($r(i))o.push(i);else if(zr(i)){const e=Array.from(i).filter($r);o.push(...e)}else if(Array.isArray(i)){const e=i.filter($r);o.push(...e)}else{if("string"!=typeof i){if(null==i)continue;throw Error(`Invalid ${n} target: expected HTMLElement or CSS selector, got ${typeof i}`)}try{let e=i;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const t=r.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!t)throw Error("DOM not available - cannot resolve element selector");const n=t.querySelectorAll(e),a=Array.from(n).filter($r);o.push(...a)}catch(e){throw Error(`Invalid CSS selector: "${i}" - ${e instanceof Error?e.message:e+""}`)}}}if(0===o.length){if(!r.me)throw Error(n+" command: no target specified and context.me is null");if(!$r(r.me))throw Error(n+" command: context.me must be an HTMLElement");return[r.me]}return o}function As(e){return"string"==typeof e&&e.trim().startsWith("*")}function Cs(e){const t=function(e){const t=e.trim();if(!t.startsWith("*"))return null;const r=t.substring(1).trim();return r?{property:r}:null}(e);if(!t)return null;const r=t.property.toLowerCase();return["display","visibility","opacity"].includes(r)?r:null}function Ss(e,t,r){e.style.setProperty(t,r)}"function"==typeof SuppressedError&&SuppressedError;const Ts=["dialog","details","summary","select"];function Os(e){return e&&"object"==typeof e?"string"==typeof e.selector?e.selector:"string"==typeof e.value?e.value:"string"==typeof e.name?e.name:null:null}async function Ls(e,t,r){return function(e){if(!e||"object"!=typeof e)return!1;const t=e.type;if("selector"!==t&&"cssSelector"!==t&&"classSelector"!==t)return!1;const r=Os(e);return"string"==typeof r&&r.startsWith(".")}(e)||function(e){if(!e||"object"!=typeof e)return!1;const t=e.type;if("selector"!==t&&"cssSelector"!==t&&"cssProperty"!==t)return!1;const r=Os(e);return"string"==typeof r&&r.startsWith("*")}(e)?{value:Os(e),extractedFromNode:!0}:function(e){if(!e||"object"!=typeof e)return!1;if("attributeAccess"===e.type)return!0;if("selector"===e.type||"cssSelector"===e.type){const t=Os(e);return"string"==typeof t&&t.startsWith("@")}return!1}(e)?{value:(n=e,"attributeAccess"===n.type?"@"+n.attributeName:Os(n)),extractedFromNode:!0}:{value:await t.evaluate(e,r),extractedFromNode:!1};var n}class js{async resolveTargets(e,t,r){const n=r?.[this.preposition];return xs(n?[n]:[],e,t,this.mode)}async evaluateFirst(e,t,r){return Ls(e,t,r)}parseClassNames(e){return ds(e)}isAttribute(e){return Xa(e.trim())}isCSSProperty(e){return As(e.trim())}validateTargets(e){return Array.isArray(e)&&function(e){return Array.isArray(e)&&e.length>0&&e.every(e=>$r(e))}(e)}validateType(e,t){return function(e,t){return"string"==typeof e&&t.includes(e)}(e,t)}validateStringArray(e,t=1){return Array.isArray(e)&&function(e,t=1){return Array.isArray(e)&&e.length>=t&&e.every(e=>"string"==typeof e&&e.length>0)}(e,t)}}let qs=(()=>{let e,t,r=[fs({name:"add"})],n=[],i=js;var a=t=class extends i{constructor(){super(...arguments),this.mode="add",this.preposition="to"}get metadata(){return a.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("add command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if("object"==typeof n&&null!==n&&!Array.isArray(n))return{type:"styles",styles:n,targets:await this.resolveTargets(t,r,e.modifiers)};if("string"==typeof n){const i=n.trim();if(this.isAttribute(i)){const{name:n,value:a}=function(e){const t=es(e);return{name:t.name,value:t.value??""}}(i);return{type:"attribute",name:n,value:a,targets:await this.resolveTargets(t,r,e.modifiers)}}if(this.isCSSProperty(i)){const n=i.substring(1).trim(),a=e.args[1];if(!a)throw Error("add *property requires a value argument");const s=await t.evaluate(a,r);return{type:"styles",styles:{[n]:s+""},targets:await this.resolveTargets(t,r,e.modifiers)}}}const i=this.parseClassNames(n);if(0===i.length)throw Error("add command: no valid class names found");return{type:"classes",classes:i,targets:await this.resolveTargets(t,r,e.modifiers)}}async execute(e,t){switch(e.type){case"classes":{const r=hs(e.classes,t);r.length>0&&ls(e.targets,r,(e,t)=>{e.classList.contains(t)||e.classList.add(t)});break}case"attribute":r=e.name,n=e.value,os(e.targets,e=>{e.setAttribute(r,n)});break;case"styles":!function(e,t){ls(e,Object.entries(t),(e,[t,r])=>{e.style.setProperty(us(t),r)})}(e.targets,e.styles)}var r,n}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!this.validateType(t.type,["classes","attribute","styles"]))return!1;if(!this.validateTargets(t.targets))return!1;if("classes"===t.type){if(!this.validateStringArray(e.classes,1))return!1}else if("attribute"===t.type){if("string"!=typeof e.name||0===e.name.length)return!1;if("string"!=typeof e.value)return!1}else if("styles"===t.type){const t=e;if("object"!=typeof t.styles||null===t.styles)return!1;if(Array.isArray(t.styles))return!1;const r=t.styles;if(0===Object.keys(r).length)return!1;if(!Object.values(r).every(e=>"string"==typeof e))return!1}return!0}};return Qa(t,"AddCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Add CSS classes, attributes, or styles to elements",syntax:"add <classes|@attr|{styles}> [to <target>]",examples:["add .active to me",'add "active selected" to <button/>',"add .highlighted to #modal",'add [@data-test="value"] to #element'],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),a=t})();const Ps=gs(qs),Ns={before:"beforebegin",prepend:"afterbegin",append:"beforeend",after:"afterend",into:"replace"};function Rs(e){const t=Ns[e];if(void 0===t)throw Error(`Unknown semantic position '${e}'. Valid positions: ${Object.keys(Ns).join(", ")}.`);return t}function Is(e){return e.includes("<")&&e.includes(">")}function Ms(e,t,r){!function(e,t,r){"replace"!==r?_r(t)?function(e,t,r){switch(r){case"beforebegin":e.parentElement?.insertBefore(t,e);break;case"afterbegin":e.insertBefore(t,e.firstChild);break;case"beforeend":e.appendChild(t);break;case"afterend":e.parentElement?.insertBefore(t,e.nextSibling)}}(e,t,r):function(e,t,r){const n=r,i=["beforebegin","afterbegin","beforeend","afterend"];if(!i.includes(n))throw Error(`Invalid insert position '${r}'. Expected one of ${i.join(", ")} (or 'replace').`);Is(t)?e.insertAdjacentHTML(n,t):e.insertAdjacentText(n,t)}(e,t,r):function(e,t){_r(t)?(e.innerHTML="",e.appendChild(t)):Is(t)?e.innerHTML=t:e.textContent=t}(e,t)}(e,t,Rs(r))}function $s(e,t,r){const n=e;if("function"==typeof n.moveBefore&&t.isConnected&&e.isConnected)try{return void n.moveBefore(t,r)}catch{}e.insertBefore(t,r)}function _s(e,t,r){switch(r){case"beforeend":for(const r of t)$s(e,r,null);break;case"afterbegin":for(let r=t.length-1;r>=0;r--)$s(e,t[r],e.firstChild);break;case"beforebegin":{const r=e.parentElement;if(!r)return;for(const n of t)$s(r,n,e);break}case"afterend":{const r=e.parentElement;if(!r)return;for(let n=t.length-1;n>=0;n--)$s(r,t[n],e.nextSibling);break}case"replace":e.innerHTML="";for(const r of t)$s(e,r,null)}}function zs(e){return!!e.parentNode&&(e.remove(),!0)}let Vs=(()=>{let e,t,r=[fs({name:"remove"})],n=[],i=js;var a=t=class extends i{constructor(){super(...arguments),this.mode="remove",this.preposition="from"}get metadata(){return a.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("remove command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if($r(n))return{type:"element",targets:[n]};if(Array.isArray(n)&&n.length>0&&$r(n[0]))return{type:"element",targets:n.filter(e=>$r(e))};if("string"==typeof n){const i=n.trim();if(this.isAttribute(i))return{type:"attribute",name:es(i).name,targets:await this.resolveTargets(t,r,e.modifiers)};if(this.isCSSProperty(i))return{type:"styles",properties:[i.substring(1).trim()],targets:await this.resolveTargets(t,r,e.modifiers)}}const i=this.parseClassNames(n);if(0===i.length)throw Error("remove command: no valid class names found");return{type:"classes",classes:i,targets:await this.resolveTargets(t,r,e.modifiers)}}execute(e,t){switch(e.type){case"classes":{const r=hs(e.classes,t);r.length>0&&ls(e.targets,r,(e,t)=>{e.classList.remove(t)});break}case"attribute":r=e.name,os(e.targets,e=>{e.removeAttribute(r)});break;case"styles":!function(e,t){ls(e,t,(e,t)=>{e.style.removeProperty(us(t))})}(e.targets,e.properties);break;case"element":for(const t of e.targets)zs(t)}var r}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!this.validateType(t.type,["classes","attribute","styles","element"]))return!1;if(!this.validateTargets(t.targets))return!1;if("classes"===t.type){if(!this.validateStringArray(e.classes,1))return!1}else if("attribute"===t.type){if("string"!=typeof e.name||0===e.name.length)return!1}else if("styles"===t.type&&!this.validateStringArray(e.properties,1))return!1;return!0}};return Qa(t,"RemoveCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Remove CSS classes, attributes, styles, or elements from the DOM",syntax:"remove <classes|@attr|*prop|element> [from <target>]",examples:["remove .active from me",'remove "active selected" from <button/>',"remove .highlighted from #modal","remove me","remove closest .item"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),a=t})();const Hs=gs(Vs);function Ws(e){return 0===e.length?[]:"SUMMARY"===e[0].tagName?e.map(e=>e.closest("details")).filter(e=>null!==e):e}function Bs(e){return"DIALOG"===e.tagName}function Fs(e){return"DETAILS"===e.tagName}function Ds(e,t,r){return()=>{"class"===t?e.classList.toggle(r):"attribute"===t&&cs(e,r)}}function Us(e,t,r,n){const i=Ds(e,t,r),a=setTimeout(i,n);return()=>{clearTimeout(a)}}function Ks(e,t,r,n){const i=Ds(e,t,r),a=()=>{i(),e.removeEventListener(n,a)};return e.addEventListener(n,a,{once:!0}),()=>{e.removeEventListener(n,a)}}function Zs(e,t,r){if(t.startsWith("@")){const n=t.substring(1);return void(!1===r?e.removeAttribute(n):e.setAttribute(n,!0===r?"":r+""))}const n=r+"";switch(t){case"textContent":return void(e.textContent=n);case"innerHTML":return void(e.innerHTML=n);case"innerText":return void(e.innerText=n);case"id":return void(e.id=n);case"className":return void(e.className=n);case"value":return void("value"in e&&(e.value=n));case"checked":return void("checked"in e&&(e.checked=!!r))}if(t.includes(".")){const n=t.split(".");let i=e;for(let e=0;n.length-1>e;e++)if(i=i[n[e]],null==i)return;return void(i[n[n.length-1]]=r)}if(t.includes("-")||t in e.style)e.style.setProperty(t,n);else try{e[t]=r}catch(e){if(!(e instanceof TypeError&&(e.message.includes("only a getter")||e.message.includes("read only"))))throw Error(`Cannot set property '${t}': ${e instanceof Error?e.message:"Unknown error"}`)}}function Ys(e){return null==e||""===e}function Js(e,t){return function(e){return!!e&&"object"==typeof e&&"string"==typeof e.type}(e)&&e.type===t}function Gs(e){return Js(e,"literal")}const Qs=/^the\s+(.+?)\s+of\s+(.+)$/i,Xs=new Set(["disabled","checked","hidden","readOnly","readonly","required","multiple","selected","autofocus","autoplay","controls","loop","muted","open","reversed","async","defer","noValidate","novalidate","formNoValidate","formnovalidate","draggable","spellcheck","contentEditable"]);function eo(e){return"string"==typeof e&&Qs.test(e)}function to(e,t){const r=e.match(Qs);if(!r)return null;try{return{element:bs(r[2].trim(),t),property:r[1].trim()}}catch{return null}}async function ro(e,t,r){if(function(e){if(!Js(e,"propertyOfExpression"))return!1;const t=e.property;return"object"==typeof t&&null!==t}(e))return async function(e,t,r){const n=e.property?.name;if(!n)return null;let i=await t.evaluate(e.target,r);return Array.isArray(i)&&(i=i[0]),$r(i)?{element:i,property:n}:null}(e,t,r);if(function(e){if(!Js(e,"propertyAccess"))return!1;const t=e.property;return"string"==typeof t||"object"==typeof t&&null!==t&&"string"==typeof t.name}(e))return async function(e,t,r){const n="string"==typeof e.property?e.property:e.property?.name;if(!n)return null;let i=await t.evaluate(e.object,r);return Array.isArray(i)&&(i=i[0]),$r(i)?{element:i,property:n}:null}(e,t,r);const n=e;if("possessiveExpression"===n?.type||"memberExpression"===n?.type){const e=n.object,i=n.property;let a=await t.evaluate(e,r);if(Array.isArray(a)&&(a=a[0]),!$r(a))return null;const s=i?.name||i?.value;return s?{element:a,property:s}:null}return null}function no(e){const{element:t,property:r}=e;return r.startsWith("*")?function(e,t){return window.getComputedStyle(e).getPropertyValue(t)}(t,r.substring(1)):pn(t,r)}function io(e,t){const{element:r,property:n}=e;n.startsWith("*")?Ss(r,n.substring(1),t+""):Zs(r,n,t)}async function ao(e,t,r){let n,i;if(e?.for){const i=await t.evaluate(e.for,r);n="number"==typeof i?i:"string"==typeof i?rs(i):void 0}if(e?.until){const n=await t.evaluate(e.until,r);"string"==typeof n&&(i=n)}return{duration:n,untilEvent:i}}function so(e,t){const r=t?.name,n=function(e){if(!e||"object"!=typeof e)return!1;if("identifier"!==e.type)return!1;const t=e.name;return"string"==typeof t&&function(e){if("string"!=typeof e)return!1;const t=e.toLowerCase();return Ts.includes(t)}(t)}(t);if($r(e)||Array.isArray(e)&&e.every(e=>$r(e)))return{type:"element",expression:""};if(n&&r)return{type:"element",expression:r};if("string"==typeof e){const t=e.trim();return t.startsWith("@")||t.startsWith("[@")?{type:"attribute",expression:t}:t.startsWith("*")?{type:"css-property",expression:t}:t.startsWith(".")?{type:"class",expression:t}:t.startsWith("#")||function(e){if("string"!=typeof e)return!1;const t=e.toLowerCase();return Ts.some(e=>t.includes(e))}(t)?{type:"element",expression:t}:{type:"class",expression:t}}return{type:"class",expression:""}}const oo=gs((()=>{let e,t,r=[fs({name:"toggle"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers?.between;if(Js(n,"arrayLiteral")&&n.elements.length>=2){const{duration:i,untilEvent:a}=await ao(e.modifiers,t,r),s=async e=>Js(e,"selector")?e.value:t.evaluate(e,r);return{type:"classes-between",classA:(await s(n.elements[0])+"").replace(/^\./,""),classB:(await s(n.elements[1])+"").replace(/^\./,""),targets:await xs([],t,r,"toggle",{fallbackModifierKey:"on"},e.modifiers),duration:i,untilEvent:a}}if(!e.args?.length)throw Error("toggle command requires an argument");const i=e.args[0],a=await ro(i,t,r);if(a)return{type:"property",target:a};if("selector"===i.type&&"string"==typeof i.value&&i.value.startsWith("*")){let n=i.value,a=1;if("*"===n&&"identifier"===e.args[1]?.type&&(n="*"+e.args[1].name,a=2),"*"===n&&e.modifiers?.on){const i=e.modifiers.on?.name;if(i&&["display","visibility","opacity"].includes(i)){n="*"+i;const{duration:a,untilEvent:s}=await ao(e.modifiers,t,r),o=Cs(n);if(o){const e=r.me;return{type:"css-property",property:o,targets:e?[e]:[],duration:a,untilEvent:s}}}}const s=Cs(n);if(s){const{duration:n,untilEvent:i}=await ao(e.modifiers,t,r),o={fallbackModifierKey:"on"};return{type:"css-property",property:s,targets:await xs(e.args.slice(a),t,r,"toggle",o,e.modifiers),duration:n,untilEvent:i}}}const{duration:s,untilEvent:o}=await ao(e.modifiers,t,r),{value:l}=await Ls(i,t,r);if(eo(l)){const e=to(l,r);if(e)return{type:"property",target:e}}const{type:c,expression:u}=so(l,i),d={fallbackModifierKey:"on"};switch(c){case"attribute":{const{name:n,value:i}=es(u);return{type:"attribute",name:n,value:i,targets:await xs(e.args.slice(1),t,r,"toggle",d,e.modifiers),duration:s,untilEvent:o}}case"css-property":{const n=Cs(u);if(!n)throw Error("Invalid CSS property: "+u);return{type:"css-property",property:n,targets:await xs(e.args.slice(1),t,r,"toggle",d,e.modifiers)}}case"element":{let n;if($r(l))n=[l];else if(Array.isArray(l)&&l.every(e=>$r(e)))n=l;else if(u){const e=document.querySelectorAll(u);n=Array.from(e).filter(e=>$r(e))}else n=await xs([i],t,r,"toggle",d,e.modifiers);const a=function(e){if(0===e.length)return null;const t=e[0].tagName;if(!e.every(e=>e.tagName===t))return null;switch(t){case"DIALOG":return"dialog";case"DETAILS":return"details";case"SELECT":return"select";case"SUMMARY":return e.map(e=>e.closest("details")).filter(e=>null!==e).length>0?"details":null;default:return null}}(n);if("dialog"===a){const i=await async function(e,t,r){if(!e?.as)return"non-modal";const n=await t.evaluate(e.as,r);return"string"==typeof n&&"modal"===n.toLowerCase()?"modal":"non-modal"}(e.modifiers,t,r);return{type:"dialog",mode:i,targets:n}}return"details"===a?{type:"details",targets:Ws(n)}:"select"===a?{type:"select",targets:n}:{type:"classes",classes:ds(u),targets:n,duration:s,untilEvent:o}}default:{const n=ds(u||l);if(!n.length)throw Error("toggle command: no valid class names found");return{type:"classes",classes:n,targets:await xs(e.args.slice(1),t,r,"toggle",d,e.modifiers),duration:s,untilEvent:o}}}}async execute(e,t){switch(e.type){case"classes":{const r=hs(e.classes,t);if(0===r.length)return[...e.targets];if(ls(e.targets,r,(e,t)=>{e.classList.toggle(t)}),(e.duration||e.untilEvent)&&r.length)for(const t of e.targets)e.duration&&Us(t,"class",r[0],e.duration),e.untilEvent&&Ks(t,"class",r[0],e.untilEvent);return[...e.targets]}case"attribute":if(r=e.name,n=e.value,os(e.targets,e=>{cs(e,r,n)}),e.duration||e.untilEvent)for(const t of e.targets)e.duration&&Us(t,"attribute",e.name,e.duration),e.untilEvent&&Ks(t,"attribute",e.name,e.untilEvent);return[...e.targets];case"css-property":return os(e.targets,t=>function(e,t){const r=window.getComputedStyle(e);switch(t){case"display":"none"===r.display?(e.style.display=e.dataset.previousDisplay||"block",delete e.dataset.previousDisplay):(e.dataset.previousDisplay=r.display,e.style.display="none");break;case"visibility":e.style.visibility="hidden"===r.visibility?"visible":"hidden";break;case"opacity":e.style.opacity=0===parseFloat(r.opacity)?"1":"0"}}(t,e.property));case"property":return function(e){const t=no(e),r=e.property,n=r.startsWith("@")?r.substring(1):r;if("boolean"==typeof t||Xs.has(n)||Xs.has(n.toLowerCase())){const r=!t;return io(e,r),r}if("number"==typeof t){const r=0===t?1:0;return io(e,r),r}if("string"==typeof t){const n="__ht_"+r,i=e.element[n];return""===t&&void 0!==i?(io(e,i),i):(e.element[n]=t,io(e,""),"")}io(e,!t)}(e.target),[e.target.element];case"dialog":return os(e.targets,t=>{return n=e.mode,void((r=t).open?r.close():"modal"===n?r.showModal():r.show());var r,n});case"details":return os(e.targets,e=>{var t;(t=e).open=!t.open});case"select":return os(e.targets,e=>function(e){if(document.activeElement===e)e.blur();else{if(e.focus(),"showPicker"in e&&"function"==typeof e.showPicker)try{return void e.showPicker()}catch{}const t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});e.dispatchEvent(t)}}(e));case"classes-between":for(const t of e.targets){const r=t.classList.contains(e.classA),n=t.classList.contains(e.classB);r?(t.classList.remove(e.classA),t.classList.add(e.classB)):n?(t.classList.remove(e.classB),t.classList.add(e.classA)):t.classList.add(e.classA)}if(e.duration||e.untilEvent)for(const t of e.targets)e.duration&&Us(t,"class",e.classA,e.duration),e.untilEvent&&Ks(t,"class",e.classA,e.untilEvent);return[...e.targets]}var r,n}};return Qa(t,"ToggleCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Toggle classes, attributes, or interactive elements",syntax:["toggle <class> [on <target>]","toggle @attr","toggle <element> [as modal]","toggle <expr> for <duration>"],examples:["toggle .active on me","toggle @disabled","toggle #myDialog as modal","toggle .loading for 2s","toggle between .expanded and .collapsed","toggle .loading until click from #done"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());const lo=gs((()=>{let e,t,r=[fs({name:"put"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("put requires arguments");const n=["into","before","after","at","at start of","at end of"].find(t=>e.modifiers?.[t]);let i=e.args[0]??null,a=null,s=null;if(n)a=n,s=e.modifiers[n];else{if(!e.args[1])throw Error("put requires content and position");a="into",s=e.args[1]}if(!i)throw Error("put requires content");if(!a)throw Error("put requires position keyword");const o=await t.evaluate(i,r),l=this.mapPosition(a);let c,u,d=null;if(s){const e=(m=s,m?.type||"unknown"),n=await ro(s,t,r);if(n)return{value:o,targets:[n.element],position:"into",memberPath:n.property};if("memberExpression"===e){const e=s.object,n=s.property;if("selector"===e?.type)d=e.value;else if("identifier"===e?.type){const i=e.name;if("my"===i||"me"===i||"I"===i){if(r.me&&n?.name)return{value:o,targets:[r.me],position:"into",memberPath:n.name}}else if("its"===i||"it"===i){const e=await t.evaluate(s,r);"string"==typeof e&&(d=e)}else d=i}if(d&&n?.name)c=n.name;else if(!d&&!c){const e=await t.evaluate(s,r);"string"==typeof e&&(d=e)}}else if("identifier"===e&&"me"===s.name)d=null;else if("selector"===e||"cssSelector"===e)d=s.value||s.selector;else if("literal"===e){const e=s.value;if("string"==typeof e&&eo(e)){const t=to(e,r);if(t)return{value:o,targets:[t.element],position:"into",memberPath:t.property}}"string"==typeof e&&this.looksLikeCss(e)?d=e:u=e+""}else if("identifier"===e){const e=s.name;if(this.looksLikeCss(e))d=e;else{const n=Xr(await t.evaluate(s,r));if(n)return{value:o,targets:n,position:l,memberPath:c};u=e}}else{const e=await t.evaluate(s,r),n=Xr(e);if(n)return{value:o,targets:n,position:l,memberPath:c};"string"==typeof e&&(this.looksLikeCss(e)?d=e:u=e)}}var m;return u?{value:o,targets:[],position:l,memberPath:c,variableName:u}:{value:o,targets:await this.resolveTargets(d,r),position:l,memberPath:c}}async execute(e,t){const{value:r,targets:n,position:i,memberPath:a,variableName:s}=e;if(s)return t.locals&&t.locals.set(s,r),t[s]=r,void Object.assign(t,{it:r});if(a)for(const e of n)this.setProperty(e,a,r);else for(const e of n){const t=this.parseValue(r);Array.isArray(t)?_s(e,t,Rs(i)):Ms(e,t,i)}return n}mapPosition(e){switch(e){case"into":return"into";case"before":return"before";case"after":return"after";case"at start of":return"prepend";case"at end of":return"append";default:throw Error("Invalid position: "+e)}}async resolveTargets(e,t){if(!e||"me"===e){if(!t.me||!$r(t.me))throw Error("put: no target and context.me is null");return[t.me]}return Qr(e)}parseValue(e){return $r(e)||Array.isArray(e)&&e.length>0&&e.every($r)||_r(e)?e:null==e?"null":Array.isArray(e)?function(e){const t=document.createDocumentFragment();for(const r of e){if(_r(r)){t.append(r);continue}const e=document.createElement("template");e.innerHTML=null===r?"":r+"",t.append(e.content)}return t}(e):e+""}looksLikeCss(e){return!!e&&(!!/^[#.\[]/.test(e)||(!(!/[>+~\s]/.test(e)||1>=e.length)||["div","span","p","a","button","input","form","ul","li","ol","table","tr","td","th","img","h1","h2","h3","h4","h5","h6","section","article","header","footer","nav","main","aside","dialog","label","select","option","textarea"].includes(e.toLowerCase())))}setProperty(e,t,r){const n=t.split(".");let i=e;for(let e=0;n.length-1>e;e++){if(!i[n[e]])throw Error(`Property path "${t}" does not exist`);i=i[n[e]]}i[n[n.length-1]]=r}};return Qa(t,"PutCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Insert content into elements or properties",syntax:["put <value> into <target>","put <value> before <target>","put <value> after <target>"],examples:['put "Hello World" into me',"put <div>Content</div> before #target","put value into #elem's innerHTML"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());class co{constructor(){this.ownsConditionalModifier=!0}async parseInput(e,t,r){const{targets:n}=await async function(e,t,r,n){return{targets:await xs(e.args,t,r,n)}}(e,t,r,this.mode),i=e.modifiers?.when??e.modifiers?.where,{matched:a,unmatched:s}=i?await async function(e,t,r,n){const i=[],a=[],s=n.it;try{for(const s of e)n.it=s,(await r.evaluate(t,n)?i:a).push(s)}finally{n.it=s}return{matched:i,unmatched:a}}(n,i,t,r):{matched:n,unmatched:void 0};return{targets:a,...void 0!==s&&{inverse:s},mode:this.mode,defaultDisplay:"show"===this.mode?"block":void 0}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!(!Array.isArray(t.targets)||!t.targets.every(e=>$r(e))||"show"!==t.mode&&"hide"!==t.mode||"show"===t.mode&&"string"!=typeof t.defaultDisplay)}showElement(e,t="block"){const r=e.dataset.originalDisplay;void 0!==r?(e.style.display=r||t,delete e.dataset.originalDisplay):"none"===e.style.display&&(e.style.display=t),e.classList.add("show")}hideElement(e){if(!e.dataset.originalDisplay){const t=e.style.display;e.dataset.originalDisplay="none"===t?"":t}e.style.display="none",e.classList.remove("show")}}let uo=(()=>{let e,t,r=[fs({name:"hide"})],n=[],i=co;var a=t=class extends i{constructor(){super(...arguments),this.mode="hide"}get metadata(){return a.metadata}async execute(e,t){for(const t of e.targets)this.hideElement(t);for(const t of e.inverse??[])this.showElement(t)}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&!!t.targets.every(e=>$r(e))}};return Qa(t,"HideCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Hide elements by setting display to none",syntax:"hide [<target>] [when <condition>]",examples:["hide me","hide #modal","hide .warnings","hide <button/>","hide <li/> when its textContent is empty"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),a=t})();const mo=gs(uo);let po=(()=>{let e,t,r=[fs({name:"show"})],n=[],i=co;var a=t=class extends i{constructor(){super(...arguments),this.mode="show"}get metadata(){return a.metadata}async execute(e,t){const r=e.defaultDisplay||"block";for(const t of e.targets)this.showElement(t,r);for(const t of e.inverse??[])this.hideElement(t)}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&!!t.targets.every(e=>$r(e))&&"string"==typeof t.defaultDisplay}};return Qa(t,"ShowCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Show elements by restoring display property",syntax:"show [<target>] [when <condition>]",examples:["show me","show #modal","show .hidden","show <button/>","show <li/> when its textContent contains my value"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),a=t})();const ho=gs(po),fo={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function yo(e){return e.replace(/[&<>"']/g,e=>fo[e])}let go=(()=>{let e,t,r=[fs({name:"make"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers.an??e.modifiers.a??e.args[0];if(!n)throw Error("Make command requires class name or DOM element expression");const i=n.raw;let a="string"==typeof i&&i.startsWith("<")?i:await t.evaluate(n,r);if(null==a)throw Error("Make command requires class name or DOM element expression");"string"==typeof a&&a.startsWith("<")&&(a=await async function(e,t){if(!e.includes("{"))return e;const r=/\{([^{}]+)\}/g,n=[];let i;for(;null!==(i=r.exec(e));){let e=i[0];try{const r=await Ji(i[1].trim(),t);null!=r&&(e=yo(r+""))}catch{}n.push({index:i.index,length:i[0].length,text:e})}let a=e;for(let e=n.length-1;e>=0;e--){const{index:t,length:r,text:i}=n[e];a=a.slice(0,t)+i+a.slice(t+r)}return a}(a,r));const s=void 0!==e.modifiers.an?"an":"a",o=await async function(e,t,r){if(!e)return[];if("arrayLiteral"===e.type&&Array.isArray(e.args)){const n=[];for(const i of e.args)n.push(await t.evaluate(i,r));return n}const n=await t.evaluate(e,r);return Array.isArray(n)?n:[n]}(e.modifiers.from,t,r),l=await async function(e,t,r){if(!e)return;if(("symbol"===e.type||"identifier"===e.type)&&"string"==typeof e.name)return e.name;const n=await t.evaluate(e,r);return"string"==typeof n?n:void 0}(e.modifiers.called,t,r);return{article:s,expression:a,constructorArgs:o,variableName:l}}async execute(e,t){const{expression:r,constructorArgs:n=[],variableName:i}=e,a="string"==typeof r&&r.startsWith("<"),s=a&&r.endsWith("/>")?function(e){const t=e.slice(1,-2);let r="div",n=t;const i=t.match(/^([a-zA-Z][a-zA-Z0-9]*)/);i&&(r=i[1],n=t.slice(i[0].length));const a=document.createElement(r),s=n.split(/(?=[.#])/);for(const e of s)if(e.startsWith("#")){const t=e.slice(1);t&&(a.id=t)}else if(e.startsWith(".")){const t=e.slice(1);t&&a.classList.add(t)}return a}(r):a&&/<\/[a-zA-Z]/.test(r)?function(e){const t=document.createElement("template");t.innerHTML=e.trim();const r=t.content.firstElementChild;if(r&&$r(r))return r;const n=document.createElement("div");n.innerHTML=e.trim();const i=n.firstElementChild;return i&&$r(i)?i:n}(r):function(e,t,r){if($r(e))return e;if("function"==typeof e){const r=e;return 0===t.length?new r:new r(...t)}const n=e+"";let i;if("undefined"!=typeof window&&(i=window[n]),i||"undefined"==typeof global||(i=global[n]),!i&&r.variables?.has(n)&&(i=r.variables.get(n)),!i||"function"!=typeof i)throw Error(`Constructor '${n}' not found or is not a function`);return 0===t.length?new i:new i(...t)}(r,n,t);return Object.assign(t,{it:s}),i&&Zr(i,s,t),s}};return Qa(t,"MakeCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Create DOM elements or class instances",syntax:["make a <tag#id.class1.class2/>","make a <ClassName> from <args> called <identifier>"],examples:["make an <a.navlink/> called linkElement",'make a URL from "/path/", "https://origin.example.com"'],sideEffects:["dom-creation","data-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})();const vo=gs(go),bo=gs((()=>{let e,t,r=[fs({name:"empty"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await xs(e.args,t,r,"empty",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.innerHTML=""}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>$r(e))}};return Qa(t,"EmptyCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Remove all children from an element (sets innerHTML to empty)",syntax:["empty","empty <target>","empty the <target>"],examples:["empty me","empty #list","empty .results"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());function wo(e){if("string"!=typeof e)return;const t=e.toLowerCase().trim();return"non-modal"===t||"nonmodal"===t?"non-modal":"modal"===t?"modal":void 0}function ko(e){return e.hasAttribute("popover")}const Eo=gs((()=>{let e,t,r=[fs({name:"open"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=(e.args??[]).filter(e=>{const t=e;if("identifier"!==t?.type)return!0;const r=t.name?.toLowerCase();return"as"!==r&&"modal"!==r&&"non-modal"!==r&&"nonmodal"!==r}),i=Ws(await xs(n,t,r,"open",{fallbackModifierKey:"on"},e.modifiers)),a=await async function(e,t,r,n){if(t?.as){const e=wo(await r.evaluate(t.as,n));if(e)return e}for(const t of e){const e=t;if("asExpression"!==e?.type)continue;const r=e.targetType,n=wo(r?.name??r?.value);if(n)return n}for(let t=0;e.length-1>t;t++){const i=e[t];if("identifier"===i?.type&&"as"===i.name?.toLowerCase()){const i=await r.evaluate(e[t+1],n);if("string"==typeof i){const e=i.toLowerCase().trim();if("non-modal"===e||"nonmodal"===e)return"non-modal";if("modal"===e)return"modal"}}}return"modal"}(e.args??[],e.modifiers??{},t,r);return{targets:i,dialogMode:a}}async execute(e,t){for(const t of e.targets)if(Bs(t))t.open||("modal"===e.dialogMode?t.showModal():t.show());else if(Fs(t))t.open=!0;else if(ko(t)){const e=t;if("function"==typeof e.showPopover)try{e.showPopover()}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!(!Array.isArray(t.targets)||!t.targets.every(e=>$r(e))||"modal"!==t.dialogMode&&"non-modal"!==t.dialogMode)}};return Qa(t,"OpenCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Open a dialog, details element, or popover",syntax:["open [<target>]","open <dialog> as modal","open <dialog> as non-modal"],examples:["open","open #myDialog","open #details","open #popup as non-modal"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());function xo(e){return e.hasAttribute("popover")}const Ao=gs((()=>{let e,t,r=[fs({name:"close"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:Ws(await xs(e.args,t,r,"close",{fallbackModifierKey:"on"},e.modifiers))}}async execute(e,t){for(const t of e.targets)if(Bs(t))t.open&&t.close();else if(Fs(t))t.open=!1;else if(xo(t)){const e=t;if("function"==typeof e.hidePopover)try{e.hidePopover()}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>$r(e))}};return Qa(t,"CloseCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Close a dialog, details element, or popover",syntax:["close","close <target>"],examples:["close","close #myDialog","close #details","close #popup"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());function Co(e){const t=e.tagName;return"INPUT"===t||"TEXTAREA"===t}const So=gs((()=>{let e,t,r=[fs({name:"select"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await xs(e.args,t,r,"select",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){if(0!==e.targets.length)for(const t of e.targets){if(Co(t)){t.select();continue}const e=t.ownerDocument??("undefined"!=typeof document?document:null),r=e?.defaultView;if(!e||!r)continue;const n=r.getSelection?.();if(n)try{const r=e.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r)}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>$r(e))}};return Qa(t,"SelectCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Select the contents of a text field, or select the contents of a DOM element",syntax:["select","select <target>"],examples:["select #search","select <textarea/>","select me"],sideEffects:["focus","dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());function To(e){return"FORM"===e.tagName}const Oo=gs((()=>{let e,t,r=[fs({name:"reset"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await xs(e.args,t,r,"reset",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)To(t)&&t.reset()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>$r(e))}};return Qa(t,"ResetCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Reset a <form> element to its default values (HTMLFormElement.reset())",syntax:["reset","reset <target>"],examples:["reset","reset #myForm","reset <form/>"],sideEffects:["dom-mutation"],category:"dom",compatibility:"standard"}),Ga(t,n),i=t})());function Lo(e,t){const r=e.bodies?.[t];if(!r)throw Error(`${e.commandName??"command"}: argument ${t} is a body but was not compiled \u2014 run it through the runtime`);return r}function jo(e,t){if("boolean"==typeof e)return e;if("function"==typeof e)return!0;if(e instanceof Promise)throw Error("Condition must be awaited - use await in the condition expression");if("string"==typeof e){if("me"===e)return!!t.me;if("it"===e)return!!t.it;if("you"===e)return!!t.you;const r=Kr(e,t);return void 0!==r?!!r:!!e}return!!e}const qo=gs((()=>{let e,t,r=[fs({name:"if"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n="unless"===e.commandName?.toLowerCase()?"unless":"if";if(!e.args||0===e.args.length)throw Error(n+" command requires a condition to evaluate");let i,a;if("unless"===n){if(2>e.args.length)throw Error("unless command requires a condition and at least one command");i=Lo(e,1)}else if(e.args.length>=2&&e.args[1]&&(i=Lo(e,1),a=3>e.args.length?void 0:Lo(e,2)),!i)throw Error('if command requires "then" branch with commands');return{mode:n,condition:await t.evaluate(e.args[0],r),thenCommands:i,elseCommands:a}}async execute(e,t){const{mode:r,condition:n,thenCommands:i,elseCommands:a}=e,s=jo(n,t);let o,l,c;if(("unless"===r?!s:s)?(o="then",c=i):a&&"if"===r?(o="else",c=a):o="none",c){const e=await c(t);if(!Or(e))return e.error;l=e.value}return{mode:r,conditionResult:s,executedBranch:o,result:l}}};return Qa(t,"ConditionalCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Conditional execution based on boolean expressions",syntax:["if <condition> then <commands>","if <condition> then <commands> else <commands>","unless <condition> <commands>"],examples:["if x > 5 then add .active","if user.isAdmin then show #adminPanel else hide #adminPanel","unless user.isLoggedIn showLoginForm"],sideEffects:["conditional-execution"],aliases:["unless"],category:"control-flow",compatibility:"standard"}),Ga(t,n),i=t})()),Po=qo,No=qo;async function Ro(e,t){return"function"==typeof e?!!await e():jo(e,t)}let Io=(()=>{let e,t,r=[fs({name:"repeat"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i,a;if(e.modifiers?.index){const i=await t.evaluate(e.modifiers.index,r);"string"==typeof i&&(n=i)}{const t=[];for(let r=e.args.length-1;r>=0;r--){const n=e.args[r];if("block"===n?.type&&n.commands&&(t.unshift(r),2===t.length))break}2===t.length?(i=Lo(e,t[0]),a=Lo(e,t[1])):1===t.length&&(i=Lo(e,t[0]))}const s=e.modifiers??{},o=e=>async function(e,t,r){if(!e)return;const n=e;if(Js(n,"string"))return n.value;if(Js(n,"literal")&&"string"==typeof n.value)return n.value;if(Js(n,"identifier"))return n.name;const i=await t.evaluate(e,r);return"string"==typeof i?i:void 0}(e,t,r),l=await o(s.loopType)??null,c=!!s.bottomTested&&await t.evaluate(s.bottomTested,r);if("for"===l||s.for){const e=await o(s.for),l=s.in&&await t.evaluate(s.in,r);if(!e||void 0===l)throw Error("for loops require variable and collection");return{type:"for",variable:e,collection:Array.isArray(l)?l:[l],indexVariable:n,commands:i,elseCommands:a}}if("times"===l||s.times){if(!s.times)throw Error("times loops require a count number");return{type:"times",count:function(e){const t=Number(e);return Number.isNaN(t)?0:t}(await t.evaluate(s.times,r)),indexVariable:n,commands:i,elseCommands:a}}if("while"===l||s.while){const e=s.while;if(!e)throw Error("while loops require a condition");return{type:"while",condition:()=>t.evaluate(e,r),indexVariable:n,commands:i,elseCommands:a,bottomTested:c}}if("until-event"===l||s.event){const e=await o(s.event);if(!e)throw Error("until-event loops require an event name");let l=r.me;if(s.from){const e=s.from,n=Js(e,"identifier")?e.name:void 0;if("document"===n)l=document;else if("window"===n&&"undefined"!=typeof window)l=window;else{const e=await t.evaluate(s.from,r);u=e,"function"==typeof u?.addEventListener?l=e:"document"===e?l=document:"undefined"!=typeof window&&e===window&&(l=window)}}return{type:"until-event",eventName:e,eventTarget:l,indexVariable:n,commands:i,elseCommands:a}}var u;if("until"===l||s.until){const e=s.until;if(!e)throw Error("until loops require a condition");return{type:"until",condition:()=>t.evaluate(e,r),indexVariable:n,commands:i,elseCommands:a,bottomTested:c}}if("forever"===l)return{type:"forever",indexVariable:n,commands:i,elseCommands:a};throw Error("repeat command requires a loop type (for/times/while/until/forever)")}async execute(e,t){const{type:r,variable:n,collection:i,condition:a,count:s,indexVariable:o,commands:l,elseCommands:c,bottomTested:u,eventName:d,eventTarget:m}=e;let p,h;switch(r){case"for":({config:p,iterCtx:h}=function(e,t,r){return{config:{type:"for",shouldContinue:e=>(e.collection?.length??0)>e.index,beforeIteration:(e,t)=>{e.item=e.collection?.[e.index],e.itemVariable&&t.locals&&t.locals.set(e.itemVariable,e.item)}},iterCtx:{index:0,collection:e,itemVariable:t,indexVariable:r}}}(i,n,o));break;case"times":({config:p,iterCtx:h}=function(e,t){return{config:{type:"times",shouldContinue:e=>(e.count??0)>e.index,beforeIteration:(e,t)=>{Object.assign(t,{it:e.index+1})}},iterCtx:{index:0,count:e,indexVariable:t}}}(s,o));break;case"while":({config:p,iterCtx:h}=function(e,t,r,n){return{config:{type:"while",shouldContinue:()=>t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,Ro,t,o));break;case"until":({config:p,iterCtx:h}=function(e,t,r,n){return{config:{type:"until",shouldContinue:()=>{const n=t(e,r);return n instanceof Promise?n.then(e=>!e):!n}},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,Ro,t,o));break;case"until-event":({config:p,iterCtx:h}=function(e,t,r){const n={index:0,eventFired:!1,indexVariable:r};return{config:{type:"until-event",shouldContinue:e=>!e.eventFired,eventSetup:{eventName:e,target:t,onEvent:()=>{n.eventFired=!0}}},iterCtx:n}}(d,m,o));break;case"forever":({config:p,iterCtx:h}=function(e,t=1e4){return{config:{type:"forever",maxIterations:t,shouldContinue:()=>!0},iterCtx:{index:0,indexVariable:e}}}(o));break;default:throw Error("Unknown repeat type: "+r)}if(u){const e=p.shouldContinue;p.shouldContinue=async t=>0===t.index||await e(t)}const f=await async function(e,t,r,n){const i=e.maxIterations??1e4;let a,s=0,o=!1;e.eventSetup&&e.eventSetup.target.addEventListener(e.eventSetup.eventName,e.eventSetup.onEvent,{once:!0});try{for(;i>s&&await e.shouldContinue(r);){e.beforeIteration&&await e.beforeIteration(r,t),r.indexVariable&&t.locals&&t.locals.set(r.indexVariable,s);const i=await n(t);if(!Or(i)){const t=i.error;if("break"===t.type){o=!0;break}if("continue"===t.type){s++,r.index=s,"until-event"===e.type&&await new Promise(e=>setTimeout(e,0));continue}return{iterations:s,lastResult:a,interrupted:o,signal:t}}a=i.value,s++,r.index=s,"until-event"===e.type&&await new Promise(e=>setTimeout(e,0))}}finally{e.eventSetup&&!r.eventFired&&e.eventSetup.target.removeEventListener(e.eventSetup.eventName,e.eventSetup.onEvent)}return{iterations:s,lastResult:a,interrupted:o}}(p,t,h,l??(async()=>Sr(void 0)));if(f.signal)return f.signal;if(0===f.iterations&&!f.interrupted&&c){const e=await c(t);if(!Or(e))return e.error;const n=e.value;return Object.assign(t,{it:n}),{type:r,iterations:0,completed:!0,lastResult:n}}return Object.assign(t,{it:f.lastResult}),{type:r,iterations:f.iterations,completed:!f.interrupted,lastResult:f.lastResult,interrupted:f.interrupted}}};return Qa(t,"RepeatCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Iteration in hyperscript - for-in, counted, conditional, event-driven, and infinite loops",syntax:["repeat for <var> in <collection> { <commands> }","repeat <count> times { <commands> }","repeat while <condition> { <commands> }","repeat until <condition> { <commands> }","repeat forever { <commands> }"],examples:["repeat for item in items { log item }",'repeat 5 times { log "hello" }',"repeat for item in items index i log i end"],sideEffects:["iteration","conditional-execution"],category:"control-flow",compatibility:"standard"}),Ga(t,n),i=t})();const Mo=gs(Io);class $o{async parseInput(e,t,r){return{signalType:this.signalType}}async execute(e,t){return"exit"===this.signalType?{type:"exit",returnValue:void 0}:{type:this.signalType}}}let _o=(()=>{let e,t,r=[fs({name:"break"})],n=[],i=$o;var a=t=class extends i{constructor(){super(...arguments),this.signalType="break"}get metadata(){return a.metadata}};return Qa(t,"BreakCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Exit from the current loop (repeat, for, while, until)",syntax:["break"],examples:["break","if found then break","repeat for item in items { if item == target then break }"],sideEffects:["control-flow"],category:"control-flow",compatibility:"standard"}),Ga(t,n),a=t})();const zo=gs(_o);let Vo=(()=>{let e,t,r=[fs({name:"continue"})],n=[],i=$o;var a=t=class extends i{constructor(){super(...arguments),this.signalType="continue"}get metadata(){return a.metadata}};return Qa(t,"ContinueCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Skip to the next iteration of the current loop",syntax:["continue"],examples:["continue","if item.isInvalid then continue","repeat for item in items { if item.skip then continue; process item }"],sideEffects:["control-flow"],category:"control-flow",compatibility:"standard"}),Ga(t,n),a=t})();const Ho=gs(Vo),Wo=gs((()=>{let e,t,r=[fs({name:"halt"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(e.modifiers.the)return{target:r.event};const[n]=e.args;return n?{target:await t.evaluate(n,r)}:{}}async execute(e,t){let r=e.target;if(("the"===r&&t.event||"object"==typeof r&&null!==r&&"the"===r.target&&t.event)&&(r=t.event),this.isEvent(r)){const e=r;return e.preventDefault(),e.stopPropagation(),{halted:!0,timestamp:Date.now(),eventHalted:!0}}return"halted"in t&&(t.halted=!0),{type:"halt"}}isEvent(e){return null!==e&&"object"==typeof e&&"preventDefault"in e&&"stopPropagation"in e}};return Qa(t,"HaltCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Stop command execution or prevent event defaults",syntax:["halt","halt the event"],examples:["halt","halt the event","if error then halt",'on click halt the event then log "clicked"'],sideEffects:["control-flow","event-prevention"],category:"control-flow",compatibility:"standard"}),Ga(t,n),i=t})()),Bo=gs((()=>{let e,t,r=[fs({name:"return"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return e.args&&0!==e.args.length?{value:await t.evaluate(e.args[0],r)}:{value:void 0}}async execute(e,t){const{value:r}=e;return"returnValue"in t&&(t.returnValue=r),Object.assign(t,{it:r}),{type:"return",returnValue:r}}};return Qa(t,"ReturnCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Return a value from a command sequence or function, terminating execution",syntax:["return","return <value>"],examples:["return","return 42","return user.name","if found then return result"],sideEffects:["control-flow","context-mutation"],category:"control-flow",compatibility:"standard"}),Ga(t,n),i=t})());let Fo=(()=>{let e,t,r=[fs({name:"exit"})],n=[],i=$o;var a=t=class extends i{constructor(){super(...arguments),this.signalType="exit"}get metadata(){return a.metadata}};return Qa(t,"ExitCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Immediately terminate execution of the current event handler or behavior",syntax:["exit"],examples:["exit","if no draggedItem exit","on click if disabled exit"],sideEffects:["control-flow"],category:"control-flow",compatibility:"standard"}),Ga(t,n),a=t})();const Do=gs(Fo),Uo=gs((()=>{let e,t,r=[fs({name:"throw"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const[n]=e.args;if(!n)throw Error("throw command requires a message or error object");return{message:await t.evaluate(n,r)}}async execute(e,t){const{message:r}=e;let n;throw n=r instanceof Error?r:Error("string"==typeof r?r:r+""),n}};return Qa(t,"ThrowCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Throw an error with a specified message",syntax:["throw <message>"],examples:['throw "Invalid input"','if not valid then throw "Validation failed"'],sideEffects:["error-throwing","execution-termination"],category:"control-flow",compatibility:"standard"}),Ga(t,n),i=t})());async function Ko(e,t,r){const n=await t.evaluate(e,r),i=Array.isArray(n)?n[0]:n;return $r(i)?i:null}async function Zo(e,t,r,n){const i=e;if("attributeAccess"===i?.type)return{elements:await n(),name:i.attributeName};if("binaryExpression"===i?.type&&"of"===i.operator&&"attributeAccess"===i.left?.type){const e=await Ko(i.right,t,r);if(e)return{elements:[e],name:i.left.attributeName}}if("memberExpression"===i?.type&&"attributeAccess"===i.property?.type){const e=await Ko(i.object,t,r);if(e)return{elements:[e],name:i.property.attributeName}}return null}async function Yo(e,t,r,n){if(!e)return null;const i=e,a=i.type;if(n.nodeWriters&&a){const t=Ie(a);if(t)return{kind:"node-write",node:e,writer:t}}if(n.selectorSource&&"selector"===a&&"string"==typeof i.value)return{kind:"selector",selector:i.value};const s=await Zo(e,t,r,n.scopeElements);if(s)return{kind:"attribute",elements:s.elements,name:s.name};const o=await ro(e,t,r);if(o)return n.styleSplit&&o.property.startsWith("*")?{kind:"style",element:o.element,property:o.property.substring(1)}:{kind:"property",target:o};if(n.ofAndObjectProperty){const e=function(e){const[t,r,n]="possessiveExpression"===e.type?[e.object,e.property,!1]:"propertyOfExpression"===e.type?[e.target,e.property,!1]:"binaryExpression"===e.type&&"of"===e.operator?[e.right,e.left,!0]:[void 0,void 0,!1],i=r?.name;return t&&"string"==typeof i&&/^[A-Za-z_$][\w$]*$/.test(i)?{owner:t,name:i,isOf:n}:null}(i);if(e){const n=await t.evaluate(e.owner,r),i=Array.isArray(n)?n[0]:n;if(e.isOf&&$r(i))return{kind:"property",target:{element:i,property:e.name}};if(Jr(n))return{kind:"member",container:n,property:e.name}}}if(n.bareReference&&("identifier"===a||"variable"===a||"symbol"===a)&&"string"==typeof i.name){const e=i.scope;return{kind:"variable",name:i.name,scope:"element"===e||"global"===e?e:void 0}}return null}const Jo={nodeWriters:!0,styleSplit:!0,ofAndObjectProperty:!0};let Go=(()=>{let e,t,r=[fs({name:"set"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("set command requires a target");const n=e.args[0],i=n?.name||n?.value,a=n?.scope,s=await Yo(n,t,r,{scopeElements:()=>this.resolveTargets(e.modifiers.on,t,r),...Jo});if(s)return function(e,t){switch(e.kind){case"node-write":return{type:"node-write",node:e.node,value:t,writer:e.writer};case"attribute":return{type:"attribute",elements:e.elements,name:e.name,value:t};case"style":return{type:"style",element:e.element,property:e.property,value:t+""};case"property":return{type:"property",element:e.target.element,property:e.target.property,value:t};case"member":return{type:"member-assignment",container:e.container,property:e.property,value:t};default:throw Error(`set: unrequested write-target rung '${e.kind}'`)}}(s,await this.extractValue(e,t,r));if("memberExpression"===n?.type||"propertyAccess"===n?.type){const i=await this.tryParseMemberExpression(n,e,t,r);if(i)return i}let o;if(o="identifier"!==n?.type&&"variable"!==n?.type||"string"!=typeof i?await t.evaluate(n,r):i,function(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;if($r(e)||e instanceof Node)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(o))return{type:"object-literal",properties:o,targets:await this.resolveTargets(e.modifiers.on,t,r)};if(eo(o)){const n=to(o,r);if(n){const i=await this.extractValue(e,t,r);return{type:"property",element:n.element,property:n.property,value:i}}return this.parseTheXofY(o,e,t,r)}if("string"==typeof o&&As(o)){const n=o.substring(1).trim(),i=await this.extractValue(e,t,r);return{type:"style",element:await this.resolveElement(e.modifiers.on,t,r),property:n,value:i+""}}if("string"==typeof o&&Xa(o)){const n=o.substring(1).trim(),i=await this.extractValue(e,t,r);return{type:"attribute",elements:await this.resolveTargets(e.modifiers.on,t,r),name:n,value:i}}if("string"==typeof o){const n=o.match(/^(my|me|its?|your?)\s+(.+)$/i);if(n){const i=Es(n[1],r),a=await this.extractValue(e,t,r);return{type:"property",element:i,property:n[2],value:a}}}if($r(o))return{type:"property",element:o,property:"textContent",value:await this.extractValue(e,t,r)};if(Array.isArray(o)&&o.length>0&&$r(o[0])){const n=await this.extractValue(e,t,r);return{type:"property",element:o[0],property:"textContent",value:n}}if("string"!=typeof o)throw Error("set command target must be a string or object literal"+("memberExpression"===n?.type||"propertyAccess"===n?.type?` (a property chain evaluated to ${null===o?"null":typeof o} \u2014 check that all intermediate objects exist)`:""));return{type:"variable",name:o,value:await this.extractValue(e,t,r),scope:"element"===a||"global"===a?a:void 0}}async execute(e,t){switch(e.type){case"variable":return"element"===e.scope?Rr(t,e.name,e.value):"global"===e.scope?Zr(e.name,e.value,t,"global"):Zr(e.name,e.value,t),"result"!==e.name&&"it"!==e.name||Object.assign(t,{[e.name]:e.value}),Object.assign(t,{it:e.value}),{target:e.name,value:e.value,targetType:"variable"};case"attribute":for(const t of e.elements)t.setAttribute(e.name,e.value+"");return Object.assign(t,{it:e.value}),{target:"@"+e.name,value:e.value,targetType:"attribute"};case"property":return Zs(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"style":return Ss(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"object-literal":for(const t of e.targets)for(const[r,n]of Object.entries(e.properties))Zs(t,r,n);return Object.assign(t,{it:e.properties}),{target:e.targets[0]||"unknown",value:e.properties,targetType:"property"};case"member-assignment":return e.container[e.property]=e.value,Object.assign(t,{it:e.value}),{target:e.property,value:e.value,targetType:"property"};case"node-write":return await e.writer(e.node,e.value,t),Object.assign(t,{it:e.value}),{target:e.node.name??"",value:e.value,targetType:"variable"};default:throw Error("Unknown input type: "+e.type)}}async tryParseMemberExpression(e,t,r,n){const i=e.object,a=e.property;if(i?.name&&a?.name){const e=i.name.toLowerCase();if(["me","my","it","its","you","your"].includes(e)){const i=Es(e,n),s=await this.extractValue(t,r,n);return{type:"property",element:i,property:a.name,value:s}}}const s=e.object,o=e.computed;if(s){const i=s;let l;if("memberExpression"===i.type&&!i.computed&&"style"===i.property?.name&&i.object){const e=await r.evaluate(i.object,n);l=(e&&"object"==typeof e&&"style"in e?e.style:void 0)??await r.evaluate(s,n)}else l=await r.evaluate(s,n);if(null!=l&&"object"==typeof l){const i=o?await r.evaluate(e.property,n)+"":a?.name||"";if(i)return{type:"member-assignment",container:l,property:i,value:await this.extractValue(t,r,n)}}}return null}async extractValue(e,t,r){if(e.modifiers.to)return t.evaluate(e.modifiers.to,r);const n=e.args[1];if(n)return t.evaluate(n,r);throw Error('set command requires a value (use "to" keyword)')}async resolveElement(e,t,r){return bs(e?await t.evaluate(e,r):void 0,r)}async resolveTargets(e,t,r){return ws(e?await t.evaluate(e,r):void 0,r)}async parseTheXofY(e,t,r,n){const i=e.match(/^the\s+(.+?)\s+of\s+(.+)$/i);if(!i)throw Error('Invalid "the X of Y" syntax');const[,a,s]=i,o=bs(s,n),l=await this.extractValue(t,r,n);return{type:"property",element:o,property:a.trim(),value:l}}validate(e){if(!e||"object"!=typeof e)return!1;const t=e;if(!t.type||"string"!=typeof t.type)return!1;if(!["variable","attribute","property","style","object-literal"].includes(t.type))return!1;switch(t.type){case"variable":return"string"==typeof t.name&&"value"in t;case"attribute":return"string"==typeof t.name&&Array.isArray(t.elements)&&t.elements.every($r)&&"value"in t;case"property":return"string"==typeof t.property&&$r(t.element)&&"value"in t;case"style":return"string"==typeof t.property&&""!==t.property&&$r(t.element)&&"string"==typeof t.value;case"object-literal":return null!==t.properties&&"object"==typeof t.properties&&Array.isArray(t.targets)&&t.targets.length>0;default:return!1}}};return Qa(t,"SetCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Set values to variables, attributes, or properties",syntax:["set <target> to <value>"],examples:['set myVar to "value"','set @data-theme to "dark"','set my innerHTML to "content"'],sideEffects:["state-mutation","dom-mutation"],category:"data",compatibility:"standard"}),Ga(t,n),i=t})();const Qo=gs(Go),Xo=gs((()=>{let e,t,r=[fs({name:"get"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("get command requires an expression argument");const n=e.args[0],i=await t.evaluate(n,r);return i instanceof NodeList&&1===i.length||Array.isArray(i)&&1===i.length?{value:i[0]}:{value:i}}execute(e,t){return t.it=e.value,Object.assign(t,{result:e.value}),{value:e.value}}validate(e){return"object"==typeof e&&null!==e&&"value"in e}};return Qa(t,"GetCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Evaluate an expression and store the result in it",syntax:"get <expression>",examples:["get #my-dialog","get <button/>","get me.parentElement"],sideEffects:["context-mutation"],category:"data",compatibility:"standard"}),Ga(t,n),i=t})());function el(e){return e&&"object"==typeof e&&e.type||"unknown"}let tl=(()=>{let e,t,r=[fs({name:"increment"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n="decrement"===e.commandName?.toLowerCase()?"decrement":"increment",i=await async function(e,t,r,n){if(!e.args||0===e.args.length)throw Error(n+" command requires a target");const i=e.args[0];let a,s,o,l;const c=el(i);if("identifier"===c)a=i.name,i.scope&&(o=i.scope);else if("literal"===c)a=i.value;else{const e=Ie(c),n=e?null:await Zo(i,t,r,async()=>r.me?[r.me]:[]),o=e||n?null:function(e){const t="propertyOfExpression"===e.type?e.target:"possessiveExpression"===e.type||"memberExpression"===e.type||"propertyAccess"===e.type?e.object:void 0;if(!t||e.computed)return null;const r=e.property,n="string"==typeof r?r:"string"==typeof r?.name?r.name:void 0;return n&&/^[A-Za-z_$][\w$-]*$/.test(n)?{owner:t,name:n}:null}(i),u=o?await t.evaluate(o.owner,r):void 0,d=Array.isArray(u)?u[0]:u;if(n?.elements[0])a=n.elements[0],s="@"+n.name;else if(o&&$r(d))a=d,s=o.name;else if(o&&Jr(u))a=u,s=o.name;else if(e){const n=await t.evaluate(i,r),s="number"==typeof n?n:null==n?0:Number(n)||0;a=s,l={node:i,writer:e,currentValue:s}}else{const e=await t.evaluate(i,r);a=Array.isArray(e)&&e.length>0?e[0]:e}}let u=1,d=o;for(let n=1;e.args.length>n;n++){const i=e.args[n];if(Gs(i)){const e=i.value;"global"===e?d="global":"number"==typeof e&&(u=e)}else if(i){const e=await t.evaluate(i,r);"number"==typeof e?u=e:null==e&&(u=NaN)}}const m=e.modifiers?.by;return m&&(u=Dr("literal"===el(m)?m.value:await t.evaluate(m,r))),{target:a,amount:u,...s&&{property:s},...d&&{scope:d},...l&&{customWrite:l}}}(e,t,r,n);return{...i,operation:n}}async execute(e,t){const{target:r,property:n,scope:i,amount:a=1,operation:s="increment",customWrite:o}=e;if(o){const e="increment"===s?o.currentValue+a:o.currentValue-a;return await o.writer(o.node,e,t),Object.assign(t,{it:e}),e}const l=function(e,t,r,n){if("number"==typeof e)return e;if($r(e)){const r=e;return t?.startsWith("@")?Ur(r.getAttribute(t.slice(1))):t?t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)?Ur(r.getAttribute(t)):Ur(r[t]):Ur(r)}return t&&Jr(e)?Ur(e[t]):"string"==typeof e?"element"===r?Ur(Kr(e,n,"element")):"global"===r?Ur(Kr(e,n,"global")):e.includes(".")?function(e,t){const r=e.split("."),n=r[1],i=Yr(r[0],t);return i?Fr(i[n]):0}(e,n):"me"===e&&n.me?Fr(n.me.value||0):"it"===e?Fr(n.it||0):"you"===e&&n.you?Fr(n.you.value||0):Ur(Kr(e,n)):Ur(e)}(r,n,i,t);let c;return c=isNaN(l)?NaN:"increment"===s?l+a:l-a,function(e,t,r,n,i){if($r(e)){const r=e;return t?.startsWith("@")?void r.setAttribute(t.slice(1),n+""):void(t?t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)?r.setAttribute(t,n+""):r[t]=n:"value"in r&&void 0!==r.value?r.value=n+"":r.textContent=n+"")}if(t&&Jr(e))e[t]=n;else if("string"==typeof e){if("element"===r)return void Zr(e,n,i,"element");if("global"===r)return void Zr(e,n,i,"global");if(e.includes("."))return void function(e,t,r){const n=e.split("."),i=n[1],a=Yr(n[0],r);a&&(a[i]=t)}(e,n,i);if("me"===e&&i.me)return void(i.me.value=n);if("it"===e)return void Object.assign(i,{it:n});if("you"===e&&i.you)return void(i.you.value=n);Zr(e,n,i)}}(r,n,i,c,t),Object.assign(t,{it:c}),c}};return Qa(t,"NumericModifyCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Modify a variable or property by a specified amount (default: 1)",syntax:["increment <target> [by <number>]","decrement <target> [by <number>]"],examples:["increment counter","increment counter by 5","decrement counter","decrement counter by 5"],sideEffects:["data-mutation","context-modification"],aliases:["decrement"],category:"data",compatibility:"standard"}),Ga(t,n),i=t})();const rl=gs(tl),nl=gs(tl),il=gs((()=>{let e,t,r=[fs({name:"default"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("default command requires a target");const n=await this.extractValue(e,t,r),i=e.args[0],a=function(e){if("contextReference"!==e?.type)return null;const t=e.name;return"string"!=typeof t?null:t.startsWith(":")?{name:t.slice(1),scope:"element"}:t.startsWith("$")?{name:t.slice(1),scope:"global"}:null}(i);if(a)return{type:"variable",name:a.name,value:n,scope:a.scope};const s=await Yo(i,t,r,{scopeElements:async()=>r.me?[r.me]:[],bareReference:!0});if(s)return function(e,t){switch(e.kind){case"attribute":return{type:"attribute",elements:e.elements,name:e.name,value:t};case"property":return{type:"property",element:e.target.element,property:e.target.property,value:t};case"variable":{const r=e.name.startsWith("$"),n=r?e.name.slice(1):e.name,i=r?"global":e.scope;return{type:"variable",name:n,value:t,...i?{scope:i}:{}}}default:throw Error(`default: unrequested write-target rung '${e.kind}'`)}}(s,n);const o=await t.evaluate(e.args[0],r);if($r(o))return{type:"element",element:o,value:n};if(Array.isArray(o)&&$r(o[0]))return{type:"element",element:o[0],value:n};if("string"==typeof o)return{type:"variable",name:o,value:n};throw Error("Invalid target type: "+typeof o)}async extractValue(e,t,r){if(e.modifiers?.to)return t.evaluate(e.modifiers.to,r);const n=e.args[1];if(n)return t.evaluate(n,r);throw Error('default command requires a value (use "to <value>")')}async execute(e,t){switch(e.type){case"variable":return this.defaultVariable(t,e.name,e.value,e.scope);case"attribute":return this.defaultAttribute(t,e.elements,e.name,e.value);case"property":return this.defaultElementProperty(t,e.element,e.property,e.value);case"element":return this.defaultElementValue(t,e.element,e.value)}}defaultVariable(e,t,r,n){const i=Kr(t,e,n);return null!=i?{target:t,value:r,wasSet:!1,existingValue:i,targetType:"variable"}:(Zr(t,r,e,n),Object.assign(e,{it:r}),{target:t,value:r,wasSet:!0,targetType:"variable"})}defaultAttribute(e,t,r,n){if(0===t.length)throw Error("No element context available for attribute default");const i=t.filter(e=>null===e.getAttribute(r));if(0===i.length)return{target:"@"+r,value:n,wasSet:!1,existingValue:t[0].getAttribute(r),targetType:"attribute"};for(const e of i)e.setAttribute(r,n+"");return Object.assign(e,{it:n}),{target:"@"+r,value:n,wasSet:!0,targetType:"attribute"}}defaultElementProperty(e,t,r,n){const i=function(e,t){if(t.startsWith("@"))return e.getAttribute(t.substring(1));switch(t){case"textContent":return e.textContent;case"innerHTML":return e.innerHTML;case"innerText":return e.innerText;case"id":return e.id;case"className":return e.className;case"value":return"value"in e?e.value:void 0;case"checked":return"checked"in e?e.checked:void 0}if(t.includes(".")){const r=t.split(".");let n=e;for(const e of r){if(null==n)break;n=n[e]}return n}return t.includes("-")||t in e.style?e.style.getPropertyValue(t)||e.style[t]:e[t]}(t,r);return Ys(i)?(Zs(t,r,n),Object.assign(e,{it:n}),{target:r,value:n,wasSet:!0,targetType:"property"}):{target:r,value:n,wasSet:!1,existingValue:i,targetType:"property"}}defaultElementValue(e,t,r){const n=function(e){return"value"in e?e.value:e.textContent}(t);return Ys(n)?(function(e,t){"value"in e?e.value=t+"":e.textContent=t+""}(t,r),Object.assign(e,{it:r}),{target:"element",value:r,wasSet:!0,targetType:"element"}):{target:"element",value:r,wasSet:!1,existingValue:n,targetType:"element"}}};return Qa(t,"DefaultCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Set a value only if it doesn't already exist",syntax:["default <expression> to <expression>"],examples:['default myVar to "fallback"','default @data-theme to "light"','default my innerHTML to "No content"'],sideEffects:["data-mutation","dom-mutation"],category:"data",compatibility:"standard"}),Ga(t,n),i=t})());function al(e){const t=e.tagName;return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t}const sl=gs((()=>{let e,t,r=[fs({name:"clear"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.args?.[0],i=function(e){if(!e)return null;const t=e.type,r=e.name;if("string"!=typeof r||""===r)return null;if("variable"===t||"identifier"===t)return{name:r,scope:e.scope};if("contextReference"===t){if(r.startsWith(":"))return{name:r.slice(1),scope:"element"};if(r.startsWith("$"))return{name:r.slice(1),scope:"global"}}return null}(n);if(i)try{const e=await t.evaluate(n,r);if(!$r(e)&&!Array.isArray(e))return{type:"variable",...i}}catch{return{type:"variable",...i}}return{type:"form-fields",targets:await xs(e.args,t,r,"clear",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){if("variable"===e.type)return Zr(e.name,null,t,e.scope),void Object.assign(t,{it:null});for(const t of e.targets)al(t)&&("SELECT"===t.tagName?t.selectedIndex=-1:t.value="")}validate(e){if("object"!=typeof e||null===e)return!1;if("variable"===e.type)return"string"==typeof e.name;if("form-fields"===e.type){const t=e.targets;return Array.isArray(t)&&t.every(e=>$r(e))}return!1}};return Qa(t,"ClearCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Reset a variable to null or clear the value of a form field (<input>, <textarea>, <select>)",syntax:["clear <var>","clear :var","clear <target>"],examples:["clear :count","clear myVar","clear #search","clear <textarea/>"],sideEffects:["state-mutation","dom-mutation"],category:"data",compatibility:"standard"}),Ga(t,n),i=t})());function ol(e,t,r,n){return e?new Promise(r=>{const i=()=>{a({event:null,timedOut:!1,cancelled:!0})},a=cl(()=>{e.removeEventListener(t,s),n&&n.removeEventListener("abort",i)},r),s=e=>{a({event:e,timedOut:!1,cancelled:!1})};n?.aborted?r({event:null,timedOut:!1,cancelled:!0}):(e.addEventListener(t,s),n&&n.addEventListener("abort",i))}):Promise.reject(Error("waitForEvent: no target provided"))}function ll(e){return new Promise(t=>setTimeout(t,e))}function cl(e,t){let r=!1;return n=>{r||(r=!0,e(),t(n))}}const ul=gs((()=>{let e,t,r=[fs({name:"wait"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("wait command requires an argument");const n=e.args[0];return"arrayLiteral"===n.type&&n.elements?this.parseEventArrayWait(n.elements,e.args[1],t,r):this.parseTimeWait(e.args[0],t,r)}async execute(e,t){const r=Date.now();if("time"===e.type)return await ll(e.milliseconds),{type:"time",result:e.milliseconds,duration:Date.now()-r};if("event"===e.type){const n=e.target??t.me??document,i=(await ol(n,e.eventName)).event;if(Object.assign(t,{it:i}),e.destructure)for(const r of e.destructure)r in i&&t.locals.set(r,i[r]);return{type:"event",result:i,duration:Date.now()-r}}const{result:n,winningCondition:i}=await this.executeRace(e.conditions,t);if(Object.assign(t,{it:n}),n instanceof Event&&"event"===i?.type&&i.destructure)for(const e of i.destructure)e in n&&t.locals.set(e,n[e]);return{type:n instanceof Event?"event":"time",result:n,duration:Date.now()-r}}async parseTimeWait(e,t,r){return{type:"time",milliseconds:ns(await t.evaluate(e,r))}}async parseEventArrayWait(e,t,r,n){let i;if(t){const e=await r.evaluate(t,n);if(!e||"object"!=typeof e||!("addEventListener"in e))throw Error("wait for from: target must be an EventTarget");i=e}i||(i=n.me??void 0);const a=[];for(const t of e){const e=t;if("objectLiteral"!==e.type||!e.properties)continue;let s,o="",l=[];for(const t of e.properties){const e=t.key?.name||t.key?.value;if("name"===e&&t.value){if("string"!=typeof t.value.value)throw Error("wait for: event name must be a string");o=t.value.value}else"args"===e&&t.value?.elements?l=t.value.elements.map(e=>e.value||e.name||""):"duration"===e&&t.value&&(s=t.value)}if(s){const e=await r.evaluate(s,n);a.push({type:"time",milliseconds:ns(e)})}else o&&a.push({type:"event",eventName:o,target:i,destructure:l.length>0?l:void 0})}return 1===a.length?a[0]:{type:"race",conditions:a}}async executeRace(e,t){const r=new AbortController,n=r.signal,i=e.map(e=>"time"===e.type?ll(e.milliseconds).then(()=>({result:e.milliseconds,winningCondition:e})):ol(e.target??t.me??document,e.eventName,0,n).then(t=>({result:t.event,winningCondition:e})));try{return await Promise.race(i)}finally{r.abort()}}};return Qa(t,"WaitCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Wait for time delay, event, or race condition",syntax:["wait <time>","wait for <event>","wait for <event> or <condition>"],examples:["wait 2s","wait for click","wait for click or 1s","wait for mousemove(clientX, clientY)"],sideEffects:["time","event-listening"],category:"async",compatibility:"standard"}),Ga(t,n),i=t})()),dl=new Map;let ml=[/^4\d{2}$/,/^5\d{2}$/],pl=(()=>{let e,t,r=[fs({name:"fetch"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("fetch requires a URL");const n=await this.parseURL(e.args[0],t,r),i=this.parseResponseType(e.modifiers.as);return{url:n,responseType:i,options:await this.parseRequestOptions(e.modifiers.with,t,r),throwOnError:!e.modifiers.doNotThrow&&"response"!==i}}async execute(e,t){const r=Date.now(),{url:n,responseType:i,options:a}=e,s=new AbortController;let o;t.me&&(o=()=>s.abort(),t.me.addEventListener("fetch:abort",o,{once:!0}));const l={...a,signal:s.signal},c=dl.get(i);if(c?.accept){const e=new Headers(l.headers);e.has("Accept")||e.set("Accept",c.accept),l.headers=e}if(t.me){const e={...l,sender:t.me,headers:l.headers||{}};this.dispatchEvent(t.me,"fetch:beforeRequest",e),l.headers=e.headers}let u;a.timeout&&(u=setTimeout(()=>s.abort(),a.timeout));try{let a=await fetch(n,l);if(t.me){const e={response:a};this.dispatchEvent(t.me,"fetch:afterResponse",e),a=e.response}if(e.throwOnError&&function(e){const t=e+"";return ml.some(e=>e.test(t))}(a.status)){const e=Error(`Fetch failed for ${n}: HTTP ${a.status} ${a.statusText}`.trim());throw e.response=a,e.isFetchStatusError=!0,e}const s=await this.handleResponse(a,i,t);t.me&&this.dispatchEvent(t.me,"fetch:afterRequest",{result:s});const o={status:a.status,statusText:a.statusText,headers:a.headers,data:s,url:a.url,duration:Date.now()-r};return Object.assign(t,{it:s}),o}catch(e){if(t.me&&this.dispatchEvent(t.me,"fetch:error",{reason:e instanceof Error?e.message:e+"",error:e}),e instanceof Error&&"AbortError"===e.name)throw Error("Fetch aborted for "+n);if(e instanceof Error&&!0===e.isFetchStatusError)throw e;throw Error(`Fetch failed for ${n}: ${e instanceof Error?e.message:e+""}`)}finally{u&&clearTimeout(u),t.me&&o&&t.me.removeEventListener("fetch:abort",o)}}async parseURL(e,t,r){const n=await t.evaluate(e,r);if("string"!=typeof n||!n){const t=e;if(null==n&&"identifier"===t?.type&&t.name)throw Error(`fetch: URL expression "${t.name}" evaluated to ${n+""} \u2014 check the variable is set, or quote it if you meant a literal URL (fetch 'https://example.com/path')`);throw Error("fetch: URL must be a non-empty string")}return n}parseResponseType(e){if(!e)return"text";if(("identifier"===e.type||"expression"===e.type)&&e.name){const t=e.name.toLowerCase();if("object"===t)return"json";if(["text","json","html","response","blob","arraybuffer"].includes(t))return"arraybuffer"===t?"arrayBuffer":t;if(dl.has(t))return t;throw Error(`fetch: invalid response type "${t}"`)}return"text"}async parseRequestOptions(e,t,r){if(!e)return{};const n=await t.evaluate(e,r);if("object"!=typeof n||null===n)throw Error('fetch: "with" options must be an object');const i={};return"method"in n&&(i.method=(n.method+"").toUpperCase()),"headers"in n&&(i.headers=this.parseHeaders(n.headers)),"body"in n&&(i.body=this.parseBody(n.body)),"credentials"in n&&(i.credentials=n.credentials),"mode"in n&&(i.mode=n.mode),"cache"in n&&(i.cache=n.cache),i}parseHeaders(e){if(e instanceof Headers)return e;const t=new Headers;if("object"==typeof e&&null!==e)for(const[r,n]of Object.entries(e))t.set(r,n+"");return t}parseBody(e){return null==e?null:e instanceof FormData||e instanceof Blob||e instanceof ArrayBuffer||e instanceof URLSearchParams||"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):e+""}async handleResponse(e,t,r){switch(t){case"response":return e;case"json":return e.json();case"html":return this.parseHTML(await e.text());case"blob":return e.blob();case"arrayBuffer":return e.arrayBuffer();case"text":return e.text();default:{const n=dl.get(t);return n?n.handler(e,r):e.text()}}}parseHTML(e){const t=(new DOMParser).parseFromString(e,"text/html"),r=document.createDocumentFragment();return Array.from(t.body.childNodes).forEach(e=>r.appendChild(e.cloneNode(!0))),1===r.childNodes.length&&$r(r.firstChild)?r.firstChild:r}dispatchEvent(e,t,r){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!0}))}};return Qa(t,"FetchCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Make HTTP requests with lifecycle event support",syntax:["fetch <url>","fetch <url> as <type>","fetch <url> with <options>"],examples:['fetch "/api/data"','fetch "/api/users" as json','fetch "/api/save" with { method:"POST" }','fetch "/api/optional" as json do not throw'],sideEffects:["network","event-dispatching"],category:"async",compatibility:"standard"}),Ga(t,n),i=t})();const hl=gs(pl);function fl(e){const t=e.trim();return/^\d+$/.test(t)?parseInt(t,10):/^\d*\.\d+$/.test(t)?parseFloat(t):"true"===t||"false"!==t&&("null"===t?null:"undefined"!==t?t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t:void 0)}let yl=(()=>{let e,t,r=[fs({name:"trigger"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n="send"===e.commandName?.toLowerCase()?"send":"trigger",i=n;if(!e.args?.length)throw Error(i+" command requires an event name");const a=e=>e?.type||"unknown",s=e.args[0];let o,l,c;if("functionCall"===a(s)||"callExpression"===a(s)){o=s.name||s.callee?.name;const e=s.args||s.arguments;e?.length&&(l=await this.parseEventDetail(e,t,r))}else if("identifier"===a(s)||"keyword"===a(s))o=s.name;else{const e=await t.evaluate(s,r);o="string"==typeof e?e:e+""}const u=e.modifiers?.on||e.modifiers?.to;if(u)c=await this.resolveTargets([u],t,r,i);else{if(!r.me)throw Error(i+": no target specified and context.me is null");c=[r.me]}return{eventName:o,detail:l,targets:c,options:await this.parseEventOptions(e.modifiers?.with,t,r),mode:n}}async execute(e,t){const r=function(e,t,r={}){return new CustomEvent(e,{detail:void 0!==t?t:{},bubbles:void 0===r.bubbles||r.bubbles,cancelable:void 0===r.cancelable||r.cancelable,composed:void 0!==r.composed&&r.composed})}(e.eventName,e.detail,e.options);for(const t of e.targets)t.dispatchEvent(r);t.it=r}async resolveTargets(e,t,r,n){const i=[];for(const n of e){const e=await t.evaluate(n,r);if("window"!==e&&e!==window)if("document"!==e&&e!==document)if("me"===e&&r.me)i.push(r.me);else if("you"===e&&r.you)i.push(r.you);else if("it"===e&&r.it)i.push(r.it);else if($r(e))i.push(e);else if(e instanceof NodeList)i.push(...Array.from(e).filter($r));else if(Array.isArray(e))i.push(...e.filter($r));else{if("string"==typeof e){const t=document.querySelectorAll(e);if(0===t.length)throw Error(`No elements found: "${e}"`);i.push(...Array.from(t).filter($r));continue}if(!e||"object"!=typeof e||!("addEventListener"in e))throw Error("Invalid target: "+typeof e);i.push(e)}else i.push(document);else i.push(window)}if(!i.length)throw Error(n+": no valid targets");return i}async parseEventDetail(e,t,r){if(!e?.length)return;if(1===e.length){const n=e[0];if("objectLiteral"!==n?.type)return await t.evaluate(n,r)}const n={};for(const i of e){const e=await t.evaluate(i,r);if("object"!=typeof e||null===e||Array.isArray(e)){if("string"==typeof e&&e.includes(":")){const[t,r]=e.split(":",2);n[t.trim()]=fl(r.trim())}}else Object.assign(n,e)}return Object.keys(n).length?n:void 0}async parseEventOptions(e,t,r){const n={bubbles:!0,cancelable:!0,composed:!1};if(!e)return n;const i=e,a=Js(i,"arrayLiteral")?i.elements:[e];for(const e of a){const i=await t.evaluate(e,r);if("string"==typeof i){const e=i.toLowerCase();"bubbles"===e?n.bubbles=!0:"nobubbles"===e?n.bubbles=!1:"cancelable"===e?n.cancelable=!0:"nocancelable"===e?n.cancelable=!1:"composed"===e&&(n.composed=!0)}}return n}};return Qa(t,"EventDispatchCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Dispatch events on elements",syntax:["trigger <event> on <target>","trigger <event>(<detail>) on <target>","send <event> to <target>","send <event>(<detail>) to <target>"],examples:["trigger click on #button","trigger customEvent on me","send dataEvent to #target","send myEvent(count: 42) to me","send saved to #form with bubbles cancelable"],sideEffects:["event-dispatch"],aliases:["send"],category:"event",compatibility:"standard"}),Ga(t,n),i=t})();const gl=gs(yl),vl=gs(yl),bl=new Set(["initial","inherit","unset","revert"]);function wl(e){return Array.isArray(e)||zr(e)?Array.from(e).filter($r):$r(e)?[e]:[]}async function kl(e,t,r){const n=await t.evaluate(e,r),i=e.name;return void 0===n&&"identifier"===e.type&&"string"==typeof i?i:n}let El=(()=>{let e,t,r=[fs({name:"transition"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args?.length)throw Error("transition requires property and value");let n,i;const a=await t.evaluate(e.args[0],r),s=wl(a);if(s.length>0||"string"==typeof a&&/^[#.]|^(?:me|it|you)$/.test(a))i=1===s.length?s[0]:s.length>1?s:a,n=await t.evaluate(e.args[1],r)+"";else{if(e.args.length>=2)throw Error("transition: target element not found");if(null==a){const a=function(e){if(!e||"object"!=typeof e)return null;const t=e;if("identifier"===t.type&&"string"==typeof t.name&&t.name)return{property:t.name};if("propertyAccess"===t.type||"memberExpression"===t.type){const e=t.property,r="string"==typeof e?e:"string"==typeof e?.name?e.name:void 0;if(r)return{property:r,objectNode:t.object}}return null}(e.args[0]);if(!a)throw Error("transition requires a CSS property");if(n=a.property,void 0!==a.objectNode){const e=wl(await t.evaluate(a.objectNode,r));e.length>0&&(i=1===e.length?e[0]:e)}}else n=a+""}if(!n||"undefined"===n||"null"===n)throw Error("transition requires a CSS property");if(!e.modifiers?.to)throw Error('transition requires "to <value>"');const o={property:n,value:await kl(e.modifiers.to,t,r)};return void 0!==i&&(o.target=i),e.modifiers?.from&&(o.from=await kl(e.modifiers.from,t,r)),e.modifiers?.pairs&&(o.pairs=await this.laterPairs(e.modifiers.pairs,t,r)),e.modifiers?.over&&(o.duration=await t.evaluate(e.modifiers.over,r)),e.modifiers?.with&&(o.timingFunction=await t.evaluate(e.modifiers.with,r)+""),e.modifiers?.using&&(o.using=await t.evaluate(e.modifiers.using,r)+""),o}async laterPairs(e,t,r){const n=[];for(const i of e.elements??[]){const e=new Map,a=i.properties??[];for(const{key:t,value:r}of a)"string"==typeof t.name&&e.set(t.name,r);const s=e.get("property"),o=e.get("to");if(!s||!o)throw Error("transition requires property and value");const l={property:await t.evaluate(s,r)+"",value:await kl(o,t,r)},c=e.get("owner");if(c){const e=wl(await t.evaluate(c,r));if(0===e.length)throw Error("transition: target element not found");l.target=1===e.length?e[0]:e}const u=e.get("from");u&&(l.from=await kl(u,t,r)),n.push(l)}return n}async execute(e,t){const r=rs(e.duration,void 0!==e.using&&function(e){let t;for(const r of e.split(",")){const e=[...r.matchAll(/(\d*\.?\d+)(ms|s)\b/g)].map(e=>parseFloat(e[1])*("s"===e[2]?1e3:1));e.length>0&&(t=Math.max(t??0,e[0]+(e[1]??0)))}return t}(e.using)||300),n=e.timingFunction||"ease",i=[];for(const r of[e,...e.pairs??[]]){let e=r.property;e.startsWith("*")&&(e=e.substring(1)),e=ss(e);const n=Array.isArray(r.target)?r.target.filter($r):[bs(r.target,t,"transition")];for(const t of n)i.push({element:t,property:e,pair:r,fromValue:getComputedStyle(t).getPropertyValue(e),toValue:"",removeInlineAfter:!1})}if(0===i.length)throw Error("transition: target element not found");for(const e of i)void 0!==e.pair.from&&e.element.style.setProperty(e.property,e.pair.from+"");for(const e of i);const a=new Map;for(const e of i)a.has(e.element)||a.set(e.element,e.element.style.transition);for(const[t,s]of a){const a=i.filter(e=>e.element===t).map(e=>`${e.property} ${r}ms ${n}`);t.style.transition=e.using??[s,...a].filter(Boolean).join(", ")}for(const e of i){const{element:t,property:r}=e;let n=e.pair.value+"";if(bl.has(n)){const i=t.style.getPropertyValue(r);t.style.removeProperty(r),n=getComputedStyle(t).getPropertyValue(r),i&&t.style.setProperty(r,i),e.removeInlineAfter=!0}e.toValue=n,t.style.setProperty(r,n)}const s=await Promise.all(i.map(e=>function(e,t,r){return new Promise(n=>{const i=r=>{r.target===e&&r.propertyName===t&&s({completed:!0,cancelled:!1})},a=r=>{r.target===e&&r.propertyName===t&&s({completed:!1,cancelled:!0})},s=cl(()=>{e.removeEventListener("transitionend",i),e.removeEventListener("transitioncancel",a),clearTimeout(o)},n);e.addEventListener("transitionend",i),e.addEventListener("transitioncancel",a);const o=setTimeout(()=>{s({completed:!0,cancelled:!1})},r+50)})}(e.element,e.property,r)));for(const[e,t]of a)e.style.transition=t;for(const e of i)e.removeInlineAfter&&e.element.style.removeProperty(e.property);const o=i[0];return{element:o.element,property:o.property,fromValue:o.fromValue,toValue:o.toValue,duration:r,completed:s.every(e=>e.completed)}}};return Qa(t,"TransitionCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Animate CSS properties using CSS transitions",syntax:"transition <property> [from <value>] to <value> [<property> \u2026 to <value>]\u2026 [over <duration>] [using <css> | with <timing>]",examples:["transition opacity to 0.5","transition my *opacity to 0 over 200ms","transition #box's *opacity to 0 over 200ms","transition left to 100px over 500ms","transition background-color to red over 1s with ease-in-out","transition *width to 100px *height to 50px over 300ms","transition *opacity of #panel from 0 to 1 over 200ms",'transition my *opacity to 0 using "opacity 1s ease-in"'],sideEffects:["style-change","timing"],category:"animation",compatibility:"standard"}),Ga(t,n),i=t})();const xl=gs(El),Al=gs((()=>{let e,t,r=[fs({name:"measure"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i,a;if(e.args?.length){const a=e.args[0];if("identifier"===a.type&&a.name){const s=a.name.toLowerCase();if("me"===s||"it"===s||"you"===s){const s=await t.evaluate(a,r);if($r(s)&&(n=s,e.args.length>1)){const n=e.args[1];i="identifier"===n.type?n.name:await t.evaluate(n,r)+""}}else i=a.name}else{const s=await t.evaluate(a,r);if($r(s)||"string"==typeof s&&/^[#.]/.test(s)){if(n=s,e.args.length>1){const n=e.args[1];i="identifier"===n.type?n.name:await t.evaluate(n,r)+""}}else"string"==typeof s&&(i=s)}}e.modifiers?.set&&(a=await t.evaluate(e.modifiers.set,r)+"");const s={};return void 0!==n&&(s.target=n),void 0!==i&&(s.property=i),void 0!==a&&(s.variable=a),s}async execute(e,t){const r=bs(e.target,t,"measure"),n=e.property||"width",i=this.getMeasurement(r,n);return e.variable&&t.locals&&t.locals.set(e.variable,i.value),Object.assign(t,{it:i.value}),{result:i.value,wasAsync:!1,element:r,property:n,value:i.value,unit:i.unit,stored:!!e.variable}}getMeasurement(e,t){const r=getComputedStyle(e);if(t.startsWith("*")){const e=r.getPropertyValue(t.substring(1)),n=parseFloat(e);if(!isNaN(n)){const t=e.match(/([a-zA-Z%]+)$/);return{value:n,unit:t?t[1]:""}}return{value:e,unit:""}}const n=t.toLowerCase(),i=e.getBoundingClientRect(),a={width:()=>i.width,height:()=>i.height,top:()=>i.top,left:()=>i.left,right:()=>i.right,bottom:()=>i.bottom,x:()=>e.offsetLeft,y:()=>e.offsetTop,clientwidth:()=>e.clientWidth,"client-width":()=>e.clientWidth,clientheight:()=>e.clientHeight,"client-height":()=>e.clientHeight,offsetwidth:()=>e.offsetWidth,"offset-width":()=>e.offsetWidth,offsetheight:()=>e.offsetHeight,"offset-height":()=>e.offsetHeight,scrollwidth:()=>e.scrollWidth,"scroll-width":()=>e.scrollWidth,scrollheight:()=>e.scrollHeight,"scroll-height":()=>e.scrollHeight,scrolltop:()=>e.scrollTop,"scroll-top":()=>e.scrollTop,scrollleft:()=>e.scrollLeft,"scroll-left":()=>e.scrollLeft,offsettop:()=>e.offsetTop,"offset-top":()=>e.offsetTop,offsetleft:()=>e.offsetLeft,"offset-left":()=>e.offsetLeft};if(a[n])return{value:a[n](),unit:"px"};const s=r.getPropertyValue(t),o=parseFloat(s);if(!isNaN(o)){const e=s.match(/([a-zA-Z%]+)$/);return{value:o,unit:e?e[1]:"px"}}return{value:0,unit:"px"}}};return Qa(t,"MeasureCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Measure DOM element dimensions, positions, and properties",syntax:["measure","measure <property>","measure <target> <property>"],examples:["measure","measure width","measure #element height","measure x and set dragX"],sideEffects:["data-mutation"],category:"animation",compatibility:"standard"}),Ga(t,n),i=t})()),Cl=gs((()=>{let e,t,r=[fs({name:"settle"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i;const[a]=e.args;if(a){const e=await t.evaluate(a,r);($r(e)||"string"==typeof e&&(e.startsWith("#")||e.startsWith(".")||"me"===e||"it"===e||"you"===e))&&(n=e)}e.modifiers?.for&&(i=await t.evaluate(e.modifiers.for,r));const s={};return void 0!==n&&(s.target=n),void 0!==i&&(s.timeout=i),s}async execute(e,t){const{target:r,timeout:n}=e,i=bs(r,t,"settle"),a=rs(n,5e3),s=Date.now(),o=getComputedStyle(i),l=is(o.transitionDuration),c=is(o.transitionDelay),u=is(o.animationDuration),d=is(o.animationDelay),m=as(l,c),p=as(u,d),h=Math.max(m,p);var f,y,g;return{element:i,settled:(await(f=i,y=h,g=a,y>0?new Promise(e=>{const t=e=>{e.target===f&&n({completed:!0,type:"transition"})},r=e=>{e.target===f&&n({completed:!0,type:"animation"})},n=cl(()=>{f.removeEventListener("transitionend",t),f.removeEventListener("animationend",r),clearTimeout(i),clearTimeout(a)},e);f.addEventListener("transitionend",t),f.addEventListener("animationend",r);const i=setTimeout(()=>{n({completed:!0,type:"timeout"})},y+50),a=setTimeout(()=>{n({completed:!1,type:"timeout"})},g)}):Promise.resolve({completed:!0,type:"timeout"}))).completed,timeout:a,duration:Date.now()-s}}};return Qa(t,"SettleCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Wait for CSS transitions and animations to complete",syntax:"settle [<target>] [for <timeout>]",examples:["settle","settle #animated-element","settle for 3000"],sideEffects:["timing"],category:"animation",compatibility:"standard"}),Ga(t,n),i=t})());const Sl=gs((()=>{let e,t,r=[fs({name:"take"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error('take requires property, "from", and source');const{value:n}=await Ls(e.args[0],t,r),i=n+"",a=e.modifiers?.from?await t.evaluate(e.modifiers.from,r):void 0;let s;if(!s&&e.modifiers?.for&&(s=await t.evaluate(e.modifiers.for,r)),void 0===a&&!i.startsWith("."))throw Error('take requires property, "from", and source');return{property:i,source:a,target:s}}async execute(e,t){const r=e.property.trim();if(r.startsWith(".")){const n=r.substring(1);let i;if(null!=e.source)i=ws(e.source,t);else{const e=t.me?.ownerDocument??("undefined"!=typeof document?document:null);i=e?Array.from(e.querySelectorAll("."+n)):[]}for(const e of i)e.classList.remove(n);const a=ws(e.target,t);if(0===a.length)throw Error("take: no recipient element found");for(const e of a)e.classList.add(n);return{targetElement:a[0],property:e.property,value:n}}const n=bs(this.firstOf(e.source),t,"take"),i=bs(e.target?this.firstOf(e.target):void 0,t,"take"),a=this.takeProperty(n,e.property);return this.putProperty(i,e.property,a),{targetElement:i,property:e.property,value:a}}firstOf(e){const t=null!==e&&"object"==typeof e&&"number"==typeof e.length&&"function"==typeof e.item;if(Array.isArray(e)||t){const t=e[0];if(void 0===t)throw Error("take: no matching elements");return t}return e}takeProperty(e,t){const r=t.trim(),n=r.toLowerCase();if("class"===n||"classes"===n){const t=Array.from(e.classList);return e.className="",t}if(r.startsWith(".")){const t=r.substring(1);return e.classList.contains(t)?(e.classList.remove(t),t):null}if(r.startsWith("@")){const t=r.substring(1),n=e.getAttribute(t);return e.removeAttribute(t),n}if(r.startsWith("data-")){const t=e.getAttribute(r);return e.removeAttribute(r),t}if("id"===n){const t=e.id;return e.id="",t}if("title"===n){const t=e.title;return e.title="",t}if("value"===n&&"value"in e){const t=e.value;return e.value="",t}const i=r.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());if(r.includes("-")||i in e.style||r in e.style){let t;return i in e.style?(t=e.style[i],e.style[i]=""):r in e.style?(t=e.style[r],e.style[r]=""):(t=e.style.getPropertyValue(r),e.style.removeProperty(r)),t}const a=e.getAttribute(t);return null!==a?(e.removeAttribute(t),a):null}putProperty(e,t,r){if(null==r)return;const n=t.trim(),i=n.toLowerCase();if("class"===i||"classes"===i)return void(Array.isArray(r)?r.forEach(t=>t&&"string"==typeof t&&e.classList.add(t)):"string"==typeof r&&(e.className=r));if(n.startsWith("."))return void(r&&e.classList.add(n.substring(1)));if(n.startsWith("@"))return void e.setAttribute(n.substring(1),r+"");if(n.startsWith("data-"))return void e.setAttribute(n,r+"");if("id"===i)return void(e.id=r+"");if("title"===i)return void(e.title=r+"");if("value"===i&&"value"in e)return void(e.value=r+"");const a=n.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());n.includes("-")||a in e.style||n in e.style?a in e.style?e.style[a]=r+"":n in e.style?e.style[n]=r+"":e.style.setProperty(n,r+""):e.setAttribute(t,r+"")}};return Qa(t,"TakeCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Move classes, attributes, and properties from one element to another",syntax:["take <class> [from <source>] [for <recipient>]","take <property> from <source>","take <property> from <source> and put it on <target>"],examples:["take .active from .tab for me","take class from <#source/>","take @data-value from <.source/> and put it on <#target/>"],sideEffects:["dom-mutation","property-transfer"],category:"animation",compatibility:"standard"}),Ga(t,n),i=t})()),Tl=gs((()=>{let e,t,r=[fs({name:"log"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return e.args&&0!==e.args.length?{values:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}:{values:[]}}async execute(e,t){const r="undefined"!=typeof window?window.console:console;0===e.values.length?r.log():r.log(...e.values)}validate(e){return"object"==typeof e&&null!==e&&Array.isArray(e.values)}};return Qa(t,"LogCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Log values to the console",syntax:"log [<values...>]",examples:['log "Hello World"',"log me.value","log x y z",'log "Result:" result'],sideEffects:["console-output"],category:"utility",compatibility:"standard"}),Ga(t,n),i=t})()),Ol=gs((()=>{let e,t,r=[fs({name:"tell"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){if(2>e.args.length)throw Error("tell command requires a target and at least one command");const n=await t.evaluate(e.args[0],r),i=function(e){const t=[];for(let r=1;e.args.length>r;r++)t.push(Lo(e,r));return t}(e);return{target:n,commands:i}}async execute(e,t){const{target:r,commands:n}=e,i=ws(r,t);if(0===i.length)throw Error("tell command found no target elements");const a=[];for(const e of i){const r={...t,me:e,you:e};for(const e of n){let t;try{t=await e(r)}catch(e){throw Error("Command execution failed in tell block: "+(e instanceof Error?e.message:"Unknown error"))}if(!Or(t))return t.error;const n=t.value;a.push(n),Object.assign(r,{it:n})}}return{targetElements:i,commandResults:a,executionCount:i.length*n.length}}};return Qa(t,"TellCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Execute commands in the context of target elements",syntax:["tell <target> <command> [<command> ...]"],examples:["tell #sidebar hide","tell .buttons add .disabled","tell closest <form/> submit"],sideEffects:["context-switching","command-execution"],category:"utility",compatibility:"standard"}),Ga(t,n),i=t})()),Ll=gs((()=>{let e,t,r=[fs({name:"call"})],n=[];var i=t=class{get metadata(){return i.metadata}parseInput(e,t,r){if(!e.args?.length)throw Error("call command requires an expression");return Promise.resolve({expression:e.args[0]})}async execute(e,t){const{expression:r}=e,n=t.locals?.get("__evaluator"),i=n?await n.evaluate(r,t):await Di(r,t);let a,s,o=!1;return"function"==typeof i?(s="function",a=i(),a instanceof Promise&&(o=!0,a=await a)):i instanceof Promise?(s="promise",o=!0,a=await i):(s="value",a=i),Object.assign(t,{it:a,result:a}),{result:a,wasAsync:o,expressionType:s}}};return Qa(t,"CallCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Evaluate an expression and store the result in the it variable",syntax:["call <expression>"],examples:["call myFunction()",'call fetch("/api/data")',"call element.focus()"],sideEffects:["function-execution","context-mutation"],category:"execution",compatibility:"standard"}),Ga(t,n),i=t})()),jl=gs((()=>{let e,t,r=[fs({name:"focus"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await xs(e.args,t,r,"focus",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.focus()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>$r(e))}};return Qa(t,"FocusCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Focus an element (calls HTMLElement.focus())",syntax:["focus","focus <target>","focus on <target>"],examples:["focus","focus #search","focus on <input/>"],sideEffects:["focus"],category:"execution",compatibility:"standard"}),Ga(t,n),i=t})()),ql=gs((()=>{let e,t,r=[fs({name:"blur"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{targets:await xs(e.args,t,r,"blur",{fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.blur()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>$r(e))}};return Qa(t,"BlurCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Remove focus from an element (calls HTMLElement.blur())",syntax:["blur","blur <target>","blur on <target>"],examples:["blur","blur #search","blur on <input/>"],sideEffects:["focus"],category:"execution",compatibility:"standard"}),Ga(t,n),i=t})()),Pl=gs((()=>{let e,t,r=[fs({name:"copy"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const[n]=e.args;if(!n)throw Error("copy command requires a source (text or element)");return{source:await t.evaluate(n,r),format:"text"}}async execute(e,t){const{source:r,format:n="text"}=e,i=this.extractText(r,n,t);if("undefined"!=typeof navigator&&navigator.clipboard)try{return await navigator.clipboard.writeText(i),this.dispatchCopyEvent(t,"copy:success",{text:i,method:"clipboard-api"}),{success:!0,text:i,format:n,method:"clipboard-api"}}catch{}try{if(this.copyUsingExecCommand(i))return this.dispatchCopyEvent(t,"copy:success",{text:i,method:"execCommand"}),{success:!0,text:i,format:n,method:"execCommand"}}catch{}return this.dispatchCopyEvent(t,"copy:error",{text:i,error:"All copy methods failed"}),{success:!1,text:i,format:n,method:"fallback"}}extractText(e,t,r){if("string"==typeof e)return e;if($r(e))return"html"===t?e.outerHTML:e.textContent||"";if(e===r.me&&$r(r.me)){const e=r.me;return"html"===t?e.outerHTML:e.textContent||""}return e+""}copyUsingExecCommand(e){if("undefined"==typeof document)return!1;const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;top:0;left:-9999px",t.setAttribute("readonly",""),document.body.appendChild(t);try{t.select(),t.setSelectionRange(0,e.length);const r=document.execCommand("copy");return document.body.removeChild(t),r}catch{return t.parentNode?.removeChild(t),!1}}dispatchCopyEvent(e,t,r){if($r(e.me)){const n=new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!1});e.me.dispatchEvent(n)}}};return Qa(t,"CopyCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Copy text or element content to the clipboard",syntax:["copy <source>","copy <source> to clipboard"],examples:['copy "Hello World"',"copy #code-snippet","copy my textContent"],sideEffects:["clipboard-write","custom-events"],category:"utility",compatibility:"lokascript-extension"}),Ga(t,n),i=t})());function Nl(e,t,r,n){return e.evaluate(function(e,t){if(!e)throw Error(t+" is required");return e}(r,n),t)}const Rl=gs((()=>{let e,t,r=[fs({name:"pick"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers?.variant,i=n?.value;if("first"===i||"last"===i){const n=await t.evaluate(e.args[0],r),a=await Nl(t,r,e.modifiers.count,"pick: count");if(!Array.isArray(n))throw Error(`pick ${i}: source must be an array, got ${typeof n}`);if("number"!=typeof a||!Number.isFinite(a))throw Error(`pick ${i}: count must be a number, got ${typeof a}`);return{variant:i,array:n,count:a}}if("random"===i){const n=await t.evaluate(e.args[0],r);if(!Array.isArray(n))throw Error("pick random: source must be an array");let i;if(e.modifiers.count){const n=await t.evaluate(e.modifiers.count,r);if("number"!=typeof n||!Number.isFinite(n))throw Error("pick random: count must be a number, got "+typeof n);i=n}return{variant:"random",array:n,count:i}}if("range"===i){const n=await t.evaluate(e.args[0],r);if(!Array.isArray(n)&&"string"!=typeof n)throw Error("pick items: source must be an array or string");const i=e.modifiers.rangeStart,a="start"===i?.value?"start":await Nl(t,r,e.modifiers.rangeStart,"pick: start"),s="start"===a?"start":Number(a);let o;if(e.modifiers.rangeEnd)if("end"===e.modifiers.rangeEnd.value)o="end";else{const n=await t.evaluate(e.modifiers.rangeEnd,r);o=Number(n)}const l=e.modifiers.rangeMode;return{variant:"range",array:n,rangeStart:s,rangeEnd:o,rangeMode:l?.value??"default"}}if("match"===i||"matches"===i){const n=await t.evaluate(e.args[0],r);if("string"!=typeof n)throw Error(`pick ${i}: source must be a string, got ${typeof n}`);const a=await Nl(t,r,e.modifiers.regex,"pick: regex"),s="string"==typeof a?a:a+"",o=e.modifiers.flags,l=o?.value;return{variant:i,source:n,regex:s,flags:l}}if(0===e.args.length)throw Error("pick command requires items to choose from");return{variant:"random",items:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r=e.variant??"random";if("first"===r){const r=e.array??[],n=r.slice(0,e.count??0);return Object.assign(t,{it:n}),{selectedItem:n,sourceLength:r.length,sourceType:"array",variant:"first"}}if("last"===r){const r=e.array??[],n=e.count??0,i=n>0?r.slice(-n):[];return Object.assign(t,{it:i}),{selectedItem:i,sourceLength:r.length,sourceType:"array",variant:"last"}}if("range"===r){const r=e.array??[];let n="start"===e.rangeStart?0:e.rangeStart??0,i=void 0===e.rangeEnd?n+1:"end"===e.rangeEnd?r.length:e.rangeEnd;"inclusive"===e.rangeMode?i++:"exclusive"===e.rangeMode&&n++;const a=r.slice(n,i);return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:r.length,sourceType:"array",variant:"range"}}if("match"===r){const r=e.source??"",n=RegExp(e.regex??"",e.flags).exec(r);return Object.assign(t,{it:n}),{selectedItem:n,sourceLength:r.length,sourceType:"string",variant:"match"}}if("matches"===r){const r=e.source??"",n=e.flags??"g",i=RegExp(e.regex??"",n.includes("g")?n:"g"+n),a=Array.from(r.matchAll(i));return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:r.length,sourceType:"string",variant:"matches"}}const n=e.items??e.array??[];if(0===n.length)throw Error("Cannot pick from empty collection");if(void 0===e.count){const r=Math.floor(Math.random()*n.length),i=n[r];return Object.assign(t,{it:i}),{selectedItem:i,selectedIndex:r,sourceLength:n.length,sourceType:e.items?"items":"array",variant:"random"}}const i=n.slice(),a=[];for(let t=0;e.count>t&&i.length>0;t++){const e=Math.floor(Math.random()*i.length);a.push(i.splice(e,1)[0])}return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:n.length,sourceType:e.items?"items":"array",variant:"random"}}};return Qa(t,"PickCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Select from a collection (first/last/random/range/regex match)",syntax:["pick first <count> of <expr>","pick last <count> of <expr>","pick random [<count>] of <expr>","pick items <i> to <j> of <expr>","pick match of <regex> from <expr>","pick from <array>","pick <item1>, <item2>, ..."],examples:["pick first 3 of items","pick last 2 of items","pick random 2 of items","pick items 1 to 3 of items",'pick match of "[0-9]+" from text',"pick from colors",'pick "red", "green", "blue"'],sideEffects:["random-selection"],category:"utility",compatibility:"standard"}),Ga(t,n),i=t})()),Il=gs((()=>{let e,t,r=[fs({name:"beep"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return 0===e.args.length?{expressions:[]}:{expressions:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r=e.expressions||[];if(0===r.length)return this.debugContext(t),{expressionCount:0,debugged:!0,outputs:[]};const n=Vr(t.me,r);return{expressionCount:r.length,debugged:!0,outputs:n}}debugContext(e){console.group("\ud83d\udd14 beep! Context Debug"),console.log("me:",e.me),console.log("it:",e.it),console.log("you:",e.you),console.log("locals:",e.locals),console.log("globals:",e.globals),console.log("variables:",e.variables),console.groupEnd()}};return Qa(t,"BeepCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Debug output for expressions with type information",syntax:["beep!","beep! <expression>","beep! <expression>, <expression>, ..."],examples:["beep!","beep! myValue","beep! me.id, me.className"],sideEffects:["console-output","debugging"],category:"utility",compatibility:"lokascript-extension"}),Ga(t,n),i=t})()),Ml=gs((()=>{let e,t,r=[fs({name:"breakpoint"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){return{}}async execute(e,t){}validate(e){return"object"==typeof e&&null!==e}};return Qa(t,"BreakpointCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Drop into the debugger (emits a debugger; statement)",syntax:["breakpoint"],examples:["breakpoint","on click breakpoint"],sideEffects:["debugging"],category:"utility",compatibility:"standard"}),Ga(t,n),i=t})()),$l=gs((()=>{let e,t,r=[fs({name:"js"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){let n,i;if(0===e.args.length)throw Error("js command requires JavaScript code");const a=e.args[0],s=e.args[1];if(a&&"literal"===a.type&&"string"==typeof a.value)n=a.value;else{if(!a||void 0===a.value)throw Error("js command requires JavaScript code");n=a.value+""}s&&"arrayLiteral"===s.type&&Array.isArray(s.elements)&&(i=s.elements.map(e=>"string"==typeof e.value?e.value:e.value+"").filter(e=>e&&e.length>0));const o={code:n};return i&&i.length>0&&(o.parameters=i),o}async execute(e,t){const{code:r,parameters:n=[]}=e;if(!r.trim())return{result:void 0,executed:!1,codeLength:r.length,parameters:n,preserveArrayResult:!0};try{const e=this.createExecutionContext(t,n),i=Function(...Object.keys(e),r),a=await i(...Object.values(e));return void 0!==a&&Object.assign(t,{it:a}),{result:a,executed:!0,codeLength:r.length,parameters:n,preserveArrayResult:!0}}catch(e){throw Error("JavaScript execution failed: "+(e instanceof Error?e.message:"Unknown error"))}}createExecutionContext(e,t){return{me:e.me,it:e.it,you:e.you,locals:e.locals,globals:e.globals,variables:e.variables,console:console,document:"undefined"!=typeof document?document:void 0,window:"undefined"!=typeof window?window:void 0,...t.reduce((t,r)=>{let n=e.locals?.get(r);return void 0===n&&(n=e.variables?.get(r)),void 0===n&&(n=e[r]),t[r]=n,t},{})}}};return Qa(t,"JsCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Execute inline JavaScript code with access to hyperscript context",syntax:["js <code> end","js(param1, param2) <code> end"],examples:['js console.log("Hello") end',"js(x, y) return x + y end",'js me.style.color = "red" end'],sideEffects:["code-execution","data-mutation"],category:"advanced",compatibility:"standard"}),Ga(t,n),i=t})()),_l=gs((()=>{let e,t,r=[fs({name:"go"})],n=[];var i=t=class{get metadata(){return i.metadata}async parseInput(e,t,r){const n=e.modifiers;if(n.back)return{kind:"back"};if(n.forward)return{kind:"forward"};const i=void 0!==n.in;if(void 0!==n.url){const e=await t.evaluate(n.url,r)+"";if(!this.isValidUrl(e))throw Error(`Invalid URL: "${e}"`);return{kind:"url",url:e,newWindow:i}}const a=n.of??e.args[0];if(!a&&!n.position)throw Error("Go command requires arguments");const s=a?await t.evaluate(a,r):"body";if("string"==typeof s&&this.isBareUrl(s)&&!n.of&&!n.position)return{kind:"url",url:s,newWindow:i};const o=this.resolveScrollTarget(s,r);if(!o)throw Error("Target element not found: "+s);const l=n.position?await t.evaluate(n.position,r)+"":void 0,c={vertical:"top",horizontal:"nearest"};"top"===l||"middle"===l||"bottom"===l?c.vertical=l:"left"!==l&&"center"!==l&&"right"!==l||(c.horizontal=l,c.vertical="nearest");const u="instant"===(n.behavior?await t.evaluate(n.behavior,r):void 0)?"instant":"smooth";let d=0;if(void 0!==n.by){const e=Number((await t.evaluate(n.by,r)+"").replace(/px$/,""));Number.isNaN(e)||(d=e)}return{kind:"scroll",target:o,position:c,offset:d,behavior:u}}async execute(e,t){if("back"===e.kind||"forward"===e.kind)return await this.goHistory(e.kind),{result:e.kind,type:"back"};if("url"===e.kind)return this.navigate(e.url,e.newWindow),{result:e.url,type:"url"};const{target:r,position:n,offset:i,behavior:a}=e;if("undefined"!=typeof window){const e=this.mapVerticalPosition(n.vertical),t=this.mapHorizontalPosition(n.horizontal);if(r.scrollIntoView?.({behavior:a,block:e,inline:t}),0!==i){const{x:e,y:t}=this.calculateScrollPosition(r,n,i);window.scrollTo?.({left:e,top:t,behavior:a})}}return{result:r,type:"scroll"}}isBareUrl(e){return!!e.startsWith("/")||/^[a-z][a-z0-9+.-]*:/i.test(e)}navigate(e,t){if(t){if("undefined"!=typeof window&&window.open){const t=window.open(e,"_blank");t?.focus&&t.focus()}}else e.startsWith("#")?"undefined"!=typeof window&&(window.location.hash=e):"undefined"!=typeof window&&(window.location.assign?.(e)??(window.location.href=e))}async goHistory(e){if("undefined"==typeof window||!window.history)throw Error("Browser history API not available");"back"===e?window.history.back():window.history.forward()}isValidUrl(e){try{return e.startsWith("/")||e.startsWith("#")||new URL(e),!0}catch{return!1}}mapVerticalPosition(e){return{top:"start",middle:"center",bottom:"end",nearest:"nearest"}[e]||"start"}mapHorizontalPosition(e){return{left:"start",center:"center",right:"end",nearest:"nearest"}[e]||"nearest"}calculateScrollPosition(e,t,r){if("undefined"==typeof window||!e.getBoundingClientRect)return{x:0,y:0};const n=e.getBoundingClientRect(),i=window.pageXOffset||document.documentElement?.scrollLeft||0,a=window.pageYOffset||document.documentElement?.scrollTop||0,s=window.innerWidth||800,o=window.innerHeight||600;let l=i,c=a;switch(t.horizontal){case"left":l=n.left+i;break;case"center":l=n.left+i+n.width/2-s/2;break;case"right":l=n.right+i-s}switch(t.vertical){case"top":c=n.top+a+r;break;case"middle":c=n.top+a+n.height/2-o/2+r;break;case"bottom":c=n.bottom+a-o+r}return{x:Math.max(0,l),y:Math.max(0,c)}}resolveScrollTarget(e,t){if("object"==typeof e&&e&&e.nodeType)return e;const r="string"==typeof e?e:e+"";if("body"===r&&"undefined"!=typeof document)return document.body;if("html"===r&&"undefined"!=typeof document)return document.documentElement;if("me"===r&&$r(t.me))return t.me;if("it"===r&&$r(t.it))return t.it;if("you"===r&&$r(t.you))return t.you;const n=Kr(r,t);if($r(n))return n;if("undefined"!=typeof document)try{const e=document.querySelector(r);if(e)return e}catch{try{const e=document.getElementsByTagName(r);if(e.length>0)return e[0]}catch{}}return null}};return Qa(t,"GoCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),i=t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),t.metadata=ys({description:"Navigation functionality including URL navigation, element scrolling, and browser history",syntax:["go back","go to url <url> [in new window]","go to [position] [of] <element>"],examples:["go back",'go to url "https://example.com"','go to url "https://example.com" in new window',"go to top of #header","go to bottom of #footer smoothly"],sideEffects:["navigation","scrolling"],category:"navigation",compatibility:"standard"}),Ga(t,n),i=t})());class zl{constructor(){this.name="install"}get metadata(){return zl.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("install command requires a behavior name");const n=e.args[0];let i,a;if(i="identifier"===n?.type&&"string"==typeof n.name?n.name:await t.evaluate(n,r)+"",!/^[A-Z][a-zA-Z0-9_]*$/.test(i))throw Error(`Behavior name must be PascalCase (start with uppercase): "${i}"`);const s=e.args[1];if(s){const e=await t.evaluate(s,r);if(e&&"object"==typeof e&&!Array.isArray(e)){a=e;for(const e of Object.keys(a))if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e))throw Error(`Invalid parameter name: "${e}"`)}}let o;return e.modifiers?.on&&(o=await t.evaluate(e.modifiers.on,r)),{behaviorName:i,parameters:a,target:o}}async execute(e,t){const{behaviorName:r,parameters:n={},target:i}=e;try{const e=this.resolveTarget(i,t);if(0===e.length)throw Error("No target elements found to install behavior on");if(!this.behaviorExists(r,t))throw Error(`Behavior "${r}" is not defined. Define it using the 'behavior' keyword before installing.`);const a=[];for(const i of e){const e=await this.installBehavior(r,i,n,t);a.push(e)}return{success:!0,behaviorName:r,installedCount:a.length,instances:a}}catch(e){throw Error(`Failed to install behavior "${r}": ${e instanceof Error?e.message:e+""}`)}}resolveTarget(e,t){if(null==e){const e=t.me||t.locals.get("me");if($r(e))return[e];throw Error('No target specified and "me" is not available in context')}if($r(e))return[e];if(Array.isArray(e)){const t=e.filter(e=>$r(e));if(0===t.length)throw Error("Target array contains no valid HTMLElements");return t}if("string"==typeof e){if("me"===e){const e=t.me||t.locals.get("me");if($r(e))return[e];throw Error('"me" is not available in context')}if("undefined"!=typeof document){const t=document.querySelectorAll(e),r=Array.from(t).filter(e=>$r(e));if(0===r.length)throw Error(`No elements found matching selector: "${e}"`);return r}throw Error("document is not available (not in browser environment)")}if(e&&"object"==typeof e&&"length"in e){const t=Array.from(e).filter(e=>$r(e));if(0===t.length)throw Error("Target collection contains no valid HTMLElements");return t}if("object"==typeof e&&"element"in e){const t=e.element;if($r(t))return[t]}throw Error("Cannot resolve target to HTMLElement(s): "+e)}behaviorExists(e,t){const r=t.locals.get("_behaviors");if(r&&"object"==typeof r){const t=r;if(t.has(e))return!0;if(t.resolve&&t.resolve(e))return!0}if("undefined"!=typeof globalThis){const t=globalThis._hyperscript;if(t?.behaviors){if(t.behaviors.has(e))return!0;if(t.behaviors.resolve&&t.behaviors.resolve(e))return!0}}return!1}async installBehavior(e,t,r,n){const i=n.locals.get("_behaviors");if(i&&"object"==typeof i){const n=i;if(n.install&&"function"==typeof n.install)return await n.install(e,t,r)}if("undefined"!=typeof globalThis){const n=globalThis._hyperscript;if(n?.behaviors?.install)return await n.behaviors.install(e,t,r)}throw Error("Behavior system not available in context")}}function Vl(e){return $r(e)?e:e+""}zl.metadata=ys({description:"Install a behavior on an element with optional parameters",syntax:["install <BehaviorName>","install <BehaviorName> on <element>","install <BehaviorName>(param: value)","install <BehaviorName>(param: value) on <element>"],examples:["install Removable","install Draggable on #box",'install Tooltip(text: "Help", position: "top")','install Sortable(axis: "y") on .list',"install MyBehavior(foo: 42) on the first <div/>"],category:"behaviors",compatibility:"standard",sideEffects:["behavior-installation","element-modification"]});class Hl{constructor(e){this.position=e}concat(e,t){const r=null==e?"":e+"",n=t+"";return"append"===this.position?r+n:n+r}pushInto(e,t){return"append"===this.position?e.push(t):e.unshift(t),e}async parseInput(e,t,r){if(!e.args?.length)throw Error(this.name+" requires content");const n=await t.evaluate(e.args[0],r),i=e.modifiers?.to??e.target;if(!i)return{kind:"implicit",content:n};const a=await Yo(i,t,r,{scopeElements:async()=>$r(r.me)?[r.me]:[],selectorSource:!0,bareReference:!0});if(a)return function(e,t){switch(e.kind){case"selector":return{kind:"selector",selector:e.selector,content:t};case"attribute":return{kind:"attribute",elements:e.elements,name:e.name,content:t};case"property":return{kind:"property",property:e.target,content:t};case"variable":return{kind:"variable",name:e.name,scope:e.scope,content:t};default:throw Error(`unrequested write-target rung '${e.kind}'`)}}(a,n);const s=await t.evaluate(i,r),o=function(e){if($r(e))return[e];if(Array.isArray(e)&&e.length>0&&e.every(e=>$r(e)))return e;if(e&&"object"==typeof e&&"number"==typeof e.length&&"function"==typeof e.item){const t=Array.from(e).filter(e=>$r(e));return t.length?t:null}return null}(s);return o?{kind:"elements",elements:o,content:n}:{kind:"value",target:s,content:n}}async execute(e,t){switch(e.kind){case"selector":return this.done(t,this.insertIntoSelector(e.selector,e.content));case"elements":return this.done(t,this.insertIntoEach(e.elements,e.content));case"attribute":{for(const t of e.elements)t.setAttribute(e.name,this.concat(t.getAttribute(e.name),e.content));const r=e.elements[0]?.getAttribute(e.name)??this.concat(null,e.content);return Object.assign(t,{it:r}),{target:"@"+e.name,value:r,targetType:"attribute"}}case"property":{const r=no(e.property),n=this.combineValue(r,e.content);return $r(r)||io(e.property,n),Object.assign(t,{it:n}),{target:e.property.element,value:n,targetType:"property"}}case"variable":return this.executeVariable(e,t);case"value":{const r=this.combineValue(e.target,e.content,!0);return Object.assign(t,{it:r}),{target:e.target,value:r,targetType:this.targetTypeOf(e.target)}}case"implicit":return this.execImplicit(t,e.content)}}insertIntoSelector(e,t){return this.insertIntoEach(Qr(e),t)}insertIntoEach(e,t){const r=Vl(t);for(const t of e)Ms(t,r,this.position);return e}combineValue(e,t,r=!1){if(Array.isArray(e))return this.pushInto(e,t);if(e instanceof Set)return e.add(t),e;if($r(e))return Ms(e,Vl(t),this.position),e;if(r&&null!=e&&"string"!=typeof e&&"number"!=typeof e)throw Error(`Unable to ${this.name} a value!`);return this.concat(e,t)}targetTypeOf(e){return Array.isArray(e)?"array":e instanceof Set?"set":$r(e)?"element":"result"}executeVariable(e,t){if("me"===e.name||"you"===e.name){const r="me"===e.name?t.me:t.you;if($r(r))return Ms(r,Vl(e.content),this.position),Object.assign(t,{it:r}),{target:r,value:r,targetType:"element"}}if("it"===e.name||"result"===e.name)return this.execImplicit(t,e.content);const r=Kr(e.name,t,e.scope),n=this.combineValue(r,e.content);return Array.isArray(r)||r instanceof Set||$r(r)||Zr(e.name,n,t,e.scope),Object.assign(t,{it:n}),{target:e.name,value:n,targetType:this.targetTypeOf(r)}}execImplicit(e,t){const r=e.it??e.result,n=this.combineValue(r,t);return Object.assign(e,{it:n,result:n}),{target:"result",value:n,targetType:this.targetTypeOf(r)}}done(e,t){const r=1===t.length?t[0]:t;return Object.assign(e,{it:r}),{target:r,value:r,targetType:"element"}}}const Wl=gs((()=>{let e,t,r=[fs({name:"append"})],n=[],i=Hl;var a=t=class extends i{get metadata(){return a.metadata}constructor(){super("append")}};return Qa(t,"AppendCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Add content to the end of a string, array, Set, or HTML element",syntax:["append <content>","append <content> to <target>"],examples:['append "Hello"','append "World" to greeting',"append item to myArray",'append "<p>New</p>" to #content','append " (edited)" to #title\'s textContent'],sideEffects:["data-mutation","dom-mutation"],category:"content",compatibility:"standard"}),Ga(t,n),a=t})()),Bl=gs((()=>{let e,t,r=[fs({name:"prepend"})],n=[],i=Hl;var a=t=class extends i{get metadata(){return a.metadata}constructor(){super("prepend")}};return Qa(t,"PrependCommand"),(()=>{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Ja(null,e={value:t},r,{kind:"class",name:t.name,metadata:s},null,n),a=t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),t.metadata=ys({description:"Add content to the start of a string, array, Set, or HTML element",syntax:["prepend <content>","prepend <content> to <target>"],examples:['prepend "Hello"','prepend "World" to greeting',"prepend item to myArray",'prepend "<p>First</p>" to #content'],sideEffects:["data-mutation","dom-mutation"],category:"content",compatibility:"lokascript-extension"}),Ga(t,n),a=t})());class Fl{constructor(){this.name="render"}get metadata(){return Fl.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("render command requires a template");const n=await t.evaluate(e.args[0],r);let i;if(!i&&e.modifiers?.with){const n=await t.evaluate(e.modifiers.with,r);n&&"object"==typeof n&&(i=n)}return{template:n,variables:i}}async execute(e,t){const{template:r,variables:n={}}=e,i=this.extractTemplateContent(r,t),a=this.createTemplateContext(t,n),s=[],o=await this.processTemplate(i,a,s),l=this.createDOMElement(o);return Object.assign(t,{it:l}),{element:l,rendered:o,directivesProcessed:s}}extractTemplateContent(e,t){if(e instanceof HTMLTemplateElement)return e.innerHTML;if("string"==typeof e){let r=e;if(!r.includes("<")&&!r.includes("$")){const e=this.resolveVariable(r,t);if(e instanceof HTMLTemplateElement)return e.innerHTML;"string"==typeof e&&(r=e)}const n=r.match(/<template[^>]*>([\s\S]*?)<\/template>/i);return n?n[1]:r}if(e&&"object"==typeof e&&"innerHTML"in e)return e.innerHTML;throw Error("Invalid template format")}createTemplateContext(e,t){return{...e,locals:new Map([...Array.from(e.locals.entries()),...Object.entries(t)])}}async processTemplate(e,t,r){const n=e.split("\n"),i=[];let a=0;for(;n.length>a;){const e=n[a].trim();if(e.startsWith("@repeat ")){const{nextIndex:e,rendered:s}=await this.processRepeatDirective(n,a,t);i.push(s),a=e,r.push("@repeat")}else if(e.startsWith("@if ")){const{nextIndex:e,rendered:s}=await this.processIfDirective(n,a,t,r);i.push(s),a=e,r.push("@if")}else if("@else"===e||"@end"===e)a++;else{const r=this.processVariableInterpolation(e,t);i.push(r),a++}}return i.join("\n")}async processRepeatDirective(e,t,r){const n=e[t].trim(),i=n.match(/^@repeat\s+in\s+(.+)$/);if(!i)throw Error("Invalid @repeat syntax: "+n);const a=this.evaluateExpression(i[1],r),{endIndex:s,blockContent:o}=this.extractDirectiveBlock(e,t+1),l=[];if(Array.isArray(a))for(const e of a){const t={...r,locals:new Map([...r.locals.entries(),["it",e]])},n=await this.processTemplate(o.join("\n"),t,[]);l.push(n)}return{nextIndex:s+1,rendered:l.join("\n")}}async processIfDirective(e,t,r,n){const i=e[t].trim(),a=i.match(/^@if\s+(.+)$/);if(!a)throw Error("Invalid @if syntax: "+i);const s=!!this.evaluateExpression(a[1],r),{endIndex:o,blockContent:l,elseContent:c}=this.extractIfElseBlock(e,t+1);let u="";return s?u=await this.processTemplate(l.join("\n"),r,[]):c.length>0&&(u=await this.processTemplate(c.join("\n"),r,[]),n.push("@else")),{nextIndex:o+1,rendered:u}}extractDirectiveBlock(e,t){const r=[];let n=1,i=t;for(;e.length>i&&n>0;){const t=e[i].trim();t.startsWith("@repeat ")||t.startsWith("@if ")?(n++,r.push(e[i])):"@end"===t?(n--,n>0&&r.push(e[i])):r.push(e[i]),i++}return{endIndex:i-1,blockContent:r}}extractIfElseBlock(e,t){const r=[],n=[];let i=1,a=t,s=!1;for(;e.length>a&&i>0;){const t=e[a].trim();if(t.startsWith("@if "))i++;else{if("@else"===t&&1===i){s=!0,a++;continue}if("@end"===t&&(i--,0===i))break}s?n.push(e[a]):r.push(e[a]),a++}return{endIndex:a,blockContent:r,elseContent:n}}processVariableInterpolation(e,t){return e.replace(/\$\{([^}]+)\}/g,(e,r)=>{try{const e=r.trim();if(e.startsWith("unescaped ")){const r=e.substring(10).trim();return(this.evaluateExpression(r,t)||"")+""}const n=this.evaluateExpression(e,t);return this.escapeHtml((n||"")+"")}catch(t){return ue(`render: template interpolation error for ${r}:`,t),e}})}evaluateExpression(e,t){if("true"===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("undefined"===e)return;const r=Number(e);if(!isNaN(r)&&""!==e.trim())return r;if(e.startsWith("[")&&e.endsWith("]"))try{return JSON.parse(e)}catch{}if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1);if(e.includes(".")){const r=e.split(".");let n=this.resolveVariable(r[0],t);for(let e=1;r.length>e&&null!=n;e++){if("object"!=typeof n||null===n)return;n=n[r[e]]}return n}return this.resolveVariable(e,t)}resolveVariable(e,t){return t.locals?.has(e)?t.locals.get(e):"me"===e?t.me:"it"===e?t.it??t.result:"you"===e?t.you:"result"===e?t.result??t.it:t.globals?.has(e)?t.globals.get(e):void 0}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}createDOMElement(e){if("undefined"==typeof document)return null;const t=document.createElement("div");return t.innerHTML=e,1===t.children.length?t.firstElementChild:t}}Fl.metadata=ys({description:"Render templates with @if, @else, and @repeat directives",syntax:["render <template>","render <template> with <name>: <value>, ..."],examples:["render myTemplate",'render myTemplate with name: "Alice"','render "<template>Hello ${name}!</template>" with name: "World"',"render template with items: data"],category:"templates",compatibility:"standard",sideEffects:["dom-creation","template-execution"]});class Dl{constructor(){this.name="pseudo-command"}get metadata(){return Dl.metadata}async parseInput(e,t,r){if(1===e.args.length&&"objectLiteral"===e.args[0].type){const n=e.args[0].properties||[];let i,a,s="",o=[];for(const e of n){const n=e.value;switch(e.key?.name||e.key?.value){case"methodName":s=n?.value||await t.evaluate(n,r)+"";break;case"methodArgs":"arrayLiteral"===n?.type&&n.elements?o=await Promise.all(n.elements.map(e=>t.evaluate(e,r))):"literal"===n?.type&&Array.isArray(n.value)&&(o=await Promise.all(n.value.map(e=>t.evaluate(e,r))));break;case"preposition":const e=n?.value;e&&"null"!==e&&(i=e);break;case"target":case"targetExpression":a=await t.evaluate(n,r)}}if(!s)throw Error("pseudo-command requires method name");if(null==a)throw Error("pseudo-command requires a target expression");return{methodName:s,methodArgs:o,preposition:i,targetExpression:a}}if(2>e.args.length)throw Error("pseudo-command requires method name and target expression");const n=await t.evaluate(e.args[0],r)+"",i=Array.isArray(e.args[1])?await Promise.all(e.args[1].map(e=>t.evaluate(e,r))):[];let a,s;const o=["from","on","with","into","at","to"];for(const n of o)if(e.modifiers?.[n]){s=n,a=await t.evaluate(e.modifiers[n],r);break}if(!a&&e.args[2]&&(a=await t.evaluate(e.args[2],r)),!a)throw Error("pseudo-command requires a target expression");return{methodName:n,methodArgs:i,preposition:s,targetExpression:a}}async execute(e,t){const{methodName:r,methodArgs:n,targetExpression:i}=e;try{const e=await this.resolveTarget(i,t);if(null==e)throw Error("Target expression resolved to "+e);const a=this.resolveMethod(e,r);if(!a)throw Error(`Method "${r}" not found on target object`);if("function"!=typeof a)throw Error(`"${r}" is not a function (it's a ${typeof a})`);const s=await this.executeMethod(a,e,n);return t.locals.set("result",s),Object.assign(t,{it:s}),{result:s,methodName:r,target:e}}catch(e){throw Error("Pseudo-command failed: "+(e instanceof Error?e.message:e+""))}}async resolveTarget(e,t){return"object"==typeof e&&null!==e?e:"string"==typeof e?t.locals.has(e)?t.locals.get(e):t.variables?.has(e)?t.variables.get(e):t.globals.has(e)?t.globals.get(e):"me"===e&&t.me?t.me:"it"===e&&t.it?t.it:"document"===e?"undefined"!=typeof document?document:null:"window"===e?"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:null:this.resolvePropertyPath(e,t):e}resolvePropertyPath(e,t){const r=e.split(".");let n="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:null;t.locals.has(r[0])?(n=t.locals.get(r[0]),r.shift()):t.variables?.has(r[0])?(n=t.variables.get(r[0]),r.shift()):t.globals.has(r[0])&&(n=t.globals.get(r[0]),r.shift());for(const e of r){if(null==n)return null;n=n[e]}return n}resolveMethod(e,t){if(!e)return null;if(t in e)return e[t];const r=t.split(".");let n=e;for(let e=0;r.length>e;e++){const t=r[e];if(null==n)return null;if(!(t in n))return null;if(n=n[t],e===r.length-1&&"function"==typeof n)return n}return null}async executeMethod(e,t,r){try{const n=e.apply(t,r);return n&&"object"==typeof n&&"then"in n?await n:n}catch(e){throw Error("Method execution failed: "+(e instanceof Error?e.message:e+""))}}}Dl.metadata=ys({description:"Treat a method on an object as a top-level command",syntax:["<method>(<args>) [(to|on|with|into|from|at)] <expression>"],examples:['getElementById("d1") from the document',"reload() the location of the window",'setAttribute("foo", "bar") on me',"foo() on me"],category:"execution",compatibility:"standard",sideEffects:["method-execution"]});var Ul=new Set(["to","from","into","with","at","in","of","as","by","before","after","without"]),Kl=new Set(["add","append","async","beep","blur","break","breakpoint","call","clear","close","continue","decrement","default","empty","exit","fetch","focus","for","get","go","halt","hide","if","increment","install","js","log","make","measure","morph","open","pick","process","push","put","remove","render","repeat","replace","reset","return","select","send","set","settle","show","swap","take","tell","throw","toggle","transition","trigger","unless","wait","live","bind","eventsource","socket","worker","intercept"]),Zl=new Set(["then","else","end","and","or","not","if","unless","for","while","until","forever","times","each","index","in","to","from","into","with","without","of","at","by","as","matches","contains","is","exists","on","when","every","event","init","def","behavior","global","local","the","a","an","first","last","start","before","after"]),Yl=new Set(["click","dblclick","mousedown","mouseup","mouseenter","mouseleave","mouseover","mouseout","mousemove","keydown","keyup","keypress","focus","blur","change","input","submit","reset","load","unload","resize","scroll","touchstart","touchend","touchmove","touchcancel","dragstart","dragend","dragenter","dragleave","dragover","drop","contextmenu","wheel","pointerdown","pointerup","pointermove","ms","s"]),Jl=new Set(["and","or","not","is","exists","matches","contains","then","else"]),Gl=new Set(["true","false","null","undefined","it","me","my","result"]),Ql=new Set(["first","last","next","previous","prev","at","random","closest","parent","children","within","no","empty","some","starts with","ends with"]);function Xl(e,t,r={}){const{allowEnglishFallback:n=!0}=r,i=new Map,a=new Map,s=new Map,o=new Map,l=new Map,c=new Map,u=new Map,d=new Map,m=new Map,p=new Map;function h(e,t,r=!1){for(const[n,i]of Object.entries(e)){const e=i.toLowerCase();t.set(e,n.toLowerCase()),!r&&m.has(e)||m.set(e,n.toLowerCase()),p.set(n.toLowerCase(),i.toLowerCase())}}e.commands&&h(e.commands,i,!0),e.logical&&h(e.logical,o,!0),e.events&&h(e.events,s),e.values&&h(e.values,c),e.temporal&&h(e.temporal,l),e.modifiers&&h(e.modifiers,a),e.attributes&&h(e.attributes,u),e.expressions&&h(e.expressions,d);const f=new Set(i.keys()),y=new Set(m.keys());if(n){for(const e of Kl)f.add(e);for(const e of Zl)y.add(e);for(const e of Yl)y.add(e)}return{locale:t,resolve(e){const t=e.toLowerCase(),r=m.get(t);if(void 0!==r)return r;if(n){if(Kl.has(t)||Zl.has(t))return t;if(Yl.has(t))return t}},isCommand(e){const t=e.toLowerCase();return!!i.has(t)||!(!n||!Kl.has(t))},isKeyword(e){const t=e.toLowerCase();return!!(a.has(t)||o.has(t)||l.has(t)||c.has(t))||!(!n||!Zl.has(t))},isEvent(e){const t=e.toLowerCase();return!!s.has(t)||!!Yl.has(t)},isModifier(e){const t=e.toLowerCase();return a.has(t)||n&&Ul.has(t)},isLogical(e){const t=e.toLowerCase();return o.has(t)||n&&Jl.has(t)},isValue(e){const t=e.toLowerCase();return c.has(t)||n&&Gl.has(t)},isExpression(e){const t=e.toLowerCase();return d.has(t)||n&&Ql.has(t)},getCommands:()=>Array.from(f),getKeywords:()=>Array.from(y),toLocale:e=>p.get(e.toLowerCase())}}function ec(){return{locale:"en",resolve(e){const t=e.toLowerCase();if(Kl.has(t)||Zl.has(t)||Yl.has(t))return t},isCommand:e=>Kl.has(e.toLowerCase()),isKeyword:e=>Zl.has(e.toLowerCase()),isEvent:e=>Yl.has(e.toLowerCase()),isModifier:e=>Ul.has(e.toLowerCase()),isLogical:e=>Jl.has(e.toLowerCase()),isValue:e=>Gl.has(e.toLowerCase()),isExpression:e=>Ql.has(e.toLowerCase()),getCommands:()=>Array.from(Kl),getKeywords:()=>Array.from(Zl),toLocale:e=>e.toLowerCase()}}var tc={commands:{on:"en",tell:"decir",trigger:"disparar",send:"enviar",take:"tomar",put:"poner",set:"establecer",get:"obtener",add:"agregar",remove:"quitar",toggle:"alternar",hide:"ocultar",show:"mostrar",if:"si",unless:"menos",repeat:"repetir",for:"para",while:"mientras",until:"hasta",continue:"continuar",break:"romper",halt:"detener",wait:"esperar",fetch:"buscar",call:"llamar",return:"retornar",make:"hacer",log:"registrar",throw:"lanzar",catch:"atrapar",measure:"medir",transition:"transici\u00f3n",increment:"incrementar",decrement:"decrementar",default:"predeterminar",go:"ir",pushUrl:"pushUrl",replaceUrl:"reemplazarUrl",copy:"copiar",pick:"escoger",beep:"pitido",js:"js",async:"as\u00edncrono",render:"renderizar",swap:"intercambiar",morph:"transformar",settle:"estabilizar",append:"anexar",exit:"salir",install:"instalar",breakpoint:"punto-interrupci\u00f3n",clear:"limpiar",close:"cerrar",open:"abrir",select:"seleccionar",clone:"clonar",prepend:"anteponer"},modifiers:{to:"a",from:"de",into:"en",with:"con",at:"en",in:"en",of:"de",as:"como",by:"por",before:"antes",after:"despu\u00e9s",over:"sobre",under:"bajo",between:"entre",through:"trav\u00e9s",without:"sin"},events:{click:"clic",dblclick:"dobleclic",mouseenter:"rat\u00f3nentrar",mouseleave:"rat\u00f3nsalir",mousedown:"rat\u00f3n abajo",mouseup:"rat\u00f3n arriba",mouseover:"rat\u00f3n encima",mouseout:"rat\u00f3n fuera",mousemove:"rat\u00f3nmover",keydown:"tecla abajo",keyup:"tecla arriba",keypress:"teclapresar",focus:"enfocar",blur:"desenfocar",change:"cambiar",input:"entrada",submit:"env\u00edo",reset:"reiniciar",load:"cargar",unload:"descargar",resize:"redimensionar",scroll:"desplazar",touchstart:"toqueempezar",touchend:"toqueterminar",touchmove:"toquemover",touchcancel:"toquecancelar"},logical:{when:"cuando",where:"donde",and:"y",or:"o",not:"no",is:"es",exists:"existe",matches:"coincide",contains:"contiene",includes:"incluye",equals:"iguala",has:"tiene",have:"tengo",then:"entonces",else:"sino",otherwise:"delocontrario",end:"fin",live:"vivo",changes:"cambia"},temporal:{seconds:"segundos",second:"segundo",milliseconds:"milisegundos",millisecond:"milisegundo",minutes:"minutos",minute:"minuto",hours:"horas",hour:"hora",ms:"ms",s:"s",min:"min",h:"h",times:"veces"},values:{true:"verdadero",false:"falso",null:"nulo",undefined:"indefinido",it:"ello",its:"su",me:"yo",my:"mi",you:"tu",your:"tu",yourself:"ti mismo",myself:"yo mismo",element:"elemento",target:"objetivo",detail:"detalle",event:"evento",window:"ventana",document:"documento",body:"cuerpo",result:"resultado",value:"valor"},attributes:{class:"clase",classes:"clases",style:"estilo",styles:"estilos",attribute:"atributo",attributes:"atributos",property:"propiedad",properties:"propiedades"},expressions:{characters:"caracteres",inclusive:"inclusivo",exclusive:"exclusivo",first:"primero",last:"\u00faltimo",next:"siguiente",previous:"anterior",prev:"ant",at:"en",random:"aleatorio",closest:"cercano",parent:"padre",children:"hijos",within:"dentro",no:"ning\u00fan",empty:"vac\u00edo",some:"alg\u00fan","starts with":"empieza con","ends with":"termina con","ignoring case":"ignorando may\u00fasculas","sorted by":"ordenado por","mapped to":"transformado a","split by":"dividido por","joined by":"unido por"}},rc=Xl(tc,"es",{allowEnglishFallback:!0}),nc={commands:{on:"\u3067",tell:"\u4f1d\u3048\u308b",trigger:"\u5f15\u304d\u91d1",send:"\u9001\u308b",take:"\u53d6\u308b",put:"\u7f6e\u304f",set:"\u8a2d\u5b9a",get:"\u53d6\u5f97",add:"\u8ffd\u52a0",remove:"\u524a\u9664",toggle:"\u5207\u308a\u66ff\u3048",hide:"\u96a0\u3059",show:"\u8868\u793a",if:"\u3082\u3057",unless:"\u306a\u3044\u9650\u308a",repeat:"\u7e70\u308a\u8fd4\u3057",for:"\u305f\u3081\u306b",while:"\u306e\u9593",until:"\u307e\u3067",continue:"\u7d9a\u3051\u308b",break:"\u4e2d\u65ad",halt:"\u505c\u6b62",wait:"\u5f85\u3064",fetch:"\u30d5\u30a7\u30c3\u30c1",call:"\u547c\u3073\u51fa\u3057",return:"\u623b\u308b",make:"\u4f5c\u308b",log:"\u8a18\u9332",throw:"\u6295\u3052\u308b",catch:"\u6355\u307e\u3048\u308b",measure:"\u6e2c\u5b9a",transition:"\u9077\u79fb",increment:"\u5897\u52a0",decrement:"\u6e1b\u5c11",default:"\u65e2\u5b9a",go:"\u79fb\u52d5",pushUrl:"URL\u30d7\u30c3\u30b7\u30e5",replaceUrl:"URL\u7f6e\u63db",copy:"\u30b3\u30d4\u30fc",pick:"\u9078\u629e",beep:"\u30d3\u30fc\u30d7",js:"JS\u5b9f\u884c",async:"\u975e\u540c\u671f",render:"\u63cf\u753b",swap:"\u4ea4\u63db",morph:"\u5909\u5f62",settle:"\u5b89\u5b9a",append:"\u672b\u5c3e\u8ffd\u52a0",exit:"\u9000\u51fa",install:"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb",breakpoint:"\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8",clear:"\u30af\u30ea\u30a2",close:"\u9589\u3058\u308b",open:"\u958b\u304f",select:"\u9078\u3076",clone:"\u8907\u88fd",prepend:"\u5148\u982d\u8ffd\u52a0",socket:"\u30bd\u30b1\u30c3\u30c8"},modifiers:{to:"\u306b",from:"\u304b\u3089",into:"\u3078",with:"\u3068",at:"\u3067",in:"\u306e\u4e2d",of:"\u306e",as:"\u3068\u3057\u3066",by:"\u306b\u3088\u3063\u3066",before:"\u524d\u306b",after:"\u5f8c\u306b",over:"\u4e0a\u306b",under:"\u4e0b\u306b",between:"\u9593\u306b",through:"\u901a\u3057\u3066",without:"\u306a\u3057\u3067"},events:{click:"\u30af\u30ea\u30c3\u30af",dblclick:"dblclick",mousedown:"\u30de\u30a6\u30b9\u62bc\u4e0b",mouseup:"\u30de\u30a6\u30b9\u89e3\u653e",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc",mouseout:"\u30de\u30a6\u30b9\u30a2\u30a6\u30c8",mousemove:"mousemove",keydown:"\u30ad\u30fc\u30c0\u30a6\u30f3",keyup:"\u30ad\u30fc\u30a2\u30c3\u30d7",keypress:"\u30ad\u30fc\u30d7\u30ec\u30b9",focus:"\u30d5\u30a9\u30fc\u30ab\u30b9",blur:"\u307c\u304b\u3057",change:"\u5909\u66f4",input:"\u5165\u529b",submit:"\u9001\u4fe1",reset:"\u30ea\u30bb\u30c3\u30c8",load:"\u8aad\u307f\u8fbc\u307f",unload:"unload",resize:"\u30b5\u30a4\u30ba\u5909\u66f4",scroll:"\u30b9\u30af\u30ed\u30fc\u30eb",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"\u6642",where:"\u3069\u3053",and:"\u305d\u3057\u3066",or:"\u307e\u305f\u306f",not:"\u3067\u306f\u306a\u3044",is:"\u3067\u3042\u308b",exists:"\u5b58\u5728\u3059\u308b",matches:"\u4e00\u81f4\u3059\u308b",contains:"\u542b\u3080",includes:"\u542b\u3081\u308b",equals:"\u7b49\u3057\u3044",has:"\u3042\u308b",have:"\u3042\u308b",then:"\u305d\u308c\u304b\u3089",else:"\u305d\u3046\u3067\u306a\u3051\u308c\u3070",otherwise:"\u305d\u3046\u3067\u306a\u3051\u308c\u3070",end:"\u7d42\u308f\u308a",live:"\u30e9\u30a4\u30d6",bind:"\u30d0\u30a4\u30f3\u30c9",changes:"\u5909\u308f\u3063\u305f\u3089"},temporal:{seconds:"\u79d2",second:"\u79d2",milliseconds:"\u30df\u30ea\u79d2",millisecond:"\u30df\u30ea\u79d2",minutes:"\u5206",minute:"\u5206",hours:"\u6642\u9593",hour:"\u6642\u9593",ms:"ms",s:"\u79d2",min:"\u5206",h:"\u6642",times:"\u56de"},values:{true:"\u771f",false:"\u507d",null:"null",undefined:"\u672a\u5b9a\u7fa9",it:"\u305d\u308c",its:"\u305d\u306e",me:"\u79c1",my:"\u79c1\u306e",you:"\u3042\u306a\u305f",your:"\u3042\u306a\u305f\u306e",yourself:"\u3042\u306a\u305f\u81ea\u8eab",myself:"\u79c1\u81ea\u8eab",element:"\u8981\u7d20",target:"\u5bfe\u8c61",detail:"\u8a73\u7d30",event:"\u30a4\u30d9\u30f3\u30c8",window:"\u30a6\u30a3\u30f3\u30c9\u30a6",document:"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8",body:"\u30dc\u30c7\u30a3",result:"\u7d50\u679c",value:"\u5024"},attributes:{class:"\u30af\u30e9\u30b9",classes:"\u30af\u30e9\u30b9\u7fa4",style:"\u30b9\u30bf\u30a4\u30eb",styles:"\u30b9\u30bf\u30a4\u30eb\u7fa4",attribute:"\u5c5e\u6027",attributes:"\u5c5e\u6027\u7fa4",property:"\u30d7\u30ed\u30d1\u30c6\u30a3",properties:"\u30d7\u30ed\u30d1\u30c6\u30a3\u7fa4"},expressions:{characters:"\u6587\u5b57",inclusive:"\u542b\u3080",exclusive:"\u9664\u304f",first:"\u6700\u521d",last:"\u6700\u5f8c",next:"\u6b21",previous:"\u524d",prev:"\u524d",at:"\u3067",random:"\u30e9\u30f3\u30c0\u30e0",closest:"\u6700\u3082\u8fd1\u3044",parent:"\u89aa",children:"\u5b50",within:"\u4ee5\u5185",no:"\u306a\u3044",empty:"\u7a7a",some:"\u3044\u304f\u3064\u304b","starts with":"\u3067\u59cb\u307e\u308b","ends with":"\u3067\u7d42\u308f\u308b","ignoring case":"\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u7121\u8996","sorted by":"\u3067\u30bd\u30fc\u30c8","mapped to":"\u306b\u5909\u63db","split by":"\u3067\u5206\u5272","joined by":"\u3067\u7d50\u5408"}},ic=Xl(nc,"ja",{allowEnglishFallback:!0}),ac={commands:{on:"sur",tell:"dire",trigger:"d\u00e9clencher",send:"envoyer",take:"prendre",put:"mettre",set:"d\u00e9finir",get:"obtenir",add:"ajouter",remove:"supprimer",toggle:"basculer",blur:"d\u00e9focaliser",hide:"cacher",show:"montrer",if:"si",unless:"saufsi",repeat:"r\u00e9p\u00e9ter",for:"pour",while:"tantque",until:"jusqu\u00e0",continue:"continuer",break:"arr\u00eater",halt:"stopper",wait:"attendre",fetch:"r\u00e9cup\u00e9rer",call:"appeler",return:"retourner",make:"cr\u00e9er",log:"enregistrer",throw:"lancer",catch:"attraper",measure:"mesurer",transition:"transition",increment:"incr\u00e9menter",decrement:"d\u00e9cr\u00e9menter",default:"d\u00e9faut",go:"aller",pushUrl:"pousserUrl",replaceUrl:"remplacerUrl",copy:"copier",pick:"choisir",beep:"bip",js:"js",async:"asynchrone",render:"rendu",swap:"\u00e9changer",morph:"transformer",settle:"stabiliser",append:"annexer",exit:"sortir",install:"installer",breakpoint:"point-arr\u00eat",clear:"effacer",close:"fermer",open:"ouvrir",select:"s\u00e9lectionner",clone:"cloner",prepend:"pr\u00e9fixer",focus:"focaliser"},modifiers:{to:"\u00e0",from:"de",into:"dans",with:"avec",at:"\u00e0",in:"en",of:"de",as:"comme",by:"par",before:"avant",after:"apr\u00e8s",over:"sur",under:"sous",between:"entre",through:"\u00e0 travers",without:"sans"},events:{click:"clic",dblclick:"doubleclic",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"sourisentrer",mouseleave:"sourissortir",mouseover:"souris dessus",mouseout:"souris dehors",mousemove:"sourisbouger",keydown:"touche bas",keyup:"touche haut",keypress:"touchepress\u00e9e",focus:"focus",blur:"flou",change:"changer",input:"saisie",submit:"soumettre",reset:"r\u00e9initialiser",load:"charger",unload:"d\u00e9charger",resize:"redimensionner",scroll:"d\u00e9filer",touchstart:"touchercommencer",touchend:"toucherfin",touchmove:"toucherbouger",touchcancel:"toucherannuler"},logical:{when:"quand",where:"o\u00f9",and:"et",or:"ou",not:"non",is:"est",exists:"existe",matches:"correspond",contains:"contient",includes:"inclut",equals:"\u00e9gale",has:"a",have:"ai",then:"alors",else:"sinon",otherwise:"autrement",end:"fin",live:"vif",changes:"change"},temporal:{seconds:"secondes",second:"seconde",milliseconds:"millisecondes",millisecond:"milliseconde",minutes:"minutes",minute:"minute",hours:"heures",hour:"heure",ms:"ms",s:"s",min:"min",h:"h",times:"fois"},values:{true:"vrai",false:"faux",null:"nul",undefined:"ind\u00e9fini",it:"\u00e7a",its:"son",me:"moi",my:"mon",you:"tu",your:"ton",yourself:"toi-m\u00eame",myself:"moi-m\u00eame",element:"\u00e9l\u00e9ment",target:"cible",detail:"d\u00e9tail",event:"\u00e9v\u00e9nement",window:"fen\u00eatre",document:"document",body:"corps",result:"r\u00e9sultat",value:"valeur"},attributes:{class:"classe",classes:"classes",style:"style",styles:"styles",attribute:"attribut",attributes:"attributs",property:"propri\u00e9t\u00e9",properties:"propri\u00e9t\u00e9s"},expressions:{characters:"caract\u00e8res",inclusive:"inclusif",exclusive:"exclusif",first:"premier",last:"dernier",next:"suivant",previous:"pr\u00e9c\u00e9dent",prev:"pr\u00e9c",at:"\u00e0",random:"al\u00e9atoire",closest:"proche",parent:"parent",children:"enfants",within:"dans",no:"aucun",empty:"vide",some:"quelques","starts with":"commence par","ends with":"finit par","ignoring case":"en ignorant la casse","sorted by":"tri\u00e9 par","mapped to":"transform\u00e9 en","split by":"divis\u00e9 par","joined by":"joint par"}},sc=Xl(ac,"fr",{allowEnglishFallback:!0}),oc={commands:{on:"bei",tell:"sagen",trigger:"ausl\u00f6sen",send:"senden",take:"nehmen",put:"setzen",set:"festlegen",get:"erhalten",add:"hinzuf\u00fcgen",remove:"entfernen",toggle:"umschalten",blur:"defokussieren",hide:"verstecken",show:"zeigen",if:"falls",unless:"wennnicht",repeat:"wiederholen",for:"f\u00fcr",while:"w\u00e4hrend",until:"bis",continue:"weiter",break:"unterbrechen",halt:"anhalten",wait:"warten",fetch:"abrufen",call:"aufrufen",return:"zur\u00fcckgeben",make:"erstellen",log:"protokollieren",throw:"werfen",catch:"fangen",measure:"messen",transition:"\u00fcbergang",increment:"erh\u00f6hen",decrement:"verringern",default:"standard",go:"gehen",pushUrl:"urlHinzuf\u00fcgen",replaceUrl:"urlErsetzen",copy:"kopieren",pick:"ausw\u00e4hlen",beep:"piepton",js:"js",async:"asynchron",render:"rendern",swap:"tauschen",morph:"verwandeln",settle:"stabilisieren",append:"anh\u00e4ngen",exit:"beenden",install:"installieren",breakpoint:"haltepunkt",clear:"bereinigen",close:"schlie\u00dfen",open:"\u00f6ffnen",select:"markieren",clone:"klonen",prepend:"voranstellen",focus:"fokussieren"},modifiers:{to:"zu",from:"von",into:"in",with:"mit",at:"bei",in:"in",of:"von",as:"als",by:"durch",before:"vor",after:"nach",over:"\u00fcber",under:"unter",between:"zwischen",through:"durch",without:"ohne"},events:{click:"klick",dblclick:"doppelklick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mauseintreten",mouseleave:"mausverlassen",mouseover:"maus dr\u00fcber",mouseout:"maus weg",mousemove:"mausbewegen",keydown:"taste unten",keyup:"taste oben",keypress:"tastedr\u00fccken",focus:"fokus",blur:"defokussieren",change:"\u00e4ndern",input:"eingabe",submit:"absenden",reset:"zur\u00fccksetzen",load:"laden",unload:"entladen",resize:"gr\u00f6\u00dfen\u00e4nderung",scroll:"scrollen",touchstart:"ber\u00fchrungstart",touchend:"ber\u00fchrungend",touchmove:"ber\u00fchrungbewegen",touchcancel:"ber\u00fchrungabbrechen"},logical:{when:"wenn",where:"wo",and:"und",or:"oder",not:"nicht",is:"ist",exists:"existiert",matches:"passt",contains:"enth\u00e4lt",includes:"beinhaltet",equals:"gleicht",has:"hat",have:"habe",then:"dann",else:"sonst",otherwise:"andernfalls",end:"ende",live:"live",changes:"\u00e4ndert"},temporal:{seconds:"sekunden",second:"sekunde",milliseconds:"millisekunden",millisecond:"millisekunde",minutes:"minuten",minute:"minute",hours:"stunden",hour:"stunde",ms:"ms",s:"s",min:"min",h:"std",times:"mal"},values:{true:"wahr",false:"falsch",null:"null",undefined:"undefiniert",it:"es",its:"sein",me:"ich",my:"mein",you:"du",your:"dein",yourself:"dich selbst",myself:"ich selbst",element:"element",target:"ziel",detail:"detail",event:"ereignis",window:"fenster",document:"dokument",body:"k\u00f6rper",result:"ergebnis",value:"wert"},attributes:{class:"klasse",classes:"klassen",style:"stil",styles:"stile",attribute:"attribut",attributes:"attribute",property:"eigenschaft",properties:"eigenschaften"},expressions:{characters:"Zeichen",inclusive:"inklusiv",exclusive:"exklusiv",first:"erste",last:"letzte",next:"n\u00e4chste",previous:"vorherige",prev:"vorh",at:"bei",random:"zuf\u00e4llig",closest:"n\u00e4chstgelegene",parent:"elternteil",children:"kinder",within:"innerhalb",no:"kein",empty:"leer",some:"einige","starts with":"beginnt mit","ends with":"endet mit","ignoring case":"ohne Gro\u00df-/Kleinschreibung","sorted by":"sortiert nach","mapped to":"zugeordnet zu","split by":"geteilt durch","joined by":"verbunden mit"}},lc=Xl(oc,"de",{allowEnglishFallback:!0}),cc={commands:{on:"\u0639\u0644\u0649",tell:"\u0623\u062e\u0628\u0631",trigger:"\u062a\u0634\u063a\u064a\u0644",send:"\u0623\u0631\u0633\u0644",take:"\u062e\u0630",put:"\u0636\u0639",set:"\u0627\u0636\u0628\u0637",get:"\u0627\u062d\u0635\u0644",add:"\u0623\u0636\u0641",remove:"\u0627\u062d\u0630\u0641",toggle:"\u0628\u062f\u0644",hide:"\u0627\u062e\u0641",show:"\u0627\u0638\u0647\u0631",if:"\u0625\u0630\u0627",unless:"\u0625\u0644\u0627",repeat:"\u0643\u0631\u0631",for:"\u0644\u0643\u0644",while:"\u0628\u064a\u0646\u0645\u0627",until:"\u062d\u062a\u0649",continue:"\u0648\u0627\u0635\u0644",break:"\u062a\u0648\u0642\u0641",halt:"\u0623\u0648\u0642\u0641",wait:"\u0627\u0646\u062a\u0638\u0631",fetch:"\u0627\u062d\u0636\u0631",call:"\u0627\u0633\u062a\u062f\u0639",return:"\u0627\u0631\u062c\u0639",make:"\u0627\u0635\u0646\u0639",log:"\u0633\u062c\u0644",throw:"\u0627\u0631\u0645",catch:"\u0627\u0644\u062a\u0642\u0637",measure:"\u0642\u0633",transition:"\u0627\u0646\u062a\u0642\u0627\u0644",increment:"\u0632\u0650\u062f",decrement:"\u0623\u0646\u0642\u0635",default:"\u0627\u0641\u062a\u0631\u0627\u0636\u064a",go:"\u0627\u0630\u0647\u0628",pushUrl:"\u0627\u062f\u0641\u0639 \u0631\u0627\u0628\u0637",replaceUrl:"\u0627\u0633\u062a\u0628\u062f\u0644 \u0631\u0627\u0628\u0637",copy:"\u0627\u0646\u0633\u062e",pick:"\u0627\u062e\u062a\u0631",beep:"\u0635\u0641\u0651\u0631",js:"\u062c\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062a",async:"\u0645\u062a\u0632\u0627\u0645\u0646",render:"\u0627\u0631\u0633\u0645",swap:"\u0627\u0633\u062a\u0628\u062f\u0644",morph:"\u062d\u0648\u0651\u0644",settle:"\u0627\u0633\u062a\u0642\u0631",append:"\u0623\u0644\u062d\u0642",exit:"\u0627\u062e\u0631\u062c",install:"\u062b\u0628\u0651\u062a",breakpoint:"\u0646\u0642\u0637\u0629-\u062a\u0648\u0642\u0641",clear:"\u0646\u0638\u0651\u0641",close:"\u0623\u063a\u0644\u0642",open:"\u0627\u0641\u062a\u062d",select:"\u0638\u0644\u0644",clone:"\u0627\u0633\u062a\u0646\u0633\u062e",prepend:"\u0633\u0628\u0642",socket:"\u0645\u0642\u0628\u0633"},modifiers:{to:"\u0625\u0644\u0649",from:"\u0645\u0646",into:"\u0641\u064a",with:"\u0645\u0639",at:"\u0639\u0646\u062f",in:"\u0641\u064a",of:"\u0645\u0646",as:"\u0643\u0640",by:"\u0628\u0648\u0627\u0633\u0637\u0629",before:"\u0642\u0628\u0644",after:"\u0628\u0639\u062f",over:"\u0641\u0648\u0642",under:"\u062a\u062d\u062a",between:"\u0628\u064a\u0646",through:"\u0639\u0628\u0631",without:"\u0628\u062f\u0648\u0646"},events:{click:"\u0646\u0642\u0631",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"\u0641\u0623\u0631\u0629 \u0641\u0648\u0642",mouseout:"mouseout",mousemove:"mousemove",keydown:"\u0645\u0641\u062a\u0627\u062d \u0623\u0633\u0641\u0644",keyup:"\u0645\u0641\u062a\u0627\u062d \u0623\u0639\u0644\u0649",keypress:"keypress",focus:"\u062a\u0631\u0643\u064a\u0632",blur:"\u0636\u0628\u0627\u0628\u064a\u0629",change:"\u062a\u063a\u064a\u064a\u0631",input:"\u0625\u062f\u062e\u0627\u0644",submit:"\u0625\u0631\u0633\u0627\u0644",reset:"reset",load:"\u062a\u062d\u0645\u064a\u0644",unload:"unload",resize:"\u062a\u063a\u064a\u064a\u0631 \u062d\u062c\u0645",scroll:"\u062a\u0645\u0631\u064a\u0631",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"\u0639\u0646\u062f\u0645\u0627",where:"\u0623\u064a\u0646",and:"\u0648",or:"\u0623\u0648",not:"\u0644\u064a\u0633",is:"\u0647\u0648",exists:"\u0645\u0648\u062c\u0648\u062f",matches:"\u064a\u0637\u0627\u0628\u0642",contains:"\u064a\u062d\u062a\u0648\u064a",includes:"\u064a\u0634\u0645\u0644",equals:"\u064a\u0633\u0627\u0648\u064a",has:"\u0644\u062f\u064a\u0647",have:"\u0644\u062f\u064a",then:"\u062b\u0645",else:"\u0648\u0625\u0644\u0627",otherwise:"\u062e\u0644\u0627\u0641 \u0630\u0644\u0643",end:"\u0627\u0644\u0646\u0647\u0627\u064a\u0629",live:"\u062d\u064a",bind:"\u0627\u0631\u0628\u0637",changes:"\u064a\u062a\u063a\u064a\u0631"},temporal:{seconds:"\u062b\u0648\u0627\u0646\u0650",second:"\u062b\u0627\u0646\u064a\u0629",milliseconds:"\u0645\u064a\u0644\u064a \u062b\u0627\u0646\u064a\u0629",millisecond:"\u0645\u064a\u0644\u064a \u062b\u0627\u0646\u064a\u0629",minutes:"\u062f\u0642\u0627\u0626\u0642",minute:"\u062f\u0642\u064a\u0642\u0629",hours:"\u0633\u0627\u0639\u0627\u062a",hour:"\u0633\u0627\u0639\u0629",ms:"\u0645.\u062b",s:"\u062b",min:"\u062f",h:"\u0633",times:"\u0645\u0631\u0627\u062a"},values:{true:"\u0635\u062d\u064a\u062d",false:"\u062e\u0637\u0623",null:"null",undefined:"\u063a\u064a\u0631 \u0645\u0639\u0631\u0641",it:"\u0647\u0648",its:"\u0644\u0647",me:"\u0623\u0646\u0627",my:"\u0644\u064a",myself:"\u0646\u0641\u0633\u064a",you:"\u0623\u0646\u062a",your:"\u0644\u0643",yourself:"\u0646\u0641\u0633\u0643",element:"\u0639\u0646\u0635\u0631",target:"\u0647\u062f\u0641",detail:"\u062a\u0641\u0627\u0635\u064a\u0644",event:"\u062d\u062f\u062b",window:"\u0646\u0627\u0641\u0630\u0629",document:"\u0648\u062b\u064a\u0642\u0629",body:"\u062c\u0633\u0645",result:"\u0646\u062a\u064a\u062c\u0629",value:"\u0642\u064a\u0645\u0629"},attributes:{class:"\u0641\u0626\u0629",classes:"\u0641\u0626\u0627\u062a",style:"\u0623\u0633\u0644\u0648\u0628",styles:"\u0623\u0633\u0627\u0644\u064a\u0628",attribute:"\u062e\u0627\u0635\u064a\u0629",attributes:"\u062e\u0635\u0627\u0626\u0635",property:"\u062e\u0627\u0635\u064a\u0629",properties:"\u062e\u0635\u0627\u0626\u0635"},expressions:{characters:"\u062d\u0631\u0648\u0641",inclusive:"\u0634\u0627\u0645\u0644",exclusive:"\u062d\u0635\u0631\u064a",first:"\u0623\u0648\u0644",last:"\u0622\u062e\u0631",next:"\u0627\u0644\u062a\u0627\u0644\u064a",previous:"\u0627\u0644\u0633\u0627\u0628\u0642",prev:"\u0633\u0627\u0628\u0642",at:"\u0639\u0646\u062f",random:"\u0639\u0634\u0648\u0627\u0626\u064a",closest:"\u0627\u0644\u0623\u0642\u0631\u0628",parent:"\u0648\u0627\u0644\u062f",children:"\u0623\u0637\u0641\u0627\u0644",within:"\u062f\u0627\u062e\u0644",no:"\u0644\u0627 \u064a\u0648\u062c\u062f",empty:"\u0641\u0627\u0631\u063a",some:"\u0628\u0639\u0636","starts with":"\u064a\u0628\u062f\u0623 \u0628\u0640","ends with":"\u064a\u0646\u062a\u0647\u064a \u0628\u0640","ignoring case":"\u0645\u0639 \u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u062d\u0627\u0644\u0629","sorted by":"\u0645\u0631\u062a\u0628 \u062d\u0633\u0628","mapped to":"\u0645\u062d\u0648\u0644 \u0625\u0644\u0649","split by":"\u0645\u0642\u0633\u0645 \u0628\u0648\u0627\u0633\u0637\u0629","joined by":"\u0645\u062f\u0645\u0648\u062c \u0628\u0648\u0627\u0633\u0637\u0629"}},uc=Xl(cc,"ar",{allowEnglishFallback:!0}),dc={commands:{on:"\uc5d0",tell:"\ub9d0\ud558\ub2e4",trigger:"\ud2b8\ub9ac\uac70",send:"\ubcf4\ub0b4\ub2e4",take:"\uac00\uc838\uc624\ub2e4",put:"\ub123\ub2e4",set:"\uc124\uc815",get:"\uc5bb\ub2e4",add:"\ucd94\uac00",remove:"\uc81c\uac70",toggle:"\ud1a0\uae00",hide:"\uc228\uae30\ub2e4",show:"\ubcf4\uc774\ub2e4",if:"\ub9cc\uc57d",unless:"\uc544\ub2c8\ub77c\uba74",repeat:"\ubc18\ubcf5",for:"\uac01\uac01",while:"\ub3d9\uc548",until:"\uae4c\uc9c0",continue:"\uacc4\uc18d",break:"\uc911\ub2e8",halt:"\uc815\uc9c0",wait:"\ub300\uae30",fetch:"\uac00\uc838\uc624\uae30",call:"\ud638\ucd9c",return:"\ubc18\ud658",make:"\ub9cc\ub4e4\ub2e4",log:"\ub85c\uadf8",throw:"\ub358\uc9c0\ub2e4",catch:"\uc7a1\ub2e4",measure:"\uce21\uc815",transition:"\uc804\ud658",increment:"\uc99d\uac00",decrement:"\uac10\uc18c",default:"\uae30\ubcf8\uac12",go:"\uc774\ub3d9",pushUrl:"URL\ud478\uc2dc",replaceUrl:"URL\uad50\uccb4",copy:"\ubcf5\uc0ac",pick:"\uc120\ud0dd",beep:"\ube44\ud504",js:"JS\uc2e4\ud589",async:"\ube44\ub3d9\uae30",render:"\ub80c\ub354\ub9c1",swap:"\uad50\ud658",morph:"\ubcc0\ud615",settle:"\uc548\uc815",append:"\ub367\ubd99\uc774\ub2e4",exit:"\ub098\uac00\uae30",install:"\uc124\uce58",breakpoint:"\uc911\ub2e8\uc810",clear:"\uc9c0\uc6b0\uae30",close:"\ub2eb\uae30",open:"\uc5f4\uae30",select:"\uace0\ub974\uae30",clone:"\ubcf5\uc81c",prepend:"\uc55e\uc5d0\ucd94\uac00",socket:"\uc18c\ucf13"},modifiers:{to:"\uc5d0",from:"\uc5d0\uc11c",into:"\uc73c\ub85c",with:"\uc640",at:"\uc5d0",in:"\uc548\uc5d0",of:"\uc758",as:"\ub85c",by:"\uc5d0\uc758\ud574",before:"\uc804\uc5d0",after:"\ud6c4\uc5d0",over:"\uc704\uc5d0",under:"\uc544\ub798",between:"\uc0ac\uc774",through:"\ud1b5\ud574",without:"\uc5c6\uc774"},events:{click:"\ud074\ub9ad",dblclick:"\ub354\ube14\ud074\ub9ad",mousedown:"\ub9c8\uc6b0\uc2a4\ub2e4\uc6b4",mouseup:"\ub9c8\uc6b0\uc2a4\uc5c5",mouseenter:"\ub9c8\uc6b0\uc2a4\uc5d4\ud130",mouseleave:"\ub9c8\uc6b0\uc2a4\ub9ac\ube0c",mouseover:"\ub9c8\uc6b0\uc2a4\uc624\ubc84",mouseout:"\ub9c8\uc6b0\uc2a4\uc544\uc6c3",mousemove:"\ub9c8\uc6b0\uc2a4\ubb34\ube0c",keydown:"\ud0a4\ub2e4\uc6b4",keyup:"\ud0a4\uc5c5",keypress:"\ud0a4\ud504\ub808\uc2a4",focus:"\ud3ec\ucee4\uc2a4",blur:"\ube14\ub7ec",change:"\ubcc0\uacbd",input:"\uc785\ub825",submit:"\uc81c\ucd9c",reset:"\uc7ac\uc124\uc815",load:"\ub85c\ub4dc",unload:"unload",resize:"\ub9ac\uc0ac\uc774\uc988",scroll:"\uc2a4\ud06c\ub864",touchstart:"touchstart",touchend:"\ud130\uce58\uc885\ub8cc",touchmove:"touchmove",touchcancel:"\ud130\uce58\ucde8\uc18c"},logical:{when:"\ub54c",where:"\uc5b4\ub514",and:"\uadf8\ub9ac\uace0",or:"\ub610\ub294",not:"\uc544\ub2c8",is:"\uc774\ub2e4",exists:"\uc874\uc7ac",matches:"\uc77c\uce58",contains:"\ud3ec\ud568",includes:"\ud3ec\ud568\ud558\ub2e4",equals:"\uac19\ub2e4",has:"\uc788\ub2e4",have:"\uc788\ub2e4",then:"\uadf8\ub7ec\uba74",else:"\uc544\ub2c8\uba74",otherwise:"\uadf8\ub807\uc9c0\uc54a\uc73c\uba74",end:"\ub05d",live:"\ub77c\uc774\ube0c",bind:"\ubc14\uc778\ub4dc",changes:"\ubcc0\uacbd\ub418\uba74"},temporal:{seconds:"\ucd08",second:"\ucd08",milliseconds:"\ubc00\ub9ac\ucd08",millisecond:"\ubc00\ub9ac\ucd08",minutes:"\ubd84",minute:"\ubd84",hours:"\uc2dc\uac04",hour:"\uc2dc\uac04",ms:"ms",s:"\ucd08",min:"\ubd84",h:"\uc2dc",times:"\ubc88"},values:{true:"\ucc38",false:"\uac70\uc9d3",null:"\ub110",undefined:"\uc815\uc758\uc548\ub428",it:"\uadf8\uac83",its:"\uadf8\uac83\uc758",me:"\ub098",my:"\ub0b4",myself:"\ub098\uc790\uc2e0",you:"\ub108",your:"\ub124",yourself:"\ub108\uc790\uc2e0",element:"\uc694\uc18c",target:"\ub300\uc0c1",detail:"\uc138\ubd80",event:"\uc774\ubca4\ud2b8",window:"\ucc3d",document:"\ubb38\uc11c",body:"\ubc14\ub514",result:"\uacb0\uacfc",value:"\uac12"},attributes:{class:"\ud074\ub798\uc2a4",classes:"\ud074\ub798\uc2a4\ub4e4",style:"\uc2a4\ud0c0\uc77c",styles:"\uc2a4\ud0c0\uc77c\ub4e4",attribute:"\uc18d\uc131",attributes:"\uc18d\uc131\ub4e4",property:"\ud504\ub85c\ud37c\ud2f0",properties:"\ud504\ub85c\ud37c\ud2f0\ub4e4"},expressions:{characters:"\ubb38\uc790",inclusive:"\ud3ec\ud568",exclusive:"\uc81c\uc678",first:"\uccab\ubc88\uc9f8",last:"\ub9c8\uc9c0\ub9c9",next:"\ub2e4\uc74c",previous:"\uc774\uc804",prev:"\uc774\uc804",at:"\uc5d0\uc11c",random:"\ubb34\uc791\uc704",closest:"\uac00\uc7a5\uac00\uae4c\uc6b4",parent:"\ubd80\ubaa8",children:"\uc790\uc2dd",within:"\uc774\ub0b4",no:"\uc5c6\uc74c",empty:"\ube44\uc5b4\uc788\ub294",some:"\uc77c\ubd80","starts with":"\ub85c\uc2dc\uc791","ends with":"\ub85c\ub05d\ub098\ub294","ignoring case":"\ub300\uc18c\ubb38\uc790_\ubb34\uc2dc","sorted by":"\ub85c_\uc815\ub82c","mapped to":"\ub85c_\ubcc0\ud658","split by":"\ub85c_\ubd84\ud560","joined by":"\ub85c_\uacb0\ud569"}},mc=Xl(dc,"ko",{allowEnglishFallback:!0}),pc={commands:{on:"\u5f53",tell:"\u544a\u8bc9",trigger:"\u89e6\u53d1",send:"\u53d1\u9001",take:"\u62ff\u53d6",put:"\u653e\u7f6e",set:"\u8bbe\u7f6e",get:"\u83b7\u5f97",add:"\u6dfb\u52a0",remove:"\u79fb\u9664",toggle:"\u5207\u6362",hide:"\u9690\u85cf",show:"\u663e\u793a",if:"\u5982\u679c",unless:"\u9664\u975e",repeat:"\u91cd\u590d",for:"\u4e3a",while:"\u5f53",until:"\u76f4\u5230",continue:"\u7ee7\u7eed",break:"\u4e2d\u65ad",halt:"\u505c\u6b62",wait:"\u7b49\u5f85",fetch:"\u6293\u53d6",call:"\u8c03\u7528",return:"\u8fd4\u56de",make:"\u5236\u4f5c",log:"\u65e5\u5fd7",throw:"\u629b\u51fa",catch:"\u6355\u83b7",measure:"\u6d4b\u91cf",transition:"\u8fc7\u6e21",increment:"\u589e\u52a0",decrement:"\u51cf\u5c11",default:"\u9ed8\u8ba4",go:"\u524d\u5f80",pushUrl:"\u63a8\u9001\u7f51\u5740",replaceUrl:"\u66ff\u6362\u7f51\u5740",copy:"\u590d\u5236",pick:"\u9009\u53d6",beep:"\u8702\u9e23",js:"JS\u6267\u884c",async:"\u5f02\u6b65",render:"\u6e32\u67d3",swap:"\u4ea4\u6362",morph:"\u53d8\u5f62",settle:"\u7a33\u5b9a",append:"\u8ffd\u52a0",exit:"\u9000\u51fa",install:"\u5b89\u88c5",breakpoint:"\u65ad\u70b9",clear:"\u6e05\u9664",close:"\u5173\u95ed",open:"\u6253\u5f00",select:"\u9009\u62e9",clone:"\u514b\u9686",prepend:"\u524d\u7f6e"},modifiers:{to:"\u5230",from:"\u4ece",into:"\u8fdb\u5165",with:"\u4e0e",at:"\u5728",in:"\u5728",of:"\u7684",as:"\u4f5c\u4e3a",by:"\u901a\u8fc7",before:"\u4e4b\u524d",after:"\u4e4b\u540e",over:"\u5728\u4e0a",under:"\u5728\u4e0b",between:"\u4e4b\u95f4",through:"\u901a\u8fc7",without:"\u6ca1\u6709"},events:{click:"\u70b9\u51fb",dblclick:"\u53cc\u51fb",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"\u9f20\u6807\u79fb\u5165",mouseout:"\u9f20\u6807\u79fb\u51fa",mousemove:"\u9f20\u6807\u79fb\u52a8",keydown:"\u6309\u952e\u6309\u4e0b",keyup:"\u677e\u952e",keypress:"keypress",focus:"\u805a\u7126",blur:"\u5931\u7126",change:"\u6539\u53d8",input:"\u8f93\u5165",submit:"\u63d0\u4ea4",reset:"\u91cd\u7f6e",load:"\u52a0\u8f7d",unload:"\u5378\u8f7d",resize:"\u8c03\u6574\u5927\u5c0f",scroll:"\u6eda\u52a8",touchstart:"\u89e6\u6478\u5f00\u59cb",touchend:"touchend",touchmove:"\u89e6\u6478\u79fb\u52a8",touchcancel:"touchcancel"},logical:{when:"\u5f53",where:"\u54ea\u91cc",and:"\u548c",or:"\u6216",not:"\u975e",is:"\u662f",exists:"\u5b58\u5728",matches:"\u5339\u914d",contains:"\u5305\u542b",includes:"\u5305\u62ec",equals:"\u7b49\u4e8e",has:"\u6709",have:"\u6709",then:"\u90a3\u4e48",else:"\u5426\u5219",otherwise:"\u8981\u4e0d\u7136",end:"\u7ed3\u675f",live:"\u5b9e\u65f6",bind:"\u7ed1\u5b9a",changes:"\u6539\u53d8\u65f6"},temporal:{seconds:"\u79d2",second:"\u79d2",milliseconds:"\u6beb\u79d2",millisecond:"\u6beb\u79d2",minutes:"\u5206\u949f",minute:"\u5206\u949f",hours:"\u5c0f\u65f6",hour:"\u5c0f\u65f6",ms:"\u6beb\u79d2",s:"\u79d2",min:"\u5206",h:"\u65f6",times:"\u6b21"},values:{true:"\u771f",false:"\u5047",null:"\u7a7a",undefined:"\u672a\u5b9a\u4e49",it:"\u5b83",its:"\u5b83\u7684",me:"\u6211",my:"\u6211\u7684",myself:"\u6211\u81ea\u5df1",you:"\u4f60",your:"\u4f60\u7684",yourself:"\u4f60\u81ea\u5df1",element:"\u5143\u7d20",target:"\u76ee\u6807",detail:"\u8be6\u60c5",event:"\u4e8b\u4ef6",window:"\u7a97\u53e3",document:"\u6587\u6863",body:"\u4e3b\u4f53",result:"\u7ed3\u679c",value:"\u503c"},attributes:{class:"\u7c7b",classes:"\u7c7b\u522b",style:"\u6837\u5f0f",styles:"\u6837\u5f0f\u96c6",attribute:"\u5c5e\u6027",attributes:"\u5c5e\u6027\u96c6",property:"\u7279\u6027",properties:"\u7279\u6027\u96c6"},expressions:{characters:"\u5b57\u7b26",inclusive:"\u5305\u542b",exclusive:"\u6392\u9664",first:"\u7b2c\u4e00\u4e2a",last:"\u6700\u540e\u4e00\u4e2a",next:"\u4e0b\u4e00\u4e2a",previous:"\u4e0a\u4e00\u4e2a",prev:"\u4e0a\u4e2a",at:"\u5728",random:"\u968f\u673a",closest:"\u6700\u8fd1\u7684",parent:"\u7236\u7ea7",children:"\u5b50\u7ea7",within:"\u4e4b\u5185",no:"\u6ca1\u6709",empty:"\u7a7a\u7684",some:"\u4e00\u4e9b","starts with":"\u4ee5\u5f00\u5934","ends with":"\u4ee5\u7ed3\u5c3e","ignoring case":"\u5ffd\u7565\u5927\u5c0f\u5199","sorted by":"\u6309_\u6392\u5e8f","mapped to":"\u6620\u5c04\u4e3a","split by":"\u6309_\u5206\u5272","joined by":"\u7528_\u8fde\u63a5"}},hc=Xl(pc,"zh",{allowEnglishFallback:!0}),fc={commands:{on:"\u00fczerinde",tell:"s\u00f6yle",trigger:"tetikle",send:"g\u00f6nder",take:"tut",put:"koy",set:"ayarla",get:"al",add:"ekle",remove:"kald\u0131r",toggle:"de\u011fi\u015ftir",hide:"gizle",show:"g\u00f6ster",if:"e\u011fer",unless:"de\u011filse",repeat:"tekrarla",for:"i\u00e7in",while:"s\u00fcresince",until:"kadar",continue:"devam",break:"dur",halt:"durdur",wait:"bekle",fetch:"getir",call:"\u00e7a\u011f\u0131r",return:"d\u00f6n",make:"yap",log:"kaydet",throw:"f\u0131rlat",catch:"yakala",measure:"\u00f6l\u00e7",transition:"ge\u00e7i\u015f",increment:"art\u0131r",decrement:"azalt",default:"varsay\u0131lan",go:"git",pushUrl:"urlEkle",replaceUrl:"urlDe\u011fi\u015ftir",copy:"kopyala",pick:"se\u00e7",beep:"bip",js:"js",async:"asenkron",render:"render",swap:"takas",morph:"d\u00f6n\u00fc\u015ft\u00fcr",settle:"sabitlen",append:"ili\u015ftir",exit:"\u00e7\u0131k",install:"kur",breakpoint:"kesme-noktas\u0131",clear:"temizle",close:"kapat",open:"a\u00e7",select:"vurgula",clone:"klonla",prepend:"ba\u015f\u0131naekle",socket:"soket"},modifiers:{to:"e",from:"den",into:"i\u00e7ine",with:"ile",at:"de",in:"i\u00e7inde",of:"nin",as:"olarak",by:"taraf\u0131ndan",before:"\u00f6nce",after:"sonra",over:"\u00fczerinde",under:"alt\u0131nda",between:"aras\u0131nda",through:"boyunca",without:"olmadan"},events:{click:"t\u0131klama",dblclick:"dblclick",mousedown:"farebas",mouseup:"fareb\u0131rak",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"farei\u00e7inde",mouseout:"fared\u0131\u015f\u0131nda",mousemove:"mousemove",keydown:"tu\u015fbasma",keyup:"tu\u015fb\u0131rakma",keypress:"keypress",focus:"odak",blur:"bulan\u0131k",change:"de\u011fi\u015fim",input:"giri\u015f",submit:"g\u00f6nderme",reset:"s\u0131f\u0131rla",load:"y\u00fckle",unload:"unload",resize:"boyutland\u0131rma",scroll:"kayd\u0131r",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"iken",where:"nerede",and:"ve",or:"veya",not:"de\u011fil",is:"dir",exists:"var",matches:"e\u015fle\u015fir",contains:"i\u00e7erir",includes:"i\u00e7erir",equals:"e\u015fittir",has:"var",have:"var",then:"ard\u0131ndan",else:"yoksa",otherwise:"aksi_halde",end:"son",live:"canl\u0131",changes:"de\u011fi\u015fti\u011finde"},temporal:{seconds:"saniye",second:"saniye",milliseconds:"milisaniye",millisecond:"milisaniye",minutes:"dakika",minute:"dakika",hours:"saat",hour:"saat",ms:"ms",s:"s",min:"dk",h:"sa",times:"kez"},values:{true:"do\u011fru",false:"yanl\u0131\u015f",null:"null",undefined:"tan\u0131ms\u0131z",it:"o",its:"onun",me:"ben",my:"benim",myself:"kendim",you:"sen",your:"senin",yourself:"kendin",element:"\u00f6\u011fe",target:"hedef",detail:"detay",event:"olay",window:"pencere",document:"belge",body:"g\u00f6vde",result:"sonu\u00e7",value:"de\u011fer"},attributes:{class:"s\u0131n\u0131f",classes:"s\u0131n\u0131flar",style:"stil",styles:"stiller",attribute:"\u00f6zellik",attributes:"\u00f6zellikler",property:"\u00f6zellik",properties:"\u00f6zellikler"},expressions:{characters:"karakterler",inclusive:"dahil",exclusive:"hari\u00e7",first:"ilk",last:"sonuncu",next:"sonraki",previous:"\u00f6nceki",prev:"\u00f6nc",at:"de",random:"rastgele",closest:"enyak\u0131n",parent:"ebeveyn",children:"\u00e7ocuklar",within:"i\u00e7inde",no:"yok",empty:"bo\u015f",some:"baz\u0131","starts with":"ile ba\u015flar","ends with":"ile biter","ignoring case":"b\u00fcy\u00fck k\u00fc\u00e7\u00fck harf duyars\u0131z","sorted by":"g\u00f6re s\u0131ral\u0131","mapped to":"ye d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f","split by":"ile b\u00f6l\u00fcnm\u00fc\u015f","joined by":"ile birle\u015ftirilmi\u015f"}},yc=Xl(fc,"tr",{allowEnglishFallback:!0}),gc={commands:{on:"pada",tell:"katakan",trigger:"picu",send:"kirim",take:"ambil",put:"taruh",set:"atur",get:"dapatkan",add:"tambah",remove:"hapus",toggle:"alihkan",hide:"sembunyikan",show:"tampilkan",if:"jika",unless:"kecuali",repeat:"ulangi",for:"untuk",while:"selama",until:"sampai",continue:"lanjutkan",break:"hentikan",halt:"berhenti",wait:"tunggu",fetch:"muat",call:"panggil",return:"kembali",make:"buat",log:"catat",throw:"lempar",catch:"tangkap",measure:"ukur",transition:"transisi",increment:"naikkan",decrement:"kurangi",default:"bawaan",go:"pergi",pushUrl:"tambahUrl",replaceUrl:"gantiUrl",copy:"salin",pick:"pilih",beep:"bunyi",js:"js",async:"asinkron",render:"olah",swap:"tukar",morph:"ubah",settle:"stabilkan",append:"sisipkan",exit:"keluar",install:"pasang",breakpoint:"titik-henti",clear:"bersihkan",close:"tutupkan",open:"buka",select:"tandai",clone:"klon",prepend:"awali"},modifiers:{to:"ke",from:"dari",into:"ke_dalam",with:"dengan",at:"di",in:"dalam",of:"dari",as:"sebagai",by:"oleh",before:"sebelum",after:"setelah",over:"di_atas",under:"di_bawah",between:"antara",through:"melalui",without:"tanpa"},events:{click:"klik",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"arahkan",mouseout:"tinggalkan",mousemove:"mousemove",keydown:"tekan_tombol",keyup:"keyup",keypress:"keypress",focus:"fokus",blur:"blur",change:"ubah",input:"masukan",submit:"kirim",reset:"reset",load:"muat",unload:"bongkar",resize:"ubah_ukuran",scroll:"gulir",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"ketika",where:"di_mana",and:"dan",or:"atau",not:"bukan",is:"adalah",exists:"ada",matches:"cocok",contains:"berisi",includes:"termasuk",equals:"sama",has:"punya",have:"punya",then:"lalu",else:"lainnya",otherwise:"sebaliknya",end:"akhir",live:"langsung",changes:"berubah"},temporal:{seconds:"detik",second:"detik",milliseconds:"milidetik",millisecond:"milidetik",minutes:"menit",minute:"menit",hours:"jam",hour:"jam",ms:"ms",s:"d",min:"mnt",h:"j",times:"kali"},values:{true:"benar",false:"salah",null:"null",undefined:"tidak_terdefinisi",it:"itu",its:"miliknya",me:"saya",my:"saya punya",myself:"saya sendiri",you:"kamu",your:"kamu punya",yourself:"kamu sendiri",element:"elemen",target:"target",detail:"detail",event:"peristiwa",window:"jendela",document:"dokumen",body:"badan",result:"hasil",value:"nilai"},attributes:{class:"kelas",classes:"kelas_kelas",style:"gaya",styles:"gaya_gaya",attribute:"atribut",attributes:"atribut_atribut",property:"properti",properties:"properti_properti"},expressions:{characters:"karakter",inclusive:"inklusif",exclusive:"eksklusif",first:"pertama",last:"terakhir",next:"berikutnya",previous:"sebelumnya",prev:"sblm",at:"di",random:"acak",closest:"terdekat",parent:"induk",children:"anak_anak",within:"dalam",no:"tidak_ada",empty:"kosong",some:"beberapa","starts with":"dimulai dengan","ends with":"diakhiri dengan","ignoring case":"abaikan kapital","sorted by":"diurutkan berdasarkan","mapped to":"dipetakan ke","split by":"dipisah oleh","joined by":"digabung oleh"}},vc=Xl(gc,"id",{allowEnglishFallback:!0}),bc={commands:{on:"kaqpi",tell:"niy",trigger:"kichay",send:"kachay",take:"hapiy",put:"churay",set:"churanay",get:"taripay",add:"yapay",remove:"qichuy",toggle:"tikray",hide:"pakay",show:"rikuchiy",if:"sichus",unless:"mana sichus",repeat:"kutipay",for:"sapankaq",while:"kaykamaqa",until:"hayk_akama",continue:"purichiy",break:"p_akiy",halt:"sayay",wait:"suyay",fetch:"apamuy",call:"qayay",return:"kutimuy",make:"ruray",log:"qillqakuy",throw:"wikchuy",catch:"hapsiy",measure:"tupuy",transition:"pasay",increment:"yapachiy",decrement:"pisiyachiy",default:"\u00f1awpaq_kaq",go:"riy",pushUrl:"url_tanqay",replaceUrl:"url_tikray",copy:"qillqay",pick:"akllay",beep:"waqay",js:"js",async:"mana_suyaspa",render:"rikurichiy",swap:"t'inkuy",morph:"tukunay",settle:"tiyakuy",append:"qatichiy",exit:"lluqsiy",install:"tarpuy",breakpoint:"sayachinay",clear:"pichay",close:"wichqay",open:"paskay",select:"marcay",clone:"kikinchay",prepend:"\u00f1awpachiy",socket:"tinkina"},modifiers:{to:"man",from:"manta",into:"ukupi",with:"wan",at:"pi",in:"ukupi",of:"pa",as:"hina",by:"rayku",before:"\u00f1awpaqpi",after:"qhepapi",over:"hawapi",under:"urapi",between:"chawpipi",through:"pasaspa",without:"mana"},events:{click:"\u00f1itiy",dblclick:"dblclick",mousedown:"rat\u00f1itiy",mouseup:"rathuqariy",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"mouseover",mouseout:"mouseout",mousemove:"mousemove",keydown:"llave uray",keyup:"llave hawa",keypress:"keypress",focus:"qhaway",blur:"paqariy",change:"kambiay",input:"yaykuchiy",submit:"apaykachay",reset:"musuqchay",load:"apakuy",unload:"unload",resize:"hatun_kay",scroll:"kunray",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"maykama",where:"maypi",and:"hinallataq",or:"utaq",not:"mana",is:"kanqa",exists:"tiyan",matches:"tupan",contains:"ukupi_kan",includes:"churasqa",equals:"kikin",has:"kachkan",have:"kachkani",then:"chayqa",else:"manachus",otherwise:"huk_kaqpi",end:"tukuy",live:"kawsay",changes:"tukurikun"},temporal:{seconds:"sikundukuna",second:"sikundu",milliseconds:"iskay_paqta_sikundukuna",millisecond:"iskay_paqta_sikundu",minutes:"minutukuna",minute:"minutu",hours:"horakuna",hour:"hora",ms:"ms",s:"s",min:"m",h:"h",times:"kuti"},values:{true:"cheqaq",false:"llulla",null:"null",undefined:"mana_riqsisqa",it:"chay",its:"chaypaq",me:"noqa",my:"noqaq",myself:"noqa killa",you:"qam",your:"qampaq",yourself:"qam killa",element:"raku",target:"punta",detail:"sut_iy",event:"ruway",window:"k_iri",document:"qillqa",body:"kurku",result:"lluqsiy",value:"chanin"},attributes:{class:"ayllu",classes:"ayllukuna",style:"sami",styles:"samikuna",attribute:"kaq",attributes:"kaqkuna",property:"kanay",properties:"kanaykuna"},expressions:{characters:"sanampa",first:"\u00f1awpaq",last:"qhipa",next:"qhipantin",previous:"\u00f1awpaqnin",prev:"\u00f1awpaq",at:"pi",random:"imaymanata",closest:"kaylla",parent:"mama_tayta",children:"wawakuna",within:"ukupi",no:"mana_kanchu",empty:"chusaq",some:"wakin","starts with":"qallarisqa wan","ends with":"tukusqa wan","ignoring case":"hatun-huchuy qillqata-saqiy","sorted by":"niqpi ruwasqa","mapped to":"kay kaqman","split by":"rakisqa","joined by":"hu\u00f1usqa"}},wc=Xl(bc,"qu",{allowEnglishFallback:!0}),kc={commands:{on:"kwenye",tell:"ambia",trigger:"chochea",send:"tuma",take:"chukua",put:"weka",set:"seti",get:"pata",add:"ongeza",remove:"ondoa",toggle:"badilisha",blur:"blur",hide:"ficha",show:"onyesha",if:"kama",unless:"isipokuwa",repeat:"rudia",for:"kwa",while:"wakati",until:"hadi",continue:"endelea",break:"vunja",halt:"simama",wait:"ngoja",fetch:"leta",call:"ita",return:"rudisha",make:"tengeneza",log:"andika",throw:"tupa",catch:"shika",measure:"pima",transition:"mpito",increment:"ongezeko",decrement:"punguza",default:"msingi",go:"nenda",pushUrl:"sukumaUrl",replaceUrl:"badilishaUrl",copy:"nakala",pick:"chagua",beep:"lia",js:"js",async:"sainkroni",render:"chora",swap:"badilishana",morph:"geuza",settle:"tulia",append:"ambatanisha",exit:"toka",install:"sakinisha",breakpoint:"nukta-simama",clear:"safisha",close:"funga",open:"fungua",select:"alama",clone:"nakili",prepend:"tanguliza",focus:"lenga",socket:"soketi"},modifiers:{to:"kwa",from:"kutoka",into:"ndani",with:"na",at:"katika",in:"ndani",of:"ya",as:"kuwa",by:"na",before:"kabla",after:"baada",over:"juu",under:"chini",between:"kati",through:"kupitia",without:"bila"},events:{click:"bonyeza",dblclick:"dblclick",mousedown:"panya_shuka",mouseup:"panya_juu",mouseenter:"panya_ingia",mouseleave:"panya_toka",mouseover:"sogeza juu",mouseout:"panya_nje",mousemove:"panya_sogea",keydown:"kitufe_shuka",keyup:"kitufe_juu",keypress:"keypress",focus:"lenga",blur:"blur",change:"kubadilisha",input:"ingizo",submit:"wasilisha",reset:"reset",load:"pakia",unload:"shuka",resize:"badilisha_ukubwa",scroll:"sogeza",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel"},logical:{when:"wakati",where:"wapi",and:"na",or:"au",not:"si",is:"ni",exists:"ipo",matches:"inafanana",contains:"ina",includes:"pamoja",equals:"sawa",has:"ana",have:"nina",then:"kisha",else:"sivyo",otherwise:"vinginevyo",end:"mwisho",live:"mubashara",changes:"inabadilika"},temporal:{seconds:"sekunde",second:"sekunde",milliseconds:"millisekunde",millisecond:"millisekunde",minutes:"dakika",minute:"dakika",hours:"masaa",hour:"saa",ms:"ms",s:"s",min:"dk",h:"sa",times:"mara"},values:{true:"kweli",false:"uongo",null:"null",undefined:"haijafafanuliwa",it:"hiyo",its:"yake",me:"mimi",my:"yangu",myself:"mimi mwenyewe",you:"wewe",your:"yako",yourself:"wewe mwenyewe",element:"kipengele",target:"lengo",detail:"maelezo",event:"tukio",window:"dirisha",document:"hati",body:"mwili",result:"matokeo",value:"thamani"},attributes:{class:"darasa",classes:"madarasa",style:"mtindo",styles:"mitindo",attribute:"sifa",attributes:"sifa",property:"mali",properties:"mali"},expressions:{characters:"herufi",first:"kwanza",last:"wamwisho",next:"ijayo",previous:"iliyopita",prev:"awali",at:"katika",random:"nasibu",closest:"karibu",parent:"mzazi",children:"watoto",within:"ndani_ya",no:"hakuna",empty:"tupu",some:"baadhi","starts with":"huanza na","ends with":"huisha na","ignoring case":"puuza herufi kubwa ndogo","sorted by":"kupangwa kwa","mapped to":"kubadilishwa kuwa","split by":"kugawanywa kwa","joined by":"kuunganishwa kwa"}},Ec=Xl(kc,"sw",{allowEnglishFallback:!0}),xc={commands:{on:"em",tell:"dizer",trigger:"disparar",send:"enviar",take:"pegar",put:"colocar",set:"definir",get:"obter",add:"adicionar",remove:"remover",toggle:"alternar",blur:"desfocar",hide:"esconder",show:"mostrar",if:"se",unless:"salvo",repeat:"repetir",for:"para",while:"enquanto",until:"at\u00e9",continue:"continuar",break:"interromper",halt:"parar",wait:"esperar",fetch:"buscar",call:"chamar",return:"retornar",make:"fazer",log:"registrar",throw:"lan\u00e7ar",catch:"capturar",measure:"medir",transition:"transi\u00e7\u00e3o",increment:"incrementar",decrement:"decrementar",default:"padr\u00e3o",go:"ir",pushUrl:"pushUrl",replaceUrl:"substituirUrl",copy:"copiar",pick:"escolher",beep:"apitar",js:"js",async:"ass\u00edncrono",render:"renderizar",swap:"trocar",morph:"transformar",settle:"estabilizar",append:"anexar",exit:"sair",install:"instalar",breakpoint:"ponto-interrup\u00e7\u00e3o",clear:"limpar",close:"fechar",open:"abrir",select:"selecionar",clone:"clonar",prepend:"preceder",focus:"focar",socket:"soquete"},modifiers:{to:"para",from:"de",into:"em",with:"com",at:"em",in:"dentro",of:"de",as:"como",by:"por",before:"antes",after:"depois",over:"sobre",under:"sob",between:"entre",through:"atrav\u00e9s",without:"sem"},events:{click:"clique",dblclick:"duploClique",mouseenter:"mouseEntrar",mouseleave:"mouseSair",mousedown:"mouse pressionado",mouseup:"mouse solto",mouseover:"mouse sobre",mouseout:"mouse fora",mousemove:"mouseMover",keydown:"tecla baixo",keyup:"tecla cima",keypress:"teclaPressionar",focus:"foco",blur:"desfoque",change:"mudan\u00e7a",input:"entrada",submit:"envio",reset:"redefinir",load:"carregar",unload:"descarregar",resize:"redimensionar",scroll:"rolar",touchstart:"toqueIn\u00edcio",touchend:"toqueFim",touchmove:"toqueMover",touchcancel:"toqueCancelar"},logical:{when:"quando",where:"onde",and:"e",or:"ou",not:"n\u00e3o",is:"\u00e9",exists:"existe",matches:"corresponde",contains:"cont\u00e9m",includes:"inclui",equals:"igual",has:"tem",have:"tenho",then:"ent\u00e3o",else:"sen\u00e3o",otherwise:"caso_contr\u00e1rio",end:"fim",live:"vivo",changes:"muda"},temporal:{seconds:"segundos",second:"segundo",milliseconds:"milissegundos",millisecond:"milissegundo",minutes:"minutos",minute:"minuto",hours:"horas",hour:"hora",ms:"ms",s:"s",min:"min",h:"h",times:"vezes"},values:{true:"verdadeiro",false:"falso",null:"nulo",undefined:"indefinido",it:"isso",its:"seu",me:"eu",my:"meu",myself:"eu mesmo",you:"voc\u00ea",your:"seu",yourself:"voc\u00ea mesmo",element:"elemento",target:"alvo",detail:"detalhe",event:"evento",window:"janela",document:"documento",body:"corpo",result:"resultado",value:"valor"},attributes:{class:"classe",classes:"classes",style:"estilo",styles:"estilos",attribute:"atributo",attributes:"atributos",property:"propriedade",properties:"propriedades"},expressions:{characters:"caracteres",inclusive:"inclusivo",exclusive:"exclusivo",first:"primeiro",last:"\u00faltimo",next:"pr\u00f3ximo",previous:"anterior",prev:"ant",at:"em",random:"aleat\u00f3rio",closest:"maispr\u00f3ximo",parent:"pai",children:"filhos",within:"dentro",no:"nenhum",empty:"vazio",some:"algum","starts with":"come\u00e7a com","ends with":"termina com","ignoring case":"ignorando mai\u00fasculas","sorted by":"ordenado por","mapped to":"mapeado para","split by":"dividido por","joined by":"unido por"}},Ac=Xl(xc,"pt",{allowEnglishFallback:!0});Xl({commands:{on:"su",tell:"dire",trigger:"scatenare",send:"inviare",take:"prendere",put:"mettere",set:"impostare",get:"ottenere",add:"aggiungere",remove:"rimuovere",toggle:"commutare",hide:"nascondere",show:"mostrare",if:"se",unless:"salvo",repeat:"ripetere",for:"per",while:"mentre",until:"fino",continue:"continuare",break:"interrompere",halt:"fermare",wait:"aspettare",fetch:"recuperare",call:"chiamare",return:"ritornare",make:"fare",log:"registrare",throw:"lanciare",catch:"catturare",measure:"misurare",transition:"transizione",increment:"incrementare",decrement:"decrementare",default:"predefinito",go:"andare",pushUrl:"pushUrl",replaceUrl:"sostituireUrl",copy:"copiare",pick:"scegliere",beep:"beep",js:"js",async:"asincrono",render:"renderizzare",swap:"scambiare",morph:"trasformare",settle:"stabilizzare",append:"accodare",exit:"uscire",install:"installare",breakpoint:"punto-interruzione",clear:"cancellare",close:"chiudere",open:"aprire",select:"selezionare",clone:"clonare",prepend:"anteporre",focus:"focalizzare"},modifiers:{to:"a",from:"da",into:"in",with:"con",at:"a",in:"in",of:"di",as:"come",by:"per",before:"prima",after:"dopo",over:"sopra",under:"sotto",between:"tra",through:"attraverso",without:"senza"},events:{click:"clic",dblclick:"doppioclic",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseentra",mouseleave:"mouseesce",mouseover:"mousesopra",mouseout:"mousefuori",mousemove:"mousemuovi",keydown:"tastogi\u00f9",keyup:"tastosu",keypress:"tastopremi",focus:"fuoco",blur:"sfuocare",change:"cambio",input:"input",submit:"invio",reset:"reimpostare",load:"carica",unload:"scarica",resize:"ridimensiona",scroll:"scorrimento",touchstart:"toccoinizia",touchend:"toccofine",touchmove:"toccomuovi",touchcancel:"toccoannulla"},logical:{when:"quando",where:"dove",and:"e",or:"o",not:"non",is:"\u00e8",exists:"esiste",matches:"corrisponde",contains:"contiene",includes:"include",equals:"uguale",has:"ha",have:"ho",then:"allora",else:"altrimenti",otherwise:"altrimenti",end:"fine",live:"vivo",changes:"cambia"},temporal:{seconds:"secondi",second:"secondo",milliseconds:"millisecondi",millisecond:"millisecondo",minutes:"minuti",minute:"minuto",hours:"ore",hour:"ora",ms:"ms",s:"s",min:"min",h:"h",times:"volte"},values:{true:"vero",false:"falso",null:"nullo",undefined:"indefinito",it:"esso",its:"suo",me:"io",my:"mio",you:"tu",your:"tuo",yourself:"te stesso",myself:"me stesso",element:"elemento",target:"obiettivo",detail:"dettaglio",event:"evento",window:"finestra",document:"documento",body:"corpo",result:"risultato",value:"valore"},attributes:{class:"classe",classes:"classi",style:"stile",styles:"stili",attribute:"attributo",attributes:"attributi",property:"propriet\u00e0",properties:"propriet\u00e0"},expressions:{characters:"caratteri",inclusive:"inclusivo",exclusive:"esclusivo",first:"primo",last:"ultimo",next:"prossimo",previous:"precedente",prev:"prec",at:"a",random:"casuale",closest:"vicino",parent:"genitore",children:"figli",within:"dentro",no:"nessun",empty:"vuoto",some:"qualche","starts with":"inizia con","ends with":"finisce con","ignoring case":"ignorando maiuscole","sorted by":"ordinato per","mapped to":"trasformato in","split by":"diviso per","joined by":"unito per"}},"it",{allowEnglishFallback:!0}),Xl({commands:{on:"khi",tell:"n\u00f3i v\u1edbi",trigger:"k\u00edch ho\u1ea1t",send:"g\u1eedi",take:"l\u1ea5y",put:"\u0111\u1eb7t",set:"g\u00e1n",get:"l\u1ea5y gi\u00e1 tr\u1ecb",add:"th\u00eam",remove:"x\u00f3a",toggle:"chuy\u1ec3n \u0111\u1ed5i",hide:"\u1ea9n",show:"hi\u1ec3n th\u1ecb",if:"n\u1ebfu",unless:"tr\u1eeb khi",repeat:"l\u1eb7p l\u1ea1i",for:"v\u1edbi m\u1ed7i",while:"trong khi",until:"cho \u0111\u1ebfn khi",continue:"ti\u1ebfp t\u1ee5c",break:"d\u1eebng",halt:"d\u1eebng l\u1ea1i",wait:"ch\u1edd",fetch:"t\u1ea3i",call:"g\u1ecdi",return:"tr\u1ea3 v\u1ec1",make:"t\u1ea1o",log:"in ra",throw:"n\u00e9m",catch:"b\u1eaft",measure:"\u0111o l\u01b0\u1eddng",transition:"chuy\u1ec3n ti\u1ebfp",increment:"t\u0103ng",decrement:"gi\u1ea3m",default:"m\u1eb7c \u0111\u1ecbnh",go:"\u0111i \u0111\u1ebfn",pushUrl:"pushUrl",replaceUrl:"thayTh\u1ebfUrl",copy:"sao ch\u00e9p",pick:"ch\u1ecdn",beep:"beep",js:"js",async:"b\u1ea5t \u0111\u1ed3ng b\u1ed9",render:"k\u1ebft xu\u1ea5t",swap:"ho\u00e1n \u0111\u1ed5i",morph:"bi\u1ebfn \u0111\u1ed5i",settle:"\u1ed5n \u0111\u1ecbnh",append:"n\u1ed1i",exit:"tho\u00e1t",focus:"t\u1eadp trung",blur:"m\u1ea5t t\u1eadp trung",init:"kh\u1edfi t\u1ea1o",behavior:"h\u00e0nh vi",install:"c\u00e0i \u0111\u1eb7t",clone:"nh\u00e2n b\u1ea3n",prepend:"th\u00eam v\u00e0o \u0111\u1ea7u",else:"kh\u00f4ng th\u00ec",breakpoint:"\u0111i\u1ec3m-d\u1eebng",clear:"t\u1ea9y",close:"\u0111\u00f3ng",open:"m\u1edf",select:"\u0111\u00e1nh-d\u1ea5u"},modifiers:{into:"v\u00e0o",before:"tr\u01b0\u1edbc",after:"sau",then:"r\u1ed3i",end:"k\u1ebft th\u00fac",from:"t\u1eeb",to:"\u0111\u1ebfn",with:"v\u1edbi",as:"nh\u01b0",by:"b\u1edfi",on:"tr\u00ean",in:"trong",at:"t\u1ea1i",of:"c\u1ee7a",between:"gi\u1eefa",the:"",times:"l\u1ea7n"},events:{click:"nh\u1ea5p",dblclick:"dblclick",input:"nh\u1eadp",change:"change",submit:"n\u1ed9p",keydown:"keydown",keyup:"keyup",keypress:"keypress",mouseover:"mouseover",mouseout:"mouseout",mouseenter:"mouseenter",mouseleave:"mouseleave",focus:"focus",blur:"blur",reset:"reset",load:"load",scroll:"cu\u1ed9n",resize:"\u0111\u1ed5i k\u00edch th\u01b0\u1edbc"},logical:{when:"khi",where:"\u1edf_\u0111\u00e2u",and:"v\u00e0",or:"ho\u1eb7c",not:"kh\u00f4ng",is:"l\u00e0",equals:"b\u1eb1ng",contains:"ch\u1ee9a",matches:"kh\u1edbp",exists:"t\u1ed3n t\u1ea1i",has:"c\u00f3",have:"c\u00f3",empty:"tr\u1ed1ng",true:"\u0111\u00fang",false:"sai",null:"r\u1ed7ng",else:"kh\u00f4ng th\u00ec",end:"k\u1ebft th\u00fac",then:"r\u1ed3i",live:"live",changes:"thay \u0111\u1ed5i"},temporal:{now:"b\u00e2y gi\u1edd",today:"h\u00f4m nay",tomorrow:"ng\u00e0y mai",yesterday:"h\u00f4m qua",always:"lu\u00f4n lu\u00f4n",never:"kh\u00f4ng bao gi\u1edd",sometimes:"\u0111\u00f4i khi",once:"m\u1ed9t l\u1ea7n",twice:"hai l\u1ea7n",forever:"m\u00e3i m\u00e3i"},values:{true:"\u0111\u00fang",false:"sai",null:"r\u1ed7ng",undefined:"kh\u00f4ng x\u00e1c \u0111\u1ecbnh",none:"kh\u00f4ng c\u00f3",all:"t\u1ea5t c\u1ea3",any:"b\u1ea5t k\u1ef3",some:"m\u1ed9t s\u1ed1",each:"m\u1ed7i",every:"t\u1ea5t c\u1ea3",body:"body",event:"s\u1ef1 ki\u1ec7n",it:"n\u00f3",its:"c\u1ee7a n\u00f3",me:"t\u00f4i",my:"c\u1ee7a t\u00f4i",result:"k\u1ebft qu\u1ea3",target:"m\u1ee5c ti\u00eau",you:"b\u1ea1n",your:"c\u1ee7a b\u1ea1n"},attributes:{id:"id",class:"l\u1edbp",style:"ki\u1ec3u",value:"gi\u00e1 tr\u1ecb",text:"v\u0103n b\u1ea3n",html:"html",src:"ngu\u1ed3n",href:"li\u00ean k\u1ebft",disabled:"v\u00f4 hi\u1ec7u",hidden:"\u1ea9n",checked:"\u0111\u01b0\u1ee3c ch\u1ecdn",selected:"\u0111\u01b0\u1ee3c ch\u1ecdn"},expressions:{random:"ng\u1eabu nhi\u00ean",characters:"k\u00fd t\u1ef1",inclusive:"bao g\u1ed3m",exclusive:"lo\u1ea1i tr\u1eeb",me:"t\u00f4i",my:"c\u1ee7a t\u00f4i",it:"n\u00f3",its:"c\u1ee7a n\u00f3",result:"k\u1ebft qu\u1ea3",event:"s\u1ef1 ki\u1ec7n",target:"m\u1ee5c ti\u00eau",first:"\u0111\u1ea7u ti\u00ean",last:"cu\u1ed1i c\u00f9ng",next:"ti\u1ebfp theo",previous:"tr\u01b0\u1edbc \u0111\u00f3",parent:"cha",children:"con",closest:"g\u1ea7n nh\u1ea5t",empty:"l\u00e0m-r\u1ed7ng","starts with":"b\u1eaft \u0111\u1ea7u b\u1eb1ng","ends with":"k\u1ebft th\u00fac b\u1eb1ng","ignoring case":"kh\u00f4ng ph\u00e2n bi\u1ec7t hoa th\u01b0\u1eddng","sorted by":"s\u1eafp x\u1ebfp theo","mapped to":"\u00e1nh x\u1ea1 th\u00e0nh","split by":"t\u00e1ch b\u1edfi","joined by":"n\u1ed1i b\u1edfi"}},"vi",{allowEnglishFallback:!0}),Xl({commands:{on:"gdy",tell:"powiedz",trigger:"wyzw\u00f3l",send:"wy\u015blij",take:"we\u017a",put:"umie\u015b\u0107",set:"ustaw",get:"uzyskaj",add:"dodaj",remove:"usu\u0144",toggle:"prze\u0142\u0105cz",blur:"rozmyj",hide:"ukryj",show:"poka\u017c",if:"je\u015bli",unless:"chyba",repeat:"powt\u00f3rz",for:"dla",while:"dop\u00f3ki",until:"a\u017c",continue:"kontynuuj",break:"przerwij",halt:"zatrzymaj",wait:"czekaj",fetch:"pobierz",call:"wywo\u0142aj",return:"zwr\u00f3\u0107",make:"utw\u00f3rz",log:"loguj",throw:"rzu\u0107",catch:"z\u0142ap",measure:"zmierz",transition:"animuj",increment:"zwi\u0119ksz",decrement:"zmniejsz",default:"domy\u015blnie",go:"id\u017a",pushUrl:"dodajUrl",replaceUrl:"zamie\u0144Url",copy:"kopiuj",pick:"wybierz",beep:"sygna\u0142",js:"js",async:"async",render:"renderuj",swap:"zamie\u0144",morph:"przekszta\u0142\u0107",settle:"ustabilizuj",append:"do\u0142\u0105cz",exit:"wyjd\u017a",install:"zainstaluj",breakpoint:"punkt-przerwania",clear:"zeruj",close:"zamknij",open:"otw\u00f3rz",select:"zaznacz",clone:"sklonuj",prepend:"poprzed\u017a",focus:"skup"},modifiers:{to:"do",from:"z",into:"do",with:"z",at:"przy",in:"w",of:"z",as:"jako",by:"przez",before:"przed",after:"po",over:"nad",under:"pod",between:"mi\u0119dzy",through:"przez",without:"bez"},events:{click:"klikni\u0119cie",dblclick:"podw\u00f3jneklikni\u0119cie",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"myszwej\u015bcie",mouseleave:"myszwyj\u015bcie",mouseover:"mysznad",mouseout:"myszpoza",mousemove:"myszruch",keydown:"klawiszd\u00f3\u0142",keyup:"klawiszg\u00f3ra",keypress:"klawisznaci\u015bni\u0119cie",focus:"fokus",blur:"rozmycie",change:"zmiana",input:"wej\u015bcie",submit:"wys\u0142aniu",reset:"zresetuj",load:"za\u0142aduj",unload:"wy\u0142aduj",resize:"zmiana rozmiaru",scroll:"przewi\u0144",touchstart:"dotykstart",touchend:"dotykkoniec",touchmove:"dotykruch",touchcancel:"dotykanuluj"},logical:{when:"kiedy",where:"gdzie",and:"i",or:"lub",not:"nie",is:"jest",exists:"istnieje",matches:"pasuje",contains:"zawiera",includes:"obejmuje",equals:"r\u00f3wna si\u0119",has:"ma",have:"mam",then:"wtedy",else:"inaczej",otherwise:"wpp",end:"koniec",live:"\u017cywy",changes:"zmienia"},temporal:{seconds:"sekundy",second:"sekunda",milliseconds:"milisekundy",millisecond:"milisekunda",minutes:"minuty",minute:"minuta",hours:"godziny",hour:"godzina",ms:"ms",s:"s",min:"min",h:"godz",times:"razy"},values:{true:"prawda",false:"fa\u0142sz",null:"null",undefined:"niezdefiniowane",it:"to",its:"jego",me:"ja",my:"m\u00f3j",you:"ty",your:"tw\u00f3j",yourself:"ty sam",myself:"ja sam",element:"element",target:"cel",detail:"szczeg\u00f3\u0142",event:"zdarzenie",window:"okno",document:"dokument",body:"body",result:"wynik",value:"warto\u015b\u0107"},attributes:{class:"klasa",classes:"klasy",style:"styl",styles:"style",attribute:"atrybut",attributes:"atrybuty",property:"w\u0142a\u015bciwo\u015b\u0107",properties:"w\u0142a\u015bciwo\u015bci"},expressions:{characters:"znaki",inclusive:"w\u0142\u0105cznie",exclusive:"wy\u0142\u0105cznie",first:"pierwszy",last:"ostatni",next:"nast\u0119pny",previous:"poprzedni",prev:"poprz",at:"przy",random:"losowy",closest:"najbli\u017cszy",parent:"rodzic",children:"dzieci",within:"wewn\u0105trz",no:"brak",empty:"pusty",some:"jaki\u015b","starts with":"zaczyna si\u0119 od","ends with":"ko\u0144czy si\u0119 na","ignoring case":"ignoruj\u0105c wielko\u015b\u0107 liter","sorted by":"sortowane wed\u0142ug","mapped to":"przekszta\u0142cone na","split by":"podzielone przez","joined by":"po\u0142\u0105czone przez"}},"pl",{allowEnglishFallback:!0}),Xl({commands:{on:"\u043f\u0440\u0438",tell:"\u0441\u043a\u0430\u0437\u0430\u0442\u044c",trigger:"\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c",send:"\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c",take:"\u0432\u0437\u044f\u0442\u044c",put:"\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c",set:"\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",get:"\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c",add:"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c",remove:"\u0443\u0434\u0430\u043b\u0438\u0442\u044c",toggle:"\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c",hide:"\u0441\u043a\u0440\u044b\u0442\u044c",show:"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c",if:"\u0435\u0441\u043b\u0438",unless:"\u043a\u0440\u043e\u043c\u0435",repeat:"\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c",for:"\u0434\u043b\u044f",while:"\u043f\u043e\u043a\u0430",until:"\u0434\u043e",continue:"\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c",break:"\u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c",halt:"\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",wait:"\u0436\u0434\u0430\u0442\u044c",fetch:"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",call:"\u0432\u044b\u0437\u0432\u0430\u0442\u044c",return:"\u0432\u0435\u0440\u043d\u0443\u0442\u044c",make:"\u0441\u043e\u0437\u0434\u0430\u0442\u044c",log:"\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c",throw:"\u0431\u0440\u043e\u0441\u0438\u0442\u044c",catch:"\u043f\u043e\u0439\u043c\u0430\u0442\u044c",measure:"\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c",transition:"\u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c",increment:"\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c",decrement:"\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c",default:"\u043f\u043e_\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e",go:"\u043f\u0435\u0440\u0435\u0439\u0442\u0438",pushUrl:"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c_url",replaceUrl:"\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c_url",copy:"\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",pick:"\u0432\u044b\u0431\u0440\u0430\u0442\u044c",beep:"\u0437\u0432\u0443\u043a",js:"js",async:"\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e",render:"\u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c",swap:"\u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c",morph:"\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c",settle:"\u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c",append:"\u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c",exit:"\u0432\u044b\u0439\u0442\u0438",else:"\u0438\u043d\u0430\u0447\u0435",install:"\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c",init:"\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c",behavior:"\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435",focus:"\u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c",blur:"\u0440\u0430\u0437\u043c\u044b\u0442\u044c",clone:"\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c",prepend:"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u043e",breakpoint:"\u0442\u043e\u0447\u043a\u0430-\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430",clear:"\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c",close:"\u0437\u0430\u043a\u0440\u044b\u0442\u044c",open:"\u043e\u0442\u043a\u0440\u044b\u0442\u044c",select:"\u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c"},modifiers:{to:"\u043a",from:"\u0438\u0437",into:"\u0432",with:"\u0441",at:"\u0443",in:"\u0432",of:"\u0438\u0437",as:"\u043a\u0430\u043a",by:"\u043d\u0430",before:"\u0434\u043e",after:"\u043f\u043e\u0441\u043b\u0435",over:"\u043d\u0430\u0434",under:"\u043f\u043e\u0434",between:"\u043c\u0435\u0436\u0434\u0443",through:"\u0447\u0435\u0440\u0435\u0437",without:"\u0431\u0435\u0437",on:"\u043d\u0430"},events:{click:"\u043a\u043b\u0438\u043a",dblclick:"\u0434\u0432\u043e\u0439\u043d\u043e\u0439_\u043a\u043b\u0438\u043a",mousedown:"\u043c\u044b\u0448\u044c\u0432\u043d\u0438\u0437",mouseup:"\u043c\u044b\u0448\u044c\u0432\u0432\u0435\u0440\u0445",mouseenter:"\u043c\u044b\u0448\u044c_\u0432\u0445\u043e\u0434",mouseleave:"\u043c\u044b\u0448\u044c_\u0432\u044b\u0445\u043e\u0434",mouseover:"\u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0435",mouseout:"\u0443\u0445\u043e\u0434",mousemove:"\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435_\u043c\u044b\u0448\u0438",keydown:"\u043a\u043b\u0430\u0432\u0438\u0448\u0430_\u0432\u043d\u0438\u0437",keyup:"\u043a\u043b\u0430\u0432\u0438\u0448\u0430_\u0432\u0432\u0435\u0440\u0445",keypress:"\u043d\u0430\u0436\u0430\u0442\u0438\u0435_\u043a\u043b\u0430\u0432\u0438\u0448\u0438",focus:"\u0444\u043e\u043a\u0443\u0441",blur:"\u043f\u043e\u0442\u0435\u0440\u044f_\u0444\u043e\u043a\u0443\u0441\u0430",change:"\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435",input:"\u0432\u0432\u043e\u0434",submit:"\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430",reset:"\u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c",load:"\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430",unload:"\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430",resize:"\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u0440\u0430\u0437\u043c\u0435\u0440\u0430",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430",touchstart:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u043d\u0430\u0447\u0430\u043b\u043e",touchend:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u043a\u043e\u043d\u0435\u0446",touchmove:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435",touchcancel:"\u043a\u0430\u0441\u0430\u043d\u0438\u0435_\u043e\u0442\u043c\u0435\u043d\u0430"},logical:{when:"\u043a\u043e\u0433\u0434\u0430",where:"\u0433\u0434\u0435",and:"\u0438",or:"\u0438\u043b\u0438",not:"\u043d\u0435",is:"\u0435\u0441\u0442\u044c",exists:"\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",matches:"\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442",contains:"\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442",includes:"\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442",equals:"\u0440\u0430\u0432\u043d\u043e",then:"\u0437\u0430\u0442\u0435\u043c",else:"\u0438\u043d\u0430\u0447\u0435",otherwise:"\u0432_\u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c_\u0441\u043b\u0443\u0447\u0430\u0435",end:"\u043a\u043e\u043d\u0435\u0446",live:"\u0436\u0438\u0432\u043e\u0439",changes:"\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f",has:"\u0438\u043c\u0435\u0435\u0442",have:"\u0438\u043c\u0435\u044e",isNot:"\u043d\u0435_\u0435\u0441\u0442\u044c",empty:"\u043f\u0443\u0441\u0442\u043e\u0439"},temporal:{seconds:"\u0441\u0435\u043a\u0443\u043d\u0434",second:"\u0441\u0435\u043a\u0443\u043d\u0434\u0430",milliseconds:"\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434",millisecond:"\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430",minutes:"\u043c\u0438\u043d\u0443\u0442",minute:"\u043c\u0438\u043d\u0443\u0442\u0430",hours:"\u0447\u0430\u0441\u043e\u0432",hour:"\u0447\u0430\u0441",ms:"\u043c\u0441",s:"\u0441",min:"\u043c\u0438\u043d",h:"\u0447",forever:"\u0432\u0441\u0435\u0433\u0434\u0430",once:"\u043e\u0434\u043d\u0430\u0436\u0434\u044b",every:"\u043a\u0430\u0436\u0434\u044b\u0439",until:"\u0434\u043e",times:"\u0440\u0430\u0437"},values:{true:"\u0438\u0441\u0442\u0438\u043d\u0430",false:"\u043b\u043e\u0436\u044c",null:"\u043d\u0438\u0447\u0435\u0433\u043e",undefined:"\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e",it:"\u044d\u0442\u043e",its:"\u0435\u0433\u043e",me:"\u044f",my:"\u043c\u043e\u0439",you:"\u0442\u044b",your:"\u0442\u0432\u043e\u0439",yourself:"\u0441\u0430\u043c",myself:"\u044f_\u0441\u0430\u043c",element:"\u044d\u043b\u0435\u043c\u0435\u043d\u0442",target:"\u0446\u0435\u043b\u044c",detail:"\u0434\u0435\u0442\u0430\u043b\u0438",event:"\u0441\u043e\u0431\u044b\u0442\u0438\u0435",window:"\u043e\u043a\u043d\u043e",document:"\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",body:"\u0442\u0435\u043b\u043e",result:"\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442",value:"\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435",first:"\u043f\u0435\u0440\u0432\u044b\u0439",last:"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439",next:"\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439",previous:"\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439",closest:"\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439",parent:"\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c"},attributes:{class:"\u043a\u043b\u0430\u0441\u0441",classes:"\u043a\u043b\u0430\u0441\u0441\u044b",style:"\u0441\u0442\u0438\u043b\u044c",styles:"\u0441\u0442\u0438\u043b\u0438",attribute:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442",attributes:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b",property:"\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e",properties:"\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430",disabled:"\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e",hidden:"\u0441\u043a\u0440\u044b\u0442\u043e",checked:"\u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e",selected:"\u0432\u044b\u0431\u0440\u0430\u043d\u043e",readonly:"\u0442\u043e\u043b\u044c\u043a\u043e_\u0447\u0442\u0435\u043d\u0438\u0435",required:"\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e",text:"\u0442\u0435\u043a\u0441\u0442",html:"html"},expressions:{characters:"\u0441\u0438\u043c\u0432\u043e\u043b\u044b",inclusive:"\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e",exclusive:"\u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e",first:"\u043f\u0435\u0440\u0432\u044b\u0439",last:"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439",next:"\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439",previous:"\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439",prev:"\u043f\u0440\u0435\u0434",at:"\u0432",random:"\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439",closest:"\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439",parent:"\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c",children:"\u0434\u0435\u0442\u0438",within:"\u0432\u043d\u0443\u0442\u0440\u0438",no:"\u043d\u0435\u0442",empty:"\u043f\u0443\u0441\u0442\u043e\u0439",some:"\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435","starts with":"\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f_\u0441","ends with":"\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f_\u043d\u0430","ignoring case":"\u0431\u0435\u0437_\u0443\u0447\u0451\u0442\u0430_\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430","sorted by":"\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e_\u043f\u043e","mapped to":"\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043e_\u0432","split by":"\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043e_\u043f\u043e","joined by":"\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e_\u0447\u0435\u0440\u0435\u0437"}},"ru",{allowEnglishFallback:!0}),Xl({commands:{on:"\u043f\u0440\u0438",tell:"\u0441\u043a\u0430\u0437\u0430\u0442\u0438",trigger:"\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438",send:"\u043d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438",take:"\u0432\u0437\u044f\u0442\u0438",put:"\u043f\u043e\u043a\u043b\u0430\u0441\u0442\u0438",set:"\u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438",get:"\u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438",add:"\u0434\u043e\u0434\u0430\u0442\u0438",remove:"\u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438",toggle:"\u043f\u0435\u0440\u0435\u043c\u043a\u043d\u0443\u0442\u0438",hide:"\u0441\u0445\u043e\u0432\u0430\u0442\u0438",show:"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0438",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0438",if:"\u044f\u043a\u0449\u043e",unless:"\u043a\u0440\u0456\u043c",repeat:"\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0438",for:"\u0434\u043b\u044f",while:"\u043f\u043e\u043a\u0438",until:"\u0434\u043e",continue:"\u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438",break:"\u043f\u0435\u0440\u0435\u0440\u0432\u0430\u0442\u0438",halt:"\u0437\u0443\u043f\u0438\u043d\u0438\u0442\u0438",wait:"\u0447\u0435\u043a\u0430\u0442\u0438",fetch:"\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438",call:"\u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0442\u0438",return:"\u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438",make:"\u0441\u0442\u0432\u043e\u0440\u0438\u0442\u0438",log:"\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u0438",throw:"\u043a\u0438\u043d\u0443\u0442\u0438",catch:"\u0437\u043b\u043e\u0432\u0438\u0442\u0438",measure:"\u0432\u0438\u043c\u0456\u0440\u044f\u0442\u0438",transition:"\u0430\u043d\u0456\u043c\u0443\u0432\u0430\u0442\u0438",increment:"\u0437\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438",decrement:"\u0437\u043c\u0435\u043d\u0448\u0438\u0442\u0438",default:"\u0437\u0430_\u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c",go:"\u043f\u0435\u0440\u0435\u0439\u0442\u0438",pushUrl:"\u0434\u043e\u0434\u0430\u0442\u0438_url",replaceUrl:"\u0437\u0430\u043c\u0456\u043d\u0438\u0442\u0438_url",copy:"\u043a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438",pick:"\u0432\u0438\u0431\u0440\u0430\u0442\u0438",beep:"\u0437\u0432\u0443\u043a",js:"js",async:"\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e",render:"\u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438",swap:"\u043f\u043e\u043c\u0456\u043d\u044f\u0442\u0438",morph:"\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0443\u0432\u0430\u0442\u0438",settle:"\u0441\u0442\u0430\u0431\u0456\u043b\u0456\u0437\u0443\u0432\u0430\u0442\u0438",append:"\u0434\u043e\u043f\u0438\u0441\u0430\u0442\u0438",exit:"\u0432\u0438\u0439\u0442\u0438",else:"\u0456\u043d\u0430\u043a\u0448\u0435",install:"\u0456\u043d\u0441\u0442\u0430\u043b\u044e\u0432\u0430\u0442\u0438",init:"\u0456\u043d\u0456\u0446\u0456\u0430\u043b\u0456\u0437\u0443\u0432\u0430\u0442\u0438",behavior:"\u043f\u043e\u0432\u0435\u0434\u0456\u043d\u043a\u0430",focus:"\u0441\u0444\u043e\u043a\u0443\u0441\u0443\u0432\u0430\u0442\u0438",blur:"\u0440\u043e\u0437\u0444\u043e\u043a\u0443\u0441\u0443\u0432\u0430\u0442\u0438",clone:"\u043a\u043b\u043e\u043d\u0443\u0432\u0430\u0442\u0438",prepend:"\u0434\u043e\u0434\u0430\u0442\u0438 \u043d\u0430 \u043f\u043e\u0447\u0430\u0442\u043e\u043a",breakpoint:"\u0442\u043e\u0447\u043a\u0430-\u0437\u0443\u043f\u0438\u043d\u043a\u0438",clear:"\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u0438",close:"\u0437\u0430\u043a\u0440\u0438\u0442\u0438",open:"\u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438",select:"\u0432\u0438\u0434\u0456\u043b\u0438\u0442\u0438"},modifiers:{to:"\u0434\u043e",from:"\u0437",into:"\u0432",with:"\u0437",at:"\u0432",in:"\u0443",of:"\u0437",as:"\u044f\u043a",by:"\u043d\u0430",before:"\u0434\u043e",after:"\u043f\u0456\u0441\u043b\u044f",over:"\u043d\u0430\u0434",under:"\u043f\u0456\u0434",between:"\u043c\u0456\u0436",through:"\u0447\u0435\u0440\u0435\u0437",without:"\u0431\u0435\u0437",on:"\u043d\u0430"},events:{click:"\u043a\u043b\u0456\u043a",dblclick:"\u043f\u043e\u0434\u0432\u0456\u0439\u043d\u0438\u0439_\u043a\u043b\u0456\u043a",mousedown:"\u043c\u0438\u0448\u0430\u0432\u043d\u0438\u0437",mouseup:"\u043c\u0438\u0448\u0430\u0432\u0433\u043e\u0440\u0443",mouseenter:"\u043c\u0438\u0448\u0430_\u0432\u0445\u0456\u0434",mouseleave:"\u043c\u0438\u0448\u0430_\u0432\u0438\u0445\u0456\u0434",mouseover:"\u043d\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u044f",mouseout:"\u0432\u0456\u0434\u0432\u0435\u0434\u0435\u043d\u043d\u044f",mousemove:"\u0440\u0443\u0445_\u043c\u0438\u0448\u0456",keydown:"\u043a\u043b\u0430\u0432\u0456\u0448\u0430_\u0432\u043d\u0438\u0437",keyup:"\u043a\u043b\u0430\u0432\u0456\u0448\u0430_\u0432\u0433\u043e\u0440\u0443",keypress:"\u043d\u0430\u0442\u0438\u0441\u043a\u0430\u043d\u043d\u044f_\u043a\u043b\u0430\u0432\u0456\u0448\u0456",focus:"\u0444\u043e\u043a\u0443\u0441",blur:"\u0440\u043e\u0437\u0444\u043e\u043a\u0443\u0441",change:"\u0437\u043c\u0456\u043d\u0430",input:"\u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f",submit:"\u043d\u0430\u0434\u0441\u0438\u043b\u0430\u043d\u043d\u044f",reset:"\u0441\u043a\u0438\u043d\u0443\u0442\u0438",load:"\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f",unload:"\u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f",resize:"\u0437\u043c\u0456\u043d\u0430\u0440\u043e\u0437\u043c\u0456\u0440\u0443",scroll:"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430",touchstart:"\u0434\u043e\u0442\u0438\u043a_\u043f\u043e\u0447\u0430\u0442\u043e\u043a",touchend:"\u0434\u043e\u0442\u0438\u043a_\u043a\u0456\u043d\u0435\u0446\u044c",touchmove:"\u0434\u043e\u0442\u0438\u043a_\u0440\u0443\u0445",touchcancel:"\u0434\u043e\u0442\u0438\u043a_\u0441\u043a\u0430\u0441\u0443\u0432\u0430\u043d\u043d\u044f"},logical:{when:"\u043a\u043e\u043b\u0438",where:"\u0434\u0435",and:"\u0456",or:"\u0430\u0431\u043e",not:"\u043d\u0435",is:"\u0454",exists:"\u0456\u0441\u043d\u0443\u0454",matches:"\u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0454",contains:"\u043c\u0456\u0441\u0442\u0438\u0442\u044c",includes:"\u0432\u043a\u043b\u044e\u0447\u0430\u0454",equals:"\u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454",then:"\u0442\u043e\u0434\u0456",else:"\u0456\u043d\u0430\u043a\u0448\u0435",otherwise:"\u0432_\u0456\u043d\u0448\u043e\u043c\u0443_\u0432\u0438\u043f\u0430\u0434\u043a\u0443",end:"\u043a\u0456\u043d\u0435\u0446\u044c",live:"\u0436\u0438\u0432\u0438\u0439",changes:"\u0437\u043c\u0456\u043d\u044e\u0454\u0442\u044c\u0441\u044f",has:"\u043c\u0430\u0454",have:"\u043c\u0430\u044e",isNot:"\u043d\u0435_\u0454",empty:"\u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439"},temporal:{seconds:"\u0441\u0435\u043a\u0443\u043d\u0434",second:"\u0441\u0435\u043a\u0443\u043d\u0434\u0430",milliseconds:"\u043c\u0456\u043b\u0456\u0441\u0435\u043a\u0443\u043d\u0434",millisecond:"\u043c\u0456\u043b\u0456\u0441\u0435\u043a\u0443\u043d\u0434\u0430",minutes:"\u0445\u0432\u0438\u043b\u0438\u043d",minute:"\u0445\u0432\u0438\u043b\u0438\u043d\u0430",hours:"\u0433\u043e\u0434\u0438\u043d",hour:"\u0433\u043e\u0434\u0438\u043d\u0430",ms:"\u043c\u0441",s:"\u0441",min:"\u0445\u0432",h:"\u0433\u043e\u0434",forever:"\u0437\u0430\u0432\u0436\u0434\u0438",once:"\u043e\u0434\u0438\u043d_\u0440\u0430\u0437",every:"\u043a\u043e\u0436\u043d\u0438\u0439",until:"\u0434\u043e",times:"\u0440\u0430\u0437\u0456\u0432"},values:{true:"\u0456\u0441\u0442\u0438\u043d\u0430",false:"\u0445\u0438\u0431\u043d\u0456\u0441\u0442\u044c",null:"\u043d\u0456\u0447\u043e\u0433\u043e",undefined:"\u043d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043e",it:"\u0446\u0435",its:"\u0439\u043e\u0433\u043e",me:"\u044f",my:"\u043c\u0456\u0439",you:"\u0442\u0438",your:"\u0442\u0432\u0456\u0439",yourself:"\u0441\u0430\u043c",myself:"\u044f_\u0441\u0430\u043c",element:"\u0435\u043b\u0435\u043c\u0435\u043d\u0442",target:"\u0446\u0456\u043b\u044c",detail:"\u0434\u0435\u0442\u0430\u043b\u0456",event:"\u043f\u043e\u0434\u0456\u044f",window:"\u0432\u0456\u043a\u043d\u043e",document:"\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",body:"\u0442\u0456\u043b\u043e",result:"\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442",value:"\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f",first:"\u043f\u0435\u0440\u0448\u0438\u0439",last:"\u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439",next:"\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439",previous:"\u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439",closest:"\u043d\u0430\u0439\u0431\u043b\u0438\u0436\u0447\u0438\u0439",parent:"\u0431\u0430\u0442\u044c\u043a\u0456\u0432\u0441\u044c\u043a\u0438\u0439"},attributes:{class:"\u043a\u043b\u0430\u0441",classes:"\u043a\u043b\u0430\u0441\u0438",style:"\u0441\u0442\u0438\u043b\u044c",styles:"\u0441\u0442\u0438\u043b\u0456",attribute:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442",attributes:"\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438",property:"\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c",properties:"\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456",disabled:"\u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e",hidden:"\u043f\u0440\u0438\u0445\u043e\u0432\u0430\u043d\u043e",checked:"\u043f\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043e",selected:"\u0432\u0438\u0431\u0440\u0430\u043d\u043e",readonly:"\u043b\u0438\u0448\u0435_\u0447\u0438\u0442\u0430\u043d\u043d\u044f",required:"\u043e\u0431\u043e\u0432'\u044f\u0437\u043a\u043e\u0432\u043e",text:"\u0442\u0435\u043a\u0441\u0442",html:"html"},expressions:{characters:"\u0441\u0438\u043c\u0432\u043e\u043b\u0438",inclusive:"\u0432\u043a\u043b\u044e\u0447\u043d\u043e",exclusive:"\u0432\u0438\u043a\u043b\u044e\u0447\u043d\u043e",first:"\u043f\u0435\u0440\u0448\u0438\u0439",last:"\u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439",next:"\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439",previous:"\u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439",prev:"\u043f\u043e\u043f\u0435\u0440",at:"\u0432",random:"\u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0438\u0439",closest:"\u043d\u0430\u0439\u0431\u043b\u0438\u0436\u0447\u0438\u0439",parent:"\u0431\u0430\u0442\u044c\u043a\u0456\u0432\u0441\u044c\u043a\u0438\u0439",children:"\u0434\u0456\u0442\u0438",within:"\u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0456",no:"\u043d\u0456",empty:"\u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439",some:"\u0434\u0435\u044f\u043a\u0456","starts with":"\u043f\u043e\u0447\u0438\u043d\u0430\u0454\u0442\u044c\u0441\u044f_\u0437","ends with":"\u0437\u0430\u043a\u0456\u043d\u0447\u0443\u0454\u0442\u044c\u0441\u044f_\u043d\u0430","ignoring case":"\u0431\u0435\u0437_\u0443\u0440\u0430\u0445\u0443\u0432\u0430\u043d\u043d\u044f_\u0440\u0435\u0433\u0456\u0441\u0442\u0440\u0443","sorted by":"\u0432\u0456\u0434\u0441\u043e\u0440\u0442\u043e\u0432\u0430\u043d\u043e_\u0437\u0430","mapped to":"\u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043e_\u043d\u0430","split by":"\u0440\u043e\u0437\u0434\u0456\u043b\u0435\u043d\u043e_\u0437\u0430","joined by":"\u043e\u0431'\u0454\u0434\u043d\u0430\u043d\u043e_\u0447\u0435\u0440\u0435\u0437"}},"uk",{allowEnglishFallback:!0}),Xl({commands:{on:"\u092a\u0930",tell:"\u092c\u0924\u093e\u090f\u0902",trigger:"\u091f\u094d\u0930\u093f\u0917\u0930",send:"\u092d\u0947\u091c\u0947\u0902",take:"\u0932\u0947\u0902",put:"\u0930\u0916\u0947\u0902",set:"\u0938\u0947\u091f",get:"\u092a\u094d\u0930\u093e\u092a\u094d\u0924",add:"\u091c\u094b\u0921\u093c\u0947\u0902",remove:"\u0939\u091f\u093e\u090f\u0902",toggle:"\u091f\u0949\u0917\u0932",hide:"\u091b\u093f\u092a\u093e\u090f\u0902",show:"\u0926\u093f\u0916\u093e\u090f\u0902",if:"\u0905\u0917\u0930",unless:"\u091c\u092c \u0924\u0915 \u0928\u0939\u0940\u0902",repeat:"\u0926\u094b\u0939\u0930\u093e\u090f\u0902",for:"\u0939\u0947\u0924\u0941",while:"\u091c\u092c \u0924\u0915",until:"\u0924\u0915",continue:"\u091c\u093e\u0930\u0940",break:"\u0930\u094b\u0915\u0947\u0902",halt:"\u0930\u094b\u0915\u0947\u0902",wait:"\u092a\u094d\u0930\u0924\u0940\u0915\u094d\u0937\u093e",fetch:"\u0932\u093e\u090f\u0902",call:"\u0915\u0949\u0932",return:"\u0932\u094c\u091f\u093e\u090f\u0902",make:"\u092c\u0928\u093e\u090f\u0902",log:"\u0932\u0949\u0917",throw:"\u092b\u0947\u0902\u0915\u0947\u0902",catch:"\u092a\u0915\u0921\u093c\u0947\u0902",measure:"\u092e\u093e\u092a\u0947\u0902",transition:"\u0938\u0902\u0915\u094d\u0930\u092e\u0923",increment:"\u092c\u0922\u093c\u093e\u090f\u0902",decrement:"\u0918\u091f\u093e\u090f\u0902",default:"\u0921\u093f\u092b\u093c\u0949\u0932\u094d\u091f",go:"\u091c\u093e\u090f\u0902",pushUrl:"url_\u091c\u094b\u0921\u093c\u0947\u0902",replaceUrl:"url_\u092c\u0926\u0932\u0947\u0902",copy:"\u0915\u0949\u092a\u0940",pick:"\u091a\u0941\u0928\u0947\u0902",beep:"\u092c\u0940\u092a",js:"\u091c\u0947\u090f\u0938",async:"\u0905\u0938\u093f\u0902\u0915",render:"\u0930\u0947\u0902\u0921\u0930",swap:"\u0935\u093f\u0928\u093f\u092e\u092f",morph:"\u0930\u0942\u092a\u093e\u0902\u0924\u0930",settle:"\u0938\u094d\u0925\u093f\u0930",append:"\u0938\u0902\u0932\u0917\u094d\u0928",exit:"\u092c\u093e\u0939\u0930",else:"\u0935\u0930\u0928\u093e",install:"\u0907\u0902\u0938\u094d\u091f\u0949\u0932",init:"\u092a\u094d\u0930\u093e\u0930\u0902\u092d",behavior:"\u0935\u094d\u092f\u0935\u0939\u093e\u0930",focus:"\u092b\u094b\u0915\u0938",blur:"\u0927\u0941\u0902\u0927\u0932\u093e",clone:"\u0915\u094d\u0932\u094b\u0928",prepend:"\u091c\u094b\u0921\u093c\u0947\u0902_\u0936\u0941\u0930\u0942",breakpoint:"\u092c\u094d\u0930\u0947\u0915\u092a\u094d\u0935\u093e\u0907\u0902\u091f",clear:"\u0938\u093e\u092b\u093c-\u0915\u0930\u0947\u0902",close:"\u092c\u0902\u0926-\u0915\u0930\u0947\u0902",open:"\u0916\u094b\u0932\u0947\u0902",select:"\u091a\u093f\u0939\u094d\u0928\u093f\u0924-\u0915\u0930\u0947\u0902",socket:"\u0938\u0949\u0915\u0947\u091f"},modifiers:{to:"\u0915\u094b",from:"\u0938\u0947",into:"\u092e\u0947\u0902",with:"\u0915\u0947_\u0938\u093e\u0925",at:"\u092a\u0930",in:"\u092e\u0947\u0902",of:"\u0915\u093e",as:"\u0915\u0947_\u0930\u0942\u092a_\u092e\u0947\u0902",by:"\u0926\u094d\u0935\u093e\u0930\u093e",before:"\u0938\u0947 \u092a\u0939\u0932\u0947",after:"\u0915\u0947 \u092c\u093e\u0926",over:"\u0915\u0947_\u090a\u092a\u0930",under:"\u0915\u0947_\u0928\u0940\u091a\u0947",between:"\u0915\u0947_\u092c\u0940\u091a",through:"\u0915\u0947_\u092e\u093e\u0927\u094d\u092f\u092e_\u0938\u0947",without:"\u0915\u0947_\u092c\u093f\u0928\u093e",on:"\u092a\u0930"},events:{click:"\u0915\u094d\u0932\u093f\u0915",dblclick:"\u0921\u092c\u0932_\u0915\u094d\u0932\u093f\u0915",mousedown:"\u092e\u093e\u0909\u0938\u0928\u0940\u091a\u0947",mouseup:"\u092e\u093e\u0909\u0938\u090a\u092a\u0930",mouseenter:"\u092e\u093e\u0909\u0938_\u092a\u094d\u0930\u0935\u0947\u0936",mouseleave:"\u092e\u093e\u0909\u0938_\u092c\u093e\u0939\u0930",mouseover:"\u092e\u093e\u0909\u0938_\u0913\u0935\u0930",mouseout:"\u092e\u093e\u0909\u0938_\u0906\u0909\u091f",mousemove:"\u092e\u093e\u0909\u0938_\u092e\u0942\u0935",keydown:"\u0915\u0940_\u0928\u0940\u091a\u0947",keyup:"\u0915\u0940_\u090a\u092a\u0930",keypress:"\u0915\u0940_\u092a\u094d\u0930\u0947\u0938",focus:"\u092b\u094b\u0915\u0938",blur:"\u0927\u0941\u0902\u0927\u0932\u093e",change:"\u092a\u0930\u093f\u0935\u0930\u094d\u0924\u0928",input:"\u0907\u0928\u092a\u0941\u091f",submit:"\u091c\u092e\u093e",reset:"\u0930\u0940\u0938\u0947\u091f",load:"\u0932\u094b\u0921",unload:"\u0905\u0928\u0932\u094b\u0921",resize:"\u0906\u0915\u093e\u0930_\u092c\u0926\u0932\u0947\u0902",scroll:"\u0938\u094d\u0915\u094d\u0930\u0949\u0932",touchstart:"\u091f\u091a_\u0936\u0941\u0930\u0942",touchend:"\u091f\u091a_\u0938\u092e\u093e\u092a\u094d\u0924",touchmove:"\u091f\u091a_\u092e\u0942\u0935",touchcancel:"\u091f\u091a_\u0930\u0926\u094d\u0926"},logical:{when:"\u091c\u092c",where:"\u0915\u0939\u093e\u0901",and:"\u0914\u0930",or:"\u092f\u093e",not:"\u0928\u0939\u0940\u0902",is:"\u0939\u0948",exists:"\u092e\u094c\u091c\u0942\u0926",matches:"\u092e\u0947\u0932 \u0916\u093e\u0924\u093e",contains:"\u0936\u093e\u092e\u093f\u0932",includes:"\u092e\u0947\u0902_\u0939\u0948",equals:"\u092c\u0930\u093e\u092c\u0930",then:"\u092b\u093f\u0930",else:"\u0935\u0930\u0928\u093e",otherwise:"\u0905\u0928\u094d\u092f\u0925\u093e",end:"\u0938\u092e\u093e\u092a\u094d\u0924",live:"\u0932\u093e\u0907\u0935",changes:"\u092c\u0926\u0932\u0928\u0947 \u092a\u0930",has:"\u0939\u0948",have:"\u0939\u0948",isNot:"\u0928\u0939\u0940\u0902_\u0939\u0948",empty:"\u0916\u093e\u0932\u0940"},temporal:{seconds:"\u0938\u0947\u0915\u0902\u0921",second:"\u0938\u0947\u0915\u0902\u0921",milliseconds:"\u092e\u093f\u0932\u0940\u0938\u0947\u0915\u0902\u0921",millisecond:"\u092e\u093f\u0932\u0940\u0938\u0947\u0915\u0902\u0921",minutes:"\u092e\u093f\u0928\u091f",minute:"\u092e\u093f\u0928\u091f",hours:"\u0918\u0902\u091f\u0947",hour:"\u0918\u0902\u091f\u093e",ms:"\u092e\u093f\u0938\u0947",s:"\u0938\u0947",min:"\u092e\u093f",h:"\u0918\u0902",forever:"\u0939\u092e\u0947\u0936\u093e",once:"\u090f\u0915_\u092c\u093e\u0930",every:"\u0939\u0930",until:"\u0924\u0915",times:"\u092c\u093e\u0930"},values:{true:"\u0938\u091a",false:"\u091d\u0942\u0920",null:"null",undefined:"\u0905\u092a\u0930\u093f\u092d\u093e\u0937\u093f\u0924",it:"\u092f\u0939",its:"\u0907\u0938\u0915\u093e",me:"\u092e\u0948\u0902",my:"\u092e\u0947\u0930\u093e",you:"\u0906\u092a",your:"\u0906\u092a\u0915\u093e",yourself:"\u0938\u094d\u0935\u092f\u0902",myself:"\u092e\u0948\u0902_\u0938\u094d\u0935\u092f\u0902",element:"\u0924\u0924\u094d\u0935",target:"\u0932\u0915\u094d\u0937\u094d\u092f",detail:"\u0935\u093f\u0935\u0930\u0923",event:"\u0918\u091f\u0928\u093e",window:"\u0935\u093f\u0902\u0921\u094b",document:"\u0926\u0938\u094d\u0924\u093e\u0935\u0947\u091c\u093c",body:"\u092c\u0949\u0921\u0940",result:"\u092a\u0930\u093f\u0923\u093e\u092e",value:"\u092e\u093e\u0928",first:"\u092a\u0939\u0932\u093e",last:"\u0905\u0902\u0924\u093f\u092e",next:"\u0905\u0917\u0932\u093e",previous:"\u092a\u093f\u091b\u0932\u093e",closest:"\u0928\u093f\u0915\u091f\u0924\u092e",parent:"\u092e\u0942\u0932"},attributes:{class:"\u0915\u094d\u0932\u093e\u0938",classes:"\u0915\u094d\u0932\u093e\u0938\u0947\u0938",style:"\u0938\u094d\u091f\u093e\u0907\u0932",styles:"\u0938\u094d\u091f\u093e\u0907\u0932\u094d\u0938",attribute:"\u0917\u0941\u0923",attributes:"\u0917\u0941\u0923",property:"\u0938\u0902\u092a\u0924\u094d\u0924\u093f",properties:"\u0938\u0902\u092a\u0924\u094d\u0924\u093f\u092f\u093e\u0901",disabled:"\u0905\u0915\u094d\u0937\u092e",hidden:"\u091b\u093f\u092a\u093e",checked:"\u091a\u0947\u0915",selected:"\u091a\u092f\u0928\u093f\u0924",readonly:"\u0915\u0947\u0935\u0932_\u092a\u0922\u093c\u0928\u0947",required:"\u0906\u0935\u0936\u094d\u092f\u0915",text:"\u092a\u093e\u0920",html:"html"},expressions:{characters:"\u0905\u0915\u094d\u0937\u0930",first:"\u092a\u0939\u0932\u093e",last:"\u0905\u0902\u0924\u093f\u092e",next:"\u0905\u0917\u0932\u093e",previous:"\u092a\u093f\u091b\u0932\u093e",prev:"\u092a\u093f\u091b",at:"\u092a\u0930",random:"\u092f\u093e\u0926\u0943\u091a\u094d\u091b\u093f\u0915",closest:"\u0928\u093f\u0915\u091f\u0924\u092e",parent:"\u092e\u0942\u0932",children:"\u092c\u091a\u094d\u091a\u0947",within:"\u0915\u0947_\u0905\u0902\u0926\u0930",no:"\u0915\u094b\u0908 \u0928\u0939\u0940\u0902",empty:"\u0916\u093e\u0932\u0940",some:"\u0915\u0941\u091b","starts with":"\u0938\u0947_\u0936\u0941\u0930\u0942","ends with":"\u092a\u0930_\u0938\u092e\u093e\u092a\u094d\u0924","ignoring case":"\u0915\u0947\u0938_\u0905\u0928\u0926\u0947\u0916\u093e","sorted by":"\u0926\u094d\u0935\u093e\u0930\u093e_\u0915\u094d\u0930\u092e\u092c\u0926\u094d\u0927","mapped to":"\u092e\u0947\u0902_\u092a\u0930\u093f\u0935\u0930\u094d\u0924\u093f\u0924","split by":"\u0926\u094d\u0935\u093e\u0930\u093e_\u0935\u093f\u092d\u093e\u091c\u093f\u0924","joined by":"\u0926\u094d\u0935\u093e\u0930\u093e_\u091c\u0941\u0921\u093c\u093e"}},"hi",{allowEnglishFallback:!0}),Xl({commands:{on:"\u09a4\u09c7",toggle:"\u099f\u0997\u09b2",add:"\u09af\u09cb\u0997",remove:"\u09b8\u09b0\u09be\u09a8",set:"\u09b8\u09c7\u099f",get:"\u09aa\u09be\u09a8",put:"\u09b0\u09be\u0996\u09c1\u09a8",take:"\u09a8\u09bf\u09a8",show:"\u09a6\u09c7\u0996\u09be\u09a8",hide:"\u09b2\u09c1\u0995\u09be\u09a8",increment:"\u09ac\u09c3\u09a6\u09cd\u09a7\u09bf",decrement:"\u09b9\u09cd\u09b0\u09be\u09b8",if:"\u09af\u09a6\u09bf",else:"\u09a8\u09a4\u09c1\u09ac\u09be",repeat:"\u09aa\u09c1\u09a8\u09b0\u09be\u09ac\u09c3\u09a4\u09cd\u09a4\u09bf",for:"\u099c\u09a8\u09cd\u09af",while:"\u09af\u09a4\u0995\u09cd\u09b7\u09a3",wait:"\u0985\u09aa\u09c7\u0995\u09cd\u09b7\u09be",fetch:"\u0986\u09a8\u09c1\u09a8",call:"\u0995\u09b2",return:"\u09ab\u09bf\u09b0\u09c1\u09a8",log:"\u09b2\u0997",trigger:"\u099f\u09cd\u09b0\u09bf\u0997\u09be\u09b0",send:"\u09aa\u09be\u09a0\u09be\u09a8",go:"\u09af\u09be\u09a8",halt:"\u09a5\u09be\u09ae\u09c1\u09a8",throw:"\u09a8\u09bf\u0995\u09cd\u09b7\u09c7\u09aa",continue:"\u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",make:"\u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c1\u09a8",append:"\u099c\u09c1\u09a1\u09bc\u09c1\u09a8",prepend:"\u09b6\u09c1\u09b0\u09c1\u09a4\u09c7 \u09af\u09cb\u0997",focus:"\u09ab\u09cb\u0995\u09be\u09b8",blur:"\u099d\u09be\u09aa\u09b8\u09be",transition:"\u09b8\u0982\u0995\u09cd\u09b0\u09ae\u09a3",settle:"\u09b8\u09cd\u09a5\u09bf\u09b0",measure:"\u09ae\u09be\u09aa\u09c1\u09a8",async:"\u0985\u09cd\u09af\u09be\u09b8\u09bf\u0999\u09cd\u0995",tell:"\u09ac\u09b2\u09c1\u09a8",default:"\u09a1\u09bf\u09ab\u09b2\u09cd\u099f",init:"\u09b6\u09c1\u09b0\u09c1",behavior:"\u0986\u099a\u09b0\u09a3",install:"\u0987\u09a8\u09b8\u09cd\u099f\u09b2",clone:"\u0995\u09cd\u09b2\u09cb\u09a8",swap:"\u09ac\u09a6\u09b2",morph:"\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0",beep:"\u09ac\u09c0\u09aa",break:"\u09ad\u09be\u0999\u09c1\u09a8",copy:"\u0995\u09aa\u09bf",exit:"\u09ac\u09c7\u09b0",js:"\u099c\u09c7\u098f\u09b8",pick:"\u09ac\u09be\u099b\u09c1\u09a8",render:"\u09b0\u09c7\u09a8\u09cd\u09a1\u09be\u09b0",until:"\u09aa\u09b0\u09cd\u09af\u09a8\u09cd\u09a4",breakpoint:"\u09ac\u09cd\u09b0\u09c7\u0995\u09aa\u09af\u09bc\u09c7\u09a8\u09cd\u099f",clear:"\u09aa\u09b0\u09bf\u09b7\u09cd\u0995\u09be\u09b0",close:"\u09ac\u09a8\u09cd\u09a7",open:"\u0996\u09c1\u09b2\u09c1\u09a8",select:"\u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8",socket:"\u09b8\u0995\u09c7\u099f"},modifiers:{to:"\u0995\u09c7",from:"\u09a5\u09c7\u0995\u09c7",into:"\u09a4\u09c7",on:"\u09a4\u09c7",with:"\u09b8\u09be\u09a5\u09c7",by:"\u09a6\u09cd\u09ac\u09be\u09b0\u09be",as:"\u09b9\u09bf\u09b8\u09be\u09ac\u09c7",before:"\u0986\u0997\u09c7",after:"\u09aa\u09b0\u09c7",at:"\u098f",in:"\u098f",over:"\u0989\u09aa\u09b0",between:"\u09ae\u09a7\u09cd\u09af\u09c7",then:"\u09a4\u09be\u09b0\u09aa\u09b0",and:"\u098f\u09ac\u0982",end:"\u09b6\u09c7\u09b7",until:"\u09aa\u09b0\u09cd\u09af\u09a8\u09cd\u09a4",of:"\u09b0"},events:{click:"\u0995\u09cd\u09b2\u09bf\u0995",change:"\u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8",input:"\u0987\u09a8\u09aa\u09c1\u099f",submit:"\u099c\u09ae\u09be",load:"\u09b2\u09cb\u09a1",focus:"\u09ab\u09cb\u0995\u09be\u09b8",blur:"\u099d\u09be\u09aa\u09b8\u09be",reset:"\u09b0\u09bf\u09b8\u09c7\u099f",keydown:"keydown",keyup:"keyup",mouseover:"mouseover",mouseout:"mouseout",scroll:"\u09b8\u09cd\u0995\u09cd\u09b0\u09cb\u09b2",resize:"\u09b0\u09bf\u09b8\u09be\u0987\u099c",every:"\u09aa\u09cd\u09b0\u09a4\u09bf"},logical:{if:"\u09af\u09a6\u09bf",when:"\u09af\u0996\u09a8",where:"\u0995\u09cb\u09a5\u09be\u09af\u09bc",else:"\u09a8\u09a4\u09c1\u09ac\u09be",not:"\u09a8\u09be",and:"\u098f\u09ac\u0982",or:"\u0985\u09a5\u09ac\u09be",is:"\u09b9\u09af\u09bc",exists:"\u0986\u099b\u09c7",has:"\u0986\u099b\u09c7",have:"\u0986\u099b\u09bf",empty:"\u0996\u09be\u09b2\u09bf",true:"\u09b8\u09a4\u09cd\u09af",false:"\u09ae\u09bf\u09a5\u09cd\u09af\u09be",null:"\u09b6\u09c2\u09a8\u09cd\u09af",undefined:"\u0985\u09a8\u09bf\u09b0\u09cd\u09a7\u09be\u09b0\u09bf\u09a4",end:"\u09b6\u09c7\u09b7",then:"\u09a4\u09be\u09b0\u09aa\u09b0",live:"\u09b2\u09be\u0987\u09ad",bind:"\u09ac\u09be\u0987\u09a8\u09cd\u09a1",changes:"\u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09bf\u09a4 \u09b9\u09b2\u09c7"},temporal:{now:"\u098f\u0996\u09a8",seconds:"\u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",milliseconds:"\u09ae\u09bf\u09b2\u09bf\u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",minutes:"\u09ae\u09bf\u09a8\u09bf\u099f",hours:"\u0998\u09a3\u09cd\u099f\u09be",forever:"\u099a\u09bf\u09b0\u0995\u09be\u09b2",times:"\u09ac\u09be\u09b0",s:"\u09b8\u09c7",ms:"\u09ae\u09bf\u09b8\u09c7"},values:{me:"\u0986\u09ae\u09bf",my:"\u0986\u09ae\u09be\u09b0",it:"\u098f\u099f\u09bf",its:"\u098f\u09b0",result:"\u09ab\u09b2\u09be\u09ab\u09b2",event:"\u0998\u099f\u09a8\u09be",target:"\u09b2\u0995\u09cd\u09b7\u09cd\u09af",body:"\u09ac\u09a1\u09bf",you:"\u0986\u09aa\u09a8\u09bf",your:"\u09a4\u09cb\u09ae\u09be\u09b0"},attributes:{class:"\u09b6\u09cd\u09b0\u09c7\u09a3\u09bf",id:"\u0986\u0987\u09a1\u09bf",style:"\u09b6\u09c8\u09b2\u09c0",value:"\u09ae\u09be\u09a8",text:"\u09aa\u09be\u09a0\u09cd\u09af",html:"\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2",disabled:"\u0985\u0995\u09cd\u09b7\u09ae",checked:"\u099a\u09c7\u0995 \u0995\u09b0\u09be"},expressions:{characters:"\u0985\u0995\u09cd\u09b7\u09b0",inclusive:"\u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u09ad\u09c1\u0995\u09cd\u09a4",exclusive:"\u09ac\u09be\u09a6",first:"\u09aa\u09cd\u09b0\u09a5\u09ae",last:"\u09b6\u09c7\u09b7",next:"\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0",previous:"\u0986\u0997\u09c7\u09b0",closest:"\u09a8\u09bf\u0995\u099f\u09a4\u09ae",parent:"\u09ae\u09c2\u09b2",children:"\u09b8\u09a8\u09cd\u09a4\u09be\u09a8",random:"\u098f\u09b2\u09cb\u09ae\u09c7\u09b2\u09cb",length:"\u09a6\u09c8\u09b0\u09cd\u0998\u09cd\u09af",index:"\u09b8\u09c2\u099a\u0995",empty:"\u0996\u09be\u09b2\u09bf","starts with":"\u09a6\u09bf\u09af\u09bc\u09c7_\u09b6\u09c1\u09b0\u09c1","ends with":"\u09a6\u09bf\u09af\u09bc\u09c7_\u09b6\u09c7\u09b7","ignoring case":"\u0995\u09c7\u09b8_\u0989\u09aa\u09c7\u0995\u09cd\u09b7\u09be","sorted by":"\u09a6\u09cd\u09ac\u09be\u09b0\u09be_\u09b8\u09be\u099c\u09be\u09a8\u09cb","mapped to":"\u09a4\u09c7_\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09bf\u09a4","split by":"\u09a6\u09cd\u09ac\u09be\u09b0\u09be_\u09ac\u09bf\u09ad\u0995\u09cd\u09a4","joined by":"\u09a6\u09cd\u09ac\u09be\u09b0\u09be_\u09af\u09c1\u0995\u09cd\u09a4"}},"bn",{allowEnglishFallback:!0}),Xl({commands:{on:"\u0e40\u0e21\u0e37\u0e48\u0e2d",toggle:"\u0e2a\u0e25\u0e31\u0e1a",add:"\u0e40\u0e1e\u0e34\u0e48\u0e21",remove:"\u0e25\u0e1a",set:"\u0e15\u0e31\u0e49\u0e07",get:"\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32",put:"\u0e43\u0e2a\u0e48",take:"\u0e23\u0e31\u0e1a",show:"\u0e41\u0e2a\u0e14\u0e07",hide:"\u0e0b\u0e48\u0e2d\u0e19",increment:"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e48\u0e32",decrement:"\u0e25\u0e14\u0e04\u0e48\u0e32",if:"\u0e16\u0e49\u0e32",else:"\u0e44\u0e21\u0e48\u0e07\u0e31\u0e49\u0e19",repeat:"\u0e17\u0e33\u0e0b\u0e49\u0e33",for:"\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a",while:"\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e35\u0e48",wait:"\u0e23\u0e2d",fetch:"\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",call:"\u0e40\u0e23\u0e35\u0e22\u0e01",return:"\u0e04\u0e37\u0e19\u0e04\u0e48\u0e32",log:"\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01",trigger:"\u0e17\u0e23\u0e34\u0e01\u0e40\u0e01\u0e2d\u0e23\u0e4c",send:"\u0e2a\u0e48\u0e07",go:"\u0e44\u0e1b",halt:"\u0e2b\u0e22\u0e38\u0e14",throw:"\u0e42\u0e22\u0e19",continue:"\u0e15\u0e48\u0e2d\u0e44\u0e1b",make:"\u0e2a\u0e23\u0e49\u0e32\u0e07",append:"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e17\u0e49\u0e32\u0e22",prepend:"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e2b\u0e19\u0e49\u0e32",focus:"\u0e42\u0e1f\u0e01\u0e31\u0e2a",blur:"\u0e40\u0e1a\u0e25\u0e2d",transition:"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e1c\u0e48\u0e32\u0e19",settle:"\u0e04\u0e07\u0e17\u0e35\u0e48",measure:"\u0e27\u0e31\u0e14",async:"\u0e2d\u0e30\u0e0b\u0e34\u0e07\u0e04\u0e4c",tell:"\u0e1a\u0e2d\u0e01",default:"\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",init:"\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",behavior:"\u0e1e\u0e24\u0e15\u0e34\u0e01\u0e23\u0e23\u0e21",install:"\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",clone:"\u0e42\u0e04\u0e25\u0e19",swap:"\u0e2a\u0e25\u0e31\u0e1a\u0e17\u0e35\u0e48",morph:"\u0e41\u0e1b\u0e25\u0e07\u0e23\u0e48\u0e32\u0e07",beep:"\u0e1a\u0e35\u0e4a\u0e1a",break:"\u0e02\u0e31\u0e14\u0e08\u0e31\u0e07\u0e2b\u0e27\u0e30",copy:"\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01",exit:"\u0e2d\u0e2d\u0e01",js:"\u0e40\u0e08\u0e40\u0e2d\u0e2a",pick:"\u0e40\u0e25\u0e37\u0e2d\u0e01",render:"\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25",until:"\u0e08\u0e19\u0e16\u0e36\u0e07",breakpoint:"\u0e08\u0e38\u0e14\u0e1e\u0e31\u0e01",clear:"\u0e40\u0e04\u0e25\u0e35\u0e22\u0e23\u0e4c",close:"\u0e1b\u0e34\u0e14",open:"\u0e40\u0e1b\u0e34\u0e14",select:"\u0e17\u0e33\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22"},modifiers:{to:"\u0e44\u0e1b\u0e22\u0e31\u0e07",from:"\u0e08\u0e32\u0e01",into:"\u0e43\u0e19",on:"\u0e40\u0e21\u0e37\u0e48\u0e2d",with:"\u0e14\u0e49\u0e27\u0e22",by:"\u0e42\u0e14\u0e22",as:"\u0e40\u0e1b\u0e47\u0e19",before:"\u0e01\u0e48\u0e2d\u0e19",after:"\u0e2b\u0e25\u0e31\u0e07",at:"\u0e17\u0e35\u0e48",in:"\u0e43\u0e19",over:"\u0e40\u0e2b\u0e19\u0e37\u0e2d",between:"\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07",then:"\u0e41\u0e25\u0e49\u0e27",and:"\u0e41\u0e25\u0e30",end:"\u0e08\u0e1a",until:"\u0e08\u0e19\u0e16\u0e36\u0e07",of:"\u0e02\u0e2d\u0e07"},events:{click:"\u0e04\u0e25\u0e34\u0e01",change:"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07",input:"\u0e2d\u0e34\u0e19\u0e1e\u0e38\u0e15",submit:"\u0e2a\u0e48\u0e07",load:"\u0e42\u0e2b\u0e25\u0e14",focus:"\u0e42\u0e1f\u0e01\u0e31\u0e2a",blur:"\u0e40\u0e1a\u0e25\u0e2d",reset:"\u0e23\u0e35\u0e40\u0e0b\u0e47\u0e15",keydown:"\u0e01\u0e14\u0e04\u0e35\u0e22\u0e4c",keyup:"\u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e04\u0e35\u0e22\u0e4c",mouseover:"\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e40\u0e02\u0e49\u0e32",mouseout:"\u0e40\u0e21\u0e32\u0e2a\u0e4c\u0e2d\u0e2d\u0e01",scroll:"\u0e40\u0e25\u0e37\u0e48\u0e2d\u0e19",resize:"\u0e1b\u0e23\u0e31\u0e1a\u0e02\u0e19\u0e32\u0e14",every:"\u0e17\u0e38\u0e01"},logical:{if:"\u0e16\u0e49\u0e32",when:"\u0e40\u0e21\u0e37\u0e48\u0e2d",where:"\u0e17\u0e35\u0e48\u0e44\u0e2b\u0e19",else:"\u0e44\u0e21\u0e48\u0e07\u0e31\u0e49\u0e19",not:"\u0e44\u0e21\u0e48",and:"\u0e41\u0e25\u0e30",or:"\u0e2b\u0e23\u0e37\u0e2d",is:"\u0e40\u0e1b\u0e47\u0e19",exists:"\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",has:"\u0e21\u0e35",have:"\u0e21\u0e35",empty:"\u0e27\u0e48\u0e32\u0e07",true:"\u0e08\u0e23\u0e34\u0e07",false:"\u0e40\u0e17\u0e47\u0e08",null:"null",undefined:"\u0e44\u0e21\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14",end:"\u0e08\u0e1a",then:"\u0e41\u0e25\u0e49\u0e27",live:"\u0e2a\u0e14",changes:"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19"},temporal:{now:"\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49",seconds:"\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",milliseconds:"\u0e21\u0e34\u0e25\u0e25\u0e34\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",minutes:"\u0e19\u0e32\u0e17\u0e35",hours:"\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",forever:"\u0e15\u0e25\u0e2d\u0e14\u0e44\u0e1b",times:"\u0e04\u0e23\u0e31\u0e49\u0e07",s:"\u0e27\u0e34",ms:"\u0e21\u0e27"},values:{me:"\u0e09\u0e31\u0e19",my:"\u0e02\u0e2d\u0e07\u0e09\u0e31\u0e19",it:"\u0e21\u0e31\u0e19",its:"\u0e02\u0e2d\u0e07\u0e21\u0e31\u0e19",result:"\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c",event:"\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c",target:"\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",body:"\u0e1a\u0e2d\u0e14\u0e35\u0e49",you:"\u0e04\u0e38\u0e13",your:"\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13"},attributes:{class:"\u0e04\u0e25\u0e32\u0e2a",id:"\u0e44\u0e2d\u0e14\u0e35",style:"\u0e2a\u0e44\u0e15\u0e25\u0e4c",value:"\u0e04\u0e48\u0e32",text:"\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",html:"\u0e40\u0e2d\u0e0a\u0e17\u0e35\u0e40\u0e2d\u0e47\u0e21\u0e41\u0e2d\u0e25",disabled:"\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",checked:"\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e25\u0e49\u0e27"},expressions:{characters:"\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30",inclusive:"\u0e23\u0e27\u0e21",exclusive:"\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19",first:"\u0e41\u0e23\u0e01",last:"\u0e2a\u0e38\u0e14\u0e17\u0e49\u0e32\u0e22",next:"\u0e16\u0e31\u0e14\u0e44\u0e1b",previous:"\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32",closest:"\u0e43\u0e01\u0e25\u0e49\u0e2a\u0e38\u0e14",parent:"\u0e15\u0e49\u0e19\u0e17\u0e32\u0e07",children:"\u0e25\u0e39\u0e01",random:"\u0e2a\u0e38\u0e48\u0e21",length:"\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27",index:"\u0e14\u0e31\u0e0a\u0e19\u0e35",empty:"\u0e25\u0e49\u0e32\u0e07","starts with":"\u0e02\u0e36\u0e49\u0e19\u0e15\u0e49\u0e19\u0e14\u0e49\u0e27\u0e22","ends with":"\u0e25\u0e07\u0e17\u0e49\u0e32\u0e22\u0e14\u0e49\u0e27\u0e22","ignoring case":"\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e15\u0e31\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c","sorted by":"\u0e40\u0e23\u0e35\u0e22\u0e07\u0e15\u0e32\u0e21","mapped to":"\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19","split by":"\u0e41\u0e22\u0e01\u0e14\u0e49\u0e27\u0e22","joined by":"\u0e23\u0e27\u0e21\u0e14\u0e49\u0e27\u0e22"}},"th",{allowEnglishFallback:!0}),Xl({commands:{on:"apabila",tell:"beritahu",trigger:"cetuskan",send:"hantar",take:"ambil",put:"letak",set:"tetapkan",get:"dapatkan",add:"tambah",remove:"buang",toggle:"togol",hide:"sembunyi",show:"tunjuk",if:"jika",unless:"kecuali",repeat:"ulang",for:"untuk",while:"selagi",until:"sehingga",continue:"teruskan",break:"henti",halt:"henti",wait:"tunggu",fetch:"ambil_dari",call:"panggil",return:"pulang",make:"buat",log:"catat",throw:"lempar",catch:"tangkap",measure:"ukur",transition:"peralihan",increment:"tambah_satu",decrement:"kurang_satu",default:"lalai",go:"pergi",pushUrl:"tolak_url",replaceUrl:"ganti_url",copy:"salin",pick:"pilih",beep:"bunyi",js:"js",async:"tak_segerak",render:"papar",swap:"tukar_tempat",morph:"ubah_bentuk",settle:"selesai",append:"tambah_hujung",prepend:"tambah_mula",exit:"keluar",else:"kalau_tidak",focus:"fokus",blur:"kabur",install:"pasang",behavior:"kelakuan",init:"mula",clone:"klon",breakpoint:"titik-henti",clear:"bersihkan",close:"tutup",open:"buka",select:"tandai",socket:"soket"},modifiers:{to:"ke",from:"dari",into:"ke_dalam",with:"dengan",at:"di",in:"dalam",of:"daripada",as:"sebagai",by:"oleh",before:"sebelum",after:"selepas",over:"atas",under:"bawah",between:"antara",through:"melalui",without:"tanpa",on:"pada",then:"kemudian",and:"dan",end:"tamat",until:"sehingga"},events:{click:"click",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"mouseover",mouseout:"mouseout",mousemove:"mousemove",keydown:"keydown",keyup:"keyup",keypress:"keypress",focus:"focus",blur:"blur",change:"change",input:"input",submit:"submit",reset:"reset",load:"load",unload:"unload",resize:"resize",scroll:"scroll",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel",every:"setiap"},logical:{when:"apabila",where:"di_mana",and:"dan",or:"atau",not:"bukan",is:"adalah",exists:"wujud",matches:"sepadan",contains:"mengandungi",includes:"termasuk",equals:"sama",has:"ada",have:"ada",then:"kemudian",else:"kalau_tidak",otherwise:"jika_tidak",end:"tamat",live:"langsung",changes:"berubah",if:"jika",empty:"kosong",true:"benar",false:"salah",null:"null",undefined:"tidak_ditakrifkan"},temporal:{seconds:"saat",second:"saat",milliseconds:"milisaat",millisecond:"milisaat",minutes:"minit",minute:"minit",hours:"jam",hour:"jam",ms:"ms",s:"s",min:"min",h:"j",now:"sekarang",forever:"selamanya",times:"kali"},values:{true:"benar",false:"salah",null:"null",undefined:"tidak_ditakrifkan",it:"ia",its:"nya",me:"saya",my:"saya_punya",myself:"diri_saya",you:"kamu",your:"kamu_punya",yourself:"diri_kamu",element:"elemen",target:"sasaran",detail:"perincian",event:"peristiwa",window:"tetingkap",document:"dokumen",body:"badan",result:"hasil",value:"nilai"},attributes:{class:"kelas",classes:"kelas_kelas",style:"gaya",styles:"gaya_gaya",attribute:"atribut",attributes:"atribut_atribut",property:"sifat",properties:"sifat_sifat",id:"id",value:"nilai",text:"teks",html:"html",disabled:"dilumpuhkan",checked:"ditanda"},expressions:{characters:"aksara",inclusive:"inklusif",exclusive:"eksklusif",first:"pertama",last:"terakhir",next:"seterusnya",previous:"sebelumnya",prev:"sebelum",at:"di",random:"rawak",closest:"terdekat",parent:"induk",children:"anak_anak",within:"dalam",no:"tiada",empty:"kosong",some:"beberapa","starts with":"bermula_dengan","ends with":"berakhir_dengan","ignoring case":"abaikan_huruf_besar_kecil","sorted by":"disusun_mengikut","mapped to":"dipetakan_ke","split by":"dipecah_oleh","joined by":"digabung_oleh",length:"panjang",index:"indeks"}},"ms",{allowEnglishFallback:!0}),Xl({commands:{on:"kapag",tell:"sabihin",trigger:"palitawin",send:"ipadala",take:"kumuha",put:"ilagay",set:"itakda",get:"kunin",add:"idagdag",remove:"alisin",toggle:"palitan",hide:"itago",show:"ipakita",if:"kung",unless:"maliban_kung",repeat:"ulitin",for:"para_sa",while:"habang",until:"hanggang",continue:"magpatuloy",break:"itigil",halt:"huminto",wait:"maghintay",fetch:"kuhanin_mula",call:"tawagin",return:"ibalik",make:"gumawa",log:"itala",throw:"ihagis",catch:"hulihin",measure:"sukatin",transition:"lumipat",increment:"dagdagan",decrement:"bawasan",default:"pamantayan",go:"pumunta",pushUrl:"itulak_url",replaceUrl:"palitan_url",copy:"kopyahin",pick:"pumili",beep:"tunog",js:"js",async:"sabay",render:"irender",swap:"palitan_pwesto",morph:"baguhin",settle:"magpatahimik",append:"idagdag_sa_dulo",prepend:"idagdag_sa_simula",exit:"lumabas",else:"kung_hindi",focus:"ituon",blur:"alisin_tuon",install:"ikabit",behavior:"ugali",init:"simulan",clone:"i-clone",breakpoint:"breakpoint",clear:"burahin",close:"isara",open:"buksan",select:"piliin"},modifiers:{to:"sa",from:"mula_sa",into:"papasok_sa",with:"kasama",at:"sa",in:"sa_loob",of:"ng",as:"bilang",by:"sa_pamamagitan_ng",before:"bago",after:"matapos",over:"sa_ibabaw",under:"sa_ilalim",between:"sa_pagitan",through:"sa_pamamagitan",without:"walang",on:"sa",then:"pagkatapos",and:"at",end:"wakas",until:"hanggang"},events:{click:"click",dblclick:"dblclick",mousedown:"mousedown",mouseup:"mouseup",mouseenter:"mouseenter",mouseleave:"mouseleave",mouseover:"mouseover",mouseout:"mouseout",mousemove:"mousemove",keydown:"keydown",keyup:"keyup",keypress:"keypress",focus:"focus",blur:"blur",change:"change",input:"input",submit:"submit",reset:"reset",load:"load",unload:"unload",resize:"resize",scroll:"scroll",touchstart:"touchstart",touchend:"touchend",touchmove:"touchmove",touchcancel:"touchcancel",every:"bawat"},logical:{when:"kapag",where:"kung_saan",and:"at",or:"o",not:"hindi",is:"ay",exists:"may",matches:"tumutugma",contains:"naglalaman",includes:"naglalaman",equals:"katumbas",has:"may",have:"may",then:"pagkatapos",else:"kung_hindi",otherwise:"kung_hindi_man",end:"wakas",live:"live",changes:"nagbabago",if:"kung",empty:"walang_laman",true:"totoo",false:"mali",null:"wala",undefined:"hindi_tinukoy"},temporal:{seconds:"segundo",second:"segundo",milliseconds:"milisegundo",millisecond:"milisegundo",minutes:"minuto",minute:"minuto",hours:"oras",hour:"oras",ms:"ms",s:"s",min:"min",h:"h",now:"ngayon",forever:"magpakailanman",times:"beses"},values:{true:"totoo",false:"mali",null:"wala",undefined:"hindi_tinukoy",it:"ito",its:"nito",me:"ako",my:"aking",myself:"sarili_ko",you:"ikaw",your:"iyong",yourself:"sarili_mo",element:"elemento",target:"target",detail:"detalye",event:"pangyayari",window:"bintana",document:"dokumento",body:"katawan",result:"resulta",value:"halaga"},attributes:{class:"klase",classes:"mga_klase",style:"estilo",styles:"mga_estilo",attribute:"katangian",attributes:"mga_katangian",property:"ari_arian",properties:"mga_ari_arian",id:"id",value:"halaga",text:"teksto",html:"html",disabled:"hindi_pinagana",checked:"naka_tsek"},expressions:{characters:"karakter",inclusive:"kasama",exclusive:"bukod",first:"una",last:"huli",next:"susunod",previous:"nakaraan",prev:"nakaraan",at:"sa",random:"random",closest:"pinakamalapit",parent:"magulang",children:"mga_anak",within:"sa_loob_ng",no:"walang",empty:"walang_laman",some:"ilan","starts with":"nagsisimula_sa","ends with":"nagtatapos_sa","ignoring case":"huwag_pansinin_ang_case","sorted by":"nakaayos_ayon_sa","mapped to":"binago_sa","split by":"hinati_sa","joined by":"pinagsama_sa",length:"haba",index:"indeks"}},"tl",{allowEnglishFallback:!0}),Xl({commands:{add:"\u05d4\u05d5\u05e1\u05e3",append:"\u05e6\u05e8\u05e3",async:"\u05d0\u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05e0\u05d9",beep:"\u05d1\u05d9\u05e4",break:"\u05e9\u05d1\u05d5\u05e8",call:"\u05e7\u05e8\u05d0",clear:"\u05e0\u05e7\u05d4",continue:"\u05d4\u05de\u05e9\u05da",copy:"\u05d4\u05e2\u05ea\u05e7",decrement:"\u05d4\u05e7\u05d8\u05df",default:"\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc",exit:"\u05e6\u05d0",fetch:"\u05d4\u05d1\u05d0",for:"\u05e2\u05d1\u05d5\u05e8",get:"\u05e7\u05d1\u05dc",go:"\u05dc\u05da",halt:"\u05e2\u05e6\u05d5\u05e8",hide:"\u05d4\u05e1\u05ea\u05e8",if:"\u05d0\u05dd",unless:"\u05d0\u05dc\u05d0",increment:"\u05d4\u05d2\u05d3\u05dc",install:"\u05d4\u05ea\u05e7\u05df",js:"js",log:"\u05e8\u05e9\u05d5\u05dd",make:"\u05e6\u05d5\u05e8",measure:"\u05de\u05d3\u05d5\u05d3",morph:"\u05d4\u05e4\u05d5\u05da",on:"\u05d1",pick:"\u05d1\u05d7\u05e8",put:"\u05e9\u05d9\u05dd",remove:"\u05d4\u05e1\u05e8",render:"\u05e8\u05e0\u05d3\u05e8",repeat:"\u05d7\u05d6\u05d5\u05e8",return:"\u05d4\u05d7\u05d6\u05e8",scroll:"\u05d2\u05dc\u05d5\u05dc",send:"\u05e9\u05dc\u05d7",set:"\u05e7\u05d1\u05e2",settle:"\u05d4\u05ea\u05d9\u05d9\u05e6\u05d1",show:"\u05d4\u05e8\u05d0\u05d4",swap:"\u05d4\u05d7\u05dc\u05e3",take:"\u05e7\u05d7",tell:"\u05d0\u05de\u05d5\u05e8",throw:"\u05d6\u05e8\u05d5\u05e7",toggle:"\u05de\u05ea\u05d2",transition:"\u05de\u05e2\u05d1\u05e8",trigger:"\u05d4\u05e4\u05e2\u05dc",until:"\u05e2\u05d3",wait:"\u05d7\u05db\u05d4",while:"\u05db\u05dc \u05e2\u05d5\u05d3"},modifiers:{after:"\u05d0\u05d7\u05e8\u05d9",before:"\u05dc\u05e4\u05e0\u05d9",from:"\u05de",into:"\u05dc\u05ea\u05d5\u05da",to:"\u05e2\u05dc",with:"\u05e2\u05dd"},events:{blur:"\u05d8\u05e9\u05d8\u05e9",change:"\u05e9\u05d9\u05e0\u05d5\u05d9",click:"\u05dc\u05d7\u05d9\u05e6\u05d4",focus:"\u05de\u05e7\u05d3",input:"\u05e7\u05dc\u05d8",submit:"\u05e9\u05dc\u05d9\u05d7\u05d4"},logical:{and:"\u05d5\u05d2\u05dd",else:"\u05d0\u05d7\u05e8\u05ea",end:"\u05e1\u05d5\u05e3",then:"\u05d0\u05d6",live:"\u05d7\u05d9",bind:"\u05e7\u05e9\u05d5\u05e8",changes:"\u05de\u05e9\u05ea\u05e0\u05d4",when:"\u05db\u05d0\u05e9\u05e8",where:"\u05d0\u05d9\u05e4\u05d4"},temporal:{times:"\u05e4\u05e2\u05de\u05d9\u05dd"},values:{body:"\u05d2\u05d5\u05e3",event:"\u05d0\u05d9\u05e8\u05d5\u05e2",it:"\u05d6\u05d4",its:"\u05e9\u05dc\u05d5",me:"\u05d0\u05e0\u05d9",my:"\u05e9\u05dc\u05d9",result:"\u05ea\u05d5\u05e6\u05d0\u05d4",target:"\u05d9\u05e2\u05d3",you:"\u05d0\u05ea\u05d4",your:"\u05e9\u05dc\u05da"},attributes:{},expressions:{random:"\u05d0\u05e7\u05e8\u05d0\u05d9",characters:"\u05ea\u05d5\u05d5\u05d9\u05dd",inclusive:"\u05db\u05d5\u05dc\u05dc",exclusive:"\u05d1\u05dc\u05e2\u05d3\u05d9",last:"\u05d0\u05d7\u05e8\u05d5\u05df"}},"he",{allowEnglishFallback:!0});var Cc=class e{static register(t,r){e.providers.set(t.toLowerCase(),r)}static unregister(t){e.providers.delete(t.toLowerCase())}static setDefault(t){const r=t.toLowerCase();if("en"!==r&&!e.providers.has(r))throw Error(`Locale '${t}' is not registered. Available locales: ${e.getAvailable().join(", ")}`);e.defaultLocale=r}static getDefault(){return e.defaultLocale}static get(t){const r=(t||e.defaultLocale).toLowerCase();if("en"===r)return e.englishProvider;const n=e.providers.get(r);if(!n)throw Error(`Locale '${r}' is not registered. Available locales: ${e.getAvailable().join(", ")}`);return n}static has(t){const r=t.toLowerCase();return"en"===r||e.providers.has(r)}static getAvailable(){return["en",...Array.from(e.providers.keys())]}static reset(){e.providers.clear(),e.defaultLocale="en"}static registerAll(t){for(const[r,n]of Object.entries(t))e.register(r,n)}};Cc.providers=new Map,Cc.defaultLocale="en",Cc.englishProvider=ec();var Sc=Cc;function Tc(e){return{name:"halt-call-fused-verb-final",description:"Split the swept `halt <operand> call <args>` blob; both verbs clause-final",priority:95,match:{commands:["halt"],requiredRoles:["action","event","patient"],predicate:t=>{const r=t.roles.get("patient");return!!r&&/\bcall\b/.test(r.value)&&!!r.translated&&r.translated.includes(e.callVerb)}},transform:{roleOrder:[],custom:t=>{const r=t.roles.get("patient"),n=t.roles.get("event"),i=t.roles.get("action");let a=(r.translated??r.value).trim();const s="EVENTBLOCKPLACEHOLDER";let o="";a.endsWith(s)&&(a=a.slice(0,-21).trim(),o=" "+s);const l=a.indexOf(e.callVerb),c=a.slice(0,l).trim(),u=a.slice(l+e.callVerb.length).trim();return[c,e.patientMarker,n.translated??n.value,e.eventMarker,i.translated??i.value,e.connective,u,e.patientMarker,e.callVerb].join(" ")+o}}}}function Oc(e){return{name:"pick-range-verb-final",description:"Reassemble the pick range (unit + endpoints + root) adjacent, verb-final",priority:95,match:{commands:["pick"],requiredRoles:["action","patient","destination"],predicate:e=>{const t=e.roles.get("patient"),r=e.roles.get("destination");return!!t&&!!r&&/^\S+\s+\d+$/.test(t.value.trim())&&/^\d+\s+of\s+\S+$/.test(r.value.trim())}},transform:{roleOrder:[],custom:t=>{const r=t.roles.get("patient"),n=t.roles.get("destination"),i=t.roles.get("action"),a=t.roles.get("event"),s=(r.translated??r.value).trim().split(/\s+/),o=s[s.length-1],l=s.slice(0,-1).join(" "),c=n.value.trim().match(/^(\d+)\s+of\s+(\S+)$/);return[c[2],e.genitive,l,o,e.rangeSep,c[1],e.patientMarker,...a?[a.translated??a.value,e.eventMarker]:[],i.translated??i.value].join(" ")}}}}var Lc={en:{code:"en",name:"English",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","source","destination","quantity","duration","method","style"],markers:[{form:"on",role:"event",position:"preposition",required:!0},{form:"to",role:"destination",position:"preposition",required:!1},{form:"into",role:"destination",position:"preposition",required:!1},{form:"from",role:"source",position:"preposition",required:!1},{form:"with",role:"style",position:"preposition",required:!1},{form:"by",role:"quantity",position:"preposition",required:!1},{form:"as",role:"method",position:"preposition",required:!1},{form:"over",role:"duration",position:"preposition",required:!1},{form:"for",role:"duration",position:"preposition",required:!1}]},ja:{code:"ja",name:"\u65e5\u672c\u8a9e",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\u3092",role:"patient",position:"postposition",required:!0},{form:"\u306b",role:"destination",position:"postposition",required:!0},{form:"\u304b\u3089",role:"source",position:"postposition",required:!0},{form:"\u3067",role:"event",position:"postposition",required:!0},{form:"\u3067",role:"style",position:"postposition",required:!1},{form:"\u3068",role:"style",position:"postposition",required:!1},{form:"\u3078",role:"destination",position:"postposition",required:!1}],rules:[{name:"event-handler",description:"Transform event handlers to Japanese SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"],optionalRoles:["patient"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Japanese order",priority:90,match:{commands:["put","\u7f6e\u304f"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Japanese verb-final order",priority:90,match:{commands:["set","\u8a2d\u5b9a"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Japanese verb-final order",priority:90,match:{commands:["bind","\u30d0\u30a4\u30f3\u30c9"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},Tc({callVerb:"\u547c\u3073\u51fa\u3057",patientMarker:"\u3092",eventMarker:"\u3067",connective:"\u305d\u308c\u304b\u3089"}),Oc({genitive:"\u306e",rangeSep:"\u304b\u3089",patientMarker:"\u3092",eventMarker:"\u3067"})]},ko:{code:"ko",name:"\ud55c\uad6d\uc5b4",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\ub97c",role:"patient",position:"postposition",required:!0,alternatives:["\uc744"]},{form:"\uc5d0",role:"destination",position:"postposition",required:!0},{form:"\uc5d0\uc11c",role:"source",position:"postposition",required:!0},{form:"\ud560 \ub54c",role:"event",position:"postposition",required:!0},{form:"\ub85c",role:"style",position:"postposition",required:!1,alternatives:["\uc73c\ub85c"]},{form:"\uc640",role:"style",position:"postposition",required:!1,alternatives:["\uacfc"]},{form:"\ub85c",role:"method",position:"postposition",required:!1,alternatives:["\uc73c\ub85c"]}],rules:[{name:"event-handler",description:"Transform event handlers to Korean SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Korean verb-final order",priority:90,match:{commands:["put","\ub123\ub2e4"],requiredRoles:["action","patient","destination"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Korean verb-final order",priority:90,match:{commands:["set","\uc124\uc815"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Korean verb-final order",priority:90,match:{commands:["bind","\ubc14\uc778\ub4dc"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},Tc({callVerb:"\ud638\ucd9c",patientMarker:"\ub97c",eventMarker:"\ud560 \ub54c",connective:"\uadf8\ub7ec\uba74"}),Oc({genitive:"\uc758",rangeSep:"\ubd80\ud130",patientMarker:"\ub97c",eventMarker:"\ud560 \ub54c"})]},zh:{code:"zh",name:"\u4e2d\u6587",wordOrder:"SVO",adpositionType:"preposition",morphology:"isolating",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u5f53",role:"event",position:"preposition",required:!0},{form:"\u65f6",role:"event",position:"postposition",required:!0},{form:"\u628a",role:"patient",position:"preposition",required:!1},{form:"\u5230",role:"destination",position:"preposition",required:!1},{form:"\u4ece",role:"source",position:"preposition",required:!1},{form:"\u7528",role:"style",position:"preposition",required:!1},{form:"\u7684",role:"method",position:"postposition",required:!1}],rules:[{name:"event-handler-standard",description:"Standard event handler: \u5f53 X \u65f6 Y",priority:100,match:{requiredRoles:["event","action"]},transform:{roleOrder:["event","action","patient"],insertMarkers:!0,custom:(e,t)=>{const r=e.roles.get("event"),n=e.roles.get("action"),i=new Map(e.roles);i.delete("event"),i.delete("action");const a=function(e,t,r){const n=[];for(const i of e){let e=t.find(e=>e.role===i.role);"event"===e?.role&&/^[#.<@[]/.test(i.translated||i.value)&&(e=void 0),"duration"===e?.role&&/^(me|you|it)$/i.test(i.value)&&(e=void 0),e?"preposition"===r?(e.form&&n.push(e.form),n.push(i.translated||i.value)):"postposition"===r?(n.push(i.translated||i.value),e.form&&n.push(e.form)):n.push(i.translated||i.value):n.push(i.translated||i.value)}return n}(function(e,t){const r=[],n=new Set;for(const i of t){const t=e.get(i);t&&(r.push(t),n.add(i))}for(const[t,i]of e)n.has(t)||r.push(i);return r}(i,(t.canonicalOrder||[]).filter(e=>"event"!==e&&"action"!==e)),t.markers,t.adpositionType),s=["\u5f53",r?.translated||r?.value||"","\u65f6"];return n&&s.push(n.translated||n.value),s.push(...a),s.filter(Boolean).join(" ")}}},{name:"ba-construction",description:"BA construction for object-fronting: \u628a X Y",priority:80,match:{commands:["put","set","move"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","action","destination"],insertMarkers:!0}},{name:"bind-to",description:"Bind binds a variable to an element: \u7ed1\u5b9a X \u5230 Y (no \u628a)",priority:90,match:{commands:["bind","\u7ed1\u5b9a"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["action","patient","destination"],custom:e=>{const t=e.roles.get("action"),r=e.roles.get("patient"),n=e.roles.get("destination");return[t?.translated||t?.value||"",r?.translated||r?.value||"","\u5230",n?.translated||n?.value||""].filter(Boolean).join(" ")}}}]},ar:{code:"ar",name:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",wordOrder:"VSO",adpositionType:"preposition",morphology:"fusional",direction:"rtl",canonicalOrder:["action","agent","patient","destination","source"],markers:[{form:"\u0639\u0646\u062f",role:"event",position:"preposition",required:!0},{form:"\u0625\u0644\u0649",role:"destination",position:"preposition",required:!1},{form:"\u0641\u064a",role:"destination",position:"preposition",required:!1},{form:"\u0645\u0646",role:"source",position:"preposition",required:!1},{form:"\u0628\u0640-",role:"style",position:"preposition",required:!1},{form:"\u0645\u0639",role:"style",position:"preposition",required:!1},{form:"\u0643\u0640-",role:"method",position:"preposition",required:!1}],rules:[{name:"event-handler-vso",description:"VSO event handler: VERB TARGET \u0639\u0646\u062f EVENT",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["action","patient","event"],insertMarkers:!0}}]},tr:{code:"tr",name:"T\u00fcrk\u00e7e",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"i",role:"patient",position:"postposition",required:!0,alternatives:["\u0131","u","\u00fc"]},{form:"e",role:"destination",position:"postposition",required:!0,alternatives:["a"]},{form:"den",role:"source",position:"postposition",required:!0,alternatives:["dan"]},{form:"de",role:"event",position:"postposition",required:!0,alternatives:["da"]},{form:"ile",role:"style",position:"postposition",required:!1},{form:"olarak",role:"method",position:"postposition",required:!1}],rules:[{name:"event-handler-sov",description:"SOV event handler",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Turkish verb-final order",priority:90,match:{commands:["put","koy"],requiredRoles:["action","patient","destination"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Turkish verb-final order",priority:90,match:{commands:["set","ayarla"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Turkish verb-final order",priority:90,match:{commands:["bind"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"wait-oblique-verb-final",description:"Keep wait's from-phrase and or-run inside the clause, verb-final",priority:90,match:{commands:["wait","bekle"],requiredRoles:["action","duration","source"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","source","duration","action"],insertMarkers:!0}},{name:"repeat-until-event-verb-final",description:"Keep repeat-until-event's from-phrase before the verb",priority:90,match:{commands:["repeat","tekrarla"],requiredRoles:["action","patient","source"],predicate:e=>/^repeat\s+until\s+event\b/i.test((e.original??"").trim())},transform:{roleOrder:["patient","source","action"],insertMarkers:!0}},Tc({callVerb:"\u00e7a\u011f\u0131r",patientMarker:"i",eventMarker:"de",connective:"ard\u0131ndan"}),Oc({genitive:"nin",rangeSep:"ile",patientMarker:"i",eventMarker:"de"})]},es:{code:"es",name:"Espa\u00f1ol",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"en",role:"event",position:"preposition",required:!0},{form:"a",role:"destination",position:"preposition",required:!1},{form:"hacia",role:"destination",position:"preposition",required:!1},{form:"de",role:"source",position:"preposition",required:!1},{form:"con",role:"style",position:"preposition",required:!1},{form:"por",role:"quantity",position:"preposition",required:!1},{form:"como",role:"method",position:"preposition",required:!1}]},de:{code:"de",name:"Deutsch",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"bei",role:"event",position:"preposition",required:!0},{form:"zu",role:"destination",position:"preposition",required:!1},{form:"in",role:"destination",position:"preposition",required:!1},{form:"von",role:"source",position:"preposition",required:!1},{form:"aus",role:"source",position:"preposition",required:!1},{form:"mit",role:"style",position:"preposition",required:!1},{form:"um",role:"quantity",position:"preposition",required:!1},{form:"als",role:"method",position:"preposition",required:!1}]},fr:{code:"fr",name:"Fran\u00e7ais",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"sur",role:"event",position:"preposition",required:!0},{form:"\u00e0",role:"destination",position:"preposition",required:!1},{form:"dans",role:"destination",position:"preposition",required:!1},{form:"de",role:"source",position:"preposition",required:!1},{form:"avec",role:"style",position:"preposition",required:!1},{form:"par",role:"quantity",position:"preposition",required:!1},{form:"comme",role:"method",position:"preposition",required:!1}]},pt:{code:"pt",name:"Portugu\u00eas",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"em",role:"event",position:"preposition",required:!0},{form:"para",role:"destination",position:"preposition",required:!1},{form:"em",role:"destination",position:"preposition",required:!1},{form:"de",role:"source",position:"preposition",required:!1},{form:"com",role:"style",position:"preposition",required:!1},{form:"por",role:"quantity",position:"preposition",required:!1},{form:"como",role:"method",position:"preposition",required:!1}]},id:{code:"id",name:"Bahasa Indonesia",wordOrder:"SVO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"pada",role:"event",position:"preposition",required:!0},{form:"ke",role:"destination",position:"preposition",required:!1},{form:"dari",role:"source",position:"preposition",required:!1},{form:"dengan",role:"style",position:"preposition",required:!1},{form:"sebagai",role:"method",position:"preposition",required:!1}]},ms:{code:"ms",name:"Bahasa Melayu",wordOrder:"SVO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"apabila",role:"event",position:"preposition",required:!0},{form:"ke",role:"destination",position:"preposition",required:!1},{form:"dari",role:"source",position:"preposition",required:!1},{form:"dengan",role:"style",position:"preposition",required:!1},{form:"sebagai",role:"method",position:"preposition",required:!1}]},qu:{code:"qu",name:"Runasimi",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","source","destination","event","action"],markers:[{form:"ta",role:"patient",position:"postposition",required:!0},{form:"man",role:"destination",position:"postposition",required:!0},{form:"manta",role:"source",position:"postposition",required:!0},{form:"pi",role:"event",position:"postposition",required:!0},{form:"wan",role:"style",position:"postposition",required:!1},{form:"hina",role:"method",position:"postposition",required:!1}],rules:[{name:"wait-oblique-verb-final",description:"Keep wait's from-phrase and or-run inside the clause, verb-final",priority:90,match:{commands:["wait","suyay"],requiredRoles:["action","duration","source"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","source","duration","action"],insertMarkers:!0}},Tc({callVerb:"qayay",patientMarker:"ta",eventMarker:"pi",connective:"chayqa"}),Oc({genitive:"pa",rangeSep:"kama",patientMarker:"ta",eventMarker:"pi"})]},sw:{code:"sw",name:"Kiswahili",wordOrder:"SVO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"kwenye",role:"event",position:"preposition",required:!0},{form:"kwa",role:"destination",position:"preposition",required:!1},{form:"kutoka",role:"source",position:"preposition",required:!1},{form:"na",role:"style",position:"preposition",required:!1},{form:"kuwa",role:"method",position:"preposition",required:!1}]},bn:{code:"bn",name:"\u09ac\u09be\u0982\u09b2\u09be",wordOrder:"SOV",adpositionType:"postposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\u0995\u09c7",role:"patient",position:"postposition",required:!0},{form:"\u09a4\u09c7",role:"destination",position:"postposition",required:!0},{form:"\u098f",role:"event",position:"postposition",required:!0},{form:"\u09a5\u09c7\u0995\u09c7",role:"source",position:"postposition",required:!0},{form:"\u09a6\u09bf\u09af\u09bc\u09c7",role:"style",position:"postposition",required:!1},{form:"\u099c\u09a8\u09cd\u09af",role:"duration",position:"postposition",required:!1}],rules:[{name:"event-handler",description:"Transform event handlers to Bengali SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"],optionalRoles:["patient"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Bengali verb-final order",priority:90,match:{commands:["put","\u09b0\u09be\u0996\u09c1\u09a8"],requiredRoles:["action","patient","destination"],predicate:e=>!e.roles.has("event")},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Bengali verb-final order",priority:90,match:{commands:["set","\u09b8\u09c7\u099f"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Bengali verb-final order",priority:90,match:{commands:["bind","\u09ac\u09be\u0987\u09a8\u09cd\u09a1"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},Tc({callVerb:"\u0995\u09b2",patientMarker:"\u0995\u09c7",eventMarker:"\u098f",connective:"\u09a4\u09be\u09b0\u09aa\u09b0"}),Oc({genitive:"\u09b0",rangeSep:"\u09a5\u09c7\u0995\u09c7",patientMarker:"\u0995\u09c7",eventMarker:"\u098f"})]},it:{code:"it",name:"Italiano",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"su",role:"event",position:"preposition",required:!0},{form:"in",role:"destination",position:"preposition",required:!1},{form:"a",role:"destination",position:"preposition",required:!1},{form:"da",role:"source",position:"preposition",required:!1},{form:"di",role:"source",position:"preposition",required:!1},{form:"con",role:"style",position:"preposition",required:!1},{form:"come",role:"method",position:"preposition",required:!1}]},ru:{code:"ru",name:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u043f\u0440\u0438",role:"event",position:"preposition",required:!0},{form:"\u0432",role:"destination",position:"preposition",required:!1},{form:"\u043d\u0430",role:"destination",position:"preposition",required:!1},{form:"\u043a",role:"destination",position:"preposition",required:!1},{form:"\u0438\u0437",role:"source",position:"preposition",required:!1},{form:"\u043e\u0442",role:"source",position:"preposition",required:!1},{form:"\u0441",role:"source",position:"preposition",required:!1},{form:"\u0441",role:"style",position:"preposition",required:!1},{form:"\u0441\u043e",role:"style",position:"preposition",required:!1},{form:"\u043a\u0430\u043a",role:"method",position:"preposition",required:!1}]},uk:{code:"uk",name:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u043f\u0440\u0438",role:"event",position:"preposition",required:!0},{form:"\u0432",role:"destination",position:"preposition",required:!1},{form:"\u043d\u0430",role:"destination",position:"preposition",required:!1},{form:"\u0434\u043e",role:"destination",position:"preposition",required:!1},{form:"\u0437",role:"source",position:"preposition",required:!1},{form:"\u0432\u0456\u0434",role:"source",position:"preposition",required:!1},{form:"\u0456\u0437",role:"source",position:"preposition",required:!1},{form:"\u0437",role:"style",position:"preposition",required:!1},{form:"\u0456\u0437",role:"style",position:"preposition",required:!1},{form:"\u044f\u043a",role:"method",position:"preposition",required:!1}]},vi:{code:"vi",name:"Ti\u1ebfng Vi\u1ec7t",wordOrder:"SVO",adpositionType:"preposition",morphology:"isolating",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"khi",role:"event",position:"preposition",required:!0},{form:"v\u00e0o",role:"destination",position:"preposition",required:!1},{form:"cho",role:"destination",position:"preposition",required:!1},{form:"\u0111\u1ebfn",role:"destination",position:"preposition",required:!1},{form:"t\u1eeb",role:"source",position:"preposition",required:!1},{form:"kh\u1ecfi",role:"source",position:"preposition",required:!1},{form:"v\u1edbi",role:"style",position:"preposition",required:!1},{form:"nh\u01b0",role:"method",position:"preposition",required:!1}]},hi:{code:"hi",name:"\u0939\u093f\u0928\u094d\u0926\u0940",wordOrder:"SOV",adpositionType:"postposition",morphology:"fusional",direction:"ltr",canonicalOrder:["patient","event","action"],markers:[{form:"\u0915\u094b",role:"patient",position:"postposition",required:!0},{form:"\u092e\u0947\u0902",role:"destination",position:"postposition",required:!0},{form:"\u092a\u0930",role:"destination",position:"postposition",required:!1},{form:"\u092a\u0930",role:"event",position:"postposition",required:!0},{form:"\u0938\u0947",role:"source",position:"postposition",required:!0},{form:"\u0938\u0947",role:"style",position:"postposition",required:!1},{form:"\u0938\u093e\u0925",role:"style",position:"postposition",required:!1},{form:"\u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902",role:"method",position:"postposition",required:!1}],rules:[{name:"event-handler",description:"Transform event handlers to Hindi SOV order",priority:100,match:{commands:["on"],requiredRoles:["event","action"],optionalRoles:["patient"]},transform:{roleOrder:["patient","event","action"],insertMarkers:!0}},{name:"put-into",description:"Transform put X into Y to Hindi verb-final order",priority:90,match:{commands:["put","\u0930\u0916\u0947\u0902"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"set-to",description:"Transform set X to Y to Hindi verb-final order",priority:90,match:{commands:["set","\u0938\u0947\u091f"],requiredRoles:["action","patient","destination"],predicate:e=>!/(^|\s)end$/i.test((e.original??"").trim())},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},{name:"bind-to",description:"Transform bind $var to #el to Hindi verb-final order",priority:90,match:{commands:["bind","\u092c\u093e\u0907\u0902\u0921","\u092c\u093e\u0902\u0927\u0947\u0902"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["patient","destination","action"],insertMarkers:!0}},Tc({callVerb:"\u0915\u0949\u0932",patientMarker:"\u0915\u094b",eventMarker:"\u092a\u0930",connective:"\u092b\u093f\u0930"}),Oc({genitive:"\u0915\u093e",rangeSep:"\u0938\u0947",patientMarker:"\u0915\u094b",eventMarker:"\u092a\u0930"})]},tl:{code:"tl",name:"Tagalog",wordOrder:"VSO",adpositionType:"preposition",morphology:"agglutinative",direction:"ltr",canonicalOrder:["action","agent","patient","destination","source"],markers:[{form:"kapag",role:"event",position:"preposition",required:!0},{form:"sa",role:"destination",position:"preposition",required:!1},{form:"mula_sa",role:"source",position:"preposition",required:!1},{form:"nang",role:"style",position:"preposition",required:!1},{form:"bilang",role:"method",position:"preposition",required:!1}],rules:[{name:"event-handler-vso",description:"VSO event handler: VERB TARGET kapag EVENT",priority:100,match:{commands:["on"],requiredRoles:["event","action"]},transform:{roleOrder:["action","patient","event"],insertMarkers:!0}}]},th:{code:"th",name:"\u0e44\u0e17\u0e22",wordOrder:"SVO",adpositionType:"preposition",morphology:"isolating",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u0e40\u0e21\u0e37\u0e48\u0e2d",role:"event",position:"preposition",required:!0},{form:"\u0e43\u0e19",role:"destination",position:"preposition",required:!1},{form:"\u0e44\u0e1b\u0e22\u0e31\u0e07",role:"destination",position:"preposition",required:!1},{form:"\u0e08\u0e32\u0e01",role:"source",position:"preposition",required:!1},{form:"\u0e14\u0e49\u0e27\u0e22",role:"style",position:"preposition",required:!1},{form:"\u0e40\u0e1b\u0e47\u0e19",role:"method",position:"preposition",required:!1}]},pl:{code:"pl",name:"Polski",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"ltr",canonicalOrder:["event","action","patient","destination"],markers:[{form:"gdy",role:"event",position:"preposition",required:!0},{form:"przy",role:"event",position:"preposition",required:!1},{form:"do",role:"destination",position:"preposition",required:!1},{form:"w",role:"destination",position:"preposition",required:!1},{form:"na",role:"destination",position:"preposition",required:!1},{form:"z",role:"source",position:"preposition",required:!1},{form:"od",role:"source",position:"preposition",required:!1},{form:"ze",role:"source",position:"preposition",required:!1},{form:"z",role:"style",position:"preposition",required:!1},{form:"ze",role:"style",position:"preposition",required:!1},{form:"jako",role:"method",position:"preposition",required:!1}]},he:{code:"he",name:"\u05e2\u05d1\u05e8\u05d9\u05ea",wordOrder:"SVO",adpositionType:"preposition",morphology:"fusional",direction:"rtl",canonicalOrder:["event","action","patient","destination"],markers:[{form:"\u05d1",role:"event",position:"preposition",required:!0},{form:"\u05e2\u05dc",role:"destination",position:"preposition",required:!1},{form:"\u05d0\u05dc",role:"destination",position:"preposition",required:!1},{form:"\u05dc",role:"destination",position:"preposition",required:!1},{form:"\u05d0\u05ea",role:"patient",position:"preposition",required:!1},{form:"\u05de",role:"source",position:"preposition",required:!1},{form:"\u05de\u05df",role:"source",position:"preposition",required:!1},{form:"\u05e2\u05dd",role:"style",position:"preposition",required:!1},{form:"\u05db",role:"method",position:"preposition",required:!1}],rules:[{name:"bind-to",description:"Bind binds a variable to an element: \u05e7\u05e9\u05d5\u05e8 X \u05dc Y",priority:90,match:{commands:["bind","\u05e7\u05e9\u05d5\u05e8"],requiredRoles:["action","patient","destination"]},transform:{roleOrder:["action","patient","destination"],custom:e=>{const t=e.roles.get("action"),r=e.roles.get("patient"),n=e.roles.get("destination");return[t?.translated||t?.value||"",r?.translated||r?.value||"","\u05dc",n?.translated||n?.value||""].filter(Boolean).join(" ")}}}]}};function jc(e){return Lc[e]}function qc(e){const t={};for(const[r,n]of Object.entries(e.words))t[n]=r;const r={};if(e.categories)for(const[t,n]of Object.entries(e.categories)){r[t]={};for(const[e,i]of Object.entries(n))r[t][i]=e}const n={source:e.target,target:e.source,words:t};return Object.keys(r).length>0&&(n.categories=r),n}function Pc(e,t,r,n){const i={},a={};for(const r of["commands","modifiers","events","logical","temporal","values","attributes"]){const n=e[r],s=t[r];if(n&&s){a[r]={};for(const[e,t]of Object.entries(n)){const n=s[e];n&&t!==n&&(i[t]=n,a[r][t]=n)}}}return{source:r,target:n,words:i,categories:a}}qc(Pc(nc,pc,"ja","zh")),qc(Pc(dc,nc,"ko","ja")),qc({source:"es",target:"pt",words:{en:"em",decir:"dizer",disparar:"disparar",enviar:"enviar",tomar:"pegar",poner:"colocar",establecer:"definir",obtener:"obter",agregar:"adicionar",quitar:"remover",alternar:"alternar",ocultar:"esconder",mostrar:"mostrar",si:"se",menos:"a menos",repetir:"repetir",para:"para",mientras:"enquanto",hasta:"at\u00e9",continuar:"continuar",romper:"parar",detener:"parar",esperar:"esperar",buscar:"buscar",llamar:"chamar",retornar:"retornar",hacer:"fazer",registrar:"registrar",lanzar:"lan\u00e7ar",atrapar:"capturar",medir:"medir","transici\u00f3n":"transi\u00e7\u00e3o",incrementar:"incrementar",decrementar:"decrementar",predeterminar:"padr\u00e3o",ir:"ir",copiar:"copiar",escoger:"escolher",intercambiar:"trocar",transformar:"transformar","a\u00f1adir":"anexar",salir:"sair",a:"para",de:"de",dentro:"em",con:"com",como:"como",por:"por",clic:"clique",cambio:"mudan\u00e7a",entrada:"entrada","env\u00edo":"envio",carga:"carregar",enfoque:"foco",desenfoque:"desfoque",verdadero:"verdadeiro",falso:"falso",y:"e",o:"ou",no:"n\u00e3o",es:"\u00e9",segundos:"segundos",milisegundos:"milissegundos",nulo:"nulo",indefinido:"indefinido","vac\u00edo":"vazio"},categories:{commands:{en:"em",decir:"dizer",tomar:"pegar",poner:"colocar",establecer:"definir",obtener:"obter",agregar:"adicionar",quitar:"remover",ocultar:"esconder",si:"se",mientras:"enquanto",hasta:"at\u00e9",romper:"parar",detener:"parar",llamar:"chamar",hacer:"fazer",lanzar:"lan\u00e7ar",atrapar:"capturar",escoger:"escolher",intercambiar:"trocar","a\u00f1adir":"anexar",salir:"sair"},events:{clic:"clique",cambio:"mudan\u00e7a",carga:"carregar",enfoque:"foco",desenfoque:"desfoque"},logical:{verdadero:"verdadeiro",y:"e",o:"ou",no:"n\u00e3o",es:"\u00e9"}}}),Sc.register("en",ec()),Sc.register("es",rc),Sc.register("ja",ic),Sc.register("fr",sc),Sc.register("de",lc),Sc.register("ar",uc),Sc.register("ko",mc),Sc.register("zh",hc),Sc.register("tr",yc),Sc.register("id",vc),Sc.register("pt",Ac),Sc.register("qu",wc),Sc.register("sw",Ec);let Nc="en";const Rc=qa($n,Ii,za,Ha,zi,Tn,Ya),Ic=function(e,t){const r=new Ea(null);for(const t of e)r.register(t);return new ja({registry:r,expressionRegistry:t.expressionRegistry,enableAsyncCommands:t.enableAsyncCommands??!0,commandTimeout:t.commandTimeout??1e4,enableErrorReporting:t.enableErrorReporting??!0})}([Ps(),Hs(),oo(),lo(),mo(),ho(),vo(),bo(),Eo(),Ao(),So(),Oo(),Po(),No(),Mo(),zo(),Ho(),Wo(),Bo(),Do(),Uo(),Qo(),Xo(),rl(),nl(),il(),sl(),ul(),hl(),gl(),vl(),xl(),Al(),Cl(),Sl(),Tl(),Ol(),Ll(),Pl(),Rl(),Il(),Ml(),jl(),ql(),$l(),_l(),new zl,Wl(),Bl(),new Fl,new Dl],{expressionRegistry:Rc});function Mc(e){const t=function(){if("en"!==Nc)return Sc.get(Nc)}();return Ar(e,t?{keywords:t}:void 0)}const $c={parse:e=>Mc(e),execute:async(e,t)=>{const r=Mr(t),n=Mc(e);if(!n.success||!n.node)throw Error(n.error?.message||"Parse failed");return await Ic.execute(n.node,r)}},_c=function(e){return new Pa(e)}($c),zc={en:{},es:tc,ja:nc,fr:ac,de:oc,ar:cc,ko:dc,zh:pc,tr:fc,id:gc,pt:xc,qu:bc,sw:kc},Vc={getLocale:()=>Nc,setLocale(e){if(Sc.has(e)){if(Nc=e,Sc.setDefault(e),"undefined"!=typeof document){document.documentElement.setAttribute("lang",e);const t=jc(e);"rtl"===t?.direction?document.documentElement.setAttribute("dir","rtl"):document.documentElement.setAttribute("dir","ltr")}}else console.warn(`Locale '${e}' not registered. Available: ${Sc.getAvailable().join(", ")}`)},getAvailableLocales:()=>Sc.getAvailable(),detectAndSetLocale(){if("undefined"==typeof navigator)return"en";const e=navigator.languages||[navigator.language];for(const t of e){const e=t.split("-")[0].toLowerCase();if(Sc.has(e))return this.setLocale(e),e}return"en"},registerLocale(e,t){Sc.register(e,t)},getProfile:jc,getSupportedGrammarLocales:function(){return Object.keys(Lc)},profiles:Lc,dictionaries:zc,createKeywordProvider:Xl},Hc={runtime:$c,parse:e=>Mc(e),compile:e=>{const t=performance.now();try{const r=Mc(e);return{success:r.success,ast:r.node,errors:r.errors??(r.error?[r.error]:[]),tokens:r.tokens||[],compilationTime:performance.now()-t}}catch(e){return{success:!1,ast:void 0,errors:[{message:e instanceof Error?e.message:e+"",line:1,column:1}],tokens:[],compilationTime:performance.now()-t}}},execute:async(e,t)=>{const r=Mr(t);if("string"==typeof e){const t=Mc(e);if(!t.success||!t.node)throw Error(t.error?.message||"Parse failed");return await Ic.execute(t.node,r)}if(e&&"object"==typeof e)return await Ic.execute(e,r);throw Error("execute() requires a code string or compiled AST")},run:async(e,t)=>{const r=Mr(t),n=Mc(e);if(!n.success||!n.node)throw Error(n.error?.message||"Parse failed");return await Ic.execute(n.node,r)},evaluate:async(e,t)=>Hc.run(e,t),processNode:e=>{e===document?_c.scanAndProcessAll():e instanceof HTMLElement&&_c.processElement(e)},process:e=>Hc.processNode(e),createContext:Ir,attributeProcessor:_c,version:"1.1.0-classic-i18n",i18n:Vc,commands:["add","remove","toggle","put","hide","show","make","if","unless","repeat","break","continue","halt","return","exit","throw","set","get","increment","decrement","default","wait","fetch","trigger","send","transition","measure","settle","take","log","tell","call","copy","pick","beep","js","go","install","append","prepend","render","pseudo-command"],locales:["en","es","ja","fr","de","ar","ko","zh","tr","id","pt","qu","sw"],eval:async(e,t)=>$c.execute(e,t),init:e=>{!1!==e?.autoDetectLocale&&Vc.detectAndSetLocale(),_c.init()}};"undefined"!=typeof window&&(window.hyperfixi=Hc,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{Hc.init()}):Hc.init());var Wc=Object.freeze({__proto__:null,conversion:Tn,conversionExpressions:Tn,createCommonRegistry:function(){return qa($n,Ii,za,Ha,Tn,Ya)},createCoreRegistry:function(){return qa($n,Ii,za,Ha)},createExpressionRegistry:qa,createFullExpressionRegistry:function(){return qa($n,Ii,Tn,Ya,zi,za,Ha)},createFullRegistry:function(){return qa($n,Ii,za,Ha,Tn,Ya,zi)},logical:Ii,logicalExpressions:Ii,mathematical:Ha,positional:Ya,positionalExpressions:Ya,properties:zi,propertiesExpressions:zi,references:$n,referencesExpressions:$n,special:za,specialExpressions:za});return Hc}();
2
2
  //# sourceMappingURL=hyperfixi-classic-i18n.js.map