diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index 880bbb83..a4c6f24f 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -1788,7 +1788,7 @@ https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/shortcuts/inview.min.js
https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/shortcuts/sticky.min.js
https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/waypoints.debug.js
https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/zepto.waypoints.min.js
-https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/2.6.0/webcomponents-loader.min.js
+https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/2.7.0/webcomponents-loader.min.js
https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js
https://cdnjs.cloudflare.com/ajax/libs/webrtc-adapter/6.4.8/adapter.min.js
https://cdnjs.cloudflare.com/ajax/libs/webrtc-adapter/7.7.1/adapter.min.js
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index df849667..eae67b0f 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -471,6 +471,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/vuex/3.')) return '3.6.2';
if (type.startsWith('/vuex/4.')) return '4.1.0';
if (type.startsWith('/waypoints/4.')) return '4.0.1';
+ if (type.startsWith('/webcomponentsjs/')) return '2.7.0';
if (type.startsWith('/webfont')) return '1.6.28';
if (type.startsWith('/webrtc-adapter/6.')) return '6.4.8';
if (type.startsWith('/webrtc-adapter/7.')) return '7.7.1';
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index af653e4f..b893f730 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -31,6 +31,7 @@
p5.js v1.4.2 -> v1.5.0 (#1178)
instantsearch.js v4.48.0 -> v4.48.1 (#1179)
pure v2.1.0 -> v2.2.0 (#1180)
+ webcomponentsjs v2.6.0 -> v2.7.0 (#1184)
Mapping
diff --git a/resources/webcomponentsjs/2.7.0/webcomponents-loader.min.jsm b/resources/webcomponentsjs/2.7.0/webcomponents-loader.min.jsm
new file mode 100644
index 00000000..e31cd501
--- /dev/null
+++ b/resources/webcomponentsjs/2.7.0/webcomponents-loader.min.jsm
@@ -0,0 +1 @@
+!function(){"use strict";var t,n=!1,o=[],d=!1;function e(){window.WebComponents.ready=!0,document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))}function r(){window.customElements&&customElements.polyfillWrapFlushCallback&&customElements.polyfillWrapFlushCallback(function(e){t=e,d&&t()})}function c(){window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(window.document),n=!0,i().then(e)}function i(){d=!1;var e=o.map(function(e){return e instanceof Function?e():e});return o=[],Promise.all(e).then(function(){d=!0,t&&t()}).catch(function(e){console.error(e)})}window.WebComponents=window.WebComponents||{},window.WebComponents.ready=window.WebComponents.ready||!1,window.WebComponents.waitFor=window.WebComponents.waitFor||function(e){e&&(o.push(e),n&&i())},window.WebComponents._batchCustomElements=r;var s,a,l="webcomponents-loader.js",w=[],m=("attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&(!window.ShadyDOM||!window.ShadyDOM.force)||w.push("sd"),window.customElements&&!window.customElements.forcePolyfill||w.push("ce"),function(){var e=document.createElement("template");if(!("content"in e))return!0;if(!(e.content.cloneNode()instanceof DocumentFragment))return!0;var t=document.createElement("template"),t=(t.content.appendChild(document.createElement("div")),e.content.appendChild(t),e.cloneNode(!0));return 0===t.content.childNodes.length||0===t.content.firstChild.content.childNodes.length}());function u(e){return e}(w=window.Promise&&Array.from&&window.URL&&window.Symbol&&!m?w:["sd-ce-pf"]).length?(m={createHTML:u,createScript:u,createScriptURL:u},m=window.trustedTypes&&window.trustedTypes.createPolicy("webcomponents-loader",m)||m,w="bundles/webcomponents-"+w.join("-")+".js",window.WebComponents.root?(s=window.WebComponents.root+w,window.trustedTypes&&window.trustedTypes.isScriptURL(window.WebComponents.root)&&(s=m.createScriptURL(s))):(a=document.querySelector('script[src*="'+l+'"]'),s=m.createScriptURL(a.src.replace(l,w))),(a=document.createElement("script")).src=s,"loading"===document.readyState?(a.setAttribute("onload",m.createScript("window.WebComponents._batchCustomElements()")),document.write(m.createHTML(a.outerHTML)),document.addEventListener("DOMContentLoaded",c)):(a.addEventListener("load",function(){r(),c()}),a.addEventListener("error",function(){throw new Error("Could not load polyfill bundle"+s)}),document.head.appendChild(a))):"complete"===document.readyState?(n=!0,e()):(window.addEventListener("load",c),window.addEventListener("DOMContentLoaded",function(){window.removeEventListener("load",c),c()}))}();
\ No newline at end of file
diff --git a/resources/webcomponentsjs/latest/webcomponents-loader.min.jsm b/resources/webcomponentsjs/latest/webcomponents-loader.min.jsm
deleted file mode 100644
index f0254d27..00000000
--- a/resources/webcomponentsjs/latest/webcomponents-loader.min.jsm
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var n,t=!1,o=[],d=!1;function e(){window.WebComponents.ready=!0,document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))}function i(){window.customElements&&customElements.polyfillWrapFlushCallback&&customElements.polyfillWrapFlushCallback(function(e){n=e,d&&n()})}function c(){window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(window.document),t=!0,r().then(e)}function r(){d=!1;var e=o.map(function(e){return e instanceof Function?e():e});return o=[],Promise.all(e).then(function(){d=!0,n&&n()}).catch(function(e){console.error(e)})}window.WebComponents=window.WebComponents||{},window.WebComponents.ready=window.WebComponents.ready||!1,window.WebComponents.waitFor=window.WebComponents.waitFor||function(e){e&&(o.push(e),t&&r())},window.WebComponents._batchCustomElements=i;var l="webcomponents-loader.js",a=[];"attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&(!window.ShadyDOM||!window.ShadyDOM.force)||a.push("sd"),window.customElements&&!window.customElements.forcePolyfill||a.push("ce");var s,m=function(){var e=document.createElement("template");if(!("content"in e))return!0;if(!(e.content.cloneNode()instanceof DocumentFragment))return!0;var n=document.createElement("template");n.content.appendChild(document.createElement("div")),e.content.appendChild(n);e=e.cloneNode(!0);return 0===e.content.childNodes.length||0===e.content.firstChild.content.childNodes.length}();(a=!(window.Promise&&Array.from&&window.URL&&window.Symbol)||m?["sd-ce-pf"]:a).length?(a="bundles/webcomponents-"+a.join("-")+".js",s=window.WebComponents.root?window.WebComponents.root+a:document.querySelector('script[src*="'+l+'"]').src.replace(l,a),(a=document.createElement("script")).src=s,"loading"===document.readyState?(a.setAttribute("onload","window.WebComponents._batchCustomElements()"),document.write(a.outerHTML),document.addEventListener("DOMContentLoaded",c)):(a.addEventListener("load",function(){i(),c()}),a.addEventListener("error",function(){throw new Error("Could not load polyfill bundle"+s)}),document.head.appendChild(a))):"complete"===document.readyState?(t=!0,e()):(window.addEventListener("load",c),window.addEventListener("DOMContentLoaded",function(){window.removeEventListener("load",c),c()}))}();
\ No newline at end of file