diff --git a/_vendor/github.com/linode/linode-docs-theme/config.toml b/_vendor/github.com/linode/linode-docs-theme/config.toml
index 41f8c096dca..507eb117fe4 100644
--- a/_vendor/github.com/linode/linode-docs-theme/config.toml
+++ b/_vendor/github.com/linode/linode-docs-theme/config.toml
@@ -176,31 +176,31 @@
path = "github.com/linode/linode-website-partials"
[[module.imports.mounts]]
- source = "header.html"
+ source = "dist/wordpress/header.html"
target = "layouts/partials/linode-header.html"
[[module.imports.mounts]]
- source = "footer.html"
+ source = "dist/wordpress/footer.html"
target = "layouts/partials/linode-footer.html"
[[module.imports.mounts]]
- source = "header.css"
+ source = "dist/css/header.css"
target = "assets/linode/header.css"
[[module.imports.mounts]]
- source = "footer.css"
+ source = "dist/css/footer.css"
target = "assets/linode/footer.css"
[[module.imports.mounts]]
- source = "header.js"
+ source = "dist/js/header.js"
target = "assets/linode/header.js"
[[module.imports.mounts]]
- source = "footer-inline.js"
+ source = "dist/js/footer-inline.js"
target = "assets/linode/footer-inline.js"
[[module.imports.mounts]]
- source = "attribution-inline.js"
+ source = "dist/js/attribution-inline.js"
target = "assets/linode/attribution-inline.js"
# JS components packaged as Hugo Modules.
diff --git a/_vendor/github.com/linode/linode-website-partials/attribution-inline.js b/_vendor/github.com/linode/linode-website-partials/attribution-inline.js
deleted file mode 100644
index 6871b55a0b7..00000000000
--- a/_vendor/github.com/linode/linode-website-partials/attribution-inline.js
+++ /dev/null
@@ -1,59 +0,0 @@
-(() => {
- // src/js/attribution-inline.js
- function getCookie(e, o) {
- return null == (o = RegExp("(^|; )" + encodeURIComponent(e) + "=([^;]*)").exec(document.cookie)) ? void 0 : o[2] ? o[2] : void 0;
- }
- function setCookie(firstLast, cookieName, cookieValue) {
- var cS = "; max-age=31536000; domain=.linode.com; path=/";
- document.cookie = firstLast + cookieName + "=" + cookieValue + cS;
- }
- var parseQueryString = function() {
- var e = window.location.search.toLowerCase(), r = {};
- return e.replace(new RegExp("([^?=&]+)(=([^&]*))?", "g"), function(e2, n, a, o) {
- r[n] = o;
- }), r;
- };
- var pFA = parseQueryString();
- var aV = {
- FullQuery: window.location.search || getCookie("atr_lastFullQuery") || "",
- GA_ID: getCookie("_ga") || getCookie("atr_lastGA_ID") || getCookie("atr_firstGA_ID") || "",
- GCLID: getCookie("_gcl_aw") || getCookie("atr_lastGCLID") || getCookie("atr_firstGCLID") || "",
- Custom1: "true",
- Custom5: getCookie("_fbc") || getCookie("atr_lastCustom5") || getCookie("atr_firstCustom5") || "",
- Custom4: getCookie("_fbp") || getCookie("atr_lastCustom4") || getCookie("atr_firstCustom4") || "",
- Custom3: window.location.pathname || "",
- Path: window.location.pathname || "",
- UTM_Campaign: pFA["utm_campaign"] || getCookie("atr_lastUTM_Campaign") || getCookie("atr_firstUTM_Campaign") || "",
- UTM_Source: pFA["utm_source"] || getCookie("atr_lastUTM_Source") || getCookie("atr_firstUTM_Source") || "",
- UTM_Medium: pFA["utm_medium"] || getCookie("atr_lastUTM_Medium") || getCookie("atr_firstUTM_Medium") || "",
- UTM_Content: pFA["utm_content"] || getCookie("atr_lastUTM_Content") || getCookie("atr_firstUTM_Content") || "",
- UTM_Term: pFA["utm_term"] || getCookie("atr_lastUTM_Term") || getCookie("atr_firstUTM_Term") || ""
- };
- var aVEvery = ["Custom1", "Custom3", "Custom4", "Custom5", "GA_ID", "GCLID"];
- if (document.cookie.indexOf("atr1_sessionValsStores=") == -1 && (window.location.search.indexOf("utm") != -1 || window.location.search.indexOf("gclid") != -1 || document.cookie.indexOf("_fbp=") != -1 || document.cookie.indexOf("_fbc=") != -1 || document.cookie.indexOf("_gcl_aw=") != -1)) {
- document.cookie = "atr1_sessionValsStores=true; expires=0; domain=.linode.com; path=/";
- if (document.cookie.indexOf("atr1_firstSource=") == -1) {
- for (key in aV) {
- if (aV.hasOwnProperty(key)) {
- setCookie("atr_first", key, aV[key]);
- }
- }
- setCookie("atr1_first", "Source", "true");
- document.cookie = "atr1_isFirst=true; expires=0; domain=.linode.com; path=/";
- }
- for (key in aV) {
- if (aV.hasOwnProperty(key)) {
- setCookie("atr_last", key, aV[key]);
- }
- }
- } else {
- for (i = 0; i < aVEvery.length; i++) {
- if (document.cookie.indexOf("atr1_firstSource=") == -1 || document.cookie.indexOf("atr1_isFirst=") != -1) {
- setCookie("atr_first", aVEvery[i], aV[aVEvery[i]]);
- }
- setCookie("atr_last", aVEvery[i], aV[aVEvery[i]]);
- }
- }
- var key;
- var i;
-})();
diff --git a/_vendor/github.com/linode/linode-website-partials/dist/css/footer.css b/_vendor/github.com/linode/linode-website-partials/dist/css/footer.css
new file mode 100644
index 00000000000..041eb452fe8
--- /dev/null
+++ b/_vendor/github.com/linode/linode-website-partials/dist/css/footer.css
@@ -0,0 +1 @@
+#ot-sdk-btn-floating{animation:none!important;left:1%!important;opacity:1!important}.c-site-footer{background-color:#fff;color:#32363b;font-family:Source Sans Pro,sans-serif;font-size:1.125rem;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;letter-spacing:0;line-height:1.3333333333}.c-site-footer a{color:inherit}.c-site-footer__primary{background-color:#fff;border-top:1px solid var(--divider-color);color:#32363b;font-size:.875rem;line-height:1.2857142857;margin-top:-1px;padding-bottom:56px;padding-top:24px}.c-site-footer__primary .o-layout__col{display:flex;flex-direction:column}.c-site-footer__primary .o-menu__heading{color:#000;font-size:.875rem;font-weight:600;line-height:1.2857142857;margin:8px 0 20px;text-transform:uppercase}.c-site-footer__primary .o-menu__list{gap:10px}@media (min-width: 48em){.c-site-footer__primary .o-layout__col--2{grid-column:span 2}.c-site-footer__primary .o-layout__col--2 .o-menu__list{-moz-column-count:2;column-count:2;-moz-column-gap:16px;column-gap:16px;display:block}.c-site-footer__primary .o-layout__col--2 .o-menu__item{margin-bottom:10px}}.c-site-footer__primary .o-menu__link:hover{text-decoration:underline}.c-site-footer__primary .o-menu__link:hover *{text-decoration:inherit}.c-site-footer__primary .o-layout__colset--a{grid-template-columns:1fr 1fr 1fr 1fr 1fr}@media (min-width: 48em) and (max-width: 61.99em){.c-site-footer__primary .o-layout__colset--a{grid-template-columns:1fr 1fr 1fr}}@media (max-width: 47.99em){.c-site-footer__primary .o-layout__colset--a{grid-template-columns:1fr}}.c-site-footer__primary .o-layout__colset--b{padding-inline:8px;padding-top:16px}.c-site-footer__primary .o-layout__colset--b .o-layout__col{border-bottom:1px solid black;justify-content:center}.c-site-footer__primary .o-layout__colset--b .o-layout__col:first-child .o-layout__module{margin-left:0}.c-site-footer__primary .o-layout__colset--b .o-layout__col:last-child .o-layout__module{margin-right:0}.c-site-footer__primary .o-layout__colset--b .o-layout__col:last-child{align-items:flex-end}@media (max-width: 47.99em){.c-site-footer__primary .o-layout__colset--b .o-layout__module{margin-block:8px}.c-site-footer__primary .o-layout__colset--b .c-social{transform:translateY(6px)}}.c-site-footer__primary .o-layout__colset--c{color:#000;font-weight:600}@media (min-width: 48em){.c-site-footer__primary .o-layout__colset--c .o-menu__list{gap:36px}}@media (max-width: 47.99em){.c-site-footer__primary .o-layout__colset--c .o-layout__module{margin-top:32px}.c-site-footer__primary .o-layout__colset--c .o-menu__list{align-items:flex-start;flex-direction:column}}.c-site-footer__primary .c-consent{display:flex}.c-site-footer__primary .c-social{display:flex;gap:12px}.c-site-footer__primary .c-social a{display:inline-flex;padding:2px}.c-site-footer__primary .c-social svg.o-icon{color:#32363b;height:20px;width:20px}.c-site-footer__primary .c-identity__logo{padding:0}
diff --git a/_vendor/github.com/linode/linode-website-partials/dist/css/header.css b/_vendor/github.com/linode/linode-website-partials/dist/css/header.css
new file mode 100644
index 00000000000..383dea53252
--- /dev/null
+++ b/_vendor/github.com/linode/linode-website-partials/dist/css/header.css
@@ -0,0 +1 @@
+@font-face{font-display:swap;font-family:Oswald;font-style:normal;font-weight:300;src:local(""),url(https://assets.linode.com/fonts/oswald-v35-latin-300.woff2) format("woff2"),url(https://assets.linode.com/fonts/oswald-v35-latin-300.woff) format("woff")}@font-face{font-display:swap;font-family:Oswald;font-style:normal;font-weight:400;src:local(""),url(https://assets.linode.com/fonts/oswald-v35-latin-regular.woff2) format("woff2"),url(https://assets.linode.com/fonts/oswald-v35-latin-regular.woff) format("woff")}@font-face{font-display:swap;font-family:Source Sans Pro;font-style:normal;font-weight:400;src:local(""),url(https://assets.linode.com/fonts/source-sans-pro-v14-latin-regular.woff2) format("woff2"),url(https://assets.linode.com/fonts/source-sans-pro-v14-latin-regular.woff) format("woff")}@font-face{font-display:swap;font-family:Source Sans Pro;font-style:normal;font-weight:600;src:local(""),url(https://assets.linode.com/fonts/source-sans-pro-v14-latin-600.woff2) format("woff2"),url(https://assets.linode.com/fonts/source-sans-pro-v14-latin-600.woff) format("woff")}:root{--site-top-offset: 0px;--site-banner-height: 0px;--site-topbar-height: 37px;--site-header-height: 76px}@media (max-width: 61.99em){:root{--site-banner-height: 0px}}@media (max-width: 61.99em){:root{--site-topbar-height: 0px}}@media (max-width: 47.99em){:root{--site-header-height: 81px}}.has-banner{--site-banner-height: 50px}.o-layout__row{padding:16px}@media (min-width: 48em) and (max-width: 61.99em){.o-layout__row{padding-left:12px;padding-right:12px}}@media (max-width: 47.99em){.o-layout__row{padding-left:6px;padding-right:6px}}.o-layout__colset{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));margin-left:auto;margin-right:auto;max-width:1296px}.o-layout__module{margin:16px 8px}.o-layout__col{max-width:100%}.o-menu__list{display:flex;flex-direction:column;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.o-menu__item{display:flex;flex-direction:column;margin:0}.o-menu__link{align-items:center;background-color:unset;border:unset;color:inherit;cursor:pointer;display:flex;flex:1;font-family:unset;font-size:unset;gap:4px;line-height:unset;order:0;padding:0;text-align:left;text-decoration:none}.o-menu__link:hover{background-color:unset;color:inherit}.o-menu__toggle:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(50,54,59)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:12px;margin:2px 0 0;width:8px}.o-menu__toggle.active:after{transform:scaleY(-1)}.o-menu__icon{height:1em;width:1em}.o-menu__title{display:inline-block;flex:1}.o-menu--h .o-menu__list{align-items:center;flex-direction:row;flex-wrap:nowrap}.o-menu--h .o-menu__link{align-items:center;display:flex}.o-menu__item--button .o-menu__link{border:2px solid;border-radius:4px;cursor:pointer;padding-inline:1em;text-align:center;text-decoration:none;white-space:nowrap;width:auto}.o-menu__item--button .o-menu__link,.o-menu__item--button .o-menu__link:visited{background-color:var(--button-background-color, #017ac6);border-color:var(--button-border-color, #017ac6);color:var(--button-text-color, #ffffff)}.o-menu__item--button .o-menu__link:hover{background-color:var(--button-background-color--hover, #32363b);border-color:var(--button-border-color--hover, #32363b);color:var(--button-text-color--hover, #ffffff)}.o-menu__item--button .o-menu__link *{color:inherit!important}.o-menu__parent .o-menu__child{display:none}.o-menu__parent.active>.o-menu__child{display:flex}.c-weglot-nav{border-left:1px solid #ededf4}.c-weglot-nav .country-selector{position:relative}.c-weglot-nav .country-selector:focus{outline:none}.c-weglot-nav a,.c-weglot-nav span{all:unset}.c-weglot-nav a,.c-weglot-nav span{display:block;outline:none}.c-weglot-nav a:hover,.c-weglot-nav span:hover{color:#017ac6}.c-weglot-nav a{cursor:pointer;-webkit-touch-callout:none}.c-weglot-nav .wgcurrent{align-items:center;border:none;border-bottom:2px solid transparent;border-top:2px solid transparent;cursor:pointer;display:flex;gap:8px}.c-weglot-nav .wgcurrent:hover{border-bottom-color:#017ac6}.c-weglot-nav .wgcurrent:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(50,54,59)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:12px;margin-top:2px;width:8px}.c-weglot-nav ul{background:#fff;border:1px solid #ededf4;display:none;left:auto;list-style:none;margin:0;min-width:100%;padding:0;position:absolute;right:0;top:initial}.c-weglot-nav ul li{margin:0;padding:0;width:100%}.c-weglot-nav ul a{padding:8px 12px 8px 24px}.c-weglot-nav ul a:focus-visible{outline-color:Highlight;outline-color:-webkit-focus-ring-color;outline-offset:1px;outline-style:auto;outline-width:1px}.c-weglot-nav .country-selector:not(.closed) ul{display:block}.c-weglot-nav .country-selector .wgcurrent{border:none!important;border-bottom:2px solid transparent!important;border-top:2px solid transparent!important}.c-weglot-nav .country-selector .wgcurrent:hover{border-bottom-color:#017ac6!important}.c-weglot-nav .country-selector .wgcurrent a{color:inherit!important;height:auto!important;padding-right:0!important}.c-weglot-nav .country-selector .wgcurrent:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(50,54,59)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E")!important;background-size:contain!important;height:12px!important;position:static!important;transform:none!important;width:8px!important}body.om-position-floating-top{--site-top-offset: 60px}.c-identity{--gap: 10px;align-items:center;display:flex;gap:var(--gap)}.c-identity__link{display:block}.c-identity__image{display:block;width:auto}.c-identity__logomark{border-right:1px solid #e2e5e6;padding-right:var(--gap)}@media (max-width: 47.99em){.c-identity__logomark img{height:40px}.c-identity__text img{height:20px}}@media (min-width: 48em){.c-identity{--gap: 12px}.c-identity__logo{padding-block:2px 5px}.c-identity__text{padding-block:17px 15px}}.c-site-header{color:#32363b;font-family:Source Sans Pro,sans-serif;font-size:1.125rem;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:400;letter-spacing:0;line-height:1.3333333333;overflow:visible}.c-site-header a,.c-site-header a:where(:link,:visited,:hover,:active,:focus){color:inherit;text-decoration:none}.c-site-header__banner,.c-site-header__topbar{z-index:1000}.c-site-header__primary{z-index:999}.c-site-header__primary{background-color:#fff;border-bottom:1px solid #ededf4;font-family:Source Sans Pro,sans-serif;font-size:1rem;letter-spacing:0;line-height:1.25;overflow:visible;padding-bottom:0;padding-top:0;position:relative}.c-site-header__primary .o-layout__colset{align-items:center;display:flex;flex-wrap:nowrap;height:calc(var(--site-header-height) - 1px);max-width:none}.c-site-header__primary .o-layout__col{flex:none}.c-site-header__primary .o-layout__col:nth-child(2){flex:1}.c-site-header__primary .o-layout__module{margin-block:0}.c-site-header__primary .c-main-menu nav{margin-right:-10px}.c-site-header__primary .o-menu__list{justify-content:flex-end}@media (max-width: 61.99em){.c-site-header__primary .o-menu__item{display:none}}.c-site-header__primary .o-menu__link{align-items:center;display:flex;font-weight:600;margin:0 10px;position:relative}.c-site-header__primary .o-menu__title{border:0 solid transparent;border-width:2px 0;font-weight:600;padding:10px 0;white-space:nowrap}.c-site-header__primary .o-menu__link.current .o-menu__title,.c-site-header__primary .o-menu__link:hover .o-menu__title,.c-site-header__primary .o-menu__link:focus .o-menu__title{border-bottom-color:#017ac6}.c-site-header__primary .o-menu__item--button .o-menu__link{border-width:0px;display:inline-block;font-size:.8125rem;line-height:1.538461538;padding-inline:20px}.c-site-header__primary .o-menu__item--button .o-menu__title{border-width:0}.c-site-header__primary .o-menu__item--mobile{display:none}.c-site-header__primary .o-menu__item--mobile .o-menu__link{gap:0}.c-site-header__primary .o-menu__item--mobile .o-menu__link:before,.c-site-header__primary .o-menu__item--mobile .o-menu__link:after{background-position:center;background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;margin:0}.c-site-header__primary .o-menu__item--mobile .o-menu__link:before{background-image:url("data:image/svg+xml;utf8,");height:24px;visibility:visible;width:24px}.c-site-header__primary .o-menu__item--mobile .o-menu__link:after{background-image:url("data:image/svg+xml;utf8,");height:0;visibility:hidden;width:0}.c-site-header__primary .o-menu__item--mobile .o-menu__link.active:before{height:0;visibility:hidden;width:0}.c-site-header__primary .o-menu__item--mobile .o-menu__link.active:after{height:24px;visibility:visible;width:24px}.c-site-header__primary .o-menu__item--mobile .o-menu__title{border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}@media (max-width: 61.99em){.c-site-header__primary .o-menu__item--mobile{display:initial}}.c-site-header__primary .c-weglot-nav{font-family:Source Sans Pro,sans-serif;font-size:1rem;letter-spacing:0;line-height:1.25;margin-left:0;min-width:87.25px;padding-left:8px}.c-site-header__primary .c-weglot-nav .country-selector{margin-right:-10px}.c-site-header__primary .c-weglot-nav .wgcurrent{margin:0 10px}.c-site-header__primary .c-weglot-nav .wgcurrent a,.c-site-header__primary .c-weglot-nav .wgcurrent span{padding:10px 0}.c-submenu{--max-submenu-padding: calc( var( --site-top-offset ) + var( --site-banner-height ) + var( --site-topbar-height ) + var( --site-header-height ) );--scroll-adjusted-padding: calc( var( --max-submenu-padding ) - var( --site-scroll-y, 0px ) );--min-submenu-padding: calc( var( --site-top-offset ) + var( --site-header-height ) );background-color:#fff;display:initial;left:-9999px;opacity:0;overflow-x:hidden;overflow-y:scroll;padding-top:clamp(var(--min-submenu-padding),var(--scroll-adjusted-padding),var(--max-submenu-padding));position:absolute;top:-9999px;transform:translateY(-100px);transition:opacity .175s ease-out,transform .25s ease-out;will-change:position,transform}@media (max-width: 61.99em){.c-submenu{display:none}}.c-submenu.active{inset:0;opacity:1;position:fixed;transform:translateY(0)}.c-submenu:focus-within{inset:0;opacity:1;position:fixed;transform:translateY(0)}.c-submenu:after{border-top:1px solid var(--divider-color);content:"";display:block;height:0;margin:0 -16px}.c-submenu .o-layout__colset{justify-content:center}.c-submenu .o-layout__col{border-left:1px solid #ededf4;grid-row:2/-1;padding:16px}.c-submenu .o-layout__col:first-child{border-left:none;padding-left:0}.c-submenu .o-layout__module:where(:not(:first-child)){margin-top:32px}.c-submenu h6{color:#999b9d;font-family:Source Sans Pro,sans-serif;font-size:.75rem;letter-spacing:0;letter-spacing:2px;line-height:1.3333333333;margin:16px 0;text-transform:uppercase}.c-submenu a.current,.c-submenu a:hover{color:#017ac6}.c-submenu .o-menu__item{clear:both}.c-submenu .o-menu__item:where(:not(:first-child)){margin-top:8px}.c-submenu .o-menu__title{display:block}.c-submenu .o-menu__title .icon{float:left;height:48px;margin-right:16px;overflow:clip;width:48px}.c-submenu .o-menu__title .body{display:block;overflow:clip}.c-submenu .o-menu__title .description{display:block}.c-submenu .c-featured{align-items:center;border:var(--c-featured-border-width, 0) solid var(--c-featured-border-color, transparent);border-radius:8px;color:var(--c-featured-color, #32363b);display:flex;max-width:565px;overflow:clip;padding:16px 24px 24px;position:relative}.c-submenu .c-featured__background{height:100%;left:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;position:absolute;top:0;width:100%;z-index:0}.c-submenu .c-featured__image{flex:none;height:auto;max-width:33%;order:1;padding-left:24px;position:relative;width:100%}.c-submenu .c-featured__text{flex:1 1 100%;order:0;position:relative;width:100%}.c-submenu .c-featured__headline{font-family:Source Sans Pro,sans-serif;font-size:2rem;line-height:1.125;margin-bottom:8px}.c-submenu .c-featured__excerpt{font-family:Source Sans Pro,sans-serif;font-size:.875rem;letter-spacing:0;line-height:1.4285714286;margin-bottom:16px}.c-submenu .c-featured__button{background-color:var(--button-background-color, #017ac6);border:0 solid;border-radius:4px;color:var(--button-text-color, #ffffff);cursor:pointer;display:inline-block;font-size:.8125rem;font-weight:600;line-height:1.538461538;padding:10px 20px;text-align:center;white-space:nowrap;width:auto}.c-submenu .c-featured__button:hover{background-color:var(--button-background-color--hover, #32363b);color:var(--button-text-color--hover, #ffffff)}.c-submenu .c-featured:hover,.c-submenu .c-featured:visited{color:var(--c-featured-color, #32363b)}.c-submenu .o-link--arrow{align-items:center;display:flex;font-weight:600}.c-submenu .o-link--arrow:after{content:url("data:image/svg+xml;utf8,");display:inline-block;height:auto;margin-left:.5em;width:7px}.c-submenu--2col .o-layout__colset{grid-template-columns:46% max-content}.c-submenu--3col .o-layout__colset{grid-template-columns:46% 27% 27%}.c-submenu--4col .o-layout__colset{grid-template-columns:46% 18% 18% 18%}.c-submenu--mobile{display:none;grid-template-columns:100%;grid-template-rows:1fr min-content min-content min-content}@media (max-width: 61.99em){.c-submenu--mobile{display:grid}}.c-submenu--mobile:after{display:none}.c-submenu--mobile>.o-layout__module{margin:0}.c-submenu--mobile .o-menu__item{margin:0}.c-submenu--mobile .o-menu__title{flex:1;font-weight:600;line-height:1}.c-submenu--mobile .o-menu__toggle:after{width:24px}.c-submenu--mobile :where(#submenu-mobile-primary).o-layout__module{overflow-x:scroll}.c-submenu--mobile :where(#submenu-mobile-primary) .o-menu__link{line-height:1;padding-block:.5em}.c-submenu--mobile :where(#submenu-mobile-primary) .o-menu__link.active{color:#017ac6}.c-submenu--mobile :where(#submenu-mobile-primary) .o-menu__link.active:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(1,122,198)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E")}.c-submenu--mobile :where(#submenu-mobile-primary .--d0){font-size:1.375rem;height:-moz-min-content;height:min-content;padding-block:6px}.c-submenu--mobile :where(#submenu-mobile-primary .--d0>.o-menu__item)>.o-menu__link{padding-inline:20px}.c-submenu--mobile :where(#submenu-mobile-primary .--d0>.o-menu__item)>.o-menu__list{background-color:#fafafc;padding:6px 0 12px 20px}.c-submenu--mobile :where(#submenu-mobile-primary .--d0>.o-menu__item:last-child)>.o-menu__list{margin-bottom:-6px}.c-submenu--mobile :where(#submenu-mobile-primary .--d1){font-size:1.125rem}.c-submenu--mobile :where(#submenu-mobile-primary .--d1>.o-menu__item)>.o-menu__link{padding-inline:20px}.c-submenu--mobile :where(#submenu-mobile-primary .--d1>.o-menu__item)>.o-menu__list{border-left:2px solid var(--divider-color);margin:6px 0 12px 20px}.c-submenu--mobile :where(#submenu-mobile-primary .--d1>.o-menu__item) .o-menu__title{font-weight:400}.c-submenu--mobile :where(#submenu-mobile-primary .--d2){font-size:1rem}.c-submenu--mobile :where(#submenu-mobile-primary .--d2>.o-menu__item)>.o-menu__link{padding-inline:20px}.c-submenu--mobile :where(#submenu-mobile-quicklinks){font-size:.875rem}.c-submenu--mobile :where(#submenu-mobile-quicklinks).o-layout__module{border-top:1px solid #ededf4;overflow-x:scroll}.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu{width:-moz-min-content;width:min-content}.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__list{align-items:flex-start;gap:24px;padding:18px 20px}.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__link{flex-direction:column;gap:12px;text-align:center}.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__icon{background-color:#ededf4;border-radius:50%;height:64px;padding:16px;width:64px}.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__toggle:after{content:unset}.c-submenu--mobile :where(#submenu-mobile-search).o-layout__module{display:none}.c-submenu--mobile :where(#submenu-mobile-search).active{display:block}.c-submenu--mobile .c-search{align-items:center;display:flex;gap:8px;padding:6px 20px}.c-submenu--mobile .c-search:before{background-image:url("data:image/svg+xml;utf8,");content:"";flex:none;height:16px;vertical-align:middle;width:16px}.c-submenu--mobile .c-search label,.c-submenu--mobile .c-search input[type=submit]{border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.c-submenu--mobile .c-search input[type=search]{-webkit-appearance:none;background-color:transparent;border:0px solid transparent;border-radius:0;color:#32363b;display:block;line-height:1;padding:12px 0;width:100%}.c-submenu--mobile .c-search input[type=search]::-moz-placeholder{color:#32363b}.c-submenu--mobile .c-search input[type=search]::placeholder{color:#32363b}.c-submenu--mobile .c-search input[type=search]:focus{-webkit-appearance:none;border-radius:0;outline:none}.c-submenu--mobile .c-search input[type=search]:focus::-moz-placeholder{color:#8c8e90}.c-submenu--mobile .c-search input[type=search]:focus::placeholder{color:#8c8e90}.c-submenu--mobile :where(#submenu-mobile-signup).o-layout__module{padding:6px 20px 18px}.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__list{flex-direction:row;gap:16px;justify-content:stretch}.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__item{flex:1}.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__item:first-child .o-menu__link,.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__item:first-child .o-menu__link:visited{--button-background-color: #ffffff;--button-text-color: #017ac6}.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__link{line-height:1.2222222222;padding-block:.8888888889em}.c-site-header__topbar{background-color:#fff;border-bottom:1px solid #ededf4;font-size:.8125rem;font-weight:600;line-height:1.2307692308;padding-bottom:0;padding-top:0;position:relative}@media (max-width: 61.99em){.c-site-header__topbar{display:none}}.c-site-header__topbar .o-layout__colset{align-items:center;display:flex;flex-wrap:nowrap;height:calc(var(--site-topbar-height) - 1px);max-width:none}.c-site-header__topbar .o-layout__col{flex:none}.c-site-header__topbar .o-layout__col:nth-child(2){flex:1;justify-content:flex-end}.c-site-header__topbar .o-layout__col:last-child{margin-right:-12px}.c-site-header__topbar .o-layout__module{margin-block:0}.c-site-header__topbar .c-utility-nav{font-size:.8125rem;line-height:1.2307692308}.c-site-header__topbar .o-menu__list{justify-content:flex-end}.c-site-header__topbar .o-menu__link{border:0 solid transparent;border-width:2px 0;margin:0 12px}.c-site-header__topbar .o-menu__link.current,.c-site-header__topbar .o-menu__link:hover{border-bottom-color:#017ac6}.c-site-header__topbar .o-menu__title{font-weight:600;padding:8px 0;white-space:nowrap}.c-site-header__topbar .o-menu__item--search .o-menu__link{overflow:clip;white-space:nowrap;width:16px}.c-site-header__topbar .o-menu__item--search .o-menu__link:before{background-image:url("data:image/svg+xml;utf8,");content:"";flex:none;height:16px;vertical-align:middle;width:16px}.c-site-header__topbar .o-menu__item--search .o-menu__title{border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.c-site-header__topbar .c-weglot-nav{margin-left:-8px}.c-site-header__topbar .c-weglot-nav #weglot_here,.c-site-header__topbar .c-weglot-nav .country-selector{min-width:81px}.c-site-header__topbar .c-weglot-nav .wgcurrent{margin:0 12px}.c-site-header__topbar .c-weglot-nav .wgcurrent a,.c-site-header__topbar .c-weglot-nav .wgcurrent span{padding:8px 0}
diff --git a/_vendor/github.com/linode/linode-website-partials/dist/js/attribution-inline.js b/_vendor/github.com/linode/linode-website-partials/dist/js/attribution-inline.js
new file mode 100644
index 00000000000..e4613a957fb
--- /dev/null
+++ b/_vendor/github.com/linode/linode-website-partials/dist/js/attribution-inline.js
@@ -0,0 +1 @@
+(()=>{function t(_,r){return(r=RegExp("(^|; )"+encodeURIComponent(_)+"=([^;]*)").exec(document.cookie))==null?void 0:r[2]?r[2]:void 0}function i(_,r,u){var c="; max-age=31536000; domain=.linode.com; path=/";document.cookie=_+r+"="+u+c}var m=function(){var _=window.location.search.toLowerCase(),r={};return _.replace(new RegExp("([^?=&]+)(=([^&]*))?","g"),function(u,c,f,d){r[c]=d}),r},n=m(),o={FullQuery:window.location.search||t("atr_lastFullQuery")||"",GA_ID:t("_ga")||t("atr_lastGA_ID")||t("atr_firstGA_ID")||"",GCLID:t("_gcl_aw")||t("atr_lastGCLID")||t("atr_firstGCLID")||"",Custom1:"true",Custom5:t("_fbc")||t("atr_lastCustom5")||t("atr_firstCustom5")||"",Custom4:t("_fbp")||t("atr_lastCustom4")||t("atr_firstCustom4")||"",Custom3:window.location.pathname||"",Path:window.location.pathname||"",UTM_Campaign:n.utm_campaign||t("atr_lastUTM_Campaign")||t("atr_firstUTM_Campaign")||"",UTM_Source:n.utm_source||t("atr_lastUTM_Source")||t("atr_firstUTM_Source")||"",UTM_Medium:n.utm_medium||t("atr_lastUTM_Medium")||t("atr_firstUTM_Medium")||"",UTM_Content:n.utm_content||t("atr_lastUTM_Content")||t("atr_firstUTM_Content")||"",UTM_Term:n.utm_term||t("atr_lastUTM_Term")||t("atr_firstUTM_Term")||""},s=["Custom1","Custom3","Custom4","Custom5","GA_ID","GCLID"];if(document.cookie.indexOf("atr1_sessionValsStores=")==-1&&(window.location.search.indexOf("utm")!=-1||window.location.search.indexOf("gclid")!=-1||document.cookie.indexOf("_fbp=")!=-1||document.cookie.indexOf("_fbc=")!=-1||document.cookie.indexOf("_gcl_aw=")!=-1)){if(document.cookie="atr1_sessionValsStores=true; expires=0; domain=.linode.com; path=/",document.cookie.indexOf("atr1_firstSource=")==-1){for(e in o)o.hasOwnProperty(e)&&i("atr_first",e,o[e]);i("atr1_first","Source","true"),document.cookie="atr1_isFirst=true; expires=0; domain=.linode.com; path=/"}for(e in o)o.hasOwnProperty(e)&&i("atr_last",e,o[e])}else for(a=0;a{function s(e=0){let o=new Date;return o.setTime(o.getTime()+e*24*60*60*1e3),o}function d(e){if(localStorage.getItem(e)===null)return;let o=new Date,t=localStorage.getItem(`${e}_exp`),r=t!==null?new Date(t):o;if(isNaN(r)){localStorage.removeItem(`${e}_exp`);return}o=0&&document.cookie.indexOf(`${e}=${o}`)<0&&!r)return;let l=t!==null?`expires=${t.toUTCString()}; `:"";document.cookie=`${e}=${o}; domain=.linode.com; ${l}path=/; secure; samesite=lax; `}function a(e){let o=new URL(window.location.href),t=o.searchParams.get(e.param);if(e.local&&d(e.local),!t||e.regex&&!t.match(e.regex))return;let r=e.days?s(e.days):null;e.local&&f(e.local,t,r),e.cookie&&p(e.cookie,t,r)}a({param:"r",cookie:"referralCode",days:14,regex:/^[0-9a-f]{40}$/i});var h=Object.fromEntries(document.cookie.split(/\s*;\s*/).map(e=>e.split(/\s*=\s*/))),g=document.getElementsByTagName("body")[0];h.referralCode&&g.classList.add("js-is-referral"),a({param:"promo",cookie:"promoCode",local:"promoCode",days:1,regex:/^[0-9a-z-_]*$/i}),a({param:"promo_length",cookie:"promoLength",local:"promoLength",days:1,regex:/^[0-9]*$/}),a({param:"promo_value",cookie:"promoValue",local:"promoValue",days:1,regex:/^[0-9]*$/});function k(e,o){Array.from(document.querySelectorAll('a[href*="login.linode.com"][href*="/signup"]')).forEach(r=>{let l=new URL(r.href);if(l.searchParams.has("promo")){if(!r.hasAttribute("data-promo-override")||!o)return;l.searchParams.delete("promo")}e&&l.searchParams.set("promo",e),r.href=l.toString()})}function w(e,o){Array.from(document.querySelectorAll('form[action*="login.linode.com/signup"]')).forEach(r=>{let l=new URL(r.action),m=r.querySelector('input[name="promo"]');if(m){if(!m.hasAttribute("data-promo-override")||!o)return;m.remove()}if(e){let i=document.createElement("input");i.setAttribute("type","hidden"),i.setAttribute("name","promo"),i.setAttribute("value",e),r.appendChild(i)}})}function n(e,o){k(e,o),w(e,o)}var c=Object.fromEntries(document.cookie.split(/\s*;\s*/).map(e=>e.split(/\s*=\s*/))),u=localStorage.getItem("promoCode");c.referralCode?n("",!0):u||c.promoCode?n(u||c.promoCode,!0):fetch("https://www.linode.com/wp-json/linode/v1/promo-data").then(e=>{if(!e.ok)throw new Error("");return e}).then(e=>e.json()).then(e=>{e.global&&e.global.promo_code&&n(e.global.promo_code,!1)}).catch(e=>{})})();
diff --git a/_vendor/github.com/linode/linode-website-partials/dist/js/header.js b/_vendor/github.com/linode/linode-website-partials/dist/js/header.js
new file mode 100644
index 00000000000..30b8aeeac1d
--- /dev/null
+++ b/_vendor/github.com/linode/linode-website-partials/dist/js/header.js
@@ -0,0 +1 @@
+(()=>{var h=document.querySelector("html"),l,g=function(){l=document.querySelector(".c-site-header"),l&&(E(),b())},u=function(){document.documentElement.style.setProperty("--site-scroll-y",window.scrollY+"px")},E=function(){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u(),window.addEventListener("scroll",u),l.addEventListener("toggle:on",function(e){d(!1)}),l.addEventListener("toggle:off",function(e){d(!0)}),document.addEventListener("keyup",function(e){switch(e.keyCode){case 27:l.querySelectorAll(".active").forEach(t=>t.classList.remove("active")),document.activeElement.blur(),d(!0);break}})},b=function(){var e=window.location.pathname;if(e!=="/"){e.match(/^\/community\/questions\/.+/)?e="/community/questions/":e.match(/^\/docs\/.+/)?e="/docs/":e.match(/^\/blog|marketplace\/.+/)?e=e.replace(/^\/([^\/]+)\/.+/,"/$1/"):e.match(/^\/event\/.+/)?e="/events/":e.match(/^\/content|content-type|featuring|resources|series\/.+/)?e="/resources/":e.match(/^\/media\-coverage|press\-release\/.+/)&&(e="/company/press/");var t=l.querySelectorAll(':scope a.o-menu__link[href*="'+e+'"');t&&Array.from(t).forEach(n=>{if(!n.getAttribute("href").split(/[?#]/)[0].endsWith(e))return;n.classList.add("current");const r=n.closest(".c-submenu");if(r===null)return;const i=l.querySelectorAll(`:scope [data-toggle="#${r.id}"]`);Array.from(i).forEach(c=>c.classList.add("current"))})}},d=function(e){h.style.overflow=e?"":"hidden"};h.classList.contains("fl-builder-edit")||g(),document.addEventListener("turbolinks:render",function(e){g()});function L(e){if(!e.ok){let t="";throw e.statusText?t=e.statusText:e.status===404?t="Resource not found":t="Problem fetching resource",new Error(`${t} (${e.url})`)}return e}var _=["de","es","fr","it","ja","ko","pt","zh"];function $(){let e=document.documentElement.lang;return e&&_.includes(e)?e:""}function C(e,t=["b","br","em","i","span","strong","u"]){let n=document.createElement("div");n.textContent=e;let r=n.innerHTML,i=new RegExp(`<(/?(${t.join("|")}))>`,"gi");return r=r.replace(i,"<$1>"),r}var w,v=function(){let e="https://www.linode.com/wp-json/linode/v1/header-featured",t=$();t&&(e=`https://www.linode.com/${t}/wp-json/linode/v1/header-featured?lang=${t}`),fetch(e).then(L).then(n=>n.json()).then(n=>k(n)).catch(n=>console.log(n))},k=function(e){e.forEach(t=>{let n=document.querySelector('.c-site-header [data-featured="'+t.slot+'"]');if(!n)return;let r=x(t);if(r){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(r)}})},p=function(e){let t=document.createElement("img");return t.src=e.src,t.width=e.width,t.height=e.height,t.loading="lazy",t.fetchPriority="low",e.alt&&(t.alt=e.alt),e.srcset&&(t.srcset=e.srcset),e.sizes&&(t.sizes=e.sizes),t},x=function(e){let t=document.createElement("div"),n=document.createElement("h6"),r=document.createElement("a"),i=document.createElement("div"),c=document.createElement("div"),s=document.createElement("div"),f=document.createElement("span"),m=document.createElement("style");if(n.textContent=e.eyebrow,r.classList.add("c-featured"),r.id=`c-featured--${e.slot}`,r.href=e.link_url,r.setAttribute("style",e.wrap_styles),r.setAttribute("data-analytics-event",`${e.ga_category} | ${e.ga_action} | ${e.ga_label}`),i.classList.add("c-featured__text"),c.classList.add("c-featured__headline"),c.innerHTML=C(e.headline),s.classList.add("c-featured__excerpt"),s.innerHTML=e.excerpt,f.classList.add("c-featured__button"),f.textContent=e.link_text,m.type="text/css",m.textContent=e.css,i.appendChild(c),i.appendChild(s),i.appendChild(f),e.background_image.src){let o=p(e.background_image);o.classList.add("c-featured__background"),r.appendChild(o)}if(e.foreground_image.src){let o=p(e.foreground_image);o.classList.add("c-featured__image"),r.appendChild(o)}return r.appendChild(i),t.appendChild(n),t.appendChild(r),t.appendChild(m),t},w=document.querySelector("html");w.classList.contains("fl-builder-edit")||v(),document.addEventListener("turbolinks:render",function(e){v()});var a=document.querySelector("html"),y=function(){S()},S=function(){a.addEventListener("click",q)},q=function(e){const t=e.target.closest("[data-toggle]");if(t===null||e.target.closest("form")!==null)return;const n=t.dataset.toggle?a.querySelector(t.dataset.toggle):t;if(n===null)return;const r=e.target.closest("a");if(r)if(r===t)e.preventDefault();else{const i=new URL(r.getAttribute("href"));if(i&&i.pathname!==window.location.pathname)return;r.blur()}A(n,t)},A=function(e,t){const n=e.classList.contains("active"),r=e.dataset.group,i=r?a.querySelectorAll('[data-group="'+r+'"].active'):null,c=new CustomEvent("toggle:"+(n?"off":"on"),{bubbles:!0});i&&i.forEach(s=>s.classList.remove("active")),n?t.blur():(e.classList.add("active"),t.classList.add("active")),e.dispatchEvent(c)};a.classList.contains("fl-builder-edit")||y(),document.addEventListener("turbolinks:render",function(e){y()}),window.addEventListener("click",e=>{(e.target.matches('a[href*="#open-consent-prefs"]')||e.target.matches("span#open-consent-prefs"))&&(e.preventDefault(),typeof window.OneTrust<"u"&&window.OneTrust.ToggleInfoDisplay())})})();
diff --git a/_vendor/github.com/linode/linode-website-partials/footer.html b/_vendor/github.com/linode/linode-website-partials/dist/wordpress/footer.html
similarity index 86%
rename from _vendor/github.com/linode/linode-website-partials/footer.html
rename to _vendor/github.com/linode/linode-website-partials/dist/wordpress/footer.html
index 389d8175835..c91044fe66a 100644
--- a/_vendor/github.com/linode/linode-website-partials/footer.html
+++ b/_vendor/github.com/linode/linode-website-partials/dist/wordpress/footer.html
@@ -1,3 +1,4 @@
+
-
\ No newline at end of file
+
diff --git a/_vendor/github.com/linode/linode-website-partials/header.html b/_vendor/github.com/linode/linode-website-partials/dist/wordpress/header.html
similarity index 85%
rename from _vendor/github.com/linode/linode-website-partials/header.html
rename to _vendor/github.com/linode/linode-website-partials/dist/wordpress/header.html
index 3b399f93725..8536b25dcc4 100644
--- a/_vendor/github.com/linode/linode-website-partials/header.html
+++ b/_vendor/github.com/linode/linode-website-partials/dist/wordpress/header.html
@@ -1,3 +1,4 @@
+
-
@@ -815,7 +721,7 @@ Technical Resources
@@ -882,4 +785,4 @@ What's New
-
\ No newline at end of file
+
diff --git a/_vendor/github.com/linode/linode-website-partials/footer-inline.js b/_vendor/github.com/linode/linode-website-partials/footer-inline.js
deleted file mode 100644
index 4a6da453a93..00000000000
--- a/_vendor/github.com/linode/linode-website-partials/footer-inline.js
+++ /dev/null
@@ -1,132 +0,0 @@
-(() => {
- // src/js/Footer/storage.js
- function daysFromNow(days = 0) {
- let d = /* @__PURE__ */ new Date();
- d.setTime(d.getTime() + days * 24 * 60 * 60 * 1e3);
- return d;
- }
- function expireFromLocal(name) {
- if (null === localStorage.getItem(name)) return;
- let now = /* @__PURE__ */ new Date(), exp_value = localStorage.getItem(`${name}_exp`), exp_date = null !== exp_value ? new Date(exp_value) : now;
- if (isNaN(exp_date)) {
- localStorage.removeItem(`${name}_exp`);
- return;
- }
- if (now < exp_date) return;
- localStorage.removeItem(name);
- localStorage.removeItem(`${name}_exp`);
- }
- function saveToLocal(name, value, exp_date = null, overwrite = true) {
- let saved = localStorage.getItem(name);
- if (null !== saved && saved !== value && !overwrite) return;
- localStorage.setItem(name, value);
- if (null !== exp_date) {
- localStorage.setItem(`${name}_exp`, exp_date.toUTCString());
- }
- }
- function saveToCookie(name, value, exp_date = null, overwrite = true) {
- value = encodeURIComponent(value);
- if (document.cookie.indexOf(`${name}=`) >= 0 && document.cookie.indexOf(`${name}=${value}`) < 0 && !overwrite) return;
- let expires = null !== exp_date ? `expires=${exp_date.toUTCString()}; ` : "";
- document.cookie = `${name}=${value}; domain=.linode.com; ${expires}path=/; secure; samesite=lax; `;
- }
- function storeParams(args) {
- let url = new URL(window.location.href), param_value = url.searchParams.get(args.param);
- if (args.local) expireFromLocal(args.local);
- if (!param_value) return;
- if (args.regex && !param_value.match(args.regex)) return;
- let exp_date = args.days ? daysFromNow(args.days) : null;
- if (args.local) saveToLocal(args.local, param_value, exp_date);
- if (args.cookie) saveToCookie(args.cookie, param_value, exp_date);
- }
-
- // src/js/Footer/referral-codes.js
- storeParams({
- "param": "r",
- "cookie": "referralCode",
- "days": 14,
- "regex": /^[0-9a-f]{40}$/i
- });
- var cookies = Object.fromEntries(document.cookie.split(/\s*;\s*/).map((c) => c.split(/\s*=\s*/)));
- var body = document.getElementsByTagName("body")[0];
- if (cookies.referralCode) {
- body.classList.add("js-is-referral");
- }
-
- // src/js/Footer/promo-codes.js
- storeParams({
- "param": "promo",
- "cookie": "promoCode",
- "local": "promoCode",
- "days": 1,
- "regex": /^[0-9a-z-_]*$/i
- });
- storeParams({
- "param": "promo_length",
- "cookie": "promoLength",
- "local": "promoLength",
- "days": 1,
- "regex": /^[0-9]*$/
- });
- storeParams({
- "param": "promo_value",
- "cookie": "promoValue",
- "local": "promoValue",
- "days": 1,
- "regex": /^[0-9]*$/
- });
- function updateLinkPromoCodes(promo, should_override) {
- let $links = Array.from(document.querySelectorAll(`a[href*="login.linode.com"][href*="/signup"]`));
- $links.forEach(($link) => {
- let link_url = new URL($link.href);
- if (link_url.searchParams.has("promo")) {
- if (!$link.hasAttribute("data-promo-override")) return;
- if (!should_override) return;
- link_url.searchParams.delete("promo");
- }
- if (promo) {
- link_url.searchParams.set("promo", promo);
- }
- $link.href = link_url.toString();
- });
- }
- function updateFormPromoCodes(promo, should_override) {
- let $forms = Array.from(document.querySelectorAll(`form[action*="login.linode.com/signup"]`));
- $forms.forEach(($form) => {
- let form_url = new URL($form.action), $promo_field = $form.querySelector('input[name="promo"]');
- if ($promo_field) {
- if (!$promo_field.hasAttribute("data-promo-override")) return;
- if (!should_override) return;
- $promo_field.remove();
- }
- if (promo) {
- let $new_promo_field = document.createElement("input");
- $new_promo_field.setAttribute("type", "hidden");
- $new_promo_field.setAttribute("name", "promo");
- $new_promo_field.setAttribute("value", promo);
- $form.appendChild($new_promo_field);
- }
- });
- }
- function updatePromoCodes(promo, should_override) {
- updateLinkPromoCodes(promo, should_override);
- updateFormPromoCodes(promo, should_override);
- }
- var cookies2 = Object.fromEntries(document.cookie.split(/\s*;\s*/).map((c) => c.split(/\s*=\s*/)));
- var localPromoCode = localStorage.getItem("promoCode");
- if (cookies2.referralCode) {
- updatePromoCodes("", true);
- } else if (localPromoCode || cookies2.promoCode) {
- updatePromoCodes(localPromoCode || cookies2.promoCode, true);
- } else {
- fetch("https://www.linode.com/wp-json/linode/v1/promo-data").then((response) => {
- if (!response.ok) throw new Error("");
- return response;
- }).then((response) => response.json()).then((data) => {
- if (data.global && data.global.promo_code) {
- updatePromoCodes(data.global.promo_code, false);
- }
- }).catch((error) => {
- });
- }
-})();
diff --git a/_vendor/github.com/linode/linode-website-partials/footer.css b/_vendor/github.com/linode/linode-website-partials/footer.css
deleted file mode 100644
index 291a3aa6a80..00000000000
--- a/_vendor/github.com/linode/linode-website-partials/footer.css
+++ /dev/null
@@ -1,140 +0,0 @@
-#ot-sdk-btn-floating {
- animation: none !important;
- left: 1% !important;
- opacity: 1 !important;
-}
-
-.c-site-footer {
- background-color: #ffffff;
- color: #32363b;
- font-family: "Source Sans Pro", sans-serif;
- font-size: 1.125rem;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- letter-spacing: 0;
- line-height: 1.3333333333;
-}
-.c-site-footer a {
- color: inherit;
-}
-.c-site-footer__primary {
- background-color: #ffffff;
- border-top: 1px solid var(--divider-color);
- color: #32363b;
- font-size: 0.875rem;
- line-height: 1.2857142857;
- margin-top: -1px;
- padding-bottom: 56px;
- padding-top: 24px;
-}
-.c-site-footer__primary .o-layout__col {
- display: flex;
- flex-direction: column;
-}
-.c-site-footer__primary .o-menu__heading {
- color: #000000;
- font-size: 0.875rem;
- font-weight: 600;
- line-height: 1.2857142857;
- margin: 8px 0 20px;
- text-transform: uppercase;
-}
-.c-site-footer__primary .o-menu__list {
- gap: 10px;
-}
-@media (min-width: 48em) {
- .c-site-footer__primary .o-layout__col--2 {
- grid-column: span 2;
- }
- .c-site-footer__primary .o-layout__col--2 .o-menu__list {
- -moz-column-count: 2;
- column-count: 2;
- -moz-column-gap: 16px;
- column-gap: 16px;
- display: block;
- }
- .c-site-footer__primary .o-layout__col--2 .o-menu__item {
- margin-bottom: 10px;
- }
-}
-.c-site-footer__primary .o-menu__link:hover {
- text-decoration: underline;
-}
-.c-site-footer__primary .o-menu__link:hover * {
- text-decoration: inherit;
-}
-.c-site-footer__primary .o-layout__colset--a {
- grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
-}
-@media (min-width: 48em) and (max-width: 61.99em) {
- .c-site-footer__primary .o-layout__colset--a {
- grid-template-columns: 1fr 1fr 1fr;
- }
-}
-@media (max-width: 47.99em) {
- .c-site-footer__primary .o-layout__colset--a {
- grid-template-columns: 1fr;
- }
-}
-.c-site-footer__primary .o-layout__colset--b {
- padding-inline: 8px;
- padding-top: 16px;
-}
-.c-site-footer__primary .o-layout__colset--b .o-layout__col {
- border-bottom: 1px solid black;
- justify-content: center;
-}
-.c-site-footer__primary .o-layout__colset--b .o-layout__col:first-child .o-layout__module {
- margin-left: 0;
-}
-.c-site-footer__primary .o-layout__colset--b .o-layout__col:last-child .o-layout__module {
- margin-right: 0;
-}
-.c-site-footer__primary .o-layout__colset--b .o-layout__col:last-child {
- align-items: flex-end;
-}
-@media (max-width: 47.99em) {
- .c-site-footer__primary .o-layout__colset--b .o-layout__module {
- margin-block: 8px;
- }
- .c-site-footer__primary .o-layout__colset--b .c-social {
- transform: translateY(6px);
- }
-}
-.c-site-footer__primary .o-layout__colset--c {
- color: #000000;
- font-weight: 600;
-}
-@media (min-width: 48em) {
- .c-site-footer__primary .o-layout__colset--c .o-menu__list {
- gap: 36px;
- }
-}
-@media (max-width: 47.99em) {
- .c-site-footer__primary .o-layout__colset--c .o-layout__module {
- margin-top: 32px;
- }
- .c-site-footer__primary .o-layout__colset--c .o-menu__list {
- align-items: flex-start;
- flex-direction: column;
- }
-}
-.c-site-footer__primary .c-consent {
- display: flex;
-}
-.c-site-footer__primary .c-social {
- display: flex;
- gap: 12px;
-}
-.c-site-footer__primary .c-social a {
- display: inline-flex;
- padding: 2px;
-}
-.c-site-footer__primary .c-social svg.o-icon {
- color: #32363b;
- height: 20px;
- width: 20px;
-}
-.c-site-footer__primary .c-identity__logo {
- padding: 0;
-}
diff --git a/_vendor/github.com/linode/linode-website-partials/header.css b/_vendor/github.com/linode/linode-website-partials/header.css
deleted file mode 100644
index ffe2453a8a7..00000000000
--- a/_vendor/github.com/linode/linode-website-partials/header.css
+++ /dev/null
@@ -1,957 +0,0 @@
-@font-face {
- font-display: swap;
- font-family: "Oswald";
- font-style: normal;
- font-weight: 300;
- src: local(""), url("https://assets.linode.com/fonts/oswald-v35-latin-300.woff2") format("woff2"), url("https://assets.linode.com/fonts/oswald-v35-latin-300.woff") format("woff");
-}
-@font-face {
- font-display: swap;
- font-family: "Oswald";
- font-style: normal;
- font-weight: 400;
- src: local(""), url("https://assets.linode.com/fonts/oswald-v35-latin-regular.woff2") format("woff2"), url("https://assets.linode.com/fonts/oswald-v35-latin-regular.woff") format("woff");
-}
-@font-face {
- font-display: swap;
- font-family: "Source Sans Pro";
- font-style: normal;
- font-weight: 400;
- src: local(""), url("https://assets.linode.com/fonts/source-sans-pro-v14-latin-regular.woff2") format("woff2"), url("https://assets.linode.com/fonts/source-sans-pro-v14-latin-regular.woff") format("woff");
-}
-@font-face {
- font-display: swap;
- font-family: "Source Sans Pro";
- font-style: normal;
- font-weight: 600;
- src: local(""), url("https://assets.linode.com/fonts/source-sans-pro-v14-latin-600.woff2") format("woff2"), url("https://assets.linode.com/fonts/source-sans-pro-v14-latin-600.woff") format("woff");
-}
-:root {
- --site-top-offset: 0px;
- --site-banner-height: 0px;
- --site-topbar-height: 37px;
- --site-header-height: 76px;
-}
-@media (max-width: 61.99em) {
- :root {
- --site-banner-height: 0px;
- }
-}
-@media (max-width: 61.99em) {
- :root {
- --site-topbar-height: 0px;
- }
-}
-@media (max-width: 47.99em) {
- :root {
- --site-header-height: 81px;
- }
-}
-
-.has-banner {
- --site-banner-height: 50px;
-}
-
-.o-layout__row {
- padding: 16px;
-}
-@media (min-width: 48em) and (max-width: 61.99em) {
- .o-layout__row {
- padding-left: 12px;
- padding-right: 12px;
- }
-}
-@media (max-width: 47.99em) {
- .o-layout__row {
- padding-left: 6px;
- padding-right: 6px;
- }
-}
-.o-layout__colset {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
- margin-left: auto;
- margin-right: auto;
- max-width: 1296px;
-}
-.o-layout__module {
- margin: 16px 8px;
-}
-.o-layout__col {
- max-width: 100%;
-}
-
-.o-menu__list {
- display: flex;
- flex-direction: column;
- flex-wrap: wrap;
- list-style-type: none;
- margin: 0;
- padding: 0;
-}
-.o-menu__item {
- display: flex;
- flex-direction: column;
- margin: 0;
-}
-.o-menu__link {
- align-items: center;
- background-color: unset;
- border: unset;
- color: inherit;
- cursor: pointer;
- display: flex;
- flex: 1;
- font-family: unset;
- font-size: unset;
- gap: 4px;
- line-height: unset;
- order: 0;
- padding: 0;
- text-align: left;
- text-decoration: none;
-}
-.o-menu__link:hover {
- background-color: unset;
- color: inherit;
-}
-.o-menu__toggle::after {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(50,54,59)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E");
- background-position: center;
- background-repeat: no-repeat;
- background-size: contain;
- content: "";
- display: inline-block;
- height: 12px;
- margin: 2px 0 0;
- width: 8px;
-}
-.o-menu__toggle.active::after {
- transform: scaleY(-1);
-}
-.o-menu__icon {
- height: 1em;
- width: 1em;
-}
-.o-menu__title {
- display: inline-block;
- flex: 1;
-}
-.o-menu--h .o-menu__list {
- align-items: center;
- flex-direction: row;
- flex-wrap: nowrap;
-}
-.o-menu--h .o-menu__link {
- align-items: center;
- display: flex;
-}
-.o-menu__item--button .o-menu__link {
- border: 2px solid;
- border-radius: 4px;
- cursor: pointer;
- padding-inline: 1em;
- text-align: center;
- text-decoration: none;
- white-space: nowrap;
- width: auto;
-}
-.o-menu__item--button .o-menu__link, .o-menu__item--button .o-menu__link:visited {
- background-color: var(--button-background-color, #017ac6);
- border-color: var(--button-border-color, #017ac6);
- color: var(--button-text-color, #ffffff);
-}
-.o-menu__item--button .o-menu__link:hover {
- background-color: var(--button-background-color--hover, #32363b);
- border-color: var(--button-border-color--hover, #32363b);
- color: var(--button-text-color--hover, #ffffff);
-}
-.o-menu__item--button .o-menu__link * {
- color: inherit !important;
-}
-.o-menu__parent .o-menu__child {
- display: none;
-}
-
-.o-menu__parent.active > .o-menu__child {
- display: flex;
-}
-
-.c-weglot-nav {
- border-left: 1px solid #ededf4;
-}
-.c-weglot-nav .country-selector {
- position: relative;
-}
-.c-weglot-nav .country-selector:focus {
- outline: none;
-}
-.c-weglot-nav a, .c-weglot-nav span {
- all: unset;
-}
-.c-weglot-nav a, .c-weglot-nav span {
- display: block;
- outline: none;
-}
-.c-weglot-nav a:hover, .c-weglot-nav span:hover {
- color: #017ac6;
-}
-.c-weglot-nav a {
- cursor: pointer;
- -webkit-touch-callout: none;
-}
-.c-weglot-nav .wgcurrent {
- align-items: center;
- border: none;
- border-bottom: 2px solid transparent;
- border-top: 2px solid transparent;
- cursor: pointer;
- display: flex;
- gap: 8px;
-}
-.c-weglot-nav .wgcurrent:hover {
- border-bottom-color: #017ac6;
-}
-.c-weglot-nav .wgcurrent::after {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(50,54,59)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E");
- background-position: center;
- background-repeat: no-repeat;
- background-size: contain;
- content: "";
- height: 12px;
- margin-top: 2px;
- width: 8px;
-}
-.c-weglot-nav ul {
- background: white;
- border: 1px solid #ededf4;
- display: none;
- left: auto;
- list-style: none;
- margin: 0;
- min-width: 100%;
- padding: 0;
- position: absolute;
- right: 0px;
- top: initial;
-}
-.c-weglot-nav ul li {
- margin: 0px;
- padding: 0px;
- width: 100%;
-}
-.c-weglot-nav ul a {
- padding: 8px 12px 8px 24px;
-}
-.c-weglot-nav ul a:focus-visible {
- outline-color: Highlight;
- outline-color: -webkit-focus-ring-color;
- outline-offset: 1px;
- outline-style: auto;
- outline-width: 1px;
-}
-
-.c-weglot-nav .country-selector:not(.closed) ul {
- display: block;
-}
-.c-weglot-nav .country-selector .wgcurrent {
- border: none !important;
- border-bottom: 2px solid transparent !important;
- border-top: 2px solid transparent !important;
-}
-.c-weglot-nav .country-selector .wgcurrent:hover {
- border-bottom-color: #017ac6 !important;
-}
-.c-weglot-nav .country-selector .wgcurrent a {
- color: inherit !important;
- height: auto !important;
- padding-right: 0 !important;
-}
-.c-weglot-nav .country-selector .wgcurrent:after {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(50,54,59)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E") !important;
- background-size: contain !important;
- height: 12px !important;
- position: static !important;
- transform: none !important;
- width: 8px !important;
-}
-
-body.om-position-floating-top {
- --site-top-offset: 60px;
-}
-
-.c-identity {
- --gap: 10px;
- align-items: center;
- display: flex;
- gap: var(--gap);
-}
-
-.c-identity__link {
- display: block;
-}
-
-.c-identity__image {
- display: block;
- width: auto;
-}
-
-.c-identity__logomark {
- border-right: 1px solid #e2e5e6;
- padding-right: var(--gap);
-}
-
-@media (max-width: 47.99em) {
- .c-identity__logomark img {
- height: 40px;
- }
- .c-identity__text img {
- height: 20px;
- }
-}
-@media (min-width: 48em) {
- .c-identity {
- --gap: 12px;
- }
- .c-identity__logo {
- padding-block: 2px 5px;
- }
- .c-identity__text {
- padding-block: 17px 15px;
- }
-}
-.c-site-header {
- color: #32363b;
- font-family: "Source Sans Pro", sans-serif;
- font-size: 1.125rem;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- font-weight: 400;
- letter-spacing: 0;
- line-height: 1.3333333333;
- overflow: visible;
-}
-.c-site-header a, .c-site-header a:where(:link, :visited, :hover, :active, :focus) {
- color: inherit;
- text-decoration: none;
-}
-.c-site-header__banner {
- z-index: 1000;
-}
-.c-site-header__topbar {
- z-index: 1000;
-}
-.c-site-header__primary {
- z-index: 999;
-}
-
-.c-site-header__primary {
- background-color: #ffffff;
- border-bottom: 1px solid #ededf4;
- font-family: "Source Sans Pro", sans-serif;
- font-size: 1rem;
- letter-spacing: 0;
- line-height: 1.25;
- overflow: visible;
- padding-bottom: 0;
- padding-top: 0;
- position: relative;
-}
-.c-site-header__primary .o-layout__colset {
- align-items: center;
- display: flex;
- flex-wrap: nowrap;
- height: calc(var(--site-header-height) - 1px);
- max-width: none;
-}
-.c-site-header__primary .o-layout__col {
- flex: none;
-}
-.c-site-header__primary .o-layout__col:nth-child(2) {
- flex: 1;
-}
-.c-site-header__primary .o-layout__module {
- margin-block: 0;
-}
-.c-site-header__primary .c-main-menu nav {
- margin-right: -10px;
-}
-.c-site-header__primary .o-menu__list {
- justify-content: flex-end;
-}
-@media (max-width: 61.99em) {
- .c-site-header__primary .o-menu__item {
- display: none;
- }
-}
-.c-site-header__primary .o-menu__link {
- align-items: center;
- display: flex;
- font-weight: 600;
- margin: 0 10px;
- position: relative;
-}
-.c-site-header__primary .o-menu__title {
- border: 0 solid transparent;
- border-width: 2px 0;
- font-weight: 600;
- padding: 10px 0;
- white-space: nowrap;
-}
-.c-site-header__primary .o-menu__link.current .o-menu__title, .c-site-header__primary .o-menu__link:hover .o-menu__title, .c-site-header__primary .o-menu__link:focus .o-menu__title {
- border-bottom-color: #017ac6;
-}
-.c-site-header__primary .o-menu__item--button .o-menu__link {
- border-width: 0px;
- display: inline-block;
- font-size: 0.8125rem;
- line-height: 1.538461538;
- padding-inline: 20px;
-}
-.c-site-header__primary .o-menu__item--button .o-menu__title {
- border-width: 0;
-}
-.c-site-header__primary .o-menu__item--mobile {
- display: none;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__link {
- gap: 0;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__link:before, .c-site-header__primary .o-menu__item--mobile .o-menu__link:after {
- background-position: center;
- background-repeat: no-repeat;
- background-size: contain;
- content: "";
- display: inline-block;
- margin: 0;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__link:before {
- background-image: url("data:image/svg+xml;utf8,");
- height: 24px;
- visibility: visible;
- width: 24px;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__link:after {
- background-image: url("data:image/svg+xml;utf8,");
- height: 0;
- visibility: hidden;
- width: 0;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__link.active:before {
- height: 0;
- visibility: hidden;
- width: 0;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__link.active:after {
- height: 24px;
- visibility: visible;
- width: 24px;
-}
-.c-site-header__primary .o-menu__item--mobile .o-menu__title {
- border: 0 !important;
- clip: rect(0 0 0 0) !important;
- clip-path: inset(50%) !important;
- height: 1px !important;
- margin: -1px !important;
- overflow: hidden !important;
- padding: 0 !important;
- position: absolute !important;
- white-space: nowrap !important;
- width: 1px !important;
-}
-@media (max-width: 61.99em) {
- .c-site-header__primary .o-menu__item--mobile {
- display: initial;
- }
-}
-.c-site-header__primary .c-weglot-nav {
- font-family: "Source Sans Pro", sans-serif;
- font-size: 1rem;
- letter-spacing: 0;
- line-height: 1.25;
- margin-left: 0;
- min-width: 87.25px;
- padding-left: 8px;
-}
-.c-site-header__primary .c-weglot-nav .country-selector {
- margin-right: -10px;
-}
-.c-site-header__primary .c-weglot-nav .wgcurrent {
- margin: 0 10px;
-}
-.c-site-header__primary .c-weglot-nav .wgcurrent a, .c-site-header__primary .c-weglot-nav .wgcurrent span {
- padding: 10px 0;
-}
-
-.c-submenu {
- --max-submenu-padding: calc( var( --site-top-offset ) + var( --site-banner-height ) + var( --site-topbar-height ) + var( --site-header-height ) );
- --scroll-adjusted-padding: calc( var( --max-submenu-padding ) - var( --site-scroll-y, 0px ) );
- --min-submenu-padding: calc( var( --site-top-offset ) + var( --site-header-height ) );
- background-color: #ffffff;
- display: initial;
- left: -9999px;
- opacity: 0;
- overflow-x: hidden;
- overflow-y: scroll;
- padding-top: clamp(var(--min-submenu-padding), var(--scroll-adjusted-padding), var(--max-submenu-padding));
- position: absolute;
- top: -9999px;
- transform: translateY(-100px);
- transition: opacity 0.175s ease-out, transform 0.25s ease-out;
- will-change: position, transform;
-}
-@media (max-width: 61.99em) {
- .c-submenu {
- display: none;
- }
-}
-.c-submenu.active {
- bottom: 0;
- left: 0;
- opacity: 1;
- position: fixed;
- right: 0;
- top: 0;
- transform: translateY(0px);
-}
-.c-submenu:focus-within {
- bottom: 0;
- left: 0;
- opacity: 1;
- position: fixed;
- right: 0;
- top: 0;
- transform: translateY(0px);
-}
-.c-submenu:after {
- border-top: 1px solid var(--divider-color);
- content: "";
- display: block;
- height: 0;
- margin: 0 -16px;
-}
-.c-submenu .o-layout__colset {
- justify-content: center;
-}
-.c-submenu .o-layout__col {
- border-left: 1px solid #ededf4;
- grid-row: 2/-1;
- padding: 16px;
-}
-.c-submenu .o-layout__col:first-child {
- border-left: none;
- padding-left: 0;
-}
-.c-submenu .o-layout__module:where(:not(:first-child)) {
- margin-top: 32px;
-}
-.c-submenu h6 {
- color: rgb(152.5, 154.5, 157);
- font-family: "Source Sans Pro", sans-serif;
- font-size: 0.75rem;
- letter-spacing: 0;
- letter-spacing: 2px;
- line-height: 1.3333333333;
- margin: 16px 0;
- text-transform: uppercase;
-}
-.c-submenu a.current, .c-submenu a:hover {
- color: #017ac6;
-}
-.c-submenu .o-menu__item {
- clear: both;
-}
-.c-submenu .o-menu__item:where(:not(:first-child)) {
- margin-top: 8px;
-}
-.c-submenu .o-menu__title {
- display: block;
-}
-.c-submenu .o-menu__title .icon {
- float: left;
- height: 48px;
- margin-right: 16px;
- overflow: clip;
- width: 48px;
-}
-.c-submenu .o-menu__title .body {
- display: block;
- overflow: clip;
-}
-.c-submenu .o-menu__title .description {
- display: block;
-}
-.c-submenu .c-featured {
- align-items: center;
- border: var(--c-featured-border-width, 0) solid var(--c-featured-border-color, transparent);
- border-radius: 8px;
- color: var(--c-featured-color, #32363b);
- display: flex;
- max-width: 565px;
- overflow: clip;
- padding: 16px 24px 24px;
- position: relative;
-}
-.c-submenu .c-featured__background {
- height: 100%;
- left: 0;
- -o-object-fit: cover;
- object-fit: cover;
- -o-object-position: center center;
- object-position: center center;
- position: absolute;
- top: 0;
- width: 100%;
- z-index: 0;
-}
-.c-submenu .c-featured__image {
- flex: none;
- height: auto;
- max-width: 33%;
- order: 1;
- padding-left: 24px;
- position: relative;
- width: 100%;
-}
-.c-submenu .c-featured__text {
- flex: 1 1 100%;
- order: 0;
- position: relative;
- width: 100%;
-}
-.c-submenu .c-featured__headline {
- font-family: "Source Sans Pro", sans-serif;
- font-size: 2rem;
- line-height: 1.125;
- margin-bottom: 8px;
-}
-.c-submenu .c-featured__excerpt {
- font-family: "Source Sans Pro", sans-serif;
- font-size: 0.875rem;
- letter-spacing: 0;
- line-height: 1.4285714286;
- margin-bottom: 16px;
-}
-.c-submenu .c-featured__button {
- background-color: var(--button-background-color, #017ac6);
- border: 0 solid;
- border-radius: 4px;
- color: var(--button-text-color, #ffffff);
- cursor: pointer;
- display: inline-block;
- font-size: 0.8125rem;
- font-weight: 600;
- line-height: 1.538461538;
- padding: 10px 20px;
- text-align: center;
- white-space: nowrap;
- width: auto;
-}
-.c-submenu .c-featured__button:hover {
- background-color: var(--button-background-color--hover, #32363b);
- color: var(--button-text-color--hover, #ffffff);
-}
-.c-submenu .c-featured:hover, .c-submenu .c-featured:visited {
- color: var(--c-featured-color, #32363b);
-}
-.c-submenu .o-link--arrow {
- align-items: center;
- display: flex;
- font-weight: 600;
-}
-.c-submenu .o-link--arrow:after {
- content: url("data:image/svg+xml;utf8,");
- display: inline-block;
- height: auto;
- margin-left: 0.5em;
- width: 7px;
-}
-.c-submenu--2col .o-layout__colset {
- grid-template-columns: 46% max-content;
-}
-.c-submenu--3col .o-layout__colset {
- grid-template-columns: 46% 27% 27%;
-}
-.c-submenu--4col .o-layout__colset {
- grid-template-columns: 46% 18% 18% 18%;
-}
-.c-submenu--mobile {
- display: none;
- grid-template-columns: 100%;
- grid-template-rows: 1fr min-content min-content min-content;
-}
-@media (max-width: 61.99em) {
- .c-submenu--mobile {
- display: grid;
- }
-}
-.c-submenu--mobile:after {
- display: none;
-}
-.c-submenu--mobile > .o-layout__module {
- margin: 0;
-}
-.c-submenu--mobile .o-menu__item {
- margin: 0;
-}
-.c-submenu--mobile .o-menu__title {
- flex: 1;
- font-weight: 600;
- line-height: 1;
-}
-.c-submenu--mobile .o-menu__toggle::after {
- width: 24px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary).o-layout__module {
- overflow-x: scroll;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary) .o-menu__link {
- line-height: 1;
- padding-block: 0.5em;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary) .o-menu__link.active {
- color: #017ac6;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary) .o-menu__link.active::after {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' data-prefix='far' data-icon='angle-down' role='img' viewBox='0 0 320 512' class='svg-inline--fa fa-angle-down fa-w-10 fa-7x'%3E%3Cpath fill='rgba(1,122,198)' d='M151.5 347.8L3.5 201c-4.7-4.7-4.7-12.3 0-17l19.8-19.8c4.7-4.7 12.3-4.7 17 0L160 282.7l119.7-118.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17l-148 146.8c-4.7 4.7-12.3 4.7-17 0z' class=''%3E%3C/path%3E%3C/svg%3E");
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d0) {
- font-size: 1.375rem;
- height: -moz-min-content;
- height: min-content;
- padding-block: 6px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d0 > .o-menu__item) > .o-menu__link {
- padding-inline: 20px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d0 > .o-menu__item) > .o-menu__list {
- background-color: #fafafc;
- padding: 6px 0 12px 20px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d0 > .o-menu__item:last-child) > .o-menu__list {
- margin-bottom: -6px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d1) {
- font-size: 1.125rem;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d1 > .o-menu__item) > .o-menu__link {
- padding-inline: 20px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d1 > .o-menu__item) > .o-menu__list {
- border-left: 2px solid var(--divider-color);
- margin: 6px 0 12px 20px;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d1 > .o-menu__item) .o-menu__title {
- font-weight: 400;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d2) {
- font-size: 1rem;
-}
-.c-submenu--mobile :where(#submenu-mobile-primary .--d2 > .o-menu__item) > .o-menu__link {
- padding-inline: 20px;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks) {
- font-size: 0.875rem;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks).o-layout__module {
- border-top: 1px solid #ededf4;
- overflow-x: scroll;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu {
- width: -moz-min-content;
- width: min-content;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__list {
- align-items: flex-start;
- gap: 24px;
- padding: 18px 20px;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__link {
- flex-direction: column;
- gap: 12px;
- text-align: center;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__icon {
- background-color: #ededf4;
- border-radius: 50%;
- height: 64px;
- padding: 16px;
- width: 64px;
-}
-.c-submenu--mobile :where(#submenu-mobile-quicklinks) .o-menu__toggle::after {
- content: unset;
-}
-.c-submenu--mobile :where(#submenu-mobile-search).o-layout__module {
- display: none;
-}
-.c-submenu--mobile :where(#submenu-mobile-search).active {
- display: block;
-}
-.c-submenu--mobile .c-search {
- align-items: center;
- display: flex;
- gap: 8px;
- padding: 6px 20px;
-}
-.c-submenu--mobile .c-search::before {
- background-image: url("data:image/svg+xml;utf8,");
- content: "";
- flex: none;
- height: 16px;
- vertical-align: middle;
- width: 16px;
-}
-.c-submenu--mobile .c-search label,
-.c-submenu--mobile .c-search input[type=submit] {
- border: 0 !important;
- clip: rect(0 0 0 0) !important;
- clip-path: inset(50%) !important;
- height: 1px !important;
- margin: -1px !important;
- overflow: hidden !important;
- padding: 0 !important;
- position: absolute !important;
- white-space: nowrap !important;
- width: 1px !important;
-}
-.c-submenu--mobile .c-search input[type=search] {
- -webkit-appearance: none;
- background-color: transparent;
- border: 0px solid transparent;
- border-radius: 0px;
- color: #32363b;
- display: block;
- line-height: 1;
- padding: 12px 0 12px;
- width: 100%;
-}
-.c-submenu--mobile .c-search input[type=search]::-moz-placeholder {
- color: #32363b;
-}
-.c-submenu--mobile .c-search input[type=search]::placeholder {
- color: #32363b;
-}
-.c-submenu--mobile .c-search input[type=search]:focus {
- -webkit-appearance: none;
- border-radius: 0px;
- outline: none;
-}
-.c-submenu--mobile .c-search input[type=search]:focus::-moz-placeholder {
- color: #8c8e90;
-}
-.c-submenu--mobile .c-search input[type=search]:focus::placeholder {
- color: #8c8e90;
-}
-.c-submenu--mobile :where(#submenu-mobile-signup).o-layout__module {
- padding: 6px 20px 18px;
-}
-.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__list {
- flex-direction: row;
- gap: 16px;
- justify-content: stretch;
-}
-.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__item {
- flex: 1;
-}
-.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__item:first-child .o-menu__link, .c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__item:first-child .o-menu__link:visited {
- --button-background-color: #ffffff;
- --button-text-color: #017ac6;
-}
-.c-submenu--mobile :where(#submenu-mobile-signup) .o-menu__link {
- line-height: 1.2222222222;
- padding-block: 0.8888888889em;
-}
-
-.c-site-header__topbar {
- background-color: #ffffff;
- border-bottom: 1px solid #ededf4;
- font-size: 0.8125rem;
- font-weight: 600;
- line-height: 1.2307692308;
- padding-bottom: 0;
- padding-top: 0;
- position: relative;
-}
-@media (max-width: 61.99em) {
- .c-site-header__topbar {
- display: none;
- }
-}
-.c-site-header__topbar .o-layout__colset {
- align-items: center;
- display: flex;
- flex-wrap: nowrap;
- height: calc(var(--site-topbar-height) - 1px);
- max-width: none;
-}
-.c-site-header__topbar .o-layout__col {
- flex: none;
-}
-.c-site-header__topbar .o-layout__col:nth-child(2) {
- flex: 1;
- justify-content: flex-end;
-}
-.c-site-header__topbar .o-layout__col:last-child {
- margin-right: -12px;
-}
-.c-site-header__topbar .o-layout__module {
- margin-block: 0;
-}
-.c-site-header__topbar .c-utility-nav {
- font-size: 0.8125rem;
- line-height: 1.2307692308;
-}
-.c-site-header__topbar .o-menu__list {
- justify-content: flex-end;
-}
-.c-site-header__topbar .o-menu__link {
- border: 0 solid transparent;
- border-width: 2px 0;
- margin: 0 12px;
-}
-.c-site-header__topbar .o-menu__link.current, .c-site-header__topbar .o-menu__link:hover {
- border-bottom-color: #017ac6;
-}
-.c-site-header__topbar .o-menu__title {
- font-weight: 600;
- padding: 8px 0;
- white-space: nowrap;
-}
-.c-site-header__topbar .o-menu__item--search .o-menu__link {
- overflow: clip;
- white-space: nowrap;
- width: 16px;
-}
-.c-site-header__topbar .o-menu__item--search .o-menu__link::before {
- background-image: url("data:image/svg+xml;utf8,");
- content: "";
- flex: none;
- height: 16px;
- vertical-align: middle;
- width: 16px;
-}
-.c-site-header__topbar .o-menu__item--search .o-menu__title {
- border: 0 !important;
- clip: rect(0 0 0 0) !important;
- clip-path: inset(50%) !important;
- height: 1px !important;
- margin: -1px !important;
- overflow: hidden !important;
- padding: 0 !important;
- position: absolute !important;
- white-space: nowrap !important;
- width: 1px !important;
-}
-.c-site-header__topbar .c-weglot-nav {
- margin-left: -8px;
-}
-.c-site-header__topbar .c-weglot-nav #weglot_here,
-.c-site-header__topbar .c-weglot-nav .country-selector {
- min-width: 81px;
-}
-.c-site-header__topbar .c-weglot-nav .wgcurrent {
- margin: 0 12px;
-}
-.c-site-header__topbar .c-weglot-nav .wgcurrent a, .c-site-header__topbar .c-weglot-nav .wgcurrent span {
- padding: 8px 0;
-}
diff --git a/_vendor/github.com/linode/linode-website-partials/header.js b/_vendor/github.com/linode/linode-website-partials/header.js
deleted file mode 100644
index f52ee7fbaaa..00000000000
--- a/_vendor/github.com/linode/linode-website-partials/header.js
+++ /dev/null
@@ -1,257 +0,0 @@
-(() => {
- // src/js/Main/main-menu.js
- var $html = document.querySelector("html");
- var $header;
- var mount = function() {
- $header = document.querySelector(".c-site-header");
- if (!$header) return;
- bindEvents();
- setActiveMenuItem();
- };
- var setScrollY = function() {
- document.documentElement.style.setProperty("--site-scroll-y", window.scrollY + "px");
- };
- var bindEvents = function() {
- if (document.readyState === "loading") {
- document.addEventListener("DOMContentLoaded", setScrollY);
- } else {
- setScrollY();
- }
- window.addEventListener("scroll", setScrollY);
- $header.addEventListener("toggle:on", function(event) {
- setHtmlScrollState(false);
- });
- $header.addEventListener("toggle:off", function(event) {
- setHtmlScrollState(true);
- });
- document.addEventListener("keyup", function(event) {
- switch (event.keyCode) {
- case 27:
- $header.querySelectorAll(".active").forEach(($item) => $item.classList.remove("active"));
- document.activeElement.blur();
- setHtmlScrollState(true);
- break;
- }
- });
- };
- var setActiveMenuItem = function() {
- var current_path = window.location.pathname;
- if ("/" === current_path) {
- return;
- } else if (current_path.match(/^\/community\/questions\/.+/)) {
- current_path = "/community/questions/";
- } else if (current_path.match(/^\/docs\/.+/)) {
- current_path = "/docs/";
- } else if (current_path.match(/^\/blog|marketplace\/.+/)) {
- current_path = current_path.replace(/^\/([^\/]+)\/.+/, "/$1/");
- } else if (current_path.match(/^\/event\/.+/)) {
- current_path = "/events/";
- } else if (current_path.match(/^\/content|content-type|featuring|resources|series\/.+/)) {
- current_path = "/resources/";
- } else if (current_path.match(/^\/media\-coverage|press\-release\/.+/)) {
- current_path = "/company/press/";
- }
- var $current_links = $header.querySelectorAll(':scope a.o-menu__link[href*="' + current_path + '"');
- if (!$current_links) return;
- Array.from($current_links).forEach(($link) => {
- if (!$link.getAttribute("href").split(/[?#]/)[0].endsWith(current_path)) return;
- $link.classList.add("current");
- const $sub_menu = $link.closest(".c-submenu");
- if (null === $sub_menu) return;
- const $trigger_links = $header.querySelectorAll(
- `:scope [data-toggle="#${$sub_menu.id}"]`
- );
- Array.from($trigger_links).forEach(($trigger) => $trigger.classList.add("current"));
- });
- };
- var setHtmlScrollState = function(state) {
- $html.style.overflow = state ? "" : "hidden";
- };
- if (!$html.classList.contains("fl-builder-edit")) {
- mount();
- }
- document.addEventListener("turbolinks:render", function(event) {
- mount();
- });
-
- // src/js/Main/handle-fetch-errors.js
- function handleFetchErrors(response) {
- if (!response.ok) {
- let errorMessage = "";
- if (response.statusText) {
- errorMessage = response.statusText;
- } else if (response.status === 404) {
- errorMessage = "Resource not found";
- } else {
- errorMessage = "Problem fetching resource";
- }
- throw new Error(`${errorMessage} (${response.url})`);
- }
- return response;
- }
-
- // src/js/Main/i18n.js
- var languages = ["de", "es", "fr", "it", "ja", "ko", "pt-br", "pt", "zh"];
- function getLanguageString() {
- let lang = document.documentElement.lang;
- if (lang && languages.includes(lang)) {
- return lang;
- } else {
- return "";
- }
- }
-
- // src/js/Main/safe-html.js
- function safeHTML(input, allow_tags = ["b", "br", "em", "i", "span", "strong", "u"]) {
- let tmp = document.createElement("div");
- tmp.textContent = input;
- let output = tmp.innerHTML;
- let allow_regex = new RegExp(`<(/?(${allow_tags.join("|")}))>`, "gi");
- output = output.replace(allow_regex, "<$1>");
- return output;
- }
-
- // src/js/Main/header-featured.js
- var $html2;
- var mount2 = function() {
- let api_url = "https://www.linode.com/wp-json/linode/v1/header-featured", lang = getLanguageString();
- if (lang) {
- api_url = `https://www.linode.com/${lang}/wp-json/linode/v1/header-featured?lang=${lang}`;
- }
- fetch(api_url).then(handleFetchErrors).then((response) => response.json()).then((data) => updateDOM(data)).catch((error) => console.log(error));
- };
- var updateDOM = function(data) {
- data.forEach((item) => {
- let $slot = document.querySelector('.c-site-header [data-featured="' + item.slot + '"]');
- if (!$slot) return;
- let $feature = generateFeature(item);
- if (!$feature) return;
- while ($slot.firstChild) {
- $slot.removeChild($slot.firstChild);
- }
- $slot.appendChild($feature);
- });
- };
- var generateImage = function(data) {
- let $img = document.createElement("img");
- $img.src = data.src;
- $img.width = data.width;
- $img.height = data.height;
- $img.loading = "lazy";
- $img.fetchPriority = "low";
- if (data.alt) {
- $img.alt = data.alt;
- }
- if (data.srcset) {
- $img.srcset = data.srcset;
- }
- if (data.sizes) {
- $img.sizes = data.sizes;
- }
- return $img;
- };
- var generateFeature = function(data) {
- let $base = document.createElement("div"), $h6 = document.createElement("h6"), $a = document.createElement("a"), $text = document.createElement("div"), $headline = document.createElement("div"), $excerpt = document.createElement("div"), $button = document.createElement("span"), $style = document.createElement("style");
- $h6.textContent = data.eyebrow;
- $a.classList.add("c-featured");
- $a.id = `c-featured--${data.slot}`;
- $a.href = data.link_url;
- $a.setAttribute("style", data.wrap_styles);
- $a.setAttribute("data-analytics-event", `${data.ga_category} | ${data.ga_action} | ${data.ga_label}`);
- $text.classList.add("c-featured__text");
- $headline.classList.add("c-featured__headline");
- $headline.innerHTML = safeHTML(data.headline);
- $excerpt.classList.add("c-featured__excerpt");
- $excerpt.innerHTML = data.excerpt;
- $button.classList.add("c-featured__button");
- $button.textContent = data.link_text;
- $style.type = "text/css";
- $style.textContent = data.css;
- $text.appendChild($headline);
- $text.appendChild($excerpt);
- $text.appendChild($button);
- if (data.background_image.src) {
- let $bg = generateImage(data.background_image);
- $bg.classList.add("c-featured__background");
- $a.appendChild($bg);
- }
- if (data.foreground_image.src) {
- let $fg = generateImage(data.foreground_image);
- $fg.classList.add("c-featured__image");
- $a.appendChild($fg);
- }
- $a.appendChild($text);
- $base.appendChild($h6);
- $base.appendChild($a);
- $base.appendChild($style);
- return $base;
- };
- var $html2 = document.querySelector("html");
- if (!$html2.classList.contains("fl-builder-edit")) {
- mount2();
- }
- document.addEventListener("turbolinks:render", function(event) {
- mount2();
- });
-
- // src/js/Main/switcher.js
- var $html3 = document.querySelector("html");
- var mount3 = function() {
- bindEvents2();
- };
- var bindEvents2 = function() {
- $html3.addEventListener("click", handleClick);
- };
- var handleClick = function(e) {
- const $trigger = e.target.closest("[data-toggle]");
- if (null === $trigger) return;
- if (null !== e.target.closest("form")) return;
- const $target = $trigger.dataset.toggle ? $html3.querySelector($trigger.dataset.toggle) : $trigger;
- if (null === $target) return;
- const $anchor = e.target.closest("a");
- if ($anchor) {
- if ($anchor === $trigger) {
- e.preventDefault();
- } else {
- const $url = new URL($anchor.getAttribute("href"));
- if ($url && $url.pathname !== window.location.pathname) return;
- $anchor.blur();
- }
- }
- toggle($target, $trigger);
- };
- var toggle = function($target, $trigger) {
- const target_active = $target.classList.contains("active"), group = $target.dataset.group, $active = group ? $html3.querySelectorAll('[data-group="' + group + '"].active') : null, toggle_event = new CustomEvent(
- "toggle:" + (target_active ? "off" : "on"),
- {
- bubbles: true
- }
- );
- if ($active) {
- $active.forEach(($item) => $item.classList.remove("active"));
- }
- if (!target_active) {
- $target.classList.add("active");
- $trigger.classList.add("active");
- } else {
- $trigger.blur();
- }
- $target.dispatchEvent(toggle_event);
- };
- if (!$html3.classList.contains("fl-builder-edit")) {
- mount3();
- }
- document.addEventListener("turbolinks:render", function(event) {
- mount3();
- });
-
- // src/js/Main/consent.js
- window.addEventListener("click", (e) => {
- if (e.target.matches('a[href*="#open-consent-prefs"]') || e.target.matches("span#open-consent-prefs")) {
- e.preventDefault();
- if (typeof window.OneTrust !== "undefined") {
- window.OneTrust.ToggleInfoDisplay();
- }
- }
- });
-})();
diff --git a/_vendor/github.com/linode/linode-website-partials/package.json b/_vendor/github.com/linode/linode-website-partials/package.json
new file mode 100644
index 00000000000..27f6a868593
--- /dev/null
+++ b/_vendor/github.com/linode/linode-website-partials/package.json
@@ -0,0 +1,14 @@
+{
+ "scripts": {
+ "build:eleventy": "npx eleventy",
+ "postbuild:assets": "node scripts/assets.js",
+ "postbuild:finalize": "node scripts/finalize.js",
+ "build": "npm run build:eleventy && npm run postbuild:finalize && npm run postbuild:assets"
+ },
+ "devDependencies": {
+ "@11ty/eleventy": "^3.1.0",
+ "esbuild": "^0.25.5",
+ "fast-glob": "^3.3.3",
+ "globby": "^14.1.0"
+ }
+}
diff --git a/_vendor/modules.txt b/_vendor/modules.txt
index cbd5054d896..1cb1931f316 100644
--- a/_vendor/modules.txt
+++ b/_vendor/modules.txt
@@ -1,5 +1,5 @@
-# github.com/linode/linode-docs-theme v0.0.0-20250528190530-9bd6611ce1d3
-# github.com/linode/linode-website-partials v0.0.0-20250409155719-a69a3433df0c
+# github.com/linode/linode-docs-theme v0.0.0-20250624150139-09c1c3b7a94d
+# github.com/linode/linode-website-partials v0.0.0-20250613135058-1f0f32424646
# github.com/gohugoio/hugo-mod-jslibs-dist/alpinejs/v3 v3.21300.20800
# github.com/gohugoio/hugo-mod-jslibs/turbo/v8 v8.20000.20400
# github.com/hotwired/turbo v8.0.4+incompatible
diff --git a/docs/guides/applications/configuration-management/terraform/beginners-guide-to-terraform/index.md b/docs/guides/applications/configuration-management/terraform/beginners-guide-to-terraform/index.md
index 77903aabc46..4208233ed87 100644
--- a/docs/guides/applications/configuration-management/terraform/beginners-guide-to-terraform/index.md
+++ b/docs/guides/applications/configuration-management/terraform/beginners-guide-to-terraform/index.md
@@ -5,7 +5,7 @@ description: 'A look into Terraform''s primary components, features, and configu
authors: ["Linode"]
contributors: ["Linode"]
published: 2018-12-21
-modified: 2019-08-07
+modified: 2025-06-13
keywords: ['terraform', 'orchestration', 'linode provider']
license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
image: ABeginnersGuidetoTerraform.png
@@ -25,16 +25,14 @@ Terraform's primary job is to create, modify, and destroy servers and other reso
## The Linode Provider
-Terraform is a general orchestration tool that can interface with a number of different cloud platforms. These integrations are referred to as *providers*. The Terraform provider for Linode was [officially released](https://blog.linode.com/2018/10/30/now-available-linode-terraform-provider/) in October 2018.
-
-{{< note >}}
-The Linode provider relies on Linode's [APIv4](/docs/products/tools/api/), so an API access token is needed to use it. See [Use Terraform to Provision Linode Environments](/docs/guides/how-to-build-your-infrastructure-using-terraform-and-linode/) for instructions on getting an API token and installing Terraform and the Linode provider on your computer.
-{{< /note >}}
+Terraform is a general orchestration tool that can interface with a number of different cloud platforms. These integrations are referred to as *providers*. The Terraform provider for Linode was [officially released](https://blog.linode.com/2018/10/30/now-available-linode-terraform-provider/) in October 2018. A version history, including the latest provider release number, can be found on [Terraform's Registry](https://registry.terraform.io/providers/linode/linode/latest).
The Linode provider can be used to create Linode instances, Images, domain records, Block Storage Volumes, StackScripts, and other resources. Terraform's [official Linode provider documentation](https://www.terraform.io/docs/providers/linode/index.html) details each resource that can be managed.
+The Linode provider relies on Linode's [APIv4](/docs/products/tools/api/), and an API access token is needed to use it. See [Use Terraform to Provision Linode Environments](/docs/guides/how-to-build-your-infrastructure-using-terraform-and-linode/) for instructions on getting an API token and installing Terraform and the Linode provider on your computer.
+
{{< note >}}
-[Terraform’s Linode Provider](https://github.com/linode/terraform-provider-linode) has been updated and now requires Terraform version 0.12+. To learn how to safely upgrade to Terraform version 0.12+, see [Terraform’s official documentation](https://www.terraform.io/upgrade-guides/0-12.html). View [Terraform v0.12’s changelog](https://github.com/hashicorp/terraform/blob/v0.12.0/CHANGELOG.md) for a full list of new features and version incompatibility notes.
+As of May 22, 2019, [Terraform’s Linode Provider](https://github.com/linode/terraform-provider-linode) requires Terraform version 0.12+. To learn how to safely upgrade to Terraform version 0.12+, see [Terraform’s official documentation](https://www.terraform.io/upgrade-guides/0-12.html). View [Terraform v0.12’s changelog](https://github.com/hashicorp/terraform/blob/v0.12.0/CHANGELOG.md) for a full list of Terraform versions, features, and incompatibility notes.
{{< /note >}}
## Infrastructure as Code
@@ -57,44 +55,46 @@ The next sections will illustrate core Terraform concepts with examples written
Here's a simple example of a complete Terraform configuration in HCL:
+{{< note >}}
+The SSH key in this example is truncated for brevity.
+{{< /note >}}
+
{{< file "example.tf" >}}
terraform {
required_providers {
linode = {
source = "linode/linode"
- version = "1.16.0"
+ version = "3.0.0"
}
}
}
provider "linode" {
- token = "your-linode-api-token"
+ token = "your-linode-api-token"
}
resource "linode_instance" "example_instance" {
- label = "example_instance_label"
- image = "linode/ubuntu18.04"
- region = "us-central"
- type = "g6-standard-1"
- authorized_keys = ["ssh-rsa AAAA...Gw== user@example.local"]
- root_pass = "your-root-password"
+ label = "simple_instance"
+ image = "linode/ubuntu22.04"
+ region = "us-central"
+ type = "g6-standard-1"
+ authorized_keys = ["ssh-rsa AAAA...Gw== user@example.local"]
+ root_pass = "this-is-not-a-safe-password"
}
{{< /file >}}
-{{< note >}}
-The SSH key in this example was truncated for brevity.
-{{< /note >}}
+This example Terraform file, with the Terraform file extension `.tf`, represents the creation of a single Linode instance labeled `example_instance_label`. This example file is prefixed with a mandatory `provider` block, which sets up the Linode provider must be listed in your configuration.
-This example Terraform file, with the Terraform file extension `.tf`, represents the creation of a single Linode instance labeled `example_instance_label`. This example file is prefixed with a mandatory `provider` block, which sets up the Linode provider and which you must list somewhere in your configuration.
+The `provider` block is followed by a *resource* declaration. The `example_instance` string that follows the `linode_instance` resource type declaration is Terraform's name for the resource. You cannot declare more than one Terraform resource with the same name and resource type. Resource declarations correspond with the components of your Linode infrastructure: Linode instances, Block Storage Volumes, etc.
-The `provider` block is followed by a *resource* declaration. Resource declarations correspond with the components of your Linode infrastructure: Linode instances, Block Storage Volumes, etc.
+Resources can accept arguments. The `label` argument specifies the label for the Linode instance in the Linode Manager. This name is independent of Terraform's name for the resource (though you can assign the same value to both). The Terraform name is only recorded in Terraform's [state](#state) and is not communicated to the Linode API. Labels for Linode instances in the same Linode account must be unique.
-Resources can accept arguments. `region` and `type` are required arguments for the `linode_instance` resource. A root password must be assigned to every Linode, but the `root_pass` Terraform argument is optional; if it is not specified, a random password will be generated.
+`region` and `type` are required arguments for the `linode_instance` resource. The `authorized_keys` argument allows you to optionally provide one or more SSH public keys to deploy for the *root* user. A root password must be assigned to every Linode, but the `root_pass` Terraform argument is optional; if it is not specified, a random password will be generated.
-{{< note >}}
-The `example_instance` string that follows the `linode_instance` resource type declaration is Terraform's name for the resource. You cannot declare more than one Terraform resource with the same name and resource type.
+{{< note title="Root Access & Non-Root Users" >}}
+It is considered a best practice to limit root user access on any compute instance. For security best practices and configuration steps after deployment, see our [Set Up and Secure a Linode](https://techdocs.akamai.com/cloud-computing/docs/set-up-and-secure-a-compute-instance) guide.
-The `label` argument specifies the label for the Linode instance in the Linode Manager. This name is independent of Terraform's name for the resource (though you can assign the same value to both). The Terraform name is only recorded in Terraform's [state](#state) and is not communicated to the Linode API. Labels for Linode instances in the same Linode account must be unique.
+Additionally, non-root users can not be created upon initial deployment using the Linode Terraform Provider. See our [Linux Users and Groups](/docs/guides/linux-users-and-groups/#creating-and-deleting-user-accounts) guide for steps on creating and configuring user accounts on a Linode instance.
{{< /note >}}
### Data Sources
@@ -162,7 +162,7 @@ terraform {
required_providers {
linode = {
source = "linode/linode"
- version = "1.16.0"
+ version = "3.0.0"
}
}
}
@@ -173,7 +173,7 @@ provider "linode" {
resource "linode_instance" "example_instance" {
label = "example_instance_label"
- image = "linode/ubuntu18.04"
+ image = "linode/ubuntu22.04"
region = var.region
type = "g6-standard-1"
authorized_keys = [var.ssh_key]
diff --git a/docs/guides/platform/object-storage/how-to-configure-nextcloud-to-use-linode-object-storage-as-an-external-storage-mount/index.md b/docs/guides/platform/object-storage/how-to-configure-nextcloud-to-use-linode-object-storage-as-an-external-storage-mount/index.md
index 2210ebd5168..ba58d375955 100644
--- a/docs/guides/platform/object-storage/how-to-configure-nextcloud-to-use-linode-object-storage-as-an-external-storage-mount/index.md
+++ b/docs/guides/platform/object-storage/how-to-configure-nextcloud-to-use-linode-object-storage-as-an-external-storage-mount/index.md
@@ -23,7 +23,7 @@ You can configure Nextcloud to enable external storage devices and services, lik
1. Deploy a Nextcloud server instance. You can use the [Linode Nextcloud Marketplace App](/docs/marketplace-docs/guides/nextcloud/) for an easy and quick deployment.
-1. [Generate Object Storage access keys](/docs/products/storage/object-storage/guides/access-keys/.
+1. [Generate Object Storage access keys](/docs/products/storage/object-storage/guides/access-keys/).
1. If you are not familiar with Linode Object Storage, review the [Get Started with Object Storage](/docs/products/storage/object-storage/get-started/) guide or take a look through the available [Object Storage guides](/docs/products/storage/object-storage/guides/).
diff --git a/docs/marketplace-docs/guides/netfoundry/index.md b/docs/marketplace-docs/guides/netfoundry/index.md
new file mode 100644
index 00000000000..e5327597c8e
--- /dev/null
+++ b/docs/marketplace-docs/guides/netfoundry/index.md
@@ -0,0 +1,67 @@
+---
+title: "Deploy NetFoundry Edge Router through the Linode Marketplace"
+description: "Deploy a NetFoundry zero trust optimized connectivity Edge Router"
+published: 2020-01-31
+modified: 2025-01-31
+keywords: ['netfoundry', 'edge', 'networking']
+tags: ["ubuntu", "marketplace", "networking", "developer", "linode platform", "cloud manager"]
+external_resources:
+- '[NetFoundry](https://netfoundry.io/)'
+- '[NetFoundry official documentation](https://support.netfoundry.io/hc/en-us)'
+- '[Create and Manage Edge Routers - NetFoundry documentation](https://support.netfoundry.io/hc/en-us/articles/360044956032-Create-and-Manage-Edge-Routers)'
+aliases: ['/products/tools/marketplace/guides/netfoundry/']
+authors: ["Akamai"]
+contributors: ["Akamai"]
+license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
+---
+
+The NetFoundry Edge Router is a lightweight, software-based gateway that provides secure, zero-trust networking between endpoints, cloud environments, and private networks. Acting as a bridge between local networks and the NetFoundry overlay network, it enables encrypted, policy-driven connectivity without requiring traditional VPNs or complex firewall configurations. Edge Routers are deployed at the edge of networks or cloud instances and are key to enabling application-specific networking with high performance and security.
+
+## Deploying a Marketplace App
+
+{{% content "deploy-marketplace-apps-shortguide" %}}
+
+{{% content "marketplace-verify-standard-shortguide" %}}
+
+{{< note >}}
+**Estimated deployment time:** Once a compute instance finishes provisioning, the NetFoundry installation takes 3-5 minutes.
+{{< /note >}}
+
+## Configuration Options
+
+- **Supported distributions:** Ubuntu 24.04 LTS
+- **Recommended minimum plan:** All plan types and sizes can be used.
+
+### NetFoundry Options
+
+- **Limited sudo user** *(required)*: Enter your preferred username for the limited user. Don't use capital letters, spaces, or special characters.
+- **Disable root access over SSH** *(required)*: Select whether you want to block the root user from logging in over SSH. You can still switch to the root user once logged in, and you can also log in as root through Lish.
+- **Registration Key** *(required)*: Enter your NetFoundry Edge Router registration key. To obtain a registration key, create a [NetFoundry](https://netfoundry.io/) account.
+
+{{% content "marketplace-special-character-limitations-shortguide" %}}
+
+### Obtain the Credentials
+
+Once the app is deployed, you need to obtain the credentials from the server.
+
+To obtain the credentials:
+
+1. Log in to your new Compute Instance using one of the methods below:
+
+ - **Lish Console**: Log in to Cloud Manager, click the **Linodes** link in the left menu, and select the Compute Instance you just deployed. Click **Launch LISH Console**. Log in as the `root` user. To learn more, see [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/).
+ - **SSH**: Log in to your Compute Instance over SSH using the `root` user. To learn how, see [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/).
+
+1. Run the following command to access the credentials file:
+
+ ```command
+ cat /home/$USERNAME/.credentials
+ ```
+
+This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file.
+
+## Getting Started After Deployment
+
+In order to utilize this Marketplace app, we assume you have a working account in the NetFoundry console and have the ability to create and manage endpoints and edge routers. If you don't have an account, you need to [create it](https://netfoundry.zendesk.com/auth/v2/login/registration) and log in to it in order to fully use this deployment.
+
+
+{{% content "marketplace-update-note-shortguide" %}}
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 857720e5a48..6a4caaa1233 100644
--- a/go.mod
+++ b/go.mod
@@ -7,5 +7,5 @@ require (
github.com/gohugoio/hugo-mod-jslibs/turbo/v7 v7.20300.20000 // indirect
github.com/instantpage/instant.page v5.1.1+incompatible // indirect
github.com/linode/linode-api-docs/v4 v4.176.0 // indirect
- github.com/linode/linode-docs-theme v0.0.0-20250528190530-9bd6611ce1d3 // indirect
+ github.com/linode/linode-docs-theme v0.0.0-20250624150139-09c1c3b7a94d // indirect
)
diff --git a/go.sum b/go.sum
index 77f71907ebd..a529b7d2ff3 100644
--- a/go.sum
+++ b/go.sum
@@ -326,6 +326,8 @@ github.com/linode/linode-docs-theme v0.0.0-20250513144910-cddeb56c075c h1:mGZmro
github.com/linode/linode-docs-theme v0.0.0-20250513144910-cddeb56c075c/go.mod h1:D4CREqxDmJW1ubkMagGdNUhKKE3h3ASWmnEUpqnJcsA=
github.com/linode/linode-docs-theme v0.0.0-20250528190530-9bd6611ce1d3 h1:6e7435SGTfxIQQY0vY8X+yLNmzwEhUVhtOAPwlNMBKo=
github.com/linode/linode-docs-theme v0.0.0-20250528190530-9bd6611ce1d3/go.mod h1:D4CREqxDmJW1ubkMagGdNUhKKE3h3ASWmnEUpqnJcsA=
+github.com/linode/linode-docs-theme v0.0.0-20250624150139-09c1c3b7a94d h1:nErtgV8sylR8diN4RFqukgOOUH3Hda2Ws92ejUP6Ltg=
+github.com/linode/linode-docs-theme v0.0.0-20250624150139-09c1c3b7a94d/go.mod h1:l2L/o9wC9Hzy6MmArUxOfeMCYy8UzkguyvdV4RMVWmA=
github.com/linode/linode-website-partials v0.0.0-20221205205120-b6ea1aaa59fb/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=
github.com/linode/linode-website-partials v0.0.0-20221222200538-99862e429110/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=
github.com/linode/linode-website-partials v0.0.0-20230201145731-a8703d0a954a/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=
@@ -356,3 +358,4 @@ github.com/linode/linode-website-partials v0.0.0-20250103220935-91c22c1d82ec/go.
github.com/linode/linode-website-partials v0.0.0-20250219200959-c4330f86e593/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=
github.com/linode/linode-website-partials v0.0.0-20250326190321-bed77d268dc5/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=
github.com/linode/linode-website-partials v0.0.0-20250409155719-a69a3433df0c/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=
+github.com/linode/linode-website-partials v0.0.0-20250613135058-1f0f32424646/go.mod h1:K1Em3lwb16JiCwNVftAFwWGhyB9Zkl/nXhxjBBUC1Ao=