├── .gitignore ├── LICENSE.md ├── README.md ├── sleeky-backend ├── assets │ ├── css │ │ ├── _base.scss │ │ ├── animate.min.css │ │ ├── dark.css │ │ ├── light.css │ │ └── themes │ │ │ ├── dark.scss │ │ │ └── light.scss │ ├── html │ │ └── form.html │ ├── img │ │ ├── delete.png │ │ ├── edit.png │ │ ├── favicon.ico │ │ ├── logo_black.png │ │ ├── logo_white.png │ │ ├── share.png │ │ └── stats.png │ └── js │ │ └── theme.js ├── package-lock.json ├── package.json └── plugin.php └── sleeky-frontend ├── frontend ├── assets │ ├── img │ │ ├── favicon.ico │ │ ├── logo-black.png │ │ ├── logo-large.png │ │ └── logo-small.png │ ├── sass │ │ └── styles.scss │ └── svg │ │ └── custom-url.svg ├── config.php ├── dist │ └── styles.css ├── footer.php ├── functions.php ├── gulpfile.js ├── header.php └── package.json └── index.php /.gitignore: -------------------------------------------------------------------------------- 1 | # OS generated files # 2 | ###################### 3 | .DS_Store 4 | .DS_Store? 5 | ._* 6 | .Spotlight-V100 7 | .Trashes 8 | ehthumbs.db 9 | Thumbs.db 10 | 11 | 12 | # Ignore YOURLS install # 13 | ###################### 14 | /admin 15 | /css 16 | /images 17 | /includes 18 | /js 19 | /pages 20 | /user 21 | composer.json 22 | yourls-api.php 23 | yourls-go.php 24 | yourls-infos.php 25 | yourls-loader.php 26 | assets/.sublime-grunt.cache 27 | .htaccess 28 | node_modules 29 | package-lock.json 30 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Flynn Tesoriero 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![sleeky logo](sleeky-frontend/frontend/assets/img/logo-small.png)](https://sleeky.flynntes.com) 2 | 3 | Sleeky is a minimal interface package for use with [YOURLS](https://github.com/YOURLS/YOURLS), an open source URL shortener. Sleeky adds a public interface and overhauls the backend (admin) interface. Using this theme you can create your own Bitly / URL shortening site or a shortening site for internal use at companies. 4 | 5 | Sleeky is split into two parts - **frontend** and **backend**. 6 | * **Frontend** adds a public user interface. Use this for creating a branded URL shortener or shortening service. 7 | * **Backend** makes the YOURLS backend look a lot prettier and makes various administrative tasks easier. 8 | 9 | [**Sleeky website & demo**](https://sleeky.flynntes.com) 10 | 11 | # Screenshots 12 | ![Frontend Screenshot](http://sleeky.flynntes.com/assets/img/slides/frontend.png) 13 | ![Backend Screenshot](http://sleeky.flynntes.com/assets/img/slides/light_index.png) 14 | 15 | ## Quick Start 16 | 1. Get a YOURLS install up and running. 17 | 2. Clone this repo. 18 | 3. Move the contents of the `sleeky-frontend` directory to the root of your YOURLS installation. 19 | 4. Open the frontend/config.php file and change the values to suit (Remember to setup reCAPTCHA). 20 | *Sleeky frontend is now installed a ready* 21 | 5. Move the `sleeky-backend` folder to the `user/plugins/` folder of your YOURLS installation. 22 | 6. Activate the plugin in the YOURLS admin area (`example.com/admin/plugins.php`). The plugin will show as Sleeky Backend. 23 | 7. Done. Sleeky is now installed 24 | 25 | ## Documentation 26 | Everything you need to know about Sleeky can be found in the Wiki! You can find that [here](https://github.com/Flynntes/Sleeky/wiki) 27 | 28 | ## Help 29 | Need a hand? I would love to help you out! Head over to my [site](http://flynntes.com/contact). Alternatively, you could open an issue on GitHub or you could [tweet me](http://twitter.com/flynntes). 30 | 31 | ## Versioning 32 | Sleeky follows the principles of [Semantic Versioning](http://semver.org/). 33 | 34 | ## License 35 | This code is released under the [MIT License](https://github.com/Flynntes/Sleeky/blob/master/LICENSE.md) 36 | -------------------------------------------------------------------------------- /sleeky-backend/assets/css/_base.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800'); 2 | @import url('https://fonts.googleapis.com/icon?family=Material+Icons'); 3 | 4 | // Mobile mixin 5 | @mixin for-size($range) { 6 | $phone-upper-boundary: 900px; 7 | $tablet-portrait-upper-boundary: 1100px; 8 | $tablet-landscape-upper-boundary: 1200px; 9 | $desktop-upper-boundary: 1800px; 10 | 11 | @if $range == phone-only { 12 | @media (max-width: #{$phone-upper-boundary - 1}) { @content; } 13 | } @else if $range == tablet-portrait-up { 14 | @media (min-width: $phone-upper-boundary) { @content; } 15 | } @else if $range == tablet-landscape-up { 16 | @media (min-width: $tablet-portrait-upper-boundary) { @content; } 17 | } @else if $range == desktop-up { 18 | @media (min-width: $tablet-landscape-upper-boundary) { @content; } 19 | } @else if $range == big-desktop-up { 20 | @media (min-width: $desktop-upper-boundary) { @content; } 21 | } 22 | } 23 | 24 | // Use it like this: 25 | // @include for-size(phone-only) { 26 | // margin: 30px; 27 | // } 28 | 29 | // 30 | // Globals 31 | // 32 | body { 33 | background-color: $darker; 34 | display: inline; 35 | } 36 | 37 | div, p, td, input, p { 38 | font-family: 'Open Sans', sans-serif !important; 39 | } 40 | 41 | h1, 42 | h2 { 43 | color: $title; 44 | } 45 | 46 | p { 47 | color: $text; 48 | } 49 | 50 | a, a:link, a:active, a:visited { 51 | color: #828282; 52 | text-decoration: none; 53 | } 54 | 55 | a:hover { 56 | color: darken($title, 20%); 57 | transition: 0.4s all; 58 | } 59 | 60 | input { 61 | padding: 10px; 62 | border: none !important; 63 | background: $light !important; 64 | color: $text !important; 65 | font-size: 1em !important; 66 | outline: none; 67 | margin: 0px 5px !important; 68 | border-radius: 0 !important; 69 | 70 | @if ($theme == "light") { 71 | border-radius: 3px !important; 72 | } 73 | } 74 | 75 | input.button, 76 | input.submit, 77 | input[type="submit"] { 78 | border-left: 7px solid $accent !important; 79 | background: $light !important; 80 | font-weight: 600; 81 | transition: 0.3s all !important; 82 | cursor: pointer; 83 | 84 | @if ($theme == "light") { 85 | background: $accent !important; 86 | border-left: none !important; 87 | color: white !important; 88 | font-weight: 700; 89 | } 90 | } 91 | 92 | // Need to fix this, because I've had to copy this down lower to make it apply to the add URL button 93 | input.button:hover, 94 | input.submit:hover, 95 | input[type="submit"]:hover { 96 | background: darken($accent, 15%) !important; 97 | 98 | @if ($theme == "light") { 99 | background: darken($accent, 15%) !important; 100 | } 101 | } 102 | 103 | input[type="button"]:disabled, 104 | input[type="submit"]:disabled { 105 | cursor: not-allowed; 106 | } 107 | 108 | input.text, 109 | input[type="text"] { 110 | border: 1px solid rgba(255, 255, 255, 0.25) !important; 111 | transition: 0.4s all; 112 | } 113 | 114 | @if ($theme != "light") { 115 | input.text:active, 116 | input.text:focus { 117 | border: 1px solid $accent !important; 118 | } 119 | } 120 | 121 | select { 122 | width: 150px; 123 | padding: 5px 35px 5px 10px; 124 | // font-size: 0.9em; 125 | border: none; 126 | border-radius: 0; 127 | height: 26px; 128 | -webkit-appearance: none; 129 | -moz-appearance: none; 130 | appearance: none; 131 | color: $text; 132 | background: url(data:image/png;base64,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) 96% / 15% no-repeat $light; 133 | margin: 5px 10px; 134 | transition: 0.4s all; 135 | outline: none; 136 | } 137 | 138 | select:hover { 139 | background: url(data:image/png;base64,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) 96% / 15% no-repeat $light; 140 | } 141 | 142 | #javascript_error { 143 | background: red; 144 | color: white; 145 | padding: 20px; 146 | margin-top: 10px; 147 | } 148 | 149 | // End Globals 150 | 151 | // 152 | // Notification Bar 153 | // 154 | .jquery-notify-bar { 155 | color: #fff; 156 | text-shadow: none; 157 | border: none; 158 | opacity: 1; 159 | box-shadow: none; 160 | font-size: 1.1em; 161 | font-weight: 500; 162 | position: static; 163 | margin-top: 30px; 164 | margin-bottom: -45px; 165 | padding: 10px; 166 | 167 | a, a:link, a:active, a:visited { 168 | color: white; 169 | } 170 | } 171 | 172 | .jquery-notify-bar.error, 173 | .jquery-notify-bar.fail { 174 | background-color: #FF9800; 175 | color: white; 176 | } 177 | 178 | .jquery-notify-bar.success { 179 | color: white; 180 | background-color: #4CAF50; 181 | } 182 | 183 | // End Notification Bar 184 | 185 | // 186 | // Login page 187 | // 188 | .login { 189 | #wrap { 190 | margin: auto; 191 | } 192 | 193 | label { 194 | font-size: 1em; 195 | font-weight: 600; 196 | } 197 | 198 | .login-logo { 199 | width: 150px; 200 | margin: 30px auto; 201 | display: flex; 202 | } 203 | 204 | input.text { 205 | width: 270px !important; 206 | } 207 | 208 | input.button { 209 | font-weight: 600; 210 | padding: 10px 25px; 211 | margin-top: 15px !important; 212 | font-weight: 600; 213 | 214 | @if ($theme == "light") { 215 | background: $accent !important; 216 | } else { 217 | background: $light !important; 218 | border-left: 7px solid $accent !important; 219 | } 220 | } 221 | 222 | input.button:hover { 223 | background: darken($accent, 10%) !important; 224 | } 225 | 226 | .error { 227 | padding: 10px; 228 | background: $accent; 229 | color: white; 230 | position: fixed; 231 | top: 0; 232 | left: 0; 233 | width: 100%; 234 | margin: 0; 235 | text-align: center 236 | } 237 | } 238 | 239 | // End login page 240 | 241 | // 242 | // Start Index page 243 | // 244 | .index { 245 | #add-url { 246 | width: 200px; 247 | } 248 | 249 | #new_url_form { 250 | box-sizing: border-box; 251 | overflow: hidden; 252 | // min-width: 900px; 253 | } 254 | 255 | #new_url { 256 | border: none; 257 | background: $default; 258 | text-align: left; 259 | 260 | input.button { 261 | margin-top: 10px !important; 262 | } 263 | 264 | div { 265 | background: $default; 266 | padding: 4px; 267 | padding-top: 0px; 268 | } 269 | } 270 | 271 | .create { 272 | background: $accent !important; 273 | width: 150px; 274 | font-size: 1.3em !important; 275 | border: none !important; 276 | font-weight: 700; 277 | text-align: center; 278 | margin-top: 10px !important; 279 | margin-left: 20px !important; 280 | } 281 | 282 | .top { 283 | position: absolute; 284 | top: 0; 285 | left: 0; 286 | width: 100vw; 287 | height: 50px; 288 | 289 | @if ($theme == "light") { 290 | background: darken($accent, 10%); 291 | } @else { 292 | background: $default; 293 | } 294 | 295 | label { 296 | font-size: 1em; 297 | font-weight: 600; 298 | color: $text; 299 | 300 | @if ($theme == "light") { 301 | color: $default; 302 | } 303 | } 304 | 305 | input.text { 306 | width: 360px; 307 | padding: 4px; 308 | font-weight: 200; 309 | font-size: 1em !important; 310 | 311 | @if ($theme == "light") { 312 | background: $default !important; 313 | } @else { 314 | background: $lightest !important; 315 | } 316 | } 317 | 318 | .short { 319 | padding-left: 10px; 320 | } 321 | 322 | #add-keyword { 323 | width: 100px; 324 | } 325 | 326 | input.button { 327 | font-weight: 500; 328 | padding: 5px 10px; 329 | font-size: 1em !important; 330 | margin-left: 10px !important; 331 | background: $lightest !important; 332 | 333 | @if ($theme == "light") { 334 | background: $default !important; 335 | font-weight: 700; 336 | color: $accent !important; 337 | } 338 | } 339 | 340 | input.button:hover { 341 | background: darken($accent, 10%) !important; 342 | 343 | @if ($theme == "light") { 344 | background: darken(white, 10%) !important; 345 | } 346 | } 347 | 348 | #new_url_form { 349 | margin-left: 260px; 350 | padding: 12px; 351 | } 352 | } 353 | 354 | // Table stuff 355 | table.tblSorter { 356 | background-color: $default; 357 | color: $text; 358 | 359 | a { 360 | color: $text; 361 | } 362 | 363 | small a { 364 | color: darken(white, 50%) 365 | } 366 | 367 | thead tr .tablesorter-header { 368 | padding: 10px; 369 | } 370 | 371 | tfoot tr { 372 | background-color: $default; 373 | } 374 | 375 | thead tr th, 376 | tfoot tr th, 377 | th.header { 378 | background-color: transparent; 379 | border: none; 380 | /* font-size: 8pt; */ 381 | padding: 4px; 382 | } 383 | 384 | thead tr .tablesorter-headerAsc, 385 | thead tr .tablesorter-headerDesc { 386 | background-color: $lightest !important; 387 | } 388 | 389 | tbody td { 390 | color: $text; 391 | padding: 5px; 392 | background-color: $light; 393 | vertical-align: middle; 394 | transition: 0.4s all; 395 | } 396 | 397 | tbody tr:hover td { 398 | background-color: $lightest !important; 399 | } 400 | 401 | tbody tr.normal-row td { 402 | background: $light; 403 | } 404 | 405 | .keyword { 406 | border-left: 7px solid $accent; 407 | } 408 | 409 | input.text { 410 | padding: 5px; 411 | margin: 8px 5px !important; 412 | } 413 | 414 | .navigation .nav_link a { 415 | background: $light; 416 | border: none; 417 | 418 | &:hover { 419 | background: $lightest; 420 | } 421 | } 422 | 423 | tr.edit-row td { 424 | background: $default !important; 425 | } 426 | 427 | // Icons 428 | $icons-list: stats, share, edit, delete; 429 | @each $icon in $icons-list { 430 | @if $icon == delete { 431 | td.actions .button_#{$icon} { 432 | background: red url(../img/#{$icon}.png) 0px center no-repeat; 433 | background-size: 23px; 434 | background-position: center; 435 | border: none; 436 | padding: 3px; 437 | border-radius: 2px; 438 | 439 | &:hover { 440 | background: darken(red, 10%) url(../img/#{$icon}.png) 0px center no-repeat; 441 | background-size: 23px; 442 | background-position: center; 443 | } 444 | } 445 | } @else { 446 | td.actions .button_#{$icon} { 447 | background: $accent url(../img/#{$icon}.png) 0px center no-repeat; 448 | background-size: 23px; 449 | background-position: center; 450 | border: none; 451 | padding: 3px; 452 | border-radius: 2px; 453 | 454 | &:hover { 455 | background: darken($accent, 10%) url(../img/#{$icon}.png) 0px center no-repeat; 456 | background-size: 23px; 457 | background-position: center; 458 | } 459 | } 460 | } 461 | } 462 | } 463 | } 464 | 465 | // End index page 466 | 467 | 468 | // 469 | // Nav 470 | // 471 | nav { 472 | background: $default; 473 | height: 100%; 474 | position: fixed; 475 | top: 0; 476 | left: 0; 477 | padding: 50px 30px; 478 | width: 200px; 479 | z-index: 10; 480 | 481 | li#admin_menu_logout_link { 482 | font-size: 1.3em; 483 | } 484 | 485 | ul#admin_menu li:hover { 486 | list-style-type: none; 487 | color: darken($title, 20%); 488 | } 489 | 490 | ul#admin_menu li { 491 | color: $title; 492 | padding: 5px 0; 493 | } 494 | 495 | #admin_menu_logout_link:hover { 496 | color: $title !important; 497 | } 498 | 499 | .admin_menu_sublevel { 500 | font-weight: 100; 501 | margin-left: -20px; 502 | } 503 | 504 | .material-icons { 505 | font-size: 1em; 506 | vertical-align: middle; 507 | margin-top: -1px; 508 | } 509 | 510 | ul { 511 | list-style-type: none; 512 | } 513 | } 514 | 515 | img.logo { 516 | width: 90px; 517 | position: fixed; 518 | top: 0; 519 | left: 0; 520 | background: $accent; 521 | padding: 9px 150px 8px 20px; 522 | z-index: 20; 523 | } 524 | 525 | .nav-open { 526 | color: white; 527 | position: fixed; 528 | top: 0; 529 | right: 0; 530 | z-index: 30; 531 | padding: 10px 15px; 532 | cursor: pointer; 533 | display: none; 534 | 535 | i { 536 | font-size: 2em; 537 | line-height: 30px; 538 | } 539 | } 540 | 541 | header { 542 | display: none; 543 | } 544 | 545 | // End nav 546 | 547 | // 548 | // Information 549 | // 550 | #wrap { 551 | #tabs { 552 | min-width: 580px; 553 | 554 | .tab { 555 | background: $light !important; 556 | } 557 | 558 | .wrap_unfloat { 559 | margin-bottom: -5px; 560 | } 561 | 562 | ul#headers { 563 | border: none; 564 | padding: 0px; 565 | } 566 | 567 | li { 568 | color: $text; 569 | } 570 | 571 | #historical_clicks li:hover { 572 | background: darken($default, 10%) !important; 573 | } 574 | 575 | ul#headers li a, 576 | #stats_lines li a { 577 | outline: none; 578 | border: none; 579 | border-radius: 0; 580 | background: $light; 581 | color: $text; 582 | padding: 10px 15px 7px 25px; 583 | 584 | &:hover { 585 | background: darken($default, 10%); 586 | } 587 | 588 | h2 { 589 | font-weight: 400; 590 | font-size: 1em; 591 | } 592 | 593 | &.selected { 594 | background: $lightest; 595 | border-bottom: 2px solid $accent; 596 | 597 | &:hover { 598 | background: darken($default, 15%); 599 | } 600 | } 601 | } 602 | 603 | #stats_lines li a { 604 | padding: 7px 15px; 605 | } 606 | 607 | ul.toggle_display { 608 | border: none; 609 | } 610 | 611 | svg { 612 | ellipse { 613 | fill: $accent; 614 | } 615 | } 616 | } 617 | } 618 | 619 | // 620 | // General Styles 621 | // 622 | 623 | body.index #wrap { 624 | padding-top: 50px; 625 | } 626 | 627 | #wrap { 628 | background: none; 629 | margin-left: 270px; 630 | border: none; 631 | color: $text; 632 | max-width: 100%; 633 | } 634 | 635 | .notice { 636 | width: calc(100% - 22px); 637 | margin: 0; 638 | padding: 0; 639 | border-radius: 0; 640 | background: $accent; 641 | border: 1px solid $accent; 642 | padding: 10px; 643 | 644 | p { 645 | color: white; 646 | } 647 | } 648 | 649 | #shareboxes { 650 | margin-top: -10px; 651 | } 652 | 653 | #sharebox { 654 | width: 558px; 655 | margin-right: 0px; 656 | } 657 | 658 | div.share { 659 | background: $default; 660 | border-radius: 0; 661 | border: none; 662 | padding: 0px 20px 10px; 663 | margin-top: 10px; 664 | 665 | textarea { 666 | background: $light; 667 | color: $text; 668 | border: none; 669 | padding: 3px; 670 | outline: none; 671 | margin: 1px !important; 672 | } 673 | 674 | #charcount { 675 | padding-left: 5px; 676 | color: $text; 677 | } 678 | 679 | #share_links a { 680 | color: $text; 681 | } 682 | } 683 | 684 | .sub_wrap, 685 | .plugins main, 686 | .plugin_page_sleeky_settings main, 687 | code { 688 | background: $default; 689 | padding: 10px; 690 | padding: 5px 25px; 691 | max-width: 100%; 692 | 693 | span { 694 | background: rgba(255, 255, 255, 0.2); 695 | } 696 | 697 | code, 698 | tt { 699 | background: rgba(0, 123, 255, 0.7); 700 | 701 | @if ($theme == "light") { 702 | background: rgba(35, 185, 222, 0.5); 703 | } 704 | } 705 | 706 | a.bookmarklet { 707 | border: none; 708 | background: #ffffff url(/images/favicon.gif) 4px center no-repeat; 709 | color: #3c3c3c; 710 | border-radius: 1px; 711 | padding: 7px 7px 7px 25px; 712 | color: darken(white, 80%) !important; 713 | 714 | &:hover { 715 | background: #e0e0e0 url(/images/favicon.gif) 4px center no-repeat; 716 | } 717 | } 718 | 719 | // Table 720 | table.tblSorter { 721 | background: $default; 722 | 723 | a { 724 | color: $text; 725 | 726 | &:hover { 727 | color: darken($text, 30%); 728 | } 729 | } 730 | 731 | thead tr th, 732 | tfoot tr th, 733 | th.header { 734 | border: none; 735 | background-color: $light; 736 | padding: 10px; 737 | } 738 | 739 | tbody td { 740 | background: $lightest; 741 | color: $text; 742 | } 743 | } 744 | } 745 | 746 | #filter_options { 747 | padding: 0px 10px !important; 748 | } 749 | 750 | body > div > pre { 751 | overflow-x: scroll; 752 | padding-left: 290px; 753 | } 754 | 755 | // End General Styles 756 | 757 | 758 | // 759 | // Footer 760 | // 761 | 762 | #footer { 763 | position: fixed; 764 | bottom: 0; 765 | width: 230px; 766 | color: #828282; 767 | padding: 10px; 768 | text-align: left; 769 | z-index: 10; 770 | 771 | p { 772 | background: none; 773 | border: none; 774 | font-size: 1em; 775 | 776 | a { 777 | background: none; 778 | padding-left: 0; 779 | color: $text; 780 | 781 | &:hover { 782 | color: #828282; 783 | } 784 | } 785 | } 786 | } 787 | 788 | // End footer 789 | 790 | // Mobile styles 791 | @include for-size(phone-only) { 792 | body.index #wrap { 793 | padding-top: 210px; 794 | } 795 | 796 | body.tools #wrap, 797 | body.plugins #wrap, 798 | body.plugin_page_sleeky_settings #wrap { 799 | padding-top: 50px; 800 | } 801 | #wrap { 802 | margin-left: 0; 803 | 804 | main { 805 | overflow-x: scroll; 806 | } 807 | } 808 | 809 | img.logo { 810 | padding: 9px 100% 8px 20px; 811 | } 812 | 813 | .nav-open { 814 | display: block; 815 | } 816 | 817 | nav { 818 | height: 0; 819 | padding: 0; 820 | width: 0; 821 | 822 | ul#admin_menu { 823 | position: fixed; 824 | top: 0; 825 | left: 0; 826 | z-index: 9999 !important; 827 | width: 100%; 828 | height: 100%; 829 | padding: 50px; 830 | display: none; 831 | @if ($theme == "light") { 832 | background: darken($accent, 10%); 833 | } @else { 834 | background: $default; 835 | } 836 | 837 | li { 838 | color: white; 839 | } 840 | 841 | a, a:link, a:active, a:visited { 842 | color: white; 843 | } 844 | } 845 | } 846 | 847 | .index { 848 | .top { 849 | display: block; 850 | margin-top: 50px; 851 | width: 100vw; 852 | height: auto; 853 | 854 | form { 855 | margin-left: 0 !important; 856 | } 857 | 858 | #new_url_form { 859 | min-width: unset; 860 | height: auto; 861 | } 862 | 863 | .short { 864 | padding: 0; 865 | } 866 | 867 | #add-url, 868 | #add-keyword { 869 | width: calc(100% - 10px); 870 | margin: 10px 0px !important; 871 | } 872 | 873 | input.button { 874 | margin: 0 !important; 875 | width: 100%; 876 | } 877 | } 878 | 879 | table.tblSorter { 880 | min-width: 600px; 881 | 882 | // Icons 883 | $icons-list: stats, share, edit, delete; 884 | @each $icon in $icons-list { 885 | td.actions .button_#{$icon} { 886 | background-size: 15px; 887 | margin: 3px; 888 | } 889 | } 890 | } 891 | } 892 | 893 | #copybox { 894 | width: 100%; 895 | } 896 | 897 | .jquery-notify-bar { 898 | margin-top: 210px; 899 | margin-bottom: -210px; 900 | width: calc(100vw - 20px); 901 | 902 | a { 903 | margin-left: -30px; 904 | } 905 | } 906 | 907 | #footer { 908 | display: none; 909 | } 910 | 911 | .infos #wrap { 912 | margin-top: 30px; 913 | 914 | 915 | #headers { 916 | li { 917 | margin: 0; 918 | display: inline-block; 919 | } 920 | } 921 | } 922 | 923 | .infos #tabs { 924 | min-width: initial; 925 | 926 | .tab { 927 | overflow: scroll; 928 | } 929 | 930 | ul#headers { 931 | margin: 20px 0; 932 | 933 | li { 934 | a { 935 | padding: 10px 5px; 936 | } 937 | 938 | h2 { 939 | margin: 0; 940 | } 941 | } 942 | } 943 | } 944 | 945 | body > div > pre { 946 | padding-left: 20px; 947 | } 948 | } -------------------------------------------------------------------------------- /sleeky-backend/assets/css/animate.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! 4 | * animate.css -http://daneden.me/animate 5 | * Version - 3.6.0 6 | * Licensed under the MIT license - http://opensource.org/licenses/MIT 7 | * 8 | * Copyright (c) 2018 Daniel Eden 9 | */ 10 | 11 | .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} -------------------------------------------------------------------------------- /sleeky-backend/assets/css/dark.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");body{background-color:#1d1d1d;display:inline}div,p,td,input,p{font-family:'Open Sans', sans-serif !important}h1,h2{color:#ececec}p{color:#dcdcdc}a,a:link,a:active,a:visited{color:#828282;text-decoration:none}a:hover{color:#b9b9b9;transition:0.4s all}input{padding:10px;border:none !important;background:#313131 !important;color:#dcdcdc !important;font-size:1em !important;outline:none;margin:0px 5px !important;border-radius:0 !important}input.button,input.submit,input[type="submit"]{border-left:7px solid #007bff !important;background:#313131 !important;font-weight:600;transition:0.3s all !important;cursor:pointer}input.button:hover,input.submit:hover,input[type="submit"]:hover{background:#0056b3 !important}input[type="button"]:disabled,input[type="submit"]:disabled{cursor:not-allowed}input.text,input[type="text"]{border:1px solid rgba(255,255,255,0.25) !important;transition:0.4s all}input.text:active,input.text:focus{border:1px solid #007bff !important}select{width:150px;padding:5px 35px 5px 10px;border:none;border-radius:0;height:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#dcdcdc;background:url(data:image/png;base64,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) 96%/15% no-repeat #313131;margin:5px 10px;transition:0.4s all;outline:none}select:hover{background:url(data:image/png;base64,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) 96%/15% no-repeat #313131}#javascript_error{background:red;color:white;padding:20px;margin-top:10px}.jquery-notify-bar{color:#fff;text-shadow:none;border:none;opacity:1;box-shadow:none;font-size:1.1em;font-weight:500;position:static;margin-top:30px;margin-bottom:-45px;padding:10px}.jquery-notify-bar a,.jquery-notify-bar a:link,.jquery-notify-bar a:active,.jquery-notify-bar a:visited{color:white}.jquery-notify-bar.error,.jquery-notify-bar.fail{background-color:#FF9800;color:white}.jquery-notify-bar.success{color:white;background-color:#4CAF50}.login #wrap{margin:auto}.login label{font-size:1em;font-weight:600}.login .login-logo{width:150px;margin:30px auto;display:flex}.login input.text{width:270px !important}.login input.button{font-weight:600;padding:10px 25px;margin-top:15px !important;font-weight:600}.login input.button else{background:#313131 !important;border-left:7px solid #007bff !important}.login input.button:hover{background:#0062cc !important}.login .error{padding:10px;background:#007bff;color:white;position:fixed;top:0;left:0;width:100%;margin:0;text-align:center}.index #add-url{width:200px}.index #new_url_form{box-sizing:border-box;overflow:hidden}.index #new_url{border:none;background:#232323;text-align:left}.index #new_url input.button{margin-top:10px !important}.index #new_url div{background:#232323;padding:4px;padding-top:0px}.index .create{background:#007bff !important;width:150px;font-size:1.3em !important;border:none !important;font-weight:700;text-align:center;margin-top:10px !important;margin-left:20px !important}.index .top{position:absolute;top:0;left:0;width:100vw;height:50px;background:#232323}.index .top label{font-size:1em;font-weight:600;color:#dcdcdc}.index .top input.text{width:360px;padding:4px;font-weight:200;font-size:1em !important;background:#464646 !important}.index .top .short{padding-left:10px}.index .top #add-keyword{width:100px}.index .top input.button{font-weight:500;padding:5px 10px;font-size:1em !important;margin-left:10px !important;background:#464646 !important}.index .top input.button:hover{background:#0062cc !important}.index .top #new_url_form{margin-left:260px;padding:12px}.index table.tblSorter{background-color:#232323;color:#dcdcdc}.index table.tblSorter a{color:#dcdcdc}.index table.tblSorter small a{color:gray}.index table.tblSorter thead tr .tablesorter-header{padding:10px}.index table.tblSorter tfoot tr{background-color:#232323}.index table.tblSorter thead tr th,.index table.tblSorter tfoot tr th,.index table.tblSorter th.header{background-color:transparent;border:none;padding:4px}.index table.tblSorter thead tr .tablesorter-headerAsc,.index table.tblSorter thead tr .tablesorter-headerDesc{background-color:#464646 !important}.index table.tblSorter tbody td{color:#dcdcdc;padding:5px;background-color:#313131;vertical-align:middle;transition:0.4s all}.index table.tblSorter tbody tr:hover td{background-color:#464646 !important}.index table.tblSorter tbody tr.normal-row td{background:#313131}.index table.tblSorter .keyword{border-left:7px solid #007bff}.index table.tblSorter input.text{padding:5px;margin:8px 5px !important}.index table.tblSorter .navigation .nav_link a{background:#313131;border:none}.index table.tblSorter .navigation .nav_link a:hover{background:#464646}.index table.tblSorter tr.edit-row td{background:#232323 !important}.index table.tblSorter td.actions .button_stats{background:#007bff url(../img/stats.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_stats:hover{background:#0062cc url(../img/stats.png) 0px center no-repeat;background-size:23px;background-position:center}.index table.tblSorter td.actions .button_share{background:#007bff url(../img/share.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_share:hover{background:#0062cc url(../img/share.png) 0px center no-repeat;background-size:23px;background-position:center}.index table.tblSorter td.actions .button_edit{background:#007bff url(../img/edit.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_edit:hover{background:#0062cc url(../img/edit.png) 0px center no-repeat;background-size:23px;background-position:center}.index table.tblSorter td.actions .button_delete{background:red url(../img/delete.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_delete:hover{background:#c00 url(../img/delete.png) 0px center no-repeat;background-size:23px;background-position:center}nav{background:#232323;height:100%;position:fixed;top:0;left:0;padding:50px 30px;width:200px;z-index:10}nav li#admin_menu_logout_link{font-size:1.3em}nav ul#admin_menu li:hover{list-style-type:none;color:#b9b9b9}nav ul#admin_menu li{color:#ececec;padding:5px 0}nav #admin_menu_logout_link:hover{color:#ececec !important}nav .admin_menu_sublevel{font-weight:100;margin-left:-20px}nav .material-icons{font-size:1em;vertical-align:middle;margin-top:-1px}nav ul{list-style-type:none}img.logo{width:90px;position:fixed;top:0;left:0;background:#007bff;padding:9px 150px 8px 20px;z-index:20}.nav-open{color:white;position:fixed;top:0;right:0;z-index:30;padding:10px 15px;cursor:pointer;display:none}.nav-open i{font-size:2em;line-height:30px}header{display:none}#wrap #tabs{min-width:580px}#wrap #tabs .tab{background:#313131 !important}#wrap #tabs .wrap_unfloat{margin-bottom:-5px}#wrap #tabs ul#headers{border:none;padding:0px}#wrap #tabs li{color:#dcdcdc}#wrap #tabs #historical_clicks li:hover{background:#0a0a0a !important}#wrap #tabs ul#headers li a,#wrap #tabs #stats_lines li a{outline:none;border:none;border-radius:0;background:#313131;color:#dcdcdc;padding:10px 15px 7px 25px}#wrap #tabs ul#headers li a:hover,#wrap #tabs #stats_lines li a:hover{background:#0a0a0a}#wrap #tabs ul#headers li a h2,#wrap #tabs #stats_lines li a h2{font-weight:400;font-size:1em}#wrap #tabs ul#headers li a.selected,#wrap #tabs #stats_lines li a.selected{background:#464646;border-bottom:2px solid #007bff}#wrap #tabs ul#headers li a.selected:hover,#wrap #tabs #stats_lines li a.selected:hover{background:#000}#wrap #tabs #stats_lines li a{padding:7px 15px}#wrap #tabs ul.toggle_display{border:none}#wrap #tabs svg ellipse{fill:#007bff}body.index #wrap{padding-top:50px}#wrap{background:none;margin-left:270px;border:none;color:#dcdcdc;max-width:100%}.notice{width:calc(100% - 22px);margin:0;padding:0;border-radius:0;background:#007bff;border:1px solid #007bff;padding:10px}.notice p{color:white}#shareboxes{margin-top:-10px}#sharebox{width:558px;margin-right:0px}div.share{background:#232323;border-radius:0;border:none;padding:0px 20px 10px;margin-top:10px}div.share textarea{background:#313131;color:#dcdcdc;border:none;padding:3px;outline:none;margin:1px !important}div.share #charcount{padding-left:5px;color:#dcdcdc}div.share #share_links a{color:#dcdcdc}.sub_wrap,.plugins main,.plugin_page_sleeky_settings main,code{background:#232323;padding:10px;padding:5px 25px;max-width:100%}.sub_wrap span,.plugins main span,.plugin_page_sleeky_settings main span,code span{background:rgba(255,255,255,0.2)}.sub_wrap code,.sub_wrap tt,.plugins main code,.plugins main tt,.plugin_page_sleeky_settings main code,.plugin_page_sleeky_settings main tt,code code,code tt{background:rgba(0,123,255,0.7)}.sub_wrap a.bookmarklet,.plugins main a.bookmarklet,.plugin_page_sleeky_settings main a.bookmarklet,code a.bookmarklet{border:none;background:#fff url(/images/favicon.gif) 4px center no-repeat;color:#3c3c3c;border-radius:1px;padding:7px 7px 7px 25px;color:#333 !important}.sub_wrap a.bookmarklet:hover,.plugins main a.bookmarklet:hover,.plugin_page_sleeky_settings main a.bookmarklet:hover,code a.bookmarklet:hover{background:#e0e0e0 url(/images/favicon.gif) 4px center no-repeat}.sub_wrap table.tblSorter,.plugins main table.tblSorter,.plugin_page_sleeky_settings main table.tblSorter,code table.tblSorter{background:#232323}.sub_wrap table.tblSorter a,.plugins main table.tblSorter a,.plugin_page_sleeky_settings main table.tblSorter a,code table.tblSorter a{color:#dcdcdc}.sub_wrap table.tblSorter a:hover,.plugins main table.tblSorter a:hover,.plugin_page_sleeky_settings main table.tblSorter a:hover,code table.tblSorter a:hover{color:#909090}.sub_wrap table.tblSorter thead tr th,.sub_wrap table.tblSorter tfoot tr th,.sub_wrap table.tblSorter th.header,.plugins main table.tblSorter thead tr th,.plugins main table.tblSorter tfoot tr th,.plugins main table.tblSorter th.header,.plugin_page_sleeky_settings main table.tblSorter thead tr th,.plugin_page_sleeky_settings main table.tblSorter tfoot tr th,.plugin_page_sleeky_settings main table.tblSorter th.header,code table.tblSorter thead tr th,code table.tblSorter tfoot tr th,code table.tblSorter th.header{border:none;background-color:#313131;padding:10px}.sub_wrap table.tblSorter tbody td,.plugins main table.tblSorter tbody td,.plugin_page_sleeky_settings main table.tblSorter tbody td,code table.tblSorter tbody td{background:#464646;color:#dcdcdc}#filter_options{padding:0px 10px !important}body>div>pre{overflow-x:scroll;padding-left:290px}#footer{position:fixed;bottom:0;width:230px;color:#828282;padding:10px;text-align:left;z-index:10}#footer p{background:none;border:none;font-size:1em}#footer p a{background:none;padding-left:0;color:#dcdcdc}#footer p a:hover{color:#828282}@media (max-width: 899px){body.index #wrap{padding-top:210px}body.tools #wrap,body.plugins #wrap,body.plugin_page_sleeky_settings #wrap{padding-top:50px}#wrap{margin-left:0}#wrap main{overflow-x:scroll}img.logo{padding:9px 100% 8px 20px}.nav-open{display:block}nav{height:0;padding:0;width:0}nav ul#admin_menu{position:fixed;top:0;left:0;z-index:9999 !important;width:100%;height:100%;padding:50px;display:none;background:#232323}nav ul#admin_menu li{color:white}nav ul#admin_menu a,nav ul#admin_menu a:link,nav ul#admin_menu a:active,nav ul#admin_menu a:visited{color:white}.index .top{display:block;margin-top:50px;width:100vw;height:auto}.index .top form{margin-left:0 !important}.index .top #new_url_form{min-width:unset;height:auto}.index .top .short{padding:0}.index .top #add-url,.index .top #add-keyword{width:calc(100% - 10px);margin:10px 0px !important}.index .top input.button{margin:0 !important;width:100%}.index table.tblSorter{min-width:600px}.index table.tblSorter td.actions .button_stats{background-size:15px;margin:3px}.index table.tblSorter td.actions .button_share{background-size:15px;margin:3px}.index table.tblSorter td.actions .button_edit{background-size:15px;margin:3px}.index table.tblSorter td.actions .button_delete{background-size:15px;margin:3px}#copybox{width:100%}.jquery-notify-bar{margin-top:210px;margin-bottom:-210px;width:calc(100vw - 20px)}.jquery-notify-bar a{margin-left:-30px}#footer{display:none}.infos #wrap{margin-top:30px}.infos #wrap #headers li{margin:0;display:inline-block}.infos #tabs{min-width:initial}.infos #tabs .tab{overflow:scroll}.infos #tabs ul#headers{margin:20px 0}.infos #tabs ul#headers li a{padding:10px 5px}.infos #tabs ul#headers li h2{margin:0}body>div>pre{padding-left:20px}} 2 | -------------------------------------------------------------------------------- /sleeky-backend/assets/css/light.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");body{background-color:#efefef;display:inline}div,p,td,input,p{font-family:'Open Sans', sans-serif !important}h1,h2{color:#1d1d1d}p{color:#313131}a,a:link,a:active,a:visited{color:#828282;text-decoration:none}a:hover{color:#000;transition:0.4s all}input{padding:10px;border:none !important;background:#fff !important;color:#313131 !important;font-size:1em !important;outline:none;margin:0px 5px !important;border-radius:0 !important;border-radius:3px !important}input.button,input.submit,input[type="submit"]{border-left:7px solid #007bff !important;background:#fff !important;font-weight:600;transition:0.3s all !important;cursor:pointer;background:#007bff !important;border-left:none !important;color:white !important;font-weight:700}input.button:hover,input.submit:hover,input[type="submit"]:hover{background:#0056b3 !important;background:#0056b3 !important}input[type="button"]:disabled,input[type="submit"]:disabled{cursor:not-allowed}input.text,input[type="text"]{border:1px solid rgba(255,255,255,0.25) !important;transition:0.4s all}select{width:150px;padding:5px 35px 5px 10px;border:none;border-radius:0;height:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#313131;background:url(data:image/png;base64,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) 96%/15% no-repeat #fff;margin:5px 10px;transition:0.4s all;outline:none}select:hover{background:url(data:image/png;base64,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) 96%/15% no-repeat #fff}#javascript_error{background:red;color:white;padding:20px;margin-top:10px}.jquery-notify-bar{color:#fff;text-shadow:none;border:none;opacity:1;box-shadow:none;font-size:1.1em;font-weight:500;position:static;margin-top:30px;margin-bottom:-45px;padding:10px}.jquery-notify-bar a,.jquery-notify-bar a:link,.jquery-notify-bar a:active,.jquery-notify-bar a:visited{color:white}.jquery-notify-bar.error,.jquery-notify-bar.fail{background-color:#FF9800;color:white}.jquery-notify-bar.success{color:white;background-color:#4CAF50}.login #wrap{margin:auto}.login label{font-size:1em;font-weight:600}.login .login-logo{width:150px;margin:30px auto;display:flex}.login input.text{width:270px !important}.login input.button{font-weight:600;padding:10px 25px;margin-top:15px !important;font-weight:600;background:#007bff !important}.login input.button else{background:#fff !important;border-left:7px solid #007bff !important}.login input.button:hover{background:#0062cc !important}.login .error{padding:10px;background:#007bff;color:white;position:fixed;top:0;left:0;width:100%;margin:0;text-align:center}.index #add-url{width:200px}.index #new_url_form{box-sizing:border-box;overflow:hidden}.index #new_url{border:none;background:#f7f7f7;text-align:left}.index #new_url input.button{margin-top:10px !important}.index #new_url div{background:#f7f7f7;padding:4px;padding-top:0px}.index .create{background:#007bff !important;width:150px;font-size:1.3em !important;border:none !important;font-weight:700;text-align:center;margin-top:10px !important;margin-left:20px !important}.index .top{position:absolute;top:0;left:0;width:100vw;height:50px;background:#0062cc}.index .top label{font-size:1em;font-weight:600;color:#313131;color:#f7f7f7}.index .top input.text{width:360px;padding:4px;font-weight:200;font-size:1em !important;background:#f7f7f7 !important}.index .top .short{padding-left:10px}.index .top #add-keyword{width:100px}.index .top input.button{font-weight:500;padding:5px 10px;font-size:1em !important;margin-left:10px !important;background:#e8e8e8 !important;background:#f7f7f7 !important;font-weight:700;color:#007bff !important}.index .top input.button:hover{background:#0062cc !important;background:#e6e6e6 !important}.index .top #new_url_form{margin-left:260px;padding:12px}.index table.tblSorter{background-color:#f7f7f7;color:#313131}.index table.tblSorter a{color:#313131}.index table.tblSorter small a{color:gray}.index table.tblSorter thead tr .tablesorter-header{padding:10px}.index table.tblSorter tfoot tr{background-color:#f7f7f7}.index table.tblSorter thead tr th,.index table.tblSorter tfoot tr th,.index table.tblSorter th.header{background-color:transparent;border:none;padding:4px}.index table.tblSorter thead tr .tablesorter-headerAsc,.index table.tblSorter thead tr .tablesorter-headerDesc{background-color:#e8e8e8 !important}.index table.tblSorter tbody td{color:#313131;padding:5px;background-color:#fff;vertical-align:middle;transition:0.4s all}.index table.tblSorter tbody tr:hover td{background-color:#e8e8e8 !important}.index table.tblSorter tbody tr.normal-row td{background:#fff}.index table.tblSorter .keyword{border-left:7px solid #007bff}.index table.tblSorter input.text{padding:5px;margin:8px 5px !important}.index table.tblSorter .navigation .nav_link a{background:#fff;border:none}.index table.tblSorter .navigation .nav_link a:hover{background:#e8e8e8}.index table.tblSorter tr.edit-row td{background:#f7f7f7 !important}.index table.tblSorter td.actions .button_stats{background:#007bff url(../img/stats.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_stats:hover{background:#0062cc url(../img/stats.png) 0px center no-repeat;background-size:23px;background-position:center}.index table.tblSorter td.actions .button_share{background:#007bff url(../img/share.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_share:hover{background:#0062cc url(../img/share.png) 0px center no-repeat;background-size:23px;background-position:center}.index table.tblSorter td.actions .button_edit{background:#007bff url(../img/edit.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_edit:hover{background:#0062cc url(../img/edit.png) 0px center no-repeat;background-size:23px;background-position:center}.index table.tblSorter td.actions .button_delete{background:red url(../img/delete.png) 0px center no-repeat;background-size:23px;background-position:center;border:none;padding:3px;border-radius:2px}.index table.tblSorter td.actions .button_delete:hover{background:#c00 url(../img/delete.png) 0px center no-repeat;background-size:23px;background-position:center}nav{background:#f7f7f7;height:100%;position:fixed;top:0;left:0;padding:50px 30px;width:200px;z-index:10}nav li#admin_menu_logout_link{font-size:1.3em}nav ul#admin_menu li:hover{list-style-type:none;color:#000}nav ul#admin_menu li{color:#1d1d1d;padding:5px 0}nav #admin_menu_logout_link:hover{color:#1d1d1d !important}nav .admin_menu_sublevel{font-weight:100;margin-left:-20px}nav .material-icons{font-size:1em;vertical-align:middle;margin-top:-1px}nav ul{list-style-type:none}img.logo{width:90px;position:fixed;top:0;left:0;background:#007bff;padding:9px 150px 8px 20px;z-index:20}.nav-open{color:white;position:fixed;top:0;right:0;z-index:30;padding:10px 15px;cursor:pointer;display:none}.nav-open i{font-size:2em;line-height:30px}header{display:none}#wrap #tabs{min-width:580px}#wrap #tabs .tab{background:#fff !important}#wrap #tabs .wrap_unfloat{margin-bottom:-5px}#wrap #tabs ul#headers{border:none;padding:0px}#wrap #tabs li{color:#313131}#wrap #tabs #historical_clicks li:hover{background:#dedede !important}#wrap #tabs ul#headers li a,#wrap #tabs #stats_lines li a{outline:none;border:none;border-radius:0;background:#fff;color:#313131;padding:10px 15px 7px 25px}#wrap #tabs ul#headers li a:hover,#wrap #tabs #stats_lines li a:hover{background:#dedede}#wrap #tabs ul#headers li a h2,#wrap #tabs #stats_lines li a h2{font-weight:400;font-size:1em}#wrap #tabs ul#headers li a.selected,#wrap #tabs #stats_lines li a.selected{background:#e8e8e8;border-bottom:2px solid #007bff}#wrap #tabs ul#headers li a.selected:hover,#wrap #tabs #stats_lines li a.selected:hover{background:#d1d1d1}#wrap #tabs #stats_lines li a{padding:7px 15px}#wrap #tabs ul.toggle_display{border:none}#wrap #tabs svg ellipse{fill:#007bff}body.index #wrap{padding-top:50px}#wrap{background:none;margin-left:270px;border:none;color:#313131;max-width:100%}.notice{width:calc(100% - 22px);margin:0;padding:0;border-radius:0;background:#007bff;border:1px solid #007bff;padding:10px}.notice p{color:white}#shareboxes{margin-top:-10px}#sharebox{width:558px;margin-right:0px}div.share{background:#f7f7f7;border-radius:0;border:none;padding:0px 20px 10px;margin-top:10px}div.share textarea{background:#fff;color:#313131;border:none;padding:3px;outline:none;margin:1px !important}div.share #charcount{padding-left:5px;color:#313131}div.share #share_links a{color:#313131}.sub_wrap,.plugins main,.plugin_page_sleeky_settings main,code{background:#f7f7f7;padding:10px;padding:5px 25px;max-width:100%}.sub_wrap span,.plugins main span,.plugin_page_sleeky_settings main span,code span{background:rgba(255,255,255,0.2)}.sub_wrap code,.sub_wrap tt,.plugins main code,.plugins main tt,.plugin_page_sleeky_settings main code,.plugin_page_sleeky_settings main tt,code code,code tt{background:rgba(0,123,255,0.7);background:rgba(35,185,222,0.5)}.sub_wrap a.bookmarklet,.plugins main a.bookmarklet,.plugin_page_sleeky_settings main a.bookmarklet,code a.bookmarklet{border:none;background:#fff url(/images/favicon.gif) 4px center no-repeat;color:#3c3c3c;border-radius:1px;padding:7px 7px 7px 25px;color:#333 !important}.sub_wrap a.bookmarklet:hover,.plugins main a.bookmarklet:hover,.plugin_page_sleeky_settings main a.bookmarklet:hover,code a.bookmarklet:hover{background:#e0e0e0 url(/images/favicon.gif) 4px center no-repeat}.sub_wrap table.tblSorter,.plugins main table.tblSorter,.plugin_page_sleeky_settings main table.tblSorter,code table.tblSorter{background:#f7f7f7}.sub_wrap table.tblSorter a,.plugins main table.tblSorter a,.plugin_page_sleeky_settings main table.tblSorter a,code table.tblSorter a{color:#313131}.sub_wrap table.tblSorter a:hover,.plugins main table.tblSorter a:hover,.plugin_page_sleeky_settings main table.tblSorter a:hover,code table.tblSorter a:hover{color:#000}.sub_wrap table.tblSorter thead tr th,.sub_wrap table.tblSorter tfoot tr th,.sub_wrap table.tblSorter th.header,.plugins main table.tblSorter thead tr th,.plugins main table.tblSorter tfoot tr th,.plugins main table.tblSorter th.header,.plugin_page_sleeky_settings main table.tblSorter thead tr th,.plugin_page_sleeky_settings main table.tblSorter tfoot tr th,.plugin_page_sleeky_settings main table.tblSorter th.header,code table.tblSorter thead tr th,code table.tblSorter tfoot tr th,code table.tblSorter th.header{border:none;background-color:#fff;padding:10px}.sub_wrap table.tblSorter tbody td,.plugins main table.tblSorter tbody td,.plugin_page_sleeky_settings main table.tblSorter tbody td,code table.tblSorter tbody td{background:#e8e8e8;color:#313131}#filter_options{padding:0px 10px !important}body>div>pre{overflow-x:scroll;padding-left:290px}#footer{position:fixed;bottom:0;width:230px;color:#828282;padding:10px;text-align:left;z-index:10}#footer p{background:none;border:none;font-size:1em}#footer p a{background:none;padding-left:0;color:#313131}#footer p a:hover{color:#828282}@media (max-width: 899px){body.index #wrap{padding-top:210px}body.tools #wrap,body.plugins #wrap,body.plugin_page_sleeky_settings #wrap{padding-top:50px}#wrap{margin-left:0}#wrap main{overflow-x:scroll}img.logo{padding:9px 100% 8px 20px}.nav-open{display:block}nav{height:0;padding:0;width:0}nav ul#admin_menu{position:fixed;top:0;left:0;z-index:9999 !important;width:100%;height:100%;padding:50px;display:none;background:#0062cc}nav ul#admin_menu li{color:white}nav ul#admin_menu a,nav ul#admin_menu a:link,nav ul#admin_menu a:active,nav ul#admin_menu a:visited{color:white}.index .top{display:block;margin-top:50px;width:100vw;height:auto}.index .top form{margin-left:0 !important}.index .top #new_url_form{min-width:unset;height:auto}.index .top .short{padding:0}.index .top #add-url,.index .top #add-keyword{width:calc(100% - 10px);margin:10px 0px !important}.index .top input.button{margin:0 !important;width:100%}.index table.tblSorter{min-width:600px}.index table.tblSorter td.actions .button_stats{background-size:15px;margin:3px}.index table.tblSorter td.actions .button_share{background-size:15px;margin:3px}.index table.tblSorter td.actions .button_edit{background-size:15px;margin:3px}.index table.tblSorter td.actions .button_delete{background-size:15px;margin:3px}#copybox{width:100%}.jquery-notify-bar{margin-top:210px;margin-bottom:-210px;width:calc(100vw - 20px)}.jquery-notify-bar a{margin-left:-30px}#footer{display:none}.infos #wrap{margin-top:30px}.infos #wrap #headers li{margin:0;display:inline-block}.infos #tabs{min-width:initial}.infos #tabs .tab{overflow:scroll}.infos #tabs ul#headers{margin:20px 0}.infos #tabs ul#headers li a{padding:10px 5px}.infos #tabs ul#headers li h2{margin:0}body>div>pre{padding-left:20px}} 2 | -------------------------------------------------------------------------------- /sleeky-backend/assets/css/themes/dark.scss: -------------------------------------------------------------------------------- 1 | // Sleeky Admin Dark UI Theme 2 | 3 | // Define theme 4 | $theme: "dark"; 5 | 6 | // Set up our basic colour scheme 7 | $lightest: #464646; 8 | $light: #313131; 9 | $default: #232323; 10 | $darker: #1d1d1d; 11 | $darkest: #161616; 12 | 13 | // Accents 14 | $accent: #007bff; 15 | // $accent_primary: #007bff; 16 | 17 | // Text colours 18 | $title: #ececec; 19 | $text: #dcdcdc; 20 | 21 | // Import the base styles 22 | @import "../base.scss"; -------------------------------------------------------------------------------- /sleeky-backend/assets/css/themes/light.scss: -------------------------------------------------------------------------------- 1 | // Sleeky Admin Light UI Theme 2 | 3 | // Define theme 4 | $theme: "light"; 5 | 6 | // Set up our basic colour scheme 7 | $lightest: #e8e8e8; 8 | $light: white; 9 | $default: #f7f7f7; 10 | $darker: #efefef; 11 | $darkest: #161616; 12 | 13 | // Accents 14 | $accent: #007bff; 15 | // $accent_secondary: black; 16 | 17 | // Text colours 18 | $title: #1d1d1d; 19 | $text: #313131; 20 | 21 | // Import the base styles 22 | @import "../base.scss"; -------------------------------------------------------------------------------- /sleeky-backend/assets/html/form.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /sleeky-backend/assets/img/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/delete.png -------------------------------------------------------------------------------- /sleeky-backend/assets/img/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/edit.png -------------------------------------------------------------------------------- /sleeky-backend/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/favicon.ico -------------------------------------------------------------------------------- /sleeky-backend/assets/img/logo_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/logo_black.png -------------------------------------------------------------------------------- /sleeky-backend/assets/img/logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/logo_white.png -------------------------------------------------------------------------------- /sleeky-backend/assets/img/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/share.png -------------------------------------------------------------------------------- /sleeky-backend/assets/img/stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-backend/assets/img/stats.png -------------------------------------------------------------------------------- /sleeky-backend/assets/js/theme.js: -------------------------------------------------------------------------------- 1 | // Sleeky Admin Theme 2 | // 2019 Flynn Tesoriero 3 | 4 | console.log("Sleeky Admin Theme Running"); 5 | 6 | $( document ).ready(function() { 7 | // Get the theme URL 8 | var url; 9 | if ($('meta[name=pluginURL]').attr("content")) { 10 | url = $('meta[name=pluginURL]').attr("content"); 11 | } else { 12 | // If for some reason we can't find the URL attribute 13 | url = "/user/plugins/sleeky_backend"; 14 | } 15 | 16 | // Detect theme 17 | var theme; 18 | if ($('meta[name=sleeky_theme]').attr("content") == 'light') { 19 | theme = "light"; 20 | } else if ($('meta[name=sleeky_theme]').attr("content") == 'dark') { 21 | theme = "dark"; 22 | } 23 | 24 | console.log("Theme is", theme) 25 | 26 | // Update favicon 27 | $('link[rel="shortcut icon"]').attr('href', url + "/assets/img/favicon.ico"); 28 | 29 | // Update meta viewport 30 | $('head').append(''); 31 | 32 | // Detect pages 33 | if ($("body").hasClass("login")) { 34 | // Login page 35 | console.log("Login page"); 36 | 37 | if (theme == "light") { 38 | $("#login").prepend(``); 39 | } else if (theme == "dark") { 40 | $("#login").prepend(``); 41 | } 42 | 43 | 44 | } else if ($("body").hasClass("index")) { 45 | // Index page 46 | console.log("Index page"); 47 | 48 | handleNav() 49 | 50 | // Hide YOURLS new URL section 51 | $("#new_url").hide(); 52 | 53 | // Grab the nonce id 54 | var nonce = $("#nonce-add").val(); 55 | 56 | // Remove the YOURLS new URL Section 57 | $("#new_url").remove(); 58 | 59 | // Create the sleeky new URL section from the template 60 | $("nav").append($('
').load(`${url}/assets/html/form.html`, function () { 61 | $("#nonce-add").val(nonce); 62 | })); 63 | } else if ($("body").hasClass("tools")) { 64 | // Tools page 65 | console.log("Tools page"); 66 | 67 | handleNav() 68 | 69 | } else if ($("body").hasClass("plugins")) { 70 | // Plugins page 71 | console.log("Plugins page"); 72 | 73 | handleNav() 74 | 75 | } else if ($("body").hasClass("plugin_page_sleeky_settings")) { 76 | // Tools page 77 | console.log("Sleeky Settings Page"); 78 | 79 | handleNav() 80 | 81 | $("#ui_selector").val($("#ui_selector").attr("value")); 82 | 83 | } else if ($("body").hasClass("infos")) { 84 | // Information page 85 | console.log("Information page"); 86 | 87 | handleNav() 88 | 89 | $("#historical_clicks li").each(function (index) { 90 | if (index % 2 != 0) { 91 | $("#historical_clicks li").eq(index).css("background", ""); 92 | } 93 | }) 94 | 95 | // Update tab headers 96 | var titles = ['Statistics', 'Location', 'Sources'] 97 | for (let i = 0; i < 3; i++) { 98 | $($('#headers > li')[i]).find('h2').text(titles[i]); 99 | } 100 | } else { 101 | console.warn("Unknown page"); 102 | 103 | handleNav(); 104 | } 105 | 106 | function handleNav() { 107 | // Add logo 108 | $("#wrap").prepend(``); 109 | 110 | // Add mobile nav hamburger 111 | $("#wrap").prepend(``); 112 | 113 | // admin_menu 114 | $('#navOpen').on('click', function() { 115 | $('#admin_menu').slideToggle(); 116 | }) 117 | 118 | $(window).resize(function () { 119 | if ($(window).width() > 899) { 120 | $('#admin_menu').show(); 121 | } else { 122 | $('#admin_menu').hide(); 123 | } 124 | }); 125 | } 126 | 127 | // Update P elements 128 | $("p").each(function (index) { 129 | if (/Display/.test($(this).text()) || /Overall/.test($(this).text())) { 130 | // Move info on index page to the bottom 131 | $("main").append("

" + $(this).html() + "

"); 132 | $(this).remove(); 133 | } else if (/Powered by/.test($(this).text())) { 134 | // Update footer 135 | var content = $(this).html(); 136 | var i = 77 137 | var updated_content = "Running on" + content.slice(13, i) + '& Sleeky' + content.slice(i-1) 138 | $(this).html(updated_content); 139 | } 140 | }); 141 | }); -------------------------------------------------------------------------------- /sleeky-backend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sleeky-admin", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abbrev": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 10 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 11 | }, 12 | "ajv": { 13 | "version": "6.10.2", 14 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 15 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", 16 | "requires": { 17 | "fast-deep-equal": "^2.0.1", 18 | "fast-json-stable-stringify": "^2.0.0", 19 | "json-schema-traverse": "^0.4.1", 20 | "uri-js": "^4.2.2" 21 | } 22 | }, 23 | "amdefine": { 24 | "version": "1.0.1", 25 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 26 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" 27 | }, 28 | "ansi-regex": { 29 | "version": "2.1.1", 30 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 31 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 32 | }, 33 | "ansi-styles": { 34 | "version": "2.2.1", 35 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 36 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" 37 | }, 38 | "aproba": { 39 | "version": "1.2.0", 40 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 41 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 42 | }, 43 | "are-we-there-yet": { 44 | "version": "1.1.5", 45 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 46 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 47 | "requires": { 48 | "delegates": "^1.0.0", 49 | "readable-stream": "^2.0.6" 50 | } 51 | }, 52 | "array-find-index": { 53 | "version": "1.0.2", 54 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 55 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" 56 | }, 57 | "asn1": { 58 | "version": "0.2.4", 59 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 60 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 61 | "requires": { 62 | "safer-buffer": "~2.1.0" 63 | } 64 | }, 65 | "assert-plus": { 66 | "version": "1.0.0", 67 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 68 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 69 | }, 70 | "async-foreach": { 71 | "version": "0.1.3", 72 | "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", 73 | "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" 74 | }, 75 | "asynckit": { 76 | "version": "0.4.0", 77 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 78 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 79 | }, 80 | "aws-sign2": { 81 | "version": "0.7.0", 82 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 83 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 84 | }, 85 | "aws4": { 86 | "version": "1.8.0", 87 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 88 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 89 | }, 90 | "balanced-match": { 91 | "version": "1.0.0", 92 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 93 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 94 | }, 95 | "bcrypt-pbkdf": { 96 | "version": "1.0.2", 97 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 98 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 99 | "requires": { 100 | "tweetnacl": "^0.14.3" 101 | } 102 | }, 103 | "block-stream": { 104 | "version": "0.0.9", 105 | "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", 106 | "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", 107 | "requires": { 108 | "inherits": "~2.0.0" 109 | } 110 | }, 111 | "brace-expansion": { 112 | "version": "1.1.11", 113 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 114 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 115 | "requires": { 116 | "balanced-match": "^1.0.0", 117 | "concat-map": "0.0.1" 118 | } 119 | }, 120 | "camelcase": { 121 | "version": "2.1.1", 122 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 123 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" 124 | }, 125 | "camelcase-keys": { 126 | "version": "2.1.0", 127 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 128 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 129 | "requires": { 130 | "camelcase": "^2.0.0", 131 | "map-obj": "^1.0.0" 132 | } 133 | }, 134 | "caseless": { 135 | "version": "0.12.0", 136 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 137 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 138 | }, 139 | "chalk": { 140 | "version": "1.1.3", 141 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 142 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 143 | "requires": { 144 | "ansi-styles": "^2.2.1", 145 | "escape-string-regexp": "^1.0.2", 146 | "has-ansi": "^2.0.0", 147 | "strip-ansi": "^3.0.0", 148 | "supports-color": "^2.0.0" 149 | } 150 | }, 151 | "cliui": { 152 | "version": "3.2.0", 153 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 154 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 155 | "requires": { 156 | "string-width": "^1.0.1", 157 | "strip-ansi": "^3.0.1", 158 | "wrap-ansi": "^2.0.0" 159 | } 160 | }, 161 | "code-point-at": { 162 | "version": "1.1.0", 163 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 164 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 165 | }, 166 | "combined-stream": { 167 | "version": "1.0.8", 168 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 169 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 170 | "requires": { 171 | "delayed-stream": "~1.0.0" 172 | } 173 | }, 174 | "concat-map": { 175 | "version": "0.0.1", 176 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 177 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 178 | }, 179 | "console-control-strings": { 180 | "version": "1.1.0", 181 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 182 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 183 | }, 184 | "core-util-is": { 185 | "version": "1.0.2", 186 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 187 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 188 | }, 189 | "cross-spawn": { 190 | "version": "3.0.1", 191 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", 192 | "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", 193 | "requires": { 194 | "lru-cache": "^4.0.1", 195 | "which": "^1.2.9" 196 | } 197 | }, 198 | "currently-unhandled": { 199 | "version": "0.4.1", 200 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 201 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 202 | "requires": { 203 | "array-find-index": "^1.0.1" 204 | } 205 | }, 206 | "dashdash": { 207 | "version": "1.14.1", 208 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 209 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 210 | "requires": { 211 | "assert-plus": "^1.0.0" 212 | } 213 | }, 214 | "decamelize": { 215 | "version": "1.2.0", 216 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 217 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 218 | }, 219 | "delayed-stream": { 220 | "version": "1.0.0", 221 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 222 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 223 | }, 224 | "delegates": { 225 | "version": "1.0.0", 226 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 227 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 228 | }, 229 | "ecc-jsbn": { 230 | "version": "0.1.2", 231 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 232 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 233 | "requires": { 234 | "jsbn": "~0.1.0", 235 | "safer-buffer": "^2.1.0" 236 | } 237 | }, 238 | "error-ex": { 239 | "version": "1.3.2", 240 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 241 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 242 | "requires": { 243 | "is-arrayish": "^0.2.1" 244 | } 245 | }, 246 | "escape-string-regexp": { 247 | "version": "1.0.5", 248 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 249 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 250 | }, 251 | "extend": { 252 | "version": "3.0.2", 253 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 254 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 255 | }, 256 | "extsprintf": { 257 | "version": "1.3.0", 258 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 259 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 260 | }, 261 | "fast-deep-equal": { 262 | "version": "2.0.1", 263 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 264 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" 265 | }, 266 | "fast-json-stable-stringify": { 267 | "version": "2.0.0", 268 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 269 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 270 | }, 271 | "find-up": { 272 | "version": "1.1.2", 273 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 274 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 275 | "requires": { 276 | "path-exists": "^2.0.0", 277 | "pinkie-promise": "^2.0.0" 278 | } 279 | }, 280 | "forever-agent": { 281 | "version": "0.6.1", 282 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 283 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 284 | }, 285 | "form-data": { 286 | "version": "2.3.3", 287 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 288 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 289 | "requires": { 290 | "asynckit": "^0.4.0", 291 | "combined-stream": "^1.0.6", 292 | "mime-types": "^2.1.12" 293 | } 294 | }, 295 | "fs.realpath": { 296 | "version": "1.0.0", 297 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 298 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 299 | }, 300 | "fstream": { 301 | "version": "1.0.12", 302 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", 303 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", 304 | "requires": { 305 | "graceful-fs": "^4.1.2", 306 | "inherits": "~2.0.0", 307 | "mkdirp": ">=0.5 0", 308 | "rimraf": "2" 309 | } 310 | }, 311 | "gauge": { 312 | "version": "2.7.4", 313 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 314 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 315 | "requires": { 316 | "aproba": "^1.0.3", 317 | "console-control-strings": "^1.0.0", 318 | "has-unicode": "^2.0.0", 319 | "object-assign": "^4.1.0", 320 | "signal-exit": "^3.0.0", 321 | "string-width": "^1.0.1", 322 | "strip-ansi": "^3.0.1", 323 | "wide-align": "^1.1.0" 324 | } 325 | }, 326 | "gaze": { 327 | "version": "1.1.3", 328 | "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", 329 | "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", 330 | "requires": { 331 | "globule": "^1.0.0" 332 | } 333 | }, 334 | "get-caller-file": { 335 | "version": "1.0.3", 336 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", 337 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" 338 | }, 339 | "get-stdin": { 340 | "version": "4.0.1", 341 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 342 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" 343 | }, 344 | "getpass": { 345 | "version": "0.1.7", 346 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 347 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 348 | "requires": { 349 | "assert-plus": "^1.0.0" 350 | } 351 | }, 352 | "glob": { 353 | "version": "7.1.4", 354 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 355 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 356 | "requires": { 357 | "fs.realpath": "^1.0.0", 358 | "inflight": "^1.0.4", 359 | "inherits": "2", 360 | "minimatch": "^3.0.4", 361 | "once": "^1.3.0", 362 | "path-is-absolute": "^1.0.0" 363 | } 364 | }, 365 | "globule": { 366 | "version": "1.2.1", 367 | "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", 368 | "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", 369 | "requires": { 370 | "glob": "~7.1.1", 371 | "lodash": "~4.17.10", 372 | "minimatch": "~3.0.2" 373 | } 374 | }, 375 | "graceful-fs": { 376 | "version": "4.2.0", 377 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", 378 | "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" 379 | }, 380 | "har-schema": { 381 | "version": "2.0.0", 382 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 383 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 384 | }, 385 | "har-validator": { 386 | "version": "5.1.3", 387 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 388 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 389 | "requires": { 390 | "ajv": "^6.5.5", 391 | "har-schema": "^2.0.0" 392 | } 393 | }, 394 | "has-ansi": { 395 | "version": "2.0.0", 396 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 397 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 398 | "requires": { 399 | "ansi-regex": "^2.0.0" 400 | } 401 | }, 402 | "has-unicode": { 403 | "version": "2.0.1", 404 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 405 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 406 | }, 407 | "hosted-git-info": { 408 | "version": "2.7.1", 409 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", 410 | "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" 411 | }, 412 | "http-signature": { 413 | "version": "1.2.0", 414 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 415 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 416 | "requires": { 417 | "assert-plus": "^1.0.0", 418 | "jsprim": "^1.2.2", 419 | "sshpk": "^1.7.0" 420 | } 421 | }, 422 | "in-publish": { 423 | "version": "2.0.0", 424 | "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", 425 | "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" 426 | }, 427 | "indent-string": { 428 | "version": "2.1.0", 429 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 430 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 431 | "requires": { 432 | "repeating": "^2.0.0" 433 | } 434 | }, 435 | "inflight": { 436 | "version": "1.0.6", 437 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 438 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 439 | "requires": { 440 | "once": "^1.3.0", 441 | "wrappy": "1" 442 | } 443 | }, 444 | "inherits": { 445 | "version": "2.0.4", 446 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 447 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 448 | }, 449 | "invert-kv": { 450 | "version": "1.0.0", 451 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 452 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" 453 | }, 454 | "is-arrayish": { 455 | "version": "0.2.1", 456 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 457 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 458 | }, 459 | "is-finite": { 460 | "version": "1.0.2", 461 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 462 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 463 | "requires": { 464 | "number-is-nan": "^1.0.0" 465 | } 466 | }, 467 | "is-fullwidth-code-point": { 468 | "version": "1.0.0", 469 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 470 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 471 | "requires": { 472 | "number-is-nan": "^1.0.0" 473 | } 474 | }, 475 | "is-typedarray": { 476 | "version": "1.0.0", 477 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 478 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 479 | }, 480 | "is-utf8": { 481 | "version": "0.2.1", 482 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 483 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" 484 | }, 485 | "isarray": { 486 | "version": "1.0.0", 487 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 488 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 489 | }, 490 | "isexe": { 491 | "version": "2.0.0", 492 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 493 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 494 | }, 495 | "isstream": { 496 | "version": "0.1.2", 497 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 498 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 499 | }, 500 | "js-base64": { 501 | "version": "2.5.1", 502 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", 503 | "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" 504 | }, 505 | "jsbn": { 506 | "version": "0.1.1", 507 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 508 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 509 | }, 510 | "json-schema": { 511 | "version": "0.2.3", 512 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 513 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 514 | }, 515 | "json-schema-traverse": { 516 | "version": "0.4.1", 517 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 518 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 519 | }, 520 | "json-stringify-safe": { 521 | "version": "5.0.1", 522 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 523 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 524 | }, 525 | "jsprim": { 526 | "version": "1.4.1", 527 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 528 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 529 | "requires": { 530 | "assert-plus": "1.0.0", 531 | "extsprintf": "1.3.0", 532 | "json-schema": "0.2.3", 533 | "verror": "1.10.0" 534 | } 535 | }, 536 | "lcid": { 537 | "version": "1.0.0", 538 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 539 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 540 | "requires": { 541 | "invert-kv": "^1.0.0" 542 | } 543 | }, 544 | "load-json-file": { 545 | "version": "1.1.0", 546 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 547 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 548 | "requires": { 549 | "graceful-fs": "^4.1.2", 550 | "parse-json": "^2.2.0", 551 | "pify": "^2.0.0", 552 | "pinkie-promise": "^2.0.0", 553 | "strip-bom": "^2.0.0" 554 | } 555 | }, 556 | "lodash": { 557 | "version": "4.17.15", 558 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 559 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" 560 | }, 561 | "loud-rejection": { 562 | "version": "1.6.0", 563 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 564 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 565 | "requires": { 566 | "currently-unhandled": "^0.4.1", 567 | "signal-exit": "^3.0.0" 568 | } 569 | }, 570 | "lru-cache": { 571 | "version": "4.1.5", 572 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 573 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 574 | "requires": { 575 | "pseudomap": "^1.0.2", 576 | "yallist": "^2.1.2" 577 | } 578 | }, 579 | "map-obj": { 580 | "version": "1.0.1", 581 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 582 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" 583 | }, 584 | "meow": { 585 | "version": "3.7.0", 586 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 587 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 588 | "requires": { 589 | "camelcase-keys": "^2.0.0", 590 | "decamelize": "^1.1.2", 591 | "loud-rejection": "^1.0.0", 592 | "map-obj": "^1.0.1", 593 | "minimist": "^1.1.3", 594 | "normalize-package-data": "^2.3.4", 595 | "object-assign": "^4.0.1", 596 | "read-pkg-up": "^1.0.1", 597 | "redent": "^1.0.0", 598 | "trim-newlines": "^1.0.0" 599 | } 600 | }, 601 | "mime-db": { 602 | "version": "1.40.0", 603 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", 604 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" 605 | }, 606 | "mime-types": { 607 | "version": "2.1.24", 608 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", 609 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", 610 | "requires": { 611 | "mime-db": "1.40.0" 612 | } 613 | }, 614 | "minimatch": { 615 | "version": "3.0.4", 616 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 617 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 618 | "requires": { 619 | "brace-expansion": "^1.1.7" 620 | } 621 | }, 622 | "minimist": { 623 | "version": "1.2.0", 624 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 625 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 626 | }, 627 | "mkdirp": { 628 | "version": "0.5.1", 629 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 630 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 631 | "requires": { 632 | "minimist": "0.0.8" 633 | }, 634 | "dependencies": { 635 | "minimist": { 636 | "version": "0.0.8", 637 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 638 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 639 | } 640 | } 641 | }, 642 | "nan": { 643 | "version": "2.14.0", 644 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 645 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" 646 | }, 647 | "node-gyp": { 648 | "version": "3.8.0", 649 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", 650 | "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", 651 | "requires": { 652 | "fstream": "^1.0.0", 653 | "glob": "^7.0.3", 654 | "graceful-fs": "^4.1.2", 655 | "mkdirp": "^0.5.0", 656 | "nopt": "2 || 3", 657 | "npmlog": "0 || 1 || 2 || 3 || 4", 658 | "osenv": "0", 659 | "request": "^2.87.0", 660 | "rimraf": "2", 661 | "semver": "~5.3.0", 662 | "tar": "^2.0.0", 663 | "which": "1" 664 | }, 665 | "dependencies": { 666 | "semver": { 667 | "version": "5.3.0", 668 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 669 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" 670 | } 671 | } 672 | }, 673 | "node-sass": { 674 | "version": "4.12.0", 675 | "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", 676 | "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", 677 | "requires": { 678 | "async-foreach": "^0.1.3", 679 | "chalk": "^1.1.1", 680 | "cross-spawn": "^3.0.0", 681 | "gaze": "^1.0.0", 682 | "get-stdin": "^4.0.1", 683 | "glob": "^7.0.3", 684 | "in-publish": "^2.0.0", 685 | "lodash": "^4.17.11", 686 | "meow": "^3.7.0", 687 | "mkdirp": "^0.5.1", 688 | "nan": "^2.13.2", 689 | "node-gyp": "^3.8.0", 690 | "npmlog": "^4.0.0", 691 | "request": "^2.88.0", 692 | "sass-graph": "^2.2.4", 693 | "stdout-stream": "^1.4.0", 694 | "true-case-path": "^1.0.2" 695 | } 696 | }, 697 | "nopt": { 698 | "version": "3.0.6", 699 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 700 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 701 | "requires": { 702 | "abbrev": "1" 703 | } 704 | }, 705 | "normalize-package-data": { 706 | "version": "2.5.0", 707 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 708 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 709 | "requires": { 710 | "hosted-git-info": "^2.1.4", 711 | "resolve": "^1.10.0", 712 | "semver": "2 || 3 || 4 || 5", 713 | "validate-npm-package-license": "^3.0.1" 714 | } 715 | }, 716 | "npmlog": { 717 | "version": "4.1.2", 718 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 719 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 720 | "requires": { 721 | "are-we-there-yet": "~1.1.2", 722 | "console-control-strings": "~1.1.0", 723 | "gauge": "~2.7.3", 724 | "set-blocking": "~2.0.0" 725 | } 726 | }, 727 | "number-is-nan": { 728 | "version": "1.0.1", 729 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 730 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 731 | }, 732 | "oauth-sign": { 733 | "version": "0.9.0", 734 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 735 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 736 | }, 737 | "object-assign": { 738 | "version": "4.1.1", 739 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 740 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 741 | }, 742 | "once": { 743 | "version": "1.4.0", 744 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 745 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 746 | "requires": { 747 | "wrappy": "1" 748 | } 749 | }, 750 | "os-homedir": { 751 | "version": "1.0.2", 752 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 753 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 754 | }, 755 | "os-locale": { 756 | "version": "1.4.0", 757 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 758 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 759 | "requires": { 760 | "lcid": "^1.0.0" 761 | } 762 | }, 763 | "os-tmpdir": { 764 | "version": "1.0.2", 765 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 766 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 767 | }, 768 | "osenv": { 769 | "version": "0.1.5", 770 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", 771 | "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 772 | "requires": { 773 | "os-homedir": "^1.0.0", 774 | "os-tmpdir": "^1.0.0" 775 | } 776 | }, 777 | "parse-json": { 778 | "version": "2.2.0", 779 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 780 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 781 | "requires": { 782 | "error-ex": "^1.2.0" 783 | } 784 | }, 785 | "path-exists": { 786 | "version": "2.1.0", 787 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 788 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 789 | "requires": { 790 | "pinkie-promise": "^2.0.0" 791 | } 792 | }, 793 | "path-is-absolute": { 794 | "version": "1.0.1", 795 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 796 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 797 | }, 798 | "path-parse": { 799 | "version": "1.0.6", 800 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 801 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 802 | }, 803 | "path-type": { 804 | "version": "1.1.0", 805 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 806 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 807 | "requires": { 808 | "graceful-fs": "^4.1.2", 809 | "pify": "^2.0.0", 810 | "pinkie-promise": "^2.0.0" 811 | } 812 | }, 813 | "performance-now": { 814 | "version": "2.1.0", 815 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 816 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 817 | }, 818 | "pify": { 819 | "version": "2.3.0", 820 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 821 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 822 | }, 823 | "pinkie": { 824 | "version": "2.0.4", 825 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 826 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 827 | }, 828 | "pinkie-promise": { 829 | "version": "2.0.1", 830 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 831 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 832 | "requires": { 833 | "pinkie": "^2.0.0" 834 | } 835 | }, 836 | "process-nextick-args": { 837 | "version": "2.0.1", 838 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 839 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 840 | }, 841 | "pseudomap": { 842 | "version": "1.0.2", 843 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 844 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 845 | }, 846 | "psl": { 847 | "version": "1.2.0", 848 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", 849 | "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==" 850 | }, 851 | "punycode": { 852 | "version": "2.1.1", 853 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 854 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 855 | }, 856 | "qs": { 857 | "version": "6.5.2", 858 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 859 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 860 | }, 861 | "read-pkg": { 862 | "version": "1.1.0", 863 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 864 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 865 | "requires": { 866 | "load-json-file": "^1.0.0", 867 | "normalize-package-data": "^2.3.2", 868 | "path-type": "^1.0.0" 869 | } 870 | }, 871 | "read-pkg-up": { 872 | "version": "1.0.1", 873 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 874 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 875 | "requires": { 876 | "find-up": "^1.0.0", 877 | "read-pkg": "^1.0.0" 878 | } 879 | }, 880 | "readable-stream": { 881 | "version": "2.3.6", 882 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 883 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 884 | "requires": { 885 | "core-util-is": "~1.0.0", 886 | "inherits": "~2.0.3", 887 | "isarray": "~1.0.0", 888 | "process-nextick-args": "~2.0.0", 889 | "safe-buffer": "~5.1.1", 890 | "string_decoder": "~1.1.1", 891 | "util-deprecate": "~1.0.1" 892 | } 893 | }, 894 | "redent": { 895 | "version": "1.0.0", 896 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 897 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 898 | "requires": { 899 | "indent-string": "^2.1.0", 900 | "strip-indent": "^1.0.1" 901 | } 902 | }, 903 | "repeating": { 904 | "version": "2.0.1", 905 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 906 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 907 | "requires": { 908 | "is-finite": "^1.0.0" 909 | } 910 | }, 911 | "request": { 912 | "version": "2.88.0", 913 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 914 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 915 | "requires": { 916 | "aws-sign2": "~0.7.0", 917 | "aws4": "^1.8.0", 918 | "caseless": "~0.12.0", 919 | "combined-stream": "~1.0.6", 920 | "extend": "~3.0.2", 921 | "forever-agent": "~0.6.1", 922 | "form-data": "~2.3.2", 923 | "har-validator": "~5.1.0", 924 | "http-signature": "~1.2.0", 925 | "is-typedarray": "~1.0.0", 926 | "isstream": "~0.1.2", 927 | "json-stringify-safe": "~5.0.1", 928 | "mime-types": "~2.1.19", 929 | "oauth-sign": "~0.9.0", 930 | "performance-now": "^2.1.0", 931 | "qs": "~6.5.2", 932 | "safe-buffer": "^5.1.2", 933 | "tough-cookie": "~2.4.3", 934 | "tunnel-agent": "^0.6.0", 935 | "uuid": "^3.3.2" 936 | } 937 | }, 938 | "require-directory": { 939 | "version": "2.1.1", 940 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 941 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 942 | }, 943 | "require-main-filename": { 944 | "version": "1.0.1", 945 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 946 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" 947 | }, 948 | "resolve": { 949 | "version": "1.11.1", 950 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", 951 | "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", 952 | "requires": { 953 | "path-parse": "^1.0.6" 954 | } 955 | }, 956 | "rimraf": { 957 | "version": "2.6.3", 958 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 959 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 960 | "requires": { 961 | "glob": "^7.1.3" 962 | } 963 | }, 964 | "safe-buffer": { 965 | "version": "5.1.2", 966 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 967 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 968 | }, 969 | "safer-buffer": { 970 | "version": "2.1.2", 971 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 972 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 973 | }, 974 | "sass-graph": { 975 | "version": "2.2.4", 976 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", 977 | "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", 978 | "requires": { 979 | "glob": "^7.0.0", 980 | "lodash": "^4.0.0", 981 | "scss-tokenizer": "^0.2.3", 982 | "yargs": "^7.0.0" 983 | } 984 | }, 985 | "scss-tokenizer": { 986 | "version": "0.2.3", 987 | "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", 988 | "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", 989 | "requires": { 990 | "js-base64": "^2.1.8", 991 | "source-map": "^0.4.2" 992 | } 993 | }, 994 | "semver": { 995 | "version": "5.7.0", 996 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 997 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" 998 | }, 999 | "set-blocking": { 1000 | "version": "2.0.0", 1001 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1002 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 1003 | }, 1004 | "signal-exit": { 1005 | "version": "3.0.2", 1006 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1007 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 1008 | }, 1009 | "source-map": { 1010 | "version": "0.4.4", 1011 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1012 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1013 | "requires": { 1014 | "amdefine": ">=0.0.4" 1015 | } 1016 | }, 1017 | "spdx-correct": { 1018 | "version": "3.1.0", 1019 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 1020 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 1021 | "requires": { 1022 | "spdx-expression-parse": "^3.0.0", 1023 | "spdx-license-ids": "^3.0.0" 1024 | } 1025 | }, 1026 | "spdx-exceptions": { 1027 | "version": "2.2.0", 1028 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 1029 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" 1030 | }, 1031 | "spdx-expression-parse": { 1032 | "version": "3.0.0", 1033 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1034 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1035 | "requires": { 1036 | "spdx-exceptions": "^2.1.0", 1037 | "spdx-license-ids": "^3.0.0" 1038 | } 1039 | }, 1040 | "spdx-license-ids": { 1041 | "version": "3.0.5", 1042 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 1043 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" 1044 | }, 1045 | "sshpk": { 1046 | "version": "1.16.1", 1047 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1048 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 1049 | "requires": { 1050 | "asn1": "~0.2.3", 1051 | "assert-plus": "^1.0.0", 1052 | "bcrypt-pbkdf": "^1.0.0", 1053 | "dashdash": "^1.12.0", 1054 | "ecc-jsbn": "~0.1.1", 1055 | "getpass": "^0.1.1", 1056 | "jsbn": "~0.1.0", 1057 | "safer-buffer": "^2.0.2", 1058 | "tweetnacl": "~0.14.0" 1059 | } 1060 | }, 1061 | "stdout-stream": { 1062 | "version": "1.4.1", 1063 | "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", 1064 | "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", 1065 | "requires": { 1066 | "readable-stream": "^2.0.1" 1067 | } 1068 | }, 1069 | "string-width": { 1070 | "version": "1.0.2", 1071 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1072 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1073 | "requires": { 1074 | "code-point-at": "^1.0.0", 1075 | "is-fullwidth-code-point": "^1.0.0", 1076 | "strip-ansi": "^3.0.0" 1077 | } 1078 | }, 1079 | "string_decoder": { 1080 | "version": "1.1.1", 1081 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1082 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1083 | "requires": { 1084 | "safe-buffer": "~5.1.0" 1085 | } 1086 | }, 1087 | "strip-ansi": { 1088 | "version": "3.0.1", 1089 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1090 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1091 | "requires": { 1092 | "ansi-regex": "^2.0.0" 1093 | } 1094 | }, 1095 | "strip-bom": { 1096 | "version": "2.0.0", 1097 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1098 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1099 | "requires": { 1100 | "is-utf8": "^0.2.0" 1101 | } 1102 | }, 1103 | "strip-indent": { 1104 | "version": "1.0.1", 1105 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1106 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1107 | "requires": { 1108 | "get-stdin": "^4.0.1" 1109 | } 1110 | }, 1111 | "supports-color": { 1112 | "version": "2.0.0", 1113 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1114 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" 1115 | }, 1116 | "tar": { 1117 | "version": "2.2.2", 1118 | "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", 1119 | "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", 1120 | "requires": { 1121 | "block-stream": "*", 1122 | "fstream": "^1.0.12", 1123 | "inherits": "2" 1124 | } 1125 | }, 1126 | "tough-cookie": { 1127 | "version": "2.4.3", 1128 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1129 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 1130 | "requires": { 1131 | "psl": "^1.1.24", 1132 | "punycode": "^1.4.1" 1133 | }, 1134 | "dependencies": { 1135 | "punycode": { 1136 | "version": "1.4.1", 1137 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1138 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 1139 | } 1140 | } 1141 | }, 1142 | "trim-newlines": { 1143 | "version": "1.0.0", 1144 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1145 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" 1146 | }, 1147 | "true-case-path": { 1148 | "version": "1.0.3", 1149 | "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", 1150 | "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", 1151 | "requires": { 1152 | "glob": "^7.1.2" 1153 | } 1154 | }, 1155 | "tunnel-agent": { 1156 | "version": "0.6.0", 1157 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1158 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1159 | "requires": { 1160 | "safe-buffer": "^5.0.1" 1161 | } 1162 | }, 1163 | "tweetnacl": { 1164 | "version": "0.14.5", 1165 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1166 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 1167 | }, 1168 | "uri-js": { 1169 | "version": "4.2.2", 1170 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1171 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1172 | "requires": { 1173 | "punycode": "^2.1.0" 1174 | } 1175 | }, 1176 | "util-deprecate": { 1177 | "version": "1.0.2", 1178 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1179 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1180 | }, 1181 | "uuid": { 1182 | "version": "3.3.2", 1183 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 1184 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" 1185 | }, 1186 | "validate-npm-package-license": { 1187 | "version": "3.0.4", 1188 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1189 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1190 | "requires": { 1191 | "spdx-correct": "^3.0.0", 1192 | "spdx-expression-parse": "^3.0.0" 1193 | } 1194 | }, 1195 | "verror": { 1196 | "version": "1.10.0", 1197 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1198 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1199 | "requires": { 1200 | "assert-plus": "^1.0.0", 1201 | "core-util-is": "1.0.2", 1202 | "extsprintf": "^1.2.0" 1203 | } 1204 | }, 1205 | "which": { 1206 | "version": "1.3.1", 1207 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1208 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1209 | "requires": { 1210 | "isexe": "^2.0.0" 1211 | } 1212 | }, 1213 | "which-module": { 1214 | "version": "1.0.0", 1215 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 1216 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" 1217 | }, 1218 | "wide-align": { 1219 | "version": "1.1.3", 1220 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1221 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1222 | "requires": { 1223 | "string-width": "^1.0.2 || 2" 1224 | } 1225 | }, 1226 | "wrap-ansi": { 1227 | "version": "2.1.0", 1228 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 1229 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 1230 | "requires": { 1231 | "string-width": "^1.0.1", 1232 | "strip-ansi": "^3.0.1" 1233 | } 1234 | }, 1235 | "wrappy": { 1236 | "version": "1.0.2", 1237 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1238 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1239 | }, 1240 | "y18n": { 1241 | "version": "3.2.1", 1242 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 1243 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" 1244 | }, 1245 | "yallist": { 1246 | "version": "2.1.2", 1247 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 1248 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 1249 | }, 1250 | "yargs": { 1251 | "version": "7.1.0", 1252 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", 1253 | "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", 1254 | "requires": { 1255 | "camelcase": "^3.0.0", 1256 | "cliui": "^3.2.0", 1257 | "decamelize": "^1.1.1", 1258 | "get-caller-file": "^1.0.1", 1259 | "os-locale": "^1.4.0", 1260 | "read-pkg-up": "^1.0.1", 1261 | "require-directory": "^2.1.1", 1262 | "require-main-filename": "^1.0.1", 1263 | "set-blocking": "^2.0.0", 1264 | "string-width": "^1.0.2", 1265 | "which-module": "^1.0.0", 1266 | "y18n": "^3.2.1", 1267 | "yargs-parser": "^5.0.0" 1268 | }, 1269 | "dependencies": { 1270 | "camelcase": { 1271 | "version": "3.0.0", 1272 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 1273 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" 1274 | } 1275 | } 1276 | }, 1277 | "yargs-parser": { 1278 | "version": "5.0.0", 1279 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", 1280 | "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", 1281 | "requires": { 1282 | "camelcase": "^3.0.0" 1283 | }, 1284 | "dependencies": { 1285 | "camelcase": { 1286 | "version": "3.0.0", 1287 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 1288 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" 1289 | } 1290 | } 1291 | } 1292 | } 1293 | } 1294 | -------------------------------------------------------------------------------- /sleeky-backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sleeky-admin", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node-sass --watch assets/css/themes -o assets/css --output-style compressed" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "node-sass": "^4.12.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /sleeky-backend/plugin.php: -------------------------------------------------------------------------------- 1 | body {background: unset;} 23 | HEAD; 24 | } 25 | 26 | // Inject Sleeky files 27 | yourls_add_action( 'html_head', 'sleeky_head_scripts' ); 28 | 29 | function sleeky_head_scripts() { 30 | 31 | // This is so the user doesn't have to reload page twice in settings screen 32 | if (isset( $_POST['theme_choice'] )) { 33 | // User has just changed theme 34 | if ($_POST['theme_choice'] == "light") { 35 | setTheme("light"); 36 | } else { 37 | setTheme("dark"); 38 | } 39 | } else { 40 | // User has not just changed theme 41 | if (yourls_get_option( 'theme_choice' ) == "light") { 42 | setTheme("light"); 43 | } else { 44 | setTheme("dark"); 45 | } 46 | } 47 | } 48 | 49 | // Inject Sleeky files 50 | 51 | function setTheme($theme) { 52 | $url = yourls_plugin_url( __DIR__ ); 53 | if ($theme == "light") { 54 | echo << 56 | 57 | 58 | 59 | HEAD; 60 | } else if ($theme == "dark") { 61 | echo << 63 | 64 | 65 | 66 | HEAD; 67 | } 68 | } 69 | 70 | // Inject information and options into the frontend 71 | yourls_add_action( 'html_head', 'addOptions' ); 72 | 73 | function addOptions() 74 | { 75 | $url = yourls_plugin_url( __DIR__ ); 76 | echo << 78 | HEAD; 79 | } 80 | 81 | // Register our plugin admin page 82 | yourls_add_action( 'plugins_loaded', 'sleeky_add_settings' ); 83 | function sleeky_add_settings() { 84 | yourls_register_plugin_page( 'sleeky_settings', 'Sleeky Settings', 'sleeky_do_settings_page' ); 85 | // parameters: page slug, page title, and function that will display the page itself 86 | } 87 | 88 | // Display admin page 89 | function sleeky_do_settings_page() { 90 | 91 | // Check if a form was submitted 92 | if( isset( $_POST['theme_choice'] ) ) { 93 | // Check nonce 94 | yourls_verify_nonce( 'sleeky_settings' ); 95 | 96 | // Process form 97 | sleeky_settings_update(); 98 | } 99 | 100 | // Get value from database 101 | $theme_choice = yourls_get_option( 'theme_choice' ); 102 | 103 | // Create nonce 104 | $nonce = yourls_create_nonce( 'sleeky_settings' ); 105 | 106 | echo << 108 |

Sleeky Settings

109 |
110 | 111 |

112 | 113 | 117 |

118 |

119 |
120 | 121 | HTML; 122 | } 123 | 124 | // Update option in database 125 | function sleeky_settings_update() { 126 | $in = $_POST['theme_choice']; 127 | 128 | if( $in ) { 129 | // Validate theme_choice. ALWAYS validate and sanitize user input. 130 | // Here, we want an integer 131 | // $in = intval( $in); 132 | if ($in == "light" or $in == "dark") { 133 | // Update value in database 134 | yourls_update_option( 'theme_choice', $in ); 135 | } else { 136 | echo "Error"; 137 | } 138 | 139 | } 140 | } 141 | 142 | // Hide admin links for non-authenticated users 143 | yourls_add_filter( 'admin_links', 'sleeky_admin_links' ); 144 | function sleeky_admin_links( $admin_links ) { 145 | if ( true !== yourls_is_valid_user() ) { 146 | $admin_links = []; 147 | } else { 148 | $admin_links['help'] = [ 149 | 'url' => yourls_site_url( false, '/' ) . '/readme.html', 150 | 'anchor' => yourls__( 'Help' ) 151 | ]; 152 | } 153 | 154 | $admin_links['frontend'] = [ 155 | 'url' => yourls_site_url( false, '/' ), 156 | 'anchor' => 'arrow_back ' . yourls__( 'Frontend Interface' ) 157 | ]; 158 | 159 | return $admin_links; 160 | } 161 | yourls_add_filter( 'help_link', 'sleeky_help_link' ); 162 | function sleeky_help_link( $help_link ) { 163 | return null; 164 | } 165 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-frontend/frontend/assets/img/favicon.ico -------------------------------------------------------------------------------- /sleeky-frontend/frontend/assets/img/logo-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-frontend/frontend/assets/img/logo-black.png -------------------------------------------------------------------------------- /sleeky-frontend/frontend/assets/img/logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-frontend/frontend/assets/img/logo-large.png -------------------------------------------------------------------------------- /sleeky-frontend/frontend/assets/img/logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flynntes/Sleeky/8c1dcd8f320c5415eb6c49863f6c836e527b1ca2/sleeky-frontend/frontend/assets/img/logo-small.png -------------------------------------------------------------------------------- /sleeky-frontend/frontend/assets/sass/styles.scss: -------------------------------------------------------------------------------- 1 | // Font Imports 2 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Open+Sans&display=swap'); 3 | 4 | $open-sans: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 5 | $montserrat: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 6 | 7 | // Bootstrap Overrides 8 | $enable-negative-margins: true; 9 | $font-family-sans-serif: $open-sans; 10 | $input-btn-font-family: $montserrat; 11 | $headings-font-family: $montserrat; 12 | $input-bg: #ebebeb; 13 | $input-font-weight: 700; 14 | $btn-font-weight: 700; 15 | $input-border-width: 0; 16 | $border-radius: 6px; 17 | 18 | // Bootstrap Imports 19 | @import '../../node_modules/bootstrap/scss/bootstrap.scss'; 20 | 21 | // Custom Styles 22 | .bold-link { 23 | font-family: $montserrat; 24 | font-weight: 700; 25 | text-transform: uppercase; 26 | } 27 | 28 | @include media-breakpoint-down(md) { 29 | .input-group-block { 30 | input, button { 31 | width: 100%; 32 | border-radius: $border-radius !important; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/assets/svg/custom-url.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/config.php: -------------------------------------------------------------------------------- 1 | "LINK", 51 | $footerLinks = [ 52 | "About" => "https://sleeky.flynntes.com/", 53 | "Contact" => "https://yourls.org/", 54 | "Legal" => "https://yourls.org/", 55 | "Admin" => "/admin" 56 | ]; 57 | 58 | ?> 59 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 57 | 58 | 59 | 60 | 86 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/functions.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var sass = require('gulp-sass')(require('sass')); 3 | 4 | gulp.task('sass', () => { 5 | return gulp.src("./assets/sass/*.scss") 6 | .pipe(sass()) 7 | .pipe(gulp.dest("dist/")) 8 | }); 9 | 10 | gulp.task('start', gulp.series('sass', function () { 11 | gulp.watch("sass/*.scss", gulp.series('sass')); 12 | })); 13 | 14 | gulp.task('default', gulp.series('start')); -------------------------------------------------------------------------------- /sleeky-frontend/frontend/header.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | <?php echo title ?> 14 | 15 | 16 | 17 | 18 | 24 | 25 | 30 | 31 | 32 | 45 | 46 | -------------------------------------------------------------------------------- /sleeky-frontend/frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sleeky-frontend", 3 | "version": "2.5.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "gulp", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "gulp": "^4.0.2", 14 | "gulp-sass": "^5.0.0", 15 | "sass": "^1.35.1" 16 | }, 17 | "dependencies": { 18 | "bootstrap": "^5.0.2", 19 | "popper.js": "^1.16.1" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sleeky-frontend/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | recaptchaV3SecretKey, 'response' => $token))); 27 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 28 | $response = curl_exec($ch); 29 | curl_close($ch); 30 | $arrResponse = json_decode($response, true); 31 | 32 | // verify the response 33 | if($arrResponse["success"] == '1' && $arrResponse["action"] == $action && $arrResponse["score"] >= 0.5) { 34 | // reCAPTCHA succeeded 35 | shorten(); 36 | } else { 37 | // reCAPTCHA failed 38 | $message = "reCAPTCHA failed"; 39 | } 40 | } else { 41 | // Don't use reCAPTCHA 42 | shorten(); 43 | } 44 | } 45 | 46 | function shorten() { 47 | // Get parameters -- they will all be sanitized in yourls_add_new_link() 48 | $url = $_REQUEST['url']; 49 | $keyword = isset( $_REQUEST['keyword'] ) ? $_REQUEST['keyword'] : '' ; 50 | $title = isset( $_REQUEST['title'] ) ? $_REQUEST['title'] : '' ; 51 | $text = isset( $_REQUEST['text'] ) ? $_REQUEST['text'] : '' ; 52 | 53 | // Create short URL, receive array $return with various information 54 | $return = yourls_add_new_link( $url, $keyword, $title ); 55 | 56 | // Make visible to UI 57 | global $shorturl, $message, $status, $title; 58 | 59 | $shorturl = isset( $return['shorturl'] ) ? $return['shorturl'] : ''; 60 | $message = isset( $return['message'] ) ? $return['message'] : ''; 61 | $title = isset( $return['title'] ) ? $return['title'] : ''; 62 | $status = isset( $return['status'] ) ? $return['status'] : ''; 63 | 64 | // Stop here if bookmarklet with a JSON callback function ("instant" bookmarklets) 65 | if( isset( $_GET['jsonp'] ) && $_GET['jsonp'] == 'yourls' ) { 66 | $short = $return['shorturl'] ? $return['shorturl'] : ''; 67 | $message = "Short URL (Ctrl+C to copy)"; 68 | header('Content-type: application/json'); 69 | echo yourls_apply_filter( 'bookmarklet_jsonp', "yourls_callback({'short_url':'$short','message':'$message'});" ); 70 | die(); 71 | } 72 | } 73 | ?> 74 | 75 |
76 |
77 |
78 |
79 | 80 | 81 | 82 |
83 | 84 |
85 | 86 |
87 |

Your shortened link

88 | 89 |
90 |
91 |
92 | 93 | 94 |
95 | View info & stats at + 96 |
97 |
98 |
99 | 100 |
101 | Logo 102 |
103 |
104 |

105 | 106 | 107 | 108 | 112 | 113 | 114 | 115 | 134 |
135 | 136 |
137 |
138 | © 139 |
140 | $val): ?> 141 | 142 | 143 |
144 |
145 |
146 |
147 |
148 | 149 | 150 | 151 | --------------------------------------------------------------------------------