diff --git a/docs/source/_static/css/custom.css b/docs/source/_static/css/custom.css
index 5be72283d4..71343f1c12 100644
--- a/docs/source/_static/css/custom.css
+++ b/docs/source/_static/css/custom.css
@@ -1,34 +1,37 @@
/* Prevents two-dimensional scrolling and content loss. */
-h1, code, li {
+h1,
+code,
+li {
overflow-wrap: break-word;
}
/* Provides padding to push down the "breadcrumb" navigation in nested pages. */
-.content{
+.content {
padding: 1em 3em;
}
/* Improves spacing around custom sidebar section*/
-.sidebar-div{
+.sidebar-div {
margin: var(--sidebar-caption-space-above) 0 0 0;
- padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);
+ padding: var(--sidebar-item-spacing-vertical)
+ var(--sidebar-item-spacing-horizontal);
}
/* Custom sidebar heading text. Example: Feedback Section heading. */
-.sidebar-heading{
+.sidebar-heading {
color: var(--color-sidebar-caption-text);
font-size: var(--font-size--normal);
font-weight: 700;
}
/* Improves text used in custom sidebar section. Example: Feedback section content.*/
-.sidebar-text{
+.sidebar-text {
color: var(--color-sidebar-caption-text);
font-size: var(--sidebar-item-font-size);
line-height: 1.4;
}
/* Removes empty space above the sidebar-tree (under "Feedback" section) */
-.sidebar-tree{
+.sidebar-tree {
margin-top: 0px;
}
/* Adds padding around AWS Logo in the left sidebar. */
-.sidebar-logo{
+.sidebar-logo {
padding: 20% 15%;
}
/* Hides a div by default. */
@@ -52,7 +55,7 @@ h1, code, li {
visibility: hidden;
}
/* Hides the icon by default and applies relevant styling. */
-.nav-close-icon{
+.nav-close-icon {
color: var(--color-foreground-secondary);
display: flex;
align-items: center;
@@ -73,24 +76,24 @@ h1, code, li {
}
}
@media (max-width: 82em) {
- /* Displays a div on a medium screen. */
+ /* Displays a div on a medium screen. */
.show-div-md {
display: flex;
}
}
/* Apply furo styled admonition titles for
. */
h3.admonition-title {
- position: relative;
- margin: 0 -0.5rem 0.5rem;
- padding-left: 2.5rem;
- padding-right: .5rem;
- padding-top: .4rem;
- padding-bottom: .4rem;
- font-weight: 700;
- font-size: 1.5em;
- line-height: 1.25;
- border-radius: unset;
- background-color: var(--color-admonition-title-background);
+ position: relative;
+ margin: 0 -0.5rem 0.5rem;
+ padding-left: 2.5rem;
+ padding-right: 0.5rem;
+ padding-top: 0.4rem;
+ padding-bottom: 0.4rem;
+ font-weight: 700;
+ font-size: 1.5em;
+ line-height: 1.25;
+ border-radius: unset;
+ background-color: var(--color-admonition-title-background);
}
/* Apply furo styled admonition icons before . */
h3.admonition-title::before {
@@ -103,3 +106,7 @@ h3.admonition-title::before {
mask-image: var(--icon-admonition-default);
mask-repeat: no-repeat;
}
+/* Apply class selector from inline page.html */
+.hidden {
+ display: none;
+}
diff --git a/docs/source/_static/css/dark_light_mode.css b/docs/source/_static/css/dark_light_mode.css
new file mode 100644
index 0000000000..405fdb59a0
--- /dev/null
+++ b/docs/source/_static/css/dark_light_mode.css
@@ -0,0 +1,20 @@
+body {
+ --color-code-background: #f8f8f8;
+ --color-code-foreground: black;
+}
+
+/* Dark theme styles */
+@media not print {
+ body[data-theme="dark"] {
+ --color-code-background: #272822;
+ --color-code-foreground: #f8f8f2;
+ }
+
+ /* For users who prefer dark color scheme */
+ @media (prefers-color-scheme: dark) {
+ body:not([data-theme="light"]) {
+ --color-code-background: #272822;
+ --color-code-foreground: #f8f8f2;
+ }
+ }
+}
diff --git a/docs/source/_static/js/custom.js b/docs/source/_static/js/custom.js
index 03bbd2fee6..c529a706f0 100644
--- a/docs/source/_static/js/custom.js
+++ b/docs/source/_static/js/custom.js
@@ -13,17 +13,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
+
const nonResourceSubHeadings = [
- 'client',
- 'waiters',
- 'paginators',
- 'resources',
- 'examples'
+ "client",
+ "waiters",
+ "paginators",
+ "resources",
+ "examples",
];
// Checks if an html doc name matches a service class name.
function isValidServiceName(serviceClassName) {
- const pageTitle = document.getElementsByTagName('h1')[0];
- const newDocName = pageTitle.innerText.replace('#', '');
+ const pageTitle = document.getElementsByTagName("h1")[0];
+ const newDocName = pageTitle.innerText.replace("#", "");
return newDocName.toLowerCase() === serviceClassName;
}
// Checks if all elements of the split fragment are valid.
@@ -40,7 +41,10 @@ function isValidFragment(splitFragment) {
}
// Checks if a name is a possible resource name.
function isValidResource(name, serviceDocName) {
- return name !== serviceDocName.replaceAll('-', '') && !nonResourceSubHeadings.includes(name);
+ return (
+ name !== serviceDocName.replaceAll("-", "") &&
+ !nonResourceSubHeadings.includes(name)
+ );
}
// Reroutes previously existing links to the new path.
// Old: /reference/services/s3.html#S3.Client.delete_bucket
@@ -48,12 +52,20 @@ function isValidResource(name, serviceDocName) {
// This must be done client side since the fragment (#S3.Client.delete_bucket) is never
// passed to the server.
(function () {
- const currentPath = window.location.pathname.split('/');
+ const currentPath = window.location.pathname.split("/");
const fragment = window.location.hash.substring(1);
- const splitFragment = fragment.split('.').map(part => part.replace(/serviceresource/i, 'service-resource'));
+ const splitFragment = fragment
+ .split(".")
+ .map((part) => part.replace(/serviceresource/i, "service-resource"));
// Only redirect when viewing a top-level service page.
- if (isValidFragment(splitFragment) && currentPath[currentPath.length - 2] === 'services') {
- const serviceDocName = currentPath[currentPath.length - 1].replace('.html', '');
+ if (
+ isValidFragment(splitFragment) &&
+ currentPath[currentPath.length - 2] === "services"
+ ) {
+ const serviceDocName = currentPath[currentPath.length - 1].replace(
+ ".html",
+ "",
+ );
if (splitFragment.length > 1) {
splitFragment[0] = splitFragment[0].toLowerCase();
splitFragment[1] = splitFragment[1].toLowerCase();
@@ -61,43 +73,51 @@ function isValidResource(name, serviceDocName) {
let newPath;
if (splitFragment.length >= 3 && isValidServiceName(splitFragment[0])) {
splitFragment[0] = serviceDocName;
- newPath = `${ splitFragment.slice(0, 3).join('/') }.html#${ splitFragment.length > 3 ? fragment : '' }`;
- } else if (splitFragment.length == 2 && isValidResource(splitFragment[1].toLowerCase(), serviceDocName)) {
- newPath = `${ splitFragment.join('/') }/index.html#${ fragment }`;
- } else if (splitFragment.length == 1 && isValidResource(splitFragment[0], serviceDocName)) {
- newPath = `${ serviceDocName }/${ splitFragment.join('/') }/index.html`;
+ newPath = `${splitFragment.slice(0, 3).join("/")}.html#${splitFragment.length > 3 ? fragment : ""}`;
+ } else if (
+ splitFragment.length == 2 &&
+ isValidResource(splitFragment[1].toLowerCase(), serviceDocName)
+ ) {
+ newPath = `${splitFragment.join("/")}/index.html#${fragment}`;
+ } else if (
+ splitFragment.length == 1 &&
+ isValidResource(splitFragment[0], serviceDocName)
+ ) {
+ newPath = `${serviceDocName}/${splitFragment.join("/")}/index.html`;
} else {
return;
}
window.location.assign(newPath);
}
-}());
+})();
// Given a service name, we apply the html classes which indicate a current page to the corresponsing list item.
// Before: ACM
// After: ACM
function makeServiceLinkCurrent(serviceName) {
- const servicesSection = [...document.querySelectorAll('a')].find(
- e => e.innerHTML.includes('Available Services')
+ const servicesSection = [...document.querySelectorAll("a")].find((e) =>
+ e.innerHTML.includes("Available Services"),
).parentElement;
- var linkElement = servicesSection.querySelectorAll(`a[href*="../${ serviceName }.html"]`);
+ var linkElement = servicesSection.querySelectorAll(
+ `a[href*="../${serviceName}.html"]`,
+ );
if (linkElement.length === 0) {
linkElement = servicesSection.querySelectorAll(`a[href="#"]`)[0];
} else {
linkElement = linkElement[0];
}
let linkParent = linkElement.parentElement;
- linkParent.classList.add('current');
- linkParent.classList.add('current-page');
+ linkParent.classList.add("current");
+ linkParent.classList.add("current-page");
}
-const currentPagePath = window.location.pathname.split('/');
-const codeBlockSelector = 'div.highlight pre';
+const currentPagePath = window.location.pathname.split("/");
+const codeBlockSelector = "div.highlight pre";
// Expands the "Available Services" sub-menu in the side-bar when viewing
// nested doc pages and highlights the corresponding service list item.
function expandSubMenu() {
- if (currentPagePath.includes('services')) {
- document.getElementById('toctree-checkbox-11').checked = true;
+ if (currentPagePath.includes("services")) {
+ document.getElementById("toctree-checkbox-11").checked = true;
// Example Nested Path: /reference/services//client/.html
- const serviceNameIndex = currentPagePath.indexOf('services') + 1;
+ const serviceNameIndex = currentPagePath.indexOf("services") + 1;
const serviceName = currentPagePath[serviceNameIndex];
makeServiceLinkCurrent(serviceName);
}
@@ -105,93 +125,125 @@ function expandSubMenu() {
// Allows code blocks to be scrollable by keyboard only users.
function makeCodeBlocksScrollable() {
const codeCells = document.querySelectorAll(codeBlockSelector);
- codeCells.forEach(codeCell => {
+ codeCells.forEach((codeCell) => {
codeCell.tabIndex = 0;
});
}
// Determines which of the two table-of-contents menu labels is visible.
function determineVisibleTocOpenMenu() {
- const mediaQuery = window.matchMedia('(max-width: 67em)');
- return mediaQuery.matches ? 'toc-menu-open-sm' : 'toc-menu-open-md';
+ const mediaQuery = window.matchMedia("(max-width: 67em)");
+ return mediaQuery.matches ? "toc-menu-open-sm" : "toc-menu-open-md";
}
// A mapping of current to next focus id's. For example, We want a corresponsing
// menu's close button to be highlighted after a menu is opened with a keyboard.
const NEXT_FOCUS_ID_MAP = {
- 'nav-menu-open': 'nav-menu-close',
- 'nav-menu-close': 'nav-menu-open',
- 'toc-menu-open-sm': 'toc-menu-close',
- 'toc-menu-open-md': 'toc-menu-close',
- 'toc-menu-close': determineVisibleTocOpenMenu(),
+ "nav-menu-open": "nav-menu-close",
+ "nav-menu-close": "nav-menu-open",
+ "toc-menu-open-sm": "toc-menu-close",
+ "toc-menu-open-md": "toc-menu-close",
+ "toc-menu-close": determineVisibleTocOpenMenu(),
};
// Toggles the visibility of a sidebar menu to prevent keyboard focus on hidden elements.
function toggleSidebarMenuVisibility(elementQuery, inputQuery) {
- const sidebarElement = document.querySelector(elementQuery);
- const sidebarInput = document.querySelector(inputQuery);
- sidebarInput.addEventListener('change', () => {
- setTimeout(
- () => {
- sidebarElement.classList.toggle('hide-sidebar', !sidebarInput.checked);
- },
- sidebarInput.checked ? 0 : 250,
- );
- });
- window.matchMedia('(max-width: 67em)').addEventListener('change', (event) => {
- NEXT_FOCUS_ID_MAP['toc-menu-close'] = determineVisibleTocOpenMenu();
- if (!event.matches) {
- document
- .querySelector('.sidebar-drawer')
- .classList.remove('hide-sidebar');
- }
- });
- window.matchMedia('(max-width: 82em)').addEventListener('change', (event) => {
- if (!event.matches) {
- document.querySelector('.toc-drawer').classList.remove('hide-sidebar');
- }
- });
+ const sidebarElement = document.querySelector(elementQuery);
+ const sidebarInput = document.querySelector(inputQuery);
+ sidebarInput.addEventListener("change", () => {
+ setTimeout(
+ () => {
+ sidebarElement.classList.toggle("hide-sidebar", !sidebarInput.checked);
+ },
+ sidebarInput.checked ? 0 : 250,
+ );
+ });
+ window.matchMedia("(max-width: 67em)").addEventListener("change", (event) => {
+ NEXT_FOCUS_ID_MAP["toc-menu-close"] = determineVisibleTocOpenMenu();
+ if (!event.matches) {
+ document
+ .querySelector(".sidebar-drawer")
+ .classList.remove("hide-sidebar");
+ }
+ });
+ window.matchMedia("(max-width: 82em)").addEventListener("change", (event) => {
+ if (!event.matches) {
+ document.querySelector(".toc-drawer").classList.remove("hide-sidebar");
+ }
+ });
}
// Activates labels when a user focuses on them and clicks "Enter".
// Also highlights the next appropriate input label.
function activateLabelOnEnter() {
- const labels = document.querySelectorAll('label');
- labels.forEach((element) => {
- element.setAttribute('tabindex', '0');
- element.addEventListener('keypress', (event) => {
- if (event.key === 'Enter') {
- const targetId = element.getAttribute('for');
- document.getElementById(targetId).click();
- const nextFocusId = NEXT_FOCUS_ID_MAP[element.id];
- if (nextFocusId) {
- // Timeout is needed to let the label become visible.
- setTimeout(() => {
- document.getElementById(nextFocusId).focus();
- }, 250);
- }
- }
- });
- });
+ const labels = document.querySelectorAll("label");
+ labels.forEach((element) => {
+ element.setAttribute("tabindex", "0");
+ element.addEventListener("keypress", (event) => {
+ if (event.key === "Enter") {
+ const targetId = element.getAttribute("for");
+ document.getElementById(targetId).click();
+ const nextFocusId = NEXT_FOCUS_ID_MAP[element.id];
+ if (nextFocusId) {
+ // Timeout is needed to let the label become visible.
+ setTimeout(() => {
+ document.getElementById(nextFocusId).focus();
+ }, 250);
+ }
+ }
+ });
+ });
+}
+
+function loadThemeFromLocalStorage() {
+ document.body.dataset.theme = localStorage.getItem("theme") || "auto";
}
// Improves accessibility for keyboard-only users.
function setupKeyboardFriendlyNavigation() {
- activateLabelOnEnter();
- toggleSidebarMenuVisibility('.toc-drawer', '#__toc');
- toggleSidebarMenuVisibility('.sidebar-drawer', '#__navigation');
+ activateLabelOnEnter();
+ toggleSidebarMenuVisibility(".toc-drawer", "#__toc");
+ toggleSidebarMenuVisibility(".sidebar-drawer", "#__navigation");
}
+
+function loadShortbread() {
+ if (typeof AWSCShortbread !== "undefined") {
+ const shortbread = AWSCShortbread({
+ // If you're testing in your dev environment, use ".cloudfront.net" for domain, else ".amazonaws.com"
+ domain: ".amazonaws.com",
+ });
+
+ // Check for cookie consent
+ shortbread.checkForCookieConsent();
+
+ const cookiePreferencesLink = document.getElementById("cookie-button-link");
+ if (cookiePreferencesLink) {
+ cookiePreferencesLink.addEventListener("click", function (event) {
+ event.preventDefault();
+ shortbread.customizeCookies();
+ });
+ }
+
+ console.log("AWSCShortbread successfully loaded...!!!");
+ } else {
+ console.error("AWSCShortbread failed to load!!!");
+ }
+}
+
// Functions to run after the DOM loads.
function runAfterDOMLoads() {
expandSubMenu();
+
makeCodeBlocksScrollable();
setupKeyboardFriendlyNavigation();
+ loadThemeFromLocalStorage();
+ loadShortbread();
}
// Run a function after the DOM loads.
function ready(fn) {
- if (document.readyState !== 'loading') {
+ if (document.readyState !== "loading") {
fn();
} else {
- document.addEventListener('DOMContentLoaded', fn);
+ document.addEventListener("DOMContentLoaded", fn);
}
}
ready(runAfterDOMLoads);
diff --git a/docs/source/_static/shortbreadv1.js b/docs/source/_static/shortbreadv1.js
deleted file mode 100644
index 11b1002075..0000000000
--- a/docs/source/_static/shortbreadv1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! Version: 1.0.14 */
-!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var c=a();for(var t in c)("object"==typeof exports?exports:e)[t]=c[t]}}(window,(function(){return function(e){var a={};function c(t){if(a[t])return a[t].exports;var n=a[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,c),n.l=!0,n.exports}return c.m=e,c.c=a,c.d=function(e,a,t){c.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:t})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,a){if(1&a&&(e=c(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(c.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var n in e)c.d(t,n,function(a){return e[a]}.bind(null,n));return t},c.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(a,"a",a),a},c.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},c.p="",c(c.s=13)}([function(e,a,c){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var a,c=1,t=arguments.length;c0&&s.forEach((function(a){if("string"==typeof a)l.appendChild(t.createTextNode(a));else if("number"==typeof a)l.appendChild(t.createTextNode(s.toString()));else{if(null===a)throw Error("Unsupported child type "+a);e(l,a,t,!0)}})),o?a.appendChild(l):a.insertBefore(l,a.firstChild)}},function(e,a,c){"use strict";var t,n=function(){return void 0===t&&(t=Boolean(window&&document&&document.all&&!window.atob)),t},o=function(){var e={};return function(a){if(void 0===e[a]){var c=document.querySelector(a);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(e){c=null}e[a]=c}return e[a]}}(),i=[];function r(e){for(var a=-1,c=0;c-1?"awsccc-Rtl":"";function b(){return document.querySelector("div[data-id="+r.BANNER_ID+"]")}function f(){return document.querySelector("div[data-id="+r.CUSTOMIZE_ID+"]")}function h(e,a){var c=document.querySelector("label[data-id=awsccc-u-cb-"+e+"-label]"),t=c.classList,n=c.querySelector("input");a?(n.setAttribute("checked",""),t.add("awsccc-u-cb-checkbox-active")):(t.remove("awsccc-u-cb-checkbox-active"),n.removeAttribute("checked")),n.setAttribute("aria-checked",""+a)}var g=function(e){var a=e.event,c=e.category;"checkbox"!==a.target.getAttribute("type")&&"awsccc-cs-s-title"!==a.target.getAttribute("class")||h(c,!p(c))},m=function(a){return function(c,t){var n=b().querySelector("div[data-id=awsccc-cb-tabstart]");document.querySelector("div[data-id="+r.CUSTOMIZE_ID+"]").style.display="none",b().style.display="none",n.setAttribute("tabindex","-1"),e.onSaveConsent(c),document.body.classList.remove("awsccc-cs-modal-open"),e.log("info")(a,{detail:"Save Consent Clicked",source:t,cookie:e.getConsentCookie()})}},k=function(e){"Escape"===e.key&&x()},v=function(){return e.getConsentCookie()||u.DEFAULT_COOKIE},w=function(a){var c;c=v(),i.COOKIE_CATEGORIES.filter((function(e){return e!==i.ESSENTIAL})).forEach((function(e){h(e,c[e])})),f().addEventListener("keydown",k),f().style.display="block",document.body.classList.add("awsccc-cs-modal-open");var t=document.querySelectorAll("div[data-id="+r.TABTRAP_ID+"]");l.convertToArray(t).forEach((function(e,a){0===a&&e.focus({preventScroll:!0}),e.setAttribute("tabindex","0")})),e.log("info")("customizeCookies",{detail:"Customize Consent Clicked",source:a,cookie:e.getConsentCookie()})},x=function(){f().removeEventListener("keydown",k),f().style.display="none",document.body.classList.remove("awsccc-cs-modal-open");var a=f().querySelectorAll("div[data-id="+r.TABTRAP_ID+"]");(l.convertToArray(a).forEach((function(e){e.setAttribute("tabindex","-1")})),"block"===b().style.display)&&b().querySelector("div[data-id=awsccc-cb-tabstart]").focus({preventScroll:!0});e.onModalClose&&e.onModalClose()};return d.default((function(){document.querySelector("#"+r.CONTAINER_ID)||t.render(e.parent||document.body,t.act("div",{id:r.CONTAINER_ID},t.act("div",{id:r.APP_ID,class:c},t.act(n.default,{showConsentSelector:w,handleSaveClick:m("acceptAll"),localizedText:a.consentBanner,hasConsoleNavFooter:e.hasConsoleNavFooter}),t.act(o.default,{consentState:v(),handleSaveClick:m("customize"),handleCheckboxToggle:g,localizedText:a.consentSelector,closeConsentSelector:x,darkModeEnabled:e.hasConsoleNavFooter}))))})),{showConsentSelector:function(e){d.default((function(){w(e)}))},showBanner:function(e){d.default((function(){var a;a=b().querySelector("div[data-id=awsccc-cb-tabstart]"),b().style.display="block",a.setAttribute("tabindex","0"),a.focus({preventScroll:!0}),e()}))}}}a.isChecked=p,a.default={createShortbreadUi:function(e){return b(e)}}},function(e,a,c){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var a,c=1,t=arguments.length;c0)try{var i=JSON.parse(atob(n[n.length-1]));return 1===(t=i).e&&"number"==typeof t.p&&"number"==typeof t.f&&"number"==typeof t.a&&"string"==typeof t.i&&"string"==typeof t.v?{essential:1===(c=i).e,performance:1===c.p,functional:1===c.f,advertising:1===c.a,id:c.i,version:c.v}:void o("getCookie",{detail:"Cookie format is not valid",cookie:i})}catch(e){return void o("getCookie",{detail:"Error parsing cookie",cookie:n[n.length-1]})}}function r(e){document.cookie=e}a.getConsentCookie=function(e,a){void 0===e&&(e=function(){return document.cookie});var c=i(e(),a);if(c)return{essential:c.essential,performance:c.performance,functional:c.functional,advertising:c.advertising}},a.setConsentCookie=function(e,a,c,s,l,u,d,p){void 0===a&&(a=o.DEFAULT_DOMAIN),void 0===c&&(c=o.DEFAULT_COOKIE_AGE),void 0===s&&(s=n.default),void 0===l&&(l=r);var b,f=function(e){void 0===e&&(e=function(){return document.cookie});var a=i(e());if(a&&a.id)return a.id}()||s(u,d,p),h=t(t({},e),{id:f,version:o.COOKIE_VERSION}),g={e:(b=h).essential?1:0,p:b.performance?1:0,f:b.functional?1:0,a:b.advertising?1:0,i:b.id,v:b.version};return l("awsccc="+btoa(JSON.stringify(g))+"; domain="+a+"; path=/; max-age="+c+"; secure=true; SameSite=Lax"),h}},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t=c(46);a.default=function(e,a,c){void 0===a&&(a=t.v4),void 0===c&&(c=function(){return"ts-"+Date.now().toString()});var n=e?e("error"):function(){};try{return a()}catch(e){return n("uuid",{detail:"Error generating UUID",errorMessage:e.message||""}),c()}}},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.queryGeolocationByHttpGetRequest=a.timestampUrl=a.QUERY_PARAM_KEY=a.DEFAULT_CONSOLE_INTEGRATION_GEOLOCATION_URL=a.DEFAULT_GEOLOCATION_URL=void 0;var t=c(12);a.DEFAULT_GEOLOCATION_URL="https://prod.tools.shortbread.aws.dev/1x1.png",a.DEFAULT_CONSOLE_INTEGRATION_GEOLOCATION_URL="https://prod.tools.shortbread.analytics.console.aws.a2z.com/ping",a.QUERY_PARAM_KEY="awsccc",a.timestampUrl=function(e){if(-1!==e.indexOf("?")){var c=e.split("?");e=c[0]+"?"+a.QUERY_PARAM_KEY+"="+Date.now()+"&"+c[1]}else{if(-1===e.indexOf("#"))return e+"?"+a.QUERY_PARAM_KEY+"="+Date.now();c=e.split("#");e=c[0]+"?"+a.QUERY_PARAM_KEY+"="+Date.now()+"#"+c[1]}return e},a.queryGeolocationByHttpGetRequest=function(e,c,n,o){function i(e,a,t,n,o){e("info")("geolocationLatency",{metric:a,region:t,detail:n,url:c,status:o})}return void 0===e&&(e=!1),void 0===c&&(c=a.DEFAULT_GEOLOCATION_URL),void 0===n&&(n=5e3),void 0===o&&(o=t.DEFAULT_LOGGER),function(r,s){void 0===s&&(s=o||t.DEFAULT_LOGGER);var l=Date.now(),u=new XMLHttpRequest,d="EU",p=200;e&&u.overrideMimeType("application/json"),u.addEventListener("load",(function(){if(p=u.status,e&&304!==p)try{var a=JSON.parse(u.response);403===(p=a.status)&&(d="NON-EU")}catch(e){s("error")("geolocationResponseError",{url:c,detail:"Failed to Parse the Received Geolocation Response"})}else d=403===p?"NON-EU":"EU";i(s,Date.now()-l,d,"Geolocation Response Received",p),r(d)})),u.addEventListener("timeout",(function(){r("EU");var e="Geolocation Request Timed out";i(s,n,"EU",e,u.status),s("error")("geolocationRequestTimeout",{url:c,timeoutSetting:n,detail:e})})),u.open("GET",a.timestampUrl(c)),u.timeout=n,u.send()}},a.default=a.queryGeolocationByHttpGetRequest},function(e,a,c){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var a,c=1,t=arguments.length;cspan{color:#687078}",""]),e.exports=a},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t=c(0),n=c(6),o=c(3);c(35);var i=c(5);a.default=function(e){var a=e.handleSaveClick,c=e.handleCancelClick,r=e.localizedText;return t.act("div",{id:"awsccc-cs-f-c"},t.act(n.default,{dataId:o.CUSTOMIZE_CANCEL_BTN_ID,variant:"secondary",events:{onclick:c},text:r["button-cancel"],props:{"aria-label":r["button-cancel-aria-label"]}}),t.act(n.default,{dataId:o.CUSTOMIZE_SAVE_BTN_ID,variant:"primary",events:{onclick:function(){a({essential:!0,performance:i.isChecked("performance"),functional:i.isChecked("functional"),advertising:i.isChecked("advertising")},"preferencesModal")}},text:r["button-save"],props:{"aria-label":r["button-save-aria-label"]}}))}},function(e,a,c){var t=c(1),n=c(36);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl #awsccc-cs-f-c{text-align:left}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c{text-decoration:none;padding:10px 20px;text-align:right;border-top:1px solid #eaeded;display:flex;justify-content:center;flex-wrap:wrap}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn{margin-left:10px}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary{background-color:#fff;border-color:#fff;color:#545b64;margin-bottom:6px}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary:hover{color:#000;background-color:#fafafa}@media screen and (min-width: 700px){#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c{display:block}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary{margin-bottom:0}}",""]),e.exports=a},function(e,a,c){var t=c(1),n=c(38);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-container{display:flex;align-items:center;justify-items:center;bottom:0;left:0;right:0;top:0;position:fixed;z-index:10002;outline:0;overflow:hidden}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-container-inner{max-width:820px;box-sizing:border-box;outline:none;margin:10px auto;width:calc(100vw - 20px)}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-content{background-color:#fff;border-radius:0;box-sizing:border-box;margin-bottom:0;word-wrap:break-word;box-shadow:0 1px 1px 0 rgba(0,28,36,.3),1px 1px 1px 0 rgba(0,28,36,.15),-1px 1px 1px 0 rgba(0,28,36,.15)}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-header{background-color:#fafafa;padding:19px 20px;border-bottom:1px solid #eaeded}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-title{min-width:0;word-break:break-word;color:#16191f;flex:auto}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-title h2{font-size:18px;font-weight:700;margin:0}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalBody{overflow-y:auto;max-height:calc(100vh - 200px);padding:19px 20px}@media screen and (max-width: 480px){#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalBody{max-height:calc(100vh - 275px)}}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalOverlay{background-color:rgba(242,243,243,.9);position:fixed;z-index:10001;right:0;top:0;bottom:0;left:0}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalOverlay{background-color:rgba(22,25,31,.8)}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-header{background-color:#21252c;border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-title h2{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody #awsccc-cs-i-container{border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody #awsccc-cs-i-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container{border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container h3{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container p{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container rect{fill:#1a2029}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-cs-s-text{border-top:0}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awscc-u-cb-checkbox-poly-line{display:none}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-u-cb-checkbox-active .awscc-u-cb-checkbox-poly-line{display:inline-block}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-u-cb-checkbox-active .awscc-u-cb-checkbox-rect{fill:#00a1c9;stroke:#00a1c9}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c{border-top:1px solid #414750;background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary span{color:#d5dbdb}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary:hover{background-color:#21252c}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-primary span{color:#16191f}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span a{display:inline-block}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span a span{color:#44b9d6}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container path{color:#44b9d6}div[data-id=awsccc-cs]{display:none}",""]),e.exports=a},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t=c(0);c(40),a.default=function(){return t.act("div",{class:"awsccc-u-i-open-c"},t.act("svg",{class:"awsccc-u-i-open",viewBox:"0 0 16 16",focusable:"false","aria-hidden":"true"},t.act("path",{class:"awsccc-stroke-linecap-square",d:"M10 2h4v4"}),t.act("path",{d:"M6 10l8-8"}),t.act("path",{class:"awsccc-stroke-linejoin-round",d:"M14 9.048V14H2V2h5"})))}},function(e,a,c){var t=c(1),n=c(41);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c{display:inline-block;vertical-align:middle;line-height:1em;padding-left:.3em}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg{stroke-width:2px;pointer-events:none;fill:none;padding-bottom:1px;height:10px;width:10px}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg .awsccc-stroke-linecap-square{stroke-linecap:square}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg .awsccc-stroke-linejoin-round{stroke-linejoin:round}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg path{stroke:currentColor}",""]),e.exports=a},function(e,a,c){var t=c(1),n=c(43);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,'#awsccc-sb-ux-c #awsccc-sb-a *{font-family:"Amazon Ember","HelveticaNeue","Helvetica Neue","Amazon Ember",Roboto,"Roboto-Regular","Amazon Ember",Helvetica,Arial,sans-serif;font-size:14px;line-height:21px;color:#16191f;text-align:left;background:none;border:0}#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl *{direction:rtl;text-align:right}#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl .awsccc-cs-s-container .awsccc-cs-s-action{right:auto;left:20px}@media screen and (min-width: 1020px){#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl #awsccc-cb-c #awsccc-cb-title{padding-right:40px}}#awsccc-sb-ux-c #awsccc-sb-a a,#awsccc-sb-ux-c #awsccc-sb-a a>span,#awsccc-sb-ux-c #awsccc-sb-a a svg path{color:#0073bb;text-decoration:none}#awsccc-sb-ux-c #awsccc-sb-a a:hover,#awsccc-sb-ux-c #awsccc-sb-a a>span:hover,#awsccc-sb-ux-c #awsccc-sb-a a svg path:hover{color:#0073bb;text-decoration:underline}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-tab-helper{outline:0;text-decoration:none}.awsccc-cs-modal-open{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}',""]),e.exports=a},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.convertToArray=a.update=void 0,a.update=function(e,a){return Object.keys(a).forEach((function(c){e[c]=a[c]})),e},a.convertToArray=function(e){return Array.prototype.slice.call(e)}},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.default=function(e,a,c){function t(){a.removeEventListener("DOMContentLoaded",t),c.removeEventListener("load",t),e()}void 0===a&&(a=document),void 0===c&&(c=window),"loading"!==a.readyState?c.setTimeout(e):(a.addEventListener("DOMContentLoaded",t),c.addEventListener("load",t))}},function(e,a,c){"use strict";c.r(a),c.d(a,"v1",(function(){return b})),c.d(a,"v3",(function(){return y})),c.d(a,"v4",(function(){return C})),c.d(a,"v5",(function(){return E}));var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),n=new Uint8Array(16);function o(){if(!t)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(n)}for(var i=[],r=0;r<256;++r)i.push((r+256).toString(16).substr(1));var s,l,u=function(e,a){var c=a||0,t=i;return(t[e[c+0]]+t[e[c+1]]+t[e[c+2]]+t[e[c+3]]+"-"+t[e[c+4]]+t[e[c+5]]+"-"+t[e[c+6]]+t[e[c+7]]+"-"+t[e[c+8]]+t[e[c+9]]+"-"+t[e[c+10]]+t[e[c+11]]+t[e[c+12]]+t[e[c+13]]+t[e[c+14]]+t[e[c+15]]).toLowerCase()},d=0,p=0;var b=function(e,a,c){var t=a&&c||0,n=a||[],i=(e=e||{}).node||s,r=void 0!==e.clockseq?e.clockseq:l;if(null==i||null==r){var b=e.random||(e.rng||o)();null==i&&(i=s=[1|b[0],b[1],b[2],b[3],b[4],b[5]]),null==r&&(r=l=16383&(b[6]<<8|b[7]))}var f=void 0!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:p+1,g=f-d+(h-p)/1e4;if(g<0&&void 0===e.clockseq&&(r=r+1&16383),(g<0||f>d)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=f,p=h,l=r;var m=(1e4*(268435455&(f+=122192928e5))+h)%4294967296;n[t++]=m>>>24&255,n[t++]=m>>>16&255,n[t++]=m>>>8&255,n[t++]=255&m;var k=f/4294967296*1e4&268435455;n[t++]=k>>>8&255,n[t++]=255&k,n[t++]=k>>>24&15|16,n[t++]=k>>>16&255,n[t++]=r>>>8|128,n[t++]=255&r;for(var v=0;v<6;++v)n[t+v]=i[v];return a||u(n)};var f=function(e,a,c){function t(e,t,n,o){var i=n&&o||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var a=[],c=0;c>>9<<4)+1}function g(e,a){var c=(65535&e)+(65535&a);return(e>>16)+(a>>16)+(c>>16)<<16|65535&c}function m(e,a,c,t,n,o){return g((i=g(g(a,e),g(t,o)))<<(r=n)|i>>>32-r,c);var i,r}function k(e,a,c,t,n,o,i){return m(a&c|~a&t,e,a,n,o,i)}function v(e,a,c,t,n,o,i){return m(a&t|c&~t,e,a,n,o,i)}function w(e,a,c,t,n,o,i){return m(a^c^t,e,a,n,o,i)}function x(e,a,c,t,n,o,i){return m(c^(a|~t),e,a,n,o,i)}var y=f("v3",48,(function(e){if("string"==typeof e){var a=unescape(encodeURIComponent(e));e=new Uint8Array(a.length);for(var c=0;c>5]>>>t%32&255,o=parseInt("0123456789abcdef".charAt(n>>>4&15)+"0123456789abcdef".charAt(15&n),16);a.push(o)}return a}(function(e,a){e[a>>5]|=128<>5]|=(255&e[t/8])<>>32-a}var E=f("v5",80,(function(e){var a=[1518500249,1859775393,2400959708,3395469782],c=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=[];for(var n=0;n>>0;v=k,k=m,m=_(g,30)>>>0,g=h,h=y}c[0]=c[0]+h>>>0,c[1]=c[1]+g>>>0,c[2]=c[2]+m>>>0,c[3]=c[3]+k>>>0,c[4]=c[4]+v>>>0}return[c[0]>>24&255,c[0]>>16&255,c[0]>>8&255,255&c[0],c[1]>>24&255,c[1]>>16&255,c[1]>>8&255,255&c[1],c[2]>>24&255,c[2]>>16&255,c[2]>>8&255,255&c[2],c[3]>>24&255,c[3]>>16&255,c[3]>>8&255,255&c[3],c[4]>>24&255,c[4]>>16&255,c[4]>>8&255,255&c[4]]}))}])}));
-//# sourceMappingURL=index.js.map
diff --git a/docs/source/_templates/layout.html b/docs/source/_templates/layout.html
new file mode 100644
index 0000000000..62d7f8ca84
--- /dev/null
+++ b/docs/source/_templates/layout.html
@@ -0,0 +1,61 @@
+
\ No newline at end of file
diff --git a/docs/source/_templates/page.html b/docs/source/_templates/page.html
index 68cc2615d4..f26954f9de 100644
--- a/docs/source/_templates/page.html
+++ b/docs/source/_templates/page.html
@@ -9,14 +9,17 @@
furnished to do so, subject to the following conditions:
#}
-{%- extends "!page.html" %}
+{% extends "!page.html" %}
+
+{%- block extrahead %}
+
+
+{% endblock %}
+
{% block body -%}
-
-{% include "partials/icons.html" %}
-