From 3481cc0349afcc1fc5bc5c7b197a86adc27f5e80 Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Fri, 10 Nov 2017 14:44:47 +0100
Subject: [PATCH] Fix broken CSS in browser and plugins after a TweetDeck
 update

---
 Resources/Plugins/edit-design/.meta      |  2 +-
 Resources/Plugins/edit-design/browser.js | 36 +++++++--------
 Resources/Plugins/edit-design/modal.html | 34 ++++++--------
 Resources/Plugins/templates/.meta        |  2 +-
 Resources/Plugins/templates/browser.js   | 56 ++++++++++++------------
 Resources/Scripts/styles/browser.css     | 42 +++++++++---------
 6 files changed, 82 insertions(+), 90 deletions(-)

diff --git a/Resources/Plugins/edit-design/.meta b/Resources/Plugins/edit-design/.meta
index 62bbd8d9..0b088778 100644
--- a/Resources/Plugins/edit-design/.meta
+++ b/Resources/Plugins/edit-design/.meta
@@ -8,7 +8,7 @@ Edit layout & design
 chylex
 
 [version]
-1.1.6
+1.1.7
 
 [website]
 https://tweetduck.chylex.com
diff --git a/Resources/Plugins/edit-design/browser.js b/Resources/Plugins/edit-design/browser.js
index c92a621a..3805b6b7 100644
--- a/Resources/Plugins/edit-design/browser.js
+++ b/Resources/Plugins/edit-design/browser.js
@@ -364,23 +364,23 @@ enabled(){
     if (this.config.themeColorTweaks){
       switch(TD.settings.getTheme()){
         case "dark":
-          this.css.insert(".app-content, .app-columns-container { background-color: #444448 }");
-          this.css.insert(".column-drag-handle { opacity: 0.5 }");
-          this.css.insert(".column-drag-handle:hover { opacity: 1 }");
-          this.css.insert(".scroll-styled-v:not(.scroll-alt)::-webkit-scrollbar-thumb, .scroll-styled-h:not(.scroll-alt)::-webkit-scrollbar-thumb { background-color: #666 }");
+          this.css.insert(".app-content, .app-columns-container { background-color: #444448 !important }");
+          this.css.insert(".column-drag-handle { opacity: 0.5 !important }");
+          this.css.insert(".column-drag-handle:hover { opacity: 1 !important }");
+          this.css.insert(".scroll-styled-v:not(.scroll-alt)::-webkit-scrollbar-thumb, .scroll-styled-h:not(.scroll-alt)::-webkit-scrollbar-thumb { background-color: #666 !important }");
           notificationScrollbarColor = "666";
           break;
 
         case "light":
-          this.css.insert(".scroll-styled-v:not(.scroll-alt)::-webkit-scrollbar-thumb, .scroll-styled-h:not(.scroll-alt)::-webkit-scrollbar-thumb { background-color: #d2d6da }");
-          this.css.insert(".app-columns-container.scroll-styled-h::-webkit-scrollbar-thumb:not(:hover) { background-color: #a5aeb5 }");
+          this.css.insert(".scroll-styled-v:not(.scroll-alt)::-webkit-scrollbar-thumb, .scroll-styled-h:not(.scroll-alt)::-webkit-scrollbar-thumb { background-color: #d2d6da !important }");
+          this.css.insert(".app-columns-container.scroll-styled-h::-webkit-scrollbar-thumb:not(:hover) { background-color: #a5aeb5 !important }");
           notificationScrollbarColor = "a5aeb5";
           break;
       }
     }
     
     if (this.config.showCharacterCount){
-      this.css.insert(".js-character-count.is-hidden { display: inline !important }");
+      this.css.insert("#tduck .js-character-count.is-hidden { display: inline !important }");
     }
     
     if (this.config.hideTweetActions){
@@ -391,8 +391,8 @@ enabled(){
     }
     
     if (this.config.moveTweetActionsToRight){
-      this.css.insert(".tweet-actions { float: right !important; width: auto !important }");
-      this.css.insert(".tweet-actions > li:nth-child(4) { margin-right: 2px !important }");
+      this.css.insert("#tduck .tweet-actions { float: right !important; width: auto !important }");
+      this.css.insert("#tduck .tweet-actions > li:nth-child(4) { margin-right: 2px !important }");
     }
     
     if (this.config.increaseQuoteTextSize){
@@ -491,13 +491,13 @@ enabled(){
       this.icons = document.createElement("style");
       this.icons.innerHTML = `
 @font-face {
-  font-family: 'oldfont';
+  font-family: '_of';
   src: url("https://ton.twimg.com/tweetdeck-web/web/assets/fonts/tweetdeck-regular-webfont.5f4ea87976.woff") format("woff");
   font-weight: normal;
   font-style: normal;
 }
 
-${iconData.map(entry => `${entry[0]}:before{content:\"\\f0${entry[1]}\";font-family:oldfont!important}`).join("")}
+${iconData.map(entry => `#tduck ${entry[0]}:before{content:\"\\f0${entry[1]}\";font-family:_of!important}`).join("")}
 
 .drawer .btn .icon, .app-header .btn .icon { line-height: 1em !important }
 .column-header .column-type-icon { bottom: 26px !important }
@@ -552,13 +552,13 @@ ${this.config.increaseQuoteTextSize ? `
 ` : ``}
 
 ${this.config.revertIcons ? `
-@font-face { font-family: 'oldfont'; src: url(\"https://ton.twimg.com/tweetdeck-web/web/assets/fonts/tweetdeck-regular-webfont.5f4ea87976.woff\") format(\"woff\"); font-weight: normal; font-style: normal }
-.icon-reply:before{content:"\\f006";font-family:oldfont}
-.icon-heart-filled:before{content:"\\f055";font-family:oldfont}
-.icon-retweet-filled:before{content:"\\f008";font-family:oldfont}
-.icon-list-filled:before{content:"\\f014";font-family:oldfont}
-.icon-user-filled:before{content:"\\f035";font-family:oldfont}
-.icon-user-dd:before{content:"\\f01a";font-family:oldfont}
+@font-face { font-family: '_of'; src: url(\"https://ton.twimg.com/tweetdeck-web/web/assets/fonts/tweetdeck-regular-webfont.5f4ea87976.woff\") format(\"woff\"); font-weight: normal; font-style: normal }
+#tduck .icon-reply:before{content:"\\f006";font-family:_of!important}
+#tduck .icon-heart-filled:before{content:"\\f055";font-family:_of!important}
+#tduck .icon-retweet-filled:before{content:"\\f008";font-family:_of!important}
+#tduck .icon-list-filled:before{content:"\\f014";font-family:_of!important}
+#tduck .icon-user-filled:before{content:"\\f035";font-family:_of!important}
+#tduck .icon-user-dd:before{content:"\\f01a";font-family:_of!important}
 ` : ``}
 
 ${notificationScrollbarColor ? `
diff --git a/Resources/Plugins/edit-design/modal.html b/Resources/Plugins/edit-design/modal.html
index 790960dc..13efd674 100644
--- a/Resources/Plugins/edit-design/modal.html
+++ b/Resources/Plugins/edit-design/modal.html
@@ -1,4 +1,4 @@
-<div class="td-modal-panel js-modal-panel mdl s-tall-fixed is-inverted-dark">
+<div id="edit-design-panel" class="js-modal-panel mdl s-tall-fixed is-inverted-dark">
   <header class="js-mdl-header mdl-header js-drag-handle">
     <h3 class="mdl-header-title js-header-title">TweetDuck - Layout &amp; Design</h3>
     <a href="#" class="mdl-dismiss js-dismiss link-normal-dark">
@@ -6,8 +6,8 @@
     </a>
   </header>
   <div class="mdl-inner">
-    <div class="td-modal-content mdl-content js-mdl-content horizontal-flow-container">
-      <div class="td-modal-inner-cols">
+    <div id="edit-design-panel-content" class="mdl-content js-mdl-content horizontal-flow-container">
+      <div id="edit-design-panel-inner-cols">
         <div class="l-column mdl-column">
           
           <!-- THEME -->
@@ -159,60 +159,52 @@
   
   /* Containers */
   
-  .td-modal-panel {
+  #edit-design-panel {
     width: 693px;
     height: 380px;
   }
   
-  .td-modal-inner-cols {
+  #edit-design-panel-inner-cols {
     padding: 0 6px;
   }
   
-  .td-modal-inner-cols .l-column {
+  #edit-design-panel-inner-cols .l-column {
     padding: 15px 9px;
     box-sizing: border-box;
     width: 225px;
     font-size: 0; /* fix custom font size breaking the modal layout */
   }
   
-  .td-modal-inner-cols .l-column:nth-child(3) {
+  #edit-design-panel-inner-cols .l-column:nth-child(3) {
     width: 200px;
   }
   
-  .td-modal-inner-full {
-    padding: 15px;
-  }
-  
-  .td-modal-inner-full .txt-center {
-    margin-bottom: 10px;
-  }
-  
   /* Elements */
   
-  .td-modal-content label {
+  #edit-design-panel-content label.txt-uppercase {
     margin-top: 18px;
   }
   
-  .td-modal-content label:first-child {
+  #edit-design-panel-content label.txt-uppercase:first-child {
     margin-top: 0;
   }
   
-  .td-modal-content label.radio {
+  #edit-design-panel-content label.radio {
     display: inline-block;
     margin: 0 16px 5px 4px;
     cursor: pointer;
   }
   
-  .td-modal-content label.checkbox {
+  #edit-design-panel-content label.checkbox {
     margin: 0 0 5px 4px;
     cursor: pointer;
   }
   
-  .td-modal-content select + label.checkbox {
+  #edit-design-panel-content select + label.checkbox {
     margin-top: 9px;
   }
   
-  .td-modal-content input.js-theme-checkbox, .td-modal-content input.js-theme-radio {
+  #edit-design-panel-content input.js-theme-checkbox, #edit-design-panel-content input.js-theme-radio {
     margin-top: 1px;
   }
   
diff --git a/Resources/Plugins/templates/.meta b/Resources/Plugins/templates/.meta
index eb20d75f..cd3fb6f0 100644
--- a/Resources/Plugins/templates/.meta
+++ b/Resources/Plugins/templates/.meta
@@ -8,7 +8,7 @@ Templates
 chylex
 
 [version]
-1.0.2
+1.0.3
 
 [website]
 https://tweetduck.chylex.com
diff --git a/Resources/Plugins/templates/browser.js b/Resources/Plugins/templates/browser.js
index 9094cfef..a17b8eaf 100644
--- a/Resources/Plugins/templates/browser.js
+++ b/Resources/Plugins/templates/browser.js
@@ -50,25 +50,25 @@ enabled(){
   this.css = window.TDPF_createCustomStyle(this);
   this.css.insert(".manage-templates-btn.active { color: #fff; box-shadow: 0 0 2px 3px #50a5e6; outline: 0; }");
   
-  this.css.insert(".templates-modal-wrap { width: 100%; height: 100%; padding: 49px; position: absolute; z-index: 999; box-sizing: border-box; background-color: rgba(0, 0, 0, 0.5); }");
-  this.css.insert(".templates-modal { width: 100%; height: 100%; background-color: #fff; display: flex; }");
-  this.css.insert(".templates-modal > div { display: flex; flex-direction: column; }");
+  this.css.insert("#templates-modal-wrap { width: 100%; height: 100%; padding: 49px; position: absolute; z-index: 999; box-sizing: border-box; background-color: rgba(0, 0, 0, 0.5); }");
+  this.css.insert("#templates-modal { width: 100%; height: 100%; background-color: #fff; display: flex; }");
+  this.css.insert("#templates-modal > div { display: flex; flex-direction: column; }");
   
   this.css.insert(".templates-modal-bottom { flex: 0 0 auto; padding: 16px; }");
-  this.css.insert(".template-list .templates-modal-bottom { display: flex; justify-content: space-between; }");
-  this.css.insert(".template-editor .templates-modal-bottom { text-align: right; }");
+  this.css.insert("#template-list .templates-modal-bottom { display: flex; justify-content: space-between; }");
+  this.css.insert("#template-editor .templates-modal-bottom { text-align: right; }");
   
-  this.css.insert(".template-list { height: 100%; flex: 1 1 auto; }");
-  this.css.insert(".template-list ul { list-style-type: none; font-size: 24px; color: #222; flex: 1 1 auto; padding: 12px; overflow-y: auto; }");
-  this.css.insert(".template-list li { display: block; width: 100%; padding: 4px 8px; box-sizing: border-box; }");
-  this.css.insert(".template-list li[data-template] { cursor: pointer; }");
-  this.css.insert(".template-list li[data-template]:hover { background-color: #d8d8d8; }");
-  this.css.insert(".template-list li span { white-space: nowrap; }");
-  this.css.insert(".template-list li .icon { opacity: 0.6; margin-left: 4px; padding: 3px; }");
-  this.css.insert(".template-list li .icon:hover { opacity: 1; }");
-  this.css.insert(".template-list li .template-actions { float: right; }");
+  this.css.insert("#template-list { height: 100%; flex: 1 1 auto; }");
+  this.css.insert("#template-list ul { list-style-type: none; font-size: 24px; color: #222; flex: 1 1 auto; padding: 12px; overflow-y: auto; }");
+  this.css.insert("#template-list li { display: block; width: 100%; padding: 4px 8px; box-sizing: border-box; }");
+  this.css.insert("#template-list li[data-template] { cursor: pointer; }");
+  this.css.insert("#template-list li[data-template]:hover { background-color: #d8d8d8; }");
+  this.css.insert("#template-list li span { white-space: nowrap; }");
+  this.css.insert("#template-list li .icon { opacity: 0.6; margin-left: 4px; padding: 3px; }");
+  this.css.insert("#template-list li .icon:hover { opacity: 1; }");
+  this.css.insert("#template-list li .template-actions { float: right; }");
   
-  this.css.insert(".template-editor { height: 100%; flex: 0 0 auto; width: 25vw; min-width: 150px; max-width: 400px; background-color: #485865; }");
+  this.css.insert("#template-editor { height: 100%; flex: 0 0 auto; width: 25vw; min-width: 150px; max-width: 400px; background-color: #485865; }");
   this.css.insert(".template-editor-form { flex: 1 1 auto; padding: 12px 16px; font-size: 14px; overflow-y: auto; }");
   this.css.insert(".template-editor-form .compose-text-title { margin: 24px 0 9px; }");
   this.css.insert(".template-editor-form .compose-text-title:first-child { margin-top: 0; }");
@@ -261,9 +261,9 @@ enabled(){
     $(".manage-templates-btn").addClass("active");
     
     let html = `
-<div class="templates-modal-wrap">
-  <div class="templates-modal">
-    <div class="template-list">
+<div id="templates-modal-wrap">
+  <div id="templates-modal">
+    <div id="template-list">
       <ul></ul>
       
       <div class="templates-modal-bottom">
@@ -272,7 +272,7 @@ enabled(){
       </div>
     </div>
 
-    <div class="template-editor invisible">
+    <div id="template-editor" class="invisible">
       <div class="template-editor-form">
         <div class="compose-text-title">Template Name</div>
         <input name="template-name" type="text">
@@ -320,7 +320,7 @@ enabled(){
     
     $(".js-app-content").prepend(html);
     
-    let ele = $(".templates-modal-wrap").first();
+    let ele = $("#templates-modal-wrap").first();
     
     ele.on("click", "li[data-template]", function(e){
       let template = me.config.templates[$(this).attr("data-template")];
@@ -332,7 +332,7 @@ enabled(){
       
       switch($(this).attr("data-action")){
         case "edit-template":
-          let editor = $(".template-editor");
+          let editor = $("#template-editor");
           
           if (editor.hasClass("invisible")){
             toggleEditor();
@@ -372,7 +372,7 @@ enabled(){
           break;
           
         case "editor-confirm":
-          let editor = $(".template-editor");
+          let editor = $("#template-editor");
           
           if (me.editingTemplate !== null){
             delete me.config.templates[me.editingTemplate];
@@ -408,15 +408,15 @@ enabled(){
   };
   
   var hideTemplateModal = function(){
-    $(".templates-modal-wrap").remove();
+    $("#templates-modal-wrap").remove();
     $(".manage-templates-btn").removeClass("active");
   };
   
   var toggleEditor = function(){
-    let editor = $(".template-editor");
+    let editor = $("#template-editor");
     $("[name]", editor).val("");
     
-    if ($("button[data-action='new-template']", ".template-list").add(editor).toggleClass("invisible").hasClass("invisible")){
+    if ($("button[data-action='new-template']", "#template-list").add(editor).toggleClass("invisible").hasClass("invisible")){
       me.editingTemplate = null;
     }
   };
@@ -435,7 +435,7 @@ enabled(){
       eles.push("<li>No templates available</li>");
     }
     
-    $(".template-list").children("ul").html(eles.join(""));
+    $("#template-list").children("ul").html(eles.join(""));
     
     if (save){
       this.saveConfig();
@@ -445,7 +445,7 @@ enabled(){
   // event handlers
   
   this.manageTemplatesButtonClickEvent = function(e){
-    if ($(".templates-modal-wrap").length){
+    if ($("#templates-modal-wrap").length){
       hideTemplateModal();
     }
     else{
@@ -471,7 +471,7 @@ disabled(){
   this.css.remove();
   
   $(".manage-templates-btn").remove();
-  $(".templates-modal-wrap").remove();
+  $("#templates-modal-wrap").remove();
   
   $(document).off("uiDrawerActive", this.drawerToggleEvent);
   
diff --git a/Resources/Scripts/styles/browser.css b/Resources/Scripts/styles/browser.css
index 108b8355..c43f9771 100644
--- a/Resources/Scripts/styles/browser.css
+++ b/Resources/Scripts/styles/browser.css
@@ -3,23 +3,23 @@
 /***********************/
 
 .scroll-styled-v::-webkit-scrollbar-thumb, .scroll-styled-h::-webkit-scrollbar-thumb, .antiscroll-scrollbar {
-  border-radius: 0;
+  border-radius: 0 !important;
 }
 
 .antiscroll-scrollbar-vertical {
-  margin-top: 0;
+  margin-top: 0 !important;
 }
 
 .antiscroll-scrollbar-horizontal {
-  margin-left: 0;
+  margin-left: 0 !important;
 }
 
 .scroll-styled-v:not(.antiscroll-inner)::-webkit-scrollbar {
-  width: 8px;
+  width: 8px !important;
 }
 
 .scroll-styled-h:not(.antiscroll-inner)::-webkit-scrollbar {
-  height: 8px;
+  height: 8px !important;
 }
 
 .app-columns-container::-webkit-scrollbar {
@@ -27,7 +27,7 @@
 }
 
 .app-columns-container::-webkit-scrollbar-track {
-  border-left: 0;
+  border-left: 0 !important;
 }
 
 .app-columns-container {
@@ -87,7 +87,7 @@
 }
 
 .app-header:not(.is-condensed) .nav-user-info {
-  padding: 0 5px;
+  padding: 0 5px !important;
 }
 
 /****************************************/
@@ -96,11 +96,11 @@
 
 .activity-header {
   align-items: center !important;
-  margin-bottom: 4px;
+  margin-bottom: 4px !important;
 }
 
 .activity-header .tweet-timestamp {
-  line-height: unset;
+  line-height: unset !important;
 }
 
 .account-bio.padding-t--5 {
@@ -126,12 +126,12 @@ html[data-td-theme='dark'] .stream-item:not(:hover) .js-user-actions-menu {
 
 a[data-full-url] {
   /* break long urls */
-  word-break: break-all;
+  word-break: break-all !important;
 }
 
 .is-video a:not([href*='youtu']) .icon-bg-dot, .is-gif .icon-bg-dot {
   /* change play icon on mp4s */
-  color: #9f51cf;
+  color: #9f51cf !important;
 }
 
 /***************************************/
@@ -147,7 +147,7 @@ a[data-full-url] {
 }
 
 .js-docked-compose footer {
-  display: none;
+  display: none !important;
 }
 
 .compose-content {
@@ -160,7 +160,7 @@ a[data-full-url] {
 
 .account-inline .username {
   /* move usernames a bit higher */
-  vertical-align: 10%;
+  vertical-align: 10% !important;
 }
 
 html[data-td-font='smallest'] .sprite-verified-mini {
@@ -184,7 +184,7 @@ html[data-td-font='smallest'] .badge-verified:before {
 
 .keyboard-shortcut-list {
   /* fix keyboard navigation alignment */
-  vertical-align: top;
+  vertical-align: top !important;
 }
 
 .tweet-detail-wrapper .js-media-gif-container {
@@ -194,7 +194,7 @@ html[data-td-font='smallest'] .badge-verified:before {
 
 .is-inverted-dark .inline-reply .btn:hover {
   /* Reply buttons in modals are bork */
-  background-color: transparent;
+  background-color: transparent !important;
 }
 
 /***************************************************************/
@@ -203,10 +203,10 @@ html[data-td-font='smallest'] .badge-verified:before {
 
 .column-nav-link .attribution {
   /* fix cut off account names */
-  position: absolute;
+  position: absolute !important;
 }
 
-.js-docked-compose .js-drawer-close {
+#tduck .js-docked-compose .js-drawer-close {
   /* fix close drawer button position */
   margin: 20px 0 0 !important;
 }
@@ -219,7 +219,7 @@ html[data-td-font='smallest'] .badge-verified:before {
 
 #account-safeguard-checkbox, #inline-account-safeguard-checkbox {
   /* fix "Ready to Tweet/send" alignment with the checkbox */
-  vertical-align: -15%;
+  vertical-align: -15% !important;
 }
 
 /************************************************/
@@ -231,7 +231,7 @@ html[data-td-font='smallest'] .badge-verified:before {
 }
 
 .js-column-header .column-header-link {
-  padding: 0;
+  padding: 0 !important;
 }
 
 .js-column-header .column-header-link .icon {
@@ -250,9 +250,9 @@ html[data-td-font='smallest'] .badge-verified:before {
 }
 
 .column:not(.is-options-open) .column-header {
-  border-bottom: none;
+  border-bottom: none !important;
 }
 
 .is-options-open .column-type-icon {
-  bottom: 27px;
+  bottom: 27px !important;
 }