]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6260 @2.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Sep 2023 09:36:38 +0000 (11:36 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Sep 2023 09:36:38 +0000 (11:36 +0200)
19 files changed:
.docker/docker-compose.yml
.env.prod
.env.ysl [new file with mode: 0644]
app/Notifications/ToolboxNotification.php
bootstrap/app.php
config/auth.php
config/backpack/base.php
config/theme.php [new file with mode: 0644]
public/themes/toolbox/logo-email.png [new file with mode: 0644]
public/themes/toolbox/logo-light.svg [new file with mode: 0644]
public/themes/toolbox/logo.svg [new file with mode: 0644]
public/themes/toolbox/style.css [new file with mode: 0644]
public/themes/ysl/logo-email.png [new file with mode: 0644]
public/themes/ysl/logo-light.svg [new file with mode: 0644]
public/themes/ysl/logo.svg [new file with mode: 0644]
public/themes/ysl/style.css [new file with mode: 0644]
resources/views/vendor/backpack/base/auth/login.blade.php
resources/views/vendor/backpack/base/inc/head.blade.php
resources/views/vendor/mail/html/message.blade.php

index 7b376532ece359700c1d9fd3d6f45aba463d941c..1e5ac4dd160077aba944fb104b1f5fdb4f999992 100644 (file)
@@ -96,8 +96,8 @@ services:
     ports:
       - '37126:80'
     environment:
-      VIRTUAL_HOST: toolbox.fluidbook.com
-      LETSENCRYPT_HOST: toolbox.fluidbook.com
+      VIRTUAL_HOST: toolbox.fluidbook.com, ysl.toolbox.fluidbook.com
+      LETSENCRYPT_HOST: toolbox.fluidbook.com, ysl.toolbox.fluidbook.com
     networks:
       - fluidbook-toolbox
     restart: unless-stopped
index e97c1037d984e1ebb58c1b23765fb5e97a61fae2..035cd1d3a82e3adae08d733be8814970387796f6 100644 (file)
--- a/.env.prod
+++ b/.env.prod
@@ -8,6 +8,9 @@ DEBUGBAR_OPEN_STORAGE=true
 
 APP_URL=https://toolbox.fluidbook.com
 HEADER_COLOR="#263340"
+THEME=toolbox
+POWERED_BY_LINK=https://www.fluidbook.com/
+
 
 LOG_CHANNEL=stack
 APP_LOG=daily
@@ -46,6 +49,7 @@ MAIL_ENCRYPTION=tls
 MAIL_FROM_ADDRESS=toolbox@fluidbook.com
 MAIL_FROM_NAME="Fluidbook Toolbox"
 MAIL_BCC_ALL=test+toolbox@cubedesigners.com
+MAIL_TEAM_NAME=Fluidbook
 
 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
 MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/.env.ysl b/.env.ysl
new file mode 100644 (file)
index 0000000..14941a4
--- /dev/null
+++ b/.env.ysl
@@ -0,0 +1,19 @@
+APP_NAME="[MAP|EMULSION] ✕ SAINT LAURENT - Statistics"
+
+APP_URL=https://ysl.toolbox.fluidbook.com
+HEADER_COLOR="#000000"
+THEME=ysl
+APP_ENV=ysl
+
+SESSION_DOMAIN=ysl.toolbox.fluidbook.com
+
+POWERED_BY_LINK=
+
+MAIL_HOST=in.mailjet.com
+MAIL_PORT=587
+MAIL_USERNAME=ca110b35f8735c223d69c9987c2ac47d
+MAIL_PASSWORD=b289d0acb08e0fe56ce98ccf0dd1ed8b
+MAIL_ENCRYPTION=tls
+MAIL_TEAM_NAME=[MAP|EMULSION]
+MAIL_FROM_ADDRESS=ysl@map-emulsion.com
+MAIL_FROM_NAME="[MAP|EMULSION]"
index ec04fccee5ac9802d367c0541432188411cc853d..ac9f520fe29e5d08e99a181c2be205535fd6a055 100644 (file)
@@ -65,7 +65,7 @@ class ToolboxNotification extends Notification
         foreach ($this->actions as $label => $url) {
             $m->line(new HtmlString($label . __(': ') . ' <a href="' . $url . '">' . $url . '</a>'));
         }
-        $m->salutation(new HtmlString(__('Cordialement,') . "<br>" . __('L\'équipe Fluidbook')));
+        $m->salutation(new HtmlString(__('Cordialement,') . "<br>" . __('L\'équipe :teamname',['team_name'=>env('MAIL_TEAM_NAME')])));
         return $m;
 
     }
index 8d4e15eee919d214ef73f7d382a1ddb2ace7980a..3f556bf9e58d89f75bbe3d8a0f8aca0940f1f341 100644 (file)
@@ -15,6 +15,11 @@ $app = new Cubist\Backpack\Application(
     $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
 );
 
+if (isset($_SERVER['HTTP_HOST']) && stristr($_SERVER['HTTP_HOST'], 'ysl')) {
+    $merged = \Cubist\Util\Env::mergeEnvFiles('/application/.env.prod', '/application/.env.ysl');
+    $app->loadEnvironmentFrom('../../../' . $merged);
+}
+
 /*
 |--------------------------------------------------------------------------
 | Bind Important Interfaces
index f6c662bf1062b4f4f1e177d43823b1affd007fab..c189260a6ad660a9f0f3cb438aeb11c1d08fb318 100644 (file)
@@ -97,7 +97,7 @@ return [
             'provider' => 'users',
             'table' => 'password_resets',
             'expire' => 60,
-            'throttle' => 60,
+            'throttle' => 5,
         ],
     ],
 
index 8deea023c3ef9bd3d3691c683bf7e5be330bc266..2f7e3b1a0932c655c25fffeab03b2dc974d99513 100644 (file)
@@ -95,7 +95,7 @@ return [
     // ------
 
     // Menu logo. You can replace this with an <img> tag if you have a logo.
-    'project_logo' => '<img src="/images/logo.svg" alt="Fluidbook Toolbox">',
+    'project_logo' => '<img src="/themes/'.env('THEME').'/logo.svg" alt="'.env('APP_NAME').'">',
 
     // Show / hide breadcrumbs on admin panel pages.
     'breadcrumbs' => true,
@@ -132,7 +132,7 @@ return [
     'developer_name' => 'Fluidbook',
 
     // Developer website. Link in footer. Type false if you want to hide it.
-    'developer_link' => 'https://www.fluidbook.com',
+    'developer_link' => env('POWERED_BY_LINK','https://www.fluidbook.com'),
 
     // Show powered by Laravel Backpack in the footer? true/false
     'show_powered_by' => false,
diff --git a/config/theme.php b/config/theme.php
new file mode 100644 (file)
index 0000000..2307130
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+
+return [
+    'name' => env('THEME'),
+    'header_color' => env('HEADER_COLOR'),
+];
diff --git a/public/themes/toolbox/logo-email.png b/public/themes/toolbox/logo-email.png
new file mode 100644 (file)
index 0000000..07e2899
Binary files /dev/null and b/public/themes/toolbox/logo-email.png differ
diff --git a/public/themes/toolbox/logo-light.svg b/public/themes/toolbox/logo-light.svg
new file mode 100644 (file)
index 0000000..4df1d86
--- /dev/null
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 1052.8 161.3" style="enable-background:new 0 0 1052.8 161.3;" xml:space="preserve">
+<style type="text/css">
+       .st0{fill:#FFFFFF;}
+       .st1{fill:url(#SVGID_1_);}
+       .st2{fill:url(#SVGID_2_);}
+       .st3{opacity:0.8;fill:url(#SVGID_3_);}
+       .st4{fill:#151E27;}
+       .st5{fill:#9EC400;}
+</style>
+<path class="st0" d="M78.5,38.4C63.3,17,28.6,16.6,5.3,0c-6.7,38.2-5.9,65.7,4.8,84.1C6.7,84.4,3.3,84.4,0,84
+       c12.8,36.6,27.7,53.1,52,49.5c24.3-3.6,35.6-0.4,35.6-0.4c0,0,0,0,0-0.1c0,0,0.1,0.1,0.1,0.1C94.2,81.2,93.8,59.9,78.5,38.4z"/>
+<g>
+       <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0.9976" y1="66.5506" x2="91.6798" y2="66.5506">
+               <stop  offset="0" style="stop-color:#B1D348"/>
+               <stop  offset="1" style="stop-color:#57772B"/>
+       </linearGradient>
+       <path class="st1" d="M87.7,133.1c6.6-51.9,6.1-73.2-9.1-94.7C63.3,17,28.6,16.6,5.3,0C-5.2,59.8,2.5,93.5,38.6,106.9
+               C74.6,120.3,87.7,133.1,87.7,133.1z"/>
+       <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="13.3938" y1="87.2887" x2="87.5962" y2="87.2887">
+               <stop  offset="0" style="stop-color:#57772B"/>
+               <stop  offset="1" style="stop-color:#B1D348"/>
+       </linearGradient>
+       <path class="st2" d="M87.6,133.1c0-39.3-2.3-55.1-15.7-69.7C58.5,48.8,32.6,51.7,13.7,41.5c-2.2,45.5,6.7,69.9,34.8,76.6
+               C76.6,124.7,87.6,133.1,87.6,133.1z"/>
+       <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="0" y1="107.1941" x2="87.6325" y2="107.1941">
+               <stop  offset="0" style="stop-color:#B1D348"/>
+               <stop  offset="1" style="stop-color:#57772B"/>
+       </linearGradient>
+       <path class="st3" d="M87.6,133.1c-12.6-31-19.5-42.8-34.7-50.1C37.7,75.7,18.2,86.1,0,84c12.8,36.6,27.7,53.1,52,49.5
+               C76.3,130,87.6,133.1,87.6,133.1z"/>
+</g>
+<g>
+       <g>
+               <path class="st4" d="M172.8,45.9c0-8.5-12.5-10.8-19.9-10.8c-20.3,0-29.8,10.6-29.8,33.4c0,0,0,23.4,0,25.4c-1.8,0-16.1,0-16.1,0
+                       v6.3c0,0,14.3,0,16.1,0c0,2.1,0,39.5,0,39.7c0,10.8-4.1,13.7-16.1,14.4l-1,0.1v5.2l26.1-0.7l11,0.3l12.2,0.3l0-1.1l0-4.1l-3.6-0.1
+                       c-5-0.1-10.2-0.2-11.9-4.9c-0.7-1.7-1.3-5.2-1.3-9.2c0,0,0-37.8,0-39.9c1.9,0,19,0,19,0v-6.3c0,0-17.1,0-19,0c0-2,0-27.7,0-27.7
+                       c0-5.9,0-13.2,2.2-18.6c2-4.7,5.4-6.8,11.4-6.8c4.8,0,6.3,1.9,8,6.1c0.9,2.2,2.5,5,6.4,5C169.9,52,172.8,49.2,172.8,45.9z
+                        M266.5,151.3c-3.9,0-4.2-3.8-4.2-8.3V97.1l-6.5,0.4c0,0-5.2,0.3-5.3,0.3c-0.1,0-12.5-0.8-12.5-0.8l0,1v3.6l0.8,0.1
+                       c9.8,1.4,9.8,3.5,9.7,12.5l0,2v18.6c0,5-1.9,10-5.2,13.7c-3.4,3.8-8,6-12.9,6c-9.3,0-10.6-8.8-10.6-18.4v-39l-6.2,0.3l-5.6,0.3
+                       c0,0-5.6-0.3-5.6-0.3l-6.9-0.3l0,1v3.5l0.8,0.1c9.8,1.4,9.8,3.5,9.7,12.5l0,2v23.8c0,14,6.6,20.9,20.2,20.9
+                       c8.5,0,17.2-4.6,22.7-11.8c0.7,2.9,2.7,12,2.7,12l21-5.5v-5l-2.9,0.3C268.6,151.2,267.5,151.3,266.5,151.3z M196.5,154.9l-0.9-0.1
+                       c-8.7-0.6-8.7-2.9-8.8-9.9l0-3.2V69.8l-24.2,4.8v4.5l2.5,0.3c2.8,0.3,5.5,0.5,6.6,2.9C173,85,173,93.5,173,96.7v45.9l0,1.6
+                       c0,7.9,0,10-8.8,10.6l-0.9,0.1v4.7l16.3-0.6c-0.1,0,7.7,0.3,7.7,0.3l9.2,0.3l0-1V154.9z M310.7,154.9l-0.9-0.1
+                       c-8.7-0.6-8.7-2.9-8.8-9.9l0-3.2V95.9l-23.9,4.7v4.6l1-0.1c2.3-0.1,7.8-0.4,8.6,2.3c0.2,0.7,0.5,3.7,0.5,15.2v19.9l0,2
+                       c-0.1,7.6-0.1,9.6-8.7,10.2l-0.9,0.1v4.7l17.3-0.6l7.8,0.3l8,0.3l0-1V154.9z M292.8,80.6c4.5,0,8.1-3.7,8.1-8.3
+                       c0-4.8-3.7-8.5-8.4-8.5c-4.7,0-8.5,3.8-8.5,8.5C284,77,287.9,80.6,292.8,80.6z M374.4,133.7V62.2l-24.2,4.8v4.5l0.9,0
+                       c9.1,0.3,9.5,3.9,9.5,12.1c0,0,0,15.7,0,19.6c-4.9-4.6-11.5-7.2-18.9-7.2c-19.2,0-30.6,16.9-30.6,33.3c0,18.4,12.9,31.7,30.6,31.7
+                       c9.3,0,15.9-3.2,22.2-10.6c0.7-0.1,12.3-1.5,12.3-1.5l-0.4-1.2C374.4,144.3,374.4,137.4,374.4,133.7z M360.6,135.5
+                       c0,9.1-2.7,19.9-15.6,19.9c-16.3,0-18.1-18.2-18.1-26c0-6.3,1.3-26.9,18.1-26.9c7.5,0,15.6,5,15.6,13.2V135.5z M479.3,96.1
+                       c-15.5,0-32.1,12.7-32.1,31.7c0,18.3,14.4,33.3,32.1,33.3c18.4,0,32.2-14.1,32.2-32.7C511.5,110.9,496.7,96.1,479.3,96.1z
+                        M493.2,147.3c-2.8,5.7-7.3,8.7-13.3,8.7c-15.5,0-17.8-17.3-17.8-27.5c0-6.4,1.2-27.1,16.7-27.1c14.7,0,17.8,15.2,17.8,28
+                       C496.6,134.3,496,141.5,493.2,147.3z M546.4,96.1c-15.5,0-32.1,12.7-32.1,31.7c0,18.3,14.4,33.3,32.1,33.3
+                       c18.4,0,32.3-14.1,32.3-32.7C578.6,110.9,563.9,96.1,546.4,96.1z M560.3,147.3c-2.8,5.7-7.3,8.7-13.3,8.7
+                       c-15.5,0-17.8-17.3-17.8-27.5c0-6.4,1.2-27.1,16.7-27.1c14.7,0,17.8,15.2,17.8,28C563.7,134.3,563.1,141.5,560.3,147.3z
+                        M413.6,96.1c-7.4,0-14.1,2.5-18.9,7.2c0-3.8,0-19.6,0-19.6c0-8.2,0.4-11.9,9.5-12.1l0.9,0v-4.5l-24.2-4.8v71.5
+                       c0,3.7,0,10.7-1.3,14.1l-0.4,1.2c0,0,11.6,1.4,12.3,1.5c6.3,7.4,12.9,10.6,22.2,10.6c17.7,0,30.6-13.3,30.6-31.7
+                       C444.2,113,432.8,96.1,413.6,96.1z M410.3,155.4c-12.9,0-15.6-10.8-15.6-19.9v-19.8c0-8.2,8.1-13.2,15.6-13.2
+                       c16.8,0,18.1,20.5,18.1,26.9C428.3,137.2,426.6,155.4,410.3,155.4z M647.1,158.6V155l-0.8-0.1c-3.6-0.6-4.9-1.9-7.1-4.1l-2-2
+                       c0,0-24.8-24.2-26-25.5c1.1-1.3,12.2-13.6,12.2-13.6c0,0,1.3-1.4,1.3-1.4c3.8-4.2,5.4-6,11.8-6.2l0.9,0v-4.7l-12.8,0.6
+                       c0.1,0-6-0.3-6-0.3l-7.2-0.3l0,1v3.8h1c4.2,0,6.4,0.8,6.4,2.5c0,1-1.3,4-10.1,13.3c0,0-5.6,5.9-7.8,8.3c0-4.5,0-64,0-64L576.5,67
+                       v4.5l2.1,0.2c2.9,0.3,5.7,0.6,7.1,3c1.4,2.4,1.4,9.9,1.4,12.7v55.1l0,1.6c0,7.9,0,10-8.8,10.6l-0.9,0.1v4.7l9.3-0.3l7.4-0.3
+                       c-0.1,0,7.7,0.3,7.7,0.3l8.8,0.3l0-1v-3.7l-0.9-0.1c-8.1-0.5-8.9-2.6-8.9-8.4c0-0.7,0-1.4,0-2.1l0-2.6c0,0,0-7.5,0-8.2
+                       c0.3-0.3,1.1-1.1,1.8-1.8c1.3,1.4,26.1,27.8,26.1,27.8s8.9-0.6,9-0.6c0.1,0,9.5,0.6,9.5,0.6L647.1,158.6z"/>
+       </g>
+</g>
+<path class="st5" d="M651.8,104.6v-4.3c4.1-2.4,7.4-4.8,9.7-7.3c2.3-2.4,4.1-5.3,5.4-8.7h3.4v14.7H686v5.5h-15.7v35.6
+       c0,2.7,0.1,5,0.4,6.9c0.3,1.9,0.7,3.4,1.3,4.5c0.6,1.1,1.4,1.9,2.5,2.4c1,0.5,2.3,0.7,3.9,0.7c2,0,3.6-0.4,5-1.2
+       c1.4-0.8,2.7-2.2,4-4.2l2.9,2.2c-1.1,2.9-3,5.1-5.7,6.6c-2.7,1.5-6,2.3-10,2.3c-5.2,0-9.1-1.2-11.8-3.7s-4-6-4-10.6v-41.6H651.8z"/>
+<path class="st5" d="M722.8,96c4.4,0,8.7,0.8,12.6,2.4c4,1.6,7.5,3.8,10.5,6.6c3,2.8,5.4,6.1,7.1,10c1.8,3.9,2.6,8.1,2.6,12.7
+       c0,4.8-0.9,9.1-2.6,13.1c-1.8,4-4.1,7.4-7.1,10.3c-3,2.9-6.5,5.2-10.5,6.8c-4,1.6-8.2,2.5-12.6,2.5c-4.4,0-8.5-0.8-12.5-2.4
+       c-3.9-1.6-7.4-3.8-10.4-6.7c-3-2.9-5.3-6.3-7-10.4c-1.7-4-2.6-8.4-2.6-13.2c0-4.6,0.9-8.9,2.6-12.8c1.7-3.9,4.1-7.3,7-10.1
+       c3-2.8,6.4-5,10.4-6.6C714.2,96.8,718.4,96,722.8,96z M722.8,101.6c-2.9,0-5.5,0.6-7.9,1.9c-2.4,1.3-4.4,3-6.1,5.3
+       c-1.7,2.3-3,5.1-3.9,8.3c-0.9,3.2-1.3,6.8-1.3,10.7c0,4.1,0.4,7.7,1.3,11c0.9,3.3,2.2,6.1,3.9,8.4c1.7,2.3,3.7,4.1,6,5.3
+       c2.3,1.2,5,1.9,8,1.9c3,0,5.7-0.6,8.1-1.9c2.4-1.2,4.5-3,6.2-5.4c1.7-2.3,3-5.2,4-8.4c0.9-3.3,1.4-6.9,1.4-10.9
+       c0-3.9-0.5-7.5-1.4-10.7c-0.9-3.2-2.3-6-4-8.3c-1.7-2.3-3.8-4.1-6.2-5.4C728.4,102.3,725.7,101.6,722.8,101.6z"/>
+<path class="st5" d="M790.7,96c4.4,0,8.7,0.8,12.6,2.4c4,1.6,7.5,3.8,10.5,6.6c3,2.8,5.4,6.1,7.1,10c1.8,3.9,2.6,8.1,2.6,12.7
+       c0,4.8-0.9,9.1-2.6,13.1c-1.8,4-4.1,7.4-7.1,10.3c-3,2.9-6.5,5.2-10.5,6.8c-4,1.6-8.2,2.5-12.6,2.5c-4.4,0-8.5-0.8-12.5-2.4
+       c-3.9-1.6-7.4-3.8-10.4-6.7c-3-2.9-5.3-6.3-7-10.4c-1.7-4-2.6-8.4-2.6-13.2c0-4.6,0.9-8.9,2.6-12.8c1.7-3.9,4.1-7.3,7-10.1
+       c3-2.8,6.4-5,10.4-6.6C782.2,96.8,786.3,96,790.7,96z M790.7,101.6c-2.9,0-5.5,0.6-7.9,1.9c-2.4,1.3-4.4,3-6.1,5.3
+       c-1.7,2.3-3,5.1-3.9,8.3c-0.9,3.2-1.3,6.8-1.3,10.7c0,4.1,0.4,7.7,1.3,11c0.9,3.3,2.2,6.1,3.9,8.4c1.7,2.3,3.7,4.1,6,5.3
+       c2.3,1.2,5,1.9,8,1.9c3,0,5.7-0.6,8.1-1.9c2.4-1.2,4.5-3,6.2-5.4c1.7-2.3,3-5.2,4-8.4c0.9-3.3,1.4-6.9,1.4-10.9
+       c0-3.9-0.5-7.5-1.4-10.7c-0.9-3.2-2.3-6-4-8.3c-1.7-2.3-3.8-4.1-6.2-5.4C796.4,102.3,793.7,101.6,790.7,101.6z"/>
+<path class="st5" d="M843,141c0,3,0.1,5.3,0.4,7.1c0.2,1.8,0.7,3.2,1.5,4.2c0.7,1,1.8,1.7,3.2,2.1c1.4,0.4,3.2,0.6,5.4,0.7v4.1
+       h-32.3v-4.1c2.3-0.1,4.2-0.3,5.6-0.8c1.4-0.4,2.5-1.1,3.3-2s1.4-2.2,1.6-3.9c0.3-1.7,0.4-3.9,0.4-6.6V91.3c0-4.2-0.1-7.7-0.2-10.6
+       c-0.1-2.8-0.3-4.8-0.5-5.8c-0.4-1.8-1.3-3-2.8-3.6c-1.4-0.6-4-0.9-7.8-0.9v-4l22.1-4.3V141z"/>
+<path class="st5" d="M871.8,105.5h0.5c2.5-3.3,5.2-5.7,8.3-7.2c3-1.5,6.5-2.3,10.5-2.3c4.2,0,8.1,0.8,11.8,2.5s6.8,3.9,9.5,6.8
+       c2.7,2.9,4.8,6.3,6.3,10.2c1.5,3.9,2.3,8.2,2.3,12.7c0,4.6-0.8,8.9-2.3,12.8c-1.6,3.9-3.7,7.4-6.4,10.2c-2.7,2.9-5.9,5.2-9.5,6.8
+       c-3.7,1.6-7.6,2.5-11.9,2.5c-4.4,0-8.6-0.8-12.5-2.5c-3.9-1.6-7-3.9-9.5-6.7l-5.5,7.8h-2.6V88.5c0-7.9-0.5-12.9-1.5-15.1
+       c-0.2-0.5-0.5-1-0.8-1.3c-0.3-0.4-0.8-0.7-1.4-0.9c-0.6-0.3-1.5-0.5-2.6-0.8c-1.1-0.2-2.6-0.5-4.4-0.7v-2.9l22-4.7V105.5z
+        M872,134.8c0,3,0.4,5.7,1.3,8.1c0.9,2.5,2,4.6,3.6,6.3c1.5,1.8,3.4,3.1,5.5,4.2c2.1,1,4.5,1.5,7,1.5c2.7,0,5.2-0.6,7.4-1.9
+       c2.2-1.2,4.1-3,5.7-5.3c1.6-2.3,2.8-5.1,3.7-8.3c0.9-3.2,1.3-6.8,1.3-10.8c0-4-0.5-7.6-1.4-10.9c-0.9-3.3-2.2-6.2-3.9-8.5
+       c-1.6-2.4-3.6-4.2-5.9-5.6c-2.3-1.3-4.8-2-7.5-2c-3.2,0-6,0.8-8.5,2.3c-2.5,1.5-4.4,3.6-5.7,6.4c-1.7,3.4-2.6,8.2-2.6,14.2V134.8z"
+       />
+<path class="st5" d="M956.8,96c4.4,0,8.7,0.8,12.6,2.4c4,1.6,7.5,3.8,10.5,6.6c3,2.8,5.4,6.1,7.1,10c1.8,3.9,2.6,8.1,2.6,12.7
+       c0,4.8-0.9,9.1-2.6,13.1c-1.8,4-4.1,7.4-7.1,10.3c-3,2.9-6.5,5.2-10.5,6.8c-4,1.6-8.2,2.5-12.6,2.5c-4.4,0-8.5-0.8-12.5-2.4
+       c-3.9-1.6-7.4-3.8-10.4-6.7c-3-2.9-5.3-6.3-7-10.4c-1.7-4-2.6-8.4-2.6-13.2c0-4.6,0.9-8.9,2.6-12.8c1.7-3.9,4.1-7.3,7-10.1
+       c3-2.8,6.4-5,10.4-6.6C948.3,96.8,952.4,96,956.8,96z M956.8,101.6c-2.9,0-5.5,0.6-7.9,1.9c-2.4,1.3-4.4,3-6.1,5.3
+       c-1.7,2.3-3,5.1-3.9,8.3c-0.9,3.2-1.3,6.8-1.3,10.7c0,4.1,0.4,7.7,1.3,11c0.9,3.3,2.2,6.1,3.9,8.4c1.7,2.3,3.7,4.1,6,5.3
+       c2.3,1.2,5,1.9,8,1.9c3,0,5.7-0.6,8.1-1.9c2.4-1.2,4.5-3,6.2-5.4c1.7-2.3,3-5.2,4-8.4c0.9-3.3,1.4-6.9,1.4-10.9
+       c0-3.9-0.5-7.5-1.4-10.7c-0.9-3.2-2.3-6-4-8.3c-1.7-2.3-3.8-4.1-6.2-5.4C962.5,102.3,959.8,101.6,956.8,101.6z"/>
+<path class="st5" d="M1028.7,111c1.9-2.3,2.8-4.3,2.8-6c0-2.5-2.3-3.7-6.9-3.7v-4.1h25.6v4.1c-1.4,0-2.7,0.2-3.8,0.5
+       c-1.1,0.3-2.2,0.8-3.3,1.5c-1.1,0.7-2.2,1.7-3.3,2.9c-1.1,1.2-2.4,2.7-3.8,4.5l-12.1,15.3l15.6,20.5c2.4,3.2,4.7,5.4,6.7,6.7
+       c2.1,1.3,4.3,1.9,6.6,1.9v4.1h-31.1v-4.1c2.8,0,4.8-0.2,5.9-0.6c1.1-0.4,1.6-1.3,1.6-2.5c0-0.5-0.3-1.3-1-2.4
+       c-0.7-1.1-1.8-2.6-3.3-4.6l-8.2-10.5l-10,12.6c-1.2,1.4-1.8,2.8-1.8,4.2c0,1.1,0.5,2,1.4,2.8c0.9,0.7,2.4,1.1,4.4,1.1v4.1H984v-4.1
+       c1.8,0,3.4-0.2,4.8-0.5c1.4-0.3,2.8-0.9,4-1.6c1.3-0.8,2.6-1.9,4-3.3c1.4-1.4,2.9-3.2,4.6-5.3l11.9-14.6l-15.6-22.1
+       c-1.8-2.5-3.4-4.2-4.9-5.1c-1.5-0.9-3.4-1.3-5.6-1.3v-4.1h28.8v4.1c-2.1,0-3.6,0.3-4.6,0.8c-0.9,0.5-1.4,1.2-1.4,2
+       c0,1.2,0.7,2.8,2.2,4.9l8.4,12.3L1028.7,111z"/>
+</svg>
diff --git a/public/themes/toolbox/logo.svg b/public/themes/toolbox/logo.svg
new file mode 100644 (file)
index 0000000..26863ff
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 232.5 34" style="enable-background:new 0 0 232.5 34;" xml:space="preserve">
+<style type="text/css">
+       .st0{fill:#FFFFFF;}
+       .st1{fill:url(#SVGID_1_);}
+       .st2{fill:url(#SVGID_2_);}
+       .st3{opacity:0.8;fill:url(#SVGID_3_);}
+       .st4{fill:#9EC400;}
+</style>
+<g>
+       <g>
+               <path class="st0" d="M31.4,8.9C28.3,4.5,21.1,4.4,16.3,1c-1.4,7.9-1.2,13.6,1,17.4c-0.7,0.1-1.4,0.1-2.1,0
+                       c2.6,7.6,5.7,11,10.7,10.2c5-0.7,7.4-0.1,7.4-0.1c0,0,0,0,0,0c0,0,0,0,0,0C34.7,17.7,34.6,13.3,31.4,8.9z"/>
+               <g>
+                       <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="15.4464" y1="14.7192" x2="34.1555" y2="14.7192">
+                               <stop  offset="0" style="stop-color:#B1D348"/>
+                               <stop  offset="1" style="stop-color:#57772B"/>
+                       </linearGradient>
+                       <path class="st1" d="M33.3,28.4c1.4-10.7,1.3-15.1-1.9-19.5C28.3,4.5,21.1,4.4,16.3,1c-2.2,12.3-0.6,19.3,6.9,22.1
+                               C30.6,25.8,33.3,28.4,33.3,28.4z"/>
+                       <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="18.0039" y1="18.9978" x2="33.313" y2="18.9978">
+                               <stop  offset="0" style="stop-color:#57772B"/>
+                               <stop  offset="1" style="stop-color:#B1D348"/>
+                       </linearGradient>
+                       <path class="st2" d="M33.3,28.4c0-8.1-0.5-11.4-3.2-14.4c-2.8-3-8.1-2.4-12-4.5c-0.4,9.4,1.4,14.4,7.2,15.8
+                               C31.1,26.7,33.3,28.4,33.3,28.4z"/>
+                       <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="15.2405" y1="23.1046" x2="33.3205" y2="23.1046">
+                               <stop  offset="0" style="stop-color:#B1D348"/>
+                               <stop  offset="1" style="stop-color:#57772B"/>
+                       </linearGradient>
+                       <path class="st3" d="M33.3,28.5c-2.6-6.4-4-8.8-7.2-10.3c-3.1-1.5-7.2,0.6-10.9,0.2c2.6,7.6,5.7,11,10.7,10.2
+                               C31,27.8,33.3,28.5,33.3,28.5z"/>
+               </g>
+               <g>
+                       <g>
+                               <path class="st0" d="M50.9,10.5c0-1.8-2.6-2.2-4.1-2.2c-4.2,0-6.2,2.2-6.2,6.9c0,0,0,4.8,0,5.2c-0.4,0-3.3,0-3.3,0v1.3
+                                       c0,0,3,0,3.3,0v8.2c0,2.2-0.8,2.8-3.3,3l-0.2,0v1.1l5.4-0.1l2.3,0.1l2.5,0.1l0-0.2l0-0.9l-0.7,0c-1,0-2.1,0-2.5-1
+                                       c-0.1-0.4-0.3-1.1-0.3-1.9c0,0,0-7.8,0-8.2c0.4,0,3.9,0,3.9,0v-1.3c0,0-3.5,0-3.9,0c0-0.4,0-5.7,0-5.7c0-1.2,0-2.7,0.5-3.8
+                                       c0.4-1,1.1-1.4,2.3-1.4c1,0,1.3,0.4,1.6,1.3c0.2,0.4,0.5,1,1.3,1C50.3,11.7,50.9,11.1,50.9,10.5z M70.2,32.2
+                                       c-0.8,0-0.9-0.8-0.9-1.7V21L68,21.1c0,0-1.1,0.1-1.1,0.1c0,0-2.6-0.2-2.6-0.2l0,0.2V22l0.2,0c2,0.3,2,0.7,2,2.6l0,0.4v3.8
+                                       c0,1-0.4,2.1-1.1,2.8c-0.7,0.8-1.7,1.2-2.7,1.2c-1.9,0-2.2-1.8-2.2-3.8v-8l-1.3,0.1l-1.2,0.1c0,0-1.2-0.1-1.2-0.1l-1.4-0.1
+                                       l0,0.2V22l0.2,0c2,0.3,2,0.7,2,2.6l0,0.4v4.9c0,2.9,1.4,4.3,4.2,4.3c1.8,0,3.6-0.9,4.7-2.4c0.1,0.6,0.6,2.5,0.6,2.5l4.3-1.1v-1
+                                       l-0.6,0.1C70.7,32.2,70.4,32.2,70.2,32.2z M79.3,32.9l-0.2,0c-1.8-0.1-1.8-0.6-1.8-2l0-0.7v-9.5l-4.9,1v1l0.2,0
+                                       c0.5,0,1.6-0.1,1.8,0.5c0,0.1,0.1,0.8,0.1,3.1v4.1l0,0.4c0,1.6,0,2-1.8,2.1l-0.2,0v1l3.6-0.1l1.6,0.1l1.7,0.1l0-0.2V32.9z
+                                        M55.8,32.9l-0.2,0c-1.8-0.1-1.8-0.6-1.8-2l0-0.7V15.4l-5,1v0.9l0.5,0.1c0.6,0.1,1.1,0.1,1.4,0.6c0.3,0.6,0.3,2.3,0.3,3v9.5
+                                       l0,0.3c0,1.6,0,2.1-1.8,2.2l-0.2,0v1l3.4-0.1c0,0,1.6,0.1,1.6,0.1l1.9,0.1l0-0.2V32.9z M75.6,17.6c0.9,0,1.7-0.8,1.7-1.7
+                                       c0-1-0.8-1.8-1.7-1.8c-1,0-1.8,0.8-1.8,1.8C73.8,16.9,74.6,17.6,75.6,17.6z M114.1,20.8c-3.2,0-6.6,2.6-6.6,6.5
+                                       c0,3.8,3,6.9,6.6,6.9c3.8,0,6.7-2.9,6.7-6.7C120.8,23.9,117.7,20.8,114.1,20.8z M117,31.4c-0.6,1.2-1.5,1.8-2.7,1.8
+                                       c-3.2,0-3.7-3.6-3.7-5.7c0-1.3,0.2-5.6,3.4-5.6c3,0,3.7,3.1,3.7,5.8C117.7,28.7,117.6,30.2,117,31.4z M148.8,33.7V33l-0.2,0
+                                       c-0.8-0.1-1-0.4-1.5-0.8l-0.4-0.4c0,0-5.1-5-5.4-5.3c0.2-0.3,2.5-2.8,2.5-2.8c0,0,0.3-0.3,0.3-0.3c0.8-0.9,1.1-1.2,2.4-1.3
+                                       l0.2,0v-1l-2.6,0.1c0,0-1.2-0.1-1.2-0.1l-1.5-0.1l0,0.2V22h0.2c0.9,0,1.3,0.2,1.3,0.5c0,0.2-0.3,0.8-2.1,2.7
+                                       c0,0-1.2,1.2-1.6,1.7c0-0.9,0-13.2,0-13.2l-5,1v0.9l0.4,0c0.6,0.1,1.2,0.1,1.5,0.6c0.3,0.5,0.3,2,0.3,2.6v11.4l0,0.3
+                                       c0,1.6,0,2.1-1.8,2.2l-0.2,0v1l1.9-0.1l1.5-0.1c0,0,1.6,0.1,1.6,0.1l1.8,0.1l0-0.2v-0.8l-0.2,0c-1.7-0.1-1.8-0.5-1.8-1.7
+                                       c0-0.1,0-0.3,0-0.4l0-0.5c0,0,0-1.5,0-1.7c0.1-0.1,0.2-0.2,0.4-0.4c0.3,0.3,5.4,5.7,5.4,5.7s1.8-0.1,1.9-0.1c0,0,2,0.1,2,0.1
+                                       L148.8,33.7z M128,20.8c-3.2,0-6.6,2.6-6.6,6.5c0,3.8,3,6.9,6.6,6.9c3.8,0,6.7-2.9,6.7-6.7C134.6,23.9,131.6,20.8,128,20.8z
+                                        M130.8,31.4c-0.6,1.2-1.5,1.8-2.7,1.8c-3.2,0-3.7-3.6-3.7-5.7c0-1.3,0.2-5.6,3.4-5.6c3,0,3.7,3.1,3.7,5.8
+                                       C131.5,28.7,131.4,30.2,130.8,31.4z M92.5,28.6V13.8l-5,1v0.9l0.2,0c1.9,0.1,2,0.8,2,2.5c0,0,0,3.2,0,4c-1-1-2.4-1.5-3.9-1.5
+                                       c-4,0-6.3,3.5-6.3,6.9c0,3.8,2.7,6.5,6.3,6.5c1.9,0,3.3-0.7,4.6-2.2c0.1,0,2.5-0.3,2.5-0.3l-0.1-0.2
+                                       C92.5,30.8,92.5,29.3,92.5,28.6z M89.6,28.9c0,1.9-0.6,4.1-3.2,4.1c-3.4,0-3.7-3.8-3.7-5.4c0-1.3,0.3-5.5,3.7-5.5
+                                       c1.5,0,3.2,1,3.2,2.7V28.9z M100.6,20.8c-1.5,0-2.9,0.5-3.9,1.5c0-0.8,0-4,0-4c0-1.7,0.1-2.4,2-2.5l0.2,0v-0.9l-5-1v14.7
+                                       c0,0.8,0,2.2-0.3,2.9l-0.1,0.2c0,0,2.4,0.3,2.5,0.3c1.3,1.5,2.7,2.2,4.6,2.2c3.7,0,6.3-2.8,6.3-6.5
+                                       C106.9,24.3,104.5,20.8,100.6,20.8z M99.9,33c-2.7,0-3.2-2.2-3.2-4.1v-4.1c0-1.7,1.7-2.7,3.2-2.7c3.5,0,3.7,4.2,3.7,5.5
+                                       C103.6,29.3,103.3,33,99.9,33z"/>
+                       </g>
+               </g>
+       </g>
+       <g>
+               <g>
+                       <path class="st4" d="M149.7,22.6v-0.9c0.9-0.5,1.5-1,2-1.5c0.5-0.5,0.9-1.1,1.1-1.8h0.7v3h3.2v1.1h-3.2v7.3c0,0.6,0,1,0.1,1.4
+                               c0.1,0.4,0.1,0.7,0.3,0.9c0.1,0.2,0.3,0.4,0.5,0.5c0.2,0.1,0.5,0.1,0.8,0.1c0.4,0,0.7-0.1,1-0.3c0.3-0.2,0.6-0.5,0.8-0.9l0.6,0.5
+                               c-0.2,0.6-0.6,1.1-1.2,1.4c-0.6,0.3-1.2,0.5-2.1,0.5c-1.1,0-1.9-0.3-2.4-0.8s-0.8-1.2-0.8-2.2v-8.6H149.7z"/>
+                       <path class="st4" d="M164.4,20.8c0.9,0,1.8,0.2,2.6,0.5c0.8,0.3,1.5,0.8,2.2,1.4c0.6,0.6,1.1,1.3,1.5,2.1
+                               c0.4,0.8,0.5,1.7,0.5,2.6c0,1-0.2,1.9-0.5,2.7c-0.4,0.8-0.9,1.5-1.5,2.1c-0.6,0.6-1.3,1.1-2.2,1.4c-0.8,0.3-1.7,0.5-2.6,0.5
+                               c-0.9,0-1.8-0.2-2.6-0.5c-0.8-0.3-1.5-0.8-2.1-1.4c-0.6-0.6-1.1-1.3-1.4-2.1c-0.4-0.8-0.5-1.7-0.5-2.7c0-0.9,0.2-1.8,0.5-2.6
+                               c0.4-0.8,0.8-1.5,1.4-2.1c0.6-0.6,1.3-1,2.1-1.4C162.6,21,163.5,20.8,164.4,20.8z M164.4,22c-0.6,0-1.1,0.1-1.6,0.4
+                               c-0.5,0.3-0.9,0.6-1.3,1.1c-0.3,0.5-0.6,1-0.8,1.7c-0.2,0.7-0.3,1.4-0.3,2.2c0,0.8,0.1,1.6,0.3,2.3c0.2,0.7,0.5,1.3,0.8,1.7
+                               c0.3,0.5,0.8,0.8,1.2,1.1c0.5,0.3,1,0.4,1.6,0.4c0.6,0,1.2-0.1,1.7-0.4c0.5-0.3,0.9-0.6,1.3-1.1c0.4-0.5,0.6-1.1,0.8-1.7
+                               c0.2-0.7,0.3-1.4,0.3-2.2c0-0.8-0.1-1.5-0.3-2.2c-0.2-0.7-0.5-1.2-0.8-1.7c-0.4-0.5-0.8-0.8-1.3-1.1C165.5,22.1,165,22,164.4,22z
+                               "/>
+                       <path class="st4" d="M178.4,20.8c0.9,0,1.8,0.2,2.6,0.5c0.8,0.3,1.5,0.8,2.2,1.4c0.6,0.6,1.1,1.3,1.5,2.1
+                               c0.4,0.8,0.5,1.7,0.5,2.6c0,1-0.2,1.9-0.5,2.7c-0.4,0.8-0.9,1.5-1.5,2.1c-0.6,0.6-1.3,1.1-2.2,1.4c-0.8,0.3-1.7,0.5-2.6,0.5
+                               c-0.9,0-1.8-0.2-2.6-0.5c-0.8-0.3-1.5-0.8-2.1-1.4c-0.6-0.6-1.1-1.3-1.4-2.1c-0.4-0.8-0.5-1.7-0.5-2.7c0-0.9,0.2-1.8,0.5-2.6
+                               c0.4-0.8,0.8-1.5,1.4-2.1c0.6-0.6,1.3-1,2.1-1.4C176.6,21,177.5,20.8,178.4,20.8z M178.4,22c-0.6,0-1.1,0.1-1.6,0.4
+                               c-0.5,0.3-0.9,0.6-1.3,1.1c-0.3,0.5-0.6,1-0.8,1.7c-0.2,0.7-0.3,1.4-0.3,2.2c0,0.8,0.1,1.6,0.3,2.3c0.2,0.7,0.5,1.3,0.8,1.7
+                               c0.3,0.5,0.8,0.8,1.2,1.1c0.5,0.3,1,0.4,1.6,0.4c0.6,0,1.2-0.1,1.7-0.4c0.5-0.3,0.9-0.6,1.3-1.1c0.4-0.5,0.6-1.1,0.8-1.7
+                               c0.2-0.7,0.3-1.4,0.3-2.2c0-0.8-0.1-1.5-0.3-2.2c-0.2-0.7-0.5-1.2-0.8-1.7c-0.4-0.5-0.8-0.8-1.3-1.1C179.5,22.1,179,22,178.4,22z
+                               "/>
+                       <path class="st4" d="M189.2,30.1c0,0.6,0,1.1,0.1,1.5c0,0.4,0.1,0.7,0.3,0.9c0.2,0.2,0.4,0.4,0.7,0.4c0.3,0.1,0.7,0.1,1.1,0.1
+                               v0.8h-6.7V33c0.5,0,0.9-0.1,1.2-0.2c0.3-0.1,0.5-0.2,0.7-0.4c0.2-0.2,0.3-0.5,0.3-0.8c0.1-0.3,0.1-0.8,0.1-1.4V19.8
+                               c0-0.9,0-1.6,0-2.2c0-0.6-0.1-1-0.1-1.2c-0.1-0.4-0.3-0.6-0.6-0.7c-0.3-0.1-0.8-0.2-1.6-0.2v-0.8l4.6-0.9V30.1z"/>
+                       <path class="st4" d="M195.1,22.8L195.1,22.8c0.6-0.7,1.2-1.2,1.8-1.5c0.6-0.3,1.3-0.5,2.2-0.5c0.9,0,1.7,0.2,2.4,0.5
+                               s1.4,0.8,2,1.4c0.6,0.6,1,1.3,1.3,2.1c0.3,0.8,0.5,1.7,0.5,2.6c0,1-0.2,1.8-0.5,2.6c-0.3,0.8-0.8,1.5-1.3,2.1
+                               c-0.6,0.6-1.2,1.1-2,1.4c-0.8,0.3-1.6,0.5-2.5,0.5c-0.9,0-1.8-0.2-2.6-0.5c-0.8-0.3-1.5-0.8-2-1.4l-1.1,1.6h-0.5V19.3
+                               c0-1.6-0.1-2.7-0.3-3.1c0-0.1-0.1-0.2-0.2-0.3c-0.1-0.1-0.2-0.1-0.3-0.2c-0.1-0.1-0.3-0.1-0.5-0.2c-0.2,0-0.5-0.1-0.9-0.1v-0.6
+                               l4.5-1V22.8z M195.2,28.8c0,0.6,0.1,1.2,0.3,1.7c0.2,0.5,0.4,0.9,0.7,1.3c0.3,0.4,0.7,0.6,1.1,0.9c0.4,0.2,0.9,0.3,1.4,0.3
+                               c0.6,0,1.1-0.1,1.5-0.4c0.5-0.3,0.9-0.6,1.2-1.1c0.3-0.5,0.6-1,0.8-1.7c0.2-0.7,0.3-1.4,0.3-2.2c0-0.8-0.1-1.6-0.3-2.3
+                               c-0.2-0.7-0.5-1.3-0.8-1.8c-0.3-0.5-0.7-0.9-1.2-1.1c-0.5-0.3-1-0.4-1.6-0.4c-0.7,0-1.2,0.2-1.8,0.5c-0.5,0.3-0.9,0.8-1.2,1.3
+                               c-0.4,0.7-0.5,1.7-0.5,2.9V28.8z"/>
+                       <path class="st4" d="M212.6,20.8c0.9,0,1.8,0.2,2.6,0.5c0.8,0.3,1.5,0.8,2.2,1.4c0.6,0.6,1.1,1.3,1.5,2.1
+                               c0.4,0.8,0.5,1.7,0.5,2.6c0,1-0.2,1.9-0.5,2.7c-0.4,0.8-0.9,1.5-1.5,2.1c-0.6,0.6-1.3,1.1-2.2,1.4c-0.8,0.3-1.7,0.5-2.6,0.5
+                               c-0.9,0-1.8-0.2-2.6-0.5c-0.8-0.3-1.5-0.8-2.1-1.4c-0.6-0.6-1.1-1.3-1.4-2.1c-0.4-0.8-0.5-1.7-0.5-2.7c0-0.9,0.2-1.8,0.5-2.6
+                               c0.4-0.8,0.8-1.5,1.4-2.1c0.6-0.6,1.3-1,2.1-1.4C210.9,21,211.7,20.8,212.6,20.8z M212.6,22c-0.6,0-1.1,0.1-1.6,0.4
+                               c-0.5,0.3-0.9,0.6-1.3,1.1c-0.3,0.5-0.6,1-0.8,1.7c-0.2,0.7-0.3,1.4-0.3,2.2c0,0.8,0.1,1.6,0.3,2.3c0.2,0.7,0.5,1.3,0.8,1.7
+                               c0.3,0.5,0.8,0.8,1.2,1.1c0.5,0.3,1,0.4,1.6,0.4c0.6,0,1.2-0.1,1.7-0.4c0.5-0.3,0.9-0.6,1.3-1.1c0.4-0.5,0.6-1.1,0.8-1.7
+                               c0.2-0.7,0.3-1.4,0.3-2.2c0-0.8-0.1-1.5-0.3-2.2c-0.2-0.7-0.5-1.2-0.8-1.7c-0.4-0.5-0.8-0.8-1.3-1.1
+                               C213.8,22.1,213.3,22,212.6,22z"/>
+                       <path class="st4" d="M227.5,23.9c0.4-0.5,0.6-0.9,0.6-1.2c0-0.5-0.5-0.8-1.4-0.8V21h5.3v0.8c-0.3,0-0.6,0-0.8,0.1
+                               c-0.2,0.1-0.5,0.2-0.7,0.3c-0.2,0.1-0.5,0.3-0.7,0.6c-0.2,0.2-0.5,0.6-0.8,0.9l-2.5,3.2l3.2,4.2c0.5,0.7,1,1.1,1.4,1.4
+                               c0.4,0.3,0.9,0.4,1.4,0.4v0.8H226V33c0.6,0,1,0,1.2-0.1c0.2-0.1,0.3-0.3,0.3-0.5c0-0.1-0.1-0.3-0.2-0.5c-0.1-0.2-0.4-0.5-0.7-1
+                               l-1.7-2.2l-2.1,2.6c-0.2,0.3-0.4,0.6-0.4,0.9c0,0.2,0.1,0.4,0.3,0.6c0.2,0.2,0.5,0.2,0.9,0.2v0.8h-5.5V33c0.4,0,0.7,0,1-0.1
+                               c0.3-0.1,0.6-0.2,0.8-0.3c0.3-0.2,0.5-0.4,0.8-0.7c0.3-0.3,0.6-0.7,1-1.1l2.5-3l-3.2-4.6c-0.4-0.5-0.7-0.9-1-1.1
+                               c-0.3-0.2-0.7-0.3-1.2-0.3V21h5.9v0.8c-0.4,0-0.7,0.1-0.9,0.2c-0.2,0.1-0.3,0.2-0.3,0.4c0,0.2,0.2,0.6,0.5,1l1.7,2.5L227.5,23.9z
+                               "/>
+               </g>
+       </g>
+</g>
+</svg>
diff --git a/public/themes/toolbox/style.css b/public/themes/toolbox/style.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/public/themes/ysl/logo-email.png b/public/themes/ysl/logo-email.png
new file mode 100644 (file)
index 0000000..d4acb5d
Binary files /dev/null and b/public/themes/ysl/logo-email.png differ
diff --git a/public/themes/ysl/logo-light.svg b/public/themes/ysl/logo-light.svg
new file mode 100644 (file)
index 0000000..cda21a7
--- /dev/null
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 183.81 18"><path d="M9.35,8C5,6.86,4.24,6.69,4.24,5.38s1.4-1.95,2.59-1.95c1.8,0,3.27.53,3.4,2.59h3.66c0-4-3.3-5.53-6.89-5.53C3.89.49.58,2.18.58,5.69c0,3.23,2.58,4.21,5.13,4.89s5.1,1,5.1,2.84-2,2.14-3.34,2.14c-2,0-3.81-.89-3.81-3.18H0c-.06,4.22,3.52,6.11,7.31,6.11,4.67,0,7.14-2.36,7.14-5.52C14.45,9.08,10.61,8.29,9.35,8Z" transform="translate(0 -0.49)"/><path d="M32.47.89h3.77v17.2H32.47Z" transform="translate(0 -0.49)"/><path d="M50.05,12.42h0L42.83.89H39.08V18.07h3.53V6.57h.06l7.15,11.5h3.77v-14h5v14h3.78v-14h5.16V.89H50.05Z" transform="translate(0 -0.49)"/><path d="M20.91.89,14.38,18.07h3.84l1.34-3.83H26l1.3,3.83H31.2L24.79.89Zm-.36,10.54,2.23-6.31h.06L25,11.43Z" transform="translate(0 -0.49)"/><path d="M144,10.69h8.33V7.75H144V4.06H153V.89H140.19V18.07h13V14.9H144Z" transform="translate(0 -0.49)"/><path d="M166.38.89V12.42h0L159.16.89h-3.74V18.07H159V6.57H159l7.14,11.5h3.78v-14h5v14h3.77v-14h5.15V.89Z" transform="translate(0 -0.49)"/><path d="M134.74,10V9.94a4.23,4.23,0,0,0,2.72-4.31,4.72,4.72,0,0,0-5-4.74h-9.26V18.07h3.77V11.36h3.78c1.9,0,2.59.79,2.87,2.59a18.14,18.14,0,0,0,.6,4.12H138c-.68-1-.65-3-.72-4.06C137.13,12.28,136.6,10.48,134.74,10Zm-3.65-1.33H127V3.83h4.13c1.69,0,2.6.72,2.6,2.38S132.76,8.66,131.09,8.66Z" transform="translate(0 -0.49)"/><path d="M116.62,11.57c0,2.55-.86,3.73-3.55,3.73-3.06,0-3.53-1.85-3.53-3.73V.89h-3.78V11.57c0,4.67,2.69,6.9,7.32,6.9s7.33-2.26,7.33-6.9V.89h-3.77V11.57Z" transform="translate(0 -0.49)"/><path d="M94.87.89,88.34,18.07h3.83l1.34-3.83h6.43l1.29,3.83h3.92L98.74.89ZM94.5,11.43l2.24-6.31h.06L99,11.43Z" transform="translate(0 -0.49)"/><path d="M79,.89H75.18V18.07H87.33V14.9H79Z" transform="translate(0 -0.49)"/></svg>
\ No newline at end of file
diff --git a/public/themes/ysl/logo.svg b/public/themes/ysl/logo.svg
new file mode 100644 (file)
index 0000000..fa80c97
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: $$$/GeneralStr/196=Adobe Illustrator 27.6.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 183.8 18" style="enable-background:new 0 0 183.8 18;" xml:space="preserve">
+<style type="text/css">
+       .st0{fill:#FFFFFF;}
+</style>
+<path class="st0" d="M9.4,7.5C5,6.4,4.2,6.2,4.2,4.9s1.4-1.9,2.6-1.9c1.8,0,3.3,0.5,3.4,2.6h3.7c0-4-3.3-5.5-6.9-5.5
+       C3.9,0,0.6,1.7,0.6,5.2c0,3.2,2.6,4.2,5.1,4.9s5.1,1,5.1,2.8s-2,2.1-3.3,2.1c-2,0-3.8-0.9-3.8-3.2H0C-0.1,16.1,3.5,18,7.3,18
+       c4.7,0,7.1-2.4,7.1-5.5C14.5,8.6,10.6,7.8,9.4,7.5z"/>
+<path class="st0" d="M32.5,0.4h3.8v17.2h-3.8V0.4z"/>
+<path class="st0" d="M50.1,11.9L50.1,11.9L42.8,0.4h-3.8v17.2h3.5V6.1h0.1l7.1,11.5h3.8v-14h5v14h3.8v-14h5.2V0.4H50.1V11.9z"/>
+<path class="st0" d="M20.9,0.4l-6.5,17.2h3.8l1.3-3.8H26l1.3,3.8h3.9L24.8,0.4H20.9z M20.6,10.9l2.2-6.3h0.1l2.2,6.3H20.6z"/>
+<path class="st0" d="M144,10.2h8.3V7.3H144V3.6h9V0.4h-12.8v17.2h13v-3.2H144V10.2z"/>
+<path class="st0" d="M166.4,0.4v11.5l0,0l-7.2-11.5h-3.7v17.2h3.6V6.1l0,0l7.1,11.5h3.8v-14h5v14h3.8v-14h5.1V0.4H166.4z"/>
+<path class="st0" d="M134.7,9.5L134.7,9.5c1.8-0.7,2.9-2.5,2.7-4.4c0-2.6-2.1-4.7-4.7-4.7c-0.1,0-0.2,0-0.3,0h-9.3v17.2h3.8v-6.7
+       h3.8c1.9,0,2.6,0.8,2.9,2.6c0,1.4,0.2,2.8,0.6,4.1h3.8c-0.7-1-0.6-3-0.7-4.1C137.1,11.8,136.6,10,134.7,9.5z M131.1,8.2H127V3.3h4.1
+       c1.7,0,2.6,0.7,2.6,2.4S132.8,8.2,131.1,8.2L131.1,8.2z"/>
+<path class="st0" d="M116.6,11.1c0,2.6-0.9,3.7-3.6,3.7c-3.1,0-3.5-1.9-3.5-3.7V0.4h-3.8v10.7c0,4.7,2.7,6.9,7.3,6.9
+       s7.3-2.3,7.3-6.9V0.4h-3.8L116.6,11.1L116.6,11.1z"/>
+<path class="st0" d="M94.9,0.4l-6.5,17.2h3.8l1.3-3.8h6.4l1.3,3.8h3.9L98.7,0.4H94.9z M94.5,10.9l2.2-6.3h0.1l2.2,6.3H94.5z"/>
+<path class="st0" d="M79,0.4h-3.8v17.2h12.2v-3.2H79V0.4z"/>
+</svg>
diff --git a/public/themes/ysl/style.css b/public/themes/ysl/style.css
new file mode 100644 (file)
index 0000000..8c1471d
--- /dev/null
@@ -0,0 +1,3 @@
+body {
+    filter: grayscale(1);
+}
index 4128ce265691aee8409e18892f166842172a08a4..df5880d835ec95711134065df06e3060dcfac359 100644 (file)
@@ -3,17 +3,21 @@
 @section('content')
     <div class="row justify-content-center">
         <div class="col-12 col-md-8 col-lg-4">
-            <h3 class="text-center mb-4"><img src="images/logo-light.svg" alt="Logo Fluidbook Toolbox"></h3>
+            <h3 class="text-center mb-4"><img src="/themes/{{env('THEME')}}/logo-light.svg" alt="{{env('APP_NAME')}}"></h3>
             <div class="card">
                 <div class="card-body">
-                    <form class="col-md-12 p-t-10" role="form" method="POST" action="{{ route('backpack.auth.login') }}">
+                    <form class="col-md-12 p-t-10" role="form" method="POST"
+                          action="{{ route('backpack.auth.login') }}">
                         {!! csrf_field() !!}
 
                         <div class="form-group">
-                            <label class="control-label" for="{{ $username }}">{{ config('backpack.base.authentication_column_name') }}</label>
+                            <label class="control-label"
+                                   for="{{ $username }}">{{ config('backpack.base.authentication_column_name') }}</label>
 
                             <div>
-                                <input type="text" class="form-control{{ $errors->has($username) ? ' is-invalid' : '' }}" name="{{ $username }}" value="{{ old($username) }}" id="{{ $username }}">
+                                <input type="text"
+                                       class="form-control{{ $errors->has($username) ? ' is-invalid' : '' }}"
+                                       name="{{ $username }}" value="{{ old($username) }}" id="{{ $username }}">
 
                                 @if ($errors->has($username))
                                     <span class="invalid-feedback">
@@ -27,7 +31,9 @@
                             <label class="control-label" for="password">{{ trans('backpack::base.password') }}</label>
 
                             <div>
-                                <input type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" id="password">
+                                <input type="password"
+                                       class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}"
+                                       name="password" id="password">
 
                                 @if ($errors->has('password'))
                                     <span class="invalid-feedback">
@@ -41,7 +47,8 @@
                             <div>
                                 <div class="checkbox">
                                     <label>
-                                        <input type="checkbox" name="remember"> {{ trans('backpack::base.remember_me') }}
+                                        <input type="checkbox"
+                                               name="remember"> {{ trans('backpack::base.remember_me') }}
                                     </label>
                                 </div>
                             </div>
                 </div>
             </div>
             @if (backpack_users_have_email())
-                <div class="text-center"><a href="{{ route('backpack.auth.password.reset') }}">{{ trans('backpack::base.forgot_your_password') }}</a></div>
+                <div class="text-center"><a
+                        href="{{ route('backpack.auth.password.reset') }}">{{ trans('backpack::base.forgot_your_password') }}</a>
+                </div>
             @endif
             @if (config('backpack.base.registration_open'))
-                <div class="text-center"><a href="{{ route('backpack.auth.register') }}">{{ trans('backpack::base.register') }}</a></div>
+                <div class="text-center"><a
+                        href="{{ route('backpack.auth.register') }}">{{ trans('backpack::base.register') }}</a></div>
             @endif
         </div>
     </div>
index b9e975c5e4e8abca14fce8841f4f802c1ceeebe2..8c0422c3514ed5b17df358b8d754ff3934dabcf4 100644 (file)
@@ -1,33 +1,41 @@
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
-    @if (config('backpack.base.meta_robots_content'))<meta name="robots" content="{{ config('backpack.base.meta_robots_content', 'noindex, nofollow') }}"> @endif
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
+@if (config('backpack.base.meta_robots_content'))
+    <meta name="robots" content="{{ config('backpack.base.meta_robots_content', 'noindex, nofollow') }}">
+@endif
 
-    <meta name="csrf-token" content="{{ csrf_token() }}" /> {{-- Encrypted CSRF token for Laravel, in order for Ajax requests to work --}}
-    <title>{{ isset($title) ? $title.' :: '.config('backpack.base.project_name') : config('backpack.base.project_name') }}</title>
-    <style>.app-header{background-color: {{env('HEADER_COLOR')}} !important;}</style>
+<meta name="csrf-token"
+      content="{{ csrf_token() }}"/> {{-- Encrypted CSRF token for Laravel, in order for Ajax requests to work --}}
+<title>{{ isset($title) ? $title.' :: '.config('backpack.base.project_name') : config('backpack.base.project_name') }}</title>
+<style>.app-header {
+        background-color: {{config('theme.header_color')}}      !important;
+    }</style>
 
-    @yield('before_styles')
-    @stack('before_styles')
+@yield('before_styles')
+@stack('before_styles')
 
-    @foreach(config('backpack.base.styles', []) as $path)
-        <link rel="stylesheet" type="text/css" href="{{ asset($path).'?v='.config('backpack.base.cachebusting_string') }}">
-    @endforeach
+@foreach(config('backpack.base.styles', []) as $path)
+    <link rel="stylesheet" type="text/css"
+          href="{{ asset($path).'?v='.config('backpack.base.cachebusting_string') }}">
+@endforeach
 
-    @foreach(config('backpack.base.mix_styles', []) as $path => $manifest)
-        <link rel="stylesheet" type="text/css" href="{{ mix($path, $manifest) }}">
-    @endforeach
+@foreach(config('backpack.base.mix_styles', []) as $path => $manifest)
+    <link rel="stylesheet" type="text/css" href="{{ mix($path, $manifest) }}">
+@endforeach
 
-    @if(!empty(config('backpack.base.vite_styles', [])))
-        @vite(config('backpack.base.vite_styles', []))
-    @endif
+@if(!empty(config('backpack.base.vite_styles', [])))
+    @vite(config('backpack.base.vite_styles', []))
+@endif
 
-    @yield('after_styles')
-    @stack('after_styles')
+@yield('after_styles')
+@stack('after_styles')
 
-    {{-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --}}
+<link rel="stylesheet" type="text/css" href="/themes/{{ config('theme.name') }}/style.css">
+
+{{-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --}}
     {{-- WARNING: Respond.js doesn't work if you view the page via file:// --}}
     <!--[if lt IE 9]>
-    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
-    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
-    <![endif]-->
+<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+<![endif]-->
index b5adaa77ee8fd6637f7bb0894909418bc5be25d8..e5122faf0aa276c4e5b890954823d96771652c69 100644 (file)
@@ -2,7 +2,7 @@
     {{-- Header --}}
     @slot('header')
         @component('mail::header', ['url' => config('app.url')])
-            <img src="{{url('/images/logo-email.png')}}" height="47" width="300" alt="{{ config('app.name') }}"/>
+            <img src="{{url('/themes/'.env('THEME').'/logo-email.png')}}" height="47" width="300" alt="{{ config('app.name') }}"/>
         @endcomponent
     @endslot