@storybook/addon-a11y 7.0.0-alpha.2 → 7.0.0-alpha.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.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/dist/chunk-M5RWOKLV.mjs +1 -0
  3. package/dist/index.d.ts +20 -0
  4. package/dist/index.js +9 -0
  5. package/dist/index.mjs +9 -0
  6. package/dist/manager.d.ts +1 -0
  7. package/dist/manager.js +1 -0
  8. package/dist/manager.mjs +1 -0
  9. package/dist/preview.d.ts +1 -0
  10. package/dist/preview.js +1 -0
  11. package/dist/preview.mjs +1 -0
  12. package/manager.js +1 -1
  13. package/package.json +48 -16
  14. package/preview.js +1 -1
  15. package/LICENSE +0 -21
  16. package/dist/cjs/a11yHighlight.js +0 -48
  17. package/dist/cjs/a11yRunner.js +0 -103
  18. package/dist/cjs/components/A11YPanel.js +0 -185
  19. package/dist/cjs/components/A11yContext.js +0 -116
  20. package/dist/cjs/components/ColorFilters.js +0 -64
  21. package/dist/cjs/components/Report/Elements.js +0 -74
  22. package/dist/cjs/components/Report/HighlightToggle.js +0 -75
  23. package/dist/cjs/components/Report/Info.js +0 -39
  24. package/dist/cjs/components/Report/Item.js +0 -115
  25. package/dist/cjs/components/Report/Rules.js +0 -115
  26. package/dist/cjs/components/Report/Tags.js +0 -37
  27. package/dist/cjs/components/Report/index.js +0 -30
  28. package/dist/cjs/components/Tabs.js +0 -141
  29. package/dist/cjs/components/VisionSimulator.js +0 -165
  30. package/dist/cjs/constants.js +0 -29
  31. package/dist/cjs/highlight.js +0 -22
  32. package/dist/cjs/index.js +0 -69
  33. package/dist/cjs/manager.js +0 -48
  34. package/dist/cjs/params.js +0 -5
  35. package/dist/cjs/preview.js +0 -5
  36. package/dist/esm/a11yHighlight.js +0 -39
  37. package/dist/esm/a11yRunner.js +0 -91
  38. package/dist/esm/components/A11YPanel.js +0 -155
  39. package/dist/esm/components/A11yContext.js +0 -93
  40. package/dist/esm/components/ColorFilters.js +0 -50
  41. package/dist/esm/components/Report/Elements.js +0 -57
  42. package/dist/esm/components/Report/HighlightToggle.js +0 -57
  43. package/dist/esm/components/Report/Info.js +0 -23
  44. package/dist/esm/components/Report/Item.js +0 -89
  45. package/dist/esm/components/Report/Rules.js +0 -95
  46. package/dist/esm/components/Report/Tags.js +0 -22
  47. package/dist/esm/components/Report/index.js +0 -14
  48. package/dist/esm/components/Tabs.js +0 -116
  49. package/dist/esm/components/VisionSimulator.js +0 -143
  50. package/dist/esm/constants.js +0 -18
  51. package/dist/esm/highlight.js +0 -10
  52. package/dist/esm/index.js +0 -21
  53. package/dist/esm/manager.js +0 -35
  54. package/dist/esm/params.js +0 -1
  55. package/dist/esm/preview.js +0 -2
  56. package/dist/types/a11yHighlight.d.ts +0 -1
  57. package/dist/types/a11yRunner.d.ts +0 -1
  58. package/dist/types/components/A11YPanel.d.ts +0 -7
  59. package/dist/types/components/A11yContext.d.ts +0 -23
  60. package/dist/types/components/ColorFilters.d.ts +0 -2
  61. package/dist/types/components/Report/Elements.d.ts +0 -9
  62. package/dist/types/components/Report/HighlightToggle.d.ts +0 -8
  63. package/dist/types/components/Report/Info.d.ts +0 -7
  64. package/dist/types/components/Report/Item.d.ts +0 -8
  65. package/dist/types/components/Report/Rules.d.ts +0 -13
  66. package/dist/types/components/Report/Tags.d.ts +0 -7
  67. package/dist/types/components/Report/index.d.ts +0 -9
  68. package/dist/types/components/Tabs.d.ts +0 -13
  69. package/dist/types/components/VisionSimulator.d.ts +0 -15
  70. package/dist/types/constants.d.ts +0 -12
  71. package/dist/types/highlight.d.ts +0 -6
  72. package/dist/types/index.d.ts +0 -5
  73. package/dist/types/manager.d.ts +0 -1
  74. package/dist/types/params.d.ts +0 -12
  75. package/dist/types/preview.d.ts +0 -2
package/README.md CHANGED
@@ -4,7 +4,7 @@ This Storybook addon can be helpful to make your UI components more accessible.
4
4
 
5
5
  [Framework Support](https://storybook.js.org/docs/react/api/frameworks-feature-support)
6
6
 
7
- ![Screenshot](https://raw.githubusercontent.com/storybookjs/storybook/next/addons/a11y/docs/screenshot.png)
7
+ ![Screenshot](https://raw.githubusercontent.com/storybookjs/storybook/next/code/addons/a11y/docs/screenshot.png)
8
8
 
9
9
  ## Getting started
10
10
 
@@ -0,0 +1 @@
1
+ var R=Object.create;var E=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var a=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var N=(o,t)=>()=>(o&&(t=o(o=0)),t);var L=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports);var u=(o,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of $(t))!p.call(o,r)&&r!==s&&E(o,r,{get:()=>t[r],enumerable:!(e=A(t,r))||e.enumerable});return o};var S=(o,t,s)=>(s=o!=null?R(a(o)):{},u(t||!o||!o.__esModule?E(s,"default",{value:o,enumerable:!0}):s,o));var c=N(()=>{});var n,P,b,x,D,U,l,y,g,I=N(()=>{"use strict";c();n="storybook/a11y",P=`${n}/panel`,b="a11y",x=`${n}/result`,D=`${n}/request`,U=`${n}/running`,l=`${n}/error`,y=`${n}/manual`,g={RESULT:x,REQUEST:D,RUNNING:U,ERROR:l,MANUAL:y}});export{L as a,S as b,c,n as d,P as e,b as f,g,I as h};
@@ -0,0 +1,20 @@
1
+ import { DecoratorFunction, AnyFramework } from '@storybook/csf';
2
+ import { ElementContext, Spec, RunOptions } from 'axe-core';
3
+
4
+ declare const PARAM_KEY = "a11y";
5
+
6
+ interface Setup {
7
+ element?: ElementContext;
8
+ config: Spec;
9
+ options: RunOptions;
10
+ }
11
+ interface A11yParameters {
12
+ element?: ElementContext;
13
+ config?: Spec;
14
+ options?: RunOptions;
15
+ manual?: boolean;
16
+ }
17
+
18
+ declare const withA11y: DecoratorFunction<AnyFramework>;
19
+
20
+ export { A11yParameters, PARAM_KEY, Setup, withA11y };
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";var p=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var h=(o,t)=>{for(var e in t)a(o,e,{get:t[e],enumerable:!0})},c=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of y(t))!l.call(o,n)&&n!==e&&a(o,n,{get:()=>t[n],enumerable:!(s=u(t,n))||s.enumerable});return o};var E=(o,t,e)=>(e=o!=null?p(A(o)):{},c(t||!o||!o.__esModule?a(e,"default",{value:o,enumerable:!0}):e,o)),R=o=>c(a({},"__esModule",{value:!0}),o);var x={};h(x,{PARAM_KEY:()=>d,withA11y:()=>f});module.exports=R(x);var m=E(require("util-deprecate")),i=require("ts-dedent");var r="storybook/a11y",b=`${r}/panel`,d="a11y",k=`${r}/result`,D=`${r}/request`,$=`${r}/running`,w=`${r}/error`,I=`${r}/manual`;module&&module.hot&&module.hot.decline&&module.hot.decline();var f=(0,m.default)((o,t)=>o(t),i.dedent`
2
+ withA11y(options) is deprecated, please configure addon-a11y using the addParameter api:
3
+
4
+ addParameters({
5
+ a11y: options,
6
+ });
7
+
8
+ More at: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#removed-witha11y-decorator
9
+ `);0&&(module.exports={PARAM_KEY,withA11y});
package/dist/index.mjs ADDED
@@ -0,0 +1,9 @@
1
+ import{c as e,f as r,h as n}from"./chunk-M5RWOKLV.mjs";e();n();import m from"util-deprecate";import{dedent as a}from"ts-dedent";e();module&&module.hot&&module.hot.decline&&module.hot.decline();var d=m((o,t)=>o(t),a`
2
+ withA11y(options) is deprecated, please configure addon-a11y using the addParameter api:
3
+
4
+ addParameters({
5
+ a11y: options,
6
+ });
7
+
8
+ More at: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#removed-witha11y-decorator
9
+ `);export{r as PARAM_KEY,d as withA11y};
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ "use strict";var Re=Object.create;var te=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var Ae=Object.getOwnPropertyNames;var Be=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var Pe=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ae(t))!Ne.call(e,n)&&n!==o&&te(e,n,{get:()=>t[n],enumerable:!(r=ve(t,n))||r.enumerable});return e};var d=(e,t,o)=>(o=e!=null?Re(Be(e)):{},Pe(t||!e||!e.__esModule?te(o,"default",{value:e,enumerable:!0}):o,e));var j=d(require("react")),B=require("@storybook/addons");var f="storybook/a11y",X=`${f}/panel`,oe="a11y",He=`${f}/result`,Le=`${f}/request`,Fe=`${f}/running`,Me=`${f}/error`,De=`${f}/manual`,E={RESULT:He,REQUEST:Le,RUNNING:Fe,ERROR:Me,MANUAL:De};var c=d(require("react")),b=require("@storybook/theming"),C=require("@storybook/components");var s=d(require("react")),re=e=>s.createElement("svg",{...e},s.createElement("defs",null,s.createElement("filter",{id:"protanopia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.567, 0.433, 0, 0, 0 0.558, 0.442, 0, 0, 0 0, 0.242, 0.758, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"protanomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.817, 0.183, 0, 0, 0 0.333, 0.667, 0, 0, 0 0, 0.125, 0.875, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"deuteranopia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.625, 0.375, 0, 0, 0 0.7, 0.3, 0, 0, 0 0, 0.3, 0.7, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"deuteranomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.8, 0.2, 0, 0, 0 0.258, 0.742, 0, 0, 0 0, 0.142, 0.858, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"tritanopia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.95, 0.05, 0, 0, 0 0, 0.433, 0.567, 0, 0 0, 0.475, 0.525, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"tritanomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.967, 0.033, 0, 0, 0 0, 0.733, 0.267, 0, 0 0, 0.183, 0.817, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"achromatopsia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.299, 0.587, 0.114, 0, 0 0.299, 0.587, 0.114, 0, 0 0.299, 0.587, 0.114, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"achromatomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.618, 0.320, 0.062, 0, 0 0.163, 0.775, 0.062, 0, 0 0.163, 0.320, 0.516, 0, 0 0, 0, 0, 1, 0"}))));var we="storybook-preview-iframe",Oe=[{name:"blurred vision",percentage:22.9},{name:"deuteranomaly",percentage:2.7},{name:"deuteranopia",percentage:.56},{name:"protanomaly",percentage:.66},{name:"protanopia",percentage:.59},{name:"tritanomaly",percentage:.01},{name:"tritanopia",percentage:.016},{name:"achromatomaly",percentage:1e-5},{name:"achromatopsia",percentage:1e-4},{name:"grayscale"}],ie=e=>e?e==="blurred vision"?"blur(2px)":e==="grayscale"?"grayscale(100%)":`url('#${e}')`:"none",$e=b.styled.div(()=>({"&, & svg":{position:"absolute",width:0,height:0}})),We=b.styled.span({background:"linear-gradient(to right, #F44336, #FF9800, #FFEB3B, #8BC34A, #2196F3, #9C27B0)",borderRadius:"1rem",display:"block",height:"1rem",width:"1rem"},({filter:e})=>({filter:ie(e)}),({theme:e})=>({boxShadow:`${e.appBorderColor} 0 0 0 1px inset`})),Ge=b.styled.span({display:"flex",flexDirection:"column"}),Ve=b.styled.span({textTransform:"capitalize"}),Ue=b.styled.span(({theme:e})=>({fontSize:11,color:e.textMutedColor})),ze=(e,t)=>[...e!==null?[{id:"reset",title:"Reset color filter",onClick:()=>{t(null)},right:void 0,active:!1}]:[],...Oe.map(o=>{let r=o.percentage!==void 0?`${o.percentage}% of users`:void 0;return{id:o.name,title:c.default.createElement(Ge,null,c.default.createElement(Ve,null,o.name),r&&c.default.createElement(Ue,null,r)),onClick:()=>{t(o)},right:c.default.createElement(We,{filter:o.name}),active:e===o}})],ne=()=>{let[e,t]=(0,c.useState)(null);return c.default.createElement(c.default.Fragment,null,e&&c.default.createElement(b.Global,{styles:{[`#${we}`]:{filter:ie(e.name)}}}),c.default.createElement(C.WithTooltip,{placement:"top",trigger:"click",tooltip:({onHide:o})=>{let r=ze(e,n=>{t(n),o()});return c.default.createElement(C.TooltipLinkList,{links:r})},closeOnClick:!0,onDoubleClick:()=>t(null)},c.default.createElement(C.IconButton,{key:"filter",active:!!e,title:"Vision simulator"},c.default.createElement(C.Icons,{icon:"accessibility"}))),c.default.createElement($e,null,c.default.createElement(re,null)))};var i=d(require("react")),A=require("@storybook/theming"),v=require("@storybook/components"),D=require("@storybook/api");var M=d(require("react")),Ce=require("@storybook/components");var m=d(require("react")),W=require("@storybook/theming"),xe=require("@storybook/components");var V=d(require("react")),U=require("@storybook/theming"),_e=U.styled.div({padding:12,marginBottom:10}),Ke=U.styled.p({margin:"0 0 12px"}),Ye=U.styled.a({marginTop:12,textDecoration:"underline",color:"inherit",display:"block"}),se=({item:e})=>V.default.createElement(_e,null,V.default.createElement(Ke,null,e.description),V.default.createElement(Ye,{href:e.helpUrl,target:"_blank"},"More info..."));var k=d(require("react")),_=require("@storybook/theming");var S=d(require("react")),$=require("@storybook/theming"),le=require("@storybook/components"),ae=require("react-sizeme"),je=$.styled.div({display:"flex",flexDirection:"column",paddingBottom:4,paddingRight:4,paddingTop:4,fontWeight:400}),Je=$.styled.div(({elementWidth:e})=>({flexDirection:e>407?"row":"inherit",marginBottom:e>407?6:12,display:e>407?"flex":"block"})),qe=(0,$.styled)(le.Badge)({padding:"2px 8px",marginBottom:3,minWidth:65,maxWidth:"fit-content",width:"100%",textAlign:"center"}),Qe=$.styled.div({paddingLeft:6,paddingRight:23});var Xe=e=>e.charAt(0).toUpperCase().concat(e.slice(1)),Ze=({rule:e})=>{let t=null;switch(e.impact){case"critical":t="critical";break;case"serious":t="negative";break;case"moderate":t="warning";break;case"minor":t="neutral";break;default:break}return S.default.createElement(ae.SizeMe,{refreshMode:"debounce"},({size:o})=>S.default.createElement(Je,{elementWidth:o.width||0},S.default.createElement(qe,{status:t},Xe(e.impact)),S.default.createElement(Qe,null,e.message)))},pe=({rules:e})=>S.default.createElement(je,null,e.map((t,o)=>S.default.createElement(Ze,{rule:t,key:o})));var L=d(require("react")),fe=require("@storybook/theming");var p=d(require("react")),T=require("@storybook/theming"),P=require("@storybook/api"),z=require("@storybook/core-events"),me=require("@storybook/addon-highlight");var et=[(0,T.convert)(T.themes.light).color.negative,(0,T.convert)(T.themes.light).color.positive,(0,T.convert)(T.themes.light).color.warning],ge=p.createContext({results:{passes:[],incomplete:[],violations:[]},setResults:()=>{},highlighted:[],toggleHighlight:()=>{},clearHighlights:()=>{},tab:0,setTab:()=>{}}),ce={passes:[],incomplete:[],violations:[]},de=({active:e,...t})=>{let[o,r]=(0,P.useAddonState)(f,ce),[n,l]=p.useState(0),[a,y]=p.useState([]),I=(0,P.useStorybookApi)().getCurrentStoryData(),J=p.useCallback((g,O)=>{y(N=>O?[...N,...g]:N.filter(Se=>!g.includes(Se)))},[]),G=g=>{w(E.REQUEST,g)},x=p.useCallback(()=>y([]),[]),q=p.useCallback(g=>{x(),l(g)},[]),Q=p.useCallback(()=>{l(0),r(ce)},[]),w=(0,P.useChannel)({[z.STORY_RENDERED]:G,[z.STORY_CHANGED]:Q});return p.useEffect(()=>{w(me.HIGHLIGHT,{elements:a,color:et[n]})},[a,n]),p.useEffect(()=>{e&&(I==null?void 0:I.type)==="story"?G(I.id):x()},[e,x,w,I]),e?p.createElement(ge.Provider,{value:{results:o,setResults:r,highlighted:a,toggleHighlight:J,clearHighlights:x,tab:n,setTab:q},...t}):null},H=()=>p.useContext(ge);var tt=fe.styled.input(({disabled:e})=>({cursor:e?"not-allowed":"pointer"}));function ue(e,t){let o=e.filter(r=>t.includes(r.target[0])).length;return o===0?1:o===e.length?0:2}var ot=({toggleId:e,elementsToHighlight:t=[]})=>{let{toggleHighlight:o,highlighted:r}=H(),n=L.default.useRef(null),[l,a]=L.default.useState(ue(t,r));L.default.useEffect(()=>{let u=ue(t,r);n.current&&(n.current.indeterminate=u===2),a(u)},[t,r]);let y=L.default.useCallback(()=>{o(t.map(u=>u.target[0]),l!==0)},[t,l,o]);return L.default.createElement(tt,{ref:n,id:e,type:"checkbox","aria-label":"Highlight result",disabled:!t.length,onChange:y,checked:l===0})},F=ot;var rt=_.styled.li({fontWeight:600}),it=_.styled.span(({theme:e})=>({borderBottom:`1px solid ${e.appBorderColor}`,width:"100%",display:"flex",paddingBottom:6,marginBottom:6,justifyContent:"space-between"})),nt=_.styled.span({fontWeight:"normal",alignSelf:"center",paddingRight:15,input:{margin:0,display:"block"}}),st=({element:e,type:t})=>{let{any:o,all:r,none:n}=e,l=[...o,...r,...n],a=`${t}-${e.target[0]}`;return k.default.createElement(rt,null,k.default.createElement(it,null,e.target[0],k.default.createElement(nt,null,k.default.createElement(F,{toggleId:a,elementsToHighlight:[e]}))),k.default.createElement(pe,{rules:l}))},he=({elements:e,type:t})=>k.default.createElement("ol",null,e.map((o,r)=>k.default.createElement(st,{element:o,key:r,type:t})));var Z=d(require("react")),ee=require("@storybook/theming"),lt=ee.styled.div({display:"flex",flexWrap:"wrap",margin:"12px 0"}),at=ee.styled.div(({theme:e})=>({margin:"0 6px",padding:5,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius})),ye=({tags:e})=>Z.default.createElement(lt,null,e.map(t=>Z.default.createElement(at,{key:t},t)));var pt=W.styled.div(({theme:e})=>({display:"flex",width:"100%",borderBottom:`1px solid ${e.appBorderColor}`,"&:hover":{background:e.background.hoverable}})),ct=(0,W.styled)(xe.Icons)(({theme:e})=>({height:10,width:10,minWidth:10,color:e.color.mediumdark,marginRight:10,transition:"transform 0.1s ease-in-out",alignSelf:"center",display:"inline-flex"})),mt=W.styled.div(({theme:e})=>({padding:e.layoutMargin,paddingLeft:e.layoutMargin-3,lineHeight:"20px",background:"none",color:"inherit",textAlign:"left",cursor:"pointer",borderLeft:"3px solid transparent",width:"100%","&:focus":{outline:"0 none",borderLeft:`3px solid ${e.color.secondary}`}})),gt=W.styled.span({fontWeight:"normal",float:"right",marginRight:15,alignSelf:"center",input:{margin:0,display:"block"}}),be=e=>{let[t,o]=(0,m.useState)(!1),{item:r,type:n}=e,l=`${n}-${r.id}`;return m.default.createElement(m.Fragment,null,m.default.createElement(pt,null,m.default.createElement(mt,{onClick:()=>o(!t),role:"button"},m.default.createElement(ct,{icon:"arrowdown",color:"#9DA5AB",style:{transform:`rotate(${t?0:-90}deg)`}}),r.help),m.default.createElement(gt,null,m.default.createElement(F,{toggleId:l,elementsToHighlight:r.nodes}))),t?m.default.createElement(m.Fragment,null,m.default.createElement(se,{item:r,key:"info"}),m.default.createElement(he,{elements:r.nodes,type:n,key:"elements"}),m.default.createElement(ye,{tags:r.tags,key:"tags"})):null)};var K=({items:e,empty:t,type:o})=>M.default.createElement(M.Fragment,null,e&&e.length?e.map(r=>M.default.createElement(be,{item:r,key:`${o}:${r.id}`,type:o})):M.default.createElement(Ce.Placeholder,{key:"placeholder"},t));var h=d(require("react")),R=require("@storybook/theming"),Te=require("react-sizeme");var dt=R.styled.div({width:"100%",position:"relative",minHeight:"100%"}),ut=R.styled.label(({theme:e})=>({cursor:"pointer",userSelect:"none",color:e.color.dark})),ft=R.styled.div(({elementWidth:e,theme:t})=>({cursor:"pointer",fontSize:13,lineHeight:"20px",padding:e>450?"10px 15px 10px 0":"10px 0px 10px 15px",height:"40px",border:"none",marginTop:e>450?-40:0,float:e>450?"right":"left",display:"flex",alignItems:"center",width:e>450?"auto":"100%",borderBottom:e>450?"none":`1px solid ${t.appBorderColor}`,input:{marginLeft:10,marginRight:0,marginTop:-1,marginBottom:0}})),ht=R.styled.button(({theme:e})=>({textDecoration:"none",padding:"10px 15px",cursor:"pointer",fontWeight:e.typography.weight.bold,fontSize:e.typography.size.s2-1,lineHeight:1,height:40,border:"none",borderTop:"3px solid transparent",borderBottom:"3px solid transparent",background:"transparent","&:focus":{outline:"0 none",borderBottom:`3px solid ${e.color.secondary}`}}),({active:e,theme:t})=>e?{opacity:1,borderBottom:`3px solid ${t.color.secondary}`}:{}),yt=R.styled.div({}),xt=R.styled.div(({theme:e})=>({boxShadow:`${e.appBorderColor} 0 -1px 0 0 inset`,background:"rgba(0, 0, 0, .05)",display:"flex",justifyContent:"space-between",whiteSpace:"nowrap"}));function bt(e){return e.reduce((t,o)=>t.concat(o.nodes),[])}var ke=({tabs:e})=>{let{tab:t,setTab:o}=H(),r=h.useCallback(a=>{o(parseInt(a.currentTarget.getAttribute("data-index")||"",10))},[o]),n=`${e[t].type}-global-checkbox`,l="Highlight results";return h.createElement(Te.SizeMe,{refreshMode:"debounce"},({size:a})=>h.createElement(dt,null,h.createElement(xt,null,h.createElement(yt,null,e.map((y,u)=>h.createElement(ht,{key:u,"data-index":u,active:t===u,onClick:r},y.label)))),e[t].items.length>0?h.createElement(ft,{elementWidth:a.width||0},h.createElement(ut,{htmlFor:n},l),h.createElement(F,{toggleId:n,elementsToHighlight:bt(e[t].items)})):null,e[t].panel))};var Ie=(0,A.styled)(v.Icons)({height:12,width:12,marginRight:4}),Ct=(0,A.styled)(Ie)(({theme:e})=>({animation:`${e.animation.rotate360} 1s linear infinite;`})),Tt=A.styled.span(({theme:e})=>({color:e.color.positive})),kt=A.styled.span(({theme:e})=>({color:e.color.negative})),It=A.styled.span(({theme:e})=>({color:e.color.warning})),Y=A.styled.span({display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}),Ee=()=>{let{manual:e}=(0,D.useParameter)("a11y",{manual:!1}),[t,o]=(0,i.useState)(e?"manual":"initial"),[r,n]=i.default.useState(void 0),{setResults:l,results:a}=H(),{storyId:y}=(0,D.useStorybookState)();i.default.useEffect(()=>{o(e?"manual":"initial")},[e]);let u=g=>{o("ran"),l(g),setTimeout(()=>{t==="ran"&&o("ready")},900)},I=(0,i.useCallback)(()=>{o("running")},[]),J=(0,i.useCallback)(g=>{o("error"),n(g)},[]),G=(0,D.useChannel)({[E.RUNNING]:I,[E.RESULT]:u,[E.ERROR]:J}),x=(0,i.useCallback)(()=>{o("running"),G(E.MANUAL,y)},[y]),q=(0,i.useMemo)(()=>[{title:"Run test",onClick:x}],[x]),Q=(0,i.useMemo)(()=>[{title:t==="ready"?"Rerun tests":i.default.createElement(i.default.Fragment,null,i.default.createElement(Ie,{inline:!0,icon:"check"})," Tests completed"),onClick:x}],[t,x]),w=(0,i.useMemo)(()=>{let{passes:g,incomplete:O,violations:N}=a;return[{label:i.default.createElement(kt,null,N.length," Violations"),panel:i.default.createElement(K,{items:N,type:0,empty:"No accessibility violations found."}),items:N,type:0},{label:i.default.createElement(Tt,null,g.length," Passes"),panel:i.default.createElement(K,{items:g,type:1,empty:"No accessibility checks passed."}),items:g,type:1},{label:i.default.createElement(It,null,O.length," Incomplete"),panel:i.default.createElement(K,{items:O,type:2,empty:"No accessibility checks incomplete."}),items:O,type:2}]},[a]);return i.default.createElement(i.default.Fragment,null,t==="initial"&&i.default.createElement(Y,null,"Initializing..."),t==="manual"&&i.default.createElement(i.default.Fragment,null,i.default.createElement(Y,null,"Manually run the accessibility scan."),i.default.createElement(v.ActionBar,{key:"actionbar",actionItems:q})),t==="running"&&i.default.createElement(Y,null,i.default.createElement(Ct,{inline:!0,icon:"sync"})," Please wait while the accessibility scan is running ..."),(t==="ready"||t==="ran")&&i.default.createElement(i.default.Fragment,null,i.default.createElement(v.ScrollArea,{vertical:!0,horizontal:!0},i.default.createElement(ke,{key:"tabs",tabs:w})),i.default.createElement(v.ActionBar,{key:"actionbar",actionItems:Q})),t==="error"&&i.default.createElement(Y,null,"The accessibility scan encountered an error.",i.default.createElement("br",null),typeof r=="string"?r:JSON.stringify(r)))};B.addons.register(f,e=>{B.addons.add(X,{title:"",type:B.types.TOOL,match:({viewMode:t})=>t==="story",render:()=>j.default.createElement(ne,null)}),B.addons.add(X,{title(){var l,a;let t=e==null?void 0:e.getAddonState(f),o=((l=t==null?void 0:t.violations)==null?void 0:l.length)||0,r=((a=t==null?void 0:t.incomplete)==null?void 0:a.length)||0,n=o+r;return n!==0?`Accessibility (${n})`:"Accessibility"},type:B.types.PANEL,render:({active:t=!0,key:o})=>j.default.createElement(de,{key:o,active:t},j.default.createElement(Ee,null)),paramKey:oe})});
@@ -0,0 +1 @@
1
+ import{c as n,d as P,e as G,f as Z,g as b,h as V}from"./chunk-M5RWOKLV.mjs";n();V();import q from"react";import{addons as Q,types as be}from"@storybook/addons";n();import d,{useState as Te}from"react";import{Global as ke,styled as N}from"@storybook/theming";import{Icons as Ie,IconButton as Se,WithTooltip as Ee,TooltipLinkList as ve}from"@storybook/components";n();import*as s from"react";var ee=e=>s.createElement("svg",{...e},s.createElement("defs",null,s.createElement("filter",{id:"protanopia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.567, 0.433, 0, 0, 0 0.558, 0.442, 0, 0, 0 0, 0.242, 0.758, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"protanomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.817, 0.183, 0, 0, 0 0.333, 0.667, 0, 0, 0 0, 0.125, 0.875, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"deuteranopia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.625, 0.375, 0, 0, 0 0.7, 0.3, 0, 0, 0 0, 0.3, 0.7, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"deuteranomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.8, 0.2, 0, 0, 0 0.258, 0.742, 0, 0, 0 0, 0.142, 0.858, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"tritanopia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.95, 0.05, 0, 0, 0 0, 0.433, 0.567, 0, 0 0, 0.475, 0.525, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"tritanomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.967, 0.033, 0, 0, 0 0, 0.733, 0.267, 0, 0 0, 0.183, 0.817, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"achromatopsia"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.299, 0.587, 0.114, 0, 0 0.299, 0.587, 0.114, 0, 0 0.299, 0.587, 0.114, 0, 0 0, 0, 0, 1, 0"})),s.createElement("filter",{id:"achromatomaly"},s.createElement("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"0.618, 0.320, 0.062, 0, 0 0.163, 0.775, 0.062, 0, 0 0.163, 0.320, 0.516, 0, 0 0, 0, 0, 1, 0"}))));var Re="storybook-preview-iframe",Ae=[{name:"blurred vision",percentage:22.9},{name:"deuteranomaly",percentage:2.7},{name:"deuteranopia",percentage:.56},{name:"protanomaly",percentage:.66},{name:"protanopia",percentage:.59},{name:"tritanomaly",percentage:.01},{name:"tritanopia",percentage:.016},{name:"achromatomaly",percentage:1e-5},{name:"achromatopsia",percentage:1e-4},{name:"grayscale"}],te=e=>e?e==="blurred vision"?"blur(2px)":e==="grayscale"?"grayscale(100%)":`url('#${e}')`:"none",Be=N.div(()=>({"&, & svg":{position:"absolute",width:0,height:0}})),Pe=N.span({background:"linear-gradient(to right, #F44336, #FF9800, #FFEB3B, #8BC34A, #2196F3, #9C27B0)",borderRadius:"1rem",display:"block",height:"1rem",width:"1rem"},({filter:e})=>({filter:te(e)}),({theme:e})=>({boxShadow:`${e.appBorderColor} 0 0 0 1px inset`})),Ne=N.span({display:"flex",flexDirection:"column"}),He=N.span({textTransform:"capitalize"}),Fe=N.span(({theme:e})=>({fontSize:11,color:e.textMutedColor})),Le=(e,t)=>[...e!==null?[{id:"reset",title:"Reset color filter",onClick:()=>{t(null)},right:void 0,active:!1}]:[],...Ae.map(o=>{let r=o.percentage!==void 0?`${o.percentage}% of users`:void 0;return{id:o.name,title:d.createElement(Ne,null,d.createElement(He,null,o.name),r&&d.createElement(Fe,null,r)),onClick:()=>{t(o)},right:d.createElement(Pe,{filter:o.name}),active:e===o}})],oe=()=>{let[e,t]=Te(null);return d.createElement(d.Fragment,null,e&&d.createElement(ke,{styles:{[`#${Re}`]:{filter:te(e.name)}}}),d.createElement(Ee,{placement:"top",trigger:"click",tooltip:({onHide:o})=>{let r=Le(e,l=>{t(l),o()});return d.createElement(ve,{links:r})},closeOnClick:!0,onDoubleClick:()=>t(null)},d.createElement(Se,{key:"filter",active:!!e,title:"Vision simulator"},d.createElement(Ie,{icon:"accessibility"}))),d.createElement(Be,null,d.createElement(ee,null)))};n();import i,{useCallback as J,useMemo as X,useState as St}from"react";import{styled as v}from"@storybook/theming";import{ActionBar as he,Icons as Et,ScrollArea as vt}from"@storybook/components";import{useChannel as Rt,useParameter as At,useStorybookState as Bt}from"@storybook/api";n();import j,{Fragment as ut}from"react";import{Placeholder as ft}from"@storybook/components";n();import h,{Fragment as ge,useState as at}from"react";import{styled as M}from"@storybook/theming";import{Icons as pt}from"@storybook/components";n();import z from"react";import{styled as U}from"@storybook/theming";var Me=U.div({padding:12,marginBottom:10}),we=U.p({margin:"0 0 12px"}),De=U.a({marginTop:12,textDecoration:"underline",color:"inherit",display:"block"}),re=({item:e})=>z.createElement(Me,null,z.createElement(we,null,e.description),z.createElement(De,{href:e.helpUrl,target:"_blank"},"More info..."));n();import C from"react";import{styled as Y}from"@storybook/theming";n();import k from"react";import{styled as L}from"@storybook/theming";import{Badge as Oe}from"@storybook/components";import{SizeMe as We}from"react-sizeme";var $e=L.div({display:"flex",flexDirection:"column",paddingBottom:4,paddingRight:4,paddingTop:4,fontWeight:400}),Ge=L.div(({elementWidth:e})=>({flexDirection:e>407?"row":"inherit",marginBottom:e>407?6:12,display:e>407?"flex":"block"})),Ve=L(Oe)({padding:"2px 8px",marginBottom:3,minWidth:65,maxWidth:"fit-content",width:"100%",textAlign:"center"}),ze=L.div({paddingLeft:6,paddingRight:23});var Ue=e=>e.charAt(0).toUpperCase().concat(e.slice(1)),Ke=({rule:e})=>{let t=null;switch(e.impact){case"critical":t="critical";break;case"serious":t="negative";break;case"moderate":t="warning";break;case"minor":t="neutral";break;default:break}return k.createElement(We,{refreshMode:"debounce"},({size:o})=>k.createElement(Ge,{elementWidth:o.width||0},k.createElement(Ve,{status:t},Ue(e.impact)),k.createElement(ze,null,e.message)))},ie=({rules:e})=>k.createElement($e,null,e.map((t,o)=>k.createElement(Ke,{rule:t,key:o})));n();import H from"react";import{styled as Ze}from"@storybook/theming";n();V();import*as a from"react";import{themes as K,convert as _}from"@storybook/theming";import{useChannel as _e,useAddonState as Ye,useStorybookApi as je}from"@storybook/api";import{STORY_CHANGED as Je,STORY_RENDERED as Xe}from"@storybook/core-events";import{HIGHLIGHT as qe}from"@storybook/addon-highlight";var Qe=[_(K.light).color.negative,_(K.light).color.positive,_(K.light).color.warning],le=a.createContext({results:{passes:[],incomplete:[],violations:[]},setResults:()=>{},highlighted:[],toggleHighlight:()=>{},clearHighlights:()=>{},tab:0,setTab:()=>{}}),ne={passes:[],incomplete:[],violations:[]},se=({active:e,...t})=>{let[o,r]=Ye(P,ne),[l,p]=a.useState(0),[m,y]=a.useState([]),R=je().getCurrentStoryData(),O=a.useCallback((c,B)=>{y(T=>B?[...T,...c]:T.filter(Ce=>!c.includes(Ce)))},[]),F=c=>{A(b.REQUEST,c)},x=a.useCallback(()=>y([]),[]),W=a.useCallback(c=>{x(),p(c)},[]),$=a.useCallback(()=>{p(0),r(ne)},[]),A=_e({[Xe]:F,[Je]:$});return a.useEffect(()=>{A(qe,{elements:m,color:Qe[l]})},[m,l]),a.useEffect(()=>{e&&R?.type==="story"?F(R.id):x()},[e,x,A,R]),e?a.createElement(le.Provider,{value:{results:o,setResults:r,highlighted:m,toggleHighlight:O,clearHighlights:x,tab:l,setTab:W},...t}):null},I=()=>a.useContext(le);var et=Ze.input(({disabled:e})=>({cursor:e?"not-allowed":"pointer"}));function ae(e,t){let o=e.filter(r=>t.includes(r.target[0])).length;return o===0?1:o===e.length?0:2}var tt=({toggleId:e,elementsToHighlight:t=[]})=>{let{toggleHighlight:o,highlighted:r}=I(),l=H.useRef(null),[p,m]=H.useState(ae(t,r));H.useEffect(()=>{let u=ae(t,r);l.current&&(l.current.indeterminate=u===2),m(u)},[t,r]);let y=H.useCallback(()=>{o(t.map(u=>u.target[0]),p!==0)},[t,p,o]);return H.createElement(et,{ref:l,id:e,type:"checkbox","aria-label":"Highlight result",disabled:!t.length,onChange:y,checked:p===0})},S=tt;var ot=Y.li({fontWeight:600}),rt=Y.span(({theme:e})=>({borderBottom:`1px solid ${e.appBorderColor}`,width:"100%",display:"flex",paddingBottom:6,marginBottom:6,justifyContent:"space-between"})),it=Y.span({fontWeight:"normal",alignSelf:"center",paddingRight:15,input:{margin:0,display:"block"}}),nt=({element:e,type:t})=>{let{any:o,all:r,none:l}=e,p=[...o,...r,...l],m=`${t}-${e.target[0]}`;return C.createElement(ot,null,C.createElement(rt,null,e.target[0],C.createElement(it,null,C.createElement(S,{toggleId:m,elementsToHighlight:[e]}))),C.createElement(ie,{rules:p}))},pe=({elements:e,type:t})=>C.createElement("ol",null,e.map((o,r)=>C.createElement(nt,{element:o,key:r,type:t})));n();import me from"react";import{styled as ce}from"@storybook/theming";var lt=ce.div({display:"flex",flexWrap:"wrap",margin:"12px 0"}),st=ce.div(({theme:e})=>({margin:"0 6px",padding:5,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius})),de=({tags:e})=>me.createElement(lt,null,e.map(t=>me.createElement(st,{key:t},t)));var mt=M.div(({theme:e})=>({display:"flex",width:"100%",borderBottom:`1px solid ${e.appBorderColor}`,"&:hover":{background:e.background.hoverable}})),ct=M(pt)(({theme:e})=>({height:10,width:10,minWidth:10,color:e.color.mediumdark,marginRight:10,transition:"transform 0.1s ease-in-out",alignSelf:"center",display:"inline-flex"})),dt=M.div(({theme:e})=>({padding:e.layoutMargin,paddingLeft:e.layoutMargin-3,lineHeight:"20px",background:"none",color:"inherit",textAlign:"left",cursor:"pointer",borderLeft:"3px solid transparent",width:"100%","&:focus":{outline:"0 none",borderLeft:`3px solid ${e.color.secondary}`}})),gt=M.span({fontWeight:"normal",float:"right",marginRight:15,alignSelf:"center",input:{margin:0,display:"block"}}),ue=e=>{let[t,o]=at(!1),{item:r,type:l}=e,p=`${l}-${r.id}`;return h.createElement(ge,null,h.createElement(mt,null,h.createElement(dt,{onClick:()=>o(!t),role:"button"},h.createElement(ct,{icon:"arrowdown",color:"#9DA5AB",style:{transform:`rotate(${t?0:-90}deg)`}}),r.help),h.createElement(gt,null,h.createElement(S,{toggleId:p,elementsToHighlight:r.nodes}))),t?h.createElement(ge,null,h.createElement(re,{item:r,key:"info"}),h.createElement(pe,{elements:r.nodes,type:l,key:"elements"}),h.createElement(de,{tags:r.tags,key:"tags"})):null)};var w=({items:e,empty:t,type:o})=>j.createElement(ut,null,e&&e.length?e.map(r=>j.createElement(ue,{item:r,key:`${o}:${r.id}`,type:o})):j.createElement(ft,{key:"placeholder"},t));n();import*as f from"react";import{styled as E}from"@storybook/theming";import{SizeMe as ht}from"react-sizeme";var yt=E.div({width:"100%",position:"relative",minHeight:"100%"}),xt=E.label(({theme:e})=>({cursor:"pointer",userSelect:"none",color:e.color.dark})),bt=E.div(({elementWidth:e,theme:t})=>({cursor:"pointer",fontSize:13,lineHeight:"20px",padding:e>450?"10px 15px 10px 0":"10px 0px 10px 15px",height:"40px",border:"none",marginTop:e>450?-40:0,float:e>450?"right":"left",display:"flex",alignItems:"center",width:e>450?"auto":"100%",borderBottom:e>450?"none":`1px solid ${t.appBorderColor}`,input:{marginLeft:10,marginRight:0,marginTop:-1,marginBottom:0}})),Ct=E.button(({theme:e})=>({textDecoration:"none",padding:"10px 15px",cursor:"pointer",fontWeight:e.typography.weight.bold,fontSize:e.typography.size.s2-1,lineHeight:1,height:40,border:"none",borderTop:"3px solid transparent",borderBottom:"3px solid transparent",background:"transparent","&:focus":{outline:"0 none",borderBottom:`3px solid ${e.color.secondary}`}}),({active:e,theme:t})=>e?{opacity:1,borderBottom:`3px solid ${t.color.secondary}`}:{}),Tt=E.div({}),kt=E.div(({theme:e})=>({boxShadow:`${e.appBorderColor} 0 -1px 0 0 inset`,background:"rgba(0, 0, 0, .05)",display:"flex",justifyContent:"space-between",whiteSpace:"nowrap"}));function It(e){return e.reduce((t,o)=>t.concat(o.nodes),[])}var fe=({tabs:e})=>{let{tab:t,setTab:o}=I(),r=f.useCallback(m=>{o(parseInt(m.currentTarget.getAttribute("data-index")||"",10))},[o]),l=`${e[t].type}-global-checkbox`,p="Highlight results";return f.createElement(ht,{refreshMode:"debounce"},({size:m})=>f.createElement(yt,null,f.createElement(kt,null,f.createElement(Tt,null,e.map((y,u)=>f.createElement(Ct,{key:u,"data-index":u,active:t===u,onClick:r},y.label)))),e[t].items.length>0?f.createElement(bt,{elementWidth:m.width||0},f.createElement(xt,{htmlFor:l},p),f.createElement(S,{toggleId:l,elementsToHighlight:It(e[t].items)})):null,e[t].panel))};V();var ye=v(Et)({height:12,width:12,marginRight:4}),Pt=v(ye)(({theme:e})=>({animation:`${e.animation.rotate360} 1s linear infinite;`})),Nt=v.span(({theme:e})=>({color:e.color.positive})),Ht=v.span(({theme:e})=>({color:e.color.negative})),Ft=v.span(({theme:e})=>({color:e.color.warning})),D=v.span({display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}),xe=()=>{let{manual:e}=At("a11y",{manual:!1}),[t,o]=St(e?"manual":"initial"),[r,l]=i.useState(void 0),{setResults:p,results:m}=I(),{storyId:y}=Bt();i.useEffect(()=>{o(e?"manual":"initial")},[e]);let u=c=>{o("ran"),p(c),setTimeout(()=>{t==="ran"&&o("ready")},900)},R=J(()=>{o("running")},[]),O=J(c=>{o("error"),l(c)},[]),F=Rt({[b.RUNNING]:R,[b.RESULT]:u,[b.ERROR]:O}),x=J(()=>{o("running"),F(b.MANUAL,y)},[y]),W=X(()=>[{title:"Run test",onClick:x}],[x]),$=X(()=>[{title:t==="ready"?"Rerun tests":i.createElement(i.Fragment,null,i.createElement(ye,{inline:!0,icon:"check"})," Tests completed"),onClick:x}],[t,x]),A=X(()=>{let{passes:c,incomplete:B,violations:T}=m;return[{label:i.createElement(Ht,null,T.length," Violations"),panel:i.createElement(w,{items:T,type:0,empty:"No accessibility violations found."}),items:T,type:0},{label:i.createElement(Nt,null,c.length," Passes"),panel:i.createElement(w,{items:c,type:1,empty:"No accessibility checks passed."}),items:c,type:1},{label:i.createElement(Ft,null,B.length," Incomplete"),panel:i.createElement(w,{items:B,type:2,empty:"No accessibility checks incomplete."}),items:B,type:2}]},[m]);return i.createElement(i.Fragment,null,t==="initial"&&i.createElement(D,null,"Initializing..."),t==="manual"&&i.createElement(i.Fragment,null,i.createElement(D,null,"Manually run the accessibility scan."),i.createElement(he,{key:"actionbar",actionItems:W})),t==="running"&&i.createElement(D,null,i.createElement(Pt,{inline:!0,icon:"sync"})," Please wait while the accessibility scan is running ..."),(t==="ready"||t==="ran")&&i.createElement(i.Fragment,null,i.createElement(vt,{vertical:!0,horizontal:!0},i.createElement(fe,{key:"tabs",tabs:A})),i.createElement(he,{key:"actionbar",actionItems:$})),t==="error"&&i.createElement(D,null,"The accessibility scan encountered an error.",i.createElement("br",null),typeof r=="string"?r:JSON.stringify(r)))};Q.register(P,e=>{Q.add(G,{title:"",type:be.TOOL,match:({viewMode:t})=>t==="story",render:()=>q.createElement(oe,null)}),Q.add(G,{title(){let t=e?.getAddonState(P),o=t?.violations?.length||0,r=t?.incomplete?.length||0,l=o+r;return l!==0?`Accessibility (${l})`:"Accessibility"},type:be.PANEL,render:({active:t=!0,key:o})=>q.createElement(se,{key:o,active:t},q.createElement(xe,null)),paramKey:Z})});
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ "use strict";var w=Object.create;var R=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var U=(t,o)=>()=>(t&&(o=t(t=0)),o);var P=(t,o)=>()=>(o||t((o={exports:{}}).exports,o),o.exports);var $=(t,o,e,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of _(o))!O.call(t,n)&&n!==e&&R(t,n,{get:()=>o[n],enumerable:!(c=T(o,n))||c.enumerable});return t};var m=(t,o,e)=>(e=t!=null?w(h(t)):{},$(o||!t||!t.__esModule?R(e,"default",{value:t,enumerable:!0}):e,t));var r,I,x,L,D,b,q,a,E=U(()=>{"use strict";r="storybook/a11y",I=`${r}/panel`,x=`${r}/result`,L=`${r}/request`,D=`${r}/running`,b=`${r}/error`,q=`${r}/manual`,a={RESULT:x,REQUEST:L,RUNNING:D,ERROR:b,MANUAL:q}});var N=P((V,s)=>{"use strict";var p=m(require("global")),S=require("@storybook/addons");E();var{document:M,window:Y}=p.default;s&&s.hot&&s.hot.decline&&s.hot.decline();var i=S.addons.getChannel(),l=!1,f,v=async t=>{let{manual:o}=await g(t);o||await u(t)},u=async t=>{f=t;try{let o=await g(t);if(!l){l=!0,i.emit(a.RUNNING);let e=(await import("axe-core")).default,{element:c="#root",config:n,options:y={}}=o,d=M.querySelector(c);e.reset(),n&&e.configure(n);let A=await e.run(d,y);f===t?i.emit(a.RESULT,A):(l=!1,u(f))}}catch(o){i.emit(a.ERROR,o)}finally{l=!1}},g=async t=>{let{parameters:o}=await Y.__STORYBOOK_STORY_STORE__.loadStory({storyId:t})||{};return o.a11y||{config:{},options:{restoreScroll:!0}}};i.on(a.REQUEST,v);i.on(a.MANUAL,u)});var k=m(N());
@@ -0,0 +1 @@
1
+ import{a as S,b as w,c as r,g as n,h}from"./chunk-M5RWOKLV.mjs";import E from"global";import{addons as O}from"@storybook/addons";var u=S((b,o)=>{"use strict";r();h();var{document:T,window:_}=E;o&&o.hot&&o.hot.decline&&o.hot.decline();var a=O.getChannel(),i=!1,c,N=async t=>{let{manual:e}=await f(t);e||await l(t)},l=async t=>{c=t;try{let e=await f(t);if(!i){i=!0,a.emit(n.RUNNING);let s=(await import("axe-core")).default,{element:g="#root",config:m,options:d={}}=e,p=T.querySelector(g);s.reset(),m&&s.configure(m);let R=await s.run(p,d);c===t?a.emit(n.RESULT,R):(i=!1,l(c))}}catch(e){a.emit(n.ERROR,e)}finally{i=!1}},f=async t=>{let{parameters:e}=await _.__STORYBOOK_STORY_STORE__.loadStory({storyId:t})||{};return e.a11y||{config:{},options:{restoreScroll:!0}}};a.on(n.REQUEST,N);a.on(n.MANUAL,l)});r();var q=w(u());
package/manager.js CHANGED
@@ -1 +1 @@
1
- import './dist/esm/manager';
1
+ import './dist/manager';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-a11y",
3
- "version": "7.0.0-alpha.2",
3
+ "version": "7.0.0-alpha.23",
4
4
  "description": "Test component compliance with web accessibility standards",
5
5
  "keywords": [
6
6
  "a11y",
@@ -25,9 +25,32 @@
25
25
  "url": "https://opencollective.com/storybook"
26
26
  },
27
27
  "license": "MIT",
28
- "main": "dist/cjs/index.js",
29
- "module": "dist/esm/index.js",
30
- "types": "dist/types/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "require": "./dist/index.js",
31
+ "import": "./dist/index.mjs",
32
+ "types": "./dist/index.d.ts"
33
+ },
34
+ "./manager": {
35
+ "require": "./dist/manager.js",
36
+ "import": "./dist/manager.mjs",
37
+ "types": "./dist/manager.d.ts"
38
+ },
39
+ "./preview": {
40
+ "require": "./dist/preview.js",
41
+ "import": "./dist/preview.mjs",
42
+ "types": "./dist/preview.d.ts"
43
+ },
44
+ "./register.js": {
45
+ "require": "./dist/manager.js",
46
+ "import": "./dist/manager.mjs",
47
+ "types": "./dist/manager.d.ts"
48
+ },
49
+ "./package.json": "./package.json"
50
+ },
51
+ "main": "dist/index.js",
52
+ "module": "dist/index.mjs",
53
+ "types": "dist/index.d.ts",
31
54
  "files": [
32
55
  "dist/**/*",
33
56
  "README.md",
@@ -35,28 +58,30 @@
35
58
  "*.d.ts"
36
59
  ],
37
60
  "scripts": {
38
- "prepare": "node ../../scripts/prepare.js"
61
+ "check": "tsc --noEmit",
62
+ "prepare": "../../../scripts/prepare/bundle.ts"
39
63
  },
40
64
  "dependencies": {
41
- "@storybook/addons": "7.0.0-alpha.2",
42
- "@storybook/api": "7.0.0-alpha.2",
43
- "@storybook/channels": "7.0.0-alpha.2",
44
- "@storybook/client-logger": "7.0.0-alpha.2",
45
- "@storybook/components": "7.0.0-alpha.2",
46
- "@storybook/core-events": "7.0.0-alpha.2",
47
- "@storybook/csf": "0.0.2--canary.4566f4d.1",
48
- "@storybook/theming": "7.0.0-alpha.2",
65
+ "@storybook/addon-highlight": "7.0.0-alpha.23",
66
+ "@storybook/addons": "7.0.0-alpha.23",
67
+ "@storybook/api": "7.0.0-alpha.23",
68
+ "@storybook/channels": "7.0.0-alpha.23",
69
+ "@storybook/client-logger": "7.0.0-alpha.23",
70
+ "@storybook/components": "7.0.0-alpha.23",
71
+ "@storybook/core-events": "7.0.0-alpha.23",
72
+ "@storybook/csf": "0.0.2--canary.0899bb7.0",
73
+ "@storybook/theming": "7.0.0-alpha.23",
49
74
  "axe-core": "^4.2.0",
50
75
  "core-js": "^3.8.2",
51
76
  "global": "^4.4.0",
52
77
  "lodash": "^4.17.21",
53
78
  "react-sizeme": "^3.0.1",
54
- "regenerator-runtime": "^0.13.7",
55
79
  "ts-dedent": "^2.0.0",
56
80
  "util-deprecate": "^1.0.2"
57
81
  },
58
82
  "devDependencies": {
59
- "@testing-library/react": "^11.2.2"
83
+ "@testing-library/react": "^11.2.2",
84
+ "typescript": "~4.6.3"
60
85
  },
61
86
  "peerDependencies": {
62
87
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
@@ -73,7 +98,14 @@
73
98
  "publishConfig": {
74
99
  "access": "public"
75
100
  },
76
- "gitHead": "44920e2b6bd51981bac5124743c29fb9f5517e44",
101
+ "bundler": {
102
+ "entries": [
103
+ "./src/index.ts",
104
+ "./src/manager.tsx",
105
+ "./src/preview.tsx"
106
+ ]
107
+ },
108
+ "gitHead": "0900e20acfbc12551c6a3f788b8de5dd6af5f80a",
77
109
  "storybook": {
78
110
  "displayName": "Accessibility",
79
111
  "icon": "https://user-images.githubusercontent.com/263385/101991665-47042f80-3c7c-11eb-8f00-64b5a18f498a.png",
package/preview.js CHANGED
@@ -1 +1 @@
1
- export * from './dist/esm/preview';
1
+ import './dist/preview';
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2017 Kadira Inc. <hello@kadira.io>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- var _global = _interopRequireDefault(require("global"));
4
-
5
- var _addons = require("@storybook/addons");
6
-
7
- var _coreEvents = require("@storybook/core-events");
8
-
9
- var _constants = require("./constants");
10
-
11
- var _highlight = require("./highlight");
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
15
- const {
16
- document
17
- } = _global.default;
18
-
19
- if (module && module.hot && module.hot.decline) {
20
- module.hot.decline();
21
- }
22
-
23
- const channel = _addons.addons.getChannel();
24
-
25
- const highlight = infos => {
26
- const id = _constants.HIGHLIGHT_STYLE_ID;
27
- resetHighlight(); // Make sure there are no duplicated selectors
28
-
29
- const elements = Array.from(new Set(infos.elements));
30
- const sheet = document.createElement('style');
31
- sheet.setAttribute('id', id);
32
- sheet.innerHTML = elements.map(target => `${target}{
33
- ${(0, _highlight.highlightStyle)(infos.color)}
34
- }`).join(' ');
35
- document.head.appendChild(sheet);
36
- };
37
-
38
- const resetHighlight = () => {
39
- const id = _constants.HIGHLIGHT_STYLE_ID;
40
- const sheetToBeRemoved = document.getElementById(id);
41
-
42
- if (sheetToBeRemoved) {
43
- sheetToBeRemoved.parentNode.removeChild(sheetToBeRemoved);
44
- }
45
- };
46
-
47
- channel.on(_coreEvents.STORY_CHANGED, resetHighlight);
48
- channel.on(_constants.EVENTS.HIGHLIGHT, highlight);
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- var _global = _interopRequireDefault(require("global"));
4
-
5
- var _addons = require("@storybook/addons");
6
-
7
- var _constants = require("./constants");
8
-
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
-
11
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
-
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
-
15
- const {
16
- document,
17
- window: globalWindow
18
- } = _global.default;
19
-
20
- if (module && module.hot && module.hot.decline) {
21
- module.hot.decline();
22
- }
23
-
24
- const channel = _addons.addons.getChannel(); // Holds axe core running state
25
-
26
-
27
- let active = false; // Holds latest story we requested a run
28
-
29
- let activeStoryId;
30
- /**
31
- * Handle A11yContext events.
32
- * Because the event are sent without manual check, we split calls
33
- */
34
-
35
- const handleRequest = async storyId => {
36
- const {
37
- manual
38
- } = await getParams(storyId);
39
-
40
- if (!manual) {
41
- await run(storyId);
42
- }
43
- };
44
-
45
- const run = async storyId => {
46
- activeStoryId = storyId;
47
-
48
- try {
49
- const input = await getParams(storyId);
50
-
51
- if (!active) {
52
- active = true;
53
- channel.emit(_constants.EVENTS.RUNNING);
54
- const axe = (await Promise.resolve().then(() => _interopRequireWildcard(require('axe-core')))).default;
55
- const {
56
- element = '#root',
57
- config,
58
- options = {}
59
- } = input;
60
- const htmlElement = document.querySelector(element);
61
- axe.reset();
62
-
63
- if (config) {
64
- axe.configure(config);
65
- }
66
-
67
- const result = await axe.run(htmlElement, options); // It's possible that we requested a new run on a different story.
68
- // Unfortunately, axe doesn't support a cancel method to abort current run.
69
- // We check if the story we run against is still the current one,
70
- // if not, trigger a new run using the current story
71
-
72
- if (activeStoryId === storyId) {
73
- channel.emit(_constants.EVENTS.RESULT, result);
74
- } else {
75
- active = false;
76
- run(activeStoryId);
77
- }
78
- }
79
- } catch (error) {
80
- channel.emit(_constants.EVENTS.ERROR, error);
81
- } finally {
82
- active = false;
83
- }
84
- };
85
- /** Returns story parameters or default ones. */
86
-
87
-
88
- const getParams = async storyId => {
89
- const {
90
- parameters
91
- } = (await globalWindow.__STORYBOOK_STORY_STORE__.loadStory({
92
- storyId
93
- })) || {};
94
- return parameters.a11y || {
95
- config: {},
96
- options: {
97
- restoreScroll: true
98
- }
99
- };
100
- };
101
-
102
- channel.on(_constants.EVENTS.REQUEST, handleRequest);
103
- channel.on(_constants.EVENTS.MANUAL, run);
@@ -1,185 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RuleType = exports.A11YPanel = void 0;
7
-
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _theming = require("@storybook/theming");
11
-
12
- var _components = require("@storybook/components");
13
-
14
- var _api = require("@storybook/api");
15
-
16
- var _Report = require("./Report");
17
-
18
- var _Tabs = require("./Tabs");
19
-
20
- var _A11yContext = require("./A11yContext");
21
-
22
- var _constants = require("../constants");
23
-
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
- let RuleType;
29
- exports.RuleType = RuleType;
30
-
31
- (function (RuleType) {
32
- RuleType[RuleType["VIOLATION"] = 0] = "VIOLATION";
33
- RuleType[RuleType["PASS"] = 1] = "PASS";
34
- RuleType[RuleType["INCOMPLETION"] = 2] = "INCOMPLETION";
35
- })(RuleType || (exports.RuleType = RuleType = {}));
36
-
37
- const Icon = (0, _theming.styled)(_components.Icons)({
38
- height: 12,
39
- width: 12,
40
- marginRight: 4
41
- });
42
- const RotatingIcon = (0, _theming.styled)(Icon)(({
43
- theme
44
- }) => ({
45
- animation: `${theme.animation.rotate360} 1s linear infinite;`
46
- }));
47
-
48
- const Passes = _theming.styled.span(({
49
- theme
50
- }) => ({
51
- color: theme.color.positive
52
- }));
53
-
54
- const Violations = _theming.styled.span(({
55
- theme
56
- }) => ({
57
- color: theme.color.negative
58
- }));
59
-
60
- const Incomplete = _theming.styled.span(({
61
- theme
62
- }) => ({
63
- color: theme.color.warning
64
- }));
65
-
66
- const Centered = _theming.styled.span({
67
- display: 'flex',
68
- alignItems: 'center',
69
- justifyContent: 'center',
70
- height: '100%'
71
- });
72
-
73
- const A11YPanel = () => {
74
- const {
75
- manual
76
- } = (0, _api.useParameter)('a11y', {
77
- manual: false
78
- });
79
- const [status, setStatus] = (0, _react.useState)(manual ? 'manual' : 'initial');
80
-
81
- const [error, setError] = _react.default.useState(undefined);
82
-
83
- const {
84
- setResults,
85
- results
86
- } = (0, _A11yContext.useA11yContext)();
87
- const {
88
- storyId
89
- } = (0, _api.useStorybookState)();
90
-
91
- _react.default.useEffect(() => {
92
- setStatus(manual ? 'manual' : 'initial');
93
- }, [manual]);
94
-
95
- const handleResult = axeResults => {
96
- setStatus('ran');
97
- setResults(axeResults);
98
- setTimeout(() => {
99
- if (status === 'ran') {
100
- setStatus('ready');
101
- }
102
- }, 900);
103
- };
104
-
105
- const handleRun = (0, _react.useCallback)(() => {
106
- setStatus('running');
107
- }, []);
108
- const handleError = (0, _react.useCallback)(err => {
109
- setStatus('error');
110
- setError(err);
111
- }, []);
112
- const emit = (0, _api.useChannel)({
113
- [_constants.EVENTS.RUNNING]: handleRun,
114
- [_constants.EVENTS.RESULT]: handleResult,
115
- [_constants.EVENTS.ERROR]: handleError
116
- });
117
- const handleManual = (0, _react.useCallback)(() => {
118
- setStatus('running');
119
- emit(_constants.EVENTS.MANUAL, storyId);
120
- }, [storyId]);
121
- const manualActionItems = (0, _react.useMemo)(() => [{
122
- title: 'Run test',
123
- onClick: handleManual
124
- }], [handleManual]);
125
- const readyActionItems = (0, _react.useMemo)(() => [{
126
- title: status === 'ready' ? 'Rerun tests' : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Icon, {
127
- inline: true,
128
- icon: "check"
129
- }), " Tests completed"),
130
- onClick: handleManual
131
- }], [status, handleManual]);
132
- const tabs = (0, _react.useMemo)(() => {
133
- const {
134
- passes,
135
- incomplete,
136
- violations
137
- } = results;
138
- return [{
139
- label: /*#__PURE__*/_react.default.createElement(Violations, null, violations.length, " Violations"),
140
- panel: /*#__PURE__*/_react.default.createElement(_Report.Report, {
141
- items: violations,
142
- type: RuleType.VIOLATION,
143
- empty: "No accessibility violations found."
144
- }),
145
- items: violations,
146
- type: RuleType.VIOLATION
147
- }, {
148
- label: /*#__PURE__*/_react.default.createElement(Passes, null, passes.length, " Passes"),
149
- panel: /*#__PURE__*/_react.default.createElement(_Report.Report, {
150
- items: passes,
151
- type: RuleType.PASS,
152
- empty: "No accessibility checks passed."
153
- }),
154
- items: passes,
155
- type: RuleType.PASS
156
- }, {
157
- label: /*#__PURE__*/_react.default.createElement(Incomplete, null, incomplete.length, " Incomplete"),
158
- panel: /*#__PURE__*/_react.default.createElement(_Report.Report, {
159
- items: incomplete,
160
- type: RuleType.INCOMPLETION,
161
- empty: "No accessibility checks incomplete."
162
- }),
163
- items: incomplete,
164
- type: RuleType.INCOMPLETION
165
- }];
166
- }, [results]);
167
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, status === 'initial' && /*#__PURE__*/_react.default.createElement(Centered, null, "Initializing..."), status === 'manual' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Centered, null, "Manually run the accessibility scan."), /*#__PURE__*/_react.default.createElement(_components.ActionBar, {
168
- key: "actionbar",
169
- actionItems: manualActionItems
170
- })), status === 'running' && /*#__PURE__*/_react.default.createElement(Centered, null, /*#__PURE__*/_react.default.createElement(RotatingIcon, {
171
- inline: true,
172
- icon: "sync"
173
- }), " Please wait while the accessibility scan is running ..."), (status === 'ready' || status === 'ran') && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.ScrollArea, {
174
- vertical: true,
175
- horizontal: true
176
- }, /*#__PURE__*/_react.default.createElement(_Tabs.Tabs, {
177
- key: "tabs",
178
- tabs: tabs
179
- })), /*#__PURE__*/_react.default.createElement(_components.ActionBar, {
180
- key: "actionbar",
181
- actionItems: readyActionItems
182
- })), status === 'error' && /*#__PURE__*/_react.default.createElement(Centered, null, "The accessibility scan encountered an error.", /*#__PURE__*/_react.default.createElement("br", null), typeof error === 'string' ? error : JSON.stringify(error)));
183
- };
184
-
185
- exports.A11YPanel = A11YPanel;