Left navigation menu update (#1102)

refs. [d6c22df](d6c22df6d7)

- added icons for members and pages
- improved view site link visibility
- added view site to logo dropdown
- updated all navigation and logo menu icons
- rename 'team' to 'staff'
- lots of design refinement and update (colors, shadows)
This commit is contained in:
Peter Zimon 2019-02-22 16:43:35 +07:00 committed by GitHub
parent fb2b607526
commit 605b89a0d2
55 changed files with 302 additions and 243 deletions

View File

@ -83,7 +83,7 @@ export default Component.extend({
if (selected.category === 'Users') {
let id = selected.id.replace('user.', '');
this.get('router').transitionTo('team.user', id);
this.get('router').transitionTo('staff.user', id);
}
if (selected.category === 'Tags') {

View File

@ -339,7 +339,7 @@ export default Controller.extend({
_deleteUserSuccess() {
this.get('notifications').closeAlerts('user.delete');
this.store.unloadAll('post');
this.transitionToRoute('team');
this.transitionToRoute('staff');
},
_deleteUserFailure() {

View File

@ -4,7 +4,7 @@ export default Mixin.create({
transitionAuthor() {
return (user) => {
if (user.get('isAuthorOrContributor')) {
return this.transitionTo('team.user', user);
return this.transitionTo('staff.user', user);
}
return user;
@ -14,7 +14,7 @@ export default Mixin.create({
transitionEditor() {
return (user) => {
if (user.get('isEditor')) {
return this.transitionTo('team');
return this.transitionTo('staff');
}
return user;

View File

@ -39,7 +39,7 @@ Router.map(function () {
this.route('edit', {path: ':type/:post_id'});
});
this.route('team', {path: '/team'}, function () {
this.route('staff', {path: '/staff'}, function () {
this.route('user', {path: ':user_slug'});
});

View File

@ -7,7 +7,7 @@ export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
infinity: service(),
session: service(),
titleToken: 'Team',
titleToken: 'Staff',
classNames: ['view-team'],
model() {

View File

@ -4,7 +4,7 @@ import CurrentUserSettings from 'ghost-admin/mixins/current-user-settings';
import styleBody from 'ghost-admin/mixins/style-body';
export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
titleToken: 'Team - User',
titleToken: 'Staff - User',
classNames: ['team-view-user'],
@ -21,9 +21,9 @@ export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
let isEditor = currentUser.get('isEditor');
if (isAuthorOrContributor && !isOwnProfile) {
this.transitionTo('team.user', currentUser);
this.transitionTo('staff.user', currentUser);
} else if (isEditor && !isOwnProfile && !user.get('isAuthorOrContributor')) {
this.transitionTo('team');
this.transitionTo('staff');
}
});
},
@ -34,7 +34,7 @@ export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
actions: {
didTransition() {
this.modelFor('team.user').get('errors').clear();
this.modelFor('staff.user').get('errors').clear();
},
save() {

View File

@ -142,14 +142,6 @@ input:focus,
color: var(--darkgrey);
}
.gh-nav-list svg {
fill: var(--darkgrey);
}
.gh-nav-list svg g {
stroke: var(--darkgrey);
}
.gh-main,
.gh-unsplash-window {
background: #263238;

View File

@ -74,10 +74,6 @@
fill: color-mod(var(--darkgrey) lightness(+20%));
}
.dropdown-menu svg path {
stroke: color-mod(var(--darkgrey) lightness(+20%));
}
@media (max-width: 500px) {
.dropdown-menu > li > a,
.dropdown-menu > li > button {
@ -103,6 +99,13 @@
text-decoration: none;
}
.dropdown-menu > li > a:hover svg,
.dropdown-menu > li > a:focus svg,
.dropdown-menu > li > button:hover svg,
.dropdown-menu > li > button:focus svg {
fill: var(--darkgrey);
}
/* Active */
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,

View File

@ -1,10 +1,14 @@
.ember-power-select-trigger {
padding: 0 16px 0 8px;
border: 1px solid #dfe1e3;
border: 1px solid color-mod(var(--lightgrey) l(-5%) s(-5%));
border-radius: var(--border-radius);
background: transparent;
}
.ember-power-select-trigger:focus, .ember-power-select-trigger--active {
border: 1px solid color-mod(var(--lightgrey) l(-5%) s(-5%));
}
.ember-power-select-trigger svg {
height: 4px;
width: 6.11px;
@ -24,7 +28,7 @@
.ember-power-select-trigger[aria-expanded="true"],
.ember-power-select-search input {
outline: 0;
border-color: #b1b1b1;
border-color: color-mod(var(--lightgrey) l(-10%) s(-10%));
}
.ember-power-select-dropdown {
@ -32,11 +36,15 @@
z-index: 1000;
box-sizing: border-box;
margin: -1px 0 0 0;
border: 1px solid #b1b1b1;
border: 1px solid color-mod(var(--lightgrey) l(-10%) s(-10%));
border-top: 0 none;
background: #fff;
border-radius: 0 0 var(--border-radius) var(--border-radius);
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
box-shadow: 0 8px 20px -4px rgba(0,0,0,.1);
}
.ember-power-select-dropdown.ember-basic-dropdown-content--in-place {
border-bottom-color: color-mod(var(--lightgrey) l(-10%) s(-10%));
}
.ember-power-select-option {
@ -65,6 +73,7 @@
margin: 0 1px !important;
padding: 0 !important;
min-height: 0 !important;
height: 27px;
width: calc(100% - 8px) !important;
max-width: 100% !important;
max-height: none !important;
@ -72,7 +81,7 @@
background: none !important;
box-shadow: none !important;
text-indent: 0 !important;
font-size: 1.3rem;
font-size: 1.4rem;
line-height: inherit !important;
}
@ -87,21 +96,24 @@
position: relative;
display: inline-block;
padding: 7px 8px;
color: var(--midgrey);
font-size: 0.85em;
font-weight: normal;
cursor: default;
text-transform: uppercase;
color: color-mod(var(--midlightgrey) l(+5%));
white-space: nowrap;
letter-spacing: 0.1em;
font-size: 1.2rem;
font-weight: 500;
}
.ember-power-select-group .ember-power-select-group-name:after {
content: "";
position: absolute;
top: 52%;
left: calc(100% + 3px);
top: 60%;
left: calc(100% - 3px);
display: block;
width: calc(189px - 100%);
width: calc(246px - 100%);
height: 1px;
border-bottom: var(--midgrey) 1px solid;
border-bottom: var(--lightgrey) 1px solid;
}
@media (max-width: 800px) {
@ -122,6 +134,10 @@
padding-bottom: 0;
}
.ember-power-select-group:first-of-type .ember-power-select-group-name:after {
top: 66%;
}
.ember-power-select-group .ember-power-select-option {
overflow: hidden;
padding: 7px 8px;
@ -130,8 +146,9 @@
}
.ember-power-select-group .ember-power-select-option .highlight {
background: #fff3b8;
background: #fff6b8;
border-radius: 1px;
color: color-mod(var(--darkgrey) l(-10%));
}
.ember-power-select-group .ember-power-select-option[aria-current="true"] {
@ -153,7 +170,6 @@
}
/* Multiple */
.ember-power-select-multiple-trigger {
background: #fff;

View File

@ -78,11 +78,13 @@
.post-settings svg {
width: 16px;
height: 16px;
}
.post-settings svg {
fill: var(--midgrey);
}
.post-settings:hover svg,
.post-settings.active svg {
.post-settings:hover svg {
fill: var(--darkgrey);
}

View File

@ -47,19 +47,20 @@
.gh-nav {
position: relative;
z-index: 800;
flex: 0 0 280px;
flex: 0 0 296px;
display: flex;
flex-direction: column;
min-width: 0; /* TODO: This is a bullshit Firefox hack */
background: color-mod(var(--lightgrey) l(+4%));
background: color-mod(var(--lightgrey) l(+5%) s(-2%));
transform: translateX(0);
border-right: 1px solid var(--lightgrey);
}
.gh-nav-menu {
flex-shrink: 0;
display: flex;
align-items: center;
padding: 25px;
padding: 25px 20px;
cursor: pointer;
outline: none;
}
@ -82,8 +83,8 @@
}
.gh-nav-menu svg path {
stroke-width: 1px;
stroke: color-mod(var(--darkgrey));
stroke-width: 1.5px;
stroke: color-mod(var(--midlightgrey) l(-5%));
}
.gh-nav-menu-icon {
@ -106,7 +107,7 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 1.4rem;
font-size: 1.5rem;
line-height: 1.3em;
font-weight: 600;
}
@ -127,7 +128,7 @@
.gh-nav-search {
position: relative;
margin: 0 25px 15px;
margin: 0 20px 15px;
}
.gh-nav-search .ember-power-select-trigger {
@ -147,7 +148,7 @@
.gh-nav-search-button svg {
width: 13px;
height: 13px;
fill: var(--midgrey);
fill: color-mod(var(--midlightgrey) l(+10%));
line-height: 13px;
transition: color 0.2s ease;
transform: rotate(90deg);
@ -164,10 +165,10 @@
.gh-nav-list {
margin: 0;
padding: 0 25px 0 0;
padding: 10px 0 0;
list-style: none;
font-size: 1.3rem;
line-height: 1.5em;
font-size: 1.4rem;
line-height: 1.6em;
}
.gh-nav-list li {
@ -176,78 +177,115 @@
.gh-nav-list .gh-nav-list-h {
overflow: hidden;
margin-top: 15px;
padding: 10px 10px 10px 25px;
color: #808284;
text-transform: uppercase;
margin-top: 32px;
padding: 10px 20px;
color: color-mod(var(--midgrey) l(-10%) s(+5%));
text-overflow: ellipsis;
text-transform: uppercase;
white-space: nowrap;
letter-spacing: 0.05em;
font-size: 1.1rem;
letter-spacing: 0.1em;
font-size: 1.2rem;
line-height: 1.1em;
font-weight: 500;
}
.gh-nav-list a {
display: flex;
align-items: center;
padding: 7px 10px 7px 25px;
border-radius: 0 4px 4px 0;
color: var(--darkgrey);
padding: 7px 20px;
color: color-mod(var(--midgrey) l(+5%));
opacity: 0.9;
transition: none;
}
.gh-nav-list .active {
background: color-mod(var(--blue) lightness(+10%));
color: #fff;
background: color-mod(var(--lightgrey) l(-1%) s(-3%));
color: var(--darkgrey);
font-weight: 600;
opacity: 1;
}
.gh-nav-list a:not(.active):hover {
background: color-mod(var(--blue) alpha(-85%));
color: var(--darkgrey);
background: color-mod(var(--lightgrey) l(+2%) s(-2%));
opacity: 1;
}
/* Icons */
.gh-nav-list svg {
margin-right: 8px;
width: 15px;
height: 15px;
fill: rgba(0,0,0,0.6);
width: 16px;
height: 16px;
fill: color-mod(var(--midgrey) l(+5%));
line-height: 1;
}
.gh-nav-list svg g {
stroke: rgba(0,0,0,0.6);
}
.gh-nav-list .active svg {
fill: #fff;
fill: color-mod(var(--blue) l(-3%) s(+3%));
}
.gh-nav-list .active svg g {
stroke: #fff;
.gh-nav-list svg g {
stroke: color-mod(var(--midgrey) l(+5%));
}
.gh-nav-list a:not(.active):hover svg {
fill: var(--darkgrey);
.gh-nav-list .gh-nav-new-post {
position: absolute;
z-index: 999;
padding: 6px;
margin: 0;
right: 17px;
}
.gh-nav-list a:not(.active):hover svg g {
stroke: var(--darkgrey);
.gh-nav-list .gh-nav-new-post span {
color: color-mod(var(--blue) l(-3%) s(+5%));
width: 22px;
height: 22px;
border: 1px solid color-mod(var(--blue) l(-3%) s(+5%));
border-radius: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.gh-nav-list .gh-nav-new-post span svg {
margin-right: 0;
width: 10px;
height: 10px;
}
.gh-nav-list .gh-nav-new-post span svg path {
stroke: color-mod(var(--blue) l(-3%) s(+5%));
stroke-width: 3px;
}
.gh-nav-list a.gh-nav-new-post:hover,
.gh-nav-list a.gh-nav-new-post.active {
background: none;
}
.gh-nav-list a.gh-nav-new-post:hover span {
background: color-mod(var(--blue) l(-3%) s(+5%));
}
.gh-nav-list .gh-nav-new-post:hover span svg path {
stroke: var(--white);
}
/* Left navbar footer */
.gh-nav-foot-sitelink {
display: flex;
justify-content: center;
align-items: center;
height: 46px;
border-top: color-mod(var(--lightgrey) l(-1%)) 1px solid;
height: 32px;
text-align: center;
font-size: 1.2rem;
line-height: 1em;
font-weight: 300;
font-size: 1.4rem;
line-height: 1.6em;
color: color-mod(var(--midgrey) l(+5%));
padding: 7px 10px 7px 16px;
margin: 20px 6px 12px;
transition: color .3s;
}
.gh-nav-foot-sitelink:hover {
color: var(--blue);
}
@media (max-width: 500px) {
@ -257,11 +295,24 @@
}
.gh-nav-foot-sitelink svg {
width: 13px;
margin-left: 5px;
fill: color-mod(var(--midgrey) l(+5%));
width: 16px;
margin-right: 8px;
}
.gh-nav-foot-sitelink svg g,
.gh-nav-foot-sitelink svg path
{
fill: color-mod(var(--midgrey) l(+5%));
transition: fill .3s;
}
.gh-nav-foot-sitelink:hover svg g,
.gh-nav-foot-sitelink:hover svg path
{
fill: color-mod(var(--blue) l(+5%));
}
/* Mobile Nav Menu (Slides out)
/* ---------------------------------------------------------- */

View File

@ -4,6 +4,6 @@
{{else}}
{{#link-to "posts"}}{{svg-jar "content" data-test-mobile-nav="posts"}}Posts{{/link-to}}
{{/if}}
{{#link-to "team" classNames="gh-nav-main-users" data-test-mobile-nav="team"}}{{svg-jar "account-group"}}Team{{/link-to}}
{{#link-to "staff" classNames="gh-nav-main-users" data-test-mobile-nav="staff"}}{{svg-jar "account-group"}}Staff{{/link-to}}
<div class="gh-mobile-nav-bar-more" {{action "openMobileMenu" target=ui data-test-mobile-nav="more"}}>{{svg-jar "icon" class="icon-gh"}}More</div>
{{yield}}

View File

@ -9,9 +9,10 @@
{{/dropdown.trigger}}
{{#dropdown.content class="gh-nav-menu-dropdown"}}
<ul class="dropdown-menu dropdown-triangle-top" role="menu" {{action dropdown.actions.close on="click" preventDefault=false}}>
<li role="presentation"><a class="dropdown-item" href="{{config.blogUrl}}/" target="_blank" tabindex="-1">{{svg-jar "view-site"}} View site</a></li>
<li role="presentation">{{#link-to "about" classNames="dropdown-item" role="menuitem" tabindex="-1" data-test-nav="about"}}{{svg-jar "store"}} About Ghost{{/link-to}}</li>
<li class="divider"></li>
<li role="presentation">{{#link-to "team.user" session.user.slug classNames="dropdown-item" role="menuitem" tabindex="-1" data-test-nav="user-profile"}}{{svg-jar "user-circle"}} Your Profile{{/link-to}}</li>
<li role="presentation">{{#link-to "staff.user" session.user.slug classNames="dropdown-item" role="menuitem" tabindex="-1" data-test-nav="user-profile"}}{{svg-jar "user-circle"}} Your Profile{{/link-to}}</li>
<li role="presentation"><a class="dropdown-item" role="menuitem" tabindex="-1" href="https://docs.ghost.org/" target="_blank">{{svg-jar "ambulance"}} Support Center</a></li>
<li role="presentation"><a class="dropdown-item" role="menuitem" tabindex="-1" href="https://twitter.com/intent/tweet?text=%40TryGhost+Hi%21+Can+you+help+me+with+&related=TryGhost" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;">{{svg-jar "twitter"}} Tweet @TryGhost!</a></li>
<li role="presentation"><a class="dropdown-item" role="menuitem" tabindex="-1" href="https://docs.ghost.org/faq/using-ghost/" target="_blank">{{svg-jar "book-open"}} How to Use Ghost</a></li>
@ -40,8 +41,8 @@
{{gh-search-input class="gh-nav-search-input"}}
</section>
<ul class="gh-nav-list gh-nav-main">
<li>{{#link-to "editor.new" "post" data-test-nav="new-post"}}{{svg-jar "pen"}}New post{{/link-to}}</li>
<li>
<li class="relative">
{{#link-to "editor.new" "post" classNames="gh-nav-new-post" alt="New story" data-test-nav="new-story"}}<span>{{svg-jar "add-stroke"}}</span>{{/link-to}}
{{!-- clicking the Content link whilst on the content screen should reset the filter --}}
{{#if (eq router.currentRouteName "posts.index")}}
{{#link-to "posts" (query-params type=null author=null tag=null order=null) classNames="active" data-test-nav="posts"}}{{svg-jar "content"}}Posts{{/link-to}}
@ -52,15 +53,15 @@
<li>
{{!-- clicking the Content link whilst on the content screen should reset the filter --}}
{{#if (eq router.currentRouteName "pages.index")}}
{{#link-to "pages" (query-params type=null author=null tag=null order=null) classNames="active" data-test-nav="pages"}}{{svg-jar "content"}}Pages{{/link-to}}
{{#link-to "pages" (query-params type=null author=null tag=null order=null) classNames="active" data-test-nav="pages"}}{{svg-jar "pages"}}Pages{{/link-to}}
{{else}}
{{#link-to "pages" data-test-nav="pages"}}{{svg-jar "content"}}Pages{{/link-to}}
{{#link-to "pages" data-test-nav="pages"}}{{svg-jar "pages"}}Pages{{/link-to}}
{{/if}}
</li>
<li>{{#link-to "team" data-test-nav="team"}}{{svg-jar "account-group"}}Team{{/link-to}}</li>
{{#if (and config.enableDeveloperExperiments (gh-user-can-admin session.user))}}
<li>{{#link-to "members" current-when="members member" data-test-nav="members"}}{{svg-jar "email"}}Members{{/link-to}}</li>
<li>{{#link-to "members" current-when="members member" data-test-nav="members"}}{{svg-jar "members"}}Members{{/link-to}}</li>
{{/if}}
<li>{{#link-to "staff" data-test-nav="staff"}}{{svg-jar "staff"}}Staff{{/link-to}}</li>
{{#if (and feature.subscribers (gh-user-can-admin session.user))}}
<li>{{#link-to "subscribers" data-test-nav="subscribers"}}{{svg-jar "email"}}Subscribers{{/link-to}}</li>
{{/if}}
@ -69,11 +70,11 @@
<ul class="gh-nav-list gh-nav-settings">
<li class="gh-nav-list-h">Settings</li>
<li>{{#link-to "settings.general" data-test-nav="settings"}}{{svg-jar "settings"}}General{{/link-to}}</li>
<li>{{#link-to "settings.design" data-test-nav="design"}}{{svg-jar "compass"}}Design{{/link-to}}</li>
<li>{{#link-to "settings.design" data-test-nav="design"}}{{svg-jar "paintbrush"}}Design{{/link-to}}</li>
<li>{{#link-to "settings.tags" data-test-nav="tags"}}{{svg-jar "tag"}}Tags{{/link-to}}</li>
<li>{{#link-to "settings.code-injection" data-test-nav="code-injection"}}{{svg-jar "brackets"}}Code injection{{/link-to}}</li>
<li>{{#link-to "settings.integrations" current-when=isIntegrationRoute data-test-nav="integrations"}}{{svg-jar "box"}}Integrations{{/link-to}}</li>
<li>{{#link-to "settings.labs" data-test-nav="labs"}}{{svg-jar "wrench-double"}}Labs{{/link-to}}</li>
<li>{{#link-to "settings.integrations" current-when=isIntegrationRoute data-test-nav="integrations"}}{{svg-jar "modules"}}Integrations{{/link-to}}</li>
<li>{{#link-to "settings.labs" data-test-nav="labs"}}{{svg-jar "labs"}}Labs{{/link-to}}</li>
</ul>
{{/if}}
@ -95,7 +96,7 @@
</section>
<footer class="gh-nav-foot">
<a class="gh-nav-foot-sitelink" href="{{config.blogUrl}}/" target="_blank">View site {{svg-jar "external"}}</a>
<a class="gh-nav-foot-sitelink" href="{{config.blogUrl}}/" target="_blank">{{svg-jar "view-site"}} View site</a>
</footer>
{{gh-tour-item "getting-started"

View File

@ -1,7 +1,7 @@
{{#power-select
search=(action "search")
onchange=(action "openSelected")
placeholder="Search"
placeholder="Search..."
onopen=(action "onFocus")
onclose=(action "onBlur")
searchEnabled=false

View File

@ -1,5 +1,5 @@
<div class="apps-grid-cell">
{{#link-to 'team.user' user.slug data-test-user-id=user.id}}
{{#link-to 'staff.user' user.slug data-test-user-id=user.id}}
<article class="apps-card-app">
<div class="apps-card-left">
<span class="user-list-item-figure" style={{background-image-style user.profileImageUrl}}>

View File

@ -1,5 +1,5 @@
<header>
<h1>Invite your team</h1>
<h1>Invite staff users</h1>
<p>Ghost works best when shared with others. Collaborate, get feedback on your posts &amp; work together on ideas.</p>
</header>

View File

@ -93,7 +93,7 @@
{{#if task.isRunning}}
<span>{{svg-jar "spinner" class="gh-icon-spinner gh-btn-icon-no-margin"}}</span>
{{else}}
<span>Last step: Invite your team {{svg-jar "arrow-right-small" class="gh-btn-icon-right"}}</span>
<span>Last step: Invite staff users {{svg-jar "arrow-right-small" class="gh-btn-icon-right"}}</span>
{{/if}}
{{/gh-task-button}}
</form>

View File

@ -1,10 +1,10 @@
<section class="gh-canvas">
<header class="gh-canvas-header">
<h2 class="gh-canvas-title" data-test-screen-title>Team members</h2>
<h2 class="gh-canvas-title" data-test-screen-title>Staff users</h2>
{{!-- Do not show Invite user button to authors --}}
{{#unless currentUser.isAuthorOrContributor}}
<section class="view-actions">
<button class="gh-btn gh-btn-green" {{action "toggleInviteUserModal"}} ><span>Invite People</span></button>
<button class="gh-btn gh-btn-green" {{action "toggleInviteUserModal"}} ><span>Invite people</span></button>
</section>
{{/unless}}
</header>

View File

@ -1,7 +1,7 @@
<section class="gh-canvas">
<header class="gh-canvas-header">
<h2 class="gh-canvas-title" data-test-screen-title>
{{link-to "Team" "team" data-test-team-link=true}}
{{link-to "Staff" "staff" data-test-staff-link=true}}
<span>{{svg-jar "arrow-right"}}</span>
{{user.name}}
</h2>

View File

@ -1,7 +1,7 @@
<section class="gh-canvas">
<header class="gh-canvas-header">
<h2 class="gh-canvas-title" data-test-screen-title>
{{link-to "Team" "team" data-test-team-link=true}}
{{link-to "Staff" "staff" data-test-staff-link=true}}
<span>{{svg-jar "arrow-right"}}</span>
{{user.name}}

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.a{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round}</style></defs><path class="a" d="M12 1v22M23 12H1"/></svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -1,3 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M31.313 9.313h-12.625v-0.625c0-1.875-1.5-3.375-3.375-3.375-1.813 0-3.313 1.5-3.313 3.375v3.313h-5.313c-0.25 0-0.5 0.125-0.625 0.313l-3.25 5.938-2.625 2.625c-0.125 0.125-0.188 0.313-0.188 0.438v7.375c0 0.375 0.313 0.625 0.688 0.625h2.688c0.313 1.563 1.688 2.688 3.313 2.688 1.563 0 2.938-1.125 3.25-2.688h12.125c0.313 1.563 1.688 2.688 3.25 2.688 1.625 0 3-1.125 3.313-2.688h2.688c0.375 0 0.688-0.25 0.688-0.625v-18.688c0-0.375-0.313-0.688-0.688-0.688zM30.688 25.313h-17.375v-14.625h17.375zM22.063 28h-12.125c-0.125-0.5-0.313-0.938-0.625-1.313h13.375c-0.313 0.375-0.5 0.813-0.625 1.313zM13.313 8.688c0-1.125 0.938-2 2-2 1.125 0 2 0.875 2 2v0.625h-4zM3.813 19.125c0.063 0 0.063-0.063 0.125-0.125l3.125-5.688h4.938v12h-10.688v-3.688zM1.313 26.688h2.688c-0.25 0.375-0.5 0.813-0.625 1.313h-2.063zM6.688 30.688c-1.125 0-2-0.938-2-2 0-1.125 0.875-2 2-2 1.063 0 2 0.875 2 2 0 1.063-0.938 2-2 2zM25.313 30.688c-1.063 0-2-0.938-2-2 0-1.125 0.938-2 2-2 1.125 0 2 0.875 2 2 0 1.063-0.875 2-2 2zM28.625 28c-0.125-0.5-0.375-0.938-0.625-1.313h2.688v1.313zM5.688 19.938c0.125 0.063 0.188 0.063 0.313 0.063 0.25 0 0.5-0.125 0.625-0.375l1.813-3.625h1.563c0.375 0 0.688-0.313 0.688-0.688s-0.313-0.625-0.688-0.625h-2c-0.25 0-0.5 0.125-0.625 0.375l-2 4c-0.125 0.313 0 0.688 0.313 0.875zM17.313 16.688v2.625c0 0.375 0.313 0.688 0.688 0.688h2v2c0 0.375 0.313 0.688 0.688 0.688h2.625c0.375 0 0.688-0.313 0.688-0.688v-2h2c0.375 0 0.688-0.313 0.688-0.688v-2.625c0-0.375-0.313-0.688-0.688-0.688h-2v-2c0-0.375-0.313-0.688-0.688-0.688h-2.625c-0.375 0-0.688 0.313-0.688 0.688v2h-2c-0.375 0-0.688 0.313-0.688 0.688zM18.688 17.313h2c0.375 0 0.625-0.25 0.625-0.625v-2h1.375v2c0 0.375 0.25 0.625 0.625 0.625h2v1.375h-2c-0.375 0-0.625 0.25-0.625 0.625v2h-1.375v-2c0-0.375-0.25-0.625-0.625-0.625h-2z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.75 24c-1.067 0-2.061-.582-2.594-1.5h-6.062C9.561 23.418 8.567 24 7.5 24s-2.061-.582-2.594-1.5H2.25C1.009 22.5 0 21.491 0 20.25V15.8c.002-.753.376-1.452 1.002-1.869l1.316-.877.41-2.299c.003-.016.006-.033.011-.05C2.989 9.701 3.887 9 4.921 9h2.708c.313-.885 1.161-1.5 2.121-1.5h1.5c0-1.654 1.346-3 3-3s3 1.346 3 3h4.5C22.991 7.5 24 8.509 24 9.75v10.5c0 1.241-1.009 2.25-2.25 2.25h-.406c-.533.918-1.527 1.5-2.594 1.5zm0-4.5c-.827 0-1.5.673-1.5 1.5s.673 1.5 1.5 1.5 1.5-.673 1.5-1.5-.673-1.5-1.5-1.5zm-11.25 0c-.827 0-1.5.673-1.5 1.5s.673 1.5 1.5 1.5S9 21.827 9 21s-.673-1.5-1.5-1.5zM21.75 21c.414 0 .75-.336.75-.75V9.75c0-.414-.336-.75-.75-.75h-12c-.414 0-.75.336-.75.75v8.656c.918.533 1.5 1.527 1.5 2.594h5.25c0-1.654 1.346-3 3-3s3 1.346 3 3zM3.738 13.632c-.036.2-.153.38-.323.492l-1.582 1.055c-.209.139-.333.372-.334.623v4.448c.001.414.337.75.751.75H4.5c0-1.654 1.346-3 3-3v-7.5H4.921c-.337 0-.632.224-.722.547l-.461 2.585zM15.75 7.5c0-.827-.673-1.5-1.5-1.5s-1.5.673-1.5 1.5h3z"/><path d="M15.75 17.25c-.414 0-.75-.336-.75-.75V15h-1.5c-.414 0-.75-.336-.75-.75s.336-.75.75-.75H15V12c0-.414.336-.75.75-.75s.75.336.75.75v1.5H18c.414 0 .75.336.75.75s-.336.75-.75.75h-1.5v1.5c0 .414-.336.75-.75.75zM14.25 3c-.414 0-.75-.336-.75-.75V.75c0-.414.336-.75.75-.75s.75.336.75.75v1.5c0 .414-.336.75-.75.75zM18 4.5c-.115 0-.231-.027-.334-.079-.37-.185-.521-.636-.336-1.006l.75-1.5c.127-.256.384-.415.67-.415.115 0 .231.027.334.079.37.185.521.636.336 1.006l-.75 1.5c-.127.256-.384.415-.67.415zM10.5 4.5c-.286 0-.543-.159-.671-.414l-.75-1.5c-.185-.37-.034-.821.335-1.006.105-.053.22-.08.336-.08.286 0 .543.159.671.415l.75 1.5c.185.37.034.821-.335 1.006-.105.052-.22.079-.336.079z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22.5 3h-1.5v-1.5c0-.276-.224-.5-.5-.5h-6c-1.435 0-2.445.475-3 1.393-.555-.918-1.565-1.393-3-1.393h-6c-.276 0-.5.224-.5.5v1.5h-1.5c-.276 0-.5.224-.5.5v16c0 .276.224.5.5.5h6c.902 0 3 .244 3 2.5 0 .276.224.5.5.5h3c.276 0 .5-.224.5-.5 0-2.256 2.098-2.5 3-2.5h6c.276 0 .5-.224.5-.5v-16c0-.276-.224-.5-.5-.5zm-8-1h5.5v15h-5.5c-1.079 0-1.916.271-2.5.8v-13.3c0-1.729.771-2.5 2.5-2.5zm-11.5 0h5.5c1.729 0 2.5.771 2.5 2.5v13.303c-.592-.527-1.433-.803-2.5-.803h-5.5v-15zm19 17h-5.5c-2.233 0-3.741 1.161-3.97 3h-2.06c-.228-1.839-1.736-3-3.97-3h-5.5v-15h1v13.5c0 .276.224.5.5.5h6c1.74 0 2.516.771 2.516 2.5 0 .276.224.5.5.5s.5-.224.5-.5c0-1.729.767-2.5 2.484-2.5h6c.276 0 .5-.224.5-.5v-13.5h1v15z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.962 22.112c-.251-.002-.511-.048-.758-.137-1.531-.604-3.129-.906-4.771-.906-1.181 0-2.35.16-3.474.475-.187.048-.373.072-.595.078-.64-.001-1.231-.247-1.676-.692-.445-.447-.689-1.039-.688-1.668V4.929c.002-1.031.663-1.932 1.644-2.243 1.521-.525 3.121-.792 4.746-.792 1.837 0 3.634.339 5.342 1.008.047.017.11.029.186.035.026-.003.054-.004.082-.004.028 0 .055.002.082.005.079-.007.147-.021.208-.043 1.69-.663 3.482-1.001 5.316-1.001 1.628 0 3.232.268 4.768.798.967.307 1.624 1.206 1.626 2.235v14.336c0 .198-.025.396-.074.588-.156.609-.541 1.122-1.082 1.443-.365.216-.779.329-1.198.329-.197 0-.395-.025-.589-.074-1.136-.318-2.308-.478-3.491-.478-1.641 0-3.239.302-4.747.897-.256.093-.514.14-.777.145l-.041.002-.039-.003zM6.43 19.569c1.659 0 3.277.276 4.82.822V4.322l-.045-.016C9.657 3.7 8.04 3.395 6.389 3.395c-1.459 0-2.897.241-4.274.715-.371.117-.614.446-.615.82v14.332c0 .23.089.445.25.607.161.162.377.252.606.252.068 0 .149-.01.214-.027 1.242-.347 2.544-.525 3.86-.525zm6.32.822c1.534-.545 3.154-.822 4.816-.822 1.319 0 2.624.178 3.879.53.059.015.129.024.198.024.152 0 .302-.042.436-.121.197-.117.337-.303.393-.525.018-.07.027-.142.027-.213V4.929c-.001-.373-.241-.7-.597-.813-1.391-.479-2.834-.721-4.296-.721-1.647 0-3.259.304-4.789.904l-.067.023v16.069z"/></svg>

Before

Width:  |  Height:  |  Size: 797 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g><path d="M9.354 3.147c-.195-.195-.512-.195-.707 0l-8.5 8.5c-.195.195-.195.512 0 .707l8.5 8.5c.097.097.225.146.353.146s.256-.049.354-.146c.195-.195.195-.512 0-.707l-8.147-8.147 8.147-8.146c.195-.196.195-.512 0-.707zM23.854 11.646l-8.5-8.5c-.195-.195-.512-.195-.707 0-.195.195-.195.512 0 .707l8.146 8.147-8.146 8.146c-.195.195-.195.512 0 .707.097.098.225.147.353.147s.256-.049.354-.146l8.5-8.5c.195-.196.195-.512 0-.708z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.629 20.25c-.2 0-.389-.078-.53-.22l-6.44-6.44c-.877-.877-.877-2.304 0-3.182l6.44-6.439c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.331.22.531s-.078.389-.22.53l-6.44 6.439c-.292.292-.292.768 0 1.061l6.44 6.44c.292.292.292.768 0 1.061-.141.141-.33.219-.53.219zM16.371 20.25c-.2 0-.389-.078-.53-.22s-.22-.33-.22-.53.078-.389.22-.53l6.44-6.44c.292-.292.292-.768 0-1.061l-6.44-6.439c-.142-.141-.22-.33-.22-.53s.078-.389.22-.53c.142-.142.33-.22.53-.22s.389.078.53.22l6.44 6.439c.877.877.877 2.304 0 3.182l-6.44 6.44c-.141.141-.33.219-.53.219z"/></svg>

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 623 B

View File

@ -1,3 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M28.688 0h-25.375c-0.375 0-0.625 0.313-0.625 0.688v30.625c0 0.375 0.25 0.688 0.625 0.688h25.375c0.375 0 0.625-0.313 0.625-0.688v-30.625c0-0.375-0.25-0.688-0.625-0.688zM28 30.688h-24v-29.375h3.313v1.375h-0.625v2.625h2.625v-2.625h-0.625v-1.375h4v1.375h-0.688v2.625h2.688v-2.625h-0.688v-1.375h4v1.375h-0.688v2.625h2.688v-2.625h-0.688v-1.375h4v1.375h-0.625v2.625h2.625v-2.625h-0.625v-1.375h3.313zM23.313 9.313h-14.625c-0.375 0-0.688 0.313-0.688 0.688s0.313 0.688 0.688 0.688h14.625c0.375 0 0.688-0.313 0.688-0.688s-0.313-0.688-0.688-0.688zM23.313 13.313h-14.625c-0.375 0-0.688 0.313-0.688 0.688s0.313 0.688 0.688 0.688h14.625c0.375 0 0.688-0.313 0.688-0.688s-0.313-0.688-0.688-0.688zM23.313 17.313h-14.625c-0.375 0-0.688 0.313-0.688 0.688s0.313 0.688 0.688 0.688h14.625c0.375 0 0.688-0.313 0.688-0.688s-0.313-0.688-0.688-0.688zM23.313 21.313h-14.625c-0.375 0-0.688 0.313-0.688 0.688s0.313 0.688 0.688 0.688h14.625c0.375 0 0.688-0.313 0.688-0.688s-0.313-0.688-0.688-0.688zM23.313 25.313h-14.625c-0.375 0-0.688 0.313-0.688 0.688s0.313 0.688 0.688 0.688h14.625c0.375 0 0.688-0.313 0.688-0.688s-0.313-0.688-0.688-0.688z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.236 24C.962 23.954-.041 22.886 0 21.619V5.357C-.042 4.109.955 3.046 2.223 3H4.5V.75c0-.414.336-.75.75-.75S6 .336 6 .75V3h3V.75c0-.414.336-.75.75-.75s.75.336.75.75V3h3V.75c0-.414.336-.75.75-.75s.75.336.75.75V3h3V.75c0-.414.336-.75.75-.75s.75.336.75.75V3h2.25c1.288.046 2.291 1.114 2.25 2.382v16.256c.037 1.252-.96 2.317-2.223 2.362H2.236zm.021-19.5c-.433.019-.772.391-.758.833v16.311c-.015.462.334.841.777.857h19.473c.422-.016.765-.389.75-.833V5.358c.015-.462-.334-.842-.777-.858h-2.223v.75c.001.414-.336.75-.749.75S18 5.664 18 5.25V4.5h-3v.75c0 .414-.337.75-.75.75s-.75-.336-.75-.75V4.5h-3v.75c0 .414-.337.75-.75.75S9 5.664 9 5.25V4.5H6v.75c0 .414-.337.75-.75.75s-.75-.336-.75-.75V4.5H2.257z"/><path d="M6.75 10.5c-.414 0-.75-.336-.75-.75S6.336 9 6.75 9h10.5c.413 0 .75.336.75.75s-.336.75-.75.75H6.75zM6.75 15c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h10.5c.414 0 .75.336.75.75s-.337.75-.75.75H6.75zM6.75 19.5c-.414 0-.75-.336-.75-.75s.336-.75.75-.75H12c.414 0 .75.336.75.75s-.337.75-.75.75H6.75z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 4h-18c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h18c1.103 0 2-.897 2-2v-11c0-1.103-.897-2-2-2zm0 1l.159.032-9.159 7.328-9.159-7.328.159-.032h18zm1 12c0 .551-.449 1-1 1h-18c-.551 0-1-.449-1-1v-11c0-.11.03-.21.063-.309l9.625 7.7c.091.072.202.109.312.109s.221-.037.312-.109l9.625-7.7c.033.099.063.199.063.309v11z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.25 20.25C1.009 20.25 0 19.241 0 18V6c0-.537.195-1.059.548-1.468.013-.016.031-.037.051-.056.426-.461 1.027-.726 1.651-.726h19.5c.625 0 1.226.265 1.652.727.018.018.035.037.051.057.351.404.547.927.547 1.466v12c0 1.241-1.009 2.25-2.25 2.25H2.25zM1.5 18c0 .414.336.75.75.75h19.5c.414 0 .75-.336.75-.75V6.187l-5.616 3.873 3.125 2.889c.304.281.322.756.042 1.06-.142.153-.343.241-.551.241-.189 0-.37-.071-.509-.199l-3.373-3.118-1.825 1.259c-.526.364-1.146.556-1.793.556-.646 0-1.266-.192-1.793-.556l-1.825-1.258-3.373 3.118c-.139.127-.32.198-.509.198-.208 0-.409-.088-.551-.24-.281-.304-.262-.78.041-1.06l3.125-2.889L1.5 6.187V18zm9.559-7.043c.276.191.601.291.941.291.34 0 .665-.101.941-.291l8.276-5.707H2.783l8.276 5.707z"/></svg>

Before

Width:  |  Height:  |  Size: 424 B

After

Width:  |  Height:  |  Size: 795 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4.002 24c-.726-.001-1.431-.21-2.039-.606C.229 22.267-.264 19.94.862 18.206L7.478 8.028V1.5h-.75c-.414 0-.75-.336-.75-.75s.337-.75.75-.75h10.5c.414 0 .75.336.75.75s-.336.75-.75.75h-.75v6.528l6.616 10.179c.396.61.606 1.316.606 2.043 0 1.001-.39 1.943-1.098 2.652-.709.708-1.65 1.098-2.652 1.098H4.002zM2.12 19.024c-.676 1.04-.38 2.437.66 3.113.365.237.788.363 1.223.364H19.95c.601 0 1.166-.234 1.591-.659.425-.425.659-.99.659-1.591 0-.436-.126-.86-.364-1.226l-3.59-5.524H5.71l-3.59 5.523zM17.271 12l-2.172-3.341c-.079-.122-.121-.263-.121-.409V7.5h-2.25c-.414 0-.75-.336-.75-.75s.337-.75.75-.75h2.25V4.5h-2.25c-.414 0-.75-.336-.75-.75s.337-.75.75-.75h2.25V1.5h-6v6.75c0 .146-.042.287-.121.409L6.685 12h10.586z"/><path d="M15.728 19.5c-.414 0-.75-.336-.75-.75V18h-.75c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h.75v-.75c0-.414.336-.75.75-.75s.75.336.75.75v.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75h-.75v.75c0 .414-.336.75-.75.75zM6.727 20.625c-.044 0-.089-.004-.133-.012-.511-.062-.92-.47-.98-.982-.008-.043-.012-.087-.012-.131s.004-.088.011-.131c.06-.513.47-.922.983-.983.042-.007.086-.011.13-.011.018 0 .053.003.071.005.02.001.039.003.057.006.514.059.924.469.985.983.008.043.012.087.012.131s-.004.088-.012.131c-.06.512-.468.921-.98.982-.042.008-.086.012-.132.012zM9.727 17.625c-.044 0-.089-.004-.133-.012-.511-.062-.92-.47-.98-.982-.008-.043-.012-.087-.012-.131s.004-.088.011-.131c.06-.513.47-.922.983-.983.042-.007.086-.011.13-.011s.088.004.13.011c.568.066.995.542.995 1.114 0 .046-.005.093-.013.139-.064.507-.471.913-.979.974-.042.008-.086.012-.132.012z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7.5c-2.068 0-3.75-1.682-3.75-3.75S9.932 0 12 0s3.75 1.682 3.75 3.75S14.068 7.5 12 7.5zm0-6c-1.241 0-2.25 1.009-2.25 2.25S10.759 6 12 6s2.25-1.009 2.25-2.25S13.241 1.5 12 1.5zM10.5 21c-.377 0-.697-.282-.744-.657L9.088 15H8.25c-.414 0-.75-.336-.75-.75V12c0-2.481 2.019-4.5 4.5-4.5s4.5 2.019 4.5 4.5v2.25c0 .414-.336.75-.75.75h-.838l-.668 5.343c-.047.375-.367.657-.744.657h-3zm2.338-1.5l.668-5.343c.047-.374.367-.657.744-.657H15V12c0-1.654-1.346-3-3-3s-3 1.346-3 3v1.5h.75c.377 0 .697.282.744.657l.668 5.343h1.676zM4.5 9c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3zm0-4.5C3.673 4.5 3 5.173 3 6s.673 1.5 1.5 1.5S6 6.827 6 6s-.673-1.5-1.5-1.5z"/><path d="M3 19.5c-.368 0-.679-.263-.74-.626L1.615 15H.75c-.414 0-.75-.336-.75-.75v-.75c0-.488.08-.97.235-1.432.384-1.14 1.188-2.062 2.266-2.597.63-.313 1.303-.472 1.998-.472.488 0 .972.08 1.44.237.392.132.604.558.472.95-.103.305-.389.511-.711.511-.081 0-.161-.013-.238-.039-.313-.106-.637-.159-.962-.159-.463 0-.911.106-1.332.315-.719.357-1.255.972-1.511 1.732-.104.308-.157.629-.157.954h.75c.368 0 .679.263.74.626L3.635 18h1.729l.271-1.629c.06-.363.371-.627.74-.627.04 0 .081.003.123.01.198.033.371.141.488.304.116.163.162.362.129.559l-.375 2.256c-.061.363-.372.627-.74.627H3zM19.5 9c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3zm0-4.5c-.827 0-1.5.673-1.5 1.5s.673 1.5 1.5 1.5S21 6.827 21 6s-.673-1.5-1.5-1.5z"/><path d="M18 19.5c-.368 0-.679-.264-.74-.627l-.376-2.256c-.033-.197.013-.396.129-.559s.29-.271.487-.304c.041-.007.082-.01.123-.01.368 0 .679.264.74.627L18.635 18h1.729l.646-3.873c.06-.363.371-.627.74-.627h.75c0-.325-.053-.646-.157-.954-.256-.76-.792-1.375-1.511-1.732-.421-.209-.869-.315-1.332-.315-.325 0-.648.053-.961.159-.078.026-.158.039-.239.039-.323 0-.608-.205-.711-.511-.132-.392.08-.818.471-.95.468-.157.953-.237 1.44-.237.696 0 1.368.159 1.998.472 1.077.535 1.882 1.457 2.266 2.597.156.462.236.943.236 1.431v.751c0 .414-.336.75-.75.75h-.865l-.646 3.873c-.06.363-.371.627-.739.627h-3zM12 24c-.966 0-4.352-.039-7.381-.539C1.511 22.948 0 22.143 0 21c0-.414.336-.75.75-.75.393 0 .716.303.747.688C1.904 21.417 5.372 22.5 12 22.5s10.096-1.083 10.502-1.562c.032-.385.355-.688.748-.688.414 0 .75.336.75.75 0 1.143-1.511 1.948-4.619 2.461-3.029.5-6.415.539-7.381.539z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 24c-.058 0-.115-.007-.176-.022l-.046-.013c-.036-.011-.071-.025-.105-.041-.017-.007-.034-.015-.048-.023l-5.248-2.999c-.232-.134-.377-.384-.377-.652V15c0-.058.007-.116.023-.179l.013-.045c.015-.047.032-.087.052-.126l.025-.044c.031-.051.066-.095.105-.135l.017-.016c.032-.031.068-.058.108-.084l.025-.017 5.26-3.006c.113-.064.242-.098.372-.098s.259.034.372.099l5.25 3 .034.022c.041.026.077.054.11.086l.015.014c.04.04.073.084.106.135l.026.046c.02.038.037.078.051.121l.015.05c.013.061.021.119.021.177v5.25c0 .268-.145.518-.378.651l-5.25 3c-.013.008-.03.016-.047.022-.034.016-.068.03-.103.041l-.046.014c-.061.015-.118.022-.176.022zm.75-2.042l3.75-2.143v-3.522l-3.75 2.143v3.522zm-1.5 0v-3.522l-3.75-2.143v3.522l3.75 2.143zm.75-4.822L21.738 15 18 12.864 14.262 15 18 17.136zM12 12.75c-.058 0-.116-.007-.176-.022l-.047-.014c-.036-.011-.071-.025-.106-.042-.013-.005-.026-.011-.036-.017L6.378 9.651C6.145 9.518 6 9.268 6 9V3.75c0-.058.007-.117.023-.179l.015-.05c.013-.041.03-.082.051-.122l.022-.04c.059-.095.139-.177.232-.237l.032-.022L11.628.098C11.741.034 11.87 0 12 0s.259.034.372.099l5.25 3 .034.022c.04.025.077.054.11.085l.015.014c.04.04.074.085.107.137l.022.039c.024.045.041.087.054.13l.013.046c.015.062.023.12.023.178V9c0 .269-.145.518-.378.651l-5.25 3c-.013.008-.031.016-.048.023-.036.017-.069.03-.104.041l-.044.013c-.06.015-.118.022-.176.022zm.75-2.042l3.75-2.143V5.042l-3.75 2.143v3.523zm-1.5 0V7.185L7.5 5.042v3.522l3.75 2.144zM12 5.886l3.738-2.136L12 1.614 8.262 3.75 12 5.886zM6 24c-.058 0-.115-.007-.176-.022l-.045-.013c-.037-.011-.072-.025-.105-.042l-.051-.025-5.244-2.997C.145 20.768 0 20.518 0 20.25V15c0-.058.007-.116.023-.179l.013-.044c.015-.047.032-.088.053-.127l.022-.039c.034-.055.069-.101.109-.141l.015-.014c.032-.031.068-.058.108-.084l.025-.017 5.26-3.006c.113-.065.242-.099.372-.099s.259.034.372.099l3.75 2.143c.174.1.299.261.351.454.053.193.027.396-.072.57-.133.233-.383.378-.652.378-.13 0-.258-.034-.371-.098L6 12.864 2.262 15 6 17.136l2.628-1.502c.114-.064.242-.098.372-.098.269 0 .518.145.651.378.205.359.08.818-.279 1.023L6.75 18.435v3.522l2.628-1.502c.113-.064.242-.099.371-.099.269 0 .519.145.652.378.099.174.125.376.072.57-.053.193-.177.354-.351.454l-3.75 2.143c-.013.008-.031.016-.047.023-.034.016-.068.03-.103.041l-.046.014C6.115 23.993 6.058 24 6 24zm-.75-2.042v-3.522L1.5 16.292v3.522l3.75 2.144z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1.881 17.25C.852 17.25.009 16.415 0 15.388V1.862C.008.834.848 0 1.871 0h16.498c1.03 0 1.872.835 1.881 1.861V4.5c0 .414-.336.75-.75.75h-18v10.131c.002.202.172.369.379.369h9.371c.414 0 .75.336.75.75s-.336.75-.75.75H1.881zM18.75 3.75V1.868c-.002-.201-.171-.368-.378-.368h-16.5c-.203 0-.37.165-.372.368V3.75h17.25z"/><path d="M11.888 24c-.253 0-.502-.064-.722-.185-.351-.192-.606-.51-.718-.894-.112-.384-.068-.79.125-1.141l4.432-7.001L15 10.5c0-.827.673-1.5 1.5-1.5H18c.827 0 1.5.673 1.5 1.5v4.287l4.204 6.992c.121.223.185.472.184.722 0 .4-.156.777-.44 1.06-.283.283-.659.439-1.06.439h-10.5zm10.5-1.5l-2.255-3.75h-5.867l-2.371 3.744 10.493.006zm-3.157-5.25l-1.011-1.683c-.143-.23-.22-.501-.22-.779V10.5h-1.5v4.287c-.001.279-.078.551-.223.787l-1.061 1.676h4.015zM21.75 9.75c-.414 0-.75-.336-.75-.75v-.75h-.75c-.414 0-.75-.336-.75-.75s.336-.75.75-.75H21V6c0-.414.336-.75.75-.75s.75.336.75.75v.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75h-.75V9c0 .414-.336.75-.75.75zM11.25 11.25c-.414 0-.75-.336-.75-.75v-.75h-.75C9.336 9.75 9 9.414 9 9s.336-.75.75-.75h.75V7.5c0-.414.336-.75.75-.75s.75.336.75.75v.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75H12v.75c0 .414-.336.75-.75.75z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 22.5c-1.241 0-2.25-1.009-2.25-2.25V3.75C.75 2.509 1.759 1.5 3 1.5h18c1.241 0 2.25 1.009 2.25 2.25v16.5c0 1.241-1.009 2.25-2.25 2.25H3zm-.75-2.25c0 .414.336.75.75.75h18c.414 0 .75-.336.75-.75V7.5H2.25v12.75zM21.75 6V3.75c0-.414-.336-.75-.75-.75H3c-.414 0-.75.336-.75.75V6h19.5z"/><path d="M5.25 13.5c-.827 0-1.5-.673-1.5-1.5v-1.5c0-.827.673-1.5 1.5-1.5h13.5c.827 0 1.5.673 1.5 1.5V12c0 .827-.673 1.5-1.5 1.5H5.25zm0-1.5h13.5v-1.5H5.25V12zM5.25 19.5c-.827 0-1.5-.673-1.5-1.5v-1.5c0-.827.673-1.5 1.5-1.5h3c.827 0 1.5.673 1.5 1.5V18c0 .827-.673 1.5-1.5 1.5h-3zm0-1.5h3v-1.5h-3V18zM12 16.5c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h7.5c.414 0 .75.336.75.75s-.336.75-.75.75H12zM12 19.5c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h7.5c.414 0 .75.336.75.75s-.336.75-.75.75H12z"/></svg>

After

Width:  |  Height:  |  Size: 845 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.509 23.827c-.551 0-1.106-.048-1.65-.143-.275-.047-.499-.242-.585-.507-.086-.262-.02-.55.172-.75.008-.009 1.221-1.379 1.354-4.723-.025-1.18.45-2.369 1.303-3.239.853-.796 1.948-1.227 3.094-1.227.398 0 .793.052 1.175.155L17.561 1.409c.061-.071.123-.138.187-.203C18.414.54 19.299.174 20.241.174c.941 0 1.825.365 2.489 1.029.067.068.132.138.194.21.609.715.903 1.625.828 2.563-.075.938-.511 1.79-1.227 2.399L10.548 16.621c.376 1.482-.02 3.064-1.06 4.181-1.808 1.923-4.351 3.025-6.979 3.025zm-.24-1.504c.079.002.159.003.238.003 2.217 0 4.362-.929 5.885-2.55 1.067-1.145 1.066-2.941-.002-4.088-.564-.606-1.365-.953-2.196-.953-.762 0-1.488.285-2.044.804-.552.564-.867 1.363-.851 2.18-.088 2.236-.6 3.728-1.03 4.604zm6.597-8.37c.448.313.834.704 1.142 1.156l2.347-2.008-1.495-1.495-1.994 2.347zm4.633-1.831l8.052-6.888c.412-.351.662-.84.705-1.378.043-.538-.126-1.061-.476-1.472-.035-.042-.072-.082-.111-.12-.381-.381-.889-.591-1.429-.591-.541 0-1.048.21-1.429.591-.037.037-.073.076-.108.117l-6.868 8.078 1.664 1.663z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.854 23.146l-9.009-9.009c1.336-1.502 2.155-3.473 2.155-5.637 0-4.687-3.813-8.5-8.5-8.5s-8.5 3.813-8.5 8.5 3.813 8.5 8.5 8.5c2.164 0 4.135-.819 5.637-2.156l9.009 9.009c.098.098.226.147.354.147s.256-.049.354-.146c.195-.196.195-.512 0-.708zm-22.854-14.646c0-4.136 3.364-7.5 7.5-7.5s7.5 3.364 7.5 7.5-3.364 7.5-7.5 7.5-7.5-3.364-7.5-7.5z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.245 23.996c-.2 0-.389-.078-.53-.22L16.2 17.26c-.761.651-1.618 1.182-2.553 1.579-1.229.522-2.52.787-3.837.787-1.257 0-2.492-.241-3.673-.718-2.431-.981-4.334-2.849-5.359-5.262-1.025-2.412-1.05-5.08-.069-7.51S3.558 1.802 5.97.777C7.199.254 8.489-.01 9.807-.01c1.257 0 2.492.242 3.673.718 2.431.981 4.334 2.849 5.359 5.262 1.025 2.413 1.05 5.08.069 7.51-.402.996-.956 1.909-1.649 2.718l6.517 6.518c.292.292.292.768 0 1.061-.142.141-.331.219-.531.219zM9.807 1.49c-1.115 0-2.209.224-3.25.667-2.044.869-3.627 2.481-4.458 4.54-.831 2.059-.81 4.318.058 6.362.869 2.044 2.481 3.627 4.54 4.458 1.001.404 2.048.608 3.112.608 1.115 0 2.209-.224 3.25-.667.974-.414 1.847-.998 2.594-1.736.01-.014.021-.026.032-.037.016-.016.031-.029.045-.039.763-.771 1.369-1.693 1.786-2.728.831-2.059.81-4.318-.059-6.362-.868-2.044-2.481-3.627-4.54-4.458-.999-.403-2.046-.608-3.11-.608z"/></svg>

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 937 B

View File

@ -1,3 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M31.313 13.313h-3.813c-0.25-1.063-0.563-2.188-1-3.063l2.688-2.75c0.125-0.125 0.188-0.25 0.188-0.438s-0.063-0.375-0.188-0.5l-3.75-3.75c-0.25-0.25-0.688-0.25-0.938 0l-2.75 2.688c-0.875-0.438-2-0.75-3.063-1v-3.813c0-0.375-0.313-0.688-0.688-0.688h-4c-0.375 0-0.688 0.313-0.688 0.688v3.813c-1.063 0.25-2.188 0.563-3.063 1l-2.75-2.688c-0.25-0.25-0.688-0.25-0.938 0l-3.75 3.75c-0.25 0.25-0.25 0.688 0 0.938l2.688 2.75c-0.438 0.875-0.75 2-1 3.063h-3.813c-0.375 0-0.688 0.313-0.688 0.688v4c0 0.375 0.313 0.688 0.688 0.688h3.813c0.25 1.063 0.563 2.188 1 3.063l-2.688 2.75c-0.125 0.125-0.188 0.25-0.188 0.438s0.063 0.375 0.188 0.5l3.75 3.75c0.25 0.25 0.688 0.25 0.938 0l2.75-2.688c0.875 0.438 2 0.75 3.063 1v3.813c0 0.375 0.313 0.688 0.688 0.688h4c0.375 0 0.688-0.313 0.688-0.688v-3.813c1.063-0.25 2.188-0.563 3.063-1l2.75 2.688c0.25 0.25 0.688 0.25 0.938 0l3.75-3.75c0.25-0.25 0.25-0.688 0-0.938l-2.688-2.75c0.438-0.875 0.75-2 1-3.063h3.813c0.375 0 0.688-0.313 0.688-0.688v-4c0-0.375-0.313-0.688-0.688-0.688zM30.688 17.313h-3.688c-0.313 0-0.563 0.25-0.625 0.5-0.188 0.75-0.688 2.75-1.25 3.75-0.188 0.25-0.125 0.563 0.063 0.813l2.625 2.563-2.875 2.875-2.563-2.625c-0.25-0.188-0.563-0.25-0.813-0.063-1 0.563-3 1.063-3.75 1.25-0.25 0.063-0.5 0.313-0.5 0.625v3.688h-2.625v-3.688c0-0.313-0.25-0.563-0.5-0.625-0.75-0.188-2.75-0.688-3.75-1.25-0.25-0.188-0.563-0.125-0.813 0.063l-2.563 2.625-2.875-2.875 2.625-2.563c0.188-0.25 0.25-0.563 0.063-0.813-0.563-1-1.063-3-1.25-3.75-0.063-0.25-0.313-0.5-0.625-0.5h-3.688v-2.625h3.688c0.313 0 0.563-0.25 0.625-0.5 0.188-0.75 0.688-2.75 1.25-3.75 0.188-0.25 0.125-0.563-0.063-0.813l-2.625-2.563 2.875-2.875 2.563 2.625c0.25 0.188 0.563 0.25 0.813 0.063 1-0.563 3-1.063 3.688-1.25 0.313-0.063 0.563-0.313 0.563-0.625v-3.688h2.625v3.688c0 0.313 0.25 0.563 0.5 0.625 1.188 0.313 2.875 0.75 3.75 1.25 0.25 0.188 0.563 0.125 0.813-0.063l2.563-2.625 2.875 2.875-2.625 2.563c-0.188 0.25-0.25 0.563-0.063 0.813 0.563 1 1.063 3 1.25 3.688 0.063 0.313 0.313 0.563 0.625 0.563h3.688zM16 9.313c-3.688 0-6.688 3-6.688 6.688s3 6.688 6.688 6.688c3.688 0 6.688-3 6.688-6.688s-3-6.688-6.688-6.688zM16 21.313c-2.938 0-5.313-2.375-5.313-5.313s2.375-5.313 5.313-5.313c2.938 0 5.313 2.375 5.313 5.313s-2.375 5.313-5.313 5.313z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.156 23.988c-.676 0-1.323-.25-1.822-.704-.598-.544-.92-1.32-.883-2.128l.072-1.404c.034-.665-.479-1.234-1.144-1.269l-.062-.002c-.021 0-.041 0-.062.002l-1.401.071c-.047.002-.096.004-.144.004-.668 0-1.311-.247-1.809-.696-.537-.484-.854-1.148-.892-1.871-.043-.817.281-1.6.887-2.149l1.042-.94c.239-.216.38-.513.397-.836.016-.323-.094-.633-.31-.873-.027-.03-.056-.059-.087-.087L.896 10.16C.36 9.674.046 9.009.011 8.286c-.036-.722.213-1.415.699-1.951.512-.565 1.242-.889 2.002-.889.044 0 .089.001.133.003l1.402.071c.021.002.063.002.063.002.644 0 1.174-.503 1.208-1.144.002-.042.002-.085 0-.127l-.067-1.406C5.381 1.352 6.538.081 8.03.011l.129-.003c.76 0 1.489.323 2.001.886l.941 1.039c.217.241.513.382.835.399l.066.002c.301 0 .579-.107.805-.31.031-.028.06-.057.087-.088l.95-1.042c.483-.535 1.148-.85 1.871-.887l.136-.003c.673 0 1.319.248 1.818.699.607.548.931 1.331.889 2.148l-.071 1.4c-.033.665.481 1.233 1.146 1.267l.061.002.057-.001 1.4-.071.138-.003c.672 0 1.316.249 1.815.702.536.486.851 1.152.887 1.874.04.815-.284 1.596-.889 2.143l-1.042.94c-.239.216-.38.513-.396.836-.017.323.094.633.31.872.028.031.056.06.086.086l1.042.941c.537.485.853 1.15.89 1.873.037.723-.21 1.417-.695 1.953-.513.567-1.247.892-2.015.892l-.131-.003-1.402-.071-.066-.002c-.302 0-.58.108-.806.311-.24.216-.381.512-.397.835-.002.041-.002.083 0 .125l.071 1.4c.032.725-.219 1.418-.708 1.953-.489.535-1.156.847-1.878.879-.043.002-.088.003-.133.003-.75 0-1.474-.321-1.986-.88l-.944-1.044c-.229-.253-.556-.398-.899-.398-.3 0-.587.11-.809.311-.03.027-.06.056-.087.087l-.946 1.042c-.512.561-1.243.883-2.005.883zm-3.839-7.006c.046 0 .092.001.138.004 1.492.077 2.643 1.353 2.566 2.844l-.072 1.4c-.016.357.127.703.394.946.226.206.507.314.812.314l.059-.001c.322-.015.62-.155.837-.394l.944-1.04c.06-.067.125-.132.193-.194.499-.45 1.143-.698 1.815-.698.766 0 1.499.325 2.012.892l.941 1.041c.226.247.552.389.896.389l.049-.001c.664-.03 1.182-.596 1.152-1.262l-.071-1.395c-.005-.092-.005-.185 0-.278.037-.722.353-1.387.89-1.871.499-.45 1.141-.698 1.809-.698.048 0 .096.001.145.004l1.399.071.069.002c.336 0 .66-.145.889-.399.217-.24.327-.55.311-.872-.016-.323-.157-.619-.397-.836l-1.042-.94c-.068-.061-.133-.126-.195-.195-1.001-1.108-.914-2.825.195-3.827l1.042-.94c.27-.244.414-.592.396-.956-.016-.323-.156-.62-.396-.837-.223-.202-.51-.313-.809-.313l-.062.002-1.399.071c-.044.002-.089.003-.133.003-.046 0-.092-.001-.137-.004-1.491-.075-2.643-1.349-2.568-2.84l.071-1.401c.019-.365-.126-.714-.397-.958-.226-.205-.503-.312-.802-.312l-.068.002c-.324.016-.621.157-.837.397l-.948 1.04c-.059.066-.126.133-.196.196-.498.449-1.142.696-1.814.696l-.138-.003c-.723-.038-1.387-.354-1.871-.891L9.05 1.902c-.228-.25-.554-.394-.894-.394l-.057.001c-.665.031-1.181.599-1.15 1.265l.067 1.4c.005.091.005.187 0 .283-.076 1.438-1.264 2.565-2.705 2.565-.047 0-.094-.001-.141-.004l-1.399-.07-.057-.002c-.339 0-.665.145-.893.396-.217.239-.328.548-.312.87.016.322.156.619.395.836l1.041.945c.067.061.132.125.193.194 1.001 1.109.914 2.826-.195 3.827l-1.041.94c-.27.244-.414.594-.395.958.017.322.158.619.398.835.222.2.509.31.807.31.021 0 .043 0 .064-.002l1.401-.071.14-.002z"/><path d="M12 17.25c-2.895 0-5.25-2.355-5.25-5.25S9.105 6.75 12 6.75s5.25 2.355 5.25 5.25-2.355 5.25-5.25 5.25zm0-9c-2.068 0-3.75 1.682-3.75 3.75s1.682 3.75 3.75 3.75 3.75-1.682 3.75-3.75S14.068 8.25 12 8.25z"/></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,3 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M18 24.063c0 0 0 0 0 0-0.375 0-0.625 0.25-0.625 0.625l-0.063 4.688-16-0.063v-26.625h16.063v4.688c0 0.375 0.313 0.688 0.688 0.688 0 0 0 0 0 0 0.375 0 0.625-0.313 0.625-0.688l0.063-5.313c0-0.375-0.313-0.688-0.688-0.688l-17.375-0.063c0 0 0 0 0 0-0.188 0-0.375 0.063-0.5 0.188s-0.188 0.313-0.188 0.5v28c0 0.375 0.313 0.688 0.688 0.688h17.313c0.375 0 0.688-0.313 0.688-0.625v-5.375c0-0.375-0.313-0.625-0.688-0.625zM31.938 16.438c-0.063-0.125-0.125-0.25-0.25-0.313l-6.5-6.563c-0.25-0.25-0.688-0.25-0.938 0s-0.25 0.688 0 0.938l5.438 5.5h-22.313c-0.375 0-0.688 0.313-0.688 0.688s0.313 0.688 0.688 0.688l22.438-0.063-5.625 5.625c-0.25 0.25-0.25 0.625 0 0.938 0.125 0.125 0.313 0.188 0.5 0.188s0.313-0.063 0.438-0.188l6.688-6.688c0.125-0.125 0.188-0.313 0.188-0.438s0-0.25-0.063-0.313z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.499 16.504c-.2 0-.389-.078-.53-.22-.292-.292-.292-.768 0-1.061l2.47-2.47H7.499c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h13.939l-2.47-2.47c-.142-.141-.22-.33-.22-.53s.078-.389.22-.53.33-.22.53-.22.389.078.53.22l3.75 3.75c.035.035.066.073.094.114.007.01.015.025.022.038.017.028.032.057.045.087.007.016.016.045.021.061.008.02.017.051.023.084.009.043.015.094.015.146 0 .05-.005.1-.015.148-.006.03-.015.059-.025.088-.004.016-.012.038-.021.058-.009.023-.025.053-.043.083-.001.003-.01.021-.021.037-.022.032-.042.057-.064.081-.001.003-.015.02-.031.035l-3.75 3.75c-.141.143-.329.221-.529.221z"/><path d="M2.093 23.25C.885 23.189-.055 22.165 0 20.966L-.001 3C-.056 1.828.875.811 2.075.751L14.385.75c1.228.06 2.167 1.085 2.113 2.284l.001 4.466c0 .414-.336.75-.75.75s-.75-.336-.75-.75V3c.018-.403-.275-.732-.652-.751L2.112 2.25c-.341.018-.631.346-.614.716L1.499 21c-.018.403.275.732.651.751l12.235-.001c.341-.018.632-.346.615-.716l-.001-4.534c0-.414.336-.75.75-.75s.75.336.75.75V21c.054 1.173-.878 2.189-2.077 2.249l-12.31.001h-.019z"/></svg>

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.239 24c-.2 0-.389-.078-.53-.22-.178-.177-.255-.431-.205-.677l.75-3.75c.029-.146.1-.279.205-.384l7.63-7.631c.541-.54 1.26-.838 2.026-.838.766 0 1.486.298 2.026.838l.016.016c1.118 1.098 1.153 2.894.076 4.008-.063.064-.131.117-.205.158l-7.509 7.51c-.104.105-.238.176-.384.205l-3.749.75c-.049.01-.098.015-.147.015zm.956-1.706l2.424-.485 7.469-7.47c.046-.046.098-.086.153-.118.43-.54.373-1.303-.144-1.803l-.039-.04c-.238-.239-.578-.378-.941-.378-.366 0-.71.142-.968.4l-7.469 7.47-.485 2.424zM7.489 9.75c-2.688 0-4.875-2.187-4.875-4.875S4.801 0 7.489 0s4.875 2.187 4.875 4.875S10.177 9.75 7.489 9.75zm0-8.25c-1.861 0-3.375 1.514-3.375 3.375S5.628 8.25 7.489 8.25s3.375-1.514 3.375-3.375S9.35 1.5 7.489 1.5z"/><path d="M.739 18c-.412 0-.749-.335-.75-.748-.009-2.703 1.448-5.207 3.801-6.536 1.124-.635 2.392-.97 3.668-.97.677 0 1.355.093 2.014.276 1.925.535 3.526 1.788 4.508 3.528.099.174.124.376.07.569-.054.193-.179.354-.354.453-.112.063-.239.097-.368.097-.27 0-.521-.146-.654-.381-1.058-1.874-3.057-3.037-5.217-3.037-1.023 0-2.036.267-2.93.772-1.881 1.062-3.045 3.064-3.039 5.225.002.413-.333.751-.747.752H.739z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" fill="none" d="M21.502 10.333v12.167h-19v-12.187"/><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" fill="none" d="M4.502 13.5h8v6h-8zM14.502 13.5h5v9h-5zM21.502 2.5h-19l-2 4h23zM23.502 7.5c0 1.657-1.343 3-3 3-.826 0-1.457-.46-2-1-.708 1.125-2.073 2-3.5 2-1.196 0-2.267-.528-3-1.36-.732.833-1.804 1.36-3 1.36-1.427 0-2.792-.875-3.5-2-.542.54-1.174 1-2 1-1.657 0-3-1.343-3-3v-1h23v1zM5.502 9.5v-3l1-4M12.002 10.146v-7.646M18.502 9.5v-3l-1-4"/><path d="M17.502 18c-.276 0-.5.224-.5.5 0 .277.224.5.5.5s.5-.223.5-.5c0-.276-.224-.5-.5-.5z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3.75 24c-1.241 0-2.25-1.009-2.25-2.25v-9c0-.414.336-.75.75-.75s.75.336.75.75v9c0 .414.336.75.75.75H12v-6c0-2.068 1.682-3.75 3.75-3.75s3.75 1.682 3.75 3.75v6h.75c.414 0 .75-.336.75-.75v-9c0-.414.336-.75.75-.75s.75.336.75.75v9c0 1.241-1.009 2.25-2.25 2.25H3.75zM18 22.5v-6c0-1.241-1.009-2.25-2.25-2.25s-2.25 1.009-2.25 2.25v6H18zM21 10.5c-.863 0-1.685-.38-2.25-1.018-.565.638-1.387 1.018-2.25 1.018s-1.685-.38-2.25-1.018c-.565.638-1.387 1.018-2.25 1.018s-1.685-.38-2.25-1.018C9.185 10.12 8.363 10.5 7.5 10.5s-1.685-.38-2.25-1.018C4.685 10.12 3.863 10.5 3 10.5c-1.654 0-3-1.346-3-3 0-.054.006-.108.018-.162l1.369-6.164C1.542.483 2.144 0 2.852 0h18.295c.698 0 1.314.494 1.465 1.175l1.37 6.162c.012.052.018.107.018.163 0 1.654-1.346 3-3 3zm-2.25-3.75c.414 0 .75.336.75.75 0 .827.673 1.5 1.5 1.5.796 0 1.459-.636 1.498-1.426L21.148 1.5H2.852l-1.35 6.074C1.541 8.364 2.204 9 3 9c.827 0 1.5-.673 1.5-1.5 0-.414.336-.75.75-.75s.75.336.75.75C6 8.327 6.673 9 7.5 9S9 8.327 9 7.5c0-.414.336-.75.75-.75s.75.336.75.75c0 .827.673 1.5 1.5 1.5s1.5-.673 1.5-1.5c0-.414.336-.75.75-.75s.75.336.75.75c0 .827.673 1.5 1.5 1.5S18 8.327 18 7.5c0-.414.336-.75.75-.75z"/><path d="M6 21c-.827 0-1.5-.673-1.5-1.5v-3c0-.827.673-1.5 1.5-1.5h3c.827 0 1.5.673 1.5 1.5v3c0 .827-.673 1.5-1.5 1.5H6zm0-1.5h3v-3H6v3z"/><circle cx="16.125" cy="18.375" r="1.125"/></svg>

Before

Width:  |  Height:  |  Size: 764 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,3 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M31.813 19.563l-19.375-19.375c-0.125-0.125-0.25-0.188-0.438-0.188h-11.313c-0.188 0-0.375 0.063-0.5 0.188s-0.188 0.313-0.188 0.5v11.313c0 0.188 0.063 0.313 0.188 0.438l19.375 19.375c0.125 0.125 0.313 0.188 0.438 0.188 0.063 0 0.125 0 0.188 0 0.25-0.063 0.375-0.25 0.5-0.5l2.5-8.313 8.313-2.5c0.25-0.125 0.438-0.25 0.5-0.5s0-0.5-0.188-0.625zM22.5 22c-0.25 0.125-0.438 0.25-0.5 0.5l-2.313 7.563-18.375-18.375v-10.375h10.375l18.375 18.375zM7.313 4c-1.813 0-3.313 1.5-3.313 3.313 0 1.875 1.5 3.375 3.313 3.375 1.875 0 3.375-1.5 3.375-3.375 0-1.813-1.5-3.313-3.375-3.313zM7.313 9.313c-1.063 0-2-0.875-2-2 0-1.063 0.938-2 2-2 1.125 0 2 0.938 2 2 0 1.125-0.875 2-2 2z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.559 23.687c-.601 0-1.166-.234-1.591-.658L1.407 11.467C.699 10.758.309 9.817.309 8.816V2.559c0-1.241 1.009-2.25 2.25-2.25h6.257c1.001 0 1.943.39 2.651 1.098l11.561 11.561c.877.877.877 2.304 0 3.182l-6.879 6.88c-.424.424-.989.657-1.59.657zm-12-21.878c-.414 0-.75.336-.75.75v6.257c0 .601.234 1.166.659 1.591l11.561 11.562c.141.141.329.219.53.219s.389-.078.53-.219l6.879-6.88c.292-.292.292-.768 0-1.061L10.407 2.467c-.425-.424-.99-.658-1.59-.658H2.559z"/><path d="M6.309 8.559c-1.241 0-2.25-1.009-2.25-2.25s1.009-2.25 2.25-2.25 2.25 1.009 2.25 2.25-1.009 2.25-2.25 2.25zm0-3c-.414 0-.75.336-.75.75s.336.75.75.75.75-.336.75-.75-.336-.75-.75-.75z"/></svg>

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 722 B

View File

@ -1,6 +1 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated by IcoMoon.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
<path d="M30.063 7.313c-0.813 1.125-1.75 2.125-2.875 2.938 0 0.188 0 0.438 0 0.75 0 1.563-0.188 3.125-0.688 4.625-0.438 1.563-1.125 3.063-2.063 4.438-0.875 1.438-2 2.688-3.25 3.813-1.313 1.063-2.813 1.938-4.625 2.563-1.813 0.688-3.75 1-5.75 1-3.25 0-6.188-0.875-8.875-2.625 0.438 0.063 0.875 0.125 1.375 0.125 2.688 0 5.063-0.875 7.188-2.5-1.25 0-2.375-0.375-3.375-1.125s-1.688-1.688-2.063-2.875c0.438 0.063 0.813 0.125 1.125 0.125 0.5 0 1-0.063 1.5-0.25-1.313-0.25-2.438-0.938-3.313-1.938-0.875-1.063-1.313-2.313-1.313-3.688v-0.063c0.813 0.438 1.688 0.688 2.625 0.688-0.813-0.5-1.438-1.188-1.875-2-0.5-0.875-0.688-1.813-0.688-2.75 0-1.063 0.25-2.063 0.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813c-0.125-0.5-0.188-0.938-0.188-1.375 0-1.563 0.563-2.938 1.688-4.063s2.5-1.688 4.125-1.688c1.625 0 3.063 0.625 4.188 1.813 1.313-0.25 2.5-0.688 3.688-1.375-0.438 1.375-1.313 2.438-2.563 3.188 1.125-0.125 2.188-0.438 3.313-0.875z"></path>
</svg>
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.028 5.1c.534.146.787.852.367 1.308 0 0-.494.632-.636.804-.378.434-.82.815-1.25 1.19-.292.268-.087.855-.147 1.465-.31 3.143-1.75 6.18-3.826 8.292-.235.238-.573.575-.573.575-.584.542-.758.633-1.087.874-1.853 1.36-4.11 2.127-6.4 2.357l-.765.082H7.445c-.207-.01.148.047-.792-.077-1.838-.243-3.682-.723-5.499-1.824l-.246-.154c-.868-.619-.185-1.538.51-1.437l.09.022s1.582.066 2.763-.228c.543-.135 1.07-.326 1.581-.558-.492-.216-.97-.486-1.368-.849-.376-.357-.393-.391-.533-.553-.309-.358-.556-.767-.755-1.197l-.211-.474c-.195-.583-.094-.575.134-.847 0 0-.57-.573-.863-1.014-.49-.738-.783-1.604-.859-2.48l-.035-.409c-.013-.373.212-.71.587-.797.098-.022.007-.092-.018-.147-.612-1.354-.694-2.917-.06-4.352l.185-.427c.097-.194.12-.188.12-.188s.473-.463.999-.154l.26.264c.35.391.707.78 1.092 1.138 0 0 .691.626 1.36 1.075 1.524 1.024 3.28 1.668 5.138 1.95 0 0 .273-2.346 1.196-3.462.805-.972 1.979-1.63 3.22-1.827L15.702 3h1.012c.351.017.39.063.567.099.885.186 1.725.604 2.39 1.198 0 0 1.165-.334 1.981-.753l.466-.218c.582-.084 1.113.476.801 1.16l-.24.616s.174-.03.348-.001zm-7.3-.586c-1.805.297-3.274 1.914-3.174 3.976.03.616.077.508.081.652.037 1.228-3.14.587-5.086-.19-1.394-.555-2.746-1.325-3.811-2.34 0 0-.362-.326-.722-.692l-.03.122c-.287 1.303.237 2.793 1.237 3.574l.28.197c.26.23.16.133.237.278.225.428-.088 1.043-.587 1.095-.313.032-.697-.055-1.097-.144 0 0 .698 1.628 1.703 2.144.404.208 1.038.402 1.038.402.468.144.702.703.442 1.142 0 0-.506.41-1.288.45 0 0 1.112 1.382 2.415 1.512.625.05.55.038.612.056.404.112.658.56.496.998-.125.34-.095.263-.345.424 0 0-1.563 1.007-2.53 1.35-.438.155-.889.273-1.343.373 0 0 2.074.572 2.993.631l.316.023 1.073-.006c2.58-.254 5.126-1.073 7.242-2.852 2.792-2.377 3.986-5.951 4.055-9.205.011-.217.026-.27.062-.397.094-.335.303-.63.571-.854 0 0-1.326-.245-.775-1.164l.316-.293.067-.038s.183-.058-.187.028c-1.123.25-1.856-.968-3.05-1.207L16.64 4.5h-.835l-.078.014z" fill="#000" fill-rule="evenodd"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0c-6.617 0-12 5.383-12 12 0 3.18 1.232 6.177 3.47 8.438 2.272 2.297 5.301 3.562 8.53 3.562 3.234 0 6.268-1.269 8.542-3.574 2.23-2.259 3.458-5.252 3.458-8.426 0-6.617-5.383-12-12-12zm-7.345 20.17c1.029-.563 2.533-1.111 4.002-1.644.514-.186 1.027-.372 1.52-.559.195-.074.323-.26.323-.468v-2.499c0-.209-.138-.399-.335-.472-.047-.017-1.165-.456-1.165-2.528 0-.276-.207-.494-.482-.494-.047-.032-.138-.218-.138-.506s.091-.474.12-.5c.276 0 .5-.224.5-.5 0-.125-.037-.256-.118-.544-.147-.523-.537-1.913-.194-2.366.038-.051.245-.194.714-.1.26.055.518-.11.583-.369.163-.649 1.326-1.121 2.765-1.121s2.602.472 2.765 1.121c.229.917-.178 2.188-.373 2.799-.098.305-.142.443-.142.58 0 .276.207.494.482.494.046.032.137.218.137.506s-.091.474-.12.5c-.276 0-.5.224-.5.5 0 2.072-1.118 2.511-1.158 2.526-.203.068-.341.259-.341.474v2.5c0 .208.129.395.324.468.543.204 1.086.399 1.614.591 1.51.546 2.943 1.067 3.919 1.599-2.024 1.83-4.607 2.842-7.357 2.842-2.743 0-5.323-1.008-7.345-2.83zm15.453-.739c-1.047-.625-2.583-1.181-4.33-1.812l-1.278-.466v-1.848c.501-.309 1.384-1.108 1.49-2.936.386-.226.63-.727.63-1.37 0-.579-.198-1.043-.52-1.294.243-.757.681-2.144.385-3.327-.347-1.386-2.229-1.878-3.735-1.878-1.342 0-2.982.391-3.569 1.456-.707-.042-1.095.273-1.29.53-.635.838-.216 2.368.02 3.211-.329.249-.531.718-.531 1.303 0 .643.244 1.144.63 1.37.106 1.828.989 2.627 1.49 2.936v1.848l-1.184.433c-1.624.589-3.299 1.196-4.413 1.858-1.875-2.036-2.903-4.664-2.903-7.445 0-6.065 4.935-11 11-11s11 4.935 11 11c0 2.774-1.024 5.397-2.892 7.431z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 15.75c-3.308 0-6-2.692-6-6s2.692-6 6-6 6 2.692 6 6-2.692 6-6 6zm0-10.5c-2.481 0-4.5 2.019-4.5 4.5s2.019 4.5 4.5 4.5 4.5-2.019 4.5-4.5-2.019-4.5-4.5-4.5z"/><path d="M12 24c-2.677 0-5.211-.868-7.332-2.51-.021-.012-.066-.038-.11-.082l-.016-.017C1.655 19.094 0 15.674 0 12 0 5.383 5.383 0 12 0s12 5.383 12 12c0 3.674-1.655 7.094-4.543 9.391l-.015.016c-.043.043-.087.069-.112.084C17.211 23.132 14.677 24 12 24zm-5.716-3.199C7.99 21.914 9.956 22.5 12 22.5c2.045 0 4.011-.586 5.717-1.699-1.604-1.322-3.616-2.045-5.716-2.045-2.1-.001-4.112.723-5.717 2.045zM12 1.5C6.21 1.5 1.5 6.21 1.5 12c0 3.023 1.294 5.875 3.562 7.874 1.915-1.69 4.366-2.617 6.938-2.617 2.573 0 5.023.927 6.938 2.616 2.268-2 3.562-4.851 3.562-7.874C22.5 6.21 17.79 1.5 12 1.5z"/></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 819 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.251 16.498c-.2 0-.389-.078-.53-.22-.292-.292-.292-.768 0-1.061l13.72-13.72h-4.939c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h6.75c.089 0 .176.016.261.048l.032.012c.176.072.324.221.4.404l.01.026c.031.081.047.17.047.26v6.75c0 .414-.336.75-.75.75s-.75-.336-.75-.75V2.559l-13.72 13.72c-.142.141-.331.219-.531.219z"/><path d="M2.251 23.998c-1.241 0-2.25-1.009-2.25-2.25v-15c0-1.241 1.009-2.25 2.25-2.25h9c.414 0 .75.336.75.75s-.336.75-.75.75h-9c-.414 0-.75.336-.75.75v15c0 .414.336.75.75.75h15c.414 0 .75-.336.75-.75v-9c0-.414.336-.75.75-.75s.75.336.75.75v9c0 1.241-1.009 2.25-2.25 2.25h-15z"/></svg>

After

Width:  |  Height:  |  Size: 665 B

View File

@ -56,7 +56,7 @@ describe('Acceptance: Authentication', function () {
}));
await authenticateSession();
await visit('/team');
await visit('/staff');
// running `visit(url)` inside windowProxy.replaceLocation breaks
// the async behaviour so we need to run `visit` here to simulate

View File

@ -28,7 +28,7 @@ describe('Acceptance: Editor', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('does not redirect to team page when authenticated as contributor', async function () {
it('does not redirect to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
let author = this.server.create('user', {roles: [role], slug: 'test-user'});
this.server.create('post', {authors: [author]});
@ -39,7 +39,7 @@ describe('Acceptance: Editor', function () {
expect(currentURL(), 'currentURL').to.equal('/editor/post/1');
});
it('does not redirect to team page when authenticated as author', async function () {
it('does not redirect to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
let author = this.server.create('user', {roles: [role], slug: 'test-user'});
this.server.create('post', {authors: [author]});
@ -50,7 +50,7 @@ describe('Acceptance: Editor', function () {
expect(currentURL(), 'currentURL').to.equal('/editor/post/1');
});
it('does not redirect to team page when authenticated as editor', async function () {
it('does not redirect to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
let author = this.server.create('user', {roles: [role], slug: 'test-user'});
this.server.create('post', {authors: [author]});

View File

@ -22,34 +22,34 @@ describe('Acceptance: Settings - Integrations - AMP', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/amp');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/amp');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/amp');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {
@ -110,14 +110,14 @@ describe('Acceptance: Settings - Integrations - AMP', function () {
expect(find('[data-test-amp-checkbox]').checked, 'AMP checkbox after click').to.be.false;
await visit('/team');
await visit('/staff');
expect(findAll('.fullscreen-modal').length, 'unsaved changes modal exists').to.equal(1);
// Leave without saving
await click('.fullscreen-modal [data-test-leave-button]');
expect(currentURL(), 'currentURL after leave without saving').to.equal('/team');
expect(currentURL(), 'currentURL after leave without saving').to.equal('/staff');
await visit('/settings/integrations/amp');

View File

@ -22,34 +22,34 @@ describe('Acceptance: Settings - Code-Injection', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/code-injection');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/code-injection');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/code-injection');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {

View File

@ -26,24 +26,24 @@ describe('Acceptance: Settings - Design', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/design');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/design');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
describe('when logged in', function () {

View File

@ -22,34 +22,34 @@ describe('Acceptance: Settings - General', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/general');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/general');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/general');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {
@ -478,14 +478,14 @@ describe('Acceptance: Settings - General', function () {
'private blog checkbox'
).to.be.true;
await visit('/settings/team');
await visit('/settings/staff');
expect(findAll('.fullscreen-modal').length, 'modal exists').to.equal(1);
// Leave without saving
await click('.fullscreen-modal [data-test-leave-button]');
expect(currentURL(), 'currentURL').to.equal('/settings/team');
expect(currentURL(), 'currentURL').to.equal('/settings/staff');
await visit('/settings/general');

View File

@ -22,34 +22,34 @@ describe('Acceptance: Settings - Integrations - Custom', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects /integrations/ to team page when authenticated as contributor', async function () {
it('redirects /integrations/ to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects /integrations/ to team page when authenticated as author', async function () {
it('redirects /integrations/ to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects /integrations/ to team page when authenticated as editor', async function () {
it('redirects /integrations/ to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/1');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
it('redirects /integrations/:id/ to signin when not authenticated', async function () {
@ -59,34 +59,34 @@ describe('Acceptance: Settings - Integrations - Custom', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects /integrations/:id/ to team page when authenticated as contributor', async function () {
it('redirects /integrations/:id/ to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/1');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects /integrations/:id/ to team page when authenticated as author', async function () {
it('redirects /integrations/:id/ to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/1');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects /integrations/:id/ to team page when authenticated as editor', async function () {
it('redirects /integrations/:id/ to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/1');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
});

View File

@ -20,34 +20,34 @@ describe('Acceptance: Settings - Labs', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/labs');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/labs');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/labs');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {

View File

@ -19,34 +19,34 @@ describe('Acceptance: Settings - Integrations - Slack', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/slack');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/slack');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/slack');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {

View File

@ -50,24 +50,24 @@ describe('Acceptance: Settings - Tags', function () {
expect(currentURL()).to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/design');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/design');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
describe('when logged in', function () {

View File

@ -22,34 +22,34 @@ describe('Acceptance: Settings - Integrations - Unsplash', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/unsplash');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/unsplash');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/unsplash');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {

View File

@ -21,34 +21,34 @@ describe('Acceptance: Settings - Integrations - Zapier', function () {
expect(currentURL(), 'currentURL').to.equal('/signin');
});
it('redirects to team page when authenticated as contributor', async function () {
it('redirects to staff page when authenticated as contributor', async function () {
let role = this.server.create('role', {name: 'Contributor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/zapier');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as author', async function () {
it('redirects to staff page when authenticated as author', async function () {
let role = this.server.create('role', {name: 'Author'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/zapier');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects to team page when authenticated as editor', async function () {
it('redirects to staff page when authenticated as editor', async function () {
let role = this.server.create('role', {name: 'Editor'});
this.server.create('user', {roles: [role], slug: 'test-user'});
await authenticateSession();
await visit('/settings/integrations/zapier');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in', function () {

View File

@ -22,13 +22,13 @@ import {expect} from 'chai';
import {setupApplicationTest} from 'ember-mocha';
import {visit} from '../helpers/visit';
describe('Acceptance: Team', function () {
describe('Acceptance: Staff', function () {
let hooks = setupApplicationTest();
setupMirage(hooks);
it('redirects to signin when not authenticated', async function () {
await invalidateSession();
await visit('/team');
await visit('/staff');
expect(currentURL()).to.equal('/signin');
});
@ -40,9 +40,9 @@ describe('Acceptance: Team', function () {
this.server.create('user', {slug: 'no-access'});
await authenticateSession();
await visit('/team/no-access');
await visit('/staff/no-access');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects correctly when authenticated as author', async function () {
@ -52,9 +52,9 @@ describe('Acceptance: Team', function () {
this.server.create('user', {slug: 'no-access'});
await authenticateSession();
await visit('/team/no-access');
await visit('/staff/no-access');
expect(currentURL(), 'currentURL').to.equal('/team/test-user');
expect(currentURL(), 'currentURL').to.equal('/staff/test-user');
});
it('redirects correctly when authenticated as editor', async function () {
@ -64,9 +64,9 @@ describe('Acceptance: Team', function () {
this.server.create('user', {slug: 'no-access'});
await authenticateSession();
await visit('/team/no-access');
await visit('/staff/no-access');
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
});
describe('when logged in as admin', function () {
@ -91,13 +91,13 @@ describe('Acceptance: Team', function () {
let user1 = this.server.create('user');
let user2 = this.server.create('user');
await visit('/team');
await visit('/staff');
// doesn't do any redirecting
expect(currentURL(), 'currentURL').to.equal('/team');
expect(currentURL(), 'currentURL').to.equal('/staff');
// it has correct page title
expect(document.title, 'page title').to.equal('Team - Test Blog');
expect(document.title, 'page title').to.equal('Staff - Test Blog');
// it shows active users in active section
expect(
@ -126,31 +126,31 @@ describe('Acceptance: Team', function () {
await click(`[data-test-user-id="${user2.id}"]`);
// url is correct
expect(currentURL(), 'url after clicking user').to.equal(`/team/${user2.slug}`);
expect(currentURL(), 'url after clicking user').to.equal(`/staff/${user2.slug}`);
// title is correct
expect(document.title, 'title after clicking user').to.equal('Team - User - Test Blog');
expect(document.title, 'title after clicking user').to.equal('Staff - User - Test Blog');
// view title should exist and be linkable and active
expect(
find('[data-test-screen-title] a[href="/ghost/team"]').classList.contains('active'),
'has linkable url back to team main page'
find('[data-test-screen-title] a[href="/ghost/staff"]').classList.contains('active'),
'has linkable url back to staff main page'
).to.be.true;
await click('[data-test-screen-title] a');
// url should be /team again
expect(currentURL(), 'url after clicking back').to.equal('/team');
// url should be /staff again
expect(currentURL(), 'url after clicking back').to.equal('/staff');
});
it('can manage invites', async function () {
await visit('/team');
await visit('/staff');
// invite user button exists
expect(
find('.view-actions .gh-btn-green').textContent.trim(),
'invite people button text'
).to.equal('Invite People');
find('.view-actions .gh-btn-green'),
'invite people button'
).to.exist;
// existing users are listed
expect(
@ -377,7 +377,7 @@ describe('Acceptance: Team', function () {
});
it('can manage suspended users', async function () {
await visit('/team');
await visit('/staff');
await click(`[data-test-user-id="${suspendedUser.id}"]`);
expect(find('[data-test-suspended-badge]')).to.exist;
@ -393,7 +393,7 @@ describe('Acceptance: Team', function () {
// expect('[data-test-suspended-badge]').to.not.exist;
// });
await click('[data-test-team-link]');
await click('[data-test-staff-link]');
// suspendedUser is now in active list
expect(
find(`[data-test-active-users] [data-test-user-id="${suspendedUser.id}"]`)
@ -422,7 +422,7 @@ describe('Acceptance: Team', function () {
user2.posts = [post];
user2.save();
await visit('/team');
await visit('/staff');
await click(`[data-test-user-id="${user1.id}"]`);
// user deletion displays modal
@ -446,7 +446,7 @@ describe('Acceptance: Team', function () {
).to.be.true;
// deleting a user with posts
await visit('/team');
await visit('/staff');
await click(`[data-test-user-id="${user2.id}"]`);
await click('button.delete');
@ -457,8 +457,8 @@ describe('Acceptance: Team', function () {
).to.have.string('1 post');
await click('[data-test-button="confirm-delete-user"]');
// redirected to team page
expect(currentURL()).to.equal('/team');
// redirected to staff page
expect(currentURL()).to.equal('/staff');
// deleted user is not in list
expect(
@ -491,9 +491,9 @@ describe('Acceptance: Team', function () {
it('input fields reset and validate correctly', async function () {
// test user name
await visit('/team/test-1');
await visit('/staff/test-1');
expect(currentURL(), 'currentURL').to.equal('/team/test-1');
expect(currentURL(), 'currentURL').to.equal('/staff/test-1');
expect(find('[data-test-name-input]').value, 'current user name').to.equal('Test User');
expect(find('[data-test-save-button]').textContent.trim(), 'save button text').to.equal('Save');
@ -799,9 +799,9 @@ describe('Acceptance: Team', function () {
});
it('warns when leaving without saving', async function () {
await visit('/team/test-1');
await visit('/staff/test-1');
expect(currentURL(), 'currentURL').to.equal('/team/test-1');
expect(currentURL(), 'currentURL').to.equal('/staff/test-1');
await fillIn('[data-test-slug-input]', 'another slug');
await blur('[data-test-slug-input]');
@ -813,18 +813,18 @@ describe('Acceptance: Team', function () {
expect(find('[data-test-facebook-input]').value).to.be.equal('https://www.facebook.com/testuser');
await visit('/settings/team');
await visit('/settings/staff');
expect(findAll('[data-test-modal]').length, 'modal exists').to.equal(1);
// Leave without saving
await click('.fullscreen-modal [data-test-leave-button]');
expect(currentURL(), 'currentURL').to.equal('/settings/team');
expect(currentURL(), 'currentURL').to.equal('/settings/staff');
await visit('/team/test-1');
await visit('/staff/test-1');
expect(currentURL(), 'currentURL').to.equal('/team/test-1');
expect(currentURL(), 'currentURL').to.equal('/staff/test-1');
// settings were not saved
expect(find('[data-test-slug-input]').value).to.be.equal('test-1');
@ -834,7 +834,7 @@ describe('Acceptance: Team', function () {
describe('own user', function () {
it('requires current password when changing password', async function () {
await visit(`/team/${admin.slug}`);
await visit(`/staff/${admin.slug}`);
// test the "old password" field is validated
await click('[data-test-save-pw-button]');
@ -879,11 +879,11 @@ describe('Acceptance: Team', function () {
errorOverride();
await visit('/team/unknown');
await visit('/staff/unknown');
errorReset();
expect(currentRouteName()).to.equal('error404');
expect(currentURL()).to.equal('/team/unknown');
expect(currentURL()).to.equal('/staff/unknown');
});
});
@ -907,16 +907,16 @@ describe('Acceptance: Team', function () {
return await authenticateSession();
});
it('can access the team page', async function () {
it('can access the staff page', async function () {
this.server.create('user', {roles: [adminRole]});
this.server.create('invite', {role: authorRole});
errorOverride();
await visit('/team');
await visit('/staff');
errorReset();
expect(currentRouteName()).to.equal('team.index');
expect(currentRouteName()).to.equal('staff.index');
expect(findAll('.gh-alert').length).to.equal(0);
});
});