diff --git a/LICENSE b/LICENSE index 4695944..d0871e5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ MIT License Copyright (c) 2015-2020 Scott Bedard -Copyright (c) 2020 Luke Towers +Copyright (c) 2020 October CMS Copyright (c) 2021 Winter CMS Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/Plugin.php b/Plugin.php index eff76b7..f7ac935 100644 --- a/Plugin.php +++ b/Plugin.php @@ -1,17 +1,30 @@ 'Winter CMS', 'icon' => 'icon-bug', 'homepage' => 'https://github.com/wintercms/wn-debugbar-plugin', - 'replaces' => ['RainLab.Debugbar' => '<= 3.1.1'], + 'replaces' => ['RainLab.Debugbar' => '<= 3.3.2'], ]; } /** - * Register service provider, Twig extensions, and alias facade. + * Registers the plugin + */ + public function register() + { + // Provide the winter.debugbar config under the debugbar namespace + Config::registerNamespaceAlias('winter.debugbar', 'debugbar'); + + // Register the service provider + $this->app->register(\Winter\Debugbar\Classes\ServiceProvider::class); + + // Replace the LaravelDebugbar with the WinterDebugbar + $this->app->singleton(LaravelDebugbar::class, function ($app) { + $debugbar = new WinterDebugbar($app); + + if ($app->bound(SessionManager::class)) { + $sessionManager = $app->make(SessionManager::class); + $httpDriver = new SymfonyHttpDriver($sessionManager); + $debugbar->setHttpDriver($httpDriver); + } + + return $debugbar; + }); + + // Register alias + $alias = AliasLoader::getInstance(); + $alias->alias('Debugbar', Debugbar::class); + + // Register the asset bundle + CombineAssets::registerCallback(function ($combiner) { + $combiner->registerBundle('$/winter/debugbar/assets/less/debugbar.less'); + }); + } + + /** + * Boots service provider, Twig extensions, and alias facade, and injects collectors and resources. */ public function boot() { + // Disabled by config, halt + if (Config::get('debugbar.enabled') === false) { + return; + } + // Register middleware if (Config::get('app.debugAjax', false)) { - $this->app['Illuminate\Contracts\Http\Kernel']->pushMiddleware('\Winter\Debugbar\Middleware\InterpretsAjaxExceptions'); + $this->app[HttpKernelContract::class]->pushMiddleware(\Winter\Debugbar\Middleware\InterpretsAjaxExceptions::class); } - // Add styling - $addResources = function ($controller) { - $debugBar = $this->app->make('Barryvdh\Debugbar\LaravelDebugbar'); - if ($debugBar->isEnabled()) { - $controller->addCss(url(Config::get('cms.pluginsPath', '/plugins') . '/winter/debugbar/assets/css/debugbar.css')); - } - }; - Event::listen('backend.page.beforeDisplay', $addResources, PHP_INT_MAX); - Event::listen('cms.page.beforeDisplay', $addResources, PHP_INT_MAX); + // Register custom collectors + if ($this->app->runningInBackend()) { + $this->addBackendCollectors(); + } else { + $this->registerCmsTwigExtensions(); + $this->addFrontendCollectors(); + } - Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) { - // Twig extensions - $twig = $controller->getTwig(); - if (!$twig->hasExtension(\Winter\DebugBar\Twig\Extension\Debug::class)) { - $twig->addExtension(new \Winter\DebugBar\Twig\Extension\Debug($this->app)); - $twig->addExtension(new \Winter\DebugBar\Twig\Extension\Stopwatch($this->app)); - } - }); + $this->addGlobalCollectors(); } /** - * Register the plugin + * Add globally available collectors */ - public function register() + public function addGlobalCollectors() { - // Configure the debugbar - Config::set('debugbar', Config::get('winter.debugbar::config')); + if (Config::get('debugbar.collectors.models', true)) { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $debugBar */ + $debugBar = $this->app->make(\Barryvdh\Debugbar\LaravelDebugbar::class); + $modelsCollector = $this->app->make(ModelsCollector::class); + $debugBar->addCollector($modelsCollector); + } + } - // Register the debugbar serviceprovider - $this->app->register(\Winter\Debugbar\Classes\ServiceProvider::class); + /** + * Add collectors used by the frontend only + */ + public function addFrontendCollectors() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $debugBar */ + $debugBar = $this->app->make(\Barryvdh\Debugbar\LaravelDebugbar::class); - // Register alias - $alias = AliasLoader::getInstance(); - $alias->alias('Debugbar', '\Barryvdh\Debugbar\Facade'); + if (Config::get('debugbar.collectors.cms', true)) { + // Disable route collector as the CMS collector presents this info instead + Config::set('debugbar.collectors.route', false); - // Register asset bundles - CombineAssets::registerCallback(function ($combiner) { - $combiner->registerBundle('$/winter/debugbar/assets/css/debugbar.less'); + Event::listen('cms.page.beforeDisplay', function (CmsController $controller, $url, ?Page $page) use ($debugBar) { + if ($page) { + $collector = new CmsCollector($controller, $url, $page); + if (!$debugBar->hasCollector($collector->getName())) { + $debugBar->addCollector($collector); + } + } + }); + } + + if (Config::get('debugbar.collectors.components', true)) { + Event::listen('cms.page.initComponents', function (CmsController $controller, ?Page $page, ?Layout $layout) use ($debugBar) { + if ($page) { + $collector = new ComponentsCollector($controller, $page, $layout); + if (!$debugBar->hasCollector($collector->getName())) { + $debugBar->addCollector($collector); + } + } + }); + } + } + + /** + * Add collectors used by the Backend only + */ + public function addBackendCollectors() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $debugBar */ + $debugBar = $this->app->make(\Barryvdh\Debugbar\LaravelDebugbar::class); + + if (Config::get('debugbar.collectors.backend', true)) { + Event::listen('backend.page.beforeDisplay', function (BackendController $controller, $action, array $params) use ($debugBar) { + $collector = new BackendCollector($controller, $action, $params); + if (!$debugBar->hasCollector($collector->getName())) { + $debugBar->addCollector($collector); + } + }); + } + } + + /** + * Registers extensions in the CMS Twig environment + */ + protected function registerCmsTwigExtensions() + { + $profile = new Profile; + $debugBar = $this->app->make(\Barryvdh\Debugbar\LaravelDebugbar::class); + + Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) use ($profile, $debugBar) { + $twig = $controller->getTwig(); + if (!$twig->hasExtension(\Winter\DebugBar\Twig\Extension\Debug::class)) { + $twig->addExtension(new \Winter\DebugBar\Twig\Extension\Debug($this->app)); + $twig->addExtension(new \Winter\DebugBar\Twig\Extension\Stopwatch($this->app)); + } + + if (!$twig->hasExtension(ProfilerExtension::class)) { + $twig->addExtension(new ProfilerExtension($profile)); + } }); + + if (class_exists(\DebugBar\Bridge\NamespacedTwigProfileCollector::class)) { + $debugBar->addCollector(new \DebugBar\Bridge\NamespacedTwigProfileCollector($profile)); + } else { + $debugBar->addCollector(new \DebugBar\Bridge\TwigProfileCollector($profile)); + } } /** diff --git a/README.md b/README.md index 64ec9ee..fb36d09 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,24 @@ Easily see what's going on under the hood of your Winter CMS application. # Installation -To install from the [Marketplace](https://github.com/wintercms/wn-debugbar-plugin), click on the "Add to Project" button and then select the project you wish to add it to and pay for the plugin. Once the plugin has been added to the project, go to the backend and check for updates to pull in the plugin. +To install with Composer, run the following command from your project folder: -To install from the backend, go to **Settings -> Updates & Plugins -> Install Plugins** and then search for `Winter.DebugBar`. - -To install from [the repository](https://github.com/wintercms/wn-debugbar-plugin), clone it into **plugins/winter/debugbar** and then run `composer update` from your project root in order to pull in the dependencies. - -To install it with Composer, run `composer require winter/wn-debugbar-plugin` from your project root. +```bash +composer require winter/wn-debugbar-plugin +``` ### Usage -Set `debug` to `true` in `config/app.php`, and the debugbar should appear on your site to all authenticated backend users with the `winter.debugbar.access_debugbar` permission. If you would like to make the debugbar accessible to all users regardless of authentication & permissions, then set `allow_public_access` to `true` in `config/winter/debugbar/config.php`. +Set `debug` to `true` in `config/app.php` and the debugbar should appear on your site to all authenticated backend users with the `winter.debugbar.access_debugbar` permission. + +If you would like to make the debug bar accessible to all users, regardless of authentication and permissions, set `allow_public_access` to `true` in the configuration file. See [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) for more usage instructions and documentation. -To include exceptions in the response header of ajax calls set `debugAjax` to `true` in `config/app.php`. +### Configuration + +All configuration for the plugin is found in the `plugins/winter/debugbar` directory. To override any of these settings, create an override file called `config/winter/debugbar/config.php` in your local system. + +To include exceptions in the response header of AJAX calls, set `debugAjax` to `true` in `config/app.php`. + +Events are not captured by default since it can slow down the front-end when many events are fired, you may enable it with the `collectors.events` setting. diff --git a/assets/css/debugbar.css b/assets/css/debugbar.css index e9c8e7a..ace6910 100755 --- a/assets/css/debugbar.css +++ b/assets/css/debugbar.css @@ -1,544 +1,194 @@ -div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a {line-height:1} -.phpdebugbar {} -.phpdebugbar dl.phpdebugbar-widgets-kvlist dt {width:350px} -.phpdebugbar dl.phpdebugbar-widgets-kvlist dd {margin-left:360px} -.phpdebugbar, -.phpdebugbar-openhandler {} -.phpdebugbar p, -.phpdebugbar-openhandler p {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1__qem;-webkit-margin-start:0;-webkit-margin-end:0} -.phpdebugbar div, -.phpdebugbar-openhandler div {display:block} -.phpdebugbar layer, -.phpdebugbar-openhandler layer {display:block} -.phpdebugbar article, -.phpdebugbar-openhandler article, -.phpdebugbar aside, -.phpdebugbar-openhandler aside, -.phpdebugbar footer, -.phpdebugbar-openhandler footer, -.phpdebugbar header, -.phpdebugbar-openhandler header, -.phpdebugbar hgroup, -.phpdebugbar-openhandler hgroup, -.phpdebugbar main, -.phpdebugbar-openhandler main, -.phpdebugbar nav, -.phpdebugbar-openhandler nav, -.phpdebugbar section, -.phpdebugbar-openhandler section {display:block} -.phpdebugbar marquee, -.phpdebugbar-openhandler marquee {display:inline-block} -.phpdebugbar address, -.phpdebugbar-openhandler address {display:block} -.phpdebugbar blockquote, -.phpdebugbar-openhandler blockquote {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:40px;-webkit-margin-end:40px} -.phpdebugbar figcaption, -.phpdebugbar-openhandler figcaption {display:block} -.phpdebugbar figure, -.phpdebugbar-openhandler figure {display:block;-webkit-margin-before:1em;-webkit-margin-after:1em;-webkit-margin-start:40px;-webkit-margin-end:40px} -.phpdebugbar q, -.phpdebugbar-openhandler q {display:inline} -.phpdebugbar q:before, -.phpdebugbar-openhandler q:before {content:open-quote} -.phpdebugbar q:after, -.phpdebugbar-openhandler q:after {content:close-quote} -.phpdebugbar center, -.phpdebugbar-openhandler center {display:block;text-align:-webkit-center} -.phpdebugbar hr, -.phpdebugbar-openhandler hr {display:block;-webkit-margin-before:0.5em;-webkit-margin-after:0.5em;-webkit-margin-start:auto;-webkit-margin-end:auto;border-style:inset;border-width:1px} -.phpdebugbar map, -.phpdebugbar-openhandler map {display:inline} -.phpdebugbar video, -.phpdebugbar-openhandler video {object-fit:contain} -.phpdebugbar h1, -.phpdebugbar-openhandler h1 {display:block;font-size:2em;-webkit-margin-before:0.67__qem;-webkit-margin-after:0.67em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold} -.phpdebugbar :-webkit-any(article,aside,nav,section) h1, -.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) h1 {font-size:1.5em;-webkit-margin-before:0.83__qem;-webkit-margin-after:0.83em} -.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1, -.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:1.17em;-webkit-margin-before:1__qem;-webkit-margin-after:1em} -.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1, -.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:1.0em;-webkit-margin-before:1.33__qem;-webkit-margin-after:1.33em} -.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1, -.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:.83em;-webkit-margin-before:1.67__qem;-webkit-margin-after:1.67em} -.phpdebugbar :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1, -.phpdebugbar-openhandler :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 {font-size:.67em;-webkit-margin-before:2.33__qem;-webkit-margin-after:2.33em} -.phpdebugbar h2, -.phpdebugbar-openhandler h2 {display:block;font-size:1.5em;-webkit-margin-before:0.83__qem;-webkit-margin-after:0.83em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold} -.phpdebugbar h3, -.phpdebugbar-openhandler h3 {display:block;font-size:1.17em;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold} -.phpdebugbar h4, -.phpdebugbar-openhandler h4 {display:block;-webkit-margin-before:1.33__qem;-webkit-margin-after:1.33em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold} -.phpdebugbar h5, -.phpdebugbar-openhandler h5 {display:block;font-size:.83em;-webkit-margin-before:1.67__qem;-webkit-margin-after:1.67em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold} -.phpdebugbar h6, -.phpdebugbar-openhandler h6 {display:block;font-size:.67em;-webkit-margin-before:2.33__qem;-webkit-margin-after:2.33em;-webkit-margin-start:0;-webkit-margin-end:0;font-weight:bold} -.phpdebugbar table, -.phpdebugbar-openhandler table {display:table;border-collapse:separate;border-spacing:2px;border-color:gray} -.phpdebugbar thead, -.phpdebugbar-openhandler thead {display:table-header-group;vertical-align:middle;border-color:inherit} -.phpdebugbar tbody, -.phpdebugbar-openhandler tbody {display:table-row-group;vertical-align:middle;border-color:inherit} -.phpdebugbar tfoot, -.phpdebugbar-openhandler tfoot {display:table-footer-group;vertical-align:middle;border-color:inherit} -.phpdebugbar table >tr, -.phpdebugbar-openhandler table >tr {vertical-align:middle} -.phpdebugbar col, -.phpdebugbar-openhandler col {display:table-column} -.phpdebugbar colgroup, -.phpdebugbar-openhandler colgroup {display:table-column-group} -.phpdebugbar tr, -.phpdebugbar-openhandler tr {display:table-row;vertical-align:inherit;border-color:inherit} -.phpdebugbar td, -.phpdebugbar-openhandler td, -.phpdebugbar th, -.phpdebugbar-openhandler th {display:table-cell;vertical-align:inherit} -.phpdebugbar th, -.phpdebugbar-openhandler th {font-weight:bold} -.phpdebugbar caption, -.phpdebugbar-openhandler caption {display:table-caption;text-align:-webkit-center} -.phpdebugbar ul, -.phpdebugbar-openhandler ul, -.phpdebugbar ol, -.phpdebugbar-openhandler ol, -.phpdebugbar dl, -.phpdebugbar-openhandler dl {font-size:1em} -.phpdebugbar ul, -.phpdebugbar-openhandler ul, -.phpdebugbar menu, -.phpdebugbar-openhandler menu, -.phpdebugbar dir, -.phpdebugbar-openhandler dir {display:block;list-style-type:disc;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:40px} -.phpdebugbar ol, -.phpdebugbar-openhandler ol {display:block;list-style-type:decimal;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:40px} -.phpdebugbar li, -.phpdebugbar-openhandler li {display:list-item;text-align:-webkit-match-parent} -.phpdebugbar ul ul, -.phpdebugbar-openhandler ul ul, -.phpdebugbar ol ul, -.phpdebugbar-openhandler ol ul {list-style-type:circle} -.phpdebugbar ol ol ul, -.phpdebugbar-openhandler ol ol ul, -.phpdebugbar ol ul ul, -.phpdebugbar-openhandler ol ul ul, -.phpdebugbar ul ol ul, -.phpdebugbar-openhandler ul ol ul, -.phpdebugbar ul ul ul, -.phpdebugbar-openhandler ul ul ul {list-style-type:square} -.phpdebugbar dd, -.phpdebugbar-openhandler dd {display:block;-webkit-margin-start:40px} -.phpdebugbar dl, -.phpdebugbar-openhandler dl {display:block;-webkit-margin-before:1__qem;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0} -.phpdebugbar dt, -.phpdebugbar-openhandler dt {display:block} -.phpdebugbar ol ul, -.phpdebugbar-openhandler ol ul, -.phpdebugbar ul ol, -.phpdebugbar-openhandler ul ol, -.phpdebugbar ul ul, -.phpdebugbar-openhandler ul ul, -.phpdebugbar ol ol, -.phpdebugbar-openhandler ol ol {-webkit-margin-before:0;-webkit-margin-after:0} -.phpdebugbar form, -.phpdebugbar-openhandler form {display:block;margin-top:0__qem} -.phpdebugbar label, -.phpdebugbar-openhandler label {cursor:default} -.phpdebugbar legend, -.phpdebugbar-openhandler legend {display:block;-webkit-padding-start:2px;-webkit-padding-end:2px;border:none} -.phpdebugbar fieldset, -.phpdebugbar-openhandler fieldset {display:block;-webkit-margin-start:2px;-webkit-margin-end:2px;-webkit-padding-before:0.35em;-webkit-padding-start:0.75em;-webkit-padding-end:0.75em;-webkit-padding-after:0.625em;border:2px groove ThreeDFace;min-width:-webkit-min-content} -.phpdebugbar button, -.phpdebugbar-openhandler button {-webkit-appearance:button} -.phpdebugbar input, -.phpdebugbar-openhandler input, -.phpdebugbar textarea, -.phpdebugbar-openhandler textarea, -.phpdebugbar keygen, -.phpdebugbar-openhandler keygen, -.phpdebugbar select, -.phpdebugbar-openhandler select, -.phpdebugbar button, -.phpdebugbar-openhandler button, -.phpdebugbar meter, -.phpdebugbar-openhandler meter, -.phpdebugbar progress, -.phpdebugbar-openhandler progress {-webkit-writing-mode:horizontal-tb !important} -.phpdebugbar input, -.phpdebugbar-openhandler input, -.phpdebugbar textarea, -.phpdebugbar-openhandler textarea, -.phpdebugbar keygen, -.phpdebugbar-openhandler keygen, -.phpdebugbar select, -.phpdebugbar-openhandler select, -.phpdebugbar button, -.phpdebugbar-openhandler button {margin:0__qem;font:-webkit-small-control;color:initial;letter-spacing:normal;word-spacing:normal;line-height:normal;text-transform:none;text-indent:0;text-shadow:none;display:inline-block;text-align:start;width:initial;height:initial} -.phpdebugbar input[type="hidden"], -.phpdebugbar-openhandler input[type="hidden"] {display:none} -.phpdebugbar input, -.phpdebugbar-openhandler input, -.phpdebugbar input[type="password"], -.phpdebugbar-openhandler input[type="password"], -.phpdebugbar input[type="search"], -.phpdebugbar-openhandler input[type="search"] {-webkit-appearance:textfield;padding:1px;background-color:white;border:2px inset;-webkit-rtl-ordering:logical;-webkit-user-select:text;cursor:auto} -.phpdebugbar input[type="search"], -.phpdebugbar-openhandler input[type="search"] {-webkit-appearance:searchfield;box-sizing:border-box} -.phpdebugbar input::-webkit-textfield-decoration-container, -.phpdebugbar-openhandler input::-webkit-textfield-decoration-container {display:flex;align-items:center;-webkit-user-modify:read-only !important;content:none !important} -.phpdebugbar input[type="search"]::-webkit-textfield-decoration-container, -.phpdebugbar-openhandler input[type="search"]::-webkit-textfield-decoration-container {direction:ltr} -.phpdebugbar input::-webkit-clear-button, -.phpdebugbar-openhandler input::-webkit-clear-button {-webkit-appearance:searchfield-cancel-button;display:inline-block;flex:none;-webkit-user-modify:read-only !important;-webkit-margin-start:2px;opacity:0;pionter-events:none} -.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button, -.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button {opacity:1;pointer-events:auto} -.phpdebugbar input[type="search"]::-webkit-search-cancel-button, -.phpdebugbar-openhandler input[type="search"]::-webkit-search-cancel-button {-webkit-appearance:searchfield-cancel-button;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-margin-start:1px;opacity:0;pointer-events:none} -.phpdebugbar input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button, -.phpdebugbar-openhandler input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button {opacity:1;pointer-events:auto} -.phpdebugbar input[type="search"]::-webkit-search-decoration, -.phpdebugbar-openhandler input[type="search"]::-webkit-search-decoration {-webkit-appearance:searchfield-decoration;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-align-self:flex-start;margin:auto 0} -.phpdebugbar input[type="search"]::-webkit-search-results-decoration, -.phpdebugbar-openhandler input[type="search"]::-webkit-search-results-decoration {-webkit-appearance:searchfield-results-decoration;display:block;flex:none;-webkit-user-modify:read-only !important;-webkit-align-self:flex-start;margin:auto 0} -.phpdebugbar input::-webkit-inner-spin-button, -.phpdebugbar-openhandler input::-webkit-inner-spin-button {-webkit-appearance:inner-spin-button;display:inline-block;cursor:default;flex:none;align-self:stretch;-webkit-user-select:none;-webkit-user-modify:read-only !important;opacity:0;pointer-events:none} -.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button, -.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button {opacity:1;pointer-events:auto} -.phpdebugbar keygen, -.phpdebugbar-openhandler keygen, -.phpdebugbar select, -.phpdebugbar-openhandler select {border-radius:5px} -.phpdebugbar keygen::-webkit-keygen-select, -.phpdebugbar-openhandler keygen::-webkit-keygen-select {margin:0} -.phpdebugbar textarea, -.phpdebugbar-openhandler textarea {-webkit-appearance:textarea;background-color:white;border:1px solid;-webkit-rtl-ordering:logical;-webkit-user-select:text;flex-direction:column;resize:auto;cursor:auto;padding:2px;white-space:pre-wrap;word-wrap:break-word} -.phpdebugbar ::-webkit-input-placeholder, -.phpdebugbar-openhandler ::-webkit-input-placeholder {-webkit-text-security:none;color:darkGray;display:block !important;pointer-events:none !important} -.phpdebugbar input::-webkit-input-placeholder, -.phpdebugbar-openhandler input::-webkit-input-placeholder {white-space:pre;word-wrap:normal;overflow:hidden;-webkit-user-modify:read-only !important} -.phpdebugbar input[type="password"], -.phpdebugbar-openhandler input[type="password"] {-webkit-text-security:disc !important} -.phpdebugbar input[type="hidden"], -.phpdebugbar-openhandler input[type="hidden"], -.phpdebugbar input[type="image"], -.phpdebugbar-openhandler input[type="image"], -.phpdebugbar input[type="file"], -.phpdebugbar-openhandler input[type="file"] {-webkit-appearance:initial;padding:initial;background-color:initial;border:initial} -.phpdebugbar input[type="file"], -.phpdebugbar-openhandler input[type="file"] {align-items:baseline;color:inherit;text-align:start !important} -.phpdebugbar input:-webkit-autofill, -.phpdebugbar-openhandler input:-webkit-autofill, -.phpdebugbar textarea:-webkit-autofill, -.phpdebugbar-openhandler textarea:-webkit-autofill, -.phpdebugbar select:-webkit-autofill, -.phpdebugbar-openhandler select:-webkit-autofill {background-color:#FAFFBD !important;background-image:none !important;color:#000 !important} -.phpdebugbar input[type="radio"], -.phpdebugbar-openhandler input[type="radio"], -.phpdebugbar input[type="checkbox"], -.phpdebugbar-openhandler input[type="checkbox"] {margin:3px 0.5ex;padding:initial;background-color:initial;border:initial} -.phpdebugbar input[type="button"], -.phpdebugbar-openhandler input[type="button"], -.phpdebugbar input[type="submit"], -.phpdebugbar-openhandler input[type="submit"], -.phpdebugbar input[type="reset"], -.phpdebugbar-openhandler input[type="reset"] {-webkit-appearance:push-button;-webkit-user-select:none;white-space:pre} -.phpdebugbar input[type="file"]::-webkit-file-upload-button, -.phpdebugbar-openhandler input[type="file"]::-webkit-file-upload-button {-webkit-appearance:push-button;-webkit-user-modify:read-only !important;white-space:nowrap;margin:0;font-size:inherit} -.phpdebugbar input[type="button"], -.phpdebugbar-openhandler input[type="button"], -.phpdebugbar input[type="submit"], -.phpdebugbar-openhandler input[type="submit"], -.phpdebugbar input[type="reset"], -.phpdebugbar-openhandler input[type="reset"], -.phpdebugbar input[type="file"]::-webkit-file-upload-button, -.phpdebugbar-openhandler input[type="file"]::-webkit-file-upload-button, -.phpdebugbar button, -.phpdebugbar-openhandler button {align-items:flex-start;text-align:center;cursor:default;color:ButtonText;padding:2px 6px 3px 6px;border:2px outset ButtonFace;background-color:ButtonFace;box-sizing:border-box} -.phpdebugbar input[type="range"], -.phpdebugbar-openhandler input[type="range"] {-webkit-appearance:slider-horizontal;padding:initial;border:initial;margin:2px;color:#909090} -.phpdebugbar input[type="range"]::-webkit-slider-container, -.phpdebugbar-openhandler input[type="range"]::-webkit-slider-container, -.phpdebugbar input[type="range"]::-webkit-media-slider-container, -.phpdebugbar-openhandler input[type="range"]::-webkit-media-slider-container {flex:1;box-sizing:border-box;-webkit-user-modify:read-only !important;display:flex;-webkit-align-contents:center} -.phpdebugbar input[type="range"]::-webkit-slider-runnable-track, -.phpdebugbar-openhandler input[type="range"]::-webkit-slider-runnable-track {flex:1;-webkit-align-self:center;box-sizing:border-box;-webkit-user-modify:read-only !important;display:block} -.phpdebugbar input[type="range"]::-webkit-slider-thumb, -.phpdebugbar-openhandler input[type="range"]::-webkit-slider-thumb, -.phpdebugbar input[type="range"]::-webkit-media-slider-thumb, -.phpdebugbar-openhandler input[type="range"]::-webkit-media-slider-thumb {-webkit-appearance:sliderthumb-horizontal;box-sizing:border-box;-webkit-user-modify:read-only !important;display:block} -.phpdebugbar input[type="button"]:disabled, -.phpdebugbar-openhandler input[type="button"]:disabled, -.phpdebugbar input[type="submit"]:disabled, -.phpdebugbar-openhandler input[type="submit"]:disabled, -.phpdebugbar input[type="reset"]:disabled, -.phpdebugbar-openhandler input[type="reset"]:disabled, -.phpdebugbar input[type="file"]:disabled::-webkit-file-upload-button, -.phpdebugbar-openhandler input[type="file"]:disabled::-webkit-file-upload-button, -.phpdebugbar button:disabled, -.phpdebugbar-openhandler button:disabled, -.phpdebugbar select:disabled, -.phpdebugbar-openhandler select:disabled, -.phpdebugbar keygen:disabled, -.phpdebugbar-openhandler keygen:disabled, -.phpdebugbar optgroup:disabled, -.phpdebugbar-openhandler optgroup:disabled, -.phpdebugbar option:disabled, -.phpdebugbar-openhandler option:disabled, -.phpdebugbar select[disabled] >option, -.phpdebugbar-openhandler select[disabled] >option {color:GrayText} -.phpdebugbar input[type="button"]:active, -.phpdebugbar-openhandler input[type="button"]:active, -.phpdebugbar input[type="submit"]:active, -.phpdebugbar-openhandler input[type="submit"]:active, -.phpdebugbar input[type="reset"]:active, -.phpdebugbar-openhandler input[type="reset"]:active, -.phpdebugbar input[type="file"]:active::-webkit-file-upload-button, -.phpdebugbar-openhandler input[type="file"]:active::-webkit-file-upload-button, -.phpdebugbar button:active, -.phpdebugbar-openhandler button:active {border-style:inset} -.phpdebugbar input[type="button"]:active:disabled, -.phpdebugbar-openhandler input[type="button"]:active:disabled, -.phpdebugbar input[type="submit"]:active:disabled, -.phpdebugbar-openhandler input[type="submit"]:active:disabled, -.phpdebugbar input[type="reset"]:active:disabled, -.phpdebugbar-openhandler input[type="reset"]:active:disabled, -.phpdebugbar input[type="file"]:active:disabled::-webkit-file-upload-button, -.phpdebugbar-openhandler input[type="file"]:active:disabled::-webkit-file-upload-button, -.phpdebugbar button:active:disabled, -.phpdebugbar-openhandler button:active:disabled {border-style:outset} -.phpdebugbar option:-internal-spatial-navigation-focus, -.phpdebugbar-openhandler option:-internal-spatial-navigation-focus {outline:black dashed 1px;outline-offset:-1px} -.phpdebugbar datalist, -.phpdebugbar-openhandler datalist {display:none} -.phpdebugbar area, -.phpdebugbar-openhandler area {display:inline} -.phpdebugbar param, -.phpdebugbar-openhandler param {display:none} -.phpdebugbar input[type="checkbox"], -.phpdebugbar-openhandler input[type="checkbox"] {-webkit-appearance:checkbox;box-sizing:border-box} -.phpdebugbar input[type="radio"], -.phpdebugbar-openhandler input[type="radio"] {-webkit-appearance:radio;box-sizing:border-box} -.phpdebugbar input[type="color"], -.phpdebugbar-openhandler input[type="color"] {-webkit-appearance:square-button;width:44px;height:23px;background-color:ButtonFace;border:1px #a9a9a9 solid;padding:1px 2px} -.phpdebugbar input[type="color"]::-webkit-color-swatch-wrapper, -.phpdebugbar-openhandler input[type="color"]::-webkit-color-swatch-wrapper {display:flex;padding:4px 2px;box-sizing:border-box;-webkit-user-modify:read-only !important;width:100%;height:100%} -.phpdebugbar input[type="color"]::-webkit-color-swatch, -.phpdebugbar-openhandler input[type="color"]::-webkit-color-swatch {background-color:#000;border:1px solid #777;flex:1;-webkit-user-modify:read-only !important} -.phpdebugbar input[type="color"][list], -.phpdebugbar-openhandler input[type="color"][list] {-webkit-appearance:menulist;width:88px;height:23px} -.phpdebugbar input[type="color"][list]::-webkit-color-swatch-wrapper, -.phpdebugbar-openhandler input[type="color"][list]::-webkit-color-swatch-wrapper {padding-left:8px;padding-right:24px} -.phpdebugbar input[type="color"][list]::-webkit-color-swatch, -.phpdebugbar-openhandler input[type="color"][list]::-webkit-color-swatch {border-color:#000} -.phpdebugbar input::-webkit-calendar-picker-indicator, -.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator {display:inline-block;width:0.66em;height:0.66em;padding:0.17em 0.34em;-webkit-user-modify:read-only !important;opacity:0;pointer-events:none} -.phpdebugbar input::-webkit-calendar-picker-indicator:hover, -.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator:hover {background-color:#eee} -.phpdebugbar input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator, -.phpdebugbar-openhandler input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator, -.phpdebugbar input::-webkit-calendar-picker-indicator:focus, -.phpdebugbar-openhandler input::-webkit-calendar-picker-indicator:focus {opacity:1;pointer-events:auto} -.phpdebugbar input[type="date"]:disabled::-webkit-clear-button, -.phpdebugbar-openhandler input[type="date"]:disabled::-webkit-clear-button, -.phpdebugbar input[type="date"]:disabled::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="date"]:disabled::-webkit-inner-spin-button, -.phpdebugbar input[type="datetime-local"]:disabled::-webkit-clear-button, -.phpdebugbar-openhandler input[type="datetime-local"]:disabled::-webkit-clear-button, -.phpdebugbar input[type="datetime-local"]:disabled::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="datetime-local"]:disabled::-webkit-inner-spin-button, -.phpdebugbar input[type="month"]:disabled::-webkit-clear-button, -.phpdebugbar-openhandler input[type="month"]:disabled::-webkit-clear-button, -.phpdebugbar input[type="month"]:disabled::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="month"]:disabled::-webkit-inner-spin-button, -.phpdebugbar input[type="week"]:disabled::-webkit-clear-button, -.phpdebugbar-openhandler input[type="week"]:disabled::-webkit-clear-button, -.phpdebugbar input[type="week"]:disabled::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="week"]:disabled::-webkit-inner-spin-button, -.phpdebugbar input:disabled::-webkit-calendar-picker-indicator, -.phpdebugbar-openhandler input:disabled::-webkit-calendar-picker-indicator, -.phpdebugbar input[type="date"][readonly]::-webkit-clear-button, -.phpdebugbar-openhandler input[type="date"][readonly]::-webkit-clear-button, -.phpdebugbar input[type="date"][readonly]::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="date"][readonly]::-webkit-inner-spin-button, -.phpdebugbar input[type="datetime-local"][readonly]::-webkit-clear-button, -.phpdebugbar-openhandler input[type="datetime-local"][readonly]::-webkit-clear-button, -.phpdebugbar input[type="datetime-local"][readonly]::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="datetime-local"][readonly]::-webkit-inner-spin-button, -.phpdebugbar input[type="month"][readonly]::-webkit-clear-button, -.phpdebugbar-openhandler input[type="month"][readonly]::-webkit-clear-button, -.phpdebugbar input[type="month"][readonly]::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="month"][readonly]::-webkit-inner-spin-button, -.phpdebugbar input[type="week"][readonly]::-webkit-clear-button, -.phpdebugbar-openhandler input[type="week"][readonly]::-webkit-clear-button, -.phpdebugbar input[type="week"][readonly]::-webkit-inner-spin-button, -.phpdebugbar-openhandler input[type="week"][readonly]::-webkit-inner-spin-button, -.phpdebugbar input[readonly]::-webkit-calendar-picker-indicator, -.phpdebugbar-openhandler input[readonly]::-webkit-calendar-picker-indicator {visibility:hidden} -.phpdebugbar select, -.phpdebugbar-openhandler select {-webkit-appearance:menulist;box-sizing:border-box;align-items:center;border:1px solid;white-space:pre;-webkit-rtl-ordering:logical;color:black;background-color:white;cursor:default} -.phpdebugbar select:-internal-list-box, -.phpdebugbar-openhandler select:-internal-list-box {-webkit-appearance:listbox;align-items:flex-start;border:1px inset gray;border-radius:initial;overflow-x:hidden;overflow-y:scroll;vertical-align:text-bottom;-webkit-user-select:none;white-space:nowrap} -.phpdebugbar optgroup, -.phpdebugbar-openhandler optgroup {font-weight:bolder;display:block} -.phpdebugbar option, -.phpdebugbar-openhandler option {font-weight:normal;display:block;padding:0 2px 1px 2px;white-space:pre;min-height:1.2em} -.phpdebugbar select:-internal-list-box option, -.phpdebugbar-openhandler select:-internal-list-box option, -.phpdebugbar select:-internal-list-box optgroup, -.phpdebugbar-openhandler select:-internal-list-box optgroup {line-height:initial !important} -.phpdebugbar select:-internal-list-box:focus option:checked, -.phpdebugbar-openhandler select:-internal-list-box:focus option:checked {background-color:-internal-active-list-box-selection !important;color:-internal-active-list-box-selection-text !important} -.phpdebugbar select:-internal-list-box option:checked, -.phpdebugbar-openhandler select:-internal-list-box option:checked {background-color:-internal-inactive-list-box-selection !important;color:-internal-inactive-list-box-selection-text !important} -.phpdebugbar select:-internal-list-box:disabled option:checked, -.phpdebugbar-openhandler select:-internal-list-box:disabled option:checked, -.phpdebugbar select:-internal-list-box option:checked:disabled, -.phpdebugbar-openhandler select:-internal-list-box option:checked:disabled {color:gray !important} -.phpdebugbar output, -.phpdebugbar-openhandler output {display:inline} -.phpdebugbar meter, -.phpdebugbar-openhandler meter {-webkit-appearance:meter;box-sizing:border-box;display:inline-block;height:1em;width:5em;vertical-align:-0.2em} -.phpdebugbar meter::-webkit-meter-inner-element, -.phpdebugbar-openhandler meter::-webkit-meter-inner-element {-webkit-appearance:inherit;box-sizing:inherit;-webkit-user-modify:read-only !important;height:100%;width:100%} -.phpdebugbar meter::-webkit-meter-bar, -.phpdebugbar-openhandler meter::-webkit-meter-bar {background:linear-gradient(to bottom,#ddd,#eee 20%,#ccc 45%,#ccc 55%,#ddd);height:100%;width:100%;-webkit-user-modify:read-only !important;box-sizing:border-box} -.phpdebugbar meter::-webkit-meter-optimum-value, -.phpdebugbar-openhandler meter::-webkit-meter-optimum-value {background:linear-gradient(to bottom,#ad7,#cea 20%,#7a3 45%,#7a3 55%,#ad7);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box} -.phpdebugbar meter::-webkit-meter-suboptimum-value, -.phpdebugbar-openhandler meter::-webkit-meter-suboptimum-value {background:linear-gradient(to bottom,#fe7,#ffc 20%,#db3 45%,#db3 55%,#fe7);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box} -.phpdebugbar meter::-webkit-meter-even-less-good-value, -.phpdebugbar-openhandler meter::-webkit-meter-even-less-good-value {background:linear-gradient(to bottom,#f77,#fcc 20%,#d44 45%,#d44 55%,#f77);height:100%;-webkit-user-modify:read-only !important;box-sizing:border-box} -.phpdebugbar progress, -.phpdebugbar-openhandler progress {-webkit-appearance:progress-bar;box-sizing:border-box;display:inline-block;height:1em;width:10em;vertical-align:-0.2em} -.phpdebugbar progress::-webkit-progress-inner-element, -.phpdebugbar-openhandler progress::-webkit-progress-inner-element {-webkit-appearance:inherit;box-sizing:inherit;-webkit-user-modify:read-only;height:100%;width:100%} -.phpdebugbar progress::-webkit-progress-bar, -.phpdebugbar-openhandler progress::-webkit-progress-bar {background-color:gray;height:100%;width:100%;-webkit-user-modify:read-only !important;box-sizing:border-box} -.phpdebugbar progress::-webkit-progress-value, -.phpdebugbar-openhandler progress::-webkit-progress-value {background-color:green;height:100%;width:50%;-webkit-user-modify:read-only !important;box-sizing:border-box} -.phpdebugbar u, -.phpdebugbar-openhandler u, -.phpdebugbar ins, -.phpdebugbar-openhandler ins {text-decoration:underline} -.phpdebugbar strong, -.phpdebugbar-openhandler strong, -.phpdebugbar b, -.phpdebugbar-openhandler b {font-weight:bold} -.phpdebugbar cite, -.phpdebugbar-openhandler cite, -.phpdebugbar em, -.phpdebugbar-openhandler em, -.phpdebugbar var, -.phpdebugbar-openhandler var, -.phpdebugbar address, -.phpdebugbar-openhandler address, -.phpdebugbar dfn, -.phpdebugbar-openhandler dfn {font-style:italic} -.phpdebugbar tt, -.phpdebugbar-openhandler tt, -.phpdebugbar code, -.phpdebugbar-openhandler code, -.phpdebugbar kbd, -.phpdebugbar-openhandler kbd, -.phpdebugbar samp, -.phpdebugbar-openhandler samp {font-family:monospace} -.phpdebugbar pre, -.phpdebugbar-openhandler pre, -.phpdebugbar xmp, -.phpdebugbar-openhandler xmp, -.phpdebugbar plaintext, -.phpdebugbar-openhandler plaintext, -.phpdebugbar listing, -.phpdebugbar-openhandler listing {display:block;font-family:monospace;white-space:pre;margin:1 __qem 0} -.phpdebugbar mark, -.phpdebugbar-openhandler mark {background-color:yellow;color:black} -.phpdebugbar big, -.phpdebugbar-openhandler big {font-size:larger} -.phpdebugbar small, -.phpdebugbar-openhandler small {font-size:smaller} -.phpdebugbar s, -.phpdebugbar-openhandler s, -.phpdebugbar strike, -.phpdebugbar-openhandler strike, -.phpdebugbar del, -.phpdebugbar-openhandler del {text-decoration:line-through} -.phpdebugbar sub, -.phpdebugbar-openhandler sub {vertical-align:sub;font-size:smaller} -.phpdebugbar sup, -.phpdebugbar-openhandler sup {vertical-align:super;font-size:smaller} -.phpdebugbar nobr, -.phpdebugbar-openhandler nobr {white-space:nowrap} -.phpdebugbar :focus, -.phpdebugbar-openhandler :focus {outline:auto 5px -webkit-focus-ring-color} -.phpdebugbar html:focus, -.phpdebugbar-openhandler html:focus, -.phpdebugbar body:focus, -.phpdebugbar-openhandler body:focus, -.phpdebugbar input[readonly]:focus, -.phpdebugbar-openhandler input[readonly]:focus {outline:none} -.phpdebugbar applet:focus, -.phpdebugbar-openhandler applet:focus, -.phpdebugbar embed:focus, -.phpdebugbar-openhandler embed:focus, -.phpdebugbar iframe:focus, -.phpdebugbar-openhandler iframe:focus, -.phpdebugbar object:focus, -.phpdebugbar-openhandler object:focus {outline:none} -.phpdebugbar input:focus, -.phpdebugbar-openhandler input:focus, -.phpdebugbar textarea:focus, -.phpdebugbar-openhandler textarea:focus, -.phpdebugbar keygen:focus, -.phpdebugbar-openhandler keygen:focus, -.phpdebugbar select:focus, -.phpdebugbar-openhandler select:focus {outline-offset:-2px} -.phpdebugbar input[type="button"]:focus, -.phpdebugbar-openhandler input[type="button"]:focus, -.phpdebugbar input[type="checkbox"]:focus, -.phpdebugbar-openhandler input[type="checkbox"]:focus, -.phpdebugbar input[type="file"]:focus, -.phpdebugbar-openhandler input[type="file"]:focus, -.phpdebugbar input[type="hidden"]:focus, -.phpdebugbar-openhandler input[type="hidden"]:focus, -.phpdebugbar input[type="image"]:focus, -.phpdebugbar-openhandler input[type="image"]:focus, -.phpdebugbar input[type="radio"]:focus, -.phpdebugbar-openhandler input[type="radio"]:focus, -.phpdebugbar input[type="reset"]:focus, -.phpdebugbar-openhandler input[type="reset"]:focus, -.phpdebugbar input[type="search"]:focus, -.phpdebugbar-openhandler input[type="search"]:focus, -.phpdebugbar input[type="submit"]:focus, -.phpdebugbar-openhandler input[type="submit"]:focus, -.phpdebugbar input[type="file"]:focus::-webkit-file-upload-button, -.phpdebugbar-openhandler input[type="file"]:focus::-webkit-file-upload-button {outline-offset:0} -.phpdebugbar a:-webkit-any-link, -.phpdebugbar-openhandler a:-webkit-any-link {color:-webkit-link;text-decoration:underline;cursor:auto} -.phpdebugbar a:-webkit-any-link:active, -.phpdebugbar-openhandler a:-webkit-any-link:active {color:-webkit-activelink} -.phpdebugbar ruby, -.phpdebugbar-openhandler ruby, -.phpdebugbar rt, -.phpdebugbar-openhandler rt {text-indent:0} -.phpdebugbar rt, -.phpdebugbar-openhandler rt {line-height:normal;-webkit-text-emphasis:none} -.phpdebugbar ruby >rt, -.phpdebugbar-openhandler ruby >rt {display:block;font-size:50%;text-align:start} -.phpdebugbar ruby >rp, -.phpdebugbar-openhandler ruby >rp {display:none} -.phpdebugbar noframes, -.phpdebugbar-openhandler noframes {display:none} -.phpdebugbar frameset, -.phpdebugbar-openhandler frameset, -.phpdebugbar frame, -.phpdebugbar-openhandler frame {display:block} -.phpdebugbar frameset, -.phpdebugbar-openhandler frameset {border-color:inherit} -.phpdebugbar iframe, -.phpdebugbar-openhandler iframe {border:2px inset} -.phpdebugbar details, -.phpdebugbar-openhandler details {display:block} -.phpdebugbar summary, -.phpdebugbar-openhandler summary {display:block} -.phpdebugbar summary::-webkit-details-marker, -.phpdebugbar-openhandler summary::-webkit-details-marker {display:inline-block;width:0.66em;height:0.66em;-webkit-margin-end:0.4em} -.phpdebugbar textarea[dir=auto], -.phpdebugbar-openhandler textarea[dir=auto] {unicode-bidi:-webkit-plaintext} \ No newline at end of file +.Whoops.container{z-index:5999999} +div.phpdebugbar{font-size:13px;font-family:"Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;direction:ltr;text-align:left;z-index:6000000} +div.phpdebugbar *{direction:ltr;text-align:left} +div.phpdebugbar-openhandler-overlay{z-index:6000001;cursor:pointer} +div.phpdebugbar-openhandler{border:1px solid #aaa;border-top:3px solid #fa5661;width:80%;height:70%;padding:10px;border-radius:5px;overflow-y:scroll;z-index:6000002;cursor:default} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>a, +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button{display:inline-block;cursor:pointer;margin:5px;padding:0 12px 2px;border-radius:3px;border:1px solid #ddd;color:#000;font-size:13px} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form{margin:15px 0 5px;text-transform:uppercase;font-size:13px;font-weight:bold} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form br{display:none} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form>b{display:none} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form input, +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form select{margin:0 10px 10px 2px;border:1px solid #aaa;border-radius:3px;padding:3px 6px 2px;line-height:16px} +@media (max-width:720px){div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form select + br,div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form input[name="uri"] + br{display:block}} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>form select{padding:2px 5px 1px} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions input[name="uri"]{width:200px} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions input[name="ip"]{width:90px} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button{outline:none;margin:0 0 10px 2px;padding:5px 15px 4px;line-height:12px} +div.phpdebugbar-openhandler table{margin:15px 0 10px;table-layout:auto;border-collapse:collapse;width:100%} +div.phpdebugbar-openhandler table td, +div.phpdebugbar-openhandler table th{width:auto !important;text-align:left;border:0 solid #bbb;padding:2px 8px;font-size:14px} +div.phpdebugbar-openhandler table th{font-size:12px;text-transform:uppercase;padding:5px 8px} +div.phpdebugbar-openhandler table th, +div.phpdebugbar-openhandler table tr:nth-child(2n){background-color:#efefef} +div.phpdebugbar-openhandler table th:nth-child(1), +div.phpdebugbar-openhandler table td:nth-child(1), +div.phpdebugbar-openhandler table th:nth-child(2), +div.phpdebugbar-openhandler table td:nth-child(2), +div.phpdebugbar-openhandler table th:nth-child(4), +div.phpdebugbar-openhandler table td:nth-child(4), +div.phpdebugbar-openhandler table th:nth-child(5), +div.phpdebugbar-openhandler table td:nth-child(5){width:5% !important;white-space:nowrap} +div.phpdebugbar-openhandler table th:nth-child(2), +div.phpdebugbar-openhandler table td:nth-child(2), +div.phpdebugbar-openhandler table th:nth-child(4), +div.phpdebugbar-openhandler table td:nth-child(4), +div.phpdebugbar-openhandler table th:nth-child(5), +div.phpdebugbar-openhandler table td:nth-child(5){text-align:center} +div.phpdebugbar-openhandler table th:nth-child(3){width:calc(100vw - 100% - 196px)!important} +div.phpdebugbar-openhandler table td a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer} +div.phpdebugbar-resize-handle{display:block !important;height:3px;margin-top:-4px;width:100%;background:none;cursor:ns-resize;border-top:none;border-bottom:0;background-color:#fa5661} +.phpdebugbar.phpdebugbar-minimized div.phpdebugbar-resize-handle{cursor:default !important} +div.phpdebugbar-closed, +div.phpdebugbar-minimized{border-top-color:#ddd} +div.phpdebugbar code, +div.phpdebugbar pre, +div.phpdebugbar samp{background:none;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:1em;border:0;padding:0} +div.phpdebugbar .hljs{padding:0} +div.phpdebugbar .phpdebugbar-widgets-messages .hljs>code{padding-bottom:3px} +div.phpdebugbar code, +div.phpdebugbar pre{color:#000} +div.phpdebugbar-widgets-exceptions .phpdebugbar-widgets-filename{margin-top:4px} +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item pre.phpdebugbar-widgets-file{border:1px solid #d2d2d2;border-left:2px solid #d2d2d2} +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item pre.phpdebugbar-widgets-file[style="display:block;"] ~ div{display:block} +div.phpdebugbar pre.sf-dump{color:#000;outline:none;padding:0 !important} +div.phpdebugbar-header{min-height:30px;line-height:20px;padding-left:39px} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-header{background-size:20px;padding:2px 0 3px 36px;background-position:9px 5px;border-radius:3px} +div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a{cursor:pointer} +a.phpdebugbar-close-btn{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAADDSURBVDhPxZCxCsIwFEUzuGdwCvQD7BIIcehUXDqVfGM/wsG/iG4ifkzMlRuSPLo4eeFBue8c6Iv6b4wxW557Hs0KnWa3seqDxTiOyVqbhmF4UND4Rofdruyce3rvE6bIRSo9GOI1McbLPM/vVm4l7MAQr0kpHaQsJTDE+6zrepym6SVFdNgR69M+hBTLzWCI10gJvydvBkO8ZlmWayvhJnkzGOI1+fBTCOHWPkT7YNiBId4HizxnCKy+r81uX/otSn0A7dioI/vYX+8AAAAASUVORK5CYII=) no-repeat 9px 6px;color:#555;border-right:none} +a.phpdebugbar-open-btn{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfdCgYULwwNKp3GAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjOM5pdQAAAA1UlEQVQ4T2OgKpCUlOQH4vdA/B8Jv4dKEwYgDdLS0v8NDQ3/GxsbwzGIj2YoGEO1oQJkjcRgqDZUAJKwsrJ6/v//fwdiMFQbKgAZkpGR0QR0ajy60wlgRJhBXSGhpqb2CNnZhHBkZORcqBEMDFBX2BsYGGBVjAv39vZaQ41gYIC6Ygs2hbiwr6/vdqA+DqgR4CiW19bWxqoYF87Ly4uFaocAZWXlydgU4sJ2dna3ga4QgGqHAC0trY/YFOPCKSkpDVCtCAA01QaIsaYJHFgCqpVagIEBACGlF2c3r4ViAAAAAElFTkSuQmCC) no-repeat 8px 6px} +div.phpdebugbar-header, +div.phpdebugbar-openhandler-header{background-size:21px auto;background-position:9px center} +a.phpdebugbar-restore-btn{border-right-color:#ddd !important;height:20px;width:23px;background-position:center;background-size:21px} +div.phpdebugbar-header>div>*{font-size:13px;padding:5px} +div.phpdebugbar-header .phpdebugbar-tab{padding:5px 12px} +div.phpdebugbar-header .phpdebugbar-header-left{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} +div.phpdebugbar .phpdebugbar-header select{margin:4px 0 0 8px;padding:2px 3px 3px 3px;border-radius:3px;width:auto;cursor:pointer} +dl.phpdebugbar-widgets-kvlist dt, +dl.phpdebugbar-widgets-kvlist dd{min-height:20px;line-height:20px;padding:4px 5px 5px;border-top:0} +dl.phpdebugbar-widgets-kvlist dd.phpdebugbar-widgets-value.phpdebugbar-widgets-pretty .phpdebugbar-widgets-code-block{padding:0 0;background:transparent} +dl.phpdebugbar-widgets-kvlist dt{width:25%} +dl.phpdebugbar-widgets-kvlist dd{margin-left:25%} +ul.phpdebugbar-widgets-timeline .phpdebugbar-widgets-measure{height:28px;line-height:28px;border:none} +ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-value{height:16px} +ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label, +ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-collector{top:0;font-size:11px} +ul.phpdebugbar-widgets-timeline li .phpdebugbar-widgets-value span.phpdebugbar-widgets-label{color:#fff} +ul.phpdebugbar-widgets-timeline table.phpdebugbar-widgets-params{font-size:11px} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar{width:calc(100% - 20px);padding:4px 0 4px;height:20px;border:1px solid #ddd;border-bottom:0;background-color:#e8e8e8;border-radius:5px 5px 0 0} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar input{width:calc(100% - 48px);margin-left:0;border-radius:3px;padding:2px 6px;height:15px} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-label, +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-collector{padding:1px 0 0 10px;margin:0;text-transform:uppercase;font-style:normal;color:#333} +.phpdebugbar-widgets-toolbar i.phpdebugbar-fa.phpdebugbar-fa-search{position:relative;top:-1px;padding:0 10px} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter, +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded{position:relative;top:-48px;display:inline-block;background-color:#6d6d6d;margin-left:3px;border-radius:3px;padding:5px 8px 4px;text-transform:uppercase;font-size:10px;transition:background-color 0.25s linear 0s,color 0.25s linear 0s;color:#FFF;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter[rel="info"], +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded[rel="info"]{background-color:#5896e2} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter[rel="error"], +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded[rel="error"]{background-color:#fa5661} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter[rel="warning"], +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded[rel="warning"]{background-color:#f99400} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter:hover{color:#FFF;opacity:0.85} +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded{opacity:0.45} +a.phpdebugbar-tab:hover, +span.phpdebugbar-indicator:hover, +a.phpdebugbar-indicator:hover, +a.phpdebugbar-close-btn:hover, +a.phpdebugbar-minimize-btn:hover, +a.phpdebugbar-maximize-btn:hover, +a.phpdebugbar-open-btn:hover{background-color:#ebebeb} +a.phpdebugbar-minimize-btn, +a.phpdebugbar-maximize-btn{width:28px !important} +a.phpdebugbar-tab.phpdebugbar-active{background:#fa5661;background-image:none;color:#fff !important} +a.phpdebugbar-tab.phpdebugbar-active span.phpdebugbar-badge{background-color:white;color:#fa5661} +a.phpdebugbar-tab span.phpdebugbar-badge{vertical-align:0;padding:2px 8px 3px 8px;text-align:center;background:#fa5661;font-size:11px;font-family:monospace;color:#fff;border-radius:10px;top:-1px;position:relative} +.phpdebugbar-indicator{cursor:text} +.phpdebugbar-indicator span.phpdebugbar-tooltip, +div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text{border:none;border-radius:5px;font-size:12px;width:auto;white-space:nowrap;padding:2px 18px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} +div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text{left:0;right:auto} +.phpdebugbar-widgets-toolbar>.fa{width:25px;font-size:15px;color:#555;text-align:center} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item{padding:7px 10px;border:none;font-family:inherit;overflow:visible} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item:hover, +ul.phpdebugbar-widgets-timeline li:hover{background-color:initial} +.phpdebugbar-widgets-sqlqueries ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item{display:flex;flex-wrap:wrap} +.phpdebugbar-widgets-templates ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item{display:block} +.phpdebugbar-widgets-templates ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item, +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item{line-height:15px} +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item{cursor:pointer;display:block} +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-subject{display:inline-block;margin-right:15px} +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-headers{margin:10px 0;padding:7px 10px;border-left:2px solid #ddd;line-height:17px} +.phpdebugbar-widgets-list .phpdebugbar-widgets-list-item .phpdebugbar-widgets-name{height:15px} +.phpdebugbar-widgets-sql.phpdebugbar-widgets-name{font-weight:bold} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-sql{flex:1;margin-right:5px} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-duration{margin-left:auto;margin-right:5px} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-database{margin-left:auto} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-stmt-id{margin-left:auto;margin-right:5px} +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item table.phpdebugbar-widgets-params{background-color:#fdfdfd;margin:10px 0;font-size:12px;border-left:2px solid #cecece} +div.phpdebugbar-widgets-templates table.phpdebugbar-widgets-params th, +div.phpdebugbar-widgets-templates table.phpdebugbar-widgets-params td{padding:1px 10px!important} +div.phpdebugbar-widgets-templates table.phpdebugbar-widgets-params th{padding:2px 10px!important;background-color:#efefef} +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name{width:auto} +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name .phpdebugbar-fa{position:relative;top:1px;margin-left:3px} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value{display:inline-flex} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value:before{font-family:PhpDebugbarFontAwesome;content:"\f005";color:#333;font-size:13px;margin-right:8px;float:left} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-info{color:#1299DA} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-info:before{font-family:PhpDebugbarFontAwesome;content:"\f05a";color:#5896e2;font-size:15px} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-error{color:#e74c3c} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-error:before{color:#fa5661;font-size:15px} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-warning:before{color:#FF9800;font-size:13px} +div.phpdebugbar-widgets-messages .phpdebugbar-widgets-value.phpdebugbar-widgets-warning{color:#FF9800} +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item pre.sf-dump{display:inline-block;position:relative;top:-1px} +div.phpdebugbar-widgets-sqlqueries{line-height:20px} +div.phpdebugbar-panel div.phpdebugbar-widgets-status{padding:9px 20px!important;width:calc(100% - 20px);margin-left:-10px;margin-top:-10px;line-height:11px !important;font-weight:bold !important;border-bottom:1px solid #cecece!important} +div.phpdebugbar-panel div.phpdebugbar-widgets-status>*{color:#383838 !important} +div.phpdebugbar-panel div.phpdebugbar-widgets-status>span:first-child:before{font-family:PhpDebugbarFontAwesome;content:"\f05a";color:#737373;font-size:14px;position:relative;top:1px;margin-right:8px} +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params th, +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td{padding:4px 10px} +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params th{background-color:#efefef} +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name{text-align:right;vertical-align:top;white-space:nowrap} +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-value{text-align:left} +div.phpdebugbar-widgets-templates .phpdebugbar-widgets-list-item table.phpdebugbar-widgets-params{width:auto !important} +ul.phpdebugbar-widgets-list ul.phpdebugbar-widgets-table-list{text-align:left} +.phpdebugbar-text-muted{color:#888} +ul.phpdebugbar-widgets-cache a.phpdebugbar-widgets-forget{float:right;font-size:12px;padding:0 4px;background:#fa5661;margin:0 2px;border-radius:4px;color:#fff;text-decoration:none;line-height:1.5rem} +a.phpdebugbar-tab i{line-height:20px} +div.phpdebugbar-mini-design a.phpdebugbar-tab{border-right:none} +div.phpdebugbar-header-right>a{height:20px;width:20px;background-position:center} +div.phpdebugbar-header-right .phpdebugbar-indicator>i.phpdebugbar-fa{vertical-align:baseline;margin-top:2px} +div.phpdebugbar-panel{width:calc(100% - 20px);height:calc(100% - 20px);padding:10px} +div.phpdebugbar-panel table{margin:10px 0!important;width:100% !important} +div.phpdebugbar-panel table .phpdebugbar-widgets-name{font-size:13px} +.phpdebugbar pre.sf-dump:after{clear:none !important} +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-message{color:#dd1044} +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item>div{display:none} +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-database:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-duration:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-memory:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-row-count:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-copy-clipboard:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-stmt-id:before, +div.phpdebugbar-widgets-templates span.phpdebugbar-widgets-param-count:before{margin-right:6px !important} +.phpdebugbar-widgets-list-item .phpdebugbar-widgets-bg-measure{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none} +.phpdebugbar-widgets-bg-measure .phpdebugbar-widgets-value{position:absolute;height:100%;opacity:0.2;background:red} +body div.phpdebugbar{background:#fff} +body div.phpdebugbar-body{border-top:1px solid #ddd} +body div.phpdebugbar-openhandler{border-top:3px solid #227f96} +body div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions>a, +body div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button{background-color:#eff3f4} +body div.phpdebugbar-resize-handle{background-color:#227f96} +body a.phpdebugbar-tab.phpdebugbar-active, +body a.phpdebugbar-tab span.phpdebugbar-badge, +body ul.phpdebugbar-widgets-cache a.phpdebugbar-widgets-forget{background:#227f96} +body a.phpdebugbar-tab.phpdebugbar-active span.phpdebugbar-badge{color:#227f96} +body div.phpdebugbar-header, +body a.phpdebugbar-restore-btn, +body div.phpdebugbar-openhandler .phpdebugbar-openhandler-header{background-image:url(data:image/png;base64,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);background-color:#eff3f4;background-repeat:no-repeat;background-position:7px 4px;background-size:24px 24px} +body .phpdebugbar-indicator span.phpdebugbar-tooltip, +body div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text{background-color:#eff3f4} +body ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item:nth-child(even){background-color:#f6f7f8} +body dl.phpdebugbar-widgets-kvlist>:nth-child(4n-1), +body dl.phpdebugbar-widgets-kvlist>:nth-child(4n){background-color:#f6f7f8} +body div.phpdebugbar-panel div.phpdebugbar-widgets-status{background-color:#eff3f4} +body ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-value{background-color:#48b9d5;border-bottom:2px solid #227f96} +body ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label, +body ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-collector{color:#000 !important} \ No newline at end of file diff --git a/assets/css/debugbar.less b/assets/css/debugbar.less deleted file mode 100644 index abd5e65..0000000 --- a/assets/css/debugbar.less +++ /dev/null @@ -1,1036 +0,0 @@ -/* Fix the close icon in the open handler popup */ -div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a { - line-height: 1; -} - -.phpdebugbar { - /* Better styling for model collector */ - dl.phpdebugbar-widgets-kvlist dt { - width: 350px; - } - dl.phpdebugbar-widgets-kvlist dd { - margin-left: 360px; - } -} - -.phpdebugbar, -.phpdebugbar-openhandler { - /* - * The default style sheet used to render HTML. - * - * Copyright (C) 2000 Lars Knoll (knoll@kde.org) - * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - - /* generic block-level elements */ - - p { - display: block; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1__qem; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - } - - div { - display: block - } - - layer { - display: block - } - - article, aside, footer, header, hgroup, main, nav, section { - display: block - } - - marquee { - display: inline-block; - } - - address { - display: block - } - - blockquote { - display: block; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1em; - -webkit-margin-start: 40px; - -webkit-margin-end: 40px; - } - - figcaption { - display: block - } - - figure { - display: block; - -webkit-margin-before: 1em; - -webkit-margin-after: 1em; - -webkit-margin-start: 40px; - -webkit-margin-end: 40px; - } - - q { - display: inline - } - - q:before { - content: open-quote; - } - - q:after { - content: close-quote; - } - - center { - display: block; - /* special centering to be able to emulate the html4/netscape behaviour */ - text-align: -webkit-center - } - - hr { - display: block; - -webkit-margin-before: 0.5em; - -webkit-margin-after: 0.5em; - -webkit-margin-start: auto; - -webkit-margin-end: auto; - border-style: inset; - border-width: 1px - } - - map { - display: inline - } - - video { - object-fit: contain; - } - - /* heading elements */ - - h1 { - display: block; - font-size: 2em; - -webkit-margin-before: 0.67__qem; - -webkit-margin-after: 0.67em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - font-weight: bold - } - - :-webkit-any(article,aside,nav,section) h1 { - font-size: 1.5em; - -webkit-margin-before: 0.83__qem; - -webkit-margin-after: 0.83em; - } - - :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 { - font-size: 1.17em; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1em; - } - - :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 { - font-size: 1.00em; - -webkit-margin-before: 1.33__qem; - -webkit-margin-after: 1.33em; - } - - :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 { - font-size: .83em; - -webkit-margin-before: 1.67__qem; - -webkit-margin-after: 1.67em; - } - - :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1 { - font-size: .67em; - -webkit-margin-before: 2.33__qem; - -webkit-margin-after: 2.33em; - } - - h2 { - display: block; - font-size: 1.5em; - -webkit-margin-before: 0.83__qem; - -webkit-margin-after: 0.83em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - font-weight: bold - } - - h3 { - display: block; - font-size: 1.17em; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - font-weight: bold - } - - h4 { - display: block; - -webkit-margin-before: 1.33__qem; - -webkit-margin-after: 1.33em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - font-weight: bold - } - - h5 { - display: block; - font-size: .83em; - -webkit-margin-before: 1.67__qem; - -webkit-margin-after: 1.67em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - font-weight: bold - } - - h6 { - display: block; - font-size: .67em; - -webkit-margin-before: 2.33__qem; - -webkit-margin-after: 2.33em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - font-weight: bold - } - - /* tables */ - - table { - display: table; - border-collapse: separate; - border-spacing: 2px; - border-color: gray - } - - thead { - display: table-header-group; - vertical-align: middle; - border-color: inherit - } - - tbody { - display: table-row-group; - vertical-align: middle; - border-color: inherit - } - - tfoot { - display: table-footer-group; - vertical-align: middle; - border-color: inherit - } - - /* for tables without table section elements (can happen with XHTML or dynamically created tables) */ - table > tr { - vertical-align: middle; - } - - col { - display: table-column - } - - colgroup { - display: table-column-group - } - - tr { - display: table-row; - vertical-align: inherit; - border-color: inherit - } - - td, th { - display: table-cell; - vertical-align: inherit - } - - th { - font-weight: bold - } - - caption { - display: table-caption; - text-align: -webkit-center - } - - /* lists */ - - ul, ol, dl { - font-size: 1em; - } - - ul, menu, dir { - display: block; - list-style-type: disc; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - -webkit-padding-start: 40px - } - - ol { - display: block; - list-style-type: decimal; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - -webkit-padding-start: 40px - } - - li { - display: list-item; - text-align: -webkit-match-parent; - } - - ul ul, ol ul { - list-style-type: circle - } - - ol ol ul, ol ul ul, ul ol ul, ul ul ul { - list-style-type: square - } - - dd { - display: block; - -webkit-margin-start: 40px - } - - dl { - display: block; - -webkit-margin-before: 1__qem; - -webkit-margin-after: 1em; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - } - - dt { - display: block - } - - ol ul, ul ol, ul ul, ol ol { - -webkit-margin-before: 0; - -webkit-margin-after: 0 - } - - /* form elements */ - - form { - display: block; - margin-top: 0__qem; - } - - label { - cursor: default; - } - - legend { - display: block; - -webkit-padding-start: 2px; - -webkit-padding-end: 2px; - border: none - } - - fieldset { - display: block; - -webkit-margin-start: 2px; - -webkit-margin-end: 2px; - -webkit-padding-before: 0.35em; - -webkit-padding-start: 0.75em; - -webkit-padding-end: 0.75em; - -webkit-padding-after: 0.625em; - border: 2px groove ThreeDFace; - min-width: -webkit-min-content; - } - - button { - -webkit-appearance: button; - } - - /* Form controls don't go vertical. */ - input, textarea, keygen, select, button, meter, progress { - -webkit-writing-mode: horizontal-tb !important; - } - - input, textarea, keygen, select, button { - margin: 0__qem; - font: -webkit-small-control; - color: initial; - letter-spacing: normal; - word-spacing: normal; - line-height: normal; - text-transform: none; - text-indent: 0; - text-shadow: none; - display: inline-block; - text-align: start; - width: initial; - height: initial; - } - - input[type="hidden"] { - display: none - } - - input, input[type="password"], input[type="search"] { - -webkit-appearance: textfield; - padding: 1px; - background-color: white; - border: 2px inset; - -webkit-rtl-ordering: logical; - -webkit-user-select: text; - cursor: auto; - } - - input[type="search"] { - -webkit-appearance: searchfield; - box-sizing: border-box; - } - - input::-webkit-textfield-decoration-container { - display: flex; - align-items: center; - -webkit-user-modify: read-only !important; - content: none !important; - } - - input[type="search"]::-webkit-textfield-decoration-container { - direction: ltr; - } - - input::-webkit-clear-button { - -webkit-appearance: searchfield-cancel-button; - display: inline-block; - flex: none; - -webkit-user-modify: read-only !important; - -webkit-margin-start: 2px; - opacity: 0; - pionter-events: none; - } - - input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-clear-button { - opacity: 1; - pointer-events: auto; - } - - input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: searchfield-cancel-button; - display: block; - flex: none; - -webkit-user-modify: read-only !important; - -webkit-margin-start: 1px; - opacity: 0; - pointer-events: none; - } - - input[type="search"]:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-search-cancel-button { - opacity: 1; - pointer-events: auto; - } - - input[type="search"]::-webkit-search-decoration { - -webkit-appearance: searchfield-decoration; - display: block; - flex: none; - -webkit-user-modify: read-only !important; - -webkit-align-self: flex-start; - margin: auto 0; - } - - input[type="search"]::-webkit-search-results-decoration { - -webkit-appearance: searchfield-results-decoration; - display: block; - flex: none; - -webkit-user-modify: read-only !important; - -webkit-align-self: flex-start; - margin: auto 0; - } - - input::-webkit-inner-spin-button { - -webkit-appearance: inner-spin-button; - display: inline-block; - cursor: default; - flex: none; - align-self: stretch; - -webkit-user-select: none; - -webkit-user-modify: read-only !important; - opacity: 0; - pointer-events: none; - } - - input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-inner-spin-button { - opacity: 1; - pointer-events: auto; - } - - keygen, select { - border-radius: 5px; - } - - keygen::-webkit-keygen-select { - margin: 0px; - } - - textarea { - -webkit-appearance: textarea; - background-color: white; - border: 1px solid; - -webkit-rtl-ordering: logical; - -webkit-user-select: text; - flex-direction: column; - resize: auto; - cursor: auto; - padding: 2px; - white-space: pre-wrap; - word-wrap: break-word; - } - - ::-webkit-input-placeholder { - -webkit-text-security: none; - color: darkGray; - display: block !important; - pointer-events: none !important; - } - - input::-webkit-input-placeholder { - white-space: pre; - word-wrap: normal; - overflow: hidden; - -webkit-user-modify: read-only !important; - } - - input[type="password"] { - -webkit-text-security: disc !important; - } - - input[type="hidden"], input[type="image"], input[type="file"] { - -webkit-appearance: initial; - padding: initial; - background-color: initial; - border: initial; - } - - input[type="file"] { - align-items: baseline; - color: inherit; - text-align: start !important; - } - - input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { - background-color: #FAFFBD !important; - background-image:none !important; - color: #000000 !important; - } - - input[type="radio"], input[type="checkbox"] { - margin: 3px 0.5ex; - padding: initial; - background-color: initial; - border: initial; - } - - input[type="button"], input[type="submit"], input[type="reset"] { - -webkit-appearance: push-button; - -webkit-user-select: none; - white-space: pre - } - - input[type="file"]::-webkit-file-upload-button { - -webkit-appearance: push-button; - -webkit-user-modify: read-only !important; - white-space: nowrap; - margin: 0; - font-size: inherit; - } - - input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button { - align-items: flex-start; - text-align: center; - cursor: default; - color: ButtonText; - padding: 2px 6px 3px 6px; - border: 2px outset ButtonFace; - background-color: ButtonFace; - box-sizing: border-box - } - - input[type="range"] { - -webkit-appearance: slider-horizontal; - padding: initial; - border: initial; - margin: 2px; - color: #909090; - } - - input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container { - flex: 1; - box-sizing: border-box; - -webkit-user-modify: read-only !important; - display: flex; - -webkit-align-contents: center; - } - - input[type="range"]::-webkit-slider-runnable-track { - flex: 1; - -webkit-align-self: center; - - box-sizing: border-box; - -webkit-user-modify: read-only !important; - display: block; - } - - input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb { - -webkit-appearance: sliderthumb-horizontal; - box-sizing: border-box; - -webkit-user-modify: read-only !important; - display: block; - } - - input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled, - input[type="file"]:disabled::-webkit-file-upload-button, button:disabled, - select:disabled, keygen:disabled, optgroup:disabled, option:disabled, - select[disabled]>option { - color: GrayText - } - - input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active { - border-style: inset - } - - input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled { - border-style: outset - } - - option:-internal-spatial-navigation-focus { - outline: black dashed 1px; - outline-offset: -1px; - } - - datalist { - display: none - } - - area { - display: inline - } - - param { - display: none - } - - input[type="checkbox"] { - -webkit-appearance: checkbox; - box-sizing: border-box; - } - - input[type="radio"] { - -webkit-appearance: radio; - box-sizing: border-box; - } - - input[type="color"] { - -webkit-appearance: square-button; - width: 44px; - height: 23px; - background-color: ButtonFace; - /* Same as native_theme_base. */ - border: 1px #a9a9a9 solid; - padding: 1px 2px; - } - - input[type="color"]::-webkit-color-swatch-wrapper { - display:flex; - padding: 4px 2px; - box-sizing: border-box; - -webkit-user-modify: read-only !important; - width: 100%; - height: 100% - } - - input[type="color"]::-webkit-color-swatch { - background-color: #000000; - border: 1px solid #777777; - flex: 1; - -webkit-user-modify: read-only !important; - } - - input[type="color"][list] { - -webkit-appearance: menulist; - width: 88px; - height: 23px - } - - input[type="color"][list]::-webkit-color-swatch-wrapper { - padding-left: 8px; - padding-right: 24px; - } - - input[type="color"][list]::-webkit-color-swatch { - border-color: #000000; - } - - input::-webkit-calendar-picker-indicator { - display: inline-block; - width: 0.66em; - height: 0.66em; - padding: 0.17em 0.34em; - -webkit-user-modify: read-only !important; - opacity: 0; - pointer-events: none; - } - - input::-webkit-calendar-picker-indicator:hover { - background-color: #eee; - } - - input:enabled:read-write:-webkit-any(:focus,:hover)::-webkit-calendar-picker-indicator, - input::-webkit-calendar-picker-indicator:focus { - opacity: 1; - pointer-events: auto; - } - - input[type="date"]:disabled::-webkit-clear-button, - input[type="date"]:disabled::-webkit-inner-spin-button, - input[type="datetime-local"]:disabled::-webkit-clear-button, - input[type="datetime-local"]:disabled::-webkit-inner-spin-button, - input[type="month"]:disabled::-webkit-clear-button, - input[type="month"]:disabled::-webkit-inner-spin-button, - input[type="week"]:disabled::-webkit-clear-button, - input[type="week"]:disabled::-webkit-inner-spin-button, - input:disabled::-webkit-calendar-picker-indicator, - input[type="date"][readonly]::-webkit-clear-button, - input[type="date"][readonly]::-webkit-inner-spin-button, - input[type="datetime-local"][readonly]::-webkit-clear-button, - input[type="datetime-local"][readonly]::-webkit-inner-spin-button, - input[type="month"][readonly]::-webkit-clear-button, - input[type="month"][readonly]::-webkit-inner-spin-button, - input[type="week"][readonly]::-webkit-clear-button, - input[type="week"][readonly]::-webkit-inner-spin-button, - input[readonly]::-webkit-calendar-picker-indicator { - visibility: hidden; - } - - select { - -webkit-appearance: menulist; - box-sizing: border-box; - align-items: center; - border: 1px solid; - white-space: pre; - -webkit-rtl-ordering: logical; - color: black; - background-color: white; - cursor: default; - } - - select:-internal-list-box { - -webkit-appearance: listbox; - align-items: flex-start; - border: 1px inset gray; - border-radius: initial; - overflow-x: hidden; - overflow-y: scroll; - vertical-align: text-bottom; - -webkit-user-select: none; - white-space: nowrap; - } - - optgroup { - font-weight: bolder; - display: block; - } - - option { - font-weight: normal; - display: block; - padding: 0 2px 1px 2px; - white-space: pre; - min-height: 1.2em; - } - - select:-internal-list-box option, - select:-internal-list-box optgroup { - line-height: initial !important; - } - - select:-internal-list-box:focus option:checked { - background-color: -internal-active-list-box-selection !important; - color: -internal-active-list-box-selection-text !important; - } - - select:-internal-list-box option:checked { - background-color: -internal-inactive-list-box-selection !important; - color: -internal-inactive-list-box-selection-text !important; - } - - select:-internal-list-box:disabled option:checked, - select:-internal-list-box option:checked:disabled { - color: gray !important; - } - - - output { - display: inline; - } - - /* meter */ - - meter { - -webkit-appearance: meter; - box-sizing: border-box; - display: inline-block; - height: 1em; - width: 5em; - vertical-align: -0.2em; - } - - meter::-webkit-meter-inner-element { - -webkit-appearance: inherit; - box-sizing: inherit; - -webkit-user-modify: read-only !important; - height: 100%; - width: 100%; - } - - meter::-webkit-meter-bar { - background: linear-gradient(to bottom, #ddd, #eee 20%, #ccc 45%, #ccc 55%, #ddd); - height: 100%; - width: 100%; - -webkit-user-modify: read-only !important; - box-sizing: border-box; - } - - meter::-webkit-meter-optimum-value { - background: linear-gradient(to bottom, #ad7, #cea 20%, #7a3 45%, #7a3 55%, #ad7); - height: 100%; - -webkit-user-modify: read-only !important; - box-sizing: border-box; - } - - meter::-webkit-meter-suboptimum-value { - background: linear-gradient(to bottom, #fe7, #ffc 20%, #db3 45%, #db3 55%, #fe7); - height: 100%; - -webkit-user-modify: read-only !important; - box-sizing: border-box; - } - - meter::-webkit-meter-even-less-good-value { - background: linear-gradient(to bottom, #f77, #fcc 20%, #d44 45%, #d44 55%, #f77); - height: 100%; - -webkit-user-modify: read-only !important; - box-sizing: border-box; - } - - /* progress */ - - progress { - -webkit-appearance: progress-bar; - box-sizing: border-box; - display: inline-block; - height: 1em; - width: 10em; - vertical-align: -0.2em; - } - - progress::-webkit-progress-inner-element { - -webkit-appearance: inherit; - box-sizing: inherit; - -webkit-user-modify: read-only; - height: 100%; - width: 100%; - } - - progress::-webkit-progress-bar { - background-color: gray; - height: 100%; - width: 100%; - -webkit-user-modify: read-only !important; - box-sizing: border-box; - } - - progress::-webkit-progress-value { - background-color: green; - height: 100%; - width: 50%; /* should be removed later */ - -webkit-user-modify: read-only !important; - box-sizing: border-box; - } - - /* inline elements */ - - u, ins { - text-decoration: underline - } - - strong, b { - font-weight: bold - } - - cite, em, var, address, dfn { - font-style: italic - } - - tt, code, kbd, samp { - font-family: monospace - } - - pre, xmp, plaintext, listing { - display: block; - font-family: monospace; - white-space: pre; - margin: 1__qem 0 - } - - mark { - background-color: yellow; - color: black - } - - big { - font-size: larger - } - - small { - font-size: smaller - } - - s, strike, del { - text-decoration: line-through - } - - sub { - vertical-align: sub; - font-size: smaller - } - - sup { - vertical-align: super; - font-size: smaller - } - - nobr { - white-space: nowrap - } - - /* states */ - - :focus { - outline: auto 5px -webkit-focus-ring-color - } - - /* Read-only text fields do not show a focus ring but do still receive focus */ - html:focus, body:focus, input[readonly]:focus { - outline: none - } - - applet:focus, embed:focus, iframe:focus, object:focus { - outline: none - } - - input:focus, textarea:focus, keygen:focus, select:focus { - outline-offset: -2px - } - - input[type="button"]:focus, - input[type="checkbox"]:focus, - input[type="file"]:focus, - input[type="hidden"]:focus, - input[type="image"]:focus, - input[type="radio"]:focus, - input[type="reset"]:focus, - input[type="search"]:focus, - input[type="submit"]:focus, - input[type="file"]:focus::-webkit-file-upload-button { - outline-offset: 0 - } - - a:-webkit-any-link { - color: -webkit-link; - text-decoration: underline; - cursor: auto; - } - - a:-webkit-any-link:active { - color: -webkit-activelink - } - - /* HTML5 ruby elements */ - - ruby, rt { - text-indent: 0; /* blocks used for ruby rendering should not trigger this */ - } - - rt { - line-height: normal; - -webkit-text-emphasis: none; - } - - ruby > rt { - display: block; - font-size: 50%; - text-align: start; - } - - ruby > rp { - display: none; - } - - /* other elements */ - - noframes { - display: none - } - - frameset, frame { - display: block - } - - frameset { - border-color: inherit - } - - iframe { - border: 2px inset - } - - details { - display: block - } - - summary { - display: block - } - - summary::-webkit-details-marker { - display: inline-block; - width: 0.66em; - height: 0.66em; - -webkit-margin-end: 0.4em; - } - - textarea[dir=auto] { - unicode-bidi: -webkit-plaintext; - } -} \ No newline at end of file diff --git a/assets/less/debugbar.less b/assets/less/debugbar.less new file mode 100644 index 0000000..90fe04b --- /dev/null +++ b/assets/less/debugbar.less @@ -0,0 +1,177 @@ +@import "vendor.less"; + +// Light mode +@debugbar-brand: #227f96; +@debugbar-main-bg: #fff; +@debugbar-bg: #eff3f4; +@debugbar-bg-light: #f6f7f8; +@debugbar-border: #ddd; +@debugbar-value-bg: #48b9d5; +@debugbar-value-border: #227f96; +@debugbar-value-text: #000; + +// Dark mode +@debugbar-dark-brand: #2da7c7; +@debugbar-dark-main-bg: #103141; +@debugbar-dark-bg: #081821; +@debugbar-dark-bg-light: #184962; +@debugbar-dark-border: #103141; +@debugbar-dark-value-bg: #48b9d5; +@debugbar-dark-value-border: #227f96; +@debugbar-dark-value-text: #FFF; + +body { + div.phpdebugbar { + background: @debugbar-main-bg; + } + + div.phpdebugbar-body { + border-top: 1px solid @debugbar-border; + } + + div.phpdebugbar-openhandler { + border-top: 3px solid @debugbar-brand; + } + + div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > a, + div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button { + background-color: @debugbar-bg; + } + + div.phpdebugbar-resize-handle { + background-color: @debugbar-brand; + } + + a.phpdebugbar-tab.phpdebugbar-active, + a.phpdebugbar-tab span.phpdebugbar-badge, + ul.phpdebugbar-widgets-cache a.phpdebugbar-widgets-forget { + background: @debugbar-brand; + } + + a.phpdebugbar-tab.phpdebugbar-active span.phpdebugbar-badge { + color: @debugbar-brand; + } + + div.phpdebugbar-header, + a.phpdebugbar-restore-btn, + div.phpdebugbar-openhandler .phpdebugbar-openhandler-header { + background-image: url(data:image/png;base64,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); + + background-color: @debugbar-bg; + background-repeat: no-repeat; + background-position: 7px 4px; + background-size: 24px 24px; + } + + .phpdebugbar-indicator span.phpdebugbar-tooltip, + div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text { + background-color: @debugbar-bg; + } + + ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item:nth-child(even) { + background-color: @debugbar-bg-light; + } + + dl.phpdebugbar-widgets-kvlist > :nth-child(4n-1), + dl.phpdebugbar-widgets-kvlist > :nth-child(4n) { + background-color: @debugbar-bg-light; + } + + div.phpdebugbar-panel div.phpdebugbar-widgets-status { + background-color: @debugbar-bg; + } + + ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-value { + background-color: @debugbar-value-bg; + border-bottom: 2px solid @debugbar-value-border; + } + + ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label, + ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-collector { + color: @debugbar-value-text !important; + } +} + +/** + * Dark Theme - Currently disabled + * @TODO: Use Laravel Dark Mode as a base and just override the red accent colours + * ------------------------------------------------------------- +@media (prefers-color-scheme: dark) { + body { + div.phpdebugbar { + background: @debugbar-dark-main-bg; + } + + div.phpdebugbar, + div.phpdebugbar-header > div > * { + color: @debugbar-dark-value-text; + } + + div.phpdebugbar-body { + border-top: 1px solid @debugbar-dark-border; + } + + div.phpdebugbar-openhandler { + border-top: 3px solid @debugbar-dark-brand; + } + + div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > a, + div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button { + background-color: @debugbar-dark-bg; + } + + div.phpdebugbar-resize-handle { + background-color: @debugbar-dark-brand; + } + + a.phpdebugbar-tab.phpdebugbar-active, + a.phpdebugbar-tab span.phpdebugbar-badge, + ul.phpdebugbar-widgets-cache a.phpdebugbar-widgets-forget { + background: @debugbar-dark-brand; + } + + a.phpdebugbar-tab.phpdebugbar-active span.phpdebugbar-badge { + color: @debugbar-dark-brand; + } + + div.phpdebugbar-header, + a.phpdebugbar-restore-btn, + div.phpdebugbar-openhandler .phpdebugbar-openhandler-header { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAACHCAYAAAA850oKAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR42u2deXxU1fn/38+9kxAQcBdQVOpSLWQmKFsmwQraVuveVkImqC21LrWtW1tbf7ba3ba2Ll+/bbXtt60CmSGgrVppXVpcYGbYBGYSBNxwF0X2JcnMPc/vj3uRmUtWmCQqeV6v/JE7M/eee87nPMvnPOc5Qq8w6t7F0jwgezjIwYi+f/DgHW89NXGi7uv9YvVCA5r7Z0Yi+m/ELAWds+GdPsHeXukFx85euBQo9fojZGBqb6f0gmOnHJb/rxza2yW94OiVXnD0Si84eqUXHL3SC45e6QVHr/SCo1d6wdErHx8JfJQbH66L21tVj7Sz9tZlU8rXfVjaVRZbcKgq/TY3bn9jzdSJTq/m6GYZMWN+362O3IyxEo6lC0PR+Bcn1dVJT7Zpwty5EowmJhk1CxWTGFBSclMoNr9vLzi6u+GWfRxwOTAY+IQit6/KDj27pwAyYe5cWb+273nAb4FhwBDgclXrmF5wdLuoBRTlXDhaRe5alR16XncDxAPGF1T1TuBIn9m2esHR7diQNcDfgWzO1WNU5N5V2SMndxdAJsydK++/07dGVe/xNMZOyQL/QPTVXnB0s6RryjfZRr4H/AfITcwZpMLtq8yRZ495aF6XAuTTsf/K+nf6nAn6KyB3JVeBJ1TMjenqis294OgBWTalfL1t5CLgQSCT89EQVe5q2mGfOWHu3C4ByKS6OtmoJZ9T5H+AI3I+agZmq5iL66srN/TyHD0LkHWWyjeBqA8gx6hy7/trSyYVGiCT6upklXPklxT5I3BczkcZIKqi36qvrnz/o963HwsSbHlN+TuWyg3AY76PjkS5Y/3akvMKBRAXGEPPVrgTOMr38b9U9Ib66oq1H4d+/dgwpMtrytfaRr7q+SC5Turhqvx2/dqS0/YWIJPq6mS1M3SCInf4TEnW8zEura+uePfj0qc9Bo6RM5IlpbHEESPqGuwCmpj3bCPVwGyfiTlWlXvXry05Z08B4mmMs8zupqQZqFMxkfrqyoKxtMfNmWOHahNHlMbml+xT4CidvehAx9J7RXnMdjbPCtbGDy0gQNaJcgPwCGB8APnd+rUlF3QWIJ6PcZ4iv/cBwwAPg36/kD5GKDZ/UN9NBz6gwmOi1u+DsxcesM+AQ5ozEeASYITC+Yh8s5D3T9WEX7eNXAkkfQA5UpXb168tObUz91vtDD1F4Xafj2GAuIr5ejpS8Xqh2j6qdrGosa8GzgVGAFPJOhfuO2ZFZJCvDWPKYgsGFjiKec82coGnQXJNzDBV7g3FEhPa0yCT6uqkLBr/tEHuBY7xRSUPqZgvFNKUuDfO7o/o6NyxEXTQPgMOVeb7iKujjJphXRDmvifKtcBDQO7q6CdVua+tKMYzJecY5H7gRJ/z+Q/Q6woNDABj6SfIp+AVteL7jlmxWAG8lRdywie64lmpmvAaS+VqIOH76ChV7ly/tmRiK6bkVC9cPdr3UVxFr05HKrqEFhdlmA8cr4Ku3nfMirIVeC7nykCgNBhbYHfF45bXlL9tG7kQmOsLc4ep8juQoXkDhB5pkN/5TEkW+K+KmVRfXfFOlzjqM+MBhDKgf87lpcDWfQgcZpv30rmmZRxq+nTVI5dNKV9rqXzZ80FyAXIiaFk+dmUUMNwHjIdU9Mv11ZVdxmNYRopRxuU5vcpSMbJtnwFHuqYyAzQAm3LBoUV2n658rihvCPId4CnfR/18/+/n+/8/qHwH9M2ubF8xTl9gTM6lTSqsWD6lPNsT49RzaYLKaoS1wM4Y/jCyZjTwRBdqDwVeHjkjeZFj6ePs2jzdqn8IpFTMJfWRyi5nPpuxw8DBOZfeAVb31BB1WHOc8NA8qzQaHzDq3sUF0TaWzUvAGz7AfLE7XnrZlPK1llhn4K7FtDYrs8C/MPbnutKU5L8+X/BdegPh5ULce0RdgxWsnT9gRN1cq6DgKI3G+xVvt68RZGbzwMwfSqOJ0r12EieHt6jmOaUIes5xc+Z0izZbXj3uHUGu9TSVaUFjPAZcl54y9r3uaM+oRxYXAWf5Li+qrw7vlb8xqa5OQrXxkOVsvhexYpZT8s3SaLJvwcChymjgV8DngcsEngxFE98sq03uXXQh6rf9Q/tsOajbCqekIuWrLSOXKbzte+O3VMxl6Uj4he5qS/O2zMm4+bC5s2XuXkU/0YS90jnyahV5ArjUA99tqIwsGDgsS45hV76mAIMU7lbRucFY/MxQLLFH3L/aJg7syL1mGz6zNx1SVhfvE6yNH9RhDTKl/E1RWexDbbK+uvLtjt4jVJs8eETdwuK9tCn+996azRQt3CNQ1CYPDEUTZwn6NC5Xc5g3bgDFIs4nCqc53DWK+haun4LKDFXuCMWSp3T2JRqqxm9UeDr/nnrqqNrFRXvSKaHpyf2MIz9E5KehWOLwTmiwZt+Vpo7+NBhNDFHRn1iO84OTovP67eFgFgP+/nvy+YtHb+68tkieKqJ3KswAqdx9yEipsLhg4BB4AaFGVaItfHwQcLGq1gWjiT8Ea+cf0ckpU+e7cExGskftgcboq7b+GPgucKkqPwxGE126ZyQYi/cFfuKp7O9lsW8ZUbew00vsYukwdmdi6zrVlhnJwaFo4n8EnQlclBMF5vb1bOBigZcKFsqmq8MOkAZqQrWJ6Sp6K8gJwE5ewvbs5ZWI9ZlgLPF9UZ7c3Ni4ec3Utqvy2ZnsP01RUVPOvQ5R4VO08wInReeJI3Y/VQaicoJxuB70LK8tAFeKoMFo4rvpSLjgJFIwmuyP6i+Ar+Vcvt5ynBNCscQdalgtwmajsr2+plzbUc2fAg7JubJDrcy/O6QtY8kBxvAZRH+h+WtAuyJkWInoLenqin90KQmWqgnPEbHP9GZMmnyWE+A4lKjC/QNKSs4KxuID2rqfKSraSD6VfiCqI4IzFlptazM7gHIpkEB0Lui5/vdR5evAr0OxxJDCAiMxGPQ24Ft+rAPnq/IUQhz4iiXSptNeGkvYuEvzuTN9sZiirW37OYn9gtHE51X1jyIao2VgrAB+juo5nQXGHoEDIFU97u0Azm2gNcBtgD/RpQg4D/gzyl3BGfFPtj7KxgGd79NmQWzTv203oSirUOzz8Dd7MyVXvqrKTcFo4oACaYwDgZuBL7fgp+QO6GCFoiLbdtrRGgOAkE+Lz5P8VeT8NtTGj1HhTuD/gGrcfsiVDcDtgkaMbd+artmzfJM9JrSWRsZn0pGK+sxhA76PxWehRSdnMMhULEkHo/EbT6p7pt/uJqvSgLXAR0aFUNPmYC6pGa2e5sql4PcH6zIfQEqAq0T4aYGoqluAK4Fcf6ZJVa4EcrXkJlTSS6pGazsO3f4eOD4wAyIsSkXCfu6F4XXxklA0cT0iz3t+TksacZlYnJE5dL/vpCIVqYaqsZk9fdO9JpxWnl6qwNJRjyyuzGzNfE3dRo/I8SFwkS0/zTpFnw9Fk79R0Xnp6vD6HDXwKsqrwLE7CVkLORx4rR1o12PYQF6pSHMIcAVwa45WEVW+GYolFPhJqjq8rvMaI3EI8APgGt9Hb4N8X0SH+q6/b7UQ4e32CsJQ1bzUwzVo/nuHovEDEKlUh+sVTs3xq3L9iueBvzb3c+5ddf74xkJMg4ItvC05d3Szwb5HIOINzFst2ONTFJ2G8r+haOK00tj8Im/kXgfW5ILJgQntPXPL9sa3PbuaK5NNIFDnqf7NPh/kClVuDsUSh+4hML7u+2gTyA/7qJkNTPIrxcCWQLu0uxpOJ3/P7xq1eB1g5IxkcTCanKDI3apMB05rARhvAreKUCO2dXehgFFQcADUR8aaVCS8WuGXauxPA39pgTMYCFQrRC217jpuerK/M7DPu6CrcmlsQc9s73lrpk40KI/7Lo+UjHOgqtynKpf7TEwxcBlwUycJqhs9bZRr25tE5WuiMi2rHOZpy1xC4fElV4xut366QO57GoGVjui6EXVz+xlLfw4aA2paCE2bgZkBzAQsc2uqOrwiVTXOFHI8u2TJvj4SbqqfMvYlu7HxSmAy7vJ8Y36fcJjC10tsfcXe0jxV3NXHHPsolWXTFx3YPkfAE+Q7bwGgsr6mvLm+pnymqnwNWJ/rg6hyTSiWuD0US7Tp9AZrE/2DtYlfIVzv+S47Zb2oXJqqKZ+dqhnXbGyp9M1oR21pd3V5xOz4IZq/RN9shFW2I5Mtp+Rlhe8Ag3zj1Ag8LzCl2C66aGmk8sX05MqmrhjHLs3nWDZ1YiYdCT9kiTVB4BZgmW8gEThElbsVqfG1J6BW5ox2I6fny1/27O0HtxTRyuPmzNlJF8/yTMI6n4m5TpWftGZigrWJQxBuQbjB99E6kJtAHgAY9chiS5XKHHoaINVQVd5uhGBl5Syf32eJUgP82QNFrrhck/IzS+2JqUh49pKq0V2a59EtyT7Lq8etU4vbQacI/Abfeorn+Y/12V5U5Nx2b/5jUYF/+rRSaZ+tBx4EUF9T3qgq9wHfbyHMvVyV7/m0ghvhuKC4cndVLjeIyn2pmnGNAM3bM4cAn/KB4+EOmqvzfFeKgUr8yUci24G7QGpUrF8vrxnbLdste6QKzojpyWMtW/+I63S2BdDXVaW0vqa8zTWGEbXxckskN4F4tcKU+kg4L7wurU1OFtH7fJEUCK+iOfS16kuIHOvnMUTlolRN+WyfhhmHMCMn0lJjrDENU8YtaYfuP8A4kgaGtsURAgvF6NTUlIqV3T1OPZIm2HBR+UsW+kVRudYzCa2px4PE0suC0USbq6wi8oqSlxRzuOTvTNspDwLf9puYPGC4N/QD4z2Q60Ae8oFNsDjOxze8YNmmTZNSFk0eoI5MBVrzqRzc97nGiHVGTwCjx8ARmjl/qIHTVHQQsLEFCn6n7IfyA+CeUDRx1nFz5rRGRW8XyJ2p/YFgKJrMM1P1NeUZz8T8ON/5bVOaQX5kLO5P1YzL5DvDWoRS5jMDi1G2t3SjUfcutkKx5ASD/kHdiGm/Vg0ObEFksKXmtLIZySN6Ypy6LYc0ND3+CbXlXOA8NQz3OqZfB9pwAHChwmdKNh34QDAW/3G6uiIvvdDKZLZrILAEkQtzTOUY0BI/COpryreW1ib/CGwQ0b+0QD3nAUNFvmwZebBh8rjmFoawhPxowwDPqZXdDRzBmYlBzSbzA5QI7kq2tDMuZaiOALYZS7eFookVCg+LmEdS1ZVrPpI+R+m0RQEJZAeg7C/CsaBnINbn1X3RjjxPvXAt4HdQPXkJ9AfAf4q1+P0lNaONR1Sd5/EqOxN014OUpiPlb7dBbl0F/JwWl7fZAPL/0pHye9r4/RFemL7/LvPD1HQk/ChAcMazIlbgYBWdgMrPgZbWmDLeX0kHNbkCDaoyxxJ9TF1/aaOYwObUlDGZD53mCM5YWIJtjkE5EbLDgTKEkQqfALHRdrmgLG6m9SqgHvQV1x7LOcBJvk47FmQG8FhGsn85aVbiX0snhbcBL7hU9gfgOAgIe35Gy72scp+I7szJyDUN24GfGotp7YzSp2UXMPBY4RcARs5O9HMyfE7hq6ic3cLAG2CFwgMCaz2H9kQv8jmylYnxQTQmoqUK30V5C1iqVnZRMJqsR3heLHklVTWuscc0xwkPzSsubrSH49K/E3G3Mw7yZmFHckuzrhbgKZSnEVmJ8K5lmXeXV1VkQvcvtyjafry6q47fIj9lf+cMWgc8I6o/VbFXg3kAN8915+tNS0fKL2lT09Um9xPRJzwgub9S5oF1Rqpm3PY2fxtLzBSlKseRfaREM5OatPg4tcwPUSaQn6K3UzYC9whMb+rnrFx1/njnpLpnAlkTOBhlEFjHIIxHOQ20tA2g+J3YjbhAew00gTDXsVi8oqpiR5eD44S/NfQJ9N1yum10ssLZLQxYW6rQAZpRWYowW3AeOmhw85qOHNE5YmYyaBn9CzCyFW3XKPAzFQ5CuT7XNGx8b9ihr189pM1l82A0UUf+2siMdCR8UVu/qfj3M0VbNhStJ2frosCvFNngrdz2bWUA6y2jX10+peK59t57wty5su69kk/gcIHl+l0jPaDYnRi7dQqPiurMpqb9/7t66oimgoOjNJY4XJQ/4oKiI7IDd1/K66ANiDVPVeNqN77ZUNX5M1uP/v0b9sADX7sY5DLPCSxqQU2/zm7pdlKZjpTHCw2OYCwxAc3PDheXXzmuBROSBZ4T5G9DrI1/emzymdk90NRSvMMeKkqFwnjc7ZpHejxJ3w7O0IctY65MTelY8nSHfQ5RPRlkTDtf24IbUi4AXSbwsqP2S8ax1z9/8ei9OsT31auGOsEZz96PFXgW0QtQ+XoO8bQzLD+6hS75HFDwEgaifE537/yWHM41wD2gDxVp0erHJp+5R4tjq84frx74Z5bVxevUkYNVORaLY1BO8hjmUeRvwvZrgnFY1kh224qxtw6pWhsRbcnJ2QQ8juhD4lhPqWW2WmrtWF4Tbi70gKSnnGKAl0J18+5SYz/orZZeshvjmd8jE0c9svhnS84t3DrEcdOTxYo5tR3F26wwS+DHIuaVVHVlwZ6/vKpip7+1DlgQrI0/gEhfsAagzgRELgA+i7sCnq/NJS85qjDg6B8wia3Gug3VK4CtoPNR/l0cKJ6/pGr0DrpRUlXjs8ArZX9b9A0tcZ5W1d94zrC0oEtDzVszVwej8dp0ZO9LJ4SiiUNBpygyvA3/ar3AzZmS5v9b+YVTm7q6P9I1Fc0uWccmYDowfeRf5/bL9i0Zj3KGQIXLK+kfNu9oWtBl0UppbbK/lXWyqUsqG+kBOfG+BcVFfZxhqIzw7G7IC3ePbYMnaAKeQvg/g/XvhupxWzrrc5RF4wONWmcgepE3K1uz8wY3AWcpsBiRtCgrsrZ5ZUVVRaYn+ix0//wSwE5dUtmpLPwePZ+kozJh7lzr/bf6fhJLPwd8DreoyqFe2NwZrmY9MFdUf56qqVjaUXAEaxMjEH7gPfugTjwv65JprPN8j2exeHLL9sala6ZOzH7Y+/1DB47SmUlLjClysiXFgUDjOIULQc6j5WTa1tR6xhuYQIv0uMg2VH/tFGXutLKBraIS84MDi0usZtlPi7hKVW9m9xoeO9nN5hw2t6NrVW+ryj8QHqCPvVCanIxRk2moqXB6weGTsmhygCN6pLiroyd6nvengY5uaWzyPPlXgRdBFqrIEkudMYp8BTi5FTOwCPhfDxjn5Fz/O26h228B5a2E6ctA7kfNMwilIJ/22M2jvBCzo4Vo3gNJKjpfYDnwmkFea4iUb93nwTH80aVF9ubGv3n+wzBaXudoSbZ7dj2JsgThZRXW1FeH1/ocyKNV+BLKt8g/DyU32moiL4Odd7zBbWlJ/VWE31vKrOWR8Cv5z4oP8pYMPgE6GqTc84c6ui1zI/AKbtb6V9ORcHafBkdoZrIIo88qebWw2gCEzkN4EKP/Rqz1otKUqilvbvsZiYBm7UPEcm5WN8F4T9aUHIFYVrmhyOLd5dVtD1wwNr8Ytfqg9kAs5xSULwBnkL8W07JdVJkHnFZfU57Zt8FRm7BV+DXk0d4KbPMcyHdAFiE8kXWcZ56fsudnmIyckbQdS8/ATRkc3cEZvQNYhHCrYp6or67cY79gRN3CAZbJjkE5w9sBPwR3CWKgbyx+rciN9ZFys0+Dw4sWLgbuYxcFPt9djCOljr2y/qKxmwr5vNJYcoioqcEtHje4ja++BfxG0GgqUtjyksEZC/thm+PdZCH9HC4lPhSwFC6uj4Rn9PS49PiRGmWxBeISNIjXnoOBMYieD1pJIDv0uOnJgtYntcQMBWmJQfTL/sBn1ZKCZmKNemSxJUXOYFTHIno27lrRQd77i0DfkdFEj0/cD4FZSdoq+mfgK62SSsIrKP9E+Ic4pNSiESNN6SnlHVbxJ0XnWVnsA4BveiZs/040cyPwG4V71HY2NFSNN53QEBa2KQ6oKXFUjlPhHJQL3Ain1dSGPyn69fpIz4a2PQ6OYDRR7EUdwzvwdYO70rsISIIuQ1iTabJfW/nlca06paHYgsMw5gwVrsTN25AWuBFp4/+dsgz4H+DfWxob32mt9sio2sXFTZI5StwclxO80HycR9616wwrpFDG1HfB+lRnJNDzqkuzuHkQlahUIPqpNmaU5fEIRwEXgLyH8lpRsXklGI0vErXmb27asWTN1ImZHIf3DFVzFcJE8nfB75QXPCIrdztjyiPPPuX3aYG7gWcG9u3zR+CDmhfhunjxVpXRGCqayYz2gHE0LpPbEfPt4O77jQvME9Fsz4/Nh0BG1T4rzRIoQiUgAQ5Xo+cAF6JUdKKNWY+x3IzyqIjMNYazxNIveJyFtDBDp1nCzarcBuSeaVKLcqMKtwh8teXJTbMoDytSi3AKqpMRDsJlSjsx6bQBmG2QOgvWiJApUie7JDJee8HRFkE2fdHhluWcLqKf8Wb2Id5M7LcXt90CPCeiv0xNDj+GiLa6tqIqwZmJCaLyA29P64C9eG4jbpGbdZ55elKRJ+sj5e98WPs/8GEGx4qLxrwFTAOmBWcsPBDbDEcpBR2Juxo7nI4zqjt9hj8h+kCqumIt1e1NHdE0zC2bmaxXo1/EreYT7qQj2+CZqRXA8xhZkZ5S/jYfAekcOFSlLJY4wYi1+UTrtbdnVVV1m+pLTxm7AZg/6t7F8cxAp5+qHoBwCKIjUZkEejq773ndKe+B3C5o1II3l1VXdMqeL59c/l5oevLP2OZRRS4BriO/wJvPvGkcqBMlriLvGosNDZPD23tigCfV1cmLzhGHNxv6N9RUrEakw2PWYbNSNu2ZASZQdLc3ezICyxAeEiP/MqKvKuzoo0WNO/eRdLWU1i6yLG06TC37SuBGWt+c9JYIl5xgvf7f1sDc2RzSUDRxqrpJNa3tc80K3CZi3R3AeXdJdfeEpCfVPWM5prhEVfuKyDBVcxZinY9qCCgS+GtG5ernazq2qNdhzaGBQBg3nwGgSGEMyhgVvQV4QWBhRrKLgtHEaixe6i/6WqKqazolWBsfJOKcrWJfjkuDt0WSLXSsgXMLqeWK+hfNa96aWd4GOAIK31M1n88gvwtFFzyciozrkuL64bq4vcWxjhY41nH0k4qOAcaq6vEggdw9QwpnFAnlwJMFBYdRcURoSSsUebZ/uKIXA2sxvLEVeSVYm0ggzNuxZdCyFy8/Zq+BEpqeLMY2n1XkGkXDtJFMmyNPNlSNKKg2W3LuaCdYG/8PIm1l4lvASPdUSTM5FE3cY8E/l0XCe502eMwfXw7sN/DdkagZv9WRsKDDgCN190IvLQyj6bBJ7Xj2udNnHoGmOs/etiY2bg7G4cBYhAsBp2TA2nWhaOJBUWaJkFgWCXd6tfHkfyzqn92R/Z0iVa34Fk24+RBj89kDfbwrZqyx9AlLd7PKcz2HNbd9A4DPKIx34O8jZj59ZcPkUztdtjo4Y2ERllaAVsHaC1AOAbHp2AYyV3MI0b7S8Uz8Toeywdr4MBU5Xdxdbp/EzYM4jI7vnVgLPCNuR6aAt7H13R39N2578ayzNL9DkhY2R4CeJ8oPdfdqN+AWhXtO0DsUOZP8om4vpKvLT2jPCQtGE393SbUPZFY6Eq5q80VuUSk9MfmS5B1cqHcJ8qjC9zxz1xJFvw7h5yryoKW8karefeU1VJvsq6KHepPsZEROQ/UU8nNO2pJmL2ReCzQgOtfC/s/y6nGdOrRwj3mOSXV1sjJz1KFYeiLKcG+toAz39KMDOoYTNuLWAnseN8FlGSrpdE35u5+atni/QKD5i7iZXJXsnlnlAM+J8ieDPKiixnL3xU7I+c5t6Uj4hrYd28RQEZ7Epbm9hslKwZyRjlS81jao4neBXJ1z6b9qO1/E2BZGLhDRS3Fp80ALWi4p6P2OHZjZUDV2W3DGwoHYphTVk4Gg154TaXk7ZUuyHViJuxSRAlZi8byRgW/uqVktCAkWun+5aJ/tfTEM9F5mLOiZIJ+hYwtc6nXYZtzd8WtADwGOb+X3jQK3GtW/WRZvpqornNLa5BgRneH9xn05ZXyqJjy/DWAcJsJvcctj2j7gzQS9Ph2pWNtO1PJUzqVVoJF0pGJpqDZhqcgQEarV6E+QFom7zYi+gMo7uFlqB3nv27eDY7MVJIHoHNBnUNYibLJ3NG1bNnXiXjvgXcqQjpi1aKDlZCegnI+bE3og7vJ8yR7ecivwtGJdWx8Z92LeQMWSNap67wdOqlv09uR0TXh9K8DYzwPG5a30gwJ/AL0hHanY1ormONidpXJ4jom7LB0J5514MDI6f5iD9WvcspJ7yrI24iZAbUB4CuVhEfNUqrpyy0eePh8+69n+ViZQhjBGXPNzvPd3WAc7Zh5wH2oeStfkd0hZbEGxUXML8P9y/QbgK+nI7uRTqDZ+uIr8GHfdxGpHo/1VkJtSLdDcwWhiP1y+44Kc7/8MNT/1TsDcBcbogv6COdfjiT7dQR9tLfAi7uLgMmAR2MvTkbHdcpRot9HnKyadshWYD8wP1s4vQazDRRhqVC4VtLoNEusFhNsF/WfKV9FnF3Fr+nkO4K5LsNi0cKhOaW1isAq/wN1GKR2YPFMVDQSj8RvTkYq8qsyi2qgiC4Hzve+K50D2I78mO/WRcVuBaDAWf0qQs1G+ozl+jk8yiPxd0N8ZeN3KZN5KXfzpJrpZeupc2UZBMwrfFJcbaQ0Y60Xsr6nova0Bw5uu/XA3EX/wO2DFikjY8QGjrwg/Ai7OA4b4apLl/y/u9+VHwWg8z29I1VQ4oCt8QBgN0urCYLq64u1UdfjPavRK8ovn5nNHqpNUuU7A9AQwulVzeI6rRdH2oUY4T5VrUY5t5ydvZq3sghXuxuG2pvdYza8V8ib51QUprU0cLMLNuNnnuZPiDQzvIZyUQxUtQWQIcEQOQL4G0hyMxn+UjlSs2/Vs62VF38iJ0AaJux3h7bZ5I12glrxD6zvoBLgA5aRgNPFbgUe3O7LmxYu6L+m42zRHae3CAVq0/csKfyIllyQAAAyCSURBVBXlTtgNGNqCRnhyRVVFu7NGxVfsVXlNXId0JzCGiHArbopg7ju/Lsr3kLyi/CDykqLfI//cWwGuAvlVMBrftdlKrVfwne5glHaL66YuqdzhkWa78Wu+/48G7lS4v6+tXz05Ft//YwWOshnxESLObOAuXPLMz+q9D1JLfn10cM+db49vsdC881gV0SXpGvfortLaxP4i3OI5grnva0T5jue4+inlLDBL0e/6BivXxBzgmpaxW1VlWR64hfO4Rdt19i1V//vtAP6GW3jOP04VwB0Z5MGy2uTIjzQ4Tvr7QisUSxwdisZ/bix5DnfRbkCOrVfPVv9bRSeALva1Z2Pj/hvmtfecVeao0eQzp4owLydc/aFnSorzfBnlwlRNuC5V0zKVXx+paK6PVMQUrcLdDL3LH3BNzC3BaLy/B4Z5ueAQOLz0hHiovbb3C/AU+cd+2IIuxeIU0EfIr9EqQH+U04zowmA0eVtpbfyY0pnPWB8pcIRqE0OyTc4VqsxS5PstOJzNuCdBX7lj/w3nigm8iGunc0s5PfHiWWe1uwajBv/RG1swLC6tTQwS4Ze4a0F+U3JNqib89468S32k4gFFr8XdT5OrQa7xTMxgxSz0OIgcyySfb+/eiaqKJtBc01KkyCiRoleKNxd/AeRyYA67R11FoNeLyINiiq4KxeJHfejBEYolioLR+BdVmIbyW9zUOv8zVilyhaCXSsbUvXjWWVnEGYJbSytXFbd7OmLo/uUBRCf6/I25itieKbnC9/zNotyEu0m6M1Kn6A9xUwxzAXIZyI8sEQHxaTn5bLgu3u6imOa/pwDHkc0MWXLFaCfTLLNRLhP4OiovtDB2ZcBvVGVaMJqoCrmZ/B+uaCUUTUomIwei5g6Qi1oBXSMwTUS/m64Ob/L10JFI7gIWW7HyCt23KKao8Vjx1wETnSWutvIDwxHl0lRNuLPAoD5S0QjcVxqNN4pbA9XOMTGXo2xXzGwhT1sM2+YwjHaOQFUNPCvibGNXqethKnok8OrKL49TL+r5a6g2MVvdeqlX+Ai0Ph6pdgrow6W1ycsty7yXqq7QHtccwVhimKLXB4pMvbrEkv+eG4HHBM7f0tj49VR1RR4whs+IiwrH+/yG5Ti6sV16V0yI/EW+JpAK3E1Lue14W5SpewIMH0hmKnop7i783Nl+rSDjyD+y4wBF2vU7LMluIP8suCEIx4+Y/YzkcyrhLf1t/Q5wNsqcFjgSUeR8Ea1XlRtLY/HjekxzhOrm7a/GnowyBTeHoqSF0DQO/Ekt81B6cmWLg21bstMTzx3MNCJt7o/91LTFNpoJkr+l0XHDzTzz9B7wQxVmFUJLCjLT86F+wa48Uo8HyQPHQCA4qnbxw0tqRrea6CTKJhWWs6vKgI0yzsoG7sd3cJGXWTe3bGb8OWM4F+RrntbIfd9DgZtF5ZxgbWKaWCaWqt6zzeed1hzBGc9KMBofpY49C+UOr3F+YGxA5HvG2BcYi+n1rQDjg85wl+RzzU9asdosQteneIclsEzcWqA7Hdd+vo4ywLdFmZaOhAtSwywdCTcqeh9wg4+bsXL6oRn4LyLLG+2MtK05ZDtofb7TaVWiVqv+yvLJFZuMaK0G7C+J6LWedsZnasIIv1W1/hGKJipG1S6Wzk+EDkcgC4qMyhDLzn5FVW6g5eMgNgBzVbmpvibcoTNCRsxIHm9ZuiqnLW8KTElFwk93tG0jZy/c38k4V7kRxAfmaYMoV6dqwtPbBfweFKkFKI3GvyzIHewq8rIW9K4iS37/3ORwhysDBKPx00HuZ1clI4Oa49M1lS93cGyOVTE/xa3/0RLjul1E/mCr87/GyJvLp3SscJ3VscYn+qqYqWI5/1SVH7cAjG3APwWuxNgXdxQYAJalVX4zoEqnDp9ZduHYTZjsbaDXeP7AO8D3VZjZlSSRuMTdTS4oWAtcXWwX/7ozwPBu9LyP+LIQ+UJHf56qGfeSY+tlXnXnOf6wGuinqt/OYj1qRKYGa5N9CwYOFUYBv8TNUPI7FquAbyB8LRUJ16WnjO3s/owLfaqsfoeR9zqt7qeckrUbm2YrWoNyg2dKurQyTjoSzih6n8INIlKNyT6wpGp05xOpHecdUN+EkKrO3GJFVcW2dKT8QeBSRK/GO73BJ8MRblVLywpmVoKx5JWo/sHnbDaq6p9EnZvSU07Zo+JmI2ckj3Qsfc0Htqn1kfDf6CYpi8ZFVeao7CLTFP4J1nn1kXHdtmkrFE1erui9Pmfs8GWR8B7tjhteFx9gO/wS5Kv49gqL6qWpmoq/FEZzwLO4uZ7Gc34eBM7Ekuv2FBgARnY7dTqrkpd216VSGl1QZMQ6UyW/HpkglYI5c8SM+UXd1RbU+q8/Osm6R5Pvkayoqtgiot8C/TxuNYCN3vitFLE7lIEe6KB6WQ0yFQiBvqNYz9ZHxr2/N30xqa5OVjrqf/l0yaai17prPCzMaepGXL6EaD0AuN2y7Os6wtQWQpzAfi9bzubncRO0d8oEbtGZ/Fj2SIOlqisN8FQwlqzH6HiEwcAyY/TFgkYrACfHlspz1ScVRNWGYsnDVPUhcup8qnJLfU34J92kNUaK6BxUB9N6DulbxpgzG6ZU1neLaYnFf64quamOcWPMeQ1TKt8vxP1Pnr1EnrtwlHZ88nRCCgUMFwh6PPnF2hxBH+4GUARCscSpgnkK1SFtTBABjrBsO14aTU4YMWN+lydGGcNDPtMy2Lbl+ELdvzPA2CMSrCAz5P7lgsoJ5CcXv4TIy1353LJo3BbM6arcQ0drgqkOEPT3lmWfXhpdYHdpxxQFVkFe4tEgVTkhXBfvkToqPQIOtXf0QTRIfhGWJGiX1sBSN8/0f/Al9iqyzqcy/KH0iQh3k39MaOEl6zQBC3P5CaB0W9Yu7olx6pniLZbuh1uPPNe+LzJ2oLmLNIYAIw3yuE9jGOBfgtqQE8oKSZQALuNoAYLq8SI8XhpdMBF4rivCXMuRZrV1Ae6hhzuz2U9CdD9ayKT/WGoORA7yEWrvAqsaqsYWPHk2FEsEFJlo3AUzvymZg8h15OdpgLIZW3aPVFQHiOhMET29NLqg4BMr5SYPr8ItD/UBtkEP3GfMCuhY8ovOvy5uQfjCP0kpV7iD3c+2fwyR69PV5S0xiaSryldhy3UIj/tueAxwu4hWdFHn+BOWDwEZte+AQ/EnyL5Ktvi1LtAaw4GZnpbK2aci/0LkS60BIwcgq03foi8hPJbnkqiWAjNLowtKC27nrcAaHzhATNk+Aw4VeZZdG4E2gz6aunhUcwFBYQejiUpVHsNd6dwJDMczFd9IV5d3aEthw/mjt2LJN4DH2ZWJLqgOFtHHgrHk+EJGMUsnj2nCXTzbaeo2qmHevqM5jD6Bu7x+O8K3xbFiBTYllbjFZP01y/+DyLfT1eWdMmHpqvKXsOTbwH99DxoC/K+Iji9k+22oRfgOcDvo1Vgt7m/peteQHpLgjGctCRQFUpPLCxqhhGKJT6nyAG5tC/H5GJemq8vf3K0tHcznKJ21YKg45i8on82PhGW1qnypPjKuobDvkiy2duzIFKKcwkcKHF3gX1hAUJWnyF8rMcBcRC5OV7dc/7MzyT6lsxYcIVkzDXdRzMrxYzapykRgeX1knPk49Kn1cQGGKhWq3MfuVYXmInJda8DorNRPGvcmllwLvtVj1f1F9G8iWlkaXWD1guPDI2XAneyejPQfRL6Rri5PF/Jh6cnlKWz5Bv69rm4UcxcwshccHw6tcYIqj+IyrpZPY0TS1eWruuK56arylVpkVwNP5/Wn6kgRnVMaXXBiLzh6SEbEFljBWHKsKn/HPSst1396GpFvpavL3+vKNtRfOPZdLPkm8IyPBxkkov8ojSbHjqhLWr3g6O6GqxmC6i+8qCRXngWuSVeXN3RHO9KTy+vV9UESPhNzvKA/tR0d3AuO7hZlMLufujQXqE5Hwsu7syn1k8uXmoA12QNmbt+Wm5Zrp/aCo4uD8C24uQ/qhavzgCvSkfBbPdGchknjXldbLvM0iPHa9aoIWz6qXRz4qDbcsfUVKys3ijAJ2ILKPemattdKulyDVJWvCsWSV6nqFUB/hJm2+qoG9YKj62VFVUUGeLgstvBJ4zRl0lNOyXwY2pWqLl82vC5+dXHWKloWKd/OR1gCfMRlefXY7R9S4GY+6n37cSHBeqUXHL3SC45e6QVHr/SCo1d6wdErveDolV5w7GNi2vm/Fxz7rqh/F31Db5/0gsNVE07J3YLMwt0mETN97D/09gr8f72UAqtttGAqAAAAAElFTkSuQmCC); + + background-color: @debugbar-dark-bg; + background-repeat: no-repeat; + background-position: 7px 4px; + background-size: 24px 24px; + } + + .phpdebugbar-indicator span.phpdebugbar-tooltip, + div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text { + background-color: @debugbar-dark-bg; + } + + ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item:nth-child(even) { + background-color: @debugbar-dark-bg-light; + } + + dl.phpdebugbar-widgets-kvlist > :nth-child(4n-1), + dl.phpdebugbar-widgets-kvlist > :nth-child(4n) { + background-color: @debugbar-dark-bg-light; + } + + div.phpdebugbar-panel div.phpdebugbar-widgets-status { + background-color: @debugbar-dark-bg; + } + + ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-value { + background-color: @debugbar-dark-value-bg; + border-bottom: 2px solid @debugbar-dark-value-border; + } + + ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label, + ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-collector { + color: @debugbar-dark-value-text !important; + } + } +} +*/ diff --git a/assets/less/vendor.less b/assets/less/vendor.less new file mode 100644 index 0000000..62b569d --- /dev/null +++ b/assets/less/vendor.less @@ -0,0 +1,764 @@ +/* Force Laravel Whoops exception handler to be displayed under the debug bar */ +.Whoops.container { + z-index: 5999999; +} + +div.phpdebugbar { + font-size: 13px; + font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; + direction: ltr; + text-align: left; + z-index: 6000000; +} + +div.phpdebugbar * { + direction: ltr; + text-align: left; +} + +div.phpdebugbar-openhandler-overlay { + z-index: 6000001; + cursor: pointer; +} + +div.phpdebugbar-openhandler { + border: 1px solid #aaa; + border-top: 3px solid #fa5661; + width: 80%; + height: 70%; + padding: 10px; + border-radius: 5px; + overflow-y: scroll; + z-index: 6000002; + cursor: default; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > a, +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button { + display: inline-block; + cursor: pointer; + margin: 5px; + padding: 0px 12px 2px; + border-radius: 3px; + border: 1px solid #ddd; + color: #000; + font-size: 13px; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form { + margin: 15px 0px 5px; + text-transform: uppercase; + font-size: 13px; + font-weight: bold; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form br { + display: none; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form > b { + display: none; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form input, +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form select { + margin: 0px 10px 10px 2px; + border: 1px solid #aaa; + border-radius: 3px; + padding: 3px 6px 2px; + line-height: 16px; +} + +@media (max-width: 720px) { + div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form select + br, + div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form input[name="uri"] + br { + display: block; + } +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions > form select { + padding: 2px 5px 1px; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions input[name="uri"] { + width: 200px; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions input[name="ip"] { + width: 90px; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-actions button { + outline: none; + margin: 0px 0px 10px 2px; + padding: 5px 15px 4px; + line-height: 12px; +} + +div.phpdebugbar-openhandler table { + margin: 15px 0px 10px; + table-layout: auto; + border-collapse: collapse; + width: 100%; +} + +div.phpdebugbar-openhandler table td, +div.phpdebugbar-openhandler table th { + width: auto!important; + text-align: left; + border: 0px solid #bbb; + padding: 2px 8px; + font-size: 14px; +} + +div.phpdebugbar-openhandler table th { + font-size: 12px; + text-transform: uppercase; + padding: 5px 8px; +} + +div.phpdebugbar-openhandler table th, +div.phpdebugbar-openhandler table tr:nth-child(2n) { + background-color: #efefef; +} + +div.phpdebugbar-openhandler table th:nth-child(1), div.phpdebugbar-openhandler table td:nth-child(1), /* Date */ +div.phpdebugbar-openhandler table th:nth-child(2), div.phpdebugbar-openhandler table td:nth-child(2), /* Method */ +div.phpdebugbar-openhandler table th:nth-child(4), div.phpdebugbar-openhandler table td:nth-child(4), /* IP */ +div.phpdebugbar-openhandler table th:nth-child(5), div.phpdebugbar-openhandler table td:nth-child(5) { /* Filter */ + width: 5%!important; + white-space: nowrap; +} + +div.phpdebugbar-openhandler table th:nth-child(2), div.phpdebugbar-openhandler table td:nth-child(2), /* Method */ +div.phpdebugbar-openhandler table th:nth-child(4), div.phpdebugbar-openhandler table td:nth-child(4), /* IP */ +div.phpdebugbar-openhandler table th:nth-child(5), div.phpdebugbar-openhandler table td:nth-child(5) { /* Filter */ + text-align: center; +} + +div.phpdebugbar-openhandler table th:nth-child(3) { /* URL */ + width: ~"calc(100vw - 100% - 196px)!important"; +} + +div.phpdebugbar-openhandler table td a { + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; +} + +div.phpdebugbar-resize-handle { + display: block!important; + height: 3px; + margin-top: -4px; + width: 100%; + background: none; + cursor: ns-resize; + border-top: none; + border-bottom: 0px; + background-color: #fa5661; +} + +.phpdebugbar.phpdebugbar-minimized div.phpdebugbar-resize-handle { + cursor: default!important; +} + +div.phpdebugbar-closed, +div.phpdebugbar-minimized { + border-top-color: #ddd; +} + +div.phpdebugbar code, div.phpdebugbar pre, div.phpdebugbar samp { + background: none; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 1em; + border: 0; + padding: 0; +} + +div.phpdebugbar .hljs { + padding: 0; +} + +div.phpdebugbar .phpdebugbar-widgets-messages .hljs > code { + padding-bottom: 3px; +} + +div.phpdebugbar code, div.phpdebugbar pre { + color: #000; +} + +div.phpdebugbar-widgets-exceptions .phpdebugbar-widgets-filename { + margin-top: 4px; +} + +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item pre.phpdebugbar-widgets-file { + border: 1px solid #d2d2d2; + border-left: 2px solid #d2d2d2; +} + +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item pre.phpdebugbar-widgets-file[style="display: block;"] ~ div { + display: block; +} + +div.phpdebugbar pre.sf-dump { + color: #000; + outline: none; + padding: 0px!important; +} + +div.phpdebugbar-header { + min-height: 30px; + line-height: 20px; + padding-left: 39px; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-header { + background-size: 20px; + padding: 2px 0px 3px 36px; + background-position: 9px 5px; + border-radius: 3px; +} + +div.phpdebugbar-openhandler .phpdebugbar-openhandler-header a { + cursor: pointer; +} + +a.phpdebugbar-close-btn { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAADDSURBVDhPxZCxCsIwFEUzuGdwCvQD7BIIcehUXDqVfGM/wsG/iG4ifkzMlRuSPLo4eeFBue8c6Iv6b4wxW557Hs0KnWa3seqDxTiOyVqbhmF4UND4Rofdruyce3rvE6bIRSo9GOI1McbLPM/vVm4l7MAQr0kpHaQsJTDE+6zrepym6SVFdNgR69M+hBTLzWCI10gJvydvBkO8ZlmWayvhJnkzGOI1+fBTCOHWPkT7YNiBId4HizxnCKy+r81uX/otSn0A7dioI/vYX+8AAAAASUVORK5CYII=) no-repeat 9px 6px; + color : #555; + border-right: none; +} + +a.phpdebugbar-open-btn { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfdCgYULwwNKp3GAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjOM5pdQAAAA1UlEQVQ4T2OgKpCUlOQH4vdA/B8Jv4dKEwYgDdLS0v8NDQ3/GxsbwzGIj2YoGEO1oQJkjcRgqDZUAJKwsrJ6/v//fwdiMFQbKgAZkpGR0QR0ajy60wlgRJhBXSGhpqb2CNnZhHBkZORcqBEMDFBX2BsYGGBVjAv39vZaQ41gYIC6Ygs2hbiwr6/vdqA+DqgR4CiW19bWxqoYF87Ly4uFaocAZWXlydgU4sJ2dna3ga4QgGqHAC0trY/YFOPCKSkpDVCtCAA01QaIsaYJHFgCqpVagIEBACGlF2c3r4ViAAAAAElFTkSuQmCC) no-repeat 8px 6px; +} + + +div.phpdebugbar-header, +div.phpdebugbar-openhandler-header { + background-size: 21px auto; + background-position: 9px center; +} + +a.phpdebugbar-restore-btn { + border-right-color: #ddd!important; + height: 20px; + width: 23px; + background-position: center; + background-size: 21px; +} + +div.phpdebugbar-header > div > * { + font-size: 13px; + padding: 5px; +} + +div.phpdebugbar-header .phpdebugbar-tab { + padding: 5px 12px; +} + +div.phpdebugbar-header .phpdebugbar-header-left { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.phpdebugbar .phpdebugbar-header select { + margin: 4px 0px 0px 8px; + padding: 2px 3px 3px 3px; + border-radius: 3px; + width: auto; + cursor: pointer; +} + +dl.phpdebugbar-widgets-kvlist dt, +dl.phpdebugbar-widgets-kvlist dd { + min-height: 20px; + line-height: 20px; + padding: 4px 5px 5px; + border-top: 0px; +} + +dl.phpdebugbar-widgets-kvlist dd.phpdebugbar-widgets-value.phpdebugbar-widgets-pretty .phpdebugbar-widgets-code-block { + padding: 0px 0px; + background: transparent; +} + +dl.phpdebugbar-widgets-kvlist dt { + width: 25%; +} + +dl.phpdebugbar-widgets-kvlist dd { + margin-left: 25%; +} + +ul.phpdebugbar-widgets-timeline .phpdebugbar-widgets-measure { + height: 28px; + line-height: 28px; + border: none; +} + +ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-value { + height: 16px; +} + +ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label, +ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-collector { + top: 0px; + font-size: 11px; +} + +ul.phpdebugbar-widgets-timeline li .phpdebugbar-widgets-value span.phpdebugbar-widgets-label { + color: #fff; +} + +ul.phpdebugbar-widgets-timeline table.phpdebugbar-widgets-params { + font-size: 11px; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar { + width: ~"calc(100% - 20px)"; + padding: 4px 0px 4px; + height: 20px; + border: 1px solid #ddd; + border-bottom: 0px; + background-color: #e8e8e8; + border-radius: 5px 5px 0px 0px; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar input { + width: ~"calc(100% - 48px)"; + margin-left: 0px; + border-radius: 3px; + padding: 2px 6px; + height: 15px; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-label, +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-collector { + padding: 1px 0px 0px 10px; + margin: 0px; + text-transform: uppercase; + font-style: normal; + color: #333; +} + +.phpdebugbar-widgets-toolbar i.phpdebugbar-fa.phpdebugbar-fa-search { + position: relative; + top: -1px; + padding: 0px 10px; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter, +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded { + position: relative; + top: -48px; + display: inline-block; + background-color: #6d6d6d; + margin-left: 3px; + border-radius: 3px; + padding: 5px 8px 4px; + text-transform: uppercase; + font-size: 10px; + transition: background-color .25s linear 0s, color .25s linear 0s; + color: #FFF; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter[rel="info"], +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded[rel="info"] { + background-color: #5896e2; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter[rel="error"], +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded[rel="error"] { + background-color: #fa5661; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter[rel="warning"], +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded[rel="warning"] { + background-color: #f99400; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter:hover { + color: #FFF; + opacity: 0.85; +} + +div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter.phpdebugbar-widgets-excluded { + opacity: 0.45; +} + +a.phpdebugbar-tab:hover, +span.phpdebugbar-indicator:hover, +a.phpdebugbar-indicator:hover, +a.phpdebugbar-close-btn:hover, +a.phpdebugbar-minimize-btn:hover, +a.phpdebugbar-maximize-btn:hover, +a.phpdebugbar-open-btn:hover { + background-color: #ebebeb; + /* transition: background-color .25s linear 0s, color .25s linear 0s; */ +} + +a.phpdebugbar-minimize-btn, +a.phpdebugbar-maximize-btn { + width: 28px!important; +} + +a.phpdebugbar-tab.phpdebugbar-active { + background: #fa5661; + background-image: none; + color: #fff !important; +} + +a.phpdebugbar-tab.phpdebugbar-active span.phpdebugbar-badge { + background-color: white; + color: #fa5661; +} + +a.phpdebugbar-tab span.phpdebugbar-badge { + vertical-align: 0px; + padding: 2px 8px 3px 8px; + text-align: center; + background: #fa5661; + font-size: 11px; + font-family: monospace; + color: #fff; + border-radius: 10px; + top: -1px; + position: relative; +} + +.phpdebugbar-indicator { + cursor: text; +} + +.phpdebugbar-indicator span.phpdebugbar-tooltip, +div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text { + border: none; + border-radius: 5px; + font-size: 12px; + width: auto; + white-space: nowrap; + padding: 2px 18px; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text { + left: 0px; + right: auto; +} + +.phpdebugbar-widgets-toolbar > .fa { + width: 25px; + font-size: 15px; + color: #555; + text-align: center; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item { + padding: 7px 10px; + border: none; + font-family: inherit; + overflow: visible; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item:hover, +ul.phpdebugbar-widgets-timeline li:hover { + background-color: initial; +} + +.phpdebugbar-widgets-sqlqueries ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item { + display: flex; + flex-wrap: wrap; +} + +.phpdebugbar-widgets-templates ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item { + display: block; +} + +.phpdebugbar-widgets-templates ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item, +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item { + line-height: 15px; +} + +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item { + cursor: pointer; + display: block; +} + +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-subject { + display: inline-block; + margin-right: 15px; +} + +.phpdebugbar-widgets-mails ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-headers { + margin: 10px 0px; + padding: 7px 10px; + border-left: 2px solid #ddd; + line-height: 17px; +} + +.phpdebugbar-widgets-list .phpdebugbar-widgets-list-item .phpdebugbar-widgets-name { + height: 15px; +} + +.phpdebugbar-widgets-sql.phpdebugbar-widgets-name { + font-weight: bold; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-sql { + flex: 1; + margin-right: 5px; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-duration { + margin-left: auto; + margin-right: 5px; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-database { + margin-left: auto; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-stmt-id { + margin-left: auto; + margin-right: 5px; +} + +ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item table.phpdebugbar-widgets-params { + background-color: #fdfdfd; + margin: 10px 0px; + font-size: 12px; + border-left: 2px solid #cecece; +} + +div.phpdebugbar-widgets-templates table.phpdebugbar-widgets-params th, +div.phpdebugbar-widgets-templates table.phpdebugbar-widgets-params td { + padding: 1px 10px!important; +} + +div.phpdebugbar-widgets-templates table.phpdebugbar-widgets-params th { + padding: 2px 10px!important; + background-color: #efefef; +} + +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name { + width: auto; +} + +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name .phpdebugbar-fa { + position: relative; + top: 1px; + margin-left: 3px; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value { + display: inline-flex; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value:before { + font-family: PhpDebugbarFontAwesome; + content: "\f005"; + color: #333; + font-size: 13px; + margin-right: 8px; + float: left; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-info { + color: #1299DA; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-info:before { + font-family: PhpDebugbarFontAwesome; + content: "\f05a"; + color: #5896e2; + font-size: 15px; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-error { + color: #e74c3c; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-error:before { + color: #fa5661; + font-size: 15px; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-warning:before { + color: #FF9800; + font-size: 13px; +} + +div.phpdebugbar-widgets-messages .phpdebugbar-widgets-value.phpdebugbar-widgets-warning { + color: #FF9800; +} + +div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item pre.sf-dump { + display: inline-block; + position: relative; + top: -1px; +} + +div.phpdebugbar-widgets-sqlqueries { + line-height: 20px; +} + + +div.phpdebugbar-panel div.phpdebugbar-widgets-status { + padding: 9px 20px!important; + width: ~"calc(100% - 20px)"; + margin-left: -10px; + margin-top: -10px; + line-height: 11px!important; + font-weight: bold!important; + border-bottom: 1px solid #cecece!important; +} + +div.phpdebugbar-panel div.phpdebugbar-widgets-status > * { + color: #383838!important; +} + +div.phpdebugbar-panel div.phpdebugbar-widgets-status > span:first-child:before { + font-family: PhpDebugbarFontAwesome; + content: "\f05a"; + color: #737373; + font-size: 14px; + position: relative; + top: 1px; + margin-right: 8px; +} + +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params th, +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td { + padding: 4px 10px; +} + +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params th { + background-color: #efefef; +} + +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name { + text-align: right; + vertical-align: top; + white-space: nowrap; +} + +div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-value { + text-align: left; +} + +div.phpdebugbar-widgets-templates .phpdebugbar-widgets-list-item table.phpdebugbar-widgets-params { + width: auto!important; +} + +ul.phpdebugbar-widgets-list ul.phpdebugbar-widgets-table-list { + text-align: left; +} + +.phpdebugbar-text-muted { + color: #888; +} + +ul.phpdebugbar-widgets-cache a.phpdebugbar-widgets-forget { + float: right; + font-size: 12px; + padding: 0 4px; + background: #fa5661; + margin: 0 2px; + border-radius: 4px; + color: #fff; + text-decoration: none; + line-height: 1.5rem; +} + +a.phpdebugbar-tab i { + line-height: 20px; +} + +div.phpdebugbar-mini-design a.phpdebugbar-tab { + border-right: none; +} + +div.phpdebugbar-header-right > a { + height: 20px; + width: 20px; + background-position: center; +} + +div.phpdebugbar-header-right .phpdebugbar-indicator > i.phpdebugbar-fa { + vertical-align: baseline; + margin-top: 2px; +} + +div.phpdebugbar-panel { + width: ~"calc(100% - 20px)"; + height: ~"calc(100% - 20px)"; + padding: 10px; +} + +div.phpdebugbar-panel table { + margin: 10px 0px!important; + width: 100%!important; +} + +div.phpdebugbar-panel table .phpdebugbar-widgets-name { + font-size: 13px; +} + +.phpdebugbar pre.sf-dump:after { + clear: none!important; +} + +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-message { + color: #dd1044; +} + +div.phpdebugbar-widgets-exceptions li.phpdebugbar-widgets-list-item > div { + display: none; +} + + +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-database:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-duration:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-memory:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-row-count:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-copy-clipboard:before, +div.phpdebugbar-widgets-sqlqueries span.phpdebugbar-widgets-stmt-id:before, +div.phpdebugbar-widgets-templates span.phpdebugbar-widgets-param-count:before { + margin-right: 6px!important; +} + +.phpdebugbar-widgets-list-item .phpdebugbar-widgets-bg-measure { + position: absolute; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + pointer-events: none; +} + +.phpdebugbar-widgets-bg-measure .phpdebugbar-widgets-value { + position: absolute; + height: 100%; + opacity: 0.2; + background: red; +} diff --git a/classes/JavascriptRenderer.php b/classes/JavascriptRenderer.php new file mode 100644 index 0000000..dbb506e --- /dev/null +++ b/classes/JavascriptRenderer.php @@ -0,0 +1,26 @@ +cssFiles as $key => $file) { + if (Str::startsWith($key, 'laravel')) { + unset($this->cssFiles[$key]); + } + } + + // Add Winter's styling + $this->cssFiles['winter'] = __DIR__ . '/../assets/css/debugbar.css'; + } +} diff --git a/classes/ServiceProvider.php b/classes/ServiceProvider.php index 524922f..374fd0d 100644 --- a/classes/ServiceProvider.php +++ b/classes/ServiceProvider.php @@ -1,10 +1,12 @@ app[Kernel::class]; $kernel->pushMiddleware(InjectDebugbar::class); } -} \ No newline at end of file +} diff --git a/classes/WinterDebugbar.php b/classes/WinterDebugbar.php new file mode 100644 index 0000000..2a7c25a --- /dev/null +++ b/classes/WinterDebugbar.php @@ -0,0 +1,21 @@ +jsRenderer === null) { + $this->jsRenderer = new JavascriptRenderer($this, $baseUrl, $basePath); + } + return $this->jsRenderer; + } +} diff --git a/collectors/BackendCollector.php b/collectors/BackendCollector.php new file mode 100644 index 0000000..5b6429b --- /dev/null +++ b/collectors/BackendCollector.php @@ -0,0 +1,122 @@ +controller = $controller; + $this->action = $action; + $this->params = $params; + } + + /** + * {@inheritDoc} + */ + public function collect() + { + $ajaxHandler = $this->controller->getAjaxHandler(); + + $result = [ + 'controller' => get_class($this->controller), + 'action' => $this->action, + 'params' => $this->params, + 'ajaxHandler' => $ajaxHandler, + ]; + + $reflector = $this->getReflector($ajaxHandler); + if ($reflector instanceof \ReflectionMethod) { + $result['controller'] = $reflector->getDeclaringClass()->getName(); + $result['action'] = $reflector->getName(); + } else { + $result['controller'] = $reflector->getName(); + } + + $filename = ltrim(str_replace(base_path(), '', $reflector->getFileName()), '/'); + $result['file'] = $filename . ':' . $reflector->getStartLine() . '-' . $reflector->getEndLine(); + + return $result; + } + + /** + * @param $handler + * @return \ReflectionClass|\ReflectionMethod + * @see Controller::runAjaxHandler() + */ + protected function getReflector($handler) + { + $reflector = new \ReflectionClass($this->controller); + + if ($handler) { + /* + * Process Widget handler + */ + if (strpos($handler, '::')) { + [$widgetName, $handlerName] = explode('::', $handler); + + if (isset($this->controller->widget->{$widgetName}) && ($widget = $this->controller->widget->{$widgetName}) && method_exists($widget, $handlerName)) { + $reflector = new \ReflectionMethod($widget, $handlerName); + } + } else { + /* + * Process page specific handler (index_onSomething) + */ + $pageHandler = $this->action . '_' . $handler; + + if (method_exists($this->controller, $pageHandler)) { + $reflector = new \ReflectionMethod($this->controller, $pageHandler); + } + + /* + * Process page global handler (onSomething) + */ + if (method_exists($this->controller, $handler)) { + $reflector = new \ReflectionMethod($this->controller, $handler); + } + + foreach ((array) $this->controller->widget as $widget) { + if (method_exists($widget, $handler)) { + $reflector = new \ReflectionMethod($widget, $handler); + } + } + } + } + + return $reflector; + } + + /** + * {@inheritDoc} + */ + public function getName() + { + return 'backend'; + } + + /** + * {@inheritDoc} + */ + public function getWidgets() + { + return [ + 'route' => [ + 'icon' => 'share', + 'widget' => 'PhpDebugBar.Widgets.VariableListWidget', + 'map' => 'backend', + 'default' => '{}' + ] + ]; + } +} diff --git a/collectors/CmsCollector.php b/collectors/CmsCollector.php new file mode 100644 index 0000000..1523c33 --- /dev/null +++ b/collectors/CmsCollector.php @@ -0,0 +1,125 @@ +controller = $controller; + $this->url = $url; + $this->page = $page; + } + + /** + * {@inheritDoc} + */ + public function collect() + { + $ajaxHandler = $this->controller->getAjaxHandler(); + + $result = [ + 'controller' => get_class($this->controller), + 'action' => null, + 'url' => $this->url, + 'ajaxHandler' => $ajaxHandler, + 'file' => $this->page->getFileName(), + ]; + + $reflector = $this->getReflector($ajaxHandler); + if ($reflector) { + $filename = ltrim(str_replace(base_path(), '', $reflector->getFileName()), '/'); + $result['file'] = $filename . ':' . $reflector->getStartLine() . '-' . $reflector->getEndLine(); + $result['controller'] = $reflector->getDeclaringClass()->getName(); + $result['action'] = $reflector->getName(); + } + + foreach ($this->page->toArray() as $key => $value) { + $result[$key] = is_scalar($value) ? $value : $this->formatVar($value); + } + + return $result; + } + + /** + * @param $handler + * @return \ReflectionMethod|null + * @see Controller::runAjaxHandler() + */ + protected function getReflector($handler) + { + if (!$handler) { + return null; + } + + $reflector = null; + + if (strpos($handler, '::')) { + /* + * Process Component handler + */ + [$componentName, $handlerName] = explode('::', $handler); + + $componentObj = $this->controller->findComponentByName($componentName); + + if ($componentObj && method_exists($componentObj, $handlerName)) { + $reflector = new \ReflectionMethod($componentObj, $handlerName); + } + } else { + /* + * Process code section handler + */ + if (method_exists($this->page, $handler)) { + $reflector = new \ReflectionMethod($this->page, $handler); + } + + if (!$this->controller->getLayout()->isFallBack() && method_exists($this->controller->getLayout(), $handler)) { + $reflector = new \ReflectionMethod($this->controller->getLayout(), $handler); + } + + /* + * Cycle each component to locate a usable handler + */ + if (($componentObj = $this->controller->findComponentByHandler($handler)) !== null) { + $reflector = new \ReflectionMethod($componentObj, $handler); + } + } + + return $reflector; + } + + /** + * {@inheritDoc} + */ + public function getName() + { + return 'cms'; + } + + /** + * {@inheritDoc} + */ + public function getWidgets() + { + return [ + 'route' => [ + 'icon' => 'share', + 'widget' => 'PhpDebugBar.Widgets.VariableListWidget', + 'map' => 'cms', + 'default' => '{}' + ] + ]; + } +} diff --git a/collectors/ComponentsCollector.php b/collectors/ComponentsCollector.php new file mode 100644 index 0000000..ca9d333 --- /dev/null +++ b/collectors/ComponentsCollector.php @@ -0,0 +1,80 @@ +controller = $controller; + $this->page = $page; + $this->layout = $layout; + } + + /** + * {@inheritDoc} + */ + public function collect() + { + /** @var ComponentBase[]|object $components */ + $components = []; + + foreach ($this->layout->components as $alias => $componentObj) { + $components[$alias] = $this->formatVar($this->makeComponentDetails($componentObj)); + } + + foreach ($this->page->components as $alias => $componentObj) { + $components[$alias] = $this->formatVar($this->makeComponentDetails($componentObj)); + } + + return $components; + } + + /** + * makeComponentDetails builds a useful array to describe a component + */ + protected function makeComponentDetails($componentObj): array + { + return [ + 'class' => get_class($componentObj), + 'props' => $componentObj->getProperties() + ]; + } + + /** + * {@inheritDoc} + */ + public function getName() + { + return 'components'; + } + + /** + * {@inheritDoc} + */ + public function getWidgets() + { + return [ + 'components' => [ + 'icon' => 'puzzle-piece', + 'widget' => 'PhpDebugBar.Widgets.VariableListWidget', + 'map' => 'components', + 'default' => '{}' + ] + ]; + } +} diff --git a/collectors/ModelsCollector.php b/collectors/ModelsCollector.php new file mode 100644 index 0000000..5241c7a --- /dev/null +++ b/collectors/ModelsCollector.php @@ -0,0 +1,25 @@ +bindEvent('model.afterFetch', function () use ($model) { + $class = get_class($model); + $this->models[$class] = ($this->models[$class] ?? 0) + 1; + $this->count++; + }); + }); + } +} diff --git a/config/config.php b/config/config.php index cb36683..3c11857 100644 --- a/config/config.php +++ b/config/config.php @@ -1,255 +1,256 @@ - env('DEBUGBAR_ENABLED', null), - - /* - |-------------------------------------------------------------------------- - | Allow public access - |-------------------------------------------------------------------------- - | - | By default the debugbar requires an authenticated backend user with the - | winter.debugbar.access_debugbar permission in order to view the debugbar - | - | Set this to true to bypass that authentication check. - | - | >**NOTE**: There is no way to bypass the permission check that controls - | access to viewing stored requests (winter.debugbar.access_stored_requests) - | as that can be abused to takeover accounts and steal sensitive information. - | - */ - - 'allow_public_access' => false, - - /* - |-------------------------------------------------------------------------- - | Store all requests - |-------------------------------------------------------------------------- - | - | For security reasons the debugbar will only store requests by a - | backend user with the winter.debugbar.access_debugbar permission. - | - | If you are not concerned about security (for instance, you are in - | a local environment) you can set this to true to log all requests. - | - | Usefull if you want to log requests from Postman without having to worry - | about authentication. WARNING: All stored requests are publicly available without - | any authentication, so do NOT enable this on an environment that's exposed to the - | internet. - - | - */ - - 'store_all_requests' => false, - - - /* - |-------------------------------------------------------------------------- - | Routes to exclude - |-------------------------------------------------------------------------- - | - | Specify the routes that the debugbar is not to be included on - | - */ - - 'except' => [ - 'telescope*' - ], - - /* - |-------------------------------------------------------------------------- - | Storage settings - |-------------------------------------------------------------------------- - | - | DebugBar stores data for session/ajax requests. - | You can disable this, so the debugbar stores data in headers/session, - | but this can cause problems with large data collectors. - | By default, file storage (in the storage folder) is used. Redis and PDO - | can also be used. For PDO, run the package migrations first. - | - */ - - 'storage' => [ - 'enabled' => true, - 'driver' => 'file', // redis, file, pdo, custom - 'path' => storage_path('debugbar'), // For file driver - 'connection' => null, // Leave null for default connection (Redis/PDO) - 'provider' => '' // Instance of StorageInterface for custom driver - ], - - /* - |-------------------------------------------------------------------------- - | Vendors - |-------------------------------------------------------------------------- - | - | Vendor files are included by default, but can be set to false. - | This can also be set to 'js' or 'css', to only include javascript or css vendor files. - | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files) - | and for js: jquery and and highlight.js - | So if you want syntax highlighting, set it to true. - | jQuery is set to not conflict with existing jQuery scripts. - | - */ - - 'include_vendors' => true, - - /* - |-------------------------------------------------------------------------- - | Capture Ajax Requests - |-------------------------------------------------------------------------- - | - | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors), - | you can use this option to disable sending the data through the headers. - | - | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools. - */ - - 'capture_ajax' => true, - 'add_ajax_timing' => false, - - /* - |-------------------------------------------------------------------------- - | Custom Error Handler for Deprecated warnings - |-------------------------------------------------------------------------- - | - | When enabled, the Debugbar shows deprecated warnings for Symfony components - | in the Messages tab. - | - */ - - 'error_handler' => false, - - /* - |-------------------------------------------------------------------------- - | Clockwork integration - |-------------------------------------------------------------------------- - | - | The Debugbar can emulate the Clockwork headers, so you can use the Chrome - | Extension, without the server-side code. It uses Debugbar collectors instead. - | - */ - - 'clockwork' => false, - - /* - |-------------------------------------------------------------------------- - | DataCollectors - |-------------------------------------------------------------------------- - | - | Enable/disable DataCollectors - | - */ - - 'collectors' => [ - 'phpinfo' => true, // Php version - 'messages' => true, // Messages - 'time' => true, // Time Datalogger - 'memory' => true, // Memory usage - 'exceptions' => true, // Exception displayer - 'log' => true, // Logs from Monolog (merged in messages if enabled) - 'db' => true, // Show database (PDO) queries and bindings - 'views' => true, // Views with their data - 'route' => true, // Current route information - 'auth' => false, // Display Laravel authentication status - 'gate' => true, // Display Laravel Gate checks - 'session' => true, // Display session data - 'symfony_request' => true, // Only one can be enabled.. - 'mail' => true, // Catch mail messages - 'laravel' => false, // Laravel version and environment - 'events' => true, // All events fired - 'default_request' => false, // Regular or special Symfony request logger - 'logs' => false, // Add the latest log messages - 'files' => false, // Show the included files - 'config' => false, // Display config settings - 'cache' => false, // Display cache events - 'models' => true, // Display models - ], - - /* - |-------------------------------------------------------------------------- - | Extra options - |-------------------------------------------------------------------------- - | - | Configure some DataCollectors - | - */ - - 'options' => [ - 'auth' => [ - 'show_name' => true, // Also show the users name/email in the debugbar - ], - 'db' => [ - 'with_params' => true, // Render SQL with the parameters substituted - 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. - 'timeline' => false, // Add the queries to the timeline - 'explain' => [ // Show EXPLAIN output on queries - 'enabled' => false, - 'types' => ['SELECT'], // ['SELECT', 'INSERT', 'UPDATE', 'DELETE']; for MySQL 5.6.3+ - ], - 'hints' => true, // Show hints for common mistakes - ], - 'mail' => [ - 'full_log' => false - ], - 'views' => [ - 'data' => false, //Note: Can slow down the application, because the data can be quite large.. - ], - 'route' => [ - 'label' => true // show complete route on bar - ], - 'logs' => [ - 'file' => null - ], - 'cache' => [ - 'values' => true // collect cache values - ], - ], - - /* - |-------------------------------------------------------------------------- - | Inject Debugbar in Response - |-------------------------------------------------------------------------- - | - | Usually, the debugbar is added just before , by listening to the - | Response after the App is done. If you disable this, you have to add them - | in your template yourself. See http://phpdebugbar.com/docs/rendering.html - | - */ - - 'inject' => true, - - /* - |-------------------------------------------------------------------------- - | DebugBar route prefix - |-------------------------------------------------------------------------- - | - | Sometimes you want to set route prefix to be used by DebugBar to load - | its resources from. Usually the need comes from misconfigured web server or - | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97 - | - */ - - 'route_prefix' => '_debugbar', - - /* - |-------------------------------------------------------------------------- - | DebugBar route domain - |-------------------------------------------------------------------------- - | - | By default DebugBar route served from the same domain that request served. - | To override default domain, specify it as a non-empty value. - */ - - 'route_domain' => null, -]; + env('DEBUGBAR_ENABLED', null), + + /* + |-------------------------------------------------------------------------- + | Allow public access + |-------------------------------------------------------------------------- + | + | By default the debugbar requires an authenticated backend user with the + | winter.debugbar.access_debugbar permission in order to view the debugbar + | + | Set this to true to bypass that authentication check. + | + | >**NOTE**: There is no way to bypass the permission check that controls + | access to viewing stored requests (winter.debugbar.access_stored_requests) + | as that can be abused to takeover accounts and steal sensitive information. + | + */ + + 'allow_public_access' => false, + + /* + |-------------------------------------------------------------------------- + | Store all requests + |-------------------------------------------------------------------------- + | + | For security reasons the debugbar will only store requests by a + | backend user with the winter.debugbar.access_debugbar permission. + | + | If you are not concerned about security (for instance, you are in + | a local environment) you can set this to true to log all requests. + | + | Usefull if you want to log requests from Postman without having to worry + | about authentication. WARNING: All stored requests are publicly available without + | any authentication, so do NOT enable this on an environment that's exposed to the + | internet. + | + */ + + 'store_all_requests' => false, + + /* + |-------------------------------------------------------------------------- + | Routes to exclude + |-------------------------------------------------------------------------- + | + | Specify the routes that the debugbar is not to be included on + | + */ + + 'except' => [ + 'telescope*' + ], + + /* + |-------------------------------------------------------------------------- + | Storage settings + |-------------------------------------------------------------------------- + | + | DebugBar stores data for session/ajax requests. + | You can disable this, so the debugbar stores data in headers/session, + | but this can cause problems with large data collectors. + | By default, file storage (in the storage folder) is used. Redis and PDO + | can also be used. For PDO, run the package migrations first. + | + */ + + 'storage' => [ + 'enabled' => true, + 'driver' => 'file', // redis, file, pdo, custom + 'path' => storage_path('debugbar'), // For file driver + 'connection' => null, // Leave null for default connection (Redis/PDO) + 'provider' => '' // Instance of StorageInterface for custom driver + ], + + /* + |-------------------------------------------------------------------------- + | Vendors + |-------------------------------------------------------------------------- + | + | Vendor files are included by default, but can be set to false. + | This can also be set to 'js' or 'css', to only include javascript or css vendor files. + | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files) + | and for js: jquery and and highlight.js + | So if you want syntax highlighting, set it to true. + | jQuery is set to not conflict with existing jQuery scripts. + | + */ + + 'include_vendors' => true, + + /* + |-------------------------------------------------------------------------- + | Capture Ajax Requests + |-------------------------------------------------------------------------- + | + | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors), + | you can use this option to disable sending the data through the headers. + | + | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools. + */ + + 'capture_ajax' => true, + 'add_ajax_timing' => false, + + /* + |-------------------------------------------------------------------------- + | Custom Error Handler for Deprecated warnings + |-------------------------------------------------------------------------- + | + | When enabled, the Debugbar shows deprecated warnings for Symfony components + | in the Messages tab. + | + */ + + 'error_handler' => false, + + /* + |-------------------------------------------------------------------------- + | Clockwork integration + |-------------------------------------------------------------------------- + | + | The Debugbar can emulate the Clockwork headers, so you can use the Chrome + | Extension, without the server-side code. It uses Debugbar collectors instead. + | + */ + + 'clockwork' => false, + + /* + |-------------------------------------------------------------------------- + | DataCollectors + |-------------------------------------------------------------------------- + | + | Enable/disable DataCollectors + | + */ + + 'collectors' => [ + 'phpinfo' => true, // Php version + 'messages' => true, // Messages + 'time' => true, // Time Datalogger + 'memory' => true, // Memory usage + 'exceptions' => true, // Exception displayer + 'log' => true, // Logs from Monolog (merged in messages if enabled) + 'db' => true, // Show database (PDO) queries and bindings + 'views' => false, // Views with their data + 'route' => true, // Current route information + 'auth' => false, // Display Laravel authentication status + 'gate' => true, // Display Laravel Gate checks + 'session' => true, // Display session data + 'symfony_request' => true, // Only one can be enabled.. + 'mail' => true, // Catch mail messages + 'laravel' => false, // Laravel version and environment + 'events' => true, // All events fired + 'default_request' => false, // Regular or special Symfony request logger + 'logs' => false, // Add the latest log messages + 'files' => false, // Show the included files + 'config' => false, // Display config settings + 'cache' => false, // Display cache events + 'models' => true, // Display models + 'backend' => true, // Current route and AJAX handler info for the Backend module + 'cms' => true, // Current route, template and AJAX handler info for the CMS module + 'components' => true, // CMS component information + ], + + /* + |-------------------------------------------------------------------------- + | Extra options + |-------------------------------------------------------------------------- + | + | Configure some DataCollectors + | + */ + + 'options' => [ + 'auth' => [ + 'show_name' => true, // Also show the users name/email in the debugbar + ], + 'db' => [ + 'with_params' => true, // Render SQL with the parameters substituted + 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. + 'timeline' => false, // Add the queries to the timeline + 'explain' => [ // Show EXPLAIN output on queries + 'enabled' => false, + 'types' => ['SELECT'], // ['SELECT', 'INSERT', 'UPDATE', 'DELETE']; for MySQL 5.6.3+ + ], + 'hints' => true, // Show hints for common mistakes + ], + 'mail' => [ + 'full_log' => false + ], + 'views' => [ + 'data' => false, //Note: Can slow down the application, because the data can be quite large.. + ], + 'route' => [ + 'label' => true // show complete route on bar + ], + 'logs' => [ + 'file' => null + ], + 'cache' => [ + 'values' => true // collect cache values + ], + ], + + /* + |-------------------------------------------------------------------------- + | Inject Debugbar in Response + |-------------------------------------------------------------------------- + | + | Usually, the debugbar is added just before , by listening to the + | Response after the App is done. If you disable this, you have to add them + | in your template yourself. See http://phpdebugbar.com/docs/rendering.html + | + */ + + 'inject' => true, + + /* + |-------------------------------------------------------------------------- + | DebugBar route prefix + |-------------------------------------------------------------------------- + | + | Sometimes you want to set route prefix to be used by DebugBar to load + | its resources from. Usually the need comes from misconfigured web server or + | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97 + | + */ + + 'route_prefix' => '_debugbar', + + /* + |-------------------------------------------------------------------------- + | DebugBar route domain + |-------------------------------------------------------------------------- + | + | By default DebugBar route served from the same domain that request served. + | To override default domain, specify it as a non-empty value. + */ + + 'route_domain' => null, +]; diff --git a/middleware/InjectDebugbar.php b/middleware/InjectDebugbar.php index 2ceb8f5..1c931da 100644 --- a/middleware/InjectDebugbar.php +++ b/middleware/InjectDebugbar.php @@ -1,12 +1,13 @@