aria-ease 7.8.1 → 7.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +3 -3
  2. package/dist/AccordionComponentStrategy-PGBPZ5AV.js +1 -0
  3. package/dist/CheckboxComponentStrategy-C4AE24NT.js +1 -0
  4. package/dist/ComboboxComponentStrategy-AAYXTWW2.js +5 -0
  5. package/dist/MenuComponentStrategy-XPVKRFYX.js +5 -0
  6. package/dist/RadioComponentStrategy-ATVI5I3L.js +1 -0
  7. package/dist/ToggleComponentStrategy-H737DAFU.js +1 -0
  8. package/dist/audit-GVVVBRSU.js +9 -0
  9. package/dist/cli.cjs +30 -30
  10. package/dist/cli.js +3 -3
  11. package/dist/{contractTestRunnerPlaywright-CHCVW7VO.js → contractTestRunnerPlaywright-2KC3RAV5.js} +2 -2
  12. package/dist/{contractTestRunnerPlaywright-FECB4HSX.js → contractTestRunnerPlaywright-OZOFEW66.js} +2 -2
  13. package/dist/index.cjs +8 -8
  14. package/dist/index.d.cts +2 -2
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.js +1 -1
  17. package/dist/src/{Types.d-BjBTlIzl.d.cts → Types.d-DO31Kt2y.d.cts} +2 -2
  18. package/dist/src/{Types.d-BjBTlIzl.d.ts → Types.d-DO31Kt2y.d.ts} +2 -2
  19. package/dist/src/accordion/index.d.cts +1 -1
  20. package/dist/src/accordion/index.d.ts +1 -1
  21. package/dist/src/block/index.d.cts +1 -1
  22. package/dist/src/block/index.d.ts +1 -1
  23. package/dist/src/checkbox/index.d.cts +1 -1
  24. package/dist/src/checkbox/index.d.ts +1 -1
  25. package/dist/src/combobox/index.cjs +1 -1
  26. package/dist/src/combobox/index.d.cts +1 -1
  27. package/dist/src/combobox/index.d.ts +1 -1
  28. package/dist/src/combobox/index.js +1 -1
  29. package/dist/src/menu/index.d.cts +1 -1
  30. package/dist/src/menu/index.d.ts +1 -1
  31. package/dist/src/radio/index.d.cts +1 -1
  32. package/dist/src/radio/index.d.ts +1 -1
  33. package/dist/src/tabs/index.d.cts +1 -1
  34. package/dist/src/tabs/index.d.ts +1 -1
  35. package/dist/src/toggle/index.d.cts +1 -1
  36. package/dist/src/toggle/index.d.ts +1 -1
  37. package/dist/src/utils/test/AccordionComponentStrategy-3GGMDTRW.js +1 -0
  38. package/dist/src/utils/test/CheckboxComponentStrategy-VVOJGXVS.js +1 -0
  39. package/dist/src/utils/test/ComboboxComponentStrategy-27RZ5MBQ.js +5 -0
  40. package/dist/src/utils/test/MenuComponentStrategy-C7WC6OXZ.js +5 -0
  41. package/dist/src/utils/test/RadioComponentStrategy-4KONDPM2.js +1 -0
  42. package/dist/src/utils/test/ToggleComponentStrategy-DKEYKK47.js +1 -0
  43. package/dist/src/utils/test/{contractTestRunnerPlaywright-7ERFIHCM.js → contractTestRunnerPlaywright-GM4W4SKJ.js} +2 -2
  44. package/dist/src/utils/test/dsl/index.cjs +1 -1
  45. package/dist/src/utils/test/dsl/index.js +1 -1
  46. package/dist/src/utils/test/index.cjs +4 -4
  47. package/dist/src/utils/test/index.js +1 -1
  48. package/dist/{test-CMD6E5YF.js → test-6TU4J43V.js} +1 -1
  49. package/package.json +1 -1
  50. package/dist/AccordionComponentStrategy-T5YODP3A.js +0 -1
  51. package/dist/CheckboxComponentStrategy-AZF2Y4MN.js +0 -1
  52. package/dist/ComboboxComponentStrategy-DHZS4NW6.js +0 -5
  53. package/dist/MenuComponentStrategy-L3QXLC6S.js +0 -5
  54. package/dist/RadioComponentStrategy-GKA5KOM5.js +0 -1
  55. package/dist/ToggleComponentStrategy-TMRNXFSL.js +0 -1
  56. package/dist/audit-WBKVW7H6.js +0 -9
  57. package/dist/src/utils/test/AccordionComponentStrategy-S35ZYITU.js +0 -1
  58. package/dist/src/utils/test/CheckboxComponentStrategy-ST2DWNYT.js +0 -1
  59. package/dist/src/utils/test/ComboboxComponentStrategy-5AWO63DA.js +0 -5
  60. package/dist/src/utils/test/MenuComponentStrategy-QHVBLUBR.js +0 -5
  61. package/dist/src/utils/test/RadioComponentStrategy-TWMIMSYX.js +0 -1
  62. package/dist/src/utils/test/ToggleComponentStrategy-UOGYK2U4.js +0 -1
@@ -1 +0,0 @@
1
- import{a as r}from"./chunk-SM6ZKEDR.js";import"./chunk-CNU4N4AY.js";var a=class{constructor(e,o,i=400,t=400){this.mainSelector=e;this.selectors=o;this.actionTimeoutMs=i;this.assertionTimeoutMs=t}async resetState(e){if(!this.selectors.radio||!this.selectors.relative)return;let o=this.selectors.radio;if(!o)return;let i=await e.locator(o).all();for(let t of i)if(await t.getAttribute("aria-checked")==="true"){await t.evaluate(c=>c.setAttribute("aria-checked","false"),{timeout:this.actionTimeoutMs});let s=e.locator(`#${t}`);await(0,r.expect)(s).toHaveAttribute("aria-checked","false",{timeout:this.assertionTimeoutMs}).catch(()=>{})}}async shouldSkipTest(){return!1}getMainSelector(){return this.mainSelector}};export{a as RadioComponentStrategy};
@@ -1 +0,0 @@
1
- import{a as r}from"./chunk-SM6ZKEDR.js";import"./chunk-CNU4N4AY.js";var i=class{constructor(e,o,s=400,t=400){this.mainSelector=e;this.selectors=o;this.actionTimeoutMs=s;this.assertionTimeoutMs=t}async resetState(e){if(!this.selectors.toggle||!this.selectors.relative)return;let o=this.selectors.toggle;if(!o)return;let s=await e.locator(o).all();for(let t of s)if(await t.getAttribute("aria-pressed")==="true"){await t.click({timeout:this.actionTimeoutMs});let a=e.locator(`#${t}`);await(0,r.expect)(a).toHaveAttribute("aria-pressed","false",{timeout:this.assertionTimeoutMs}).catch(()=>{})}}async shouldSkipTest(){return!1}getMainSelector(){return this.mainSelector}};export{i as ToggleComponentStrategy};
@@ -1,9 +0,0 @@
1
- import"./chunk-CNU4N4AY.js";import d from"@axe-core/playwright";import{chromium as s}from"playwright";async function h(){return await s.launch({headless:!0})}async function b(a,l){let o=l.browser,i=!1,n=6e4,c="domcontentloaded";try{o||(o=await s.launch({headless:!0}),i=!0);let e=await o.newContext(),r=await e.newPage();await r.goto(a,{waitUntil:c,timeout:n});try{await r.waitForSelector("main",{state:"visible",timeout:n})}catch(t){console.warn(`\u26A0\uFE0F Warning: <main> landmark not found or not visible on ${a} after ${n}ms. Audit will continue, but results may be inaccurate. Consider adding a <main> element to improve audit accuracy. ${t instanceof Error?t.message:String(t)}`)}let u=await new d({page:r}).withTags(["wcag2a","wcag2aa","wcag21a","wcag21aa"]).analyze();return await r.close(),await e.close(),u}catch(e){throw e instanceof Error?e.message.includes("Executable doesn't exist")?(console.error(`
2
- \u274C Playwright browsers not found!
3
- `),console.log("\u{1F4E6} First-time setup required:"),console.log(` Run: npx playwright install chromium
4
- `),console.log("\u{1F4A1} This downloads the browser needed for auditing (~200MB)"),console.log(` You only need to do this once.
5
- `)):e.message.includes("page.goto: net::ERR_CONNECTION_REFUSED")?(console.error(`
6
- \u274C Server Not Running!
7
- `),console.log(" Make sure your server is running before auditing URL"),console.log(" Run: npm run dev # or your start command")):e.message.includes("page.goto: Protocol error (Page.navigate): Cannot navigate to invalid URL")?console.error(`
8
- \u274C Cannot audit invalid URL
9
- `):(console.error("\u274C Audit error:",e.message),console.log(" Make sure you provide a valid URL")):console.error("\u274C Audit error (non-Error):",String(e)),e}finally{o&&i&&await o.close()}}export{h as createAuditBrowser,b as runAudit};
@@ -1 +0,0 @@
1
- import {expect}from'@playwright/test';var a=class{constructor(t,e,o=400,i=400){this.mainSelector=t;this.selectors=e;this.actionTimeoutMs=o;this.assertionTimeoutMs=i;}async resetState(t){if(!this.selectors.panel||!this.selectors.trigger)return;let e=this.selectors.trigger,o=this.selectors.panel;if(!e||!o)return;let i=await t.locator(e).all();for(let r of i){let n=await r.getAttribute("aria-expanded")==="true",s=await r.getAttribute("aria-controls");if(n&&s){await r.click({timeout:this.actionTimeoutMs});let c=t.locator(`#${s}`);await expect(c).toBeHidden({timeout:this.assertionTimeoutMs}).catch(()=>{});}}}async shouldSkipTest(){return false}getMainSelector(){return this.mainSelector}};export{a as AccordionComponentStrategy};
@@ -1 +0,0 @@
1
- import {expect}from'@playwright/test';var s=class{constructor(e,o,r=400,t=400){this.mainSelector=e;this.selectors=o;this.actionTimeoutMs=r;this.assertionTimeoutMs=t;}async resetState(e){if(!this.selectors.checkbox||!this.selectors.relative)return;let o=this.selectors.checkbox;if(!o)return;let r=await e.locator(o).all();for(let t of r)if(await t.getAttribute("aria-checked")==="true"){await t.click({timeout:this.actionTimeoutMs});let i=e.locator(`#${t}`);await expect(i).toHaveAttribute("aria-checked","false",{timeout:this.assertionTimeoutMs}).catch(()=>{});}}async shouldSkipTest(){return false}getMainSelector(){return this.mainSelector}};export{s as CheckboxComponentStrategy};
@@ -1,5 +0,0 @@
1
- import {expect}from'@playwright/test';var r=class{constructor(t,i,o=400,c=400){this.mainSelector=t;this.selectors=i;this.actionTimeoutMs=o;this.assertionTimeoutMs=c;}async resetState(t){if(!this.selectors.popup)return;let i=this.selectors.popup,o=t.locator(i).first();if(!await o.isVisible().catch(()=>false))return;let e=false,n=this.selectors.main;if(n&&(await t.locator(n).first().focus(),await t.keyboard.press("Escape"),e=await expect(o).toBeHidden({timeout:this.assertionTimeoutMs}).then(()=>true).catch(()=>false)),!e&&this.selectors.button&&(await t.locator(this.selectors.button).first().click({timeout:this.actionTimeoutMs}),e=await expect(o).toBeHidden({timeout:this.assertionTimeoutMs}).then(()=>true).catch(()=>false)),e||(await t.mouse.click(10,10),e=await expect(o).toBeHidden({timeout:this.assertionTimeoutMs}).then(()=>true).catch(()=>false)),!e)throw new Error(`\u274C FATAL: Cannot close combobox popup between tests. Popup remains visible after trying:
2
- 1. Escape key
3
- 2. Clicking button
4
- 3. Clicking outside
5
- This indicates a problem with the combobox component's close functionality.`);this.selectors.input&&await t.locator(this.selectors.input).first().clear();}async shouldSkipTest(){return false}getMainSelector(){return this.mainSelector}};export{r as ComboboxComponentStrategy};
@@ -1,5 +0,0 @@
1
- import {expect}from'@playwright/test';var c=class{constructor(e,r,i=400,o=400){this.mainSelector=e;this.selectors=r;this.actionTimeoutMs=i;this.assertionTimeoutMs=o;}async resetState(e){if(!this.selectors.popup)return;let r=this.selectors.popup,i=e.locator(r).first();if(!await i.isVisible().catch(()=>false))return;let s=false,t=this.selectors.main;if(t&&(await e.locator(t).first().focus(),await e.keyboard.press("Escape"),s=await expect(i).toBeHidden({timeout:this.assertionTimeoutMs}).then(()=>true).catch(()=>false)),!s&&this.selectors.main&&(await e.locator(this.selectors.main).first().click({timeout:this.actionTimeoutMs}),s=await expect(i).toBeHidden({timeout:this.assertionTimeoutMs}).then(()=>true).catch(()=>false)),s||(await e.mouse.click(10,10),s=await expect(i).toBeHidden({timeout:this.assertionTimeoutMs}).then(()=>true).catch(()=>false)),!s)throw new Error(`\u274C FATAL: Cannot close menu between tests. Menu remains visible after trying:
2
- 1. Escape key
3
- 2. Clicking trigger
4
- 3. Clicking outside
5
- This indicates a problem with the menu component's close functionality.`);this.selectors.input&&await e.locator(this.selectors.input).first().clear(),this.selectors.main&&await e.locator(this.selectors.main).first().focus();}async shouldSkipTest(e,r){if(!(e.action.some(t=>t.target==="submenu"||t.target==="submenuTrigger"||t.target==="submenuItems")||e.assertions.some(t=>t.target==="submenu"||t.target==="submenuTrigger"||t.target==="submenuItems")))return false;let o=this.selectors.submenuTrigger;return o?await r.locator(o).count()===0:true}getMainSelector(){return this.mainSelector}};export{c as MenuComponentStrategy};
@@ -1 +0,0 @@
1
- import {expect}from'@playwright/test';var i=class{constructor(e,o,r=400,t=400){this.mainSelector=e;this.selectors=o;this.actionTimeoutMs=r;this.assertionTimeoutMs=t;}async resetState(e){if(!this.selectors.radio||!this.selectors.relative)return;let o=this.selectors.radio;if(!o)return;let r=await e.locator(o).all();for(let t of r)if(await t.getAttribute("aria-checked")==="true"){await t.evaluate(s=>s.setAttribute("aria-checked","false"),{timeout:this.actionTimeoutMs});let a=e.locator(`#${t}`);await expect(a).toHaveAttribute("aria-checked","false",{timeout:this.assertionTimeoutMs}).catch(()=>{});}}async shouldSkipTest(){return false}getMainSelector(){return this.mainSelector}};export{i as RadioComponentStrategy};
@@ -1 +0,0 @@
1
- import {expect}from'@playwright/test';var s=class{constructor(e,o,r=400,t=400){this.mainSelector=e;this.selectors=o;this.actionTimeoutMs=r;this.assertionTimeoutMs=t;}async resetState(e){if(!this.selectors.toggle||!this.selectors.relative)return;let o=this.selectors.toggle;if(!o)return;let r=await e.locator(o).all();for(let t of r)if(await t.getAttribute("aria-pressed")==="true"){await t.click({timeout:this.actionTimeoutMs});let i=e.locator(`#${t}`);await expect(i).toHaveAttribute("aria-pressed","false",{timeout:this.assertionTimeoutMs}).catch(()=>{});}}async shouldSkipTest(){return false}getMainSelector(){return this.mainSelector}};export{s as ToggleComponentStrategy};