@nationalarchives/frontend 0.1.20-prerelease → 0.1.22-prerelease
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/README.md +1 -1
- package/govuk-prototype-kit.config.json +7 -2
- package/nationalarchives/_prototype-kit.scss +16 -0
- package/nationalarchives/all.css +3 -3
- package/nationalarchives/all.css.map +1 -1
- package/nationalarchives/all.js +1 -1
- package/nationalarchives/all.js.map +1 -1
- package/nationalarchives/all.mjs +17 -10
- package/nationalarchives/all.scss +1 -5
- package/nationalarchives/assets/images/favicon.ico +0 -0
- package/nationalarchives/assets/images/mask-icon.svg +17 -5
- package/nationalarchives/assets/images/mstile-150x150.png +0 -0
- package/nationalarchives/components/_index.scss +1 -0
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.mjs +5 -15
- package/nationalarchives/components/breadcrumbs/breadcrumbs.scss +12 -4
- package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +64 -0
- package/nationalarchives/components/breadcrumbs/fixtures.json +2 -2
- package/nationalarchives/components/breadcrumbs/template.njk +11 -15
- package/nationalarchives/components/button/_button-group.scss +1 -1
- package/nationalarchives/components/button/button.css +1 -13
- package/nationalarchives/components/button/button.css.map +1 -1
- package/nationalarchives/components/button/button.scss +24 -6
- package/nationalarchives/components/card/card.css +1 -13
- package/nationalarchives/components/card/card.css.map +1 -1
- package/nationalarchives/components/card/card.scss +52 -7
- package/nationalarchives/components/card/card.stories.js +78 -36
- package/nationalarchives/components/card/fixtures.json +40 -16
- package/nationalarchives/components/card/macro-options.json +26 -0
- package/nationalarchives/components/card/template.njk +38 -26
- package/nationalarchives/components/cookie-banner/cookie-banner.css +1 -13
- package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.mjs +15 -7
- package/nationalarchives/components/cookie-banner/cookie-banner.scss +9 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.stories.js +23 -10
- package/nationalarchives/components/cookie-banner/macro-options.json +1 -1
- package/nationalarchives/components/cookie-banner/template.njk +4 -4
- package/nationalarchives/components/filters/filters.css +1 -1
- package/nationalarchives/components/filters/filters.css.map +1 -1
- package/nationalarchives/components/filters/filters.scss +2 -2
- package/nationalarchives/components/footer/fixtures.json +1 -1
- package/nationalarchives/components/footer/footer.css +1 -13
- package/nationalarchives/components/footer/footer.css.map +1 -1
- package/nationalarchives/components/footer/footer.scss +8 -55
- package/nationalarchives/components/footer/footer.stories.js +1 -1
- package/nationalarchives/components/footer/template.njk +16 -14
- package/nationalarchives/components/gallery/gallery.css +1 -13
- package/nationalarchives/components/gallery/gallery.css.map +1 -1
- package/nationalarchives/components/gallery/template.njk +2 -2
- package/nationalarchives/components/grid/grid.css +1 -1
- package/nationalarchives/components/grid/grid.css.map +1 -1
- package/nationalarchives/components/grid/grid.scss +15 -11
- package/nationalarchives/components/grid/grid.stories.js +21 -0
- package/nationalarchives/components/grid/macro-options.json +48 -0
- package/nationalarchives/components/grid/template.njk +29 -3
- package/nationalarchives/components/header/header.css +1 -1
- package/nationalarchives/components/header/header.css.map +1 -1
- package/nationalarchives/components/header/header.scss +60 -145
- package/nationalarchives/components/header/header.stories.js +2 -0
- package/nationalarchives/components/header/macro-options.json +12 -0
- package/nationalarchives/components/header/template.njk +6 -1
- package/nationalarchives/components/hero/fixtures.json +166 -6
- package/nationalarchives/components/hero/hero.css +1 -1
- package/nationalarchives/components/hero/hero.css.map +1 -1
- package/nationalarchives/components/hero/hero.scss +187 -64
- package/nationalarchives/components/hero/hero.stories.js +98 -23
- package/nationalarchives/components/hero/macro-options.json +48 -12
- package/nationalarchives/components/hero/template.njk +34 -24
- package/nationalarchives/components/index-grid/index-grid.css +1 -1
- package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
- package/nationalarchives/components/index-grid/template.njk +2 -2
- package/nationalarchives/components/message/message.css +1 -1
- package/nationalarchives/components/message/message.css.map +1 -1
- package/nationalarchives/components/message/message.scss +4 -0
- package/nationalarchives/components/pagination/_index.scss +1 -0
- package/nationalarchives/components/pagination/fixtures.json +4 -0
- package/nationalarchives/components/pagination/macro-options.json +116 -0
- package/nationalarchives/components/pagination/macro.njk +3 -0
- package/nationalarchives/components/pagination/pagination.css +1 -0
- package/nationalarchives/components/pagination/pagination.css.map +1 -0
- package/nationalarchives/components/pagination/pagination.scss +98 -0
- package/nationalarchives/components/pagination/pagination.stories.js +73 -0
- package/nationalarchives/components/pagination/template.njk +38 -0
- package/nationalarchives/components/phase-banner/phase-banner.css +1 -1
- package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
- package/nationalarchives/components/phase-banner/phase-banner.scss +5 -1
- package/nationalarchives/components/picture/picture.css +1 -13
- package/nationalarchives/components/picture/picture.css.map +1 -1
- package/nationalarchives/components/picture/picture.scss +1 -1
- package/nationalarchives/components/picture/picture.stories.js +2 -2
- package/nationalarchives/components/profile/profile.css +1 -1
- package/nationalarchives/components/profile/profile.css.map +1 -1
- package/nationalarchives/components/profile/template.njk +2 -2
- package/nationalarchives/components/sensitive-image/sensitive-image.css +1 -1
- package/nationalarchives/components/sensitive-image/sensitive-image.css.map +1 -1
- package/nationalarchives/components/skip-link/fixtures.json +1 -1
- package/nationalarchives/components/skip-link/skip-link.css +1 -1
- package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
- package/nationalarchives/components/skip-link/skip-link.js +2 -0
- package/nationalarchives/components/skip-link/skip-link.js.map +1 -0
- package/nationalarchives/components/skip-link/skip-link.mjs +40 -0
- package/nationalarchives/components/skip-link/skip-link.scss +18 -16
- package/nationalarchives/components/skip-link/skip-link.stories.js +48 -6
- package/nationalarchives/components/skip-link/template.njk +1 -1
- package/nationalarchives/components/tabs/tabs.css +1 -1
- package/nationalarchives/components/tabs/tabs.css.map +1 -1
- package/nationalarchives/components/tabs/tabs.js +1 -1
- package/nationalarchives/components/tabs/tabs.js.map +1 -1
- package/nationalarchives/components/tabs/tabs.mjs +6 -2
- package/nationalarchives/components/tabs/tabs.scss +17 -2
- package/nationalarchives/components/tabs/tabs.stories.js +6 -6
- package/nationalarchives/lib/_font-awesome.scss +3 -2
- package/nationalarchives/lib/cookies.mjs +122 -50
- package/nationalarchives/stories/development/contributing.mdx +0 -10
- package/nationalarchives/stories/development/cookies.mdx +82 -0
- package/nationalarchives/stories/development/structure.mdx +88 -0
- package/nationalarchives/stories/development/using/compiled.mdx +9 -0
- package/nationalarchives/stories/development/using/hosted.mdx +53 -0
- package/nationalarchives/stories/development/using/npm.mdx +59 -0
- package/nationalarchives/stories/utilities/colour-schemes/colour-schemes.stories.js +333 -72
- package/nationalarchives/stories/utilities/overrides/overrides.stories.js +10 -21
- package/nationalarchives/stories/utilities/typography/heading-groups.stories.js +2 -2
- package/nationalarchives/stories/utilities/typography/headings.stories.js +6 -3
- package/nationalarchives/stories/utilities/typography/lists.stories.js +93 -0
- package/nationalarchives/stories/utilities/typography/typography.mdx +11 -1
- package/nationalarchives/stories/utilities/typography/typography.stories.js +1 -1
- package/nationalarchives/templates/homepage.njk +11 -58
- package/nationalarchives/templates/layouts/_generic.njk +31 -14
- package/nationalarchives/templates/layouts/_prototype-kit.njk +11 -0
- package/nationalarchives/templates/search-results.njk +11 -15
- package/nationalarchives/templates/topics.njk +18 -22
- package/nationalarchives/tools/_colour.scss +77 -23
- package/nationalarchives/tools/_grid.scss +12 -12
- package/nationalarchives/tools/_media.scss +6 -0
- package/nationalarchives/tools/_spacing.scss +6 -6
- package/nationalarchives/tools/_typography.scss +4 -2
- package/nationalarchives/utilities/_a11y.scss +15 -0
- package/nationalarchives/utilities/_columns.scss +42 -0
- package/nationalarchives/utilities/_debug.scss +1 -1
- package/nationalarchives/utilities/_global.scss +32 -32
- package/nationalarchives/utilities/_index.scss +2 -0
- package/nationalarchives/utilities/_lists.scss +181 -0
- package/nationalarchives/utilities/_typography.scss +129 -138
- package/nationalarchives/variables/_assets.scss +2 -1
- package/nationalarchives/variables/_colour.scss +94 -74
- package/nationalarchives/variables/_features.scss +1 -0
- package/nationalarchives/variables/_grid.scss +5 -5
- package/nationalarchives/variables/_index.scss +1 -0
- package/nationalarchives/variables/_media.scss +29 -29
- package/nationalarchives/variables/_typography.scss +15 -12
- package/package.json +15 -14
- package/nationalarchives/_features.scss +0 -1
- package/nationalarchives/assets/images/tna-horizontal-logo-inverted.svg +0 -51
- package/nationalarchives/assets/images/tna-horizontal-logo.svg +0 -51
- package/nationalarchives/stories/design/about.mdx +0 -25
- package/nationalarchives/stories/development/relationships.mdx +0 -57
- package/nationalarchives/stories/development/using.mdx +0 -75
@@ -1,2 +1,2 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,(()=>(()=>{"use strict";var e={774:(e,t,
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,(()=>(()=>{"use strict";var e={774:(e,t,i)=>{function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function r(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?n(Object(i),!0).forEach((function(t){c(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function c(e,t,i){return(t=a(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,a(o.key),o)}}function a(e){var t=function(e,t){if("object"!==o(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,"string");if("object"!==o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===o(t)?t:String(t)}function l(e,t){u(e,t),t.add(e)}function u(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function p(e,t,i){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return i}function f(e,t,i){return function(e,t,i){if(t.set)t.set.call(e,i);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=i}}(e,y(e,t,"set"),i),i}function h(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,y(e,t,"get"))}function y(e,t,i){if(!t.has(e))throw new TypeError("attempted to "+i+" private field on non-instance");return t.get(e)}i.d(t,{Z:()=>m});var d=new WeakMap,v=new WeakSet,b=new WeakSet,m=function(){function e(){var t,i,o=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["usage","settings"],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"cookies_policy";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,b),l(this,v),i={writable:!0,value:{}},u(this,t=d),t.set(this,i),this.cookiesPolicyKey=r,n.forEach((function(e){h(o,d)[e.toLowerCase()]=!1})),h(this,d).essential=!0}var t,i;return t=e,i=[{key:"policies",get:function(){return this.exists(this.cookiesPolicyKey)?f(this,d,r(r({},h(this,d)),this.allPolicies)):h(this,d)},set:function(e){f(this,d,e)}},{key:"all",get:function(){return p(this,v,g).call(this,document.cookie)}},{key:"exists",value:function(e){return Object.prototype.hasOwnProperty.call(this.all,e)}},{key:"hasValue",value:function(e,t){return this.get(e)==t}},{key:"get",value:function(e){return this.exists(e)?decodeURIComponent(this.all[e]):null}},{key:"set",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.maxAge,n=void 0===o?31536e3:o,r=i.path,c=void 0===r?"/":r,s=i.sameSite,a=void 0===s?"Lax":s;document.cookie="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t),"; SameSite=").concat(a,"; path=").concat(c,"; max-age=").concat(n,"; Secure")}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/";this.set(e,"",0,t)}},{key:"allPolicies",get:function(){return JSON.parse(this.get(this.cookiesPolicyKey)||"{}")}},{key:"acceptPolicy",value:function(e){p(this,b,k).call(this,e,!0),this.savePolicies()}},{key:"rejectPolicy",value:function(e){"essential"!==e&&(p(this,b,k).call(this,e,!1),this.savePolicies())}},{key:"savePolicies",value:function(){this.set(this.cookiesPolicyKey,JSON.stringify(this.policies))}},{key:"acceptAllPolicies",value:function(){var e=this;Object.keys(this.policies).forEach((function(t){return p(e,b,k).call(e,t,!0)})),this.savePolicies()}},{key:"rejectAllPolicies",value:function(){var e=this;Object.keys(this.policies).forEach((function(t){return p(e,b,k).call(e,t,!1)})),this.savePolicies()}},{key:"isPolicyAccepted",value:function(e){return Object.prototype.hasOwnProperty.call(this.policies,e)?!0===this.policies[e]:null}}],i&&s(t.prototype,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();function g(e){var t={};return e.split(";").forEach((function(e){var i=e.trim().split("=");t[i[0]]=i[1]})),t}function k(e,t){var i;this.policies=r(r({},this.policies),{},(c(i={},e,t),c(i,"essential",!0),i))}}},t={};function i(o){var n=t[o];if(void 0!==n)return n.exports;var r=t[o]={exports:{}};return e[o](r,r.exports,i),r.exports}i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{i.r(o),i.d(o,{CookieBanner:()=>r});var e=i(774);function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e,i){for(var o=0;o<i.length;o++){var n=i[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,r=function(e,i){if("object"!==t(e)||null===e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,"string");if("object"!==t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===t(r)?r:String(r)),n)}var r}var r=function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.$module=e,this.$acceptButton=e&&e.querySelector('[value="accept"]'),this.$rejectButton=e&&e.querySelector('[value="reject"]'),this.$prompt=e&&e.querySelector(".tna-cookie-banner__message--prompt"),this.$acceptedMessage=e&&e.querySelector(".tna-cookie-banner__message--accepted"),this.$rejectedMessage=e&&e.querySelector(".tna-cookie-banner__message--rejected"),this.$closeButtons=e&&e.querySelectorAll('[value="close"]')}var i,o;return i=t,(o=[{key:"init",value:function(){var t=this;if(this.$module&&this.$acceptButton&&this.$rejectButton&&this.$prompt&&this.$acceptedMessage&&this.$rejectedMessage&&this.$closeButtons){var i=this.$module.getAttribute("data-policies");i&&(this.cookies=new e.Z(i.split(",").map((function(e){return e.trim()}))),this.loadScriptsOnAccept=this.$module.getAttribute("data-acceptscripts"),this.cookiePreferencesSet=this.$module.getAttribute("data-preferenceskey")||"cookies_preferences_set",this.cookies.hasValue(this.cookiePreferencesSet,"true")||(this.$module.removeAttribute("hidden"),this.$acceptButton.addEventListener("click",(function(){return t.accept()})),this.$rejectButton.addEventListener("click",(function(){return t.reject()}))))}}},{key:"accept",value:function(){this.$prompt.setAttribute("hidden",!0),this.complete(),this.$acceptedMessage.removeAttribute("hidden"),this.$acceptedMessage.focus(),this.$acceptedMessage.setAttribute("tabindex","-1"),this.cookies.acceptAllPolicies(),this.loadScriptsOnAccept&&this.loadScriptsOnAccept.split(",").forEach((function(e){var t=document.createElement("script");t.src=e,document.head.appendChild(t)}))}},{key:"reject",value:function(){this.$prompt.setAttribute("hidden",!0),this.complete(),this.$rejectedMessage.removeAttribute("hidden"),this.$rejectedMessage.focus(),this.$rejectedMessage.setAttribute("tabindex","-1"),this.cookies.rejectAllPolicies()}},{key:"complete",value:function(){var e=this;this.cookies.set(this.cookiePreferencesSet,!0),this.$closeButtons.forEach((function(t){t.addEventListener("click",(function(){return e.close()}))}))}},{key:"close",value:function(){this.$module.setAttribute("hidden",!0)}}])&&n(i.prototype,o),Object.defineProperty(i,"prototype",{writable:!1}),t}()})(),o})()));
|
2
2
|
//# sourceMappingURL=cookie-banner.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"components/cookie-banner/cookie-banner.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","export default class Cookies {\n #policies = {};\n\n constructor(\n policies = [\"analytics\", \"settings\"],\n cookiesPolicyKey = \"cookies_policy\",\n crossDomain = false,\n ) {\n this.cookiesPolicyKey = cookiesPolicyKey;\n this.crossDomain = crossDomain;\n policies.forEach((policy) => {\n this.#policies[policy] = false;\n });\n this.#getPolicies();\n }\n\n #getPolicies() {\n if (this.exists(this.cookiesPolicyKey)) {\n this.#policies = {\n ...this.#policies,\n ...this.allPolicies,\n };\n }\n }\n\n get data() {\n return this.#deserialise(document.cookie);\n }\n\n #deserialise(cookieString) {\n const deserialised = {};\n cookieString.split(\";\").forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n deserialised[parts[0]] = parts[1];\n });\n return deserialised;\n }\n\n get all() {\n return this.data;\n }\n\n get allPolicies() {\n return JSON.parse(this.get(this.cookiesPolicyKey));\n }\n\n exists(key) {\n return Object.prototype.hasOwnProperty.call(this.data, key);\n }\n\n hasValue(key, value) {\n return this.get(key) === value;\n }\n\n get(key) {\n return decodeURIComponent(this.data[key]);\n }\n\n delete(key, path = \"/\") {\n this.set(key, \"\", 0, path);\n }\n\n acceptPolicy(policy) {\n this.setPolicy(policy, true);\n }\n\n rejectPolicy(policy) {\n this.setPolicy(policy, false);\n }\n\n setPolicy(policy, accepted) {\n this.#policies = {\n ...this.#policies,\n [policy]: accepted,\n };\n this.set(this.cookiesPolicyKey, JSON.stringify(this.#policies));\n }\n\n acceptAllPolicies() {\n Object.keys(this.#policies)\n .filter((policy) => this.#policies[policy] === false)\n .forEach((policy) => this.acceptPolicy(policy));\n }\n\n rejectAllPolicies() {\n Object.keys(this.#policies)\n .filter((policy) => this.#policies[policy] === true)\n .forEach((policy) => this.rejectPolicy(policy));\n }\n\n isPolicyAccepted(policy) {\n this.#getPolicies();\n return Object.prototype.hasOwnProperty.call(this.#policies, policy)\n ? this.#policies[policy] === true\n : null;\n }\n\n set(key, value, maxAge = 60 * 60 * 24 * 365, path = \"/\") {\n document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(\n value,\n )}; SameSite=${\n this.crossDomain ? \"None\" : \"Lax\"\n }; path=${path}; max-age=${maxAge}; Secure`;\n this.#getPolicies();\n }\n\n policy(policy) {\n return this.#policies[policy];\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class CookieBanner {\n constructor($module) {\n this.$module = $module;\n this.$acceptButton = $module && $module.querySelector('[value=\"accept\"]');\n this.$rejectButton = $module && $module.querySelector('[value=\"reject\"]');\n this.$prompt =\n $module && $module.querySelector(\".tna-cookie-banner__message--prompt\");\n this.$acceptedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--accepted\");\n this.$rejectedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--rejected\");\n this.$closeButtons = $module && $module.querySelectorAll('[value=\"close\"]');\n }\n\n init() {\n if (\n !this.$module ||\n !this.$acceptButton ||\n !this.$rejectButton ||\n !this.$prompt ||\n !this.$acceptedMessage ||\n !this.$rejectedMessage ||\n !this.$closeButtons\n ) {\n return;\n }\n\n const policies = this.$module.getAttribute(\"data-policies\");\n if (!policies) {\n return;\n }\n this.cookies = new Cookies(\n policies.split(\",\").map((policy) => policy.trim()),\n );\n\n this.loadScriptsOnAccept = this.$module.getAttribute(\"data-acceptscripts\");\n\n this.hideCookieBannerKey = this.$module.getAttribute(\"data-hidekey\");\n const cookiePreferencesSet = this.cookies.exists(this.hideCookieBannerKey);\n\n if (!cookiePreferencesSet) {\n this.$module.removeAttribute(\"hidden\");\n\n this.$acceptButton.addEventListener(\"click\", () => this.accept());\n this.$rejectButton.addEventListener(\"click\", () => this.reject());\n\n this.$closeButtons.forEach(($closeButton) => {\n $closeButton.addEventListener(\"click\", () => this.close());\n });\n }\n }\n\n accept() {\n this.$prompt.setAttribute(\"hidden\", true);\n this.complete();\n this.$acceptedMessage.removeAttribute(\"hidden\");\n this.cookies.acceptAllPolicies();\n if (this.loadScriptsOnAccept) {\n this.loadScriptsOnAccept.split(\",\").forEach((script) => {\n const $script = document.createElement(\"script\");\n $script.src = script;\n document.head.appendChild($script);\n });\n }\n }\n\n reject() {\n this.$prompt.setAttribute(\"hidden\", true);\n this.complete();\n this.$rejectedMessage.removeAttribute(\"hidden\");\n this.cookies.rejectAllPolicies();\n }\n\n complete() {\n this.cookies.set(this.hideCookieBannerKey, true);\n }\n\n close() {\n this.$module.setAttribute(\"hidden\", true);\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","Cookies","_this","policies","arguments","length","undefined","cookiesPolicyKey","crossDomain","_classCallCheck","_classPrivateMethodInitSpec","_deserialise","_getPolicies","writable","value","_policies","this","forEach","policy","_classPrivateFieldGet","_classPrivateMethodGet","_getPolicies2","call","key","get","_deserialise2","document","cookie","data","JSON","parse","Object","prototype","hasOwnProperty","decodeURIComponent","path","set","setPolicy","accepted","_classPrivateFieldSet","_objectSpread","_defineProperty","stringify","_this2","keys","filter","acceptPolicy","_this3","rejectPolicy","maxAge","concat","encodeURIComponent","exists","allPolicies","cookieString","deserialised","split","parts","trim","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag","CookieBanner","$module","$acceptButton","querySelector","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","querySelectorAll","getAttribute","cookies","map","loadScriptsOnAccept","hideCookieBannerKey","removeAttribute","addEventListener","accept","reject","$closeButton","close","setAttribute","complete","acceptAllPolicies","script","$script","createElement","src","head","appendChild","rejectAllPolicies"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"components/cookie-banner/cookie-banner.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n #policies = {};\n\n /**\n * Create a cookie handler.\n * @param {string[]} [policies=usage,settings] - The cookie policies to manage.\n * @param {string} [cookiesPolicyKey=cookies_policy] - The name of the cookie.\n */\n constructor(\n policies = [\"usage\", \"settings\"],\n cookiesPolicyKey = \"cookies_policy\",\n ) {\n this.cookiesPolicyKey = cookiesPolicyKey;\n policies.forEach((policy) => {\n this.#policies[policy.toLowerCase()] = false;\n });\n this.#policies.essential = true;\n }\n\n get policies() {\n return this.exists(this.cookiesPolicyKey)\n ? (this.#policies = {\n ...this.#policies,\n ...this.allPolicies,\n })\n : this.#policies;\n }\n\n set policies(newPolicyValues) {\n this.#policies = newPolicyValues;\n }\n\n /** @protected */\n #deserialise(cookieString) {\n const deserialised = {};\n cookieString.split(\";\").forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n deserialised[parts[0]] = parts[1];\n });\n return deserialised;\n }\n\n get all() {\n return this.#deserialise(document.cookie);\n }\n\n /**\n * Check to see whether a cookie exists or not.\n * @param {string} key - The cookie name.\n * @returns {boolean}\n */\n exists(key) {\n return Object.prototype.hasOwnProperty.call(this.all, key);\n }\n\n /**\n * Check to see whether a cookie has a particular value.\n * @param {string} key - The cookie name.\n * @param {string|number|boolean} value - The value to check against.\n * @returns\n */\n hasValue(key, value) {\n return this.get(key) == value;\n }\n\n /**\n * Get a cookie.\n * @param {string} key - The cookie name.\n * @returns {string|number|boolean}\n */\n get(key) {\n return this.exists(key) ? decodeURIComponent(this.all[key]) : null;\n }\n\n /**\n * Set a cookie.\n * @param {string} key - The cookie name.\n * @param {string|number|boolean} value - The cookie value.\n * @param {Object} options\n * @param {number} [options.maxAge=31536000] - The maximum age of the cookie in seconds.\n * @param {string} [options.path=/] - The path to register the cookie for.\n * @param {string} [options.sameSite=Lax] - The sameSite attribute.\n */\n set(key, value, options = {}) {\n const {\n maxAge = 60 * 60 * 24 * 365,\n path = \"/\",\n sameSite = \"Lax\",\n } = options;\n document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(\n value,\n )}; SameSite=${sameSite}; path=${path}; max-age=${maxAge}; Secure`;\n }\n\n /**\n * Delete a cookie.\n * @param {string} key - The cookie name.\n * @param {string} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\") {\n this.set(key, \"\", 0, path);\n }\n\n get allPolicies() {\n return JSON.parse(this.get(this.cookiesPolicyKey) || \"{}\");\n }\n\n /**\n * Accept a policy.\n * @param {string} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.#setPolicy(policy, true);\n this.savePolicies();\n }\n\n /**\n * Reject a policy.\n * @param {string} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n if (policy === \"essential\") {\n return;\n }\n this.#setPolicy(policy, false);\n this.savePolicies();\n }\n\n /** @protected */\n #setPolicy(policy, accepted) {\n this.policies = {\n ...this.policies,\n [policy]: accepted,\n essential: true,\n };\n }\n\n /**\n * Commit the policy preferences to the browser.\n */\n savePolicies() {\n this.set(this.cookiesPolicyKey, JSON.stringify(this.policies));\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n Object.keys(this.policies).forEach((policy) =>\n this.#setPolicy(policy, true),\n );\n this.savePolicies();\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n Object.keys(this.policies).forEach((policy) =>\n this.#setPolicy(policy, false),\n );\n this.savePolicies();\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {string} policy - The name of the policy.\n * @returns {boolean}\n */\n isPolicyAccepted(policy) {\n return Object.prototype.hasOwnProperty.call(this.policies, policy)\n ? this.policies[policy] === true\n : null;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class CookieBanner {\n constructor($module) {\n this.$module = $module;\n this.$acceptButton = $module && $module.querySelector('[value=\"accept\"]');\n this.$rejectButton = $module && $module.querySelector('[value=\"reject\"]');\n this.$prompt =\n $module && $module.querySelector(\".tna-cookie-banner__message--prompt\");\n this.$acceptedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--accepted\");\n this.$rejectedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--rejected\");\n this.$closeButtons = $module && $module.querySelectorAll('[value=\"close\"]');\n }\n\n init() {\n if (\n !this.$module ||\n !this.$acceptButton ||\n !this.$rejectButton ||\n !this.$prompt ||\n !this.$acceptedMessage ||\n !this.$rejectedMessage ||\n !this.$closeButtons\n ) {\n return;\n }\n\n const policies = this.$module.getAttribute(\"data-policies\");\n if (!policies) {\n return;\n }\n this.cookies = new Cookies(\n policies.split(\",\").map((policy) => policy.trim()),\n );\n\n this.loadScriptsOnAccept = this.$module.getAttribute(\"data-acceptscripts\");\n\n this.cookiePreferencesSet =\n this.$module.getAttribute(\"data-preferenceskey\") ||\n \"cookies_preferences_set\";\n const cookiePreferencesSet = this.cookies.hasValue(\n this.cookiePreferencesSet,\n \"true\",\n );\n\n if (!cookiePreferencesSet) {\n this.$module.removeAttribute(\"hidden\");\n\n this.$acceptButton.addEventListener(\"click\", () => this.accept());\n this.$rejectButton.addEventListener(\"click\", () => this.reject());\n }\n }\n\n accept() {\n this.$prompt.setAttribute(\"hidden\", true);\n this.complete();\n this.$acceptedMessage.removeAttribute(\"hidden\");\n this.$acceptedMessage.focus();\n this.$acceptedMessage.setAttribute(\"tabindex\", \"-1\");\n this.cookies.acceptAllPolicies();\n if (this.loadScriptsOnAccept) {\n this.loadScriptsOnAccept.split(\",\").forEach((script) => {\n const $script = document.createElement(\"script\");\n $script.src = script;\n document.head.appendChild($script);\n });\n }\n }\n\n reject() {\n this.$prompt.setAttribute(\"hidden\", true);\n this.complete();\n this.$rejectedMessage.removeAttribute(\"hidden\");\n this.$rejectedMessage.focus();\n this.$rejectedMessage.setAttribute(\"tabindex\", \"-1\");\n this.cookies.rejectAllPolicies();\n }\n\n complete() {\n this.cookies.set(this.cookiePreferencesSet, true);\n this.$closeButtons.forEach(($closeButton) => {\n $closeButton.addEventListener(\"click\", () => this.close());\n });\n }\n\n close() {\n this.$module.setAttribute(\"hidden\", true);\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","Cookies","_this","policies","arguments","length","undefined","cookiesPolicyKey","_classCallCheck","_classPrivateMethodInitSpec","_setPolicy","_deserialise","writable","value","_policies","this","forEach","policy","_classPrivateFieldGet","toLowerCase","essential","key","get","exists","_classPrivateFieldSet","_objectSpread","allPolicies","set","newPolicyValues","_classPrivateMethodGet","_deserialise2","call","document","cookie","Object","prototype","hasOwnProperty","all","decodeURIComponent","options","_options$maxAge","maxAge","_options$path","path","_options$sameSite","sameSite","concat","encodeURIComponent","JSON","parse","_setPolicy2","savePolicies","stringify","_this2","keys","_this3","cookieString","deserialised","split","parts","trim","accepted","_objectSpread2","_defineProperty","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag","CookieBanner","$module","$acceptButton","querySelector","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","querySelectorAll","getAttribute","cookies","map","loadScriptsOnAccept","cookiePreferencesSet","hasValue","removeAttribute","addEventListener","accept","reject","setAttribute","complete","focus","acceptAllPolicies","script","$script","createElement","src","head","appendChild","rejectAllPolicies","$closeButton","close"],"sourceRoot":""}
|
@@ -37,18 +37,19 @@ export class CookieBanner {
|
|
37
37
|
|
38
38
|
this.loadScriptsOnAccept = this.$module.getAttribute("data-acceptscripts");
|
39
39
|
|
40
|
-
this.
|
41
|
-
|
40
|
+
this.cookiePreferencesSet =
|
41
|
+
this.$module.getAttribute("data-preferenceskey") ||
|
42
|
+
"cookies_preferences_set";
|
43
|
+
const cookiePreferencesSet = this.cookies.hasValue(
|
44
|
+
this.cookiePreferencesSet,
|
45
|
+
"true",
|
46
|
+
);
|
42
47
|
|
43
48
|
if (!cookiePreferencesSet) {
|
44
49
|
this.$module.removeAttribute("hidden");
|
45
50
|
|
46
51
|
this.$acceptButton.addEventListener("click", () => this.accept());
|
47
52
|
this.$rejectButton.addEventListener("click", () => this.reject());
|
48
|
-
|
49
|
-
this.$closeButtons.forEach(($closeButton) => {
|
50
|
-
$closeButton.addEventListener("click", () => this.close());
|
51
|
-
});
|
52
53
|
}
|
53
54
|
}
|
54
55
|
|
@@ -56,6 +57,8 @@ export class CookieBanner {
|
|
56
57
|
this.$prompt.setAttribute("hidden", true);
|
57
58
|
this.complete();
|
58
59
|
this.$acceptedMessage.removeAttribute("hidden");
|
60
|
+
this.$acceptedMessage.focus();
|
61
|
+
this.$acceptedMessage.setAttribute("tabindex", "-1");
|
59
62
|
this.cookies.acceptAllPolicies();
|
60
63
|
if (this.loadScriptsOnAccept) {
|
61
64
|
this.loadScriptsOnAccept.split(",").forEach((script) => {
|
@@ -70,11 +73,16 @@ export class CookieBanner {
|
|
70
73
|
this.$prompt.setAttribute("hidden", true);
|
71
74
|
this.complete();
|
72
75
|
this.$rejectedMessage.removeAttribute("hidden");
|
76
|
+
this.$rejectedMessage.focus();
|
77
|
+
this.$rejectedMessage.setAttribute("tabindex", "-1");
|
73
78
|
this.cookies.rejectAllPolicies();
|
74
79
|
}
|
75
80
|
|
76
81
|
complete() {
|
77
|
-
this.cookies.set(this.
|
82
|
+
this.cookies.set(this.cookiePreferencesSet, true);
|
83
|
+
this.$closeButtons.forEach(($closeButton) => {
|
84
|
+
$closeButton.addEventListener("click", () => this.close());
|
85
|
+
});
|
78
86
|
}
|
79
87
|
|
80
88
|
close() {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
@use "../../tools/colour";
|
2
|
-
@use "../../tools/spacing";
|
3
2
|
@use "../../tools/media";
|
3
|
+
@use "../../tools/spacing";
|
4
4
|
@use "../../tools/typography";
|
5
5
|
@use "../../utilities";
|
6
6
|
@use "../button";
|
@@ -20,6 +20,10 @@
|
|
20
20
|
}
|
21
21
|
|
22
22
|
&__message {
|
23
|
+
&:focus {
|
24
|
+
outline: none !important;
|
25
|
+
}
|
26
|
+
|
23
27
|
&--prompt {
|
24
28
|
}
|
25
29
|
|
@@ -29,4 +33,8 @@
|
|
29
33
|
&--rejected {
|
30
34
|
}
|
31
35
|
}
|
36
|
+
|
37
|
+
@include media.on-print {
|
38
|
+
display: none;
|
39
|
+
}
|
32
40
|
}
|
@@ -7,7 +7,7 @@ import Cookies from "../../lib/cookies.mjs";
|
|
7
7
|
const argTypes = {
|
8
8
|
url: { control: "text" },
|
9
9
|
policies: { control: "text" },
|
10
|
-
|
10
|
+
cookiesPreferencesSetKey: { control: "text" },
|
11
11
|
loadScriptsOnAccept: { control: "text" },
|
12
12
|
classes: { control: "text" },
|
13
13
|
attributes: { control: "object" },
|
@@ -27,7 +27,7 @@ export default {
|
|
27
27
|
const Template = ({
|
28
28
|
url,
|
29
29
|
policies,
|
30
|
-
|
30
|
+
cookiesPreferencesSetKey,
|
31
31
|
loadScriptsOnAccept,
|
32
32
|
classes,
|
33
33
|
attributes,
|
@@ -36,7 +36,7 @@ const Template = ({
|
|
36
36
|
params: {
|
37
37
|
url,
|
38
38
|
policies,
|
39
|
-
|
39
|
+
cookiesPreferencesSetKey,
|
40
40
|
loadScriptsOnAccept,
|
41
41
|
classes,
|
42
42
|
attributes,
|
@@ -62,19 +62,24 @@ Accept.play = async ({ canvasElement }) => {
|
|
62
62
|
const cookies = new Cookies();
|
63
63
|
deleteAllCookies(cookies);
|
64
64
|
|
65
|
-
await expect(cookies.isPolicyAccepted("
|
65
|
+
await expect(cookies.isPolicyAccepted("essential")).toEqual(true);
|
66
|
+
await expect(cookies.isPolicyAccepted("usage")).toEqual(false);
|
66
67
|
await expect(cookies.isPolicyAccepted("settings")).toEqual(false);
|
67
68
|
await expect(cookies.isPolicyAccepted("unknown")).toEqual(null);
|
68
69
|
|
69
70
|
const canvas = within(canvasElement);
|
70
71
|
const acceptButton = canvas.getByText("Accept cookies");
|
72
|
+
const rejectButton = canvas.getByText("Reject cookies");
|
71
73
|
await expect(acceptButton).toBeVisible();
|
74
|
+
await expect(rejectButton).toBeVisible();
|
72
75
|
await userEvent.click(acceptButton);
|
73
76
|
|
74
|
-
await expect(cookies.isPolicyAccepted("
|
77
|
+
await expect(cookies.isPolicyAccepted("essential")).toEqual(true);
|
78
|
+
await expect(cookies.isPolicyAccepted("usage")).toEqual(true);
|
75
79
|
await expect(cookies.isPolicyAccepted("settings")).toEqual(true);
|
76
80
|
await expect(cookies.isPolicyAccepted("unknown")).toEqual(null);
|
77
81
|
await expect(acceptButton).not.toBeVisible();
|
82
|
+
await expect(rejectButton).not.toBeVisible();
|
78
83
|
|
79
84
|
// const closeButton = canvas.getByText("Close this message");
|
80
85
|
// await expect(closeButton).toBeVisible();
|
@@ -94,18 +99,24 @@ Reject.play = async ({ canvasElement }) => {
|
|
94
99
|
const cookies = new Cookies();
|
95
100
|
deleteAllCookies(cookies);
|
96
101
|
|
97
|
-
await expect(cookies.isPolicyAccepted("
|
102
|
+
await expect(cookies.isPolicyAccepted("essential")).toEqual(true);
|
103
|
+
await expect(cookies.isPolicyAccepted("usage")).toEqual(false);
|
98
104
|
await expect(cookies.isPolicyAccepted("settings")).toEqual(false);
|
99
105
|
await expect(cookies.isPolicyAccepted("unknown")).toEqual(null);
|
100
106
|
|
101
107
|
const canvas = within(canvasElement);
|
108
|
+
const acceptButton = canvas.getByText("Accept cookies");
|
102
109
|
const rejectButton = canvas.getByText("Reject cookies");
|
110
|
+
await expect(acceptButton).toBeVisible();
|
103
111
|
await expect(rejectButton).toBeVisible();
|
104
112
|
await userEvent.click(rejectButton);
|
105
113
|
|
106
|
-
await expect(cookies.isPolicyAccepted("
|
114
|
+
await expect(cookies.isPolicyAccepted("essential")).toEqual(true);
|
115
|
+
await expect(cookies.isPolicyAccepted("usage")).toEqual(false);
|
107
116
|
await expect(cookies.isPolicyAccepted("settings")).toEqual(false);
|
108
117
|
await expect(cookies.isPolicyAccepted("unknown")).toEqual(null);
|
118
|
+
await expect(acceptButton).not.toBeVisible();
|
119
|
+
await expect(rejectButton).not.toBeVisible();
|
109
120
|
|
110
121
|
deleteAllCookies(cookies);
|
111
122
|
};
|
@@ -120,7 +131,8 @@ CustomPolicies.play = async ({ args, canvasElement }) => {
|
|
120
131
|
const cookies = new Cookies(args.policies.split(","));
|
121
132
|
deleteAllCookies(cookies);
|
122
133
|
|
123
|
-
await expect(cookies.isPolicyAccepted("
|
134
|
+
await expect(cookies.isPolicyAccepted("essential")).toEqual(true);
|
135
|
+
await expect(cookies.isPolicyAccepted("usage")).toEqual(null);
|
124
136
|
await expect(cookies.isPolicyAccepted("settings")).toEqual(null);
|
125
137
|
await expect(cookies.isPolicyAccepted("custom")).toEqual(false);
|
126
138
|
|
@@ -128,7 +140,8 @@ CustomPolicies.play = async ({ args, canvasElement }) => {
|
|
128
140
|
const acceptButton = canvas.getByText("Accept cookies");
|
129
141
|
await userEvent.click(acceptButton);
|
130
142
|
|
131
|
-
await expect(cookies.isPolicyAccepted("
|
143
|
+
await expect(cookies.isPolicyAccepted("essential")).toEqual(true);
|
144
|
+
await expect(cookies.isPolicyAccepted("usage")).toEqual(null);
|
132
145
|
await expect(cookies.isPolicyAccepted("settings")).toEqual(null);
|
133
146
|
await expect(cookies.isPolicyAccepted("custom")).toEqual(true);
|
134
147
|
|
@@ -138,7 +151,7 @@ CustomPolicies.play = async ({ args, canvasElement }) => {
|
|
138
151
|
export const AddScriptsOnAccept = Template.bind({});
|
139
152
|
AddScriptsOnAccept.args = {
|
140
153
|
cookiesUrl: "#",
|
141
|
-
loadScriptsOnAccept: "my-
|
154
|
+
loadScriptsOnAccept: "my-usage-script.js",
|
142
155
|
classes: "tna-cookie-banner--demo",
|
143
156
|
};
|
144
157
|
AddScriptsOnAccept.play = async ({ args, canvasElement }) => {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
{% from "nationalarchives/components/button/macro.njk" import tnaButton %}
|
2
2
|
|
3
3
|
{%- set containerClasses = [params.classes] if params.classes else [] -%}
|
4
|
-
<div class="tna-cookie-banner {{ containerClasses | join(' ') }}" role="region" aria-label="Cookie usage" data-module="tna-cookie-banner" data-policies="{{ params.policies if params.policies else '
|
4
|
+
<div class="tna-cookie-banner {{ containerClasses | join(' ') }}" role="region" aria-label="Cookie usage" data-module="tna-cookie-banner" data-policies="{{ params.policies if params.policies else 'usage,settings' }}" data-preferenceskey="{{ params.cookiesPreferencesSetKey if params.cookiesPreferencesSetKey else 'cookies_preferences_set' }}"{% if params.loadScriptsOnAccept %} data-acceptscripts="{{ params.loadScriptsOnAccept }}"{% endif %}{%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %} hidden>
|
5
5
|
<div class="tna-container">
|
6
6
|
<div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--prompt">
|
7
|
-
<h2>This website uses cookies</h2>
|
7
|
+
<h2 class="tna-heading-m">This website uses cookies</h2>
|
8
8
|
<p>We use some essential cookies to make this service work.</p>
|
9
9
|
<p>We'd also like to use analytics cookies so we can understand how you use the service and make improvements.</p>
|
10
10
|
<div class="tna-button-group">
|
@@ -29,7 +29,7 @@
|
|
29
29
|
}) }}
|
30
30
|
</div>
|
31
31
|
</div>
|
32
|
-
<div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--accepted" hidden>
|
32
|
+
<div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--accepted" tabindex="0" hidden>
|
33
33
|
<p>
|
34
34
|
You have accepted optional cookies. You can change your cookie settings on the <a href="#">Cookies page</a>.
|
35
35
|
</p>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
}) }}
|
44
44
|
</div>
|
45
45
|
</div>
|
46
|
-
<div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--rejected" hidden>
|
46
|
+
<div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--rejected" tabindex="0" hidden>
|
47
47
|
<p>
|
48
48
|
You have rejected optional cookies. You can change your cookie settings on the <a href="#">Cookies page</a>.
|
49
49
|
</p>
|
@@ -1 +1 @@
|
|
1
|
-
@import"https://use.typekit.net/hkj3kuz.css";.tna-filters,.tna-ul,.tna-ol,.tna-chip-list,.tna-blockquote,.tna-scene-setter,.tna-aside{margin-bottom:2rem}.tna-filters:last-child,.tna-ul:last-child,.tna-ol:last-child,.tna-chip-list:last-child,.tna-blockquote:last-child,.tna-scene-setter:last-child,.tna-aside:last-child{margin-bottom:0}.tna-visually-hidden{width:1px !important;height:1px !important;margin:0 !important;padding:0 !important;position:absolute !important;top:-9999px !important;left:-9999px !important;z-index:-1 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;border:0 !important;background-color:rgba(0,0,0,0) !important}.tna-visually-hidden::before,.tna-visually-hidden::after{content:" "}.tna-background--contrast{--font-base: var(--contrast-font-base);--font-dark: var(--contrast-font-dark);--font-light: var(--contrast-font-light);--link: var(--contrast-link);--link-visited: var(--contrast-link-visited);--keyline: var(--contrast-keyline);--keyline-dark: var(--contrast-keyline-dark);--button-text: var(--contrast-button-text);--button-background: var(--contrast-button-background);--button-hover-text: var(--contrast-button-hover-text);--button-hover-background: var(--contrast-button-hover-background);background-color:#1e1e1e;background-color:var(--contrast-background);color:rgba(255,255,255,.95);color:var(--font-base)}.tna-chip,.tna-hgroup__supertitle,.tna-background--accent{--font-base: var(--accent-font-base);--font-dark: var(--accent-font-dark);--font-light: var(--accent-font-light);--link: var(--accent-link);--link-visited: var(--accent-link-visited);--keyline: var(--accent-keyline);--keyline-dark: var(--accent-keyline-dark);background-color:#111;background-color:var(--accent-background);color:rgba(255,255,255,.95);color:var(--font-base)}.tna-background--accent-light{background-color:#d9d9d6;background-color:var(--accent-background-light);--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #000;--link-visited: #4c2c92;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff}:root{--page-background: #f4f4f4;--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: #00b0ff;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template{min-width:320px;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;font-size:16px;background-color:#f4f4f4;background-color:var(--page-background);accent-color:var(--accent);--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important}.tna-template--system-theme{--page-background: #f4f4f4;--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: #00b0ff;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}@media(prefers-color-scheme: dark){.tna-template--system-theme{--page-background: #111;--font-base: rgba(255, 255, 255, 0.95);--font-dark: #fff;--font-light: rgba(255, 255, 255, 0.5);--link: #00b0ff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: rgba(255, 255, 255, 0.25);--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}}@media(prefers-contrast: more){.tna-template--system-theme{--page-background: #fff;--font-base: #000;--font-dark: #000;--font-light: #000;--link: #004c7e;--link-visited: #000;--focus-outline: #fd3f03;--keyline: #000;--keyline-dark: #000;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #f4f4f4;--contrast-font-base: #000;--contrast-font-dark: #000;--contrast-font-light: #000;--contrast-link: #004c7e;--contrast-link-visited: #000;--contrast-keyline: #000;--contrast-keyline-dark: #000;--contrast-button-text: #fff;--contrast-button-background: #000;--contrast-button-hover-text: #000;--contrast-button-hover-background: #fff;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--system-theme *{background-image:none !important}}@media(prefers-contrast: more)and (prefers-color-scheme: dark){.tna-template--system-theme{--page-background: #000;--font-base: #fff;--font-dark: #fff;--font-light: #fff;--link: #fff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: #fff;--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #111;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}}.tna-template--light-theme{--page-background: #f4f4f4;--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: #00b0ff;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--dark-theme{--page-background: #111;--font-base: rgba(255, 255, 255, 0.95);--font-dark: #fff;--font-light: rgba(255, 255, 255, 0.5);--link: #00b0ff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: rgba(255, 255, 255, 0.25);--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--high-contrast-theme{--page-background: #fff;--font-base: #000;--font-dark: #000;--font-light: #000;--link: #004c7e;--link-visited: #000;--focus-outline: #fd3f03;--keyline: #000;--keyline-dark: #000;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #f4f4f4;--contrast-font-base: #000;--contrast-font-dark: #000;--contrast-font-light: #000;--contrast-link: #004c7e;--contrast-link-visited: #000;--contrast-keyline: #000;--contrast-keyline-dark: #000;--contrast-button-text: #fff;--contrast-button-background: #000;--contrast-button-hover-text: #000;--contrast-button-hover-background: #fff;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--high-contrast-theme *{background-image:none !important}.tna-template--high-contrast-theme.tna-template--dark-theme{--page-background: #000;--font-base: #fff;--font-dark: #fff;--font-light: #fff;--link: #fff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: #fff;--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #111;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--yellow-accent{--accent: #fc0 !important;--accent-background: #fc0 !important;--accent-background-light: #f9f7e2 !important;--accent-font-base: #000 !important;--accent-font-dark: #000 !important;--accent-font-light: rgba(0, 0, 0, 0.7) !important;--accent-link: #000 !important;--accent-link-visited: #000 !important;--accent-keyline: rgba(0, 0, 0, 0.5) !important;--accent-keyline-dark: rgba(0, 0, 0, 0.8) !important;--button-accent-background: #fc0 !important}.tna-template--pink-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #fe1d57 !important;--accent-background: #9c193a !important;--accent-background-light: #fad3d4 !important;--button-accent-background: #9c193a !important}.tna-template--orange-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #fd3f03 !important;--accent-background: #8f3415 !important;--accent-background-light: #f9e1bc !important;--button-accent-background: #8f3415 !important}.tna-template--green-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #86bc25 !important;--accent-background: #00623b !important;--accent-background-light: #dde5d5 !important;--button-accent-background: #00623b !important}.tna-template--blue-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #00b0ff !important;--accent-background: #004c7e !important;--accent-background-light: #d4e5ef !important;--button-accent-background: #004c7e !important}@media(prefers-reduced-motion){.tna-template *{animation:none !important;transition:none !important}}.tna-template__body{min-height:100%;margin:0;padding:0;overflow:auto}.tna-template__body:has(.tna-header):has(#main-content[role=main]):has(.tna-footer){display:flex;flex-direction:column}.tna-template__body:has(.tna-header):has(#main-content[role=main]):has(.tna-footer) #main-content[role=main]{flex:1}img,svg,picture,video,canvas{max-width:100%;display:block}video,canvas{width:100%}[hidden]{display:none}*:focus{outline:.3125rem solid;outline-color:#00b0ff;outline-color:var(--focus-outline);outline-offset:.125rem}hr{margin:2rem 0;border-width:1px 0 0;border-color:#ccc;border-color:var(--keyline);border-style:solid}.tna-section{padding-top:3rem;padding-bottom:3rem}@media(max-width: 48em){.tna-section{padding-top:2rem;padding-bottom:2rem}}.tna-aside{padding:2rem}@media(max-width: 48em){.tna-aside{padding:1rem}}.tna-template--high-contrast-theme .tna-aside{border:1px #26262a solid;border:1px var(--keyline-dark) solid}@media(prefers-contrast: more){.tna-template--system-theme .tna-aside{border:1px #26262a solid;border:1px var(--keyline-dark) solid}}.tna-\!--no-margin-top,.tna-\!--no-margin-vertical{margin-top:0 !important}.tna-\!--no-margin-bottom,.tna-\!--no-margin-vertical{margin-bottom:0 !important}.tna-\!--no-padding-top,.tna-\!--no-padding-vertical{padding-top:0 !important}.tna-\!--no-padding-bottom,.tna-\!--no-padding-vertical{padding-bottom:0 !important}.tna-\!--margin-top-xs,.tna-\!--margin-vertical-xs{margin-top:0.5rem !important}.tna-\!--margin-top-s,.tna-\!--margin-vertical-s{margin-top:1rem !important}.tna-\!--margin-top-m,.tna-\!--margin-vertical-m{margin-top:2rem !important}.tna-\!--margin-top-l,.tna-\!--margin-vertical-l{margin-top:3rem !important}.tna-\!--margin-top-xl,.tna-\!--margin-vertical-xl{margin-top:5rem !important}.tna-\!--margin-top-xxl,.tna-\!--margin-vertical-xxl{margin-top:8rem !important}.tna-\!--margin-bottom-xs,.tna-\!--margin-vertical-xs{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s,.tna-\!--margin-vertical-s{margin-bottom:1rem !important}.tna-\!--margin-bottom-m,.tna-\!--margin-vertical-m{margin-bottom:2rem !important}.tna-\!--margin-bottom-l,.tna-\!--margin-vertical-l{margin-bottom:3rem !important}.tna-\!--margin-bottom-xl,.tna-\!--margin-vertical-xl{margin-bottom:5rem !important}.tna-\!--margin-bottom-xxl,.tna-\!--margin-vertical-xxl{margin-bottom:8rem !important}.tna-\!--padding-top-xs,.tna-\!--padding-vertical-xs{padding-top:0.5rem !important}.tna-\!--padding-top-s,.tna-\!--padding-vertical-s{padding-top:1rem !important}.tna-\!--padding-top-m,.tna-\!--padding-vertical-m{padding-top:2rem !important}.tna-\!--padding-top-l,.tna-\!--padding-vertical-l{padding-top:3rem !important}.tna-\!--padding-top-xl,.tna-\!--padding-vertical-xl{padding-top:5rem !important}.tna-\!--padding-top-xxl,.tna-\!--padding-vertical-xxl{padding-top:8rem !important}.tna-\!--padding-bottom-xs,.tna-\!--padding-vertical-xs{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s,.tna-\!--padding-vertical-s{padding-bottom:1rem !important}.tna-\!--padding-bottom-m,.tna-\!--padding-vertical-m{padding-bottom:2rem !important}.tna-\!--padding-bottom-l,.tna-\!--padding-vertical-l{padding-bottom:3rem !important}.tna-\!--padding-bottom-xl,.tna-\!--padding-vertical-xl{padding-bottom:5rem !important}.tna-\!--padding-bottom-xxl,.tna-\!--padding-vertical-xxl{padding-bottom:8rem !important}@media(min-width: 48.0625em)and (max-width: 64em){.tna-\!--no-margin-top-medium,.tna-\!--no-margin-vertical-medium{margin-top:0 !important}.tna-\!--no-margin-bottom-medium,.tna-\!--no-margin-vertical-medium{margin-bottom:0 !important}.tna-\!--no-padding-top-medium,.tna-\!--no-padding-vertical-medium{padding-top:0 !important}.tna-\!--no-padding-bottom-medium,.tna-\!--no-padding-vertical-medium{padding-bottom:0 !important}.tna-\!--margin-top-xs-medium,.tna-\!--margin-vertical-xs-medium{margin-top:0.5rem !important}.tna-\!--margin-top-s-medium,.tna-\!--margin-vertical-s-medium{margin-top:1rem !important}.tna-\!--margin-top-m-medium,.tna-\!--margin-vertical-m-medium{margin-top:2rem !important}.tna-\!--margin-top-l-medium,.tna-\!--margin-vertical-l-medium{margin-top:3rem !important}.tna-\!--margin-top-xl-medium,.tna-\!--margin-vertical-xl-medium{margin-top:5rem !important}.tna-\!--margin-top-xxl-medium,.tna-\!--margin-vertical-xxl-medium{margin-top:8rem !important}.tna-\!--margin-bottom-xs-medium,.tna-\!--margin-vertical-xs-medium{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-medium,.tna-\!--margin-vertical-s-medium{margin-bottom:1rem !important}.tna-\!--margin-bottom-m-medium,.tna-\!--margin-vertical-m-medium{margin-bottom:2rem !important}.tna-\!--margin-bottom-l-medium,.tna-\!--margin-vertical-l-medium{margin-bottom:3rem !important}.tna-\!--margin-bottom-xl-medium,.tna-\!--margin-vertical-xl-medium{margin-bottom:5rem !important}.tna-\!--margin-bottom-xxl-medium,.tna-\!--margin-vertical-xxl-medium{margin-bottom:8rem !important}.tna-\!--padding-top-xs-medium,.tna-\!--padding-vertical-xs-medium{padding-top:0.5rem !important}.tna-\!--padding-top-s-medium,.tna-\!--padding-vertical-s-medium{padding-top:1rem !important}.tna-\!--padding-top-m-medium,.tna-\!--padding-vertical-m-medium{padding-top:2rem !important}.tna-\!--padding-top-l-medium,.tna-\!--padding-vertical-l-medium{padding-top:3rem !important}.tna-\!--padding-top-xl-medium,.tna-\!--padding-vertical-xl-medium{padding-top:5rem !important}.tna-\!--padding-top-xxl-medium,.tna-\!--padding-vertical-xxl-medium{padding-top:8rem !important}.tna-\!--padding-bottom-xs-medium,.tna-\!--padding-vertical-xs-medium{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-medium,.tna-\!--padding-vertical-s-medium{padding-bottom:1rem !important}.tna-\!--padding-bottom-m-medium,.tna-\!--padding-vertical-m-medium{padding-bottom:2rem !important}.tna-\!--padding-bottom-l-medium,.tna-\!--padding-vertical-l-medium{padding-bottom:3rem !important}.tna-\!--padding-bottom-xl-medium,.tna-\!--padding-vertical-xl-medium{padding-bottom:5rem !important}.tna-\!--padding-bottom-xxl-medium,.tna-\!--padding-vertical-xxl-medium{padding-bottom:8rem !important}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-\!--no-margin-top-small,.tna-\!--no-margin-vertical-small{margin-top:0 !important}.tna-\!--no-margin-bottom-small,.tna-\!--no-margin-vertical-small{margin-bottom:0 !important}.tna-\!--no-padding-top-small,.tna-\!--no-padding-vertical-small{padding-top:0 !important}.tna-\!--no-padding-bottom-small,.tna-\!--no-padding-vertical-small{padding-bottom:0 !important}.tna-\!--margin-top-xs-small,.tna-\!--margin-vertical-xs-small{margin-top:0.5rem !important}.tna-\!--margin-top-s-small,.tna-\!--margin-vertical-s-small{margin-top:0.75rem !important}.tna-\!--margin-top-m-small,.tna-\!--margin-vertical-m-small{margin-top:1.5rem !important}.tna-\!--margin-top-l-small,.tna-\!--margin-vertical-l-small{margin-top:2rem !important}.tna-\!--margin-top-xl-small,.tna-\!--margin-vertical-xl-small{margin-top:3rem !important}.tna-\!--margin-top-xxl-small,.tna-\!--margin-vertical-xxl-small{margin-top:5rem !important}.tna-\!--margin-bottom-xs-small,.tna-\!--margin-vertical-xs-small{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-small,.tna-\!--margin-vertical-s-small{margin-bottom:0.75rem !important}.tna-\!--margin-bottom-m-small,.tna-\!--margin-vertical-m-small{margin-bottom:1.5rem !important}.tna-\!--margin-bottom-l-small,.tna-\!--margin-vertical-l-small{margin-bottom:2rem !important}.tna-\!--margin-bottom-xl-small,.tna-\!--margin-vertical-xl-small{margin-bottom:3rem !important}.tna-\!--margin-bottom-xxl-small,.tna-\!--margin-vertical-xxl-small{margin-bottom:5rem !important}.tna-\!--padding-top-xs-small,.tna-\!--padding-vertical-xs-small{padding-top:0.5rem !important}.tna-\!--padding-top-s-small,.tna-\!--padding-vertical-s-small{padding-top:0.75rem !important}.tna-\!--padding-top-m-small,.tna-\!--padding-vertical-m-small{padding-top:1.5rem !important}.tna-\!--padding-top-l-small,.tna-\!--padding-vertical-l-small{padding-top:2rem !important}.tna-\!--padding-top-xl-small,.tna-\!--padding-vertical-xl-small{padding-top:3rem !important}.tna-\!--padding-top-xxl-small,.tna-\!--padding-vertical-xxl-small{padding-top:5rem !important}.tna-\!--padding-bottom-xs-small,.tna-\!--padding-vertical-xs-small{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-small,.tna-\!--padding-vertical-s-small{padding-bottom:0.75rem !important}.tna-\!--padding-bottom-m-small,.tna-\!--padding-vertical-m-small{padding-bottom:1.5rem !important}.tna-\!--padding-bottom-l-small,.tna-\!--padding-vertical-l-small{padding-bottom:2rem !important}.tna-\!--padding-bottom-xl-small,.tna-\!--padding-vertical-xl-small{padding-bottom:3rem !important}.tna-\!--padding-bottom-xxl-small,.tna-\!--padding-vertical-xxl-small{padding-bottom:5rem !important}}@media(max-width: 30em){.tna-\!--no-margin-top-tiny,.tna-\!--no-margin-vertical-tiny{margin-top:0 !important}.tna-\!--no-margin-bottom-tiny,.tna-\!--no-margin-vertical-tiny{margin-bottom:0 !important}.tna-\!--no-padding-top-tiny,.tna-\!--no-padding-vertical-tiny{padding-top:0 !important}.tna-\!--no-padding-bottom-tiny,.tna-\!--no-padding-vertical-tiny{padding-bottom:0 !important}.tna-\!--margin-top-xs-tiny,.tna-\!--margin-vertical-xs-tiny{margin-top:0.5rem !important}.tna-\!--margin-top-s-tiny,.tna-\!--margin-vertical-s-tiny{margin-top:0.75rem !important}.tna-\!--margin-top-m-tiny,.tna-\!--margin-vertical-m-tiny{margin-top:1.5rem !important}.tna-\!--margin-top-l-tiny,.tna-\!--margin-vertical-l-tiny{margin-top:2rem !important}.tna-\!--margin-top-xl-tiny,.tna-\!--margin-vertical-xl-tiny{margin-top:3rem !important}.tna-\!--margin-top-xxl-tiny,.tna-\!--margin-vertical-xxl-tiny{margin-top:5rem !important}.tna-\!--margin-bottom-xs-tiny,.tna-\!--margin-vertical-xs-tiny{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-tiny,.tna-\!--margin-vertical-s-tiny{margin-bottom:0.75rem !important}.tna-\!--margin-bottom-m-tiny,.tna-\!--margin-vertical-m-tiny{margin-bottom:1.5rem !important}.tna-\!--margin-bottom-l-tiny,.tna-\!--margin-vertical-l-tiny{margin-bottom:2rem !important}.tna-\!--margin-bottom-xl-tiny,.tna-\!--margin-vertical-xl-tiny{margin-bottom:3rem !important}.tna-\!--margin-bottom-xxl-tiny,.tna-\!--margin-vertical-xxl-tiny{margin-bottom:5rem !important}.tna-\!--padding-top-xs-tiny,.tna-\!--padding-vertical-xs-tiny{padding-top:0.5rem !important}.tna-\!--padding-top-s-tiny,.tna-\!--padding-vertical-s-tiny{padding-top:0.75rem !important}.tna-\!--padding-top-m-tiny,.tna-\!--padding-vertical-m-tiny{padding-top:1.5rem !important}.tna-\!--padding-top-l-tiny,.tna-\!--padding-vertical-l-tiny{padding-top:2rem !important}.tna-\!--padding-top-xl-tiny,.tna-\!--padding-vertical-xl-tiny{padding-top:3rem !important}.tna-\!--padding-top-xxl-tiny,.tna-\!--padding-vertical-xxl-tiny{padding-top:5rem !important}.tna-\!--padding-bottom-xs-tiny,.tna-\!--padding-vertical-xs-tiny{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-tiny,.tna-\!--padding-vertical-s-tiny{padding-bottom:0.75rem !important}.tna-\!--padding-bottom-m-tiny,.tna-\!--padding-vertical-m-tiny{padding-bottom:1.5rem !important}.tna-\!--padding-bottom-l-tiny,.tna-\!--padding-vertical-l-tiny{padding-bottom:2rem !important}.tna-\!--padding-bottom-xl-tiny,.tna-\!--padding-vertical-xl-tiny{padding-bottom:3rem !important}.tna-\!--padding-bottom-xxl-tiny,.tna-\!--padding-vertical-xxl-tiny{padding-bottom:5rem !important}}@font-face{font-family:"Open Sans";src:url("assets/fonts/OpenSans-Medium.ttf");font-weight:normal;font-style:normal}@font-face{font-family:"Open Sans";src:url("assets/fonts/OpenSans-Bold.ttf");font-weight:bold;font-style:normal}@font-face{font-family:"Roboto Mono";src:url("assets/fonts/RobotoMono-Regular.ttf");font-weight:normal;font-style:normal}.tna-template{color:#343338;color:var(--font-base);font-family:"Open Sans",serif;font-weight:normal;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:none;direction:ltr}.tna-template__body{color:inherit;font-size:1.125rem;line-height:1.7777777778}h1,h2,h3,h4,h5,h6,ul,ol{margin-top:0}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}p{margin:0 0 1.5rem}@media(max-width: 30em){p{margin-bottom:1rem}}p:last-child{margin-bottom:0}a{color:#1d70ab;color:var(--link);text-decoration-thickness:1.5px}a:visited{color:#4c2c92;color:var(--link-visited)}a:hover,a:active{text-decoration:underline;text-decoration-thickness:3.5px}a.tna-chip{text-decoration:none}a.tna-chip,a.tna-chip:link,a.tna-chip:visited{color:#000;color:var(--font-dark)}a.tna-chip:hover{text-decoration:underline;text-decoration-thickness:3.5px}.tna-ul,.tna-ol{margin-top:0;margin-right:0;margin-left:0;padding:0 0 0 2rem}.tna-ul li::marker,.tna-ol li::marker{color:#111;color:var(--accent-background);font-weight:700}.tna-ul--plain,.tna-ol--plain{padding-left:0;list-style:none}.tna-hgroup__supertitle,.tna-chip{max-width:max-content;padding:.375em .5rem;display:block;color:#000;color:var(--font-dark);font-family:"Roboto Mono",monospace;font-weight:normal;font-size:0.875rem;text-transform:uppercase;line-height:1.1428571429;line-height:1}.tna-chip-list{padding-left:0;display:flex;flex-wrap:wrap;gap:1rem;list-style:none}.tna-hgroup__title,.tna-heading{color:#000;color:var(--font-dark);font-family:supria-sans-condensed,"Arial Narrow",sans-serif;font-weight:400}.tna-hgroup__title a,.tna-heading a{display:inline-block}.tna-hgroup__title a::after,.tna-heading a::after{padding-left:.25rem;display:inline-block;font-weight:700;content:"›"}.tna-hgroup__title a:hover::after,.tna-heading a:hover::after{padding-left:.5rem}.tna-hgroup--xl .tna-hgroup__title,.tna-heading--xl{font-size:4rem;line-height:1.2}@media(min-width: 48.0625em)and (max-width: 64em){.tna-hgroup--xl .tna-hgroup__title,.tna-heading--xl{font-size:3.125rem}}@media(max-width: 48em){.tna-hgroup--xl .tna-hgroup__title,.tna-heading--xl{font-size:2.25rem}}.tna-hgroup--l .tna-hgroup__title,.tna-heading--l{font-size:2rem;line-height:1.4}@media(min-width: 48.0625em)and (max-width: 64em){.tna-hgroup--l .tna-hgroup__title,.tna-heading--l{font-size:1.75rem}}@media(max-width: 48em){.tna-hgroup--l .tna-hgroup__title,.tna-heading--l{font-size:1.5rem}}.tna-hgroup--m .tna-hgroup__title,.tna-heading--m{font-size:1.25rem;line-height:1.6}.tna-hgroup--s .tna-hgroup__title,.tna-heading--s{font-size:1.125rem;line-height:1.6}.tna-hgroup__supertitle{margin:0 0 .5rem}.tna-hgroup__title{margin:0;display:block}.tna-heading,.tna-hgroup{margin-top:3rem;margin-bottom:1rem}.tna-heading:first-child,.tna-hgroup:first-child{margin-top:0}.tna-heading:last-child,.tna-hgroup:last-child{margin-bottom:0}.tna-blockquote{margin-top:0;margin-right:0;margin-left:0;padding:1rem 1rem 1rem 2rem;border-left:.35rem #111 solid;border-left:.35rem var(--accent-background) solid}.tna-blockquote__quote{font-weight:700}.tna-blockquote__author{font-style:italic}.tna-blockquote .tna-blockquote__author{margin:1rem 0 0}.tna-blockquote__author::before{content:"—" " "}.tna-scene-setter{font-family:"Roboto Mono",monospace;font-weight:normal;color:#000;color:var(--font-dark);font-size:1.875rem;line-height:1.6666666667}@media(max-width: 48em){.tna-scene-setter{font-size:1.5rem;line-height:2}}.tna-scene-setter a{color:inherit;text-decoration-thickness:2px}.tna-scene-setter a:hover{text-decoration-thickness:4.5px}.tna-columns{column-gap:2rem}.tna-columns--2{column-count:2}.tna-columns--3{column-count:3}@media(max-width: 48em){.tna-columns{column-gap:1.5rem}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-columns--1-small{column-count:1}.tna-columns--2-small{column-count:2}.tna-columns--3-small{column-count:3}.tna-columns--4-small{column-count:4}}@media(max-width: 30em){.tna-columns--1-tiny{column-count:1}.tna-columns--2-tiny{column-count:2}.tna-columns--3-tiny{column-count:3}.tna-columns--4-tiny{column-count:4}}.tna-columns__block{break-inside:avoid}.tna-columns:has(.tna-columns__block:only-of-type){column-count:1}.tna-filters{display:flex;flex-wrap:wrap;gap:1rem}.tna-filters__item--selected .tna-filters__link{background-color:#004c7e}.tna-filters__item--selected .tna-filters__link,.tna-filters__item--selected .tna-filters__link:link,.tna-filters__item--selected .tna-filters__link:visited{color:#fff}.tna-filters__link{padding:.125rem .75rem;text-decoration:none;background-color:#d4e5ef;border-radius:99rem;transition:color 200ms,background-color 200ms}.tna-filters__link,.tna-filters__link:link,.tna-filters__link:visited{color:#000}.tna-filters__link:hover{color:#fff;background-color:#004c7e;transition:color 50ms,background-color 50ms}/*# sourceMappingURL=filters.css.map */
|
1
|
+
@import"https://use.typekit.net/hkj3kuz.css";.tna-filters,.tna-chip-list,.tna-heading-xl,.tna-heading-l,.tna-heading-m,.tna-heading-s,.tna-hgroup-xl,.tna-hgroup-l,.tna-hgroup-m,.tna-hgroup-s,.tna-blockquote,.tna-scene-setter,.tna-aside{margin-top:2rem}.tna-filters:first-child,.tna-chip-list:first-child,.tna-heading-xl:first-child,.tna-heading-l:first-child,.tna-heading-m:first-child,.tna-heading-s:first-child,.tna-hgroup-xl:first-child,.tna-hgroup-l:first-child,.tna-hgroup-m:first-child,.tna-hgroup-s:first-child,.tna-blockquote:first-child,.tna-scene-setter:first-child,.tna-aside:first-child{margin-top:0}.tna-background--contrast{--background: var(--contrast-background);--font-base: var(--contrast-font-base);--font-dark: var(--contrast-font-dark);--font-light: var(--contrast-font-light);--icon-light: var(--contrast-icon-light);--link: var(--contrast-link);--link-visited: var(--contrast-link-visited);--keyline: var(--contrast-keyline);--keyline-dark: var(--contrast-keyline-dark);--button-text: var(--contrast-button-text);--button-background: var(--contrast-button-background);--button-hover-text: var(--contrast-button-hover-text);--button-hover-background: var(--contrast-button-hover-background);background-color:var(--background);color:rgb(255 255 255/0.95);color:var(--font-base)}.tna-chip,.tna-hgroup__supertitle,.tna-background--accent{--background: var(--accent-background);--font-base: var(--accent-font-base);--font-dark: var(--accent-font-dark);--font-light: var(--accent-font-light);--icon-light: var(--accent-icon-light);--link: var(--accent-link);--link-visited: var(--accent-link-visited);--keyline: var(--accent-keyline);--keyline-dark: var(--accent-keyline-dark);background-color:var(--background);color:rgb(255 255 255/0.95);color:var(--font-base)}.tna-background--tint{background-color:#d8d8d8;background-color:var(--background-tint)}.tna-background--accent-light{--background: var(--accent-background-light);--font-base: #343338;--font-dark: rgb(0, 0, 0);--font-light: rgb(52 51 56/0.7);--link: rgb(0, 0, 0);--link-visited: #4c2c92;--keyline: rgb(38 38 42/0.25);--keyline-dark: #26262a;--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);background-color:var(--background)}.tna-visually-hidden{width:1px !important;height:1px !important;margin:0 !important;padding:0 !important;position:absolute !important;top:-9999px !important;left:-9999px !important;z-index:-1 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;border:0 !important;background-color:rgba(0,0,0,0) !important}.tna-visually-hidden::before,.tna-visually-hidden::after{content:" "}*:focus{z-index:9;outline:.3125rem #00b0ff solid;outline:.3125rem var(--focus-outline) solid;outline-offset:.125rem}.tna-\!--no-focus-style:focus{outline:none}.tna-columns{column-gap:2rem}.tna-columns--2{column-count:2}.tna-columns--3{column-count:3}@media(max-width: 30em){.tna-columns{column-gap:1rem}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-columns--1-small{column-count:1}.tna-columns--2-small{column-count:2}.tna-columns--3-small{column-count:3}.tna-columns--4-small{column-count:4}}@media(max-width: 30em){.tna-columns--1-tiny{column-count:1}.tna-columns--2-tiny{column-count:2}.tna-columns--3-tiny{column-count:3}.tna-columns--4-tiny{column-count:4}}.tna-columns__block{break-inside:avoid}.tna-columns:has(.tna-columns__block:only-of-type){column-count:1}:root{--page-background: #f4f4f4;--background-tint: #d8d8d8;--font-base: #343338;--font-dark: rgb(0, 0, 0);--font-light: rgb(52 51 56/0.7);--icon-light: rgb(52 51 56/0.45);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: rgb(0, 176, 255);--keyline: rgb(38 38 42/0.25);--keyline-dark: #26262a;--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);--contrast-background: #1e1e1e;--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}.tna-template{min-width:320px;width:100%;height:100%;-webkit-overflow-scrolling:touch;font-size:16px;background-color:#f4f4f4;background-color:var(--page-background);accent-color:var(--accent)}.tna-template--system-theme{--page-background: #f4f4f4;--background-tint: #d8d8d8;--font-base: #343338;--font-dark: rgb(0, 0, 0);--font-light: rgb(52 51 56/0.7);--icon-light: rgb(52 51 56/0.45);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: rgb(0, 176, 255);--keyline: rgb(38 38 42/0.25);--keyline-dark: #26262a;--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);--contrast-background: #1e1e1e;--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}@media(prefers-color-scheme: dark){.tna-template--system-theme{--page-background: #111;--background-tint: #333;--font-base: rgb(255 255 255/0.95);--font-dark: rgb(255, 255, 255);--font-light: rgb(255 255 255/0.5);--icon-light: rgb(255 255 255/0.35);--link: rgb(0, 176, 255);--link-visited: #a8f;--focus-outline: rgb(0, 176, 255);--keyline: rgb(255 255 255/0.25);--keyline-dark: rgb(255, 255, 255);--button-text: rgb(0, 0, 0);--button-background: rgb(255, 255, 255);--button-hover-text: rgb(255, 255, 255);--button-hover-background: rgb(0, 0, 0);--contrast-background: #1e1e1e;--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: rgb(140, 150, 148);--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}}@media(prefers-contrast: more){.tna-template--system-theme{--page-background: rgb(255, 255, 255);--background-tint: #d8d8d8;--font-base: rgb(0, 0, 0);--font-dark: rgb(0, 0, 0);--font-light: rgb(0, 0, 0);--icon-light: rgb(0 0 0/0.75);--link: rgb(0, 76, 126);--link-visited: rgb(0, 0, 0);--focus-outline: rgb(253, 63, 3);--keyline: rgb(0, 0, 0);--keyline-dark: rgb(0, 0, 0);--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);--contrast-background: #f4f4f4;--contrast-font-base: rgb(0, 0, 0);--contrast-font-dark: rgb(0, 0, 0);--contrast-font-light: rgb(0, 0, 0);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(0, 76, 126);--contrast-link-visited: rgb(0, 0, 0);--contrast-keyline: rgb(0, 0, 0);--contrast-keyline-dark: rgb(0, 0, 0);--contrast-button-text: rgb(255, 255, 255);--contrast-button-background: rgb(0, 0, 0);--contrast-button-hover-text: rgb(0, 0, 0);--contrast-button-hover-background: rgb(255, 255, 255);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}.tna-template--system-theme *{background-image:none !important}}@media(prefers-contrast: more)and (prefers-color-scheme: dark){.tna-template--system-theme{--page-background: #111;--background-tint: #333;--font-base: rgb(255, 255, 255);--font-dark: rgb(255, 255, 255);--font-light: rgb(255, 255, 255);--icon-light: rgb(255 255 255/0.75);--link: rgb(255, 255, 255);--link-visited: rgb(255, 255, 255);--focus-outline: rgb(0, 176, 255);--keyline: rgb(255, 255, 255);--keyline-dark: rgb(255, 255, 255);--button-text: rgb(0, 0, 0);--button-background: rgb(255, 255, 255);--button-hover-text: rgb(255, 255, 255);--button-hover-background: rgb(0, 0, 0);--contrast-background: rgb(0, 0, 0);--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: rgb(140, 150, 148);--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}}.tna-template--light-theme{--page-background: #f4f4f4;--background-tint: #d8d8d8;--font-base: #343338;--font-dark: rgb(0, 0, 0);--font-light: rgb(52 51 56/0.7);--icon-light: rgb(52 51 56/0.45);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: rgb(0, 176, 255);--keyline: rgb(38 38 42/0.25);--keyline-dark: #26262a;--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);--contrast-background: #1e1e1e;--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}.tna-template--dark-theme{--page-background: #111;--background-tint: #333;--font-base: rgb(255 255 255/0.95);--font-dark: rgb(255, 255, 255);--font-light: rgb(255 255 255/0.5);--icon-light: rgb(255 255 255/0.35);--link: rgb(0, 176, 255);--link-visited: #a8f;--focus-outline: rgb(0, 176, 255);--keyline: rgb(255 255 255/0.25);--keyline-dark: rgb(255, 255, 255);--button-text: rgb(0, 0, 0);--button-background: rgb(255, 255, 255);--button-hover-text: rgb(255, 255, 255);--button-hover-background: rgb(0, 0, 0);--contrast-background: #1e1e1e;--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: rgb(140, 150, 148);--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}.tna-template--high-contrast-theme{--page-background: rgb(255, 255, 255);--background-tint: #d8d8d8;--font-base: rgb(0, 0, 0);--font-dark: rgb(0, 0, 0);--font-light: rgb(0, 0, 0);--icon-light: rgb(0 0 0/0.75);--link: rgb(0, 76, 126);--link-visited: rgb(0, 0, 0);--focus-outline: rgb(253, 63, 3);--keyline: rgb(0, 0, 0);--keyline-dark: rgb(0, 0, 0);--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);--contrast-background: #f4f4f4;--contrast-font-base: rgb(0, 0, 0);--contrast-font-dark: rgb(0, 0, 0);--contrast-font-light: rgb(0, 0, 0);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(0, 76, 126);--contrast-link-visited: rgb(0, 0, 0);--contrast-keyline: rgb(0, 0, 0);--contrast-keyline-dark: rgb(0, 0, 0);--contrast-button-text: rgb(255, 255, 255);--contrast-button-background: rgb(0, 0, 0);--contrast-button-hover-text: rgb(0, 0, 0);--contrast-button-hover-background: rgb(255, 255, 255);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}.tna-template--high-contrast-theme *{background-image:none !important}.tna-template--high-contrast-theme.tna-template--dark-theme{--page-background: #111;--background-tint: #333;--font-base: rgb(255, 255, 255);--font-dark: rgb(255, 255, 255);--font-light: rgb(255, 255, 255);--icon-light: rgb(255 255 255/0.75);--link: rgb(255, 255, 255);--link-visited: rgb(255, 255, 255);--focus-outline: rgb(0, 176, 255);--keyline: rgb(255, 255, 255);--keyline-dark: rgb(255, 255, 255);--button-text: rgb(0, 0, 0);--button-background: rgb(255, 255, 255);--button-hover-text: rgb(255, 255, 255);--button-hover-background: rgb(0, 0, 0);--contrast-background: rgb(0, 0, 0);--contrast-font-base: rgb(255, 255, 255);--contrast-font-dark: rgb(255, 255, 255);--contrast-font-light: rgb(255 255 255/0.7);--contrast-icon-light: rgb(255 255 255/0.45);--contrast-link: rgb(255, 255, 255);--contrast-link-visited: rgb(255, 255, 255);--contrast-keyline: rgb(255 255 255/0.5);--contrast-keyline-dark: rgb(255 255 255/0.8);--contrast-button-text: rgb(0, 0, 0);--contrast-button-background: rgb(255, 255, 255);--contrast-button-hover-text: rgb(255, 255, 255);--contrast-button-hover-background: rgb(0, 0, 0);--accent: #d9d9d6;--accent-background: #111;--accent-background-light: rgb(140, 150, 148);--accent-font-base: rgb(255, 255, 255);--accent-font-dark: rgb(255, 255, 255);--accent-font-light: rgb(255 255 255/0.7);--accent-icon-light: rgb(255 255 255/0.45);--accent-link: rgb(255, 255, 255);--accent-link-visited: #b9f;--accent-keyline: rgb(255 255 255/0.5);--accent-keyline-dark: rgb(255 255 255/0.8);--button-accent-text: rgb(0, 0, 0);--button-accent-background: rgb(140, 150, 148)}.tna-template--black-accent{--accent-font-base: rgb(255, 255, 255) !important;--accent-font-dark: rgb(255, 255, 255) !important;--accent-font-light: rgb(255 255 255/0.7) !important;--accent-icon-light: rgb(255 255 255/0.45) !important;--accent-link: rgb(255, 255, 255) !important;--accent-link-visited: rgb(255, 255, 255) !important;--accent-keyline: rgb(255 255 255/0.5) !important;--accent-keyline-dark: rgb(255 255 255/0.8) !important}.tna-template--yellow-accent{--accent: rgb(255, 204, 0) !important;--accent-background: rgb(255, 204, 0) !important;--accent-background-light: rgb(249, 247, 226) !important;--accent-font-base: rgb(0, 0, 0) !important;--accent-font-dark: rgb(0, 0, 0) !important;--accent-font-light: rgb(0 0 0/0.7) !important;--accent-icon-light: rgb(0 0 0/0.45) !important;--accent-link: rgb(0, 0, 0) !important;--accent-link-visited: rgb(0, 0, 0) !important;--accent-keyline: rgb(0 0 0/0.5) !important;--accent-keyline-dark: rgb(0 0 0/0.8) !important;--button-accent-background: rgb(255, 204, 0) !important}.tna-template--pink-accent{--accent-font-base: rgb(255, 255, 255) !important;--accent-font-dark: rgb(255, 255, 255) !important;--accent-font-light: rgb(255 255 255/0.7) !important;--accent-icon-light: rgb(255 255 255/0.45) !important;--accent-link: rgb(255, 255, 255) !important;--accent-link-visited: rgb(255, 255, 255) !important;--accent-keyline: rgb(255 255 255/0.5) !important;--accent-keyline-dark: rgb(255 255 255/0.8) !important;--button-accent-text: rgb(255, 255, 255) !important;--accent: rgb(254, 29, 87) !important;--accent-background: rgb(156, 25, 58) !important;--accent-background-light: rgb(250, 211, 212) !important;--button-accent-background: rgb(156, 25, 58) !important}.tna-template--orange-accent{--accent-font-base: rgb(255, 255, 255) !important;--accent-font-dark: rgb(255, 255, 255) !important;--accent-font-light: rgb(255 255 255/0.7) !important;--accent-icon-light: rgb(255 255 255/0.45) !important;--accent-link: rgb(255, 255, 255) !important;--accent-link-visited: rgb(255, 255, 255) !important;--accent-keyline: rgb(255 255 255/0.5) !important;--accent-keyline-dark: rgb(255 255 255/0.8) !important;--button-accent-text: rgb(255, 255, 255) !important;--accent: rgb(253, 63, 3) !important;--accent-background: rgb(143, 52, 21) !important;--accent-background-light: rgb(249, 225, 188) !important;--button-accent-background: rgb(143, 52, 21) !important}.tna-template--green-accent{--accent-font-base: rgb(255, 255, 255) !important;--accent-font-dark: rgb(255, 255, 255) !important;--accent-font-light: rgb(255 255 255/0.7) !important;--accent-icon-light: rgb(255 255 255/0.45) !important;--accent-link: rgb(255, 255, 255) !important;--accent-link-visited: rgb(255, 255, 255) !important;--accent-keyline: rgb(255 255 255/0.5) !important;--accent-keyline-dark: rgb(255 255 255/0.8) !important;--button-accent-text: rgb(255, 255, 255) !important;--accent: rgb(134, 188, 37) !important;--accent-background: rgb(0, 98, 59) !important;--accent-background-light: rgb(221, 229, 213) !important;--button-accent-background: rgb(0, 98, 59) !important}.tna-template--blue-accent{--accent-font-base: rgb(255, 255, 255) !important;--accent-font-dark: rgb(255, 255, 255) !important;--accent-font-light: rgb(255 255 255/0.7) !important;--accent-icon-light: rgb(255 255 255/0.45) !important;--accent-link: rgb(255, 255, 255) !important;--accent-link-visited: rgb(255, 255, 255) !important;--accent-keyline: rgb(255 255 255/0.5) !important;--accent-keyline-dark: rgb(255 255 255/0.8) !important;--button-accent-text: rgb(255, 255, 255) !important;--accent: rgb(0, 176, 255) !important;--accent-background: rgb(0, 76, 126) !important;--accent-background-light: rgb(212, 229, 239) !important;--button-accent-background: rgb(0, 76, 126) !important}@media(prefers-reduced-motion){.tna-template *{animation:none !important;transition:none !important}}.tna-template__body{min-height:100%;margin:0;padding:0}.tna-template__body:has(.tna-header):has(#main-content[role=main]):has(.tna-footer){display:flex;flex-direction:column}.tna-template__body:has(.tna-header):has(#main-content[role=main]):has(.tna-footer) #main-content[role=main]{flex:1}img,svg,picture,video,canvas{max-width:100%;display:block}video,canvas{width:100%}[hidden]{display:none}hr{margin:0;border-width:1px 0 0;border-color:rgb(38 38 42/0.25);border-color:var(--keyline);border-style:solid}.tna-section{padding-top:3rem;padding-bottom:3rem}@media(max-width: 48em){.tna-section{padding-top:2rem;padding-bottom:2rem}}.tna-aside{padding:2rem}@media(max-width: 48em){.tna-aside{padding:1rem}}.tna-template--high-contrast-theme .tna-aside{border:1px #26262a solid;border:1px var(--keyline-dark) solid}@media(prefers-contrast: more){.tna-template--system-theme .tna-aside{border:1px #26262a solid;border:1px var(--keyline-dark) solid}}.tna-aside--tight{padding:1rem}.tna-ul,.tna-ol{margin:1rem 0;padding:0 0 0 2rem}.tna-ul:first-child,.tna-ol:first-child{margin-top:0}.tna-ul li::marker,.tna-ol li::marker{color:#111;color:var(--accent-background);font-weight:700}.tna-ul--plain,.tna-ol--plain{padding-left:0;list-style:none}.tna-dl{margin:1rem 0;display:flex;flex-wrap:wrap}.tna-dl:first-child{margin-top:0}.tna-dl dt,.tna-dl dd{margin:0;padding:.5rem 1rem;position:relative;box-sizing:border-box;word-wrap:break-word}.tna-dl--plain dt{padding-left:0}.tna-dl--plain dd{padding-right:0}.tna-dl dt{width:30%;font-weight:bold}.tna-dl dd{width:70%}.tna-dl dd+dd{margin-left:30%}.tna-dl--icon-padding dt{padding-left:3rem !important;position:relative}.tna-dl--icon-padding dt .fa-solid{overflow:visible;position:absolute;top:50%;left:1rem;color:rgb(52 51 56/0.45);color:var(--icon-light);text-align:left;transform:translateY(-50%)}.tna-dl--icon-padding.tna-dl--plain dt{padding-left:2rem !important}.tna-dl--icon-padding.tna-dl--plain dt .fa-solid{left:0}.tna-dl--icon-padding.tna-dl--plain dd{padding-left:2rem}.tna-dl:not(.tna-dl--plain) dt:first-child,.tna-dl:not(.tna-dl--plain) dd:nth-of-type(2n)+dt,.tna-dl:not(.tna-dl--plain) dd:nth-of-type(2n + 1){background-color:#d8d8d8;background-color:var(--background-tint)}@media(min-width: 30.0625em)and (max-width: 48em){.tna-dl dt{width:35%}.tna-dl dd{width:65%}.tna-dl dd+dd{margin-left:35%}}@media(max-width: 30em){.tna-dl dt,.tna-dl dd{width:100%;margin-left:0}.tna-dl dd{padding-left:1rem}.tna-dl--plain dt{padding-bottom:0}.tna-dl--plain dd{padding-top:0}.tna-dl:not(.tna-dl--plain) dt{background-color:#d8d8d8;background-color:var(--background-tint)}.tna-dl:not(.tna-dl--plain) dd{background:rgba(0,0,0,0) !important}}.tna-template--high-contrast-theme .tna-dl{border-bottom:1px #26262a solid;border-bottom:1px var(--keyline-dark) solid}.tna-template--high-contrast-theme .tna-dl dt,.tna-template--high-contrast-theme .tna-dl dd{background:rgba(0,0,0,0) !important;border-top:1px #26262a solid;border-top:1px var(--keyline-dark) solid}@media(prefers-contrast: more){.tna-template--system-theme .tna-dl{border-bottom:1px #26262a solid;border-bottom:1px var(--keyline-dark) solid}.tna-template--system-theme .tna-dl dt,.tna-template--system-theme .tna-dl dd{background:rgba(0,0,0,0) !important;border-top:1px #26262a solid;border-top:1px var(--keyline-dark) solid}}.tna-\!--no-margin-top,.tna-\!--no-margin-vertical{margin-top:0 !important}.tna-\!--no-margin-bottom,.tna-\!--no-margin-vertical{margin-bottom:0 !important}.tna-\!--no-padding-top,.tna-\!--no-padding-vertical{padding-top:0 !important}.tna-\!--no-padding-bottom,.tna-\!--no-padding-vertical{padding-bottom:0 !important}.tna-\!--margin-top-xs,.tna-\!--margin-vertical-xs{margin-top:0.5rem !important}.tna-\!--margin-top-s,.tna-\!--margin-vertical-s{margin-top:1rem !important}.tna-\!--margin-top-m,.tna-\!--margin-vertical-m{margin-top:2rem !important}.tna-\!--margin-top-l,.tna-\!--margin-vertical-l{margin-top:3rem !important}.tna-\!--margin-top-xl,.tna-\!--margin-vertical-xl{margin-top:5rem !important}.tna-\!--margin-top-xxl,.tna-\!--margin-vertical-xxl{margin-top:8rem !important}.tna-\!--margin-bottom-xs,.tna-\!--margin-vertical-xs{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s,.tna-\!--margin-vertical-s{margin-bottom:1rem !important}.tna-\!--margin-bottom-m,.tna-\!--margin-vertical-m{margin-bottom:2rem !important}.tna-\!--margin-bottom-l,.tna-\!--margin-vertical-l{margin-bottom:3rem !important}.tna-\!--margin-bottom-xl,.tna-\!--margin-vertical-xl{margin-bottom:5rem !important}.tna-\!--margin-bottom-xxl,.tna-\!--margin-vertical-xxl{margin-bottom:8rem !important}.tna-\!--padding-top-xs,.tna-\!--padding-vertical-xs{padding-top:0.5rem !important}.tna-\!--padding-top-s,.tna-\!--padding-vertical-s{padding-top:1rem !important}.tna-\!--padding-top-m,.tna-\!--padding-vertical-m{padding-top:2rem !important}.tna-\!--padding-top-l,.tna-\!--padding-vertical-l{padding-top:3rem !important}.tna-\!--padding-top-xl,.tna-\!--padding-vertical-xl{padding-top:5rem !important}.tna-\!--padding-top-xxl,.tna-\!--padding-vertical-xxl{padding-top:8rem !important}.tna-\!--padding-bottom-xs,.tna-\!--padding-vertical-xs{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s,.tna-\!--padding-vertical-s{padding-bottom:1rem !important}.tna-\!--padding-bottom-m,.tna-\!--padding-vertical-m{padding-bottom:2rem !important}.tna-\!--padding-bottom-l,.tna-\!--padding-vertical-l{padding-bottom:3rem !important}.tna-\!--padding-bottom-xl,.tna-\!--padding-vertical-xl{padding-bottom:5rem !important}.tna-\!--padding-bottom-xxl,.tna-\!--padding-vertical-xxl{padding-bottom:8rem !important}@media(min-width: 48.0625em)and (max-width: 64em){.tna-\!--no-margin-top-medium,.tna-\!--no-margin-vertical-medium{margin-top:0 !important}.tna-\!--no-margin-bottom-medium,.tna-\!--no-margin-vertical-medium{margin-bottom:0 !important}.tna-\!--no-padding-top-medium,.tna-\!--no-padding-vertical-medium{padding-top:0 !important}.tna-\!--no-padding-bottom-medium,.tna-\!--no-padding-vertical-medium{padding-bottom:0 !important}.tna-\!--margin-top-xs-medium,.tna-\!--margin-vertical-xs-medium{margin-top:0.5rem !important}.tna-\!--margin-top-s-medium,.tna-\!--margin-vertical-s-medium{margin-top:1rem !important}.tna-\!--margin-top-m-medium,.tna-\!--margin-vertical-m-medium{margin-top:2rem !important}.tna-\!--margin-top-l-medium,.tna-\!--margin-vertical-l-medium{margin-top:3rem !important}.tna-\!--margin-top-xl-medium,.tna-\!--margin-vertical-xl-medium{margin-top:5rem !important}.tna-\!--margin-top-xxl-medium,.tna-\!--margin-vertical-xxl-medium{margin-top:8rem !important}.tna-\!--margin-bottom-xs-medium,.tna-\!--margin-vertical-xs-medium{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-medium,.tna-\!--margin-vertical-s-medium{margin-bottom:1rem !important}.tna-\!--margin-bottom-m-medium,.tna-\!--margin-vertical-m-medium{margin-bottom:2rem !important}.tna-\!--margin-bottom-l-medium,.tna-\!--margin-vertical-l-medium{margin-bottom:3rem !important}.tna-\!--margin-bottom-xl-medium,.tna-\!--margin-vertical-xl-medium{margin-bottom:5rem !important}.tna-\!--margin-bottom-xxl-medium,.tna-\!--margin-vertical-xxl-medium{margin-bottom:8rem !important}.tna-\!--padding-top-xs-medium,.tna-\!--padding-vertical-xs-medium{padding-top:0.5rem !important}.tna-\!--padding-top-s-medium,.tna-\!--padding-vertical-s-medium{padding-top:1rem !important}.tna-\!--padding-top-m-medium,.tna-\!--padding-vertical-m-medium{padding-top:2rem !important}.tna-\!--padding-top-l-medium,.tna-\!--padding-vertical-l-medium{padding-top:3rem !important}.tna-\!--padding-top-xl-medium,.tna-\!--padding-vertical-xl-medium{padding-top:5rem !important}.tna-\!--padding-top-xxl-medium,.tna-\!--padding-vertical-xxl-medium{padding-top:8rem !important}.tna-\!--padding-bottom-xs-medium,.tna-\!--padding-vertical-xs-medium{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-medium,.tna-\!--padding-vertical-s-medium{padding-bottom:1rem !important}.tna-\!--padding-bottom-m-medium,.tna-\!--padding-vertical-m-medium{padding-bottom:2rem !important}.tna-\!--padding-bottom-l-medium,.tna-\!--padding-vertical-l-medium{padding-bottom:3rem !important}.tna-\!--padding-bottom-xl-medium,.tna-\!--padding-vertical-xl-medium{padding-bottom:5rem !important}.tna-\!--padding-bottom-xxl-medium,.tna-\!--padding-vertical-xxl-medium{padding-bottom:8rem !important}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-\!--no-margin-top-small,.tna-\!--no-margin-vertical-small{margin-top:0 !important}.tna-\!--no-margin-bottom-small,.tna-\!--no-margin-vertical-small{margin-bottom:0 !important}.tna-\!--no-padding-top-small,.tna-\!--no-padding-vertical-small{padding-top:0 !important}.tna-\!--no-padding-bottom-small,.tna-\!--no-padding-vertical-small{padding-bottom:0 !important}.tna-\!--margin-top-xs-small,.tna-\!--margin-vertical-xs-small{margin-top:0.5rem !important}.tna-\!--margin-top-s-small,.tna-\!--margin-vertical-s-small{margin-top:0.75rem !important}.tna-\!--margin-top-m-small,.tna-\!--margin-vertical-m-small{margin-top:1.5rem !important}.tna-\!--margin-top-l-small,.tna-\!--margin-vertical-l-small{margin-top:2rem !important}.tna-\!--margin-top-xl-small,.tna-\!--margin-vertical-xl-small{margin-top:3rem !important}.tna-\!--margin-top-xxl-small,.tna-\!--margin-vertical-xxl-small{margin-top:5rem !important}.tna-\!--margin-bottom-xs-small,.tna-\!--margin-vertical-xs-small{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-small,.tna-\!--margin-vertical-s-small{margin-bottom:0.75rem !important}.tna-\!--margin-bottom-m-small,.tna-\!--margin-vertical-m-small{margin-bottom:1.5rem !important}.tna-\!--margin-bottom-l-small,.tna-\!--margin-vertical-l-small{margin-bottom:2rem !important}.tna-\!--margin-bottom-xl-small,.tna-\!--margin-vertical-xl-small{margin-bottom:3rem !important}.tna-\!--margin-bottom-xxl-small,.tna-\!--margin-vertical-xxl-small{margin-bottom:5rem !important}.tna-\!--padding-top-xs-small,.tna-\!--padding-vertical-xs-small{padding-top:0.5rem !important}.tna-\!--padding-top-s-small,.tna-\!--padding-vertical-s-small{padding-top:0.75rem !important}.tna-\!--padding-top-m-small,.tna-\!--padding-vertical-m-small{padding-top:1.5rem !important}.tna-\!--padding-top-l-small,.tna-\!--padding-vertical-l-small{padding-top:2rem !important}.tna-\!--padding-top-xl-small,.tna-\!--padding-vertical-xl-small{padding-top:3rem !important}.tna-\!--padding-top-xxl-small,.tna-\!--padding-vertical-xxl-small{padding-top:5rem !important}.tna-\!--padding-bottom-xs-small,.tna-\!--padding-vertical-xs-small{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-small,.tna-\!--padding-vertical-s-small{padding-bottom:0.75rem !important}.tna-\!--padding-bottom-m-small,.tna-\!--padding-vertical-m-small{padding-bottom:1.5rem !important}.tna-\!--padding-bottom-l-small,.tna-\!--padding-vertical-l-small{padding-bottom:2rem !important}.tna-\!--padding-bottom-xl-small,.tna-\!--padding-vertical-xl-small{padding-bottom:3rem !important}.tna-\!--padding-bottom-xxl-small,.tna-\!--padding-vertical-xxl-small{padding-bottom:5rem !important}}@media(max-width: 30em){.tna-\!--no-margin-top-tiny,.tna-\!--no-margin-vertical-tiny{margin-top:0 !important}.tna-\!--no-margin-bottom-tiny,.tna-\!--no-margin-vertical-tiny{margin-bottom:0 !important}.tna-\!--no-padding-top-tiny,.tna-\!--no-padding-vertical-tiny{padding-top:0 !important}.tna-\!--no-padding-bottom-tiny,.tna-\!--no-padding-vertical-tiny{padding-bottom:0 !important}.tna-\!--margin-top-xs-tiny,.tna-\!--margin-vertical-xs-tiny{margin-top:0.5rem !important}.tna-\!--margin-top-s-tiny,.tna-\!--margin-vertical-s-tiny{margin-top:0.75rem !important}.tna-\!--margin-top-m-tiny,.tna-\!--margin-vertical-m-tiny{margin-top:1.5rem !important}.tna-\!--margin-top-l-tiny,.tna-\!--margin-vertical-l-tiny{margin-top:2rem !important}.tna-\!--margin-top-xl-tiny,.tna-\!--margin-vertical-xl-tiny{margin-top:3rem !important}.tna-\!--margin-top-xxl-tiny,.tna-\!--margin-vertical-xxl-tiny{margin-top:5rem !important}.tna-\!--margin-bottom-xs-tiny,.tna-\!--margin-vertical-xs-tiny{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-tiny,.tna-\!--margin-vertical-s-tiny{margin-bottom:0.75rem !important}.tna-\!--margin-bottom-m-tiny,.tna-\!--margin-vertical-m-tiny{margin-bottom:1.5rem !important}.tna-\!--margin-bottom-l-tiny,.tna-\!--margin-vertical-l-tiny{margin-bottom:2rem !important}.tna-\!--margin-bottom-xl-tiny,.tna-\!--margin-vertical-xl-tiny{margin-bottom:3rem !important}.tna-\!--margin-bottom-xxl-tiny,.tna-\!--margin-vertical-xxl-tiny{margin-bottom:5rem !important}.tna-\!--padding-top-xs-tiny,.tna-\!--padding-vertical-xs-tiny{padding-top:0.5rem !important}.tna-\!--padding-top-s-tiny,.tna-\!--padding-vertical-s-tiny{padding-top:0.75rem !important}.tna-\!--padding-top-m-tiny,.tna-\!--padding-vertical-m-tiny{padding-top:1.5rem !important}.tna-\!--padding-top-l-tiny,.tna-\!--padding-vertical-l-tiny{padding-top:2rem !important}.tna-\!--padding-top-xl-tiny,.tna-\!--padding-vertical-xl-tiny{padding-top:3rem !important}.tna-\!--padding-top-xxl-tiny,.tna-\!--padding-vertical-xxl-tiny{padding-top:5rem !important}.tna-\!--padding-bottom-xs-tiny,.tna-\!--padding-vertical-xs-tiny{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-tiny,.tna-\!--padding-vertical-s-tiny{padding-bottom:0.75rem !important}.tna-\!--padding-bottom-m-tiny,.tna-\!--padding-vertical-m-tiny{padding-bottom:1.5rem !important}.tna-\!--padding-bottom-l-tiny,.tna-\!--padding-vertical-l-tiny{padding-bottom:2rem !important}.tna-\!--padding-bottom-xl-tiny,.tna-\!--padding-vertical-xl-tiny{padding-bottom:3rem !important}.tna-\!--padding-bottom-xxl-tiny,.tna-\!--padding-vertical-xxl-tiny{padding-bottom:5rem !important}}@font-face{font-family:"Open Sans";src:url("./assets/fonts/OpenSans-Medium.ttf");font-weight:normal;font-style:normal}@font-face{font-family:"Open Sans";src:url("./assets/fonts/OpenSans-Bold.ttf");font-weight:bold;font-style:normal}@font-face{font-family:"Roboto Mono";src:url("./assets/fonts/RobotoMono-Regular.ttf");font-weight:normal;font-style:normal}.tna-template{color:#343338;color:var(--font-base);font-family:"Open Sans",sans-serif;font-weight:normal;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:none;direction:ltr}.tna-template__body{color:inherit;font-size:1.125rem;line-height:1.7777777778}@media(max-width: 48em){.tna-template__body{font-size:1.0625rem}}h1,h2,h3,h4,h5,h6,ul,ol{margin-top:0}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}p{margin:1rem 0 0}p:first-child{margin-top:0}a{color:#1d70ab;color:var(--link);text-decoration-thickness:1.5px}a:visited{color:#4c2c92;color:var(--link-visited)}a:hover,a:active{text-decoration:underline;text-decoration-thickness:3.5px}small{font-size:0.95625rem}.tna-chip-list{margin-bottom:0;padding-left:0;display:flex;flex-wrap:wrap;gap:1rem;list-style:none}.tna-hgroup__supertitle,.tna-chip{max-width:max-content;padding:.125em .25rem;display:block;color:#000;color:var(--font-dark);font-family:"Roboto Mono",monospace;font-weight:normal;font-size:0.875rem;text-transform:uppercase;line-height:1.1428571429;line-height:1;border:.125rem #111 solid;border:.125rem var(--accent-background) solid}.tna-chip--plain{color:inherit;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}a.tna-chip{text-decoration:none}a.tna-chip,a.tna-chip:link,a.tna-chip:visited{color:#000;color:var(--font-dark)}a.tna-chip:hover{text-decoration:underline;text-decoration-thickness:3.5px}a.tna-chip--plain,a.tna-chip--plain:link,a.tna-chip--plain:visited{color:inherit}.tna-hgroup-s .tna-hgroup__title,.tna-heading-s,.tna-hgroup-m .tna-hgroup__title,.tna-heading-m,.tna-hgroup-l .tna-hgroup__title,.tna-heading-l,.tna-hgroup-xl .tna-hgroup__title,.tna-heading-xl{color:#000;color:var(--font-dark);text-wrap:balance}.tna-hgroup-s .tna-hgroup__title:not(.tna-heading--no-link-arrow) a,.tna-heading-s:not(.tna-heading--no-link-arrow) a,.tna-hgroup-m .tna-hgroup__title:not(.tna-heading--no-link-arrow) a,.tna-heading-m:not(.tna-heading--no-link-arrow) a,.tna-hgroup-l .tna-hgroup__title:not(.tna-heading--no-link-arrow) a,.tna-heading-l:not(.tna-heading--no-link-arrow) a,.tna-hgroup-xl .tna-hgroup__title:not(.tna-heading--no-link-arrow) a,.tna-heading-xl:not(.tna-heading--no-link-arrow) a{display:inline-block}.tna-hgroup-s .tna-hgroup__title:not(.tna-heading--no-link-arrow) a::after,.tna-heading-s:not(.tna-heading--no-link-arrow) a::after,.tna-hgroup-m .tna-hgroup__title:not(.tna-heading--no-link-arrow) a::after,.tna-heading-m:not(.tna-heading--no-link-arrow) a::after,.tna-hgroup-l .tna-hgroup__title:not(.tna-heading--no-link-arrow) a::after,.tna-heading-l:not(.tna-heading--no-link-arrow) a::after,.tna-hgroup-xl .tna-hgroup__title:not(.tna-heading--no-link-arrow) a::after,.tna-heading-xl:not(.tna-heading--no-link-arrow) a::after{padding-left:.25rem;display:inline-block;font-weight:700;content:"›"}.tna-hgroup-s .tna-hgroup__title:not(.tna-heading--no-link-arrow) a:hover::after,.tna-heading-s:not(.tna-heading--no-link-arrow) a:hover::after,.tna-hgroup-m .tna-hgroup__title:not(.tna-heading--no-link-arrow) a:hover::after,.tna-heading-m:not(.tna-heading--no-link-arrow) a:hover::after,.tna-hgroup-l .tna-hgroup__title:not(.tna-heading--no-link-arrow) a:hover::after,.tna-heading-l:not(.tna-heading--no-link-arrow) a:hover::after,.tna-hgroup-xl .tna-hgroup__title:not(.tna-heading--no-link-arrow) a:hover::after,.tna-heading-xl:not(.tna-heading--no-link-arrow) a:hover::after{padding-left:.5rem}.tna-hgroup-xl .tna-hgroup__title,.tna-heading-xl{font-family:supria-sans-condensed,"Arial Narrow",sans-serif;font-weight:500;font-size:4rem;line-height:1.2}@media(min-width: 48.0625em)and (max-width: 64em){.tna-hgroup-xl .tna-hgroup__title,.tna-heading-xl{font-size:2.625rem}}@media(max-width: 48em){.tna-hgroup-xl .tna-hgroup__title,.tna-heading-xl{font-size:2.25rem}}.tna-hgroup-l .tna-hgroup__title,.tna-heading-l{font-family:supria-sans-condensed,"Arial Narrow",sans-serif;font-weight:500;font-size:2rem;line-height:1.3}@media(min-width: 48.0625em)and (max-width: 64em){.tna-hgroup-l .tna-hgroup__title,.tna-heading-l{font-size:1.625rem}}@media(max-width: 48em){.tna-hgroup-l .tna-hgroup__title,.tna-heading-l{font-size:1.5rem}}.tna-hgroup-m .tna-hgroup__title,.tna-heading-m{font-weight:bold;font-size:1.375rem;line-height:1.6}@media(max-width: 48em){.tna-hgroup-m .tna-hgroup__title,.tna-heading-m{font-size:1.25rem}}.tna-hgroup-s .tna-hgroup__title,.tna-heading-s{font-weight:bold;font-size:1.125rem;line-height:1.6}.tna-hgroup-xl,.tna-hgroup-l,.tna-hgroup-m,.tna-hgroup-s,.tna-heading-s,.tna-heading-m,.tna-heading-l,.tna-heading-xl{margin-bottom:1rem;padding-top:1rem}.tna-hgroup-xl:first-child,.tna-hgroup-l:first-child,.tna-hgroup-m:first-child,.tna-hgroup-s:first-child,.tna-heading-s:first-child,.tna-heading-m:first-child,.tna-heading-l:first-child,.tna-heading-xl:first-child{padding-top:0}.tna-hgroup-xl:last-child,.tna-hgroup-l:last-child,.tna-hgroup-m:last-child,.tna-hgroup-s:last-child,.tna-heading-s:last-child,.tna-heading-m:last-child,.tna-heading-l:last-child,.tna-heading-xl:last-child{margin-bottom:0;padding-bottom:0}.tna-hgroup__supertitle{margin:0 0 .25rem}.tna-hgroup__title{margin:0;display:block}.tna-blockquote{margin-right:0;margin-bottom:0;margin-left:0;padding:1rem 1rem 1rem 2rem;border-left:.35rem #111 solid;border-left:.35rem var(--accent-background) solid}.tna-blockquote__quote{font-weight:700}.tna-blockquote__author{font-style:italic}.tna-blockquote .tna-blockquote__author{margin:1rem 0 0}.tna-blockquote__author::before{content:"—" " "}.tna-scene-setter{font-family:"Roboto Mono",monospace;font-weight:normal;color:#000;color:var(--font-dark);font-size:1.875rem;line-height:1.6666666667}@media(max-width: 48em){.tna-scene-setter{font-size:1.5rem;line-height:2}}.tna-scene-setter a{color:inherit;text-decoration-thickness:2px}.tna-scene-setter a:hover{text-decoration-thickness:4.5px}.tna-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem}.tna-filters__item--selected .tna-filters__link{background-color:#004c7e}.tna-filters__item--selected .tna-filters__link,.tna-filters__item--selected .tna-filters__link:link,.tna-filters__item--selected .tna-filters__link:visited{color:#fff}.tna-filters__link{padding:.125rem .75rem;text-decoration:none;background-color:#d4e5ef;border-radius:99rem;transition:color 200ms,background-color 200ms}.tna-filters__link,.tna-filters__link:link,.tna-filters__link:visited{color:#000}.tna-filters__link:hover{color:#fff;background-color:#004c7e;transition:color 50ms,background-color 50ms}/*# sourceMappingURL=filters.css.map */
|