{"version":3,"sources":["../../../src/govuk/helpers/_visually-hidden.scss"],"names":[],"mappings":"AAAA,GAAG;AACH,+BAA+B;AAC/B,GAAG;;AAEH,qBAAqB;;AAErB,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,sEAAsE;AACtE,2HAA2H;AAC3H,uCAAuC;AACvC,EAAE;AACF,uEAAuE;AACvE,EAAE;AACF,kBAAkB;;AAElB;EACE,mDAAmD;;EAEnD,2CAA2C;EAC3C,4CAA4C;EAC5C,2EAA2E;EAC3E,sCAAsC;EACtC,0CAA0C;EAC1C,2CAA2C;;EAE3C,iDAAiD;;EAEjD,mCAAmC;EACnC,oDAAoD;EACpD,8DAAsD;UAAtD,sDAAsD;;EAEtD,0CAA0C;;EAE1C,4EAA4E;EAC5E,yCAAyC;EACzC,uFAAuF;EACvF,oDAAoD;;EAEpD,6EAA6E;EAC7E,4EAA4E;EAC5E,8BAA8B;EAC9B,yBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;AACnB;;AAEA,qEAAqE;AACrE,EAAE;AACF,uEAAuE;AACvE,EAAE;AACF,iBAAiB;;AAEjB;EACE,6DAA6D;;EAE7D,qEAAqE;EACrE,0EAA0E;EAC1E,4EAA4E;EAC5E,0CAA0C;EAC1C;IACE,gBAAgB;EAClB;;EAEA;IACE,gBAAgB;EAClB;AACF;;AAEA,4EAA4E;AAC5E,8EAA8E;AAC9E,qBAAqB;AACrB,EAAE;AACF,uEAAuE;AACvE,EAAE;AACF,iBAAiB;;AAEjB;EACE,oEAAoE;EACpE,wEAAwE;EACxE,8DAA8D;EAC9D,oDAAoD;EACpD;IACE,6DAA6D;EAC/D;AACF","file":"_visually-hidden.scss","sourcesContent":["////\n/// @group helpers/accessibility\n////\n\n@import \"../tools/if\";\n\n/// Helper function containing the common code for the following two mixins\n///\n/// @link https://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n///   - Hiding Content for Accessibility, Jonathan Snook, February 2011\n/// @link https://github.com/h5bp/html5-boilerplate/blob/9f13695d21ff92c55c78dfa9f16bb02a1b6e911f/src/css/main.css#L121-L158\n///   - h5bp/html5-boilerplate - Thanks!\n///\n/// @param {Boolean} $important [true] - Whether to mark as `!important`\n///\n/// @access private\n\n@mixin _govuk-visually-hide-content($important: true) {\n  position: absolute govuk-if($important, !important);\n\n  width: 1px govuk-if($important, !important);\n  height: 1px govuk-if($important, !important);\n  // If margin is set to a negative value it can cause text to be announced in\n  // the wrong order in VoiceOver for OSX\n  margin: 0 govuk-if($important, !important);\n  padding: 0 govuk-if($important, !important);\n\n  overflow: hidden govuk-if($important, !important);\n\n  // `clip` is needed for IE11 support\n  clip: rect(0 0 0 0) govuk-if($important, !important);\n  clip-path: inset(50%) govuk-if($important, !important);\n\n  border: 0 govuk-if($important, !important);\n\n  // For long content, line feeds are not interpreted as spaces and small width\n  // causes content to wrap 1 word per line:\n  // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n  white-space: nowrap govuk-if($important, !important);\n\n  // Prevent users from selecting or copying visually-hidden text. This prevents\n  // a user unintentionally copying more text than they intended and needing to\n  // manually trim it down again.\n  user-select: none;\n}\n\n/// Hide an element visually, but have it available for screen readers\n///\n/// @param {Boolean} $important [true] - Whether to mark as `!important`\n///\n/// @access public\n\n@mixin govuk-visually-hidden($important: true) {\n  @include _govuk-visually-hide-content($important: $important);\n\n  // Absolute positioning has the unintended consequence of removing any\n  // whitespace surrounding visually hidden text from the accessibility tree.\n  // Insert a space character before and after visually hidden text to separate\n  // it from any visible text surrounding it.\n  &::before {\n    content: \"\\00a0\";\n  }\n\n  &::after {\n    content: \"\\00a0\";\n  }\n}\n\n/// Hide an element visually, but have it available for screen readers whilst\n/// allowing the element to be focused when navigated to via the keyboard (e.g.\n/// for the skip link)\n///\n/// @param {Boolean} $important [true] - Whether to mark as `!important`\n///\n/// @access public\n\n@mixin govuk-visually-hidden-focusable($important: true) {\n  // IE 11 doesn't support the combined `:not(:active, :focus)` syntax.\n  // Also allows for ':focus' companion classes from postcss-pseudo-classes\n  // which the plugin unfortunately doesn't handle automatically.\n  // stylelint-disable-next-line selector-class-pattern\n  &:not(:active):not(:focus):not(.\\:focus) {\n    @include _govuk-visually-hide-content($important: $important);\n  }\n}\n"]}
