@testspectra/react 1.2.22 → 1.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/setup.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -57,7 +57,7 @@ function matchesUrlPattern(pattern, url) {
|
|
|
57
57
|
if (pattern.includes("*")) {
|
|
58
58
|
const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*");
|
|
59
59
|
try {
|
|
60
|
-
const regex = new RegExp(escaped
|
|
60
|
+
const regex = new RegExp(`^${escaped}(?:[?#].*)?$`, "i");
|
|
61
61
|
return regex.test(url);
|
|
62
62
|
} catch {
|
|
63
63
|
}
|
package/dist/setup.js
CHANGED
|
@@ -12,7 +12,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
12
12
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BR(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],o=!0,i=!1,a,s;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(n.push(a.value),!(t&&n.length===t));o=!0);}catch(l){i=!0,s=l}finally{try{!o&&r.return!=null&&r.return()}finally{if(i)throw s}}return n}}function FR(e){if(Array.isArray(e))return e}function UR(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ef(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
13
13
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(a)throw s}}}}function Ef(e,t){if(e){if(typeof e=="string")return bf(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return bf(e,t)}}function bf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Ge=[],vf=hf.default.keys();for(Fi=0;Fi<vf.length;Fi++)if(Ui=vf[Fi],ji=hf.default.get(Ui),ji)for(us=[].concat(ji.baseConcepts,ji.relatedConcepts),$i=0;$i<us.length;$i++)cs=us[$i],cs.module==="HTML"&&(function(){var e=cs.concept;if(e){var t=Ge.find(function(i){return(0,yf.dequal)(i,e)}),r;t?r=t[1]:r=[];for(var n=!0,o=0;o<r.length;o++)if(r[o]===Ui){n=!1;break}n&&r.push(Ui),Ge.push([e,r])}})();var Ui,ji,us,cs,$i,Fi,ds={entries:function(){return Ge},forEach:function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=UR(Ge),o;try{for(n.s();!(o=n.n()).done;){var i=ls(o.value,2),a=i[0],s=i[1];t.call(r,s,a,Ge)}}catch(l){n.e(l)}finally{n.f()}},get:function(t){var r=Ge.find(function(n){return t.name===n[0].name&&(0,yf.dequal)(t.attributes,n[0].attributes)});return r&&r[1]},has:function(t){return!!ds.get(t)},keys:function(){return Ge.map(function(t){var r=ls(t,1),n=r[0];return n})},values:function(){return Ge.map(function(t){var r=ls(t,2),n=r[1];return n})}},jR=(0,LR.default)(ds,ds.entries());Hi.default=jR});var Sf=p(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.default=void 0;var $R=Tf(Ct()),Pf=Tf(Bi());function Tf(e){return e&&e.__esModule?e:{default:e}}function ps(e,t){return WR(e)||VR(e,t)||Rf(e,t)||HR()}function HR(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
14
14
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VR(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],o=!0,i=!1,a,s;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(n.push(a.value),!(t&&n.length===t));o=!0);}catch(l){i=!0,s=l}finally{try{!o&&r.return!=null&&r.return()}finally{if(i)throw s}}return n}}function WR(e){if(Array.isArray(e))return e}function zR(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Rf(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
15
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(a)throw s}}}}function Rf(e,t){if(e){if(typeof e=="string")return _f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _f(e,t)}}function _f(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var rt=[],Cf=Pf.default.keys();for(Vi=0;Vi<Cf.length;Vi++)if(fs=Cf[Vi],Wi=Pf.default.get(fs),zi=[],Wi){for(ms=[].concat(Wi.baseConcepts,Wi.relatedConcepts),Ki=0;Ki<ms.length;Ki++)bs=ms[Ki],bs.module==="HTML"&&(vs=bs.concept,vs!=null&&zi.push(vs));zi.length>0&&rt.push([fs,zi])}var fs,Wi,zi,ms,bs,vs,Ki,Vi,ys={entries:function(){return rt},forEach:function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=zR(rt),o;try{for(n.s();!(o=n.n()).done;){var i=ps(o.value,2),a=i[0],s=i[1];t.call(r,s,a,rt)}}catch(l){n.e(l)}finally{n.f()}},get:function(t){var r=rt.find(function(n){return n[0]===t});return r&&r[1]},has:function(t){return!!ys.get(t)},keys:function(){return rt.map(function(t){var r=ps(t,1),n=r[0];return n})},values:function(){return rt.map(function(t){var r=ps(t,2),n=r[1];return n})}},KR=(0,$R.default)(ys,ys.entries());Gi.default=KR});var xf=p(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.roles=me.roleElements=me.elementRoles=me.dom=me.aria=void 0;var GR=sr(Rc()),XR=sr(qc()),QR=sr(Bi()),YR=sr(wf()),JR=sr(Sf());function sr(e){return e&&e.__esModule?e:{default:e}}var ZR=GR.default;me.aria=ZR;var e0=XR.default;me.dom=e0;var t0=QR.default;me.roles=t0;var r0=YR.default;me.elementRoles=r0;var n0=JR.default;me.roleElements=n0});var qf=p((LI,Xi)=>{var hs=(function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function o(a,s){if(!n[a]){n[a]={};for(var l=0;l<a.length;l++)n[a][a.charAt(l)]=l}return n[a][s]}var i={compressToBase64:function(a){if(a==null)return"";var s=i._compress(a,6,function(l){return t.charAt(l)});switch(s.length%4){default:case 0:return s;case 1:return s+"===";case 2:return s+"==";case 3:return s+"="}},decompressFromBase64:function(a){return a==null?"":a==""?null:i._decompress(a.length,32,function(s){return o(t,a.charAt(s))})},compressToUTF16:function(a){return a==null?"":i._compress(a,15,function(s){return e(s+32)})+" "},decompressFromUTF16:function(a){return a==null?"":a==""?null:i._decompress(a.length,16384,function(s){return a.charCodeAt(s)-32})},compressToUint8Array:function(a){for(var s=i.compress(a),l=new Uint8Array(s.length*2),u=0,c=s.length;u<c;u++){var d=s.charCodeAt(u);l[u*2]=d>>>8,l[u*2+1]=d%256}return l},decompressFromUint8Array:function(a){if(a==null)return i.decompress(a);for(var s=new Array(a.length/2),l=0,u=s.length;l<u;l++)s[l]=a[l*2]*256+a[l*2+1];var c=[];return s.forEach(function(d){c.push(e(d))}),i.decompress(c.join(""))},compressToEncodedURIComponent:function(a){return a==null?"":i._compress(a,6,function(s){return r.charAt(s)})},decompressFromEncodedURIComponent:function(a){return a==null?"":a==""?null:(a=a.replace(/ /g,"+"),i._decompress(a.length,32,function(s){return o(r,a.charAt(s))}))},compress:function(a){return i._compress(a,16,function(s){return e(s)})},_compress:function(a,s,l){if(a==null)return"";var u,c,d={},m={},y="",P="",C="",T=2,f=3,g=2,w=[],h=0,E=0,q;for(q=0;q<a.length;q+=1)if(y=a.charAt(q),Object.prototype.hasOwnProperty.call(d,y)||(d[y]=f++,m[y]=!0),P=C+y,Object.prototype.hasOwnProperty.call(d,P))C=P;else{if(Object.prototype.hasOwnProperty.call(m,C)){if(C.charCodeAt(0)<256){for(u=0;u<g;u++)h=h<<1,E==s-1?(E=0,w.push(l(h)),h=0):E++;for(c=C.charCodeAt(0),u=0;u<8;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}else{for(c=1,u=0;u<g;u++)h=h<<1|c,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=0;for(c=C.charCodeAt(0),u=0;u<16;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}T--,T==0&&(T=Math.pow(2,g),g++),delete m[C]}else for(c=d[C],u=0;u<g;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1;T--,T==0&&(T=Math.pow(2,g),g++),d[P]=f++,C=String(y)}if(C!==""){if(Object.prototype.hasOwnProperty.call(m,C)){if(C.charCodeAt(0)<256){for(u=0;u<g;u++)h=h<<1,E==s-1?(E=0,w.push(l(h)),h=0):E++;for(c=C.charCodeAt(0),u=0;u<8;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}else{for(c=1,u=0;u<g;u++)h=h<<1|c,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=0;for(c=C.charCodeAt(0),u=0;u<16;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}T--,T==0&&(T=Math.pow(2,g),g++),delete m[C]}else for(c=d[C],u=0;u<g;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1;T--,T==0&&(T=Math.pow(2,g),g++)}for(c=2,u=0;u<g;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1;for(;;)if(h=h<<1,E==s-1){w.push(l(h));break}else E++;return w.join("")},decompress:function(a){return a==null?"":a==""?null:i._decompress(a.length,32768,function(s){return a.charCodeAt(s)})},_decompress:function(a,s,l){var u=[],c,d=4,m=4,y=3,P="",C=[],T,f,g,w,h,E,q,R={val:l(0),position:s,index:1};for(T=0;T<3;T+=1)u[T]=T;for(g=0,h=Math.pow(2,2),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;switch(c=g){case 0:for(g=0,h=Math.pow(2,8),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;q=e(g);break;case 1:for(g=0,h=Math.pow(2,16),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;q=e(g);break;case 2:return""}for(u[3]=q,f=q,C.push(q);;){if(R.index>a)return"";for(g=0,h=Math.pow(2,y),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;switch(q=g){case 0:for(g=0,h=Math.pow(2,8),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;u[m++]=e(g),q=m-1,d--;break;case 1:for(g=0,h=Math.pow(2,16),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;u[m++]=e(g),q=m-1,d--;break;case 2:return C.join("")}if(d==0&&(d=Math.pow(2,y),y++),u[q])P=u[q];else if(q===m)P=f+f.charAt(0);else return null;C.push(P),u[m++]=f+P.charAt(0),d--,f=P,d==0&&(d=Math.pow(2,y),y++)}}};return i})();typeof define=="function"&&define.amd?define(function(){return hs}):typeof Xi<"u"&&Xi!=null?Xi.exports=hs:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return hs})});var qa=null;function ol(e){qa=e}function Pe(){if(!qa)throw new Error("No active driver bound to worker runtime");return qa}var Ot={activePlatform:"web",configuredBaseUrl:"http://localhost:3000",driverServerUrl:"tcp://127.0.0.1:8200",defaultElementWaitMs:5e3,defaultNavigationWaitMs:1e4,defaultPollIntervalMs:20,defaultReadyPollIntervalMs:50},Ie=null;function It(){if(Ie)return Ie;if(globalThis.__TESTSPECTRA_CONFIG__)return Ie=globalThis.__TESTSPECTRA_CONFIG__,Ie;if(typeof process<"u"&&process.env?.TESTSPECTRA_CONFIG)try{return Ie=JSON.parse(process.env.TESTSPECTRA_CONFIG),Ie}catch{}return Ie={rootDir:typeof process<"u"?process.cwd():"",testFilePath:"",activePlatform:Ot.activePlatform,configuredBaseUrl:Ot.configuredBaseUrl,cdpWsUrl:"",driverServerUrl:Ot.driverServerUrl,manifest:{page_objects:[],fixtures:[],steps:[],actions:[],global_hooks:[],suite_hooks:{}}},Ie}var il=null;function al(e,t,r,n){il&&il(e,t,r,n)}function xr(){return It().implicitWaitMs??Ot.defaultElementWaitMs}function L(){return Math.min(xr(),2e3)}function Sr(e,t){console.log(`[${e}] ${t}`)}async function A(e,t,r){let n=It(),o=globalThis.__CURRENT_TEST_TITLE__||globalThis.__CURRENT_TEST_ID__||"",i=globalThis.__TESTSPECTRA_WORKER_ID__;o&&!t.test&&(t.test=o),i!==void 0&&t.workerId===void 0&&(t.workerId=i);let a=JSON.stringify(t);Sr("TESTSPECTRA_STEP_START",a);let s=Date.now();try{let l=await r(),u=Date.now()-s;Sr("TESTSPECTRA_STEP_PASS",`${a} (${u}ms)`),al(`step:${t.key}`,e,u,{test:o,target:t.target});let c=n.stepDelayMs||0;return c>0&&await new Promise(d=>setTimeout(d,c)),l}catch(l){let u=Date.now()-s;throw Sr("TESTSPECTRA_STEP_FAIL",`${a} (${u}ms)`),al(`step:${t.key}`,e,u,{test:o,target:t.target,failed:!0}),Sr("TESTSPECTRA_TEST_ERROR",l?.message||String(l)),l}}async function M(e,t,r=15){let n=t??xr(),o=Date.now();for(;Date.now()-o<n;){try{if(await e())return!0}catch{}await new Promise(i=>setTimeout(i,r))}try{return await e()}catch{return!1}}function sl(e,t,r){let n=()=>Pe(),o=typeof e=="string"?e:e.selector;async function i(b){return A("assertion",{type:"assertion",key:"be.visible",target:e,args:[]},async()=>{if(!await M(()=>r.isVisible(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be visible`)})}async function a(b){return A("assertion",{type:"assertion",key:"not.be.visible",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isVisible(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be visible`)})}async function s(b){return A("assertion",{type:"assertion",key:"exist",target:e,args:[]},async()=>{if(!await M(()=>r.isExisting(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to exist in DOM`)})}async function l(b){return A("assertion",{type:"assertion",key:"not.exist",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isExisting(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to exist in DOM`)})}async function u(b){return A("assertion",{type:"assertion",key:"be.enabled",target:e,args:[]},async()=>{if(!await M(()=>r.isEnabled(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be enabled`)})}async function c(b){return A("assertion",{type:"assertion",key:"be.disabled",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isEnabled(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be disabled`)})}async function d(b){return A("assertion",{type:"assertion",key:"be.clickable",target:e,args:[]},async()=>{if(!await M(()=>n().isClickable(e,t),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be clickable`)})}async function m(b){return A("assertion",{type:"assertion",key:"not.be.clickable",target:e,args:[]},async()=>{if(!await M(async()=>!await n().isClickable(e,t),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be clickable`)})}async function y(b){return A("assertion",{type:"assertion",key:"be.checked",target:e,args:[]},async()=>{if(!await M(()=>r.isChecked(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be checked`)})}async function P(b){return A("assertion",{type:"assertion",key:"not.be.checked",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isChecked(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be checked`)})}async function C(b){return A("assertion",{type:"assertion",key:"be.focused",target:e,args:[]},async()=>{if(!await M(()=>r.isFocused(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be focused`)})}async function T(b){return A("assertion",{type:"assertion",key:"not.be.focused",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isFocused(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be focused`)})}async function f(b,v){return A("assertion",{type:"assertion",key:"have.value",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getValue(),S===String(b)),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to have value "${b}", but got "${S}"`)})}async function g(b,v){return A("assertion",{type:"assertion",key:"not.have.value",target:e,args:[b]},async()=>{if(!await M(async()=>await r.getValue()!==String(b),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have value "${b}"`)})}async function w(b,v){return A("assertion",{type:"assertion",key:"contain.value",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getValue(),S.includes(String(b))),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to contain value "${b}", but got "${S}"`)})}async function h(b,v){return A("assertion",{type:"assertion",key:"not.contain.value",target:e,args:[b]},async()=>{if(!await M(async()=>!(await r.getValue()).includes(String(b)),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to contain value "${b}"`)})}async function E(b,v){return A("assertion",{type:"assertion",key:"have.text",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getText(),b instanceof RegExp?b.test(S):S===String(b)||S.trim()===String(b).trim()),v?.timeoutMs??L()))throw b instanceof RegExp?new Error(`Expected element "${o}" text to match ${b}, but got "${S}"`):new Error(`Expected element "${o}" to have text "${b}", but got "${S}"`)})}async function q(b,v){return A("assertion",{type:"assertion",key:"not.have.text",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>await r.isExisting()?(S=await r.getText(),b instanceof RegExp?!b.test(S):S!==String(b)&&S.trim()!==String(b).trim()):!1,v?.timeoutMs??L()))throw b instanceof RegExp?new Error(`Expected element "${o}" text not to match ${b}`):new Error(`Expected element "${o}" not to have text "${b}"`)})}async function R(b,v){return A("assertion",{type:"assertion",key:"contain.text",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getText(),S.includes(String(b))),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to contain text "${b}", but got "${S}"`)})}async function H(b,v){return A("assertion",{type:"assertion",key:"not.contain.text",target:e,args:[b]},async()=>{if(!await M(async()=>!(await r.getText()).includes(String(b)),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to contain text "${b}"`)})}async function B(b,v){return A("assertion",{type:"assertion",key:"have.class",target:e,args:[b]},async()=>{if(!await M(()=>n().hasClass(e,b,t),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to have class "${b}"`)})}async function W(b,v){return A("assertion",{type:"assertion",key:"not.have.class",target:e,args:[b]},async()=>{if(!await M(async()=>!await n().hasClass(e,b,t),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have class "${b}"`)})}async function K(b,v,S){return A("assertion",{type:"assertion",key:"have.attr",target:e,args:v!==void 0?[b,v]:[b]},async()=>{let j=null;if(!await M(async()=>(j=await r.getAttribute(b),v!==void 0?j===String(v):j!==null),S?.timeoutMs??L()))throw v!==void 0?new Error(`Expected element "${o}" to have attribute "${b}" = "${v}", but got "${j}"`):new Error(`Expected element "${o}" to have attribute "${b}"`)})}async function O(b,v){return A("assertion",{type:"assertion",key:"not.have.attr",target:e,args:[b]},async()=>{if(!await M(async()=>await r.getAttribute(b)===null,v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have attribute "${b}"`)})}async function G(b,v,S){return A("assertion",{type:"assertion",key:"have.css",target:e,args:[b,v]},async()=>{let j=le=>String(le??"").replace(/\s+/g,"").replace(/rgba\((.+?),1\)/,"rgb($1)").toLowerCase(),N="";if(!await M(async()=>(N=(await r.getCSSProperty(b)).value,j(N)===j(v)),S?.timeoutMs??L()))throw new Error(`Expected element "${o}" to have CSS "${b}" = "${v}", but got "${N}"`)})}async function Y(b,v,S){return A("assertion",{type:"assertion",key:"not.have.css",target:e,args:[b,v]},async()=>{let j=pe=>String(pe??"").replace(/\s+/g,"").replace(/rgba\((.+?),1\)/,"rgb($1)").toLowerCase();if(!await M(async()=>{let pe=await r.getCSSProperty(b);return j(pe.value)!==j(v)},S?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have CSS "${b}" = "${v}"`)})}return{shouldBeVisible:i,shouldNotBeVisible:a,shouldExist:s,shouldNotExist:l,shouldBeEnabled:u,shouldBeDisabled:c,shouldBeClickable:d,shouldNotBeClickable:m,shouldBeChecked:y,shouldNotBeChecked:P,shouldBeFocused:C,shouldNotBeFocused:T,shouldHaveValue:f,shouldNotHaveValue:g,shouldContainValue:w,shouldNotContainValue:h,shouldHaveText:E,shouldNotHaveText:q,shouldContainText:R,shouldNotContainText:H,shouldHaveClass:B,shouldNotHaveClass:W,shouldHaveAttribute:K,shouldNotHaveAttribute:O,shouldHaveCss:G,shouldNotHaveCss:Y}}var ll=new Map;function ul(e,t){ll.set(e,t)}function cl(){return ll.entries()}var dl=Symbol("testspectra.elementScope");function pl(e,t){Object.defineProperty(e,dl,{value:t,enumerable:!1})}function Aa(e){if(!(e===null||typeof e!="object"))return e[dl]}function fl(e,t){let r=()=>Pe(),n=typeof e=="string"?e:e.selector;async function o(){return await r().getText(e,t)}async function i(){return await r().getValue(e,t)}async function a(){return await r().isDisplayed(e,t)}async function s(){return await a()}async function l(){return await r().isExisting(e,t)}async function u(){return await r().isEnabled(e,t)}async function c(){return await r().isClickable(e,t)}async function d(){return await r().isSelected(e,t)}async function m(){return await d()}async function y(){return await r().isFocused(e,t)}async function P(g){return await r().getAttribute(e,g,t)}async function C(g){return await r().getCSSProperty(e,g,t)}async function T(g){let w=g??xr();if(await M(async()=>r().isExisting(e,t),w))return!0;throw new Error("Element not found: "+JSON.stringify(n))}async function f(g={}){let w=g.timeout||5e3,h=Date.now();for(;Date.now()-h<w;){if(await r().isDisplayed(e,t))return!0;await new Promise(E=>setTimeout(E,20))}throw new Error(`Element ${n} not displayed after ${w}ms`)}return{getText:o,getValue:i,isDisplayed:a,isVisible:s,isExisting:l,isEnabled:u,isClickable:c,isSelected:d,isChecked:m,isFocused:y,getAttribute:P,getCSSProperty:C,waitForElement:T,waitForDisplayed:f}}function ml(e){return typeof e=="string"?e:e.selector}function Ma(e,t){return typeof e=="string"?{selector:e,index:t,parent:void 0}:e}function ue(e,t=null){let r=ml(e),n=typeof e=="string"?t:e.index,o=bl(e,t),i=fl(e,t),a=sl(e,t,i),s={selector:r,index:n,...o,...i,...a,get(u,c=null){return ue({selector:u,index:c,parent:Ma(e,t)},null)},getAll(u){return Te({selector:u,index:null,parent:Ma(e,t)})}};pl(s,Ma(e,t));let l=s;for(let[u,c]of cl())u in l||(l[u]=(...d)=>c.apply(s,d));return s}function Te(e){let t=()=>Pe(),r=ml(e),n=i=>typeof e=="string"?[e,i]:[{...e,index:i},null];return{selector:r,async count(){return await t().count(e)},get length(){return this.count()},first(){return ue(...n(0))},last(){return ue(...n(-1))},nth(i){return ue(...n(i))},async shouldHaveLength(i,a){return A("assertion",{type:"assertion",key:"have.length",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s===i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count to equal ${i}, but got ${s}`)})},async shouldNotHaveLength(i,a){return A("assertion",{type:"assertion",key:"not.have.length",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s!==i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count not to equal ${i}`)})},async shouldHaveLengthGreaterThan(i,a){return A("assertion",{type:"assertion",key:"have.length.greaterThan",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s>i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count to be greater than ${i}, but got ${s}`)})},async shouldHaveLengthLessThan(i,a){return A("assertion",{type:"assertion",key:"have.length.lessThan",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s<i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count to be less than ${i}, but got ${s}`)})},async shouldBeEmpty(i){return A("assertion",{type:"assertion",key:"be.empty",target:e,args:[]},async()=>{let a=0;if(!await M(async()=>(a=await this.count(),a===0),i?.timeoutMs??L()))throw new Error(`Expected collection "${r}" to be empty, but got ${a}`)})},async shouldNotBeEmpty(i){return A("assertion",{type:"assertion",key:"not.be.empty",target:e,args:[]},async()=>{let a=0;if(!await M(async()=>(a=await this.count(),a>0),i?.timeoutMs??L()))throw new Error(`Expected collection "${r}" not to be empty`)})}}}function ne(e){if(typeof e=="string")return ue(e,null);if(e&&typeof e=="object"&&"selector"in e)return e;throw new Error(`Invalid element target: ${String(e)}`)}function vl(e){return typeof e=="string"?e:e.selector}function bl(e,t){let r=()=>Pe();async function n(v){return A("action",{type:"action",key:"click",target:e,args:[]},async()=>{await r().click(e,t)})}async function o(){return A("action",{type:"action",key:"doubleClick",target:e,args:[]},async()=>{await r().doubleClick(e,t)})}async function i(){return A("action",{type:"action",key:"rightClick",target:e,args:[]},async()=>{await r().rightClick(e,t)})}async function a(v){return A("action",{type:"action",key:"type",target:e,args:[v]},async()=>{await r().setValue(e,v,t)})}async function s(v,S){S?.clearFirst&&await l(),await a(v)}async function l(){return A("action",{type:"action",key:"clear",target:e,args:[]},async()=>{await r().clearValue(e,t)})}async function u(){await l()}async function c(v){return A("action",{type:"action",key:"select",target:e,args:[v]},async()=>{await r().select(e,v,t)})}async function d(v){await c(v)}async function m(){return A("action",{type:"action",key:"hover",target:e,args:[]},async()=>{await r().hover(e,t)})}async function y(){return A("action",{type:"action",key:"focus",target:e,args:[]},async()=>{await r().focus(e,t)})}async function P(){return A("action",{type:"action",key:"blur",target:e,args:[]},async()=>{await r().blur(e,t)})}async function C(v){return A("action",{type:"action",key:"waitForElementRemoved",target:e,args:[v??5e3]},async()=>{if(!await M(async()=>!await r().isExisting(e,t),v??5e3))throw new Error("Element still exists after timeout: "+JSON.stringify(vl(e)))})}async function T(v){return A("action",{type:"action",key:"waitForUndisplayed",target:e,args:[v?.timeout??5e3]},async()=>{if(!await M(async()=>!await r().isDisplayed(e,t),v?.timeout??5e3))throw new Error("Element still displayed after timeout: "+JSON.stringify(vl(e)))})}async function f(v){return A("action",{type:"action",key:"waitForClickable",target:e,args:[v?.timeout??5e3]},async()=>await M(async()=>await r().isClickable(e,t),v?.timeout??5e3))}async function g(){return A("action",{type:"action",key:"getBounds",target:e,args:[]},async()=>await r().getBounds(e,t))}function w(){let v=typeof e=="string"?e:e.selector,S=typeof e=="string"?t:e.index;return S==null?v:`${v}::nth(${S})`}function h(){return ue(w()+"::parent",null)}async function E(v){return A("action",{type:"action",key:"closest",target:e,args:[v]},async()=>await r().closest(e,v,t)?ue(`${w()}::closest(${v})`,null):null)}function q(v){return Te(`${w()}::children(${v??""})`)}function R(v){return Te(`${w()}::siblings(${v??""})`)}function H(v){return ue(`${w()}::next(${v??""})`,null)}async function B(){await m()}async function W(v){let S=typeof v=="string"?v:v?.selector||String(v);return A("action",{type:"action",key:"dragDrop",target:e,args:[S]},async()=>{await r().dragDrop(e,S,t)})}async function K(v){await W(v)}async function O(v){let S=typeof v=="number"?v:v?.duration||1e3;return A("action",{type:"action",key:"longPress",target:e,args:[S]},async()=>{await r().longPress(e,S,t)})}async function G(){return A("action",{type:"action",key:"scrollIntoView",target:e,args:[]},async()=>{await r().scrollIntoView(e,t)})}async function Y(v){return A("action",{type:"action",key:"upload",target:e,args:[v]},async()=>{await r().upload(e,v,t)})}async function b(v){await Y(v)}return{click:n,doubleClick:o,rightClick:i,setValue:a,type:s,clearValue:l,clear:u,select:c,selectByVisibleText:d,hover:m,focus:y,blur:P,waitForElementRemoved:C,waitForUndisplayed:T,waitForClickable:f,getBounds:g,parent:h,closest:E,children:q,siblings:R,next:H,moveTo:B,dragDrop:W,dragAndDrop:K,longPress:O,scrollIntoView:G,upload:Y,uploadFile:b}}var hl=["number","date","time","color","file","range"],yl=e=>e.replace(/[^\p{L}\p{N}]/gu,"");function ka(e,t,r){return t===null||r===null?!0:t===e||t!==r||yl(t)===yl(e)}function gl(e,t,r){return new Error(`Typed text did not reach element "${e}": expected "${t}", got "${r}"`)}var Kb={Backspace:{code:"Backspace",windowsVirtualKeyCode:8},Tab:{code:"Tab",windowsVirtualKeyCode:9},Enter:{code:"Enter",windowsVirtualKeyCode:13,text:"\r"},Escape:{code:"Escape",windowsVirtualKeyCode:27},Delete:{code:"Delete",windowsVirtualKeyCode:46},ArrowLeft:{code:"ArrowLeft",windowsVirtualKeyCode:37},ArrowUp:{code:"ArrowUp",windowsVirtualKeyCode:38},ArrowRight:{code:"ArrowRight",windowsVirtualKeyCode:39},ArrowDown:{code:"ArrowDown",windowsVirtualKeyCode:40},Home:{code:"Home",windowsVirtualKeyCode:36},End:{code:"End",windowsVirtualKeyCode:35},PageUp:{code:"PageUp",windowsVirtualKeyCode:33},PageDown:{code:"PageDown",windowsVirtualKeyCode:34}};function El(e){if(typeof e!="string")return null;let t=Kb[e];return t?{key:e,...t}:null}function Oa(e,t){if(!e||e==="*"||e==="**"||e==="ALL")return!0;if(e.startsWith("/")&&e.endsWith("/"))try{return new RegExp(e.slice(1,-1)).test(t)}catch{}if(e.includes("*")){let r=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");try{return new RegExp(r,"i").test(t)}catch{}}return t.toLowerCase().includes(e.toLowerCase())}function qr(e,t){let r=!1,n={unroute:()=>{r||(r=!0,t?.())},respondWith:async(i,a={})=>{let s=i;e.response=s&&s.body!==void 0?s.body:i,(a.statusCode||s&&s.statusCode)&&(e.statusCode=a.statusCode||s?.statusCode||200),(a.headers||s&&s.headers)&&(e.headers=a.headers||s?.headers),(a.delayMs!==void 0||s&&s.delayMs!==void 0)&&(e.delayMs=a.delayMs??s?.delayMs),e.aborted=!1},respondOnce:async(i,a={})=>{let s=i,l=s&&s.body!==void 0?s.body:i,u=a.statusCode||s&&s.statusCode||e.statusCode||200,c=a.headers||s&&s.headers||e.headers,d=a.delayMs??(s&&s.delayMs)??e.delayMs;e.respondOnceQueue.push({response:l,statusCode:u,headers:c,delayMs:d}),e.aborted=!1},abort:async(i="Failed")=>{e.aborted=!0,e.abortReason=i},waitForCall:async(i={})=>{let a=i.count??1,s=i.timeout??5e3;return e.calls.length>=a?e.calls[a-1]:new Promise((l,u)=>{let c=setTimeout(()=>{let d=e.waitResolvers.findIndex(m=>m.resolve===l);d!==-1&&e.waitResolvers.splice(d,1),u(new Error(`Spectra.intercept waitForCall timed out after ${s}ms (expected at least ${a} call(s), received ${e.calls.length})`))},s);e.waitResolvers.push({count:a,resolve:d=>{clearTimeout(c),l(d)}})})}},o=()=>e.callCount;return n.callCount=Object.assign(o,{valueOf:()=>e.callCount,[Symbol.toPrimitive]:()=>e.callCount}),Object.defineProperty(n,"calls",{get:()=>e.calls,enumerable:!0}),n}function Ar(e,t,r,n){let o,i,a,s,l,u;if(typeof e=="object"&&e!==null)o=e.url||e.pattern||"*",i=(e.method||"GET").toUpperCase(),a=e.response!==void 0?e.response:typeof t=="object"&&t!==null?t:r,s=e.statusCode||n&&n.statusCode||200,l=e.headers||n&&n.headers,u=e.delayMs??(n&&n.delayMs);else if(o=String(e||"*"),typeof t=="string"&&["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","ALL"].includes(t.toUpperCase())){i=t.toUpperCase();let c=r;a=c&&c.body!==void 0?c.body:r,s=n&&n.statusCode||c&&c.statusCode||200,l=n&&n.headers||c&&c.headers,u=(n&&n.delayMs)??(c&&c.delayMs)}else{i="GET";let c=t;a=c&&c.body!==void 0?c.body:t,s=r&&r.statusCode||c&&c.statusCode||200,l=r&&r.headers||c&&c.headers,u=(r&&r.delayMs)??(c&&c.delayMs)}return{pattern:o,method:i,response:a,statusCode:s,headers:l,delayMs:u,callCount:0,respondOnceQueue:[],calls:[],waitResolvers:[]}}function Nt(e,t,r){for(let n of e)if(Oa(n.pattern,t)&&(!n.method||n.method==="ALL"||n.method.toUpperCase()===r.toUpperCase()))return n;return null}function Lt(e,t){e.calls.push(t),e.callCount++;for(let r=e.waitResolvers.length-1;r>=0;r--){let n=e.waitResolvers[r];e.callCount>=n.count&&(e.waitResolvers.splice(r,1),n.resolve(t))}return t}function Dt(e){if(e.respondOnceQueue.length>0){let t=e.respondOnceQueue.shift();return{body:t.response,statusCode:t.statusCode||e.statusCode||200,headers:{...e.headers,...t.headers},delayMs:t.delayMs??e.delayMs}}return{body:e.response,statusCode:e.statusCode||200,headers:{...e.headers},delayMs:e.delayMs}}var Gb={"Content-Type":"application/json; charset=utf-8","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"*"};function Mr(e){let t=new Map;for(let[r,n]of Object.entries(Gb))t.set(r.toLowerCase(),{name:r,value:n});for(let[r,n]of Object.entries(e||{}))t.set(r.toLowerCase(),{name:r,value:String(n)});return[...t.values()]}function Bt(e){return typeof e=="string"?e:typeof e=="object"&&e!==null?JSON.stringify(e):String(e??"")}function wl(e){let t=/^(.*)::nth\((-?\d+)\)$/.exec(e);if(t)return{kind:"nth",base:t[1],arg:t[2]};let r=/^(.*)::closest\((.+)\)$/.exec(e);if(r)return{kind:"closest",base:r[1],arg:r[2]};let n=/^(.*)::children\((.*)\)$/.exec(e);if(n)return{kind:"children",base:n[1],arg:n[2].trim()||null};let o=/^(.*)::children$/.exec(e);if(o)return{kind:"children",base:o[1],arg:null};let i=/^(.*)::siblings\((.*)\)$/.exec(e);if(i)return{kind:"siblings",base:i[1],arg:i[2].trim()||null};let a=/^(.*)::siblings$/.exec(e);if(a)return{kind:"siblings",base:a[1],arg:null};let s=/^(.*)::next\((.*)\)$/.exec(e);if(s)return{kind:"next",base:s[1],arg:s[2].trim()||null};let l=/^(.*)::next$/.exec(e);if(l)return{kind:"next",base:l[1],arg:null};let u=/^(.*)::parent$/.exec(e);return u?{kind:"parent",base:u[1]}:null}function Ia(e){let t=e.trim();if(!t.startsWith("~"))return null;let r=t.slice(1),n=r.indexOf("[");return n!==-1?{name:r.slice(0,n),chainSuffix:r.slice(n)}:{name:r,chainSuffix:""}}function _l(e){let t=Ia(e);if(!t)return null;let{name:r,chainSuffix:n}=t,o=JSON.stringify(r);return`:is([aria-label=${o}], [title=${o}])${n}`}function Cl(e,t,r){let o=Array.from(t.querySelectorAll("[aria-labelledby]")).filter(i=>(i.getAttribute("aria-labelledby")??"").trim().split(/\s+/).map(l=>{let u=document.getElementById(l);return u?(u.textContent??"").trim():""}).filter(Boolean).join(" ").trim()===e);return r===null?o[0]??null:r>=0?o[r]??null:o[o.length+r]??null}var Xb=new Set(["mount","unmount","registerCommand","registerCommands"]),Qb=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Pl(){let e=()=>Pe(),t={get:r=>ne(r),getAll:r=>Te(r),navigate:r=>e().navigate(r),back:()=>e().back(),forward:()=>e().forward(),refresh:()=>e().refresh(),setViewport:(r,n)=>e().setViewport(r,n),wait:r=>e().pause(r),click:async(r,n)=>{await ne(r).click()},clickAt:async(r,n)=>{await e().clickAt(r,n)},doubleClick:async r=>{await ne(r).doubleClick()},rightClick:async r=>{await ne(r).rightClick()},type:async(r,n,o)=>{await ne(r).type(n,o)},clear:async r=>{await ne(r).clear()},select:async(r,n)=>{await ne(r).select(n)},hover:async r=>{await ne(r).hover()},focus:async r=>{await ne(r).focus()},blur:async r=>{await ne(r).blur()},dragDrop:async(r,n)=>{await ne(r).dragDrop(n)},scrollIntoView:async r=>{await ne(r).scrollIntoView()},scroll:async r=>{await e().scroll(r)},swipe:async r=>{await e().swipe(r)},longPress:async(r,n)=>{await ne(r).longPress(n)},pressKey:async r=>{await e().pressKey(r)},grantPermission:async r=>{await e().grantPermission(r)},waitForElement:async(r,n)=>{await ne(r).waitForElement(n)},intercept:async(r,n,o,i)=>await e().intercept(r,n,o,i),clearMocks:()=>{e().clearMocks()},get browser(){return e()},get env(){return It().environmentVariables||{}}};return t.registerCommand=(r,n)=>{if(typeof n!="function")throw new Error(`[TestSpectra] Custom command "${r}" must be a function.`);if(!Qb.test(r))throw new Error(`[TestSpectra] Invalid custom command name "${r}"; must be a valid identifier.`);if(Xb.has(r)||r in t)throw new Error(`[TestSpectra] Custom command "${r}" collides with a built-in Spectra method.`);t[r]=n,ul(r,n)},t.registerCommands=r=>{for(let[n,o]of Object.entries(r))t.registerCommand(n,o)},t}function Tl(){return typeof globalThis.__TESTSPECTRA_STEP_DELAY_MS__=="number"?globalThis.__TESTSPECTRA_STEP_DELAY_MS__:typeof window<"u"&&typeof window.__TESTSPECTRA_STEP_DELAY_MS__=="number"?window.__TESTSPECTRA_STEP_DELAY_MS__:0}var Yb=5e3;function kr(e,t){(typeof globalThis.__TESTSPECTRA_SEMANTIC_REPORTER__=="boolean"?globalThis.__TESTSPECTRA_SEMANTIC_REPORTER__:!(typeof window<"u"&&typeof window.__TESTSPECTRA_SEMANTIC_REPORTER__=="boolean")||window.__TESTSPECTRA_SEMANTIC_REPORTER__)&&console.log(`[${e}] ${t}`)}function Na(){return Yb}function Jb(){return Math.min(Na(),2e3)}async function Zb(e,t,r){let n=globalThis.__CURRENT_TEST_TITLE__;n&&!t.test&&(t.test=n);let o=JSON.stringify(t);kr("TESTSPECTRA_STEP_START",o);let i=Date.now();try{let a=await r(),s=Date.now()-i;kr("TESTSPECTRA_STEP_PASS",`${o} (${s}ms)`);let l=Tl();return l>0&&await new Promise(u=>setTimeout(u,l)),a}catch(a){let s=Date.now()-i;throw kr("TESTSPECTRA_STEP_FAIL",`${o} (${s}ms)`),a}}async function ev(e,t,r=15){let n=t??Na(),o=Date.now();for(;Date.now()-o<n;){try{if(await e())return!0}catch{}await new Promise(i=>setTimeout(i,r))}try{return await e()}catch{return!1}}globalThis.__TESTSPECTRA_CONFIG__={rootDir:"",activePlatform:"web",configuredBaseUrl:"",cdpWsUrl:"",driverServerUrl:"",stepDelayMs:Tl()};globalThis.__TS_RUNTIME__={activeDriver:null,mobileMockRules:[],lastFocusedSelector:null,emitEvent:kr,trackStep:Zb,pollCondition:ev,getImplicitWaitMs:Na,getAssertionTimeoutMs:Jb,matchesUrlPattern:Oa,createMockHandle:qr,parseMockRule:Ar,findMatchingRule:Nt,recordMockCall:Lt,consumeMockResponse:Dt,mergeMockResponseHeaders:Mr,mockResponseBodyText:Bt,createElementProxy:ue,createCollectionProxy:Te,beforeHook:null,afterHook:null,beforeEachHook:null,afterEachHook:null,suiteBeforeEachHooks:{},suiteAfterEachHooks:{}};var Rl=new Set;async function Sl(e,t=[],r,n={platform:"web"}){for(let o of t)if(!Rl.has(o))try{let i=await r(o),a=i?.default??i?.plugin??i;typeof a=="function"?await a(e,n):a&&typeof a.setup=="function"?await a.setup(e,n):console.error(`[TestSpectra] Plugin "${o}" has no default export function or setup() method \u2014 skipping.`),Rl.add(o)}catch(i){console.error(`[TestSpectra] Failed to load plugin "${o}": ${i?.stack||i?.message||i}`)}}function tv(){let e=globalThis,t;try{t=e.__TESTSPECTRA_AUTO_IMPORT_MANIFEST__}catch{}if(!t&&typeof window<"u"&&(t=window.__TESTSPECTRA_AUTO_IMPORT_MANIFEST__),!t)return null;if(typeof t=="string")try{return JSON.parse(t)}catch{return null}return t}var xl=new Map;async function Or(e){let t=xl.get(e);if(t)return t;let r,o=typeof globalThis.__vitest_browser_runner__<"u"||typeof globalThis.__vitest_worker__<"u"?`/@fs/${e.replace(/\\/g,"/")}`.replace(/\/@fs\/\//g,"/@fs/"):`/test?file=${encodeURIComponent(e)}`;if(e.endsWith(".json"))try{let i=await fetch(o);if(i.ok)r=await i.json();else throw new Error(`Failed to fetch JSON fixture: ${i.status}`)}catch{r=await new Function("specifier",'return import(specifier, { with: { type: "json" } })')(o)}else r=await new Function("specifier","return import(specifier)")(o);return xl.set(e,r),r}async function La(e){let t=e??tv();if(!t)return;let r=t.pageObjects??t.page_objects??[];for(let l of r){let u=l.path??l.file_path;if(u){let c=await Or(u);globalThis[l.name]=c.default??c}}let n={},o=t.fixtures??[];for(let l of o){let u=l.path??l.file_path;if(u){let c=u.split("/").pop()?.split("\\").pop()||`${l.name}.bin`;try{let d=await Or(u),m=d?.default!==void 0?d.default:d??u;typeof m=="string"&&m.startsWith("data:")&&!m.includes("name=")&&(m=m.replace(/^data:([^;,]+)/,y=>`${y};name=${encodeURIComponent(c)}`)),n[l.name]=m}catch{n[l.name]=u}}}globalThis.Fixture=n;let i={},a=t.steps??[];for(let l of a){let u=l.path??l.file_path;if(u){let c=await Or(u);i[l.name]=c.default??c}}globalThis.Step=i;let s=rv();s.length>0&&globalThis.Spectra&&await Sl(globalThis.Spectra,s,Or,{platform:"web"})}function rv(){let e=globalThis,t;try{t=e.__TESTSPECTRA_PLUGINS__}catch{}if(!t&&typeof window<"u"&&(t=window.__TESTSPECTRA_PLUGINS__),!t)return[];if(Array.isArray(t))return t.filter(r=>typeof r=="string");if(typeof t=="string")try{let r=JSON.parse(t);return Array.isArray(r)?r.filter(n=>typeof n=="string"):[]}catch{return[]}return[]}globalThis.__bootstrapAutoImports=La;function x(e,t,r){return e.namespaceURI&&e.namespaceURI!=="http://www.w3.org/1999/xhtml"||(t=Array.isArray(t)?t:[t],!t.includes(e.tagName.toLowerCase()))?!1:r?Object.entries(r).every(([n,o])=>e[n]===o):!0}function V(e){var t;if(nv(e)&&e.defaultView)return e.defaultView;if(!((t=e.ownerDocument)===null||t===void 0)&&t.defaultView)return e.ownerDocument.defaultView;throw new Error(`Could not determine window of node. Node was ${ov(e)}`)}function nv(e){return e.nodeType===9}function ov(e){return typeof e=="function"?`function ${e.name}`:e===null?"null":String(e)}function Da(e,t){return new Promise((r,n)=>{let o=new t;o.onerror=n,o.onabort=n,o.onload=()=>{r(String(o.result))},o.readAsText(e)})}function Ft(e,t){let r={...t,length:t.length,item:n=>r[n],[Symbol.iterator]:function*(){for(let o=0;o<r.length;o++)yield r[o]}};return r.constructor=e.FileList,e.FileList&&Object.setPrototypeOf(r,e.FileList.prototype),Object.freeze(r),r}function Ne(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ut=class{getAsFile(){return this.file}getAsString(t){typeof this.data=="string"&&t(this.data)}webkitGetAsEntry(){throw new Error("not implemented")}constructor(t,r){Ne(this,"kind",void 0),Ne(this,"type",void 0),Ne(this,"file",null),Ne(this,"data",void 0),typeof t=="string"?(this.kind="string",this.type=String(r),this.data=t):(this.kind="file",this.type=t.type,this.file=t)}};function ql(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}var Fa=class extends Array{add(...t){let r=typeof t[0]=="string"?new Ut(t[0],ql(t[1])):new Ut(t[0]);return this.push(r),r}clear(){this.splice(0,this.length)}remove(t){this.splice(t,1)}};function Ba(e){let t=ql(e);return t==="text"?"text/plain":t==="url"?"text/uri-list":t}function Ir(e,t){let[r,n]=e.split("/"),o=!n||n==="*";return i=>t?i.type===(o?r:e):o?i.type.startsWith(`${r}/`):i.type===r}function iv(e){return new class{getData(r){var n;let o=Ba(r),i=(n=this.items.find(Ir(o,!0)))!==null&&n!==void 0?n:this.items.find(Ir(o,!1)),a="";return i?.getAsString(s=>{a=s}),a}setData(r,n){let o=Ba(r),i=this.items.findIndex(Ir(o,!0)),a=new Ut(n,o);i>=0?this.items.splice(i,1,a):this.items.push(a)}clearData(r){if(r){let n=Ba(r),o=this.items.findIndex(Ir(n,!0));o>=0&&this.items.remove(o)}else this.items.clear()}get types(){let r=[];return this.files.length&&r.push("Files"),this.items.forEach(n=>r.push(n.type)),Object.freeze(r),r}setDragImage(){}constructor(){Ne(this,"dropEffect","none"),Ne(this,"effectAllowed","uninitialized"),Ne(this,"items",new Fa),Ne(this,"files",Ft(e,[]))}}}function vt(e,t=[]){let r=typeof e.DataTransfer>"u"?iv(e):new e.DataTransfer;return Object.defineProperty(r,"files",{get:()=>Ft(e,t)}),r}async function Al(e,t){return t.kind==="file"?t.getAsFile():new e.Blob([await new Promise(r=>t.getAsString(r))],{type:t.type})}function kl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ol(e,...t){let r=Object.fromEntries(t.map(n=>[typeof n=="string"?"text/plain":n.type,Promise.resolve(n)]));return typeof e.ClipboardItem<"u"?new e.ClipboardItem(r):new class{get types(){return Array.from(Object.keys(this.data))}async getType(o){let i=await this.data[o];if(!i)throw new Error(`${o} is not one of the available MIME types on this item.`);return i instanceof e.Blob?i:new e.Blob([i],{type:o})}constructor(o){kl(this,"data",void 0),this.data=o}}(r)}var yt=Symbol("Manage ClipboardSub");function Ml(e,t){return Object.assign(new class extends e.EventTarget{async read(){return Array.from(this.items)}async readText(){let n="";for(let o of this.items){let i=o.types.includes("text/plain")?"text/plain":o.types.find(a=>a.startsWith("text/"));i&&(n+=await o.getType(i).then(a=>Da(a,e.FileReader)))}return n}async write(n){this.items=n}async writeText(n){this.items=[Ol(e,n)]}constructor(...n){super(...n),kl(this,"items",[])}},{[yt]:t})}function Ua(e){return!!e?.[yt]}function Il(e){if(Ua(e.navigator.clipboard))return e.navigator.clipboard[yt];let t=Object.getOwnPropertyDescriptor(e.navigator,"clipboard"),r,n={resetClipboardStub:()=>{r=Ml(e,n)},detachClipboardStub:()=>{t?Object.defineProperty(e.navigator,"clipboard",t):Object.defineProperty(e.navigator,"clipboard",{value:void 0,configurable:!0})}};return r=Ml(e,n),Object.defineProperty(e.navigator,"clipboard",{get:()=>r,configurable:!0}),r[yt]}function av(e){Ua(e.navigator.clipboard)&&e.navigator.clipboard[yt].resetClipboardStub()}function sv(e){Ua(e.navigator.clipboard)&&e.navigator.clipboard[yt].detachClipboardStub()}async function Nl(e){let t=e.defaultView,r=t?.navigator.clipboard,n=r&&await r.read();if(!n)throw new Error("The Clipboard API is unavailable.");let o=vt(t);for(let i of n)for(let a of i.types)o.setData(a,await i.getType(a).then(s=>Da(s,t.FileReader)));return o}async function Lr(e,t){let r=V(e),n=r.navigator.clipboard,o=[];for(let a=0;a<t.items.length;a++){let s=t.items[a],l=await Al(r,s);o.push(Ol(r,l))}if(!(n&&await n.write(o).then(()=>!0,()=>!1)))throw new Error("The Clipboard API is unavailable.")}var Nr=globalThis;typeof Nr.afterEach=="function"&&Nr.afterEach(()=>{typeof globalThis.window<"u"&&av(globalThis.window)});typeof Nr.afterAll=="function"&&Nr.afterAll(()=>{typeof globalThis.window<"u"&&sv(globalThis.window)});var Dr=["input:not([type=hidden]):not([disabled])","button:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[contenteditable=""]','[contenteditable="true"]',"a[href]","[tabindex]:not([disabled])","details > summary"].join(", ");function jt(e){return e.matches(Dr)}function Ll(e){return new e.constructor(e.type,e)}function te(e){for(let r=e;r;r=r.parentElement)if(x(r,["button","input","select","textarea","optgroup","option"])){if(r.hasAttribute("disabled"))return!0}else if(x(r,"fieldset")){var t;if(r.hasAttribute("disabled")&&!(!((t=r.querySelector(":scope > legend"))===null||t===void 0)&&t.contains(e)))return!0}else if(r.tagName.includes("-")&&r.constructor.formAssociated&&r.hasAttribute("disabled"))return!0;return!1}function Le(e){let t=e.activeElement;if(t?.shadowRoot){let r=Le(t.shadowRoot);if(r)return r}else if(t&&x(t,"iframe")){let r=t.contentDocument;if(r)return Le(r)}return te(t)?e.ownerDocument?e.ownerDocument.body:e.body:t}function ht(e){var t;return(t=Le(e))!==null&&t!==void 0?t:e.body}function Dl(e,t){let r=e;do{if(t(r))return r;r=r.parentElement}while(r&&r!==e.ownerDocument.body)}function ce(e){return e.hasAttribute("contenteditable")&&(e.getAttribute("contenteditable")=="true"||e.getAttribute("contenteditable")=="")}function De(e){let t=lv(e);return t&&(t.closest('[contenteditable=""]')||t.closest('[contenteditable="true"]'))}function lv(e){return e.nodeType===1?e:e.parentElement}var Bl=(function(e){return e.button="button",e.color="color",e.file="file",e.image="image",e.reset="reset",e.submit="submit",e.checkbox="checkbox",e.radio="radio",e})(Bl||{});function Br(e){return x(e,"button")||x(e,"input")&&e.type in Bl}function ve(e){return ja(e)&&!e.readOnly||ce(e)}var Fl=(function(e){return e.text="text",e.date="date",e["datetime-local"]="datetime-local",e.email="email",e.month="month",e.number="number",e.password="password",e.search="search",e.tel="tel",e.time="time",e.url="url",e.week="week",e})(Fl||{});function ja(e){return x(e,"textarea")||x(e,"input")&&e.type in Fl}function X(e){return jl(e)&&ja(e)}function Ul(e){return jl(e)&&Br(e)}function jl(e){return e.nodeType===1}function $l(e){let t=e.ownerDocument.getSelection();if(t?.focusNode&&X(e)){let n=De(t.focusNode);if(n){if(!t.isCollapsed){var r;let o=((r=n.firstChild)===null||r===void 0?void 0:r.nodeType)===3?n.firstChild:n;t.setBaseAndExtent(o,0,o,0)}}else t.setBaseAndExtent(e,0,e,0)}}function Fr(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var ra=xa(ec());var Hy=Object.prototype.toString;function tc(e){return typeof e=="function"||Hy.call(e)==="[object Function]"}function Vy(e){var t=Number(e);return isNaN(t)?0:t===0||!isFinite(t)?t:(t>0?1:-1)*Math.floor(Math.abs(t))}var Wy=Math.pow(2,53)-1;function zy(e){var t=Vy(e);return Math.min(Math.max(t,0),Wy)}function de(e,t){var r=Array,n=Object(e);if(e==null)throw new TypeError("Array.from requires an array-like object - not null or undefined");if(typeof t<"u"&&!tc(t))throw new TypeError("Array.from: when provided, the second argument must be a function");for(var o=zy(n.length),i=tc(r)?Object(new r(o)):new Array(o),a=0,s;a<o;)s=n[a],t?i[a]=t(s,a):i[a]=s,a+=1;return i.length=o,i}function tr(e){"@babel/helpers - typeof";return tr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tr(e)}function Ky(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rc(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,nc(n.key),n)}}function Gy(e,t,r){return t&&rc(e.prototype,t),r&&rc(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Xy(e,t,r){return t=nc(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nc(e){var t=Qy(e,"string");return tr(t)==="symbol"?t:String(t)}function Qy(e,t){if(tr(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(tr(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Yy=(function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];Ky(this,e),Xy(this,"items",void 0),this.items=t}return Gy(e,[{key:"add",value:function(r){return this.has(r)===!1&&this.items.push(r),this}},{key:"clear",value:function(){this.items=[]}},{key:"delete",value:function(r){var n=this.items.length;return this.items=this.items.filter(function(o){return o!==r}),n!==this.items.length}},{key:"forEach",value:function(r){var n=this;this.items.forEach(function(o){r(o,o,n)})}},{key:"has",value:function(r){return this.items.indexOf(r)!==-1}},{key:"size",get:function(){return this.items.length}}]),e})(),oc=typeof Set>"u"?Set:Yy;function Q(e){var t;return(t=e.localName)!==null&&t!==void 0?t:e.tagName.toLowerCase()}var Jy={article:"article",aside:"complementary",button:"button",datalist:"listbox",dd:"definition",details:"group",dialog:"dialog",dt:"term",fieldset:"group",figure:"figure",form:"form",footer:"contentinfo",h1:"heading",h2:"heading",h3:"heading",h4:"heading",h5:"heading",h6:"heading",header:"banner",hr:"separator",html:"document",legend:"legend",li:"listitem",math:"math",main:"main",menu:"list",nav:"navigation",ol:"list",optgroup:"group",option:"option",output:"status",progress:"progressbar",section:"region",summary:"button",table:"table",tbody:"rowgroup",textarea:"textbox",tfoot:"rowgroup",td:"cell",th:"columnheader",thead:"rowgroup",tr:"row",ul:"list"},Zy={caption:new Set(["aria-label","aria-labelledby"]),code:new Set(["aria-label","aria-labelledby"]),deletion:new Set(["aria-label","aria-labelledby"]),emphasis:new Set(["aria-label","aria-labelledby"]),generic:new Set(["aria-label","aria-labelledby","aria-roledescription"]),insertion:new Set(["aria-label","aria-labelledby"]),paragraph:new Set(["aria-label","aria-labelledby"]),presentation:new Set(["aria-label","aria-labelledby"]),strong:new Set(["aria-label","aria-labelledby"]),subscript:new Set(["aria-label","aria-labelledby"]),superscript:new Set(["aria-label","aria-labelledby"])};function eh(e,t){return["aria-atomic","aria-busy","aria-controls","aria-current","aria-describedby","aria-details","aria-dropeffect","aria-flowto","aria-grabbed","aria-hidden","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"].some(function(r){var n;return e.hasAttribute(r)&&!((n=Zy[t])!==null&&n!==void 0&&n.has(r))})}function ic(e,t){return eh(e,t)}function Qr(e){var t=rh(e);if(t===null||t==="presentation"){var r=th(e);if(t!=="presentation"||ic(e,r||""))return r}return t}function th(e){var t=Jy[Q(e)];if(t!==void 0)return t;switch(Q(e)){case"a":case"area":case"link":if(e.hasAttribute("href"))return"link";break;case"img":return e.getAttribute("alt")===""&&!ic(e,"img")?"presentation":"img";case"input":{var r=e,n=r.type;switch(n){case"button":case"image":case"reset":case"submit":return"button";case"checkbox":case"radio":return n;case"range":return"slider";case"email":case"tel":case"text":case"url":return e.hasAttribute("list")?"combobox":"textbox";case"search":return e.hasAttribute("list")?"combobox":"searchbox";case"number":return"spinbutton";default:return null}}case"select":return e.hasAttribute("multiple")||e.size>1?"listbox":"combobox"}return null}function rh(e){var t=e.getAttribute("role");if(t!==null){var r=t.trim().split(" ")[0];if(r.length>0)return r}return null}function $(e){return e!==null&&e.nodeType===e.ELEMENT_NODE}function Ya(e){return $(e)&&Q(e)==="caption"}function rr(e){return $(e)&&Q(e)==="input"}function ac(e){return $(e)&&Q(e)==="optgroup"}function sc(e){return $(e)&&Q(e)==="select"}function lc(e){return $(e)&&Q(e)==="table"}function uc(e){return $(e)&&Q(e)==="textarea"}function cc(e){var t=e.ownerDocument===null?e:e.ownerDocument,r=t.defaultView;if(r===null)throw new TypeError("no window available");return r}function dc(e){return $(e)&&Q(e)==="fieldset"}function pc(e){return $(e)&&Q(e)==="legend"}function fc(e){return $(e)&&Q(e)==="slot"}function nh(e){return $(e)&&e.ownerSVGElement!==void 0}function mc(e){return $(e)&&Q(e)==="svg"}function bc(e){return nh(e)&&Q(e)==="title"}function _t(e,t){if($(e)&&e.hasAttribute(t)){var r=e.getAttribute(t).split(" "),n=e.getRootNode?e.getRootNode():e.ownerDocument;return r.map(function(o){return n.getElementById(o)}).filter(function(o){return o!==null})}return[]}function ge(e,t){return $(e)?t.indexOf(Qr(e))!==-1:!1}function oh(e){return e.trim().replace(/\s\s+/g," ")}function ih(e,t){if(!$(e))return!1;if(e.hasAttribute("hidden")||e.getAttribute("aria-hidden")==="true")return!0;var r=t(e);return r.getPropertyValue("display")==="none"||r.getPropertyValue("visibility")==="hidden"}function ah(e){return ge(e,["button","combobox","listbox","textbox"])||hc(e,"range")}function hc(e,t){if(!$(e))return!1;if(t==="range")return ge(e,["meter","progressbar","scrollbar","slider","spinbutton"]);throw new TypeError("No knowledge about abstract role '".concat(t,"'. This is likely a bug :("))}function vc(e,t){var r=de(e.querySelectorAll(t));return _t(e,"aria-owns").forEach(function(n){r.push.apply(r,de(n.querySelectorAll(t)))}),r}function sh(e){return sc(e)?e.selectedOptions||vc(e,"[selected]"):vc(e,'[aria-selected="true"]')}function lh(e){return ge(e,["none","presentation"])}function uh(e){return Ya(e)}function ch(e){return ge(e,["button","cell","checkbox","columnheader","gridcell","heading","label","legend","link","menuitem","menuitemcheckbox","menuitemradio","option","radio","row","rowheader","switch","tab","tooltip","treeitem"])}function dh(e){return!1}function ph(e){return rr(e)||uc(e)?e.value:e.textContent||""}function yc(e){var t=e.getPropertyValue("content");return/^["'].*["']$/.test(t)?t.slice(1,-1):""}function gc(e){var t=Q(e);return t==="button"||t==="input"&&e.getAttribute("type")!=="hidden"||t==="meter"||t==="output"||t==="progress"||t==="select"||t==="textarea"}function Ec(e){if(gc(e))return e;var t=null;return e.childNodes.forEach(function(r){if(t===null&&$(r)){var n=Ec(r);n!==null&&(t=n)}}),t}function fh(e){if(e.control!==void 0)return e.control;var t=e.getAttribute("for");return t!==null?e.ownerDocument.getElementById(t):Ec(e)}function mh(e){var t=e.labels;if(t===null)return t;if(t!==void 0)return de(t);if(!gc(e))return null;var r=e.ownerDocument;return de(r.querySelectorAll("label")).filter(function(n){return fh(n)===e})}function bh(e){var t=e.assignedNodes();return t.length===0?de(e.childNodes):t}function Yr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new oc,n=cc(e),o=t.compute,i=o===void 0?"name":o,a=t.computedStyleSupportsPseudoElements,s=a===void 0?t.getComputedStyle!==void 0:a,l=t.getComputedStyle,u=l===void 0?n.getComputedStyle.bind(n):l,c=t.hidden,d=c===void 0?!1:c;function m(f,g){var w="";if($(f)&&s){var h=u(f,"::before"),E=yc(h);w="".concat(E," ").concat(w)}var q=fc(f)?bh(f):de(f.childNodes).concat(_t(f,"aria-owns"));if(q.forEach(function(B){var W=T(B,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1,recursion:!0}),K=$(B)?u(B).getPropertyValue("display"):"inline",O=K!=="inline"?" ":"";w+="".concat(O).concat(W).concat(O)}),$(f)&&s){var R=u(f,"::after"),H=yc(R);w="".concat(w," ").concat(H)}return w.trim()}function y(f,g){var w=f.getAttributeNode(g);return w!==null&&!r.has(w)&&w.value.trim()!==""?(r.add(w),w.value):null}function P(f){return $(f)?y(f,"title"):null}function C(f){if(!$(f))return null;if(dc(f)){r.add(f);for(var g=de(f.childNodes),w=0;w<g.length;w+=1){var h=g[w];if(pc(h))return T(h,{isEmbeddedInLabel:!1,isReferenced:!1,recursion:!1})}}else if(lc(f)){r.add(f);for(var E=de(f.childNodes),q=0;q<E.length;q+=1){var R=E[q];if(Ya(R))return T(R,{isEmbeddedInLabel:!1,isReferenced:!1,recursion:!1})}}else if(mc(f)){r.add(f);for(var H=de(f.childNodes),B=0;B<H.length;B+=1){var W=H[B];if(bc(W))return W.textContent}return null}else if(Q(f)==="img"||Q(f)==="area"){var K=y(f,"alt");if(K!==null)return K}else if(ac(f)){var O=y(f,"label");if(O!==null)return O}if(rr(f)&&(f.type==="button"||f.type==="submit"||f.type==="reset")){var G=y(f,"value");if(G!==null)return G;if(f.type==="submit")return"Submit";if(f.type==="reset")return"Reset"}var Y=mh(f);if(Y!==null&&Y.length!==0)return r.add(f),de(Y).map(function(j){return T(j,{isEmbeddedInLabel:!0,isReferenced:!1,recursion:!0})}).filter(function(j){return j.length>0}).join(" ");if(rr(f)&&f.type==="image"){var b=y(f,"alt");if(b!==null)return b;var v=y(f,"title");return v!==null?v:"Submit Query"}if(ge(f,["button"])){var S=m(f,{isEmbeddedInLabel:!1,isReferenced:!1});if(S!=="")return S}return null}function T(f,g){if(r.has(f))return"";if(!d&&ih(f,u)&&!g.isReferenced)return r.add(f),"";var w=$(f)?f.getAttributeNode("aria-labelledby"):null,h=w!==null&&!r.has(w)?_t(f,"aria-labelledby"):[];if(i==="name"&&!g.isReferenced&&h.length>0)return r.add(w),h.map(function(K){return T(K,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!0,recursion:!1})}).join(" ");var E=g.recursion&&ah(f)&&i==="name";if(!E){var q=($(f)&&f.getAttribute("aria-label")||"").trim();if(q!==""&&i==="name")return r.add(f),q;if(!lh(f)){var R=C(f);if(R!==null)return r.add(f),R}}if(ge(f,["menu"]))return r.add(f),"";if(E||g.isEmbeddedInLabel||g.isReferenced){if(ge(f,["combobox","listbox"])){r.add(f);var H=sh(f);return H.length===0?rr(f)?f.value:"":de(H).map(function(K){return T(K,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1,recursion:!0})}).join(" ")}if(hc(f,"range"))return r.add(f),f.hasAttribute("aria-valuetext")?f.getAttribute("aria-valuetext"):f.hasAttribute("aria-valuenow")?f.getAttribute("aria-valuenow"):f.getAttribute("value")||"";if(ge(f,["textbox"]))return r.add(f),ph(f)}if(ch(f)||$(f)&&g.isReferenced||uh(f)||dh(f)){var B=m(f,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1});if(B!=="")return r.add(f),B}if(f.nodeType===f.TEXT_NODE)return r.add(f),f.textContent||"";if(g.recursion)return r.add(f),m(f,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1});var W=P(f);return W!==null?(r.add(f),W):(r.add(f),"")}return oh(T(e,{isEmbeddedInLabel:!1,isReferenced:i==="description",recursion:!1}))}function nr(e){"@babel/helpers - typeof";return nr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nr(e)}function wc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function _c(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wc(Object(r),!0).forEach(function(n){vh(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function vh(e,t,r){return t=yh(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yh(e){var t=hh(e,"string");return nr(t)==="symbol"?t:String(t)}function hh(e,t){if(nr(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(nr(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Jr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=_t(e,"aria-describedby").map(function(o){return Yr(o,_c(_c({},t),{},{compute:"description"}))}).join(" ");if(r===""){var n=e.getAttribute("title");r=n===null?"":n}return r}function gh(e){return ge(e,["caption","code","deletion","emphasis","generic","insertion","paragraph","presentation","strong","subscript","superscript"])}function or(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return gh(e)?"":Yr(e,t)}var oe=xa(xf()),Lf=xa(qf());function Df(e){return e.replace(/</g,"<").replace(/>/g,">")}var o0=(e,t,r,n,o,i,a)=>{let s=n+r.indent,l=r.colors;return e.map(u=>{let c=t[u],d=a(c,r,s,o,i);return typeof c!="string"&&(d.indexOf(`
|
|
15
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(a)throw s}}}}function Rf(e,t){if(e){if(typeof e=="string")return _f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _f(e,t)}}function _f(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var rt=[],Cf=Pf.default.keys();for(Vi=0;Vi<Cf.length;Vi++)if(fs=Cf[Vi],Wi=Pf.default.get(fs),zi=[],Wi){for(ms=[].concat(Wi.baseConcepts,Wi.relatedConcepts),Ki=0;Ki<ms.length;Ki++)bs=ms[Ki],bs.module==="HTML"&&(vs=bs.concept,vs!=null&&zi.push(vs));zi.length>0&&rt.push([fs,zi])}var fs,Wi,zi,ms,bs,vs,Ki,Vi,ys={entries:function(){return rt},forEach:function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=zR(rt),o;try{for(n.s();!(o=n.n()).done;){var i=ps(o.value,2),a=i[0],s=i[1];t.call(r,s,a,rt)}}catch(l){n.e(l)}finally{n.f()}},get:function(t){var r=rt.find(function(n){return n[0]===t});return r&&r[1]},has:function(t){return!!ys.get(t)},keys:function(){return rt.map(function(t){var r=ps(t,1),n=r[0];return n})},values:function(){return rt.map(function(t){var r=ps(t,2),n=r[1];return n})}},KR=(0,$R.default)(ys,ys.entries());Gi.default=KR});var xf=p(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.roles=me.roleElements=me.elementRoles=me.dom=me.aria=void 0;var GR=sr(Rc()),XR=sr(qc()),QR=sr(Bi()),YR=sr(wf()),JR=sr(Sf());function sr(e){return e&&e.__esModule?e:{default:e}}var ZR=GR.default;me.aria=ZR;var e0=XR.default;me.dom=e0;var t0=QR.default;me.roles=t0;var r0=YR.default;me.elementRoles=r0;var n0=JR.default;me.roleElements=n0});var qf=p((LI,Xi)=>{var hs=(function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function o(a,s){if(!n[a]){n[a]={};for(var l=0;l<a.length;l++)n[a][a.charAt(l)]=l}return n[a][s]}var i={compressToBase64:function(a){if(a==null)return"";var s=i._compress(a,6,function(l){return t.charAt(l)});switch(s.length%4){default:case 0:return s;case 1:return s+"===";case 2:return s+"==";case 3:return s+"="}},decompressFromBase64:function(a){return a==null?"":a==""?null:i._decompress(a.length,32,function(s){return o(t,a.charAt(s))})},compressToUTF16:function(a){return a==null?"":i._compress(a,15,function(s){return e(s+32)})+" "},decompressFromUTF16:function(a){return a==null?"":a==""?null:i._decompress(a.length,16384,function(s){return a.charCodeAt(s)-32})},compressToUint8Array:function(a){for(var s=i.compress(a),l=new Uint8Array(s.length*2),u=0,c=s.length;u<c;u++){var d=s.charCodeAt(u);l[u*2]=d>>>8,l[u*2+1]=d%256}return l},decompressFromUint8Array:function(a){if(a==null)return i.decompress(a);for(var s=new Array(a.length/2),l=0,u=s.length;l<u;l++)s[l]=a[l*2]*256+a[l*2+1];var c=[];return s.forEach(function(d){c.push(e(d))}),i.decompress(c.join(""))},compressToEncodedURIComponent:function(a){return a==null?"":i._compress(a,6,function(s){return r.charAt(s)})},decompressFromEncodedURIComponent:function(a){return a==null?"":a==""?null:(a=a.replace(/ /g,"+"),i._decompress(a.length,32,function(s){return o(r,a.charAt(s))}))},compress:function(a){return i._compress(a,16,function(s){return e(s)})},_compress:function(a,s,l){if(a==null)return"";var u,c,d={},m={},y="",P="",C="",T=2,f=3,g=2,w=[],h=0,E=0,q;for(q=0;q<a.length;q+=1)if(y=a.charAt(q),Object.prototype.hasOwnProperty.call(d,y)||(d[y]=f++,m[y]=!0),P=C+y,Object.prototype.hasOwnProperty.call(d,P))C=P;else{if(Object.prototype.hasOwnProperty.call(m,C)){if(C.charCodeAt(0)<256){for(u=0;u<g;u++)h=h<<1,E==s-1?(E=0,w.push(l(h)),h=0):E++;for(c=C.charCodeAt(0),u=0;u<8;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}else{for(c=1,u=0;u<g;u++)h=h<<1|c,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=0;for(c=C.charCodeAt(0),u=0;u<16;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}T--,T==0&&(T=Math.pow(2,g),g++),delete m[C]}else for(c=d[C],u=0;u<g;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1;T--,T==0&&(T=Math.pow(2,g),g++),d[P]=f++,C=String(y)}if(C!==""){if(Object.prototype.hasOwnProperty.call(m,C)){if(C.charCodeAt(0)<256){for(u=0;u<g;u++)h=h<<1,E==s-1?(E=0,w.push(l(h)),h=0):E++;for(c=C.charCodeAt(0),u=0;u<8;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}else{for(c=1,u=0;u<g;u++)h=h<<1|c,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=0;for(c=C.charCodeAt(0),u=0;u<16;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1}T--,T==0&&(T=Math.pow(2,g),g++),delete m[C]}else for(c=d[C],u=0;u<g;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1;T--,T==0&&(T=Math.pow(2,g),g++)}for(c=2,u=0;u<g;u++)h=h<<1|c&1,E==s-1?(E=0,w.push(l(h)),h=0):E++,c=c>>1;for(;;)if(h=h<<1,E==s-1){w.push(l(h));break}else E++;return w.join("")},decompress:function(a){return a==null?"":a==""?null:i._decompress(a.length,32768,function(s){return a.charCodeAt(s)})},_decompress:function(a,s,l){var u=[],c,d=4,m=4,y=3,P="",C=[],T,f,g,w,h,E,q,R={val:l(0),position:s,index:1};for(T=0;T<3;T+=1)u[T]=T;for(g=0,h=Math.pow(2,2),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;switch(c=g){case 0:for(g=0,h=Math.pow(2,8),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;q=e(g);break;case 1:for(g=0,h=Math.pow(2,16),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;q=e(g);break;case 2:return""}for(u[3]=q,f=q,C.push(q);;){if(R.index>a)return"";for(g=0,h=Math.pow(2,y),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;switch(q=g){case 0:for(g=0,h=Math.pow(2,8),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;u[m++]=e(g),q=m-1,d--;break;case 1:for(g=0,h=Math.pow(2,16),E=1;E!=h;)w=R.val&R.position,R.position>>=1,R.position==0&&(R.position=s,R.val=l(R.index++)),g|=(w>0?1:0)*E,E<<=1;u[m++]=e(g),q=m-1,d--;break;case 2:return C.join("")}if(d==0&&(d=Math.pow(2,y),y++),u[q])P=u[q];else if(q===m)P=f+f.charAt(0);else return null;C.push(P),u[m++]=f+P.charAt(0),d--,f=P,d==0&&(d=Math.pow(2,y),y++)}}};return i})();typeof define=="function"&&define.amd?define(function(){return hs}):typeof Xi<"u"&&Xi!=null?Xi.exports=hs:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return hs})});var qa=null;function ol(e){qa=e}function Pe(){if(!qa)throw new Error("No active driver bound to worker runtime");return qa}var Ot={activePlatform:"web",configuredBaseUrl:"http://localhost:3000",driverServerUrl:"tcp://127.0.0.1:8200",defaultElementWaitMs:5e3,defaultNavigationWaitMs:1e4,defaultPollIntervalMs:20,defaultReadyPollIntervalMs:50},Ie=null;function It(){if(Ie)return Ie;if(globalThis.__TESTSPECTRA_CONFIG__)return Ie=globalThis.__TESTSPECTRA_CONFIG__,Ie;if(typeof process<"u"&&process.env?.TESTSPECTRA_CONFIG)try{return Ie=JSON.parse(process.env.TESTSPECTRA_CONFIG),Ie}catch{}return Ie={rootDir:typeof process<"u"?process.cwd():"",testFilePath:"",activePlatform:Ot.activePlatform,configuredBaseUrl:Ot.configuredBaseUrl,cdpWsUrl:"",driverServerUrl:Ot.driverServerUrl,manifest:{page_objects:[],fixtures:[],steps:[],actions:[],global_hooks:[],suite_hooks:{}}},Ie}var il=null;function al(e,t,r,n){il&&il(e,t,r,n)}function xr(){return It().implicitWaitMs??Ot.defaultElementWaitMs}function L(){return Math.min(xr(),2e3)}function Sr(e,t){console.log(`[${e}] ${t}`)}async function A(e,t,r){let n=It(),o=globalThis.__CURRENT_TEST_TITLE__||globalThis.__CURRENT_TEST_ID__||"",i=globalThis.__TESTSPECTRA_WORKER_ID__;o&&!t.test&&(t.test=o),i!==void 0&&t.workerId===void 0&&(t.workerId=i);let a=JSON.stringify(t);Sr("TESTSPECTRA_STEP_START",a);let s=Date.now();try{let l=await r(),u=Date.now()-s;Sr("TESTSPECTRA_STEP_PASS",`${a} (${u}ms)`),al(`step:${t.key}`,e,u,{test:o,target:t.target});let c=n.stepDelayMs||0;return c>0&&await new Promise(d=>setTimeout(d,c)),l}catch(l){let u=Date.now()-s;throw Sr("TESTSPECTRA_STEP_FAIL",`${a} (${u}ms)`),al(`step:${t.key}`,e,u,{test:o,target:t.target,failed:!0}),Sr("TESTSPECTRA_TEST_ERROR",l?.message||String(l)),l}}async function M(e,t,r=15){let n=t??xr(),o=Date.now();for(;Date.now()-o<n;){try{if(await e())return!0}catch{}await new Promise(i=>setTimeout(i,r))}try{return await e()}catch{return!1}}function sl(e,t,r){let n=()=>Pe(),o=typeof e=="string"?e:e.selector;async function i(b){return A("assertion",{type:"assertion",key:"be.visible",target:e,args:[]},async()=>{if(!await M(()=>r.isVisible(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be visible`)})}async function a(b){return A("assertion",{type:"assertion",key:"not.be.visible",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isVisible(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be visible`)})}async function s(b){return A("assertion",{type:"assertion",key:"exist",target:e,args:[]},async()=>{if(!await M(()=>r.isExisting(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to exist in DOM`)})}async function l(b){return A("assertion",{type:"assertion",key:"not.exist",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isExisting(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to exist in DOM`)})}async function u(b){return A("assertion",{type:"assertion",key:"be.enabled",target:e,args:[]},async()=>{if(!await M(()=>r.isEnabled(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be enabled`)})}async function c(b){return A("assertion",{type:"assertion",key:"be.disabled",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isEnabled(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be disabled`)})}async function d(b){return A("assertion",{type:"assertion",key:"be.clickable",target:e,args:[]},async()=>{if(!await M(()=>n().isClickable(e,t),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be clickable`)})}async function m(b){return A("assertion",{type:"assertion",key:"not.be.clickable",target:e,args:[]},async()=>{if(!await M(async()=>!await n().isClickable(e,t),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be clickable`)})}async function y(b){return A("assertion",{type:"assertion",key:"be.checked",target:e,args:[]},async()=>{if(!await M(()=>r.isChecked(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be checked`)})}async function P(b){return A("assertion",{type:"assertion",key:"not.be.checked",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isChecked(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be checked`)})}async function C(b){return A("assertion",{type:"assertion",key:"be.focused",target:e,args:[]},async()=>{if(!await M(()=>r.isFocused(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" to be focused`)})}async function T(b){return A("assertion",{type:"assertion",key:"not.be.focused",target:e,args:[]},async()=>{if(!await M(async()=>!await r.isFocused(),b?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to be focused`)})}async function f(b,v){return A("assertion",{type:"assertion",key:"have.value",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getValue(),S===String(b)),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to have value "${b}", but got "${S}"`)})}async function g(b,v){return A("assertion",{type:"assertion",key:"not.have.value",target:e,args:[b]},async()=>{if(!await M(async()=>await r.getValue()!==String(b),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have value "${b}"`)})}async function w(b,v){return A("assertion",{type:"assertion",key:"contain.value",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getValue(),S.includes(String(b))),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to contain value "${b}", but got "${S}"`)})}async function h(b,v){return A("assertion",{type:"assertion",key:"not.contain.value",target:e,args:[b]},async()=>{if(!await M(async()=>!(await r.getValue()).includes(String(b)),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to contain value "${b}"`)})}async function E(b,v){return A("assertion",{type:"assertion",key:"have.text",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getText(),b instanceof RegExp?b.test(S):S===String(b)||S.trim()===String(b).trim()),v?.timeoutMs??L()))throw b instanceof RegExp?new Error(`Expected element "${o}" text to match ${b}, but got "${S}"`):new Error(`Expected element "${o}" to have text "${b}", but got "${S}"`)})}async function q(b,v){return A("assertion",{type:"assertion",key:"not.have.text",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>await r.isExisting()?(S=await r.getText(),b instanceof RegExp?!b.test(S):S!==String(b)&&S.trim()!==String(b).trim()):!1,v?.timeoutMs??L()))throw b instanceof RegExp?new Error(`Expected element "${o}" text not to match ${b}`):new Error(`Expected element "${o}" not to have text "${b}"`)})}async function R(b,v){return A("assertion",{type:"assertion",key:"contain.text",target:e,args:[b]},async()=>{let S="";if(!await M(async()=>(S=await r.getText(),S.includes(String(b))),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to contain text "${b}", but got "${S}"`)})}async function H(b,v){return A("assertion",{type:"assertion",key:"not.contain.text",target:e,args:[b]},async()=>{if(!await M(async()=>!(await r.getText()).includes(String(b)),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to contain text "${b}"`)})}async function B(b,v){return A("assertion",{type:"assertion",key:"have.class",target:e,args:[b]},async()=>{if(!await M(()=>n().hasClass(e,b,t),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" to have class "${b}"`)})}async function W(b,v){return A("assertion",{type:"assertion",key:"not.have.class",target:e,args:[b]},async()=>{if(!await M(async()=>!await n().hasClass(e,b,t),v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have class "${b}"`)})}async function K(b,v,S){return A("assertion",{type:"assertion",key:"have.attr",target:e,args:v!==void 0?[b,v]:[b]},async()=>{let j=null;if(!await M(async()=>(j=await r.getAttribute(b),v!==void 0?j===String(v):j!==null),S?.timeoutMs??L()))throw v!==void 0?new Error(`Expected element "${o}" to have attribute "${b}" = "${v}", but got "${j}"`):new Error(`Expected element "${o}" to have attribute "${b}"`)})}async function O(b,v){return A("assertion",{type:"assertion",key:"not.have.attr",target:e,args:[b]},async()=>{if(!await M(async()=>await r.getAttribute(b)===null,v?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have attribute "${b}"`)})}async function G(b,v,S){return A("assertion",{type:"assertion",key:"have.css",target:e,args:[b,v]},async()=>{let j=le=>String(le??"").replace(/\s+/g,"").replace(/rgba\((.+?),1\)/,"rgb($1)").toLowerCase(),N="";if(!await M(async()=>(N=(await r.getCSSProperty(b)).value,j(N)===j(v)),S?.timeoutMs??L()))throw new Error(`Expected element "${o}" to have CSS "${b}" = "${v}", but got "${N}"`)})}async function Y(b,v,S){return A("assertion",{type:"assertion",key:"not.have.css",target:e,args:[b,v]},async()=>{let j=pe=>String(pe??"").replace(/\s+/g,"").replace(/rgba\((.+?),1\)/,"rgb($1)").toLowerCase();if(!await M(async()=>{let pe=await r.getCSSProperty(b);return j(pe.value)!==j(v)},S?.timeoutMs??L()))throw new Error(`Expected element "${o}" not to have CSS "${b}" = "${v}"`)})}return{shouldBeVisible:i,shouldNotBeVisible:a,shouldExist:s,shouldNotExist:l,shouldBeEnabled:u,shouldBeDisabled:c,shouldBeClickable:d,shouldNotBeClickable:m,shouldBeChecked:y,shouldNotBeChecked:P,shouldBeFocused:C,shouldNotBeFocused:T,shouldHaveValue:f,shouldNotHaveValue:g,shouldContainValue:w,shouldNotContainValue:h,shouldHaveText:E,shouldNotHaveText:q,shouldContainText:R,shouldNotContainText:H,shouldHaveClass:B,shouldNotHaveClass:W,shouldHaveAttribute:K,shouldNotHaveAttribute:O,shouldHaveCss:G,shouldNotHaveCss:Y}}var ll=new Map;function ul(e,t){ll.set(e,t)}function cl(){return ll.entries()}var dl=Symbol("testspectra.elementScope");function pl(e,t){Object.defineProperty(e,dl,{value:t,enumerable:!1})}function Aa(e){if(!(e===null||typeof e!="object"))return e[dl]}function fl(e,t){let r=()=>Pe(),n=typeof e=="string"?e:e.selector;async function o(){return await r().getText(e,t)}async function i(){return await r().getValue(e,t)}async function a(){return await r().isDisplayed(e,t)}async function s(){return await a()}async function l(){return await r().isExisting(e,t)}async function u(){return await r().isEnabled(e,t)}async function c(){return await r().isClickable(e,t)}async function d(){return await r().isSelected(e,t)}async function m(){return await d()}async function y(){return await r().isFocused(e,t)}async function P(g){return await r().getAttribute(e,g,t)}async function C(g){return await r().getCSSProperty(e,g,t)}async function T(g){let w=g??xr();if(await M(async()=>r().isExisting(e,t),w))return!0;throw new Error("Element not found: "+JSON.stringify(n))}async function f(g={}){let w=g.timeout||5e3,h=Date.now();for(;Date.now()-h<w;){if(await r().isDisplayed(e,t))return!0;await new Promise(E=>setTimeout(E,20))}throw new Error(`Element ${n} not displayed after ${w}ms`)}return{getText:o,getValue:i,isDisplayed:a,isVisible:s,isExisting:l,isEnabled:u,isClickable:c,isSelected:d,isChecked:m,isFocused:y,getAttribute:P,getCSSProperty:C,waitForElement:T,waitForDisplayed:f}}function ml(e){return typeof e=="string"?e:e.selector}function Ma(e,t){return typeof e=="string"?{selector:e,index:t,parent:void 0}:e}function ue(e,t=null){let r=ml(e),n=typeof e=="string"?t:e.index,o=bl(e,t),i=fl(e,t),a=sl(e,t,i),s={selector:r,index:n,...o,...i,...a,get(u,c=null){return ue({selector:u,index:c,parent:Ma(e,t)},null)},getAll(u){return Te({selector:u,index:null,parent:Ma(e,t)})}};pl(s,Ma(e,t));let l=s;for(let[u,c]of cl())u in l||(l[u]=(...d)=>c.apply(s,d));return s}function Te(e){let t=()=>Pe(),r=ml(e),n=i=>typeof e=="string"?[e,i]:[{...e,index:i},null];return{selector:r,async count(){return await t().count(e)},get length(){return this.count()},first(){return ue(...n(0))},last(){return ue(...n(-1))},nth(i){return ue(...n(i))},async shouldHaveLength(i,a){return A("assertion",{type:"assertion",key:"have.length",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s===i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count to equal ${i}, but got ${s}`)})},async shouldNotHaveLength(i,a){return A("assertion",{type:"assertion",key:"not.have.length",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s!==i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count not to equal ${i}`)})},async shouldHaveLengthGreaterThan(i,a){return A("assertion",{type:"assertion",key:"have.length.greaterThan",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s>i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count to be greater than ${i}, but got ${s}`)})},async shouldHaveLengthLessThan(i,a){return A("assertion",{type:"assertion",key:"have.length.lessThan",target:e,args:[i]},async()=>{let s=0;if(!await M(async()=>(s=await this.count(),s<i),a?.timeoutMs??L()))throw new Error(`Expected collection "${r}" count to be less than ${i}, but got ${s}`)})},async shouldBeEmpty(i){return A("assertion",{type:"assertion",key:"be.empty",target:e,args:[]},async()=>{let a=0;if(!await M(async()=>(a=await this.count(),a===0),i?.timeoutMs??L()))throw new Error(`Expected collection "${r}" to be empty, but got ${a}`)})},async shouldNotBeEmpty(i){return A("assertion",{type:"assertion",key:"not.be.empty",target:e,args:[]},async()=>{let a=0;if(!await M(async()=>(a=await this.count(),a>0),i?.timeoutMs??L()))throw new Error(`Expected collection "${r}" not to be empty`)})}}}function ne(e){if(typeof e=="string")return ue(e,null);if(e&&typeof e=="object"&&"selector"in e)return e;throw new Error(`Invalid element target: ${String(e)}`)}function vl(e){return typeof e=="string"?e:e.selector}function bl(e,t){let r=()=>Pe();async function n(v){return A("action",{type:"action",key:"click",target:e,args:[]},async()=>{await r().click(e,t)})}async function o(){return A("action",{type:"action",key:"doubleClick",target:e,args:[]},async()=>{await r().doubleClick(e,t)})}async function i(){return A("action",{type:"action",key:"rightClick",target:e,args:[]},async()=>{await r().rightClick(e,t)})}async function a(v){return A("action",{type:"action",key:"type",target:e,args:[v]},async()=>{await r().setValue(e,v,t)})}async function s(v,S){S?.clearFirst&&await l(),await a(v)}async function l(){return A("action",{type:"action",key:"clear",target:e,args:[]},async()=>{await r().clearValue(e,t)})}async function u(){await l()}async function c(v){return A("action",{type:"action",key:"select",target:e,args:[v]},async()=>{await r().select(e,v,t)})}async function d(v){await c(v)}async function m(){return A("action",{type:"action",key:"hover",target:e,args:[]},async()=>{await r().hover(e,t)})}async function y(){return A("action",{type:"action",key:"focus",target:e,args:[]},async()=>{await r().focus(e,t)})}async function P(){return A("action",{type:"action",key:"blur",target:e,args:[]},async()=>{await r().blur(e,t)})}async function C(v){return A("action",{type:"action",key:"waitForElementRemoved",target:e,args:[v??5e3]},async()=>{if(!await M(async()=>!await r().isExisting(e,t),v??5e3))throw new Error("Element still exists after timeout: "+JSON.stringify(vl(e)))})}async function T(v){return A("action",{type:"action",key:"waitForUndisplayed",target:e,args:[v?.timeout??5e3]},async()=>{if(!await M(async()=>!await r().isDisplayed(e,t),v?.timeout??5e3))throw new Error("Element still displayed after timeout: "+JSON.stringify(vl(e)))})}async function f(v){return A("action",{type:"action",key:"waitForClickable",target:e,args:[v?.timeout??5e3]},async()=>await M(async()=>await r().isClickable(e,t),v?.timeout??5e3))}async function g(){return A("action",{type:"action",key:"getBounds",target:e,args:[]},async()=>await r().getBounds(e,t))}function w(){let v=typeof e=="string"?e:e.selector,S=typeof e=="string"?t:e.index;return S==null?v:`${v}::nth(${S})`}function h(){return ue(w()+"::parent",null)}async function E(v){return A("action",{type:"action",key:"closest",target:e,args:[v]},async()=>await r().closest(e,v,t)?ue(`${w()}::closest(${v})`,null):null)}function q(v){return Te(`${w()}::children(${v??""})`)}function R(v){return Te(`${w()}::siblings(${v??""})`)}function H(v){return ue(`${w()}::next(${v??""})`,null)}async function B(){await m()}async function W(v){let S=typeof v=="string"?v:v?.selector||String(v);return A("action",{type:"action",key:"dragDrop",target:e,args:[S]},async()=>{await r().dragDrop(e,S,t)})}async function K(v){await W(v)}async function O(v){let S=typeof v=="number"?v:v?.duration||1e3;return A("action",{type:"action",key:"longPress",target:e,args:[S]},async()=>{await r().longPress(e,S,t)})}async function G(){return A("action",{type:"action",key:"scrollIntoView",target:e,args:[]},async()=>{await r().scrollIntoView(e,t)})}async function Y(v){return A("action",{type:"action",key:"upload",target:e,args:[v]},async()=>{await r().upload(e,v,t)})}async function b(v){await Y(v)}return{click:n,doubleClick:o,rightClick:i,setValue:a,type:s,clearValue:l,clear:u,select:c,selectByVisibleText:d,hover:m,focus:y,blur:P,waitForElementRemoved:C,waitForUndisplayed:T,waitForClickable:f,getBounds:g,parent:h,closest:E,children:q,siblings:R,next:H,moveTo:B,dragDrop:W,dragAndDrop:K,longPress:O,scrollIntoView:G,upload:Y,uploadFile:b}}var hl=["number","date","time","color","file","range"],yl=e=>e.replace(/[^\p{L}\p{N}]/gu,"");function ka(e,t,r){return t===null||r===null?!0:t===e||t!==r||yl(t)===yl(e)}function gl(e,t,r){return new Error(`Typed text did not reach element "${e}": expected "${t}", got "${r}"`)}var Kb={Backspace:{code:"Backspace",windowsVirtualKeyCode:8},Tab:{code:"Tab",windowsVirtualKeyCode:9},Enter:{code:"Enter",windowsVirtualKeyCode:13,text:"\r"},Escape:{code:"Escape",windowsVirtualKeyCode:27},Delete:{code:"Delete",windowsVirtualKeyCode:46},ArrowLeft:{code:"ArrowLeft",windowsVirtualKeyCode:37},ArrowUp:{code:"ArrowUp",windowsVirtualKeyCode:38},ArrowRight:{code:"ArrowRight",windowsVirtualKeyCode:39},ArrowDown:{code:"ArrowDown",windowsVirtualKeyCode:40},Home:{code:"Home",windowsVirtualKeyCode:36},End:{code:"End",windowsVirtualKeyCode:35},PageUp:{code:"PageUp",windowsVirtualKeyCode:33},PageDown:{code:"PageDown",windowsVirtualKeyCode:34}};function El(e){if(typeof e!="string")return null;let t=Kb[e];return t?{key:e,...t}:null}function Oa(e,t){if(!e||e==="*"||e==="**"||e==="ALL")return!0;if(e.startsWith("/")&&e.endsWith("/"))try{return new RegExp(e.slice(1,-1)).test(t)}catch{}if(e.includes("*")){let r=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");try{return new RegExp(`^${r}(?:[?#].*)?$`,"i").test(t)}catch{}}return t.toLowerCase().includes(e.toLowerCase())}function qr(e,t){let r=!1,n={unroute:()=>{r||(r=!0,t?.())},respondWith:async(i,a={})=>{let s=i;e.response=s&&s.body!==void 0?s.body:i,(a.statusCode||s&&s.statusCode)&&(e.statusCode=a.statusCode||s?.statusCode||200),(a.headers||s&&s.headers)&&(e.headers=a.headers||s?.headers),(a.delayMs!==void 0||s&&s.delayMs!==void 0)&&(e.delayMs=a.delayMs??s?.delayMs),e.aborted=!1},respondOnce:async(i,a={})=>{let s=i,l=s&&s.body!==void 0?s.body:i,u=a.statusCode||s&&s.statusCode||e.statusCode||200,c=a.headers||s&&s.headers||e.headers,d=a.delayMs??(s&&s.delayMs)??e.delayMs;e.respondOnceQueue.push({response:l,statusCode:u,headers:c,delayMs:d}),e.aborted=!1},abort:async(i="Failed")=>{e.aborted=!0,e.abortReason=i},waitForCall:async(i={})=>{let a=i.count??1,s=i.timeout??5e3;return e.calls.length>=a?e.calls[a-1]:new Promise((l,u)=>{let c=setTimeout(()=>{let d=e.waitResolvers.findIndex(m=>m.resolve===l);d!==-1&&e.waitResolvers.splice(d,1),u(new Error(`Spectra.intercept waitForCall timed out after ${s}ms (expected at least ${a} call(s), received ${e.calls.length})`))},s);e.waitResolvers.push({count:a,resolve:d=>{clearTimeout(c),l(d)}})})}},o=()=>e.callCount;return n.callCount=Object.assign(o,{valueOf:()=>e.callCount,[Symbol.toPrimitive]:()=>e.callCount}),Object.defineProperty(n,"calls",{get:()=>e.calls,enumerable:!0}),n}function Ar(e,t,r,n){let o,i,a,s,l,u;if(typeof e=="object"&&e!==null)o=e.url||e.pattern||"*",i=(e.method||"GET").toUpperCase(),a=e.response!==void 0?e.response:typeof t=="object"&&t!==null?t:r,s=e.statusCode||n&&n.statusCode||200,l=e.headers||n&&n.headers,u=e.delayMs??(n&&n.delayMs);else if(o=String(e||"*"),typeof t=="string"&&["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","ALL"].includes(t.toUpperCase())){i=t.toUpperCase();let c=r;a=c&&c.body!==void 0?c.body:r,s=n&&n.statusCode||c&&c.statusCode||200,l=n&&n.headers||c&&c.headers,u=(n&&n.delayMs)??(c&&c.delayMs)}else{i="GET";let c=t;a=c&&c.body!==void 0?c.body:t,s=r&&r.statusCode||c&&c.statusCode||200,l=r&&r.headers||c&&c.headers,u=(r&&r.delayMs)??(c&&c.delayMs)}return{pattern:o,method:i,response:a,statusCode:s,headers:l,delayMs:u,callCount:0,respondOnceQueue:[],calls:[],waitResolvers:[]}}function Nt(e,t,r){for(let n of e)if(Oa(n.pattern,t)&&(!n.method||n.method==="ALL"||n.method.toUpperCase()===r.toUpperCase()))return n;return null}function Lt(e,t){e.calls.push(t),e.callCount++;for(let r=e.waitResolvers.length-1;r>=0;r--){let n=e.waitResolvers[r];e.callCount>=n.count&&(e.waitResolvers.splice(r,1),n.resolve(t))}return t}function Dt(e){if(e.respondOnceQueue.length>0){let t=e.respondOnceQueue.shift();return{body:t.response,statusCode:t.statusCode||e.statusCode||200,headers:{...e.headers,...t.headers},delayMs:t.delayMs??e.delayMs}}return{body:e.response,statusCode:e.statusCode||200,headers:{...e.headers},delayMs:e.delayMs}}var Gb={"Content-Type":"application/json; charset=utf-8","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"*"};function Mr(e){let t=new Map;for(let[r,n]of Object.entries(Gb))t.set(r.toLowerCase(),{name:r,value:n});for(let[r,n]of Object.entries(e||{}))t.set(r.toLowerCase(),{name:r,value:String(n)});return[...t.values()]}function Bt(e){return typeof e=="string"?e:typeof e=="object"&&e!==null?JSON.stringify(e):String(e??"")}function wl(e){let t=/^(.*)::nth\((-?\d+)\)$/.exec(e);if(t)return{kind:"nth",base:t[1],arg:t[2]};let r=/^(.*)::closest\((.+)\)$/.exec(e);if(r)return{kind:"closest",base:r[1],arg:r[2]};let n=/^(.*)::children\((.*)\)$/.exec(e);if(n)return{kind:"children",base:n[1],arg:n[2].trim()||null};let o=/^(.*)::children$/.exec(e);if(o)return{kind:"children",base:o[1],arg:null};let i=/^(.*)::siblings\((.*)\)$/.exec(e);if(i)return{kind:"siblings",base:i[1],arg:i[2].trim()||null};let a=/^(.*)::siblings$/.exec(e);if(a)return{kind:"siblings",base:a[1],arg:null};let s=/^(.*)::next\((.*)\)$/.exec(e);if(s)return{kind:"next",base:s[1],arg:s[2].trim()||null};let l=/^(.*)::next$/.exec(e);if(l)return{kind:"next",base:l[1],arg:null};let u=/^(.*)::parent$/.exec(e);return u?{kind:"parent",base:u[1]}:null}function Ia(e){let t=e.trim();if(!t.startsWith("~"))return null;let r=t.slice(1),n=r.indexOf("[");return n!==-1?{name:r.slice(0,n),chainSuffix:r.slice(n)}:{name:r,chainSuffix:""}}function _l(e){let t=Ia(e);if(!t)return null;let{name:r,chainSuffix:n}=t,o=JSON.stringify(r);return`:is([aria-label=${o}], [title=${o}])${n}`}function Cl(e,t,r){let o=Array.from(t.querySelectorAll("[aria-labelledby]")).filter(i=>(i.getAttribute("aria-labelledby")??"").trim().split(/\s+/).map(l=>{let u=document.getElementById(l);return u?(u.textContent??"").trim():""}).filter(Boolean).join(" ").trim()===e);return r===null?o[0]??null:r>=0?o[r]??null:o[o.length+r]??null}var Xb=new Set(["mount","unmount","registerCommand","registerCommands"]),Qb=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Pl(){let e=()=>Pe(),t={get:r=>ne(r),getAll:r=>Te(r),navigate:r=>e().navigate(r),back:()=>e().back(),forward:()=>e().forward(),refresh:()=>e().refresh(),setViewport:(r,n)=>e().setViewport(r,n),wait:r=>e().pause(r),click:async(r,n)=>{await ne(r).click()},clickAt:async(r,n)=>{await e().clickAt(r,n)},doubleClick:async r=>{await ne(r).doubleClick()},rightClick:async r=>{await ne(r).rightClick()},type:async(r,n,o)=>{await ne(r).type(n,o)},clear:async r=>{await ne(r).clear()},select:async(r,n)=>{await ne(r).select(n)},hover:async r=>{await ne(r).hover()},focus:async r=>{await ne(r).focus()},blur:async r=>{await ne(r).blur()},dragDrop:async(r,n)=>{await ne(r).dragDrop(n)},scrollIntoView:async r=>{await ne(r).scrollIntoView()},scroll:async r=>{await e().scroll(r)},swipe:async r=>{await e().swipe(r)},longPress:async(r,n)=>{await ne(r).longPress(n)},pressKey:async r=>{await e().pressKey(r)},grantPermission:async r=>{await e().grantPermission(r)},waitForElement:async(r,n)=>{await ne(r).waitForElement(n)},intercept:async(r,n,o,i)=>await e().intercept(r,n,o,i),clearMocks:()=>{e().clearMocks()},get browser(){return e()},get env(){return It().environmentVariables||{}}};return t.registerCommand=(r,n)=>{if(typeof n!="function")throw new Error(`[TestSpectra] Custom command "${r}" must be a function.`);if(!Qb.test(r))throw new Error(`[TestSpectra] Invalid custom command name "${r}"; must be a valid identifier.`);if(Xb.has(r)||r in t)throw new Error(`[TestSpectra] Custom command "${r}" collides with a built-in Spectra method.`);t[r]=n,ul(r,n)},t.registerCommands=r=>{for(let[n,o]of Object.entries(r))t.registerCommand(n,o)},t}function Tl(){return typeof globalThis.__TESTSPECTRA_STEP_DELAY_MS__=="number"?globalThis.__TESTSPECTRA_STEP_DELAY_MS__:typeof window<"u"&&typeof window.__TESTSPECTRA_STEP_DELAY_MS__=="number"?window.__TESTSPECTRA_STEP_DELAY_MS__:0}var Yb=5e3;function kr(e,t){(typeof globalThis.__TESTSPECTRA_SEMANTIC_REPORTER__=="boolean"?globalThis.__TESTSPECTRA_SEMANTIC_REPORTER__:!(typeof window<"u"&&typeof window.__TESTSPECTRA_SEMANTIC_REPORTER__=="boolean")||window.__TESTSPECTRA_SEMANTIC_REPORTER__)&&console.log(`[${e}] ${t}`)}function Na(){return Yb}function Jb(){return Math.min(Na(),2e3)}async function Zb(e,t,r){let n=globalThis.__CURRENT_TEST_TITLE__;n&&!t.test&&(t.test=n);let o=JSON.stringify(t);kr("TESTSPECTRA_STEP_START",o);let i=Date.now();try{let a=await r(),s=Date.now()-i;kr("TESTSPECTRA_STEP_PASS",`${o} (${s}ms)`);let l=Tl();return l>0&&await new Promise(u=>setTimeout(u,l)),a}catch(a){let s=Date.now()-i;throw kr("TESTSPECTRA_STEP_FAIL",`${o} (${s}ms)`),a}}async function ev(e,t,r=15){let n=t??Na(),o=Date.now();for(;Date.now()-o<n;){try{if(await e())return!0}catch{}await new Promise(i=>setTimeout(i,r))}try{return await e()}catch{return!1}}globalThis.__TESTSPECTRA_CONFIG__={rootDir:"",activePlatform:"web",configuredBaseUrl:"",cdpWsUrl:"",driverServerUrl:"",stepDelayMs:Tl()};globalThis.__TS_RUNTIME__={activeDriver:null,mobileMockRules:[],lastFocusedSelector:null,emitEvent:kr,trackStep:Zb,pollCondition:ev,getImplicitWaitMs:Na,getAssertionTimeoutMs:Jb,matchesUrlPattern:Oa,createMockHandle:qr,parseMockRule:Ar,findMatchingRule:Nt,recordMockCall:Lt,consumeMockResponse:Dt,mergeMockResponseHeaders:Mr,mockResponseBodyText:Bt,createElementProxy:ue,createCollectionProxy:Te,beforeHook:null,afterHook:null,beforeEachHook:null,afterEachHook:null,suiteBeforeEachHooks:{},suiteAfterEachHooks:{}};var Rl=new Set;async function Sl(e,t=[],r,n={platform:"web"}){for(let o of t)if(!Rl.has(o))try{let i=await r(o),a=i?.default??i?.plugin??i;typeof a=="function"?await a(e,n):a&&typeof a.setup=="function"?await a.setup(e,n):console.error(`[TestSpectra] Plugin "${o}" has no default export function or setup() method \u2014 skipping.`),Rl.add(o)}catch(i){console.error(`[TestSpectra] Failed to load plugin "${o}": ${i?.stack||i?.message||i}`)}}function tv(){let e=globalThis,t;try{t=e.__TESTSPECTRA_AUTO_IMPORT_MANIFEST__}catch{}if(!t&&typeof window<"u"&&(t=window.__TESTSPECTRA_AUTO_IMPORT_MANIFEST__),!t)return null;if(typeof t=="string")try{return JSON.parse(t)}catch{return null}return t}var xl=new Map;async function Or(e){let t=xl.get(e);if(t)return t;let r,o=typeof globalThis.__vitest_browser_runner__<"u"||typeof globalThis.__vitest_worker__<"u"?`/@fs/${e.replace(/\\/g,"/")}`.replace(/\/@fs\/\//g,"/@fs/"):`/test?file=${encodeURIComponent(e)}`;if(e.endsWith(".json"))try{let i=await fetch(o);if(i.ok)r=await i.json();else throw new Error(`Failed to fetch JSON fixture: ${i.status}`)}catch{r=await new Function("specifier",'return import(specifier, { with: { type: "json" } })')(o)}else r=await new Function("specifier","return import(specifier)")(o);return xl.set(e,r),r}async function La(e){let t=e??tv();if(!t)return;let r=t.pageObjects??t.page_objects??[];for(let l of r){let u=l.path??l.file_path;if(u){let c=await Or(u);globalThis[l.name]=c.default??c}}let n={},o=t.fixtures??[];for(let l of o){let u=l.path??l.file_path;if(u){let c=u.split("/").pop()?.split("\\").pop()||`${l.name}.bin`;try{let d=await Or(u),m=d?.default!==void 0?d.default:d??u;typeof m=="string"&&m.startsWith("data:")&&!m.includes("name=")&&(m=m.replace(/^data:([^;,]+)/,y=>`${y};name=${encodeURIComponent(c)}`)),n[l.name]=m}catch{n[l.name]=u}}}globalThis.Fixture=n;let i={},a=t.steps??[];for(let l of a){let u=l.path??l.file_path;if(u){let c=await Or(u);i[l.name]=c.default??c}}globalThis.Step=i;let s=rv();s.length>0&&globalThis.Spectra&&await Sl(globalThis.Spectra,s,Or,{platform:"web"})}function rv(){let e=globalThis,t;try{t=e.__TESTSPECTRA_PLUGINS__}catch{}if(!t&&typeof window<"u"&&(t=window.__TESTSPECTRA_PLUGINS__),!t)return[];if(Array.isArray(t))return t.filter(r=>typeof r=="string");if(typeof t=="string")try{let r=JSON.parse(t);return Array.isArray(r)?r.filter(n=>typeof n=="string"):[]}catch{return[]}return[]}globalThis.__bootstrapAutoImports=La;function x(e,t,r){return e.namespaceURI&&e.namespaceURI!=="http://www.w3.org/1999/xhtml"||(t=Array.isArray(t)?t:[t],!t.includes(e.tagName.toLowerCase()))?!1:r?Object.entries(r).every(([n,o])=>e[n]===o):!0}function V(e){var t;if(nv(e)&&e.defaultView)return e.defaultView;if(!((t=e.ownerDocument)===null||t===void 0)&&t.defaultView)return e.ownerDocument.defaultView;throw new Error(`Could not determine window of node. Node was ${ov(e)}`)}function nv(e){return e.nodeType===9}function ov(e){return typeof e=="function"?`function ${e.name}`:e===null?"null":String(e)}function Da(e,t){return new Promise((r,n)=>{let o=new t;o.onerror=n,o.onabort=n,o.onload=()=>{r(String(o.result))},o.readAsText(e)})}function Ft(e,t){let r={...t,length:t.length,item:n=>r[n],[Symbol.iterator]:function*(){for(let o=0;o<r.length;o++)yield r[o]}};return r.constructor=e.FileList,e.FileList&&Object.setPrototypeOf(r,e.FileList.prototype),Object.freeze(r),r}function Ne(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ut=class{getAsFile(){return this.file}getAsString(t){typeof this.data=="string"&&t(this.data)}webkitGetAsEntry(){throw new Error("not implemented")}constructor(t,r){Ne(this,"kind",void 0),Ne(this,"type",void 0),Ne(this,"file",null),Ne(this,"data",void 0),typeof t=="string"?(this.kind="string",this.type=String(r),this.data=t):(this.kind="file",this.type=t.type,this.file=t)}};function ql(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}var Fa=class extends Array{add(...t){let r=typeof t[0]=="string"?new Ut(t[0],ql(t[1])):new Ut(t[0]);return this.push(r),r}clear(){this.splice(0,this.length)}remove(t){this.splice(t,1)}};function Ba(e){let t=ql(e);return t==="text"?"text/plain":t==="url"?"text/uri-list":t}function Ir(e,t){let[r,n]=e.split("/"),o=!n||n==="*";return i=>t?i.type===(o?r:e):o?i.type.startsWith(`${r}/`):i.type===r}function iv(e){return new class{getData(r){var n;let o=Ba(r),i=(n=this.items.find(Ir(o,!0)))!==null&&n!==void 0?n:this.items.find(Ir(o,!1)),a="";return i?.getAsString(s=>{a=s}),a}setData(r,n){let o=Ba(r),i=this.items.findIndex(Ir(o,!0)),a=new Ut(n,o);i>=0?this.items.splice(i,1,a):this.items.push(a)}clearData(r){if(r){let n=Ba(r),o=this.items.findIndex(Ir(n,!0));o>=0&&this.items.remove(o)}else this.items.clear()}get types(){let r=[];return this.files.length&&r.push("Files"),this.items.forEach(n=>r.push(n.type)),Object.freeze(r),r}setDragImage(){}constructor(){Ne(this,"dropEffect","none"),Ne(this,"effectAllowed","uninitialized"),Ne(this,"items",new Fa),Ne(this,"files",Ft(e,[]))}}}function vt(e,t=[]){let r=typeof e.DataTransfer>"u"?iv(e):new e.DataTransfer;return Object.defineProperty(r,"files",{get:()=>Ft(e,t)}),r}async function Al(e,t){return t.kind==="file"?t.getAsFile():new e.Blob([await new Promise(r=>t.getAsString(r))],{type:t.type})}function kl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ol(e,...t){let r=Object.fromEntries(t.map(n=>[typeof n=="string"?"text/plain":n.type,Promise.resolve(n)]));return typeof e.ClipboardItem<"u"?new e.ClipboardItem(r):new class{get types(){return Array.from(Object.keys(this.data))}async getType(o){let i=await this.data[o];if(!i)throw new Error(`${o} is not one of the available MIME types on this item.`);return i instanceof e.Blob?i:new e.Blob([i],{type:o})}constructor(o){kl(this,"data",void 0),this.data=o}}(r)}var yt=Symbol("Manage ClipboardSub");function Ml(e,t){return Object.assign(new class extends e.EventTarget{async read(){return Array.from(this.items)}async readText(){let n="";for(let o of this.items){let i=o.types.includes("text/plain")?"text/plain":o.types.find(a=>a.startsWith("text/"));i&&(n+=await o.getType(i).then(a=>Da(a,e.FileReader)))}return n}async write(n){this.items=n}async writeText(n){this.items=[Ol(e,n)]}constructor(...n){super(...n),kl(this,"items",[])}},{[yt]:t})}function Ua(e){return!!e?.[yt]}function Il(e){if(Ua(e.navigator.clipboard))return e.navigator.clipboard[yt];let t=Object.getOwnPropertyDescriptor(e.navigator,"clipboard"),r,n={resetClipboardStub:()=>{r=Ml(e,n)},detachClipboardStub:()=>{t?Object.defineProperty(e.navigator,"clipboard",t):Object.defineProperty(e.navigator,"clipboard",{value:void 0,configurable:!0})}};return r=Ml(e,n),Object.defineProperty(e.navigator,"clipboard",{get:()=>r,configurable:!0}),r[yt]}function av(e){Ua(e.navigator.clipboard)&&e.navigator.clipboard[yt].resetClipboardStub()}function sv(e){Ua(e.navigator.clipboard)&&e.navigator.clipboard[yt].detachClipboardStub()}async function Nl(e){let t=e.defaultView,r=t?.navigator.clipboard,n=r&&await r.read();if(!n)throw new Error("The Clipboard API is unavailable.");let o=vt(t);for(let i of n)for(let a of i.types)o.setData(a,await i.getType(a).then(s=>Da(s,t.FileReader)));return o}async function Lr(e,t){let r=V(e),n=r.navigator.clipboard,o=[];for(let a=0;a<t.items.length;a++){let s=t.items[a],l=await Al(r,s);o.push(Ol(r,l))}if(!(n&&await n.write(o).then(()=>!0,()=>!1)))throw new Error("The Clipboard API is unavailable.")}var Nr=globalThis;typeof Nr.afterEach=="function"&&Nr.afterEach(()=>{typeof globalThis.window<"u"&&av(globalThis.window)});typeof Nr.afterAll=="function"&&Nr.afterAll(()=>{typeof globalThis.window<"u"&&sv(globalThis.window)});var Dr=["input:not([type=hidden]):not([disabled])","button:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[contenteditable=""]','[contenteditable="true"]',"a[href]","[tabindex]:not([disabled])","details > summary"].join(", ");function jt(e){return e.matches(Dr)}function Ll(e){return new e.constructor(e.type,e)}function te(e){for(let r=e;r;r=r.parentElement)if(x(r,["button","input","select","textarea","optgroup","option"])){if(r.hasAttribute("disabled"))return!0}else if(x(r,"fieldset")){var t;if(r.hasAttribute("disabled")&&!(!((t=r.querySelector(":scope > legend"))===null||t===void 0)&&t.contains(e)))return!0}else if(r.tagName.includes("-")&&r.constructor.formAssociated&&r.hasAttribute("disabled"))return!0;return!1}function Le(e){let t=e.activeElement;if(t?.shadowRoot){let r=Le(t.shadowRoot);if(r)return r}else if(t&&x(t,"iframe")){let r=t.contentDocument;if(r)return Le(r)}return te(t)?e.ownerDocument?e.ownerDocument.body:e.body:t}function ht(e){var t;return(t=Le(e))!==null&&t!==void 0?t:e.body}function Dl(e,t){let r=e;do{if(t(r))return r;r=r.parentElement}while(r&&r!==e.ownerDocument.body)}function ce(e){return e.hasAttribute("contenteditable")&&(e.getAttribute("contenteditable")=="true"||e.getAttribute("contenteditable")=="")}function De(e){let t=lv(e);return t&&(t.closest('[contenteditable=""]')||t.closest('[contenteditable="true"]'))}function lv(e){return e.nodeType===1?e:e.parentElement}var Bl=(function(e){return e.button="button",e.color="color",e.file="file",e.image="image",e.reset="reset",e.submit="submit",e.checkbox="checkbox",e.radio="radio",e})(Bl||{});function Br(e){return x(e,"button")||x(e,"input")&&e.type in Bl}function ve(e){return ja(e)&&!e.readOnly||ce(e)}var Fl=(function(e){return e.text="text",e.date="date",e["datetime-local"]="datetime-local",e.email="email",e.month="month",e.number="number",e.password="password",e.search="search",e.tel="tel",e.time="time",e.url="url",e.week="week",e})(Fl||{});function ja(e){return x(e,"textarea")||x(e,"input")&&e.type in Fl}function X(e){return jl(e)&&ja(e)}function Ul(e){return jl(e)&&Br(e)}function jl(e){return e.nodeType===1}function $l(e){let t=e.ownerDocument.getSelection();if(t?.focusNode&&X(e)){let n=De(t.focusNode);if(n){if(!t.isCollapsed){var r;let o=((r=n.firstChild)===null||r===void 0?void 0:r.nodeType)===3?n.firstChild:n;t.setBaseAndExtent(o,0,o,0)}}else t.setBaseAndExtent(e,0,e,0)}}function Fr(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var ra=xa(ec());var Hy=Object.prototype.toString;function tc(e){return typeof e=="function"||Hy.call(e)==="[object Function]"}function Vy(e){var t=Number(e);return isNaN(t)?0:t===0||!isFinite(t)?t:(t>0?1:-1)*Math.floor(Math.abs(t))}var Wy=Math.pow(2,53)-1;function zy(e){var t=Vy(e);return Math.min(Math.max(t,0),Wy)}function de(e,t){var r=Array,n=Object(e);if(e==null)throw new TypeError("Array.from requires an array-like object - not null or undefined");if(typeof t<"u"&&!tc(t))throw new TypeError("Array.from: when provided, the second argument must be a function");for(var o=zy(n.length),i=tc(r)?Object(new r(o)):new Array(o),a=0,s;a<o;)s=n[a],t?i[a]=t(s,a):i[a]=s,a+=1;return i.length=o,i}function tr(e){"@babel/helpers - typeof";return tr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tr(e)}function Ky(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rc(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,nc(n.key),n)}}function Gy(e,t,r){return t&&rc(e.prototype,t),r&&rc(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Xy(e,t,r){return t=nc(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nc(e){var t=Qy(e,"string");return tr(t)==="symbol"?t:String(t)}function Qy(e,t){if(tr(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(tr(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Yy=(function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];Ky(this,e),Xy(this,"items",void 0),this.items=t}return Gy(e,[{key:"add",value:function(r){return this.has(r)===!1&&this.items.push(r),this}},{key:"clear",value:function(){this.items=[]}},{key:"delete",value:function(r){var n=this.items.length;return this.items=this.items.filter(function(o){return o!==r}),n!==this.items.length}},{key:"forEach",value:function(r){var n=this;this.items.forEach(function(o){r(o,o,n)})}},{key:"has",value:function(r){return this.items.indexOf(r)!==-1}},{key:"size",get:function(){return this.items.length}}]),e})(),oc=typeof Set>"u"?Set:Yy;function Q(e){var t;return(t=e.localName)!==null&&t!==void 0?t:e.tagName.toLowerCase()}var Jy={article:"article",aside:"complementary",button:"button",datalist:"listbox",dd:"definition",details:"group",dialog:"dialog",dt:"term",fieldset:"group",figure:"figure",form:"form",footer:"contentinfo",h1:"heading",h2:"heading",h3:"heading",h4:"heading",h5:"heading",h6:"heading",header:"banner",hr:"separator",html:"document",legend:"legend",li:"listitem",math:"math",main:"main",menu:"list",nav:"navigation",ol:"list",optgroup:"group",option:"option",output:"status",progress:"progressbar",section:"region",summary:"button",table:"table",tbody:"rowgroup",textarea:"textbox",tfoot:"rowgroup",td:"cell",th:"columnheader",thead:"rowgroup",tr:"row",ul:"list"},Zy={caption:new Set(["aria-label","aria-labelledby"]),code:new Set(["aria-label","aria-labelledby"]),deletion:new Set(["aria-label","aria-labelledby"]),emphasis:new Set(["aria-label","aria-labelledby"]),generic:new Set(["aria-label","aria-labelledby","aria-roledescription"]),insertion:new Set(["aria-label","aria-labelledby"]),paragraph:new Set(["aria-label","aria-labelledby"]),presentation:new Set(["aria-label","aria-labelledby"]),strong:new Set(["aria-label","aria-labelledby"]),subscript:new Set(["aria-label","aria-labelledby"]),superscript:new Set(["aria-label","aria-labelledby"])};function eh(e,t){return["aria-atomic","aria-busy","aria-controls","aria-current","aria-describedby","aria-details","aria-dropeffect","aria-flowto","aria-grabbed","aria-hidden","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"].some(function(r){var n;return e.hasAttribute(r)&&!((n=Zy[t])!==null&&n!==void 0&&n.has(r))})}function ic(e,t){return eh(e,t)}function Qr(e){var t=rh(e);if(t===null||t==="presentation"){var r=th(e);if(t!=="presentation"||ic(e,r||""))return r}return t}function th(e){var t=Jy[Q(e)];if(t!==void 0)return t;switch(Q(e)){case"a":case"area":case"link":if(e.hasAttribute("href"))return"link";break;case"img":return e.getAttribute("alt")===""&&!ic(e,"img")?"presentation":"img";case"input":{var r=e,n=r.type;switch(n){case"button":case"image":case"reset":case"submit":return"button";case"checkbox":case"radio":return n;case"range":return"slider";case"email":case"tel":case"text":case"url":return e.hasAttribute("list")?"combobox":"textbox";case"search":return e.hasAttribute("list")?"combobox":"searchbox";case"number":return"spinbutton";default:return null}}case"select":return e.hasAttribute("multiple")||e.size>1?"listbox":"combobox"}return null}function rh(e){var t=e.getAttribute("role");if(t!==null){var r=t.trim().split(" ")[0];if(r.length>0)return r}return null}function $(e){return e!==null&&e.nodeType===e.ELEMENT_NODE}function Ya(e){return $(e)&&Q(e)==="caption"}function rr(e){return $(e)&&Q(e)==="input"}function ac(e){return $(e)&&Q(e)==="optgroup"}function sc(e){return $(e)&&Q(e)==="select"}function lc(e){return $(e)&&Q(e)==="table"}function uc(e){return $(e)&&Q(e)==="textarea"}function cc(e){var t=e.ownerDocument===null?e:e.ownerDocument,r=t.defaultView;if(r===null)throw new TypeError("no window available");return r}function dc(e){return $(e)&&Q(e)==="fieldset"}function pc(e){return $(e)&&Q(e)==="legend"}function fc(e){return $(e)&&Q(e)==="slot"}function nh(e){return $(e)&&e.ownerSVGElement!==void 0}function mc(e){return $(e)&&Q(e)==="svg"}function bc(e){return nh(e)&&Q(e)==="title"}function _t(e,t){if($(e)&&e.hasAttribute(t)){var r=e.getAttribute(t).split(" "),n=e.getRootNode?e.getRootNode():e.ownerDocument;return r.map(function(o){return n.getElementById(o)}).filter(function(o){return o!==null})}return[]}function ge(e,t){return $(e)?t.indexOf(Qr(e))!==-1:!1}function oh(e){return e.trim().replace(/\s\s+/g," ")}function ih(e,t){if(!$(e))return!1;if(e.hasAttribute("hidden")||e.getAttribute("aria-hidden")==="true")return!0;var r=t(e);return r.getPropertyValue("display")==="none"||r.getPropertyValue("visibility")==="hidden"}function ah(e){return ge(e,["button","combobox","listbox","textbox"])||hc(e,"range")}function hc(e,t){if(!$(e))return!1;if(t==="range")return ge(e,["meter","progressbar","scrollbar","slider","spinbutton"]);throw new TypeError("No knowledge about abstract role '".concat(t,"'. This is likely a bug :("))}function vc(e,t){var r=de(e.querySelectorAll(t));return _t(e,"aria-owns").forEach(function(n){r.push.apply(r,de(n.querySelectorAll(t)))}),r}function sh(e){return sc(e)?e.selectedOptions||vc(e,"[selected]"):vc(e,'[aria-selected="true"]')}function lh(e){return ge(e,["none","presentation"])}function uh(e){return Ya(e)}function ch(e){return ge(e,["button","cell","checkbox","columnheader","gridcell","heading","label","legend","link","menuitem","menuitemcheckbox","menuitemradio","option","radio","row","rowheader","switch","tab","tooltip","treeitem"])}function dh(e){return!1}function ph(e){return rr(e)||uc(e)?e.value:e.textContent||""}function yc(e){var t=e.getPropertyValue("content");return/^["'].*["']$/.test(t)?t.slice(1,-1):""}function gc(e){var t=Q(e);return t==="button"||t==="input"&&e.getAttribute("type")!=="hidden"||t==="meter"||t==="output"||t==="progress"||t==="select"||t==="textarea"}function Ec(e){if(gc(e))return e;var t=null;return e.childNodes.forEach(function(r){if(t===null&&$(r)){var n=Ec(r);n!==null&&(t=n)}}),t}function fh(e){if(e.control!==void 0)return e.control;var t=e.getAttribute("for");return t!==null?e.ownerDocument.getElementById(t):Ec(e)}function mh(e){var t=e.labels;if(t===null)return t;if(t!==void 0)return de(t);if(!gc(e))return null;var r=e.ownerDocument;return de(r.querySelectorAll("label")).filter(function(n){return fh(n)===e})}function bh(e){var t=e.assignedNodes();return t.length===0?de(e.childNodes):t}function Yr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new oc,n=cc(e),o=t.compute,i=o===void 0?"name":o,a=t.computedStyleSupportsPseudoElements,s=a===void 0?t.getComputedStyle!==void 0:a,l=t.getComputedStyle,u=l===void 0?n.getComputedStyle.bind(n):l,c=t.hidden,d=c===void 0?!1:c;function m(f,g){var w="";if($(f)&&s){var h=u(f,"::before"),E=yc(h);w="".concat(E," ").concat(w)}var q=fc(f)?bh(f):de(f.childNodes).concat(_t(f,"aria-owns"));if(q.forEach(function(B){var W=T(B,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1,recursion:!0}),K=$(B)?u(B).getPropertyValue("display"):"inline",O=K!=="inline"?" ":"";w+="".concat(O).concat(W).concat(O)}),$(f)&&s){var R=u(f,"::after"),H=yc(R);w="".concat(w," ").concat(H)}return w.trim()}function y(f,g){var w=f.getAttributeNode(g);return w!==null&&!r.has(w)&&w.value.trim()!==""?(r.add(w),w.value):null}function P(f){return $(f)?y(f,"title"):null}function C(f){if(!$(f))return null;if(dc(f)){r.add(f);for(var g=de(f.childNodes),w=0;w<g.length;w+=1){var h=g[w];if(pc(h))return T(h,{isEmbeddedInLabel:!1,isReferenced:!1,recursion:!1})}}else if(lc(f)){r.add(f);for(var E=de(f.childNodes),q=0;q<E.length;q+=1){var R=E[q];if(Ya(R))return T(R,{isEmbeddedInLabel:!1,isReferenced:!1,recursion:!1})}}else if(mc(f)){r.add(f);for(var H=de(f.childNodes),B=0;B<H.length;B+=1){var W=H[B];if(bc(W))return W.textContent}return null}else if(Q(f)==="img"||Q(f)==="area"){var K=y(f,"alt");if(K!==null)return K}else if(ac(f)){var O=y(f,"label");if(O!==null)return O}if(rr(f)&&(f.type==="button"||f.type==="submit"||f.type==="reset")){var G=y(f,"value");if(G!==null)return G;if(f.type==="submit")return"Submit";if(f.type==="reset")return"Reset"}var Y=mh(f);if(Y!==null&&Y.length!==0)return r.add(f),de(Y).map(function(j){return T(j,{isEmbeddedInLabel:!0,isReferenced:!1,recursion:!0})}).filter(function(j){return j.length>0}).join(" ");if(rr(f)&&f.type==="image"){var b=y(f,"alt");if(b!==null)return b;var v=y(f,"title");return v!==null?v:"Submit Query"}if(ge(f,["button"])){var S=m(f,{isEmbeddedInLabel:!1,isReferenced:!1});if(S!=="")return S}return null}function T(f,g){if(r.has(f))return"";if(!d&&ih(f,u)&&!g.isReferenced)return r.add(f),"";var w=$(f)?f.getAttributeNode("aria-labelledby"):null,h=w!==null&&!r.has(w)?_t(f,"aria-labelledby"):[];if(i==="name"&&!g.isReferenced&&h.length>0)return r.add(w),h.map(function(K){return T(K,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!0,recursion:!1})}).join(" ");var E=g.recursion&&ah(f)&&i==="name";if(!E){var q=($(f)&&f.getAttribute("aria-label")||"").trim();if(q!==""&&i==="name")return r.add(f),q;if(!lh(f)){var R=C(f);if(R!==null)return r.add(f),R}}if(ge(f,["menu"]))return r.add(f),"";if(E||g.isEmbeddedInLabel||g.isReferenced){if(ge(f,["combobox","listbox"])){r.add(f);var H=sh(f);return H.length===0?rr(f)?f.value:"":de(H).map(function(K){return T(K,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1,recursion:!0})}).join(" ")}if(hc(f,"range"))return r.add(f),f.hasAttribute("aria-valuetext")?f.getAttribute("aria-valuetext"):f.hasAttribute("aria-valuenow")?f.getAttribute("aria-valuenow"):f.getAttribute("value")||"";if(ge(f,["textbox"]))return r.add(f),ph(f)}if(ch(f)||$(f)&&g.isReferenced||uh(f)||dh(f)){var B=m(f,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1});if(B!=="")return r.add(f),B}if(f.nodeType===f.TEXT_NODE)return r.add(f),f.textContent||"";if(g.recursion)return r.add(f),m(f,{isEmbeddedInLabel:g.isEmbeddedInLabel,isReferenced:!1});var W=P(f);return W!==null?(r.add(f),W):(r.add(f),"")}return oh(T(e,{isEmbeddedInLabel:!1,isReferenced:i==="description",recursion:!1}))}function nr(e){"@babel/helpers - typeof";return nr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nr(e)}function wc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function _c(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wc(Object(r),!0).forEach(function(n){vh(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function vh(e,t,r){return t=yh(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yh(e){var t=hh(e,"string");return nr(t)==="symbol"?t:String(t)}function hh(e,t){if(nr(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(nr(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Jr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=_t(e,"aria-describedby").map(function(o){return Yr(o,_c(_c({},t),{},{compute:"description"}))}).join(" ");if(r===""){var n=e.getAttribute("title");r=n===null?"":n}return r}function gh(e){return ge(e,["caption","code","deletion","emphasis","generic","insertion","paragraph","presentation","strong","subscript","superscript"])}function or(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return gh(e)?"":Yr(e,t)}var oe=xa(xf()),Lf=xa(qf());function Df(e){return e.replace(/</g,"<").replace(/>/g,">")}var o0=(e,t,r,n,o,i,a)=>{let s=n+r.indent,l=r.colors;return e.map(u=>{let c=t[u],d=a(c,r,s,o,i);return typeof c!="string"&&(d.indexOf(`
|
|
16
16
|
`)!==-1&&(d=r.spacingOuter+s+d+r.spacingOuter+n),d="{"+d+"}"),r.spacingInner+n+l.prop.open+u+l.prop.close+"="+l.value.open+d+l.value.close}).join("")},i0=3,a0=(e,t,r,n,o,i)=>e.map(a=>{let s=typeof a=="string"?Bf(a,t):i(a,t,r,n,o);return s===""&&typeof a=="object"&&a!==null&&a.nodeType!==i0?"":t.spacingOuter+r+s}).join(""),Bf=(e,t)=>{let r=t.colors.content;return r.open+Df(e)+r.close},s0=(e,t)=>{let r=t.colors.comment;return r.open+"<!--"+Df(e)+"-->"+r.close},l0=(e,t,r,n,o)=>{let i=n.colors.tag;return i.open+"<"+e+(t&&i.close+t+n.spacingOuter+o+i.open)+(r?">"+i.close+r+n.spacingOuter+o+i.open+"</"+e:(t&&!n.min?"":" ")+"/")+">"+i.close},u0=(e,t)=>{let r=t.colors.tag;return r.open+"<"+e+r.close+" \u2026"+r.open+" />"+r.close},c0=1,Ff=3,Uf=8,jf=11,d0=/^((HTML|SVG)\w*)?Element$/,$f=e=>{let t=e.tagName;return!!(typeof t=="string"&&t.includes("-")||typeof e.hasAttribute=="function"&&e.hasAttribute("is"))},p0=e=>{let t=e.constructor.name,r=e.nodeType;return r===c0&&(d0.test(t)||$f(e))||r===Ff&&t==="Text"||r===Uf&&t==="Comment"||r===jf&&t==="DocumentFragment"};function f0(e){return e.nodeType===Ff}function m0(e){return e.nodeType===Uf}function gs(e){return e.nodeType===jf}function b0(e){return{test:t=>{var r;return((t==null||(r=t.constructor)==null?void 0:r.name)||$f(t))&&p0(t)},serialize:(t,r,n,o,i,a)=>{if(f0(t))return Bf(t.data,r);if(m0(t))return s0(t.data,r);let s=gs(t)?"DocumentFragment":t.tagName.toLowerCase();return++o>r.maxDepth?u0(s,r):l0(s,o0(gs(t)?[]:Array.from(t.attributes).map(l=>l.name).sort(),gs(t)?{}:Array.from(t.attributes).reduce((l,u)=>(l[u.name]=u.value,l),{}),r,n+r.indent,o,i,a),a0(Array.prototype.slice.call(t.childNodes||t.children).filter(e),r,n+r.indent,o,i,a),r,n)}}}var Hf=null,ks=null,Os=null;try{let e=module&&module.require;ks=e.call(module,"fs").readFileSync,Os=e.call(module,"@babel/code-frame").codeFrameColumns,Hf=e.call(module,"picocolors")}catch{}function v0(e){let t=e.indexOf("(")+1,r=e.indexOf(")"),n=e.slice(t,r),o=n.split(":"),i=[o[0],parseInt(o[1],10),parseInt(o[2],10)],a=i[0],s=i[1],l=i[2],u="";try{u=ks(a,"utf-8")}catch{return""}let c=Os(u,{start:{line:s,column:l}},{highlightCode:!0,linesBelow:0});return Hf.dim(n)+`
|
|
17
17
|
`+c+`
|
|
18
18
|
`}function y0(){if(!ks||!Os)return"";let t=new Error().stack.split(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testspectra/react",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.23",
|
|
4
4
|
"description": "Bundled Vitest browser-mode runner for React component testing with the TestSpectra Spectra.* DSL",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"testspectra",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"esbuild": "^0.28.2",
|
|
43
43
|
"playwright": "^1.48.0",
|
|
44
44
|
"vitest": "^2.1.8",
|
|
45
|
-
"@testspectra/matchers": "1.2.
|
|
45
|
+
"@testspectra/matchers": "1.2.23"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"react": ">=18.0.0",
|