├── resources
├── views
│ ├── auth
│ │ ├── partials
│ │ │ └── logo.blade.php
│ │ ├── layout.blade.php
│ │ └── login.blade.php
│ └── partials
│ │ ├── meta.blade.php
│ │ ├── toggle.blade.php
│ │ ├── footer.blade.php
│ │ ├── user.blade.php
│ │ └── logo.blade.php
├── js
│ ├── toggle.js
│ ├── components
│ │ ├── icons
│ │ │ └── IconToggle.vue
│ │ └── NovaDarkThemeToggle.vue
│ └── theme.js
├── css
│ ├── marshmallow-theme.css
│ └── responsive.css
└── sass
│ └── dark.scss
├── .gitignore
├── mix-manifest.json
├── webpack.mix.js
├── src
├── Theme.php
└── ThemeServiceProvider.php
├── CHANGELOG.md
├── .github
├── workflows
│ └── php-syntax-checker.yml
└── dependabot.yml
├── package.json
├── dist
├── css
│ ├── marshmallow-theme.css
│ ├── dark.css
│ └── responsive.css
└── js
│ └── theme.js
├── config
└── nova-styling.php
├── LICENSE
├── .php_cs.cache
├── .php_cs.dist
├── composer.json
├── README.md
└── composer.lock
/resources/views/auth/partials/logo.blade.php:
--------------------------------------------------------------------------------
1 | @include('nova::partials.logo', ['width' => '220', 'height' => '40'])
2 |
--------------------------------------------------------------------------------
/resources/views/partials/meta.blade.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea
2 | /vendor
3 | /node_modules
4 | composer.phar
5 | phpunit.xml
6 | .phpunit.result.cache
7 | .DS_Store
8 | Thumbs.db
9 |
--------------------------------------------------------------------------------
/resources/views/partials/toggle.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{-- label="{{ __('Dark Theme') }}" --}}
4 |
5 |
--------------------------------------------------------------------------------
/mix-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "/dist/js/theme.js": "/dist/js/theme.js",
3 | "/dist/css/dark.css": "/dist/css/dark.css",
4 | "/dist/css/marshmallow-theme.css": "/dist/css/marshmallow-theme.css",
5 | "/dist/css/responsive.css": "/dist/css/responsive.css"
6 | }
7 |
--------------------------------------------------------------------------------
/webpack.mix.js:
--------------------------------------------------------------------------------
1 | let mix = require("laravel-mix");
2 |
3 | mix.js("resources/js/theme.js", "dist/js")
4 | .vue()
5 | .sass("resources/sass/dark.scss", "dist/css")
6 | .copy("resources/css/marshmallow-theme.css", "dist/css")
7 | .copy("resources/css/responsive.css", "dist/css");
8 |
--------------------------------------------------------------------------------
/src/Theme.php:
--------------------------------------------------------------------------------
1 | version);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | (https://marshmallow.dev)
2 |
3 | # Change Log
4 |
5 | ## 1.3.0-beta - 25-April-2020
6 |
7 | - Updated Publishing.
8 | - Added Responsive Theme & Options.
9 |
10 | ## 1.0.0-beta - 25-Jan-2020
11 |
12 | - Initial beta release.
13 |
14 | - - -
15 |
16 | Copyright (c) 2020 marshmallow
--------------------------------------------------------------------------------
/resources/js/toggle.js:
--------------------------------------------------------------------------------
1 | function darkTheme() {
2 | var toggle = document.querySelector(".dark-theme-toggle");
3 |
4 | toggle.addEventListener(
5 | "click",
6 | function (e) {
7 | e.stopPropagation();
8 | var html = document.querySelector("html");
9 | html.classList.toggle("nova-dark-theme");
10 | },
11 | true
12 | );
13 | }
14 |
15 | document.addEventListener("DOMContentLoaded", darkTheme, false);
16 |
--------------------------------------------------------------------------------
/.github/workflows/php-syntax-checker.yml:
--------------------------------------------------------------------------------
1 | name: PHP Syntax Checker
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | pull_request:
8 | branches:
9 | - master
10 | jobs:
11 | php-cs-fixer:
12 | name: PHP Syntax Checker
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Checkout v3
16 | uses: actions/checkout@v3
17 |
18 | - name: Check PHP syntax errors
19 | uses: overtrue/phplint@8.0
20 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: composer
4 | directory: "/"
5 | schedule:
6 | interval: daily
7 | time: "10:00"
8 | timezone: Europe/Amsterdam
9 | open-pull-requests-limit: 10
10 | - package-ecosystem: npm
11 | directory: "/"
12 | schedule:
13 | interval: daily
14 | time: "10:00"
15 | timezone: Europe/Amsterdam
16 | open-pull-requests-limit: 10
17 | - package-ecosystem: "github-actions"
18 | directory: "/"
19 | schedule:
20 | interval: "daily"
21 | time: "10:00"
22 | timezone: Europe/Amsterdam
23 | open-pull-requests-limit: 10
24 |
--------------------------------------------------------------------------------
/resources/views/partials/footer.blade.php:
--------------------------------------------------------------------------------
1 |
2 | {{ config('app.name') }} {{ __('by') }} Marshmallow © {{ date('Y') }}·
3 |
4 |
5 | {{ __('Theme') }} v{{ \Marshmallow\NovaStyling\Theme::version() }}
6 | ·
7 | Laravel Nova v{{ \Laravel\Nova\Nova::version() }}
8 |
9 | {{-- --}}
10 |
11 |
--------------------------------------------------------------------------------
/resources/js/components/icons/IconToggle.vue:
--------------------------------------------------------------------------------
1 |
2 |
14 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "dev": "mix",
5 | "watch": "mix watch",
6 | "watch-poll": "mix watch -- --watch-options-poll=1000",
7 | "hot": "mix watch --hot",
8 | "prod": "mix --production",
9 | "format": "prettier --write 'resources/**/*.{js,scss,vue}'"
10 | },
11 | "devDependencies": {
12 | "cross-env": "^7.0.3",
13 | "laravel-mix": "^6.0.39",
14 | "laravel-nova": "^1.12.3",
15 | "resolve-url-loader": "^4.0.0",
16 | "sass": "^1.44.0",
17 | "sass-loader": "^12.4.0",
18 | "vue-loader": "^15.9.8",
19 | "vue-template-compiler": "^2.6.14"
20 | },
21 | "dependencies": {
22 | "vue": "^2.6.14"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/dist/css/marshmallow-theme.css:
--------------------------------------------------------------------------------
1 | :root{--primary:rgb(255, 18, 59, 1);--primary-dark:rgb(206, 6, 42, 1);--primary-70:rgba(255, 18, 59, 0.7);--primary-50:rgba(255, 18, 59, 0.5);--primary-30:rgba(255, 18, 59, 0.3);--primary-10:rgba(255, 18, 59, 0.1);--logo:#ff123b;--sidebar-icon:#fff;--secondary:#5c7aff;--tertiary:#fbaf00;--dark:#292f36;--blue:#5c7aff;--yellow:#f4e409;--dark-green:#218380;--orange:#fbaf00}.bg-grad-sidebar{background-image:-webkit-gradient(linear,left bottom,left top,from(#ff123b),to(#3c4655));background-image:linear-gradient(0deg,#ff123b,#fe4d6b)}.text-secondary{color:var(--secondary)}.text-primary-bold{color:var(--primary);font-weight:600}.p-relative{position:relative}.current-language-header-icon{position:absolute;height:20px;width:20px;top:-2px;left:20px;border:2px solid --tertiary;padding:2px;background:#fff}
2 |
--------------------------------------------------------------------------------
/config/nova-styling.php:
--------------------------------------------------------------------------------
1 | false,
7 |
8 | // List of sidebar headlines to hide (Ex.: ["Other"])
9 | 'hidden_sidebar_headlines' => [],
10 |
11 | // If true, the resource tables actions will be always visible (sticky)
12 | 'resource_tables_sticky_actions' => false,
13 |
14 | // If true, the resource tables actions will be always visible (sticky) on mobile
15 | 'resource_tables_sticky_actions_on_mobile' => false,
16 |
17 | // If true, hides the "Update & Continue Editing" button on "Update" forms
18 | 'hide_update_and_continue_editing_button' => false,
19 |
20 | // If true, hides the "Update & Continue Editing" button on "Update" forms (mobile only)
21 | 'hide_update_and_continue_editing_button_on_mobile' => false,
22 |
23 | // If true, the sidebar will stay fixed on desktop view
24 | 'fixed_sidebar' => false,
25 |
26 | ];
27 |
--------------------------------------------------------------------------------
/resources/views/partials/user.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | @if (class_exists('\Marshmallow\Translatable\Models\Language'))
6 |
8 | @endif
9 |
10 |
11 | {{ $user->name ?? $user->email ?? __('Marshmallow User') }}
12 |
13 |
14 |
15 |
16 |
23 |
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Marshmallow-Development
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/resources/views/auth/layout.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {{ \Laravel\Nova\Nova::name() }}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | @include('nova::partials.meta')
18 |
19 |
20 | @foreach(\Laravel\Nova\Nova::themeStyles() as $publicPath)
21 |
22 | @endforeach
23 |
24 |
25 |
26 |
27 | @yield('content')
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/.php_cs.cache:
--------------------------------------------------------------------------------
1 | {"php":"7.4.10","version":"2.16.4","indent":" ","lineEnding":"\n","rules":{"blank_line_after_namespace":true,"braces":true,"class_definition":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline","keep_multiple_spaces_after_comma":true},"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"ordered_imports":{"sortAlgorithm":"alpha"},"no_unused_imports":true,"not_operator_with_successor_space":true,"trailing_comma_in_multiline_array":true,"phpdoc_scalar":true,"unary_operator_spaces":true,"binary_operator_spaces":true,"blank_line_before_statement":{"statements":["break","continue","declare","return","throw","try"]},"phpdoc_single_line_var_spacing":true,"phpdoc_var_without_name":true,"class_attributes_separation":{"elements":["method","property"]}},"hashes":{"src\/ThemeServiceProvider.php":4072422129}}
--------------------------------------------------------------------------------
/.php_cs.dist:
--------------------------------------------------------------------------------
1 | notPath('bootstrap/*')
5 | ->notPath('storage/*')
6 | ->notPath('vendor')
7 | ->in([
8 | __DIR__ . '/src',
9 | ])
10 | ->name('*.php')
11 | ->ignoreDotFiles(true)
12 | ->ignoreVCS(true);
13 |
14 | return PhpCsFixer\Config::create()
15 | ->setRules([
16 | '@PSR2' => true,
17 | 'array_syntax' => ['syntax' => 'short'],
18 | 'ordered_imports' => ['sortAlgorithm' => 'length'],
19 | 'no_unused_imports' => true,
20 | 'not_operator_with_successor_space' => true,
21 | 'trailing_comma_in_multiline_array' => true,
22 | 'phpdoc_scalar' => true,
23 | 'unary_operator_spaces' => true,
24 | 'binary_operator_spaces' => true,
25 | 'blank_line_before_statement' => [
26 | 'statements' => ['break', 'continue', 'declare', 'return', 'throw', 'try'],
27 | ],
28 | 'phpdoc_single_line_var_spacing' => true,
29 | 'phpdoc_var_without_name' => true,
30 | 'class_attributes_separation' => [
31 | 'elements' => [
32 | 'method', 'property',
33 | ],
34 | ],
35 | 'method_argument_space' => [
36 | 'on_multiline' => 'ensure_fully_multiline',
37 | 'keep_multiple_spaces_after_comma' => true,
38 | ]
39 | ])
40 | ->setFinder($finder);
41 |
--------------------------------------------------------------------------------
/resources/css/marshmallow-theme.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --primary: rgb(255, 18, 59, 1);
3 | /* --primary-dark: rgb(209, 0, 105, 1); */
4 | --primary-dark: rgb(206, 6, 42, 1);
5 | --primary-70: rgba(255, 18, 59, 0.7);
6 | --primary-50: rgba(255, 18, 59, 0.5);
7 | --primary-30: rgba(255, 18, 59, 0.3);
8 | --primary-10: rgba(255, 18, 59, 0.1);
9 | --logo: #ff123b;
10 | --sidebar-icon: #fff;
11 | --secondary: #5c7aff;
12 | --tertiary: #fbaf00;
13 | --dark: #292f36;
14 | --blue: #5c7aff;
15 | --yellow: #f4e409;
16 | --dark-green: #218380;
17 | --orange: #fbaf00;
18 | }
19 |
20 | .bg-grad-sidebar {
21 | background-image: -webkit-gradient(
22 | linear,
23 | left bottom,
24 | left top,
25 | from(rgb(255, 18, 59, 1)),
26 | to(#3c4655)
27 | );
28 |
29 | background-image: linear-gradient(
30 | 0deg,
31 | rgb(255, 18, 59, 1),
32 | rgb(254, 77, 107)
33 | );
34 | }
35 |
36 | /* .bg-gray-100 {
37 | --bg-opacity: 1;
38 | background-color:#eef1f3;
39 | background-color: rgba(238, 241, 243, var(--bg-opacity));
40 | } */
41 |
42 | .text-secondary {
43 | color: var(--secondary);
44 | }
45 |
46 | .text-primary-bold {
47 | color: var(--primary);
48 | font-weight: 600;
49 | }
50 |
51 | .p-relative {
52 | position: relative;
53 | }
54 |
55 | .current-language-header-icon {
56 | position: absolute;
57 | height: 20px;
58 | width: 20px;
59 | top: -2px;
60 | left: 20px;
61 | border: 2px solid --tertiary;
62 | padding: 2px;
63 | background: white;
64 | }
65 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "marshmallow/nova-styling",
3 | "description": "A Responsive Laravel Nova Marshmallow Theme based on 'A Responsive Laravel Nova theme'. With dark mode :)",
4 | "keywords": [
5 | "Laravel Nova Theme",
6 | "Marshmallow Theme",
7 | "Dark Mode",
8 | "Laravel Nova Dark Mode",
9 | "Marshmallow",
10 | "laravel",
11 | "nova",
12 | "Responsive Laravel Nova Theme"
13 | ],
14 | "homepage": "https://github.com/marshmallow-packages/nova-styling",
15 | "license": "MIT",
16 | "authors": [
17 | {
18 | "name": "Stef van Esch",
19 | "email": "stef@marshmallow.dev",
20 | "homepage": "https://marshmallow.dev/",
21 | "role": "Developer"
22 | },
23 | {
24 | "name": "LTKort",
25 | "email": "lars@kort.dev",
26 | "homepage": "https://kort.dev/",
27 | "role": "Developer"
28 | }
29 | ],
30 | "require": {
31 | "php": "^8.0",
32 | "marshmallow/categorise-resources": "^1.0.0"
33 | },
34 | "require-dev": {},
35 | "autoload": {
36 | "psr-4": {
37 | "Marshmallow\\NovaStyling\\": "src"
38 | }
39 | },
40 | "autoload-dev": {
41 | "psr-4": {
42 | "Marshmallow\\NovaStyling\\": "src"
43 | }
44 | },
45 | "extra": {
46 | "laravel": {
47 | "providers": [
48 | "Marshmallow\\NovaStyling\\ThemeServiceProvider"
49 | ]
50 | }
51 | },
52 | "minimum-stability": "dev",
53 | "prefer-stable": true
54 | }
55 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Laravel Nova Styling
4 | This package customizes Laravel Nova with the original Marshmallow styling. Implemented for all multipurpose CMS systems created and developed by Marshmallow.
5 |
6 | ## We support darkmode 🌙
7 | [](https://marshmallow.dev)
8 |
9 | ### Installation
10 | ```bash
11 | composer require marshmallow/nova-styling
12 | ```
13 |
14 | ### Vendor Publish
15 | This theme includes adapted Nova blade files and a config file with options based on Nova Responsive Theme. To use them, first publish the config file:
16 | ```bash
17 | php artisan vendor:publish --provider="Marshmallow\NovaStyling\ThemeServiceProvider" --tag="config" --force
18 | php artisan vendor:publish --provider="Marshmallow\NovaStyling\ThemeServiceProvider" --tag="views" --force
19 | php artisan vendor:publish --provider="Marshmallow\NovaStyling\ThemeServiceProvider" --tag="styling" --force
20 | ```
21 |
22 | ## Changelog
23 |
24 | Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
25 |
26 | ## Security
27 |
28 | If you discover any security related issues, please email stef@marshmallow.dev instead of using the issue tracker.
29 |
30 | ## Credits
31 |
32 | - [All Contributors](../../contributors)
33 |
34 | Responsive design is based on Nova Responsive Theme by Gregoriohc.
35 | See https://github.com/gregoriohc/laravel-nova-theme-responsive
36 | - [Gregorio Hernández Caso](https://github.com/gregoriohc)
37 |
38 | ## License
39 |
40 | The MIT License (MIT). Please see [License File](LICENSE) for more information.
41 |
--------------------------------------------------------------------------------
/src/ThemeServiceProvider.php:
--------------------------------------------------------------------------------
1 | config('nova-styling'),
30 | ]);
31 | });
32 |
33 | // Publishes Config
34 | $this->publishes([
35 | self::CONFIG_FILE => config_path('nova-styling.php'),
36 | ], 'config');
37 |
38 | // Views
39 | $this->publishes([
40 | self::NOVA_VIEWS_PATH => resource_path('views/vendor/nova'),
41 | ], 'views');
42 |
43 | // Publish Public CSS for login screen
44 | $this->publishes([
45 | self::CSS_PATH => public_path('vendor/marshmallow/nova-styling'),
46 | ], 'styling');
47 |
48 | // Sets CSS file as asset
49 | Nova::style('nova-styling-mm', asset('vendor/marshmallow/nova-styling/marshmallow-theme.css'));
50 | // Nova::style(asset('vendor/marshmallow/nova-styling/responsive.css'));
51 | }
52 |
53 | /**
54 | * Register any application services.
55 | *
56 | * @return void
57 | */
58 | public function register()
59 | {
60 | $this->mergeConfigFrom(
61 | self::CONFIG_FILE,
62 | 'nova-styling'
63 | );
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/resources/views/auth/login.blade.php:
--------------------------------------------------------------------------------
1 | @extends('nova::auth.layout')
2 |
3 | @section('content')
4 |
5 | @include('nova::auth.partials.header')
6 |
7 |
58 | @endsection
59 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 | "This file is @generated automatically"
6 | ],
7 | "content-hash": "77ca1c0ed1ef0a3bbe50cd90c6fc7140",
8 | "packages": [
9 | {
10 | "name": "marshmallow/categorise-resources",
11 | "version": "v1.3.2",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/marshmallow-packages/categorise-resources.git",
15 | "reference": "e82769675c082cc33ec5196a1c9b8762e4d5536d"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/marshmallow-packages/categorise-resources/zipball/e82769675c082cc33ec5196a1c9b8762e4d5536d",
20 | "reference": "e82769675c082cc33ec5196a1c9b8762e4d5536d",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": "^7.1|^8.0"
25 | },
26 | "type": "library",
27 | "extra": {
28 | "laravel": {
29 | "providers": [
30 | "Marshmallow\\CategoriseResources\\ToolServiceProvider"
31 | ]
32 | }
33 | },
34 | "autoload": {
35 | "psr-4": {
36 | "Marshmallow\\CategoriseResources\\": "src/"
37 | }
38 | },
39 | "notification-url": "https://packagist.org/downloads/",
40 | "license": [
41 | "MIT"
42 | ],
43 | "authors": [
44 | {
45 | "name": "Stef van Esch",
46 | "email": "stef@marshmallow.dev",
47 | "role": "Developer"
48 | },
49 | {
50 | "name": "Alex Bowers",
51 | "email": "bowersbros@gmail.com",
52 | "role": "Developer"
53 | }
54 | ],
55 | "description": "Group and categorise your nova resources",
56 | "homepage": "https://github.com/marshmallow-packages/categorise-resources",
57 | "keywords": [
58 | "laravel",
59 | "nova"
60 | ],
61 | "support": {
62 | "issues": "https://github.com/marshmallow-packages/categorise-resources/issues",
63 | "source": "https://github.com/marshmallow-packages/categorise-resources/tree/v1.3.2"
64 | },
65 | "time": "2021-07-01T17:55:08+00:00"
66 | }
67 | ],
68 | "packages-dev": [],
69 | "aliases": [],
70 | "minimum-stability": "dev",
71 | "stability-flags": [],
72 | "prefer-stable": true,
73 | "prefer-lowest": false,
74 | "platform": {
75 | "php": "^8.0"
76 | },
77 | "platform-dev": [],
78 | "plugin-api-version": "2.3.0"
79 | }
80 |
--------------------------------------------------------------------------------
/resources/js/components/NovaDarkThemeToggle.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
15 |
16 |
17 |
18 |
77 |
78 |
111 |
--------------------------------------------------------------------------------
/resources/js/theme.js:
--------------------------------------------------------------------------------
1 | Nova.booting((Vue, router) => {
2 | Vue.component(
3 | "nova-dark-theme-toggle",
4 | require("./components/NovaDarkThemeToggle").default
5 | );
6 | });
7 |
8 | if (localStorage.darkThemeOn === "true") {
9 | document.querySelector("html").classList.add("nova-dark-theme");
10 | document.querySelector("body").classList.add("nova-dark-theme");
11 | } else {
12 | document.querySelector("html").classList.remove("nova-dark-theme");
13 | document.querySelector("body").classList.remove("nova-dark-theme");
14 | }
15 |
16 | function load() {
17 | // Set viewport
18 | var viewport = document.querySelector("meta[name=viewport]");
19 | viewport.setAttribute(
20 | "content",
21 | "width=device-width, initial-scale=1, shrink-to-fit=no"
22 | );
23 |
24 | // Add hidden class to sidebar
25 | var sidebar = document.querySelector(".w-sidebar");
26 | sidebar.classList.add("sidebar-hidden");
27 |
28 | // Add hamburger menu to header
29 | var hamburger = document.createElement("span");
30 | hamburger.className = "hamburger-menu";
31 | var contentHeader = document.querySelector(".content .h-header");
32 | contentHeader.prepend(hamburger);
33 |
34 | // Hamburger click event
35 | hamburger.addEventListener(
36 | "click",
37 | function (e) {
38 | e.stopPropagation();
39 | var sidebar = document.querySelector(".w-sidebar");
40 | sidebar.classList.toggle("sidebar-hidden");
41 | },
42 | true
43 | );
44 |
45 | var sidebarLinks = document.querySelectorAll(
46 | ".w-sidebar a, .w-sidebar .cursor-pointer:not(.nc-head), .w-sidebar .nc-item-link"
47 | );
48 | sidebarLinks.forEach(function (sidebarLink) {
49 | sidebarLink.addEventListener(
50 | "click",
51 | function () {
52 | var sidebar = document.querySelector(".w-sidebar");
53 | sidebar.classList.add("sidebar-hidden");
54 | },
55 | false
56 | );
57 | });
58 |
59 | // Hide sidebar when clicking outside
60 | var rootElements = document.querySelectorAll("body,html");
61 | rootElements.forEach(function (rootElement) {
62 | rootElement.addEventListener("click", function (e) {
63 | var sidebar = document.querySelector(".w-sidebar");
64 | if (e.target !== sidebar && !sidebar.contains(e.target)) {
65 | sidebar.classList.add("sidebar-hidden");
66 | }
67 | });
68 | });
69 |
70 | // Config based theme tweaking
71 | if (Nova.config.mmns) {
72 | // Hide sidebar headlines
73 | var sidebarHeadlines = document.querySelectorAll(".w-sidebar h4");
74 | sidebarHeadlines.forEach(function (sidebarHeadline) {
75 | if (
76 | Nova.config.mmns.hide_all_sidebar_headlines ||
77 | Nova.config.mmns.hidden_sidebar_headlines.indexOf(
78 | sidebarHeadline.textContent
79 | ) !== -1
80 | ) {
81 | sidebarHeadline.classList.add("hidden");
82 | }
83 | });
84 |
85 | // Sticky resource table actions
86 | if (Nova.config.mmns.resource_tables_sticky_actions) {
87 | var contents = document.querySelectorAll(".content");
88 | contents.forEach(function (content) {
89 | content.classList.add("sticky-actions");
90 | });
91 | }
92 | if (Nova.config.mmns.resource_tables_sticky_actions_on_mobile) {
93 | var contents = document.querySelectorAll(".content");
94 | contents.forEach(function (content) {
95 | content.classList.add("sticky-actions-on-mobile");
96 | });
97 | }
98 |
99 | // Hide "Update & Continue Editing" button
100 | if (Nova.config.mmns.hide_update_and_continue_editing_button) {
101 | var contents = document.querySelectorAll(".content");
102 | contents.forEach(function (content) {
103 | content.classList.add(
104 | "hide-update-and-continue-editing-button"
105 | );
106 | });
107 | }
108 | if (
109 | Nova.config.mmns.hide_update_and_continue_editing_button_on_mobile
110 | ) {
111 | var contents = document.querySelectorAll(".content");
112 | contents.forEach(function (content) {
113 | content.classList.add(
114 | "hide-update-and-continue-editing-button-on-mobile"
115 | );
116 | });
117 | }
118 |
119 | // Fixed sidebar on desktop
120 | if (Nova.config.mmns.fixed_sidebar) {
121 | document.querySelector("body").classList.add("fixed-sidebar");
122 | }
123 | }
124 | }
125 |
126 | document.addEventListener("DOMContentLoaded", load, false);
127 |
--------------------------------------------------------------------------------
/dist/css/dark.css:
--------------------------------------------------------------------------------
1 | html.nova-dark-theme{background-color:#06090f!important}.nova-dark-theme html{background-color:#0d1117!important;height:auto!important}.nova-dark-theme body{background-color:#06090f!important;height:auto!important}.nova-dark-theme .hamburger-menu:before{background:linear-gradient(180deg,#fff,#fff 20%,#000 0,#000 40%,#fff 0,#fff 60%,#000 0,#000 80%,#fff 0,#fff)}.nova-dark-theme .dark-mode-toggle{background-color:#0e1217}.nova-dark-theme #layout-selector .components-container,.nova-dark-theme .bg-white{background-color:#0d1117}.nova-dark-theme .component-layout-selector{background-color:#161c22;border-color:#30383d}.nova-dark-theme .flex .border-60{border-color:#30383d}.nova-dark-theme .flex .bg-white{background-color:#161b22}.nova-dark-theme .link,.nova-dark-theme a,.nova-dark-theme a .text-secondary{color:#5c7aff;text-decoration:none}.nova-dark-theme .link:hover,.nova-dark-theme a .text-secondary:hover,.nova-dark-theme a:hover{text-decoration:underline}.nova-dark-theme .link .link:visited,.nova-dark-theme a .link:visited,.nova-dark-theme a .text-secondary .link:visited{opacity:.8}.nova-dark-theme .text-primary:visited{color:#bc4d61!important}.nova-dark-theme .w-sidebar *{color:#c9d1d9!important}.nova-dark-theme .w-sidebar :hover{color:#ff113b!important;opacity:1}.nova-dark-theme .multiselect__option--highlight,.nova-dark-theme .multiselect__option--highlight:after{background-color:#ff113b;background:#ff113b}.nova-dark-theme .bg-logo{background-color:#161b22;color:#ff113b!important}.nova-dark-theme .cursor-pointer:hover,.nova-dark-theme .text-primary{color:#ff113b!important}.nova-dark-theme .cursor-pointer:hover:visited,.nova-dark-theme .text-primary:visited{color:#bc4d61}.nova-dark-theme .btn-primary,.nova-dark-theme .btn-primary:visited{color:#fff}.nova-dark-theme .bg-grad-sidebar{background-color:#0d1117;background-image:-webkit-gradient(linear,left bottom,left top,from(#0d1117),to(#0d1117))}.nova-dark-theme .table td,.nova-dark-theme .table th{border-color:#30363d;color:#eee}.nova-dark-theme .table th{background-color:#0d1117}.nova-dark-theme .flex.items-center.relative.shadow.h-header.bg-white.z-20.px-view{background-color:#0f1217}.nova-dark-theme .bg-20,.nova-dark-theme .bg-30,.nova-dark-theme .btn-white,.nova-dark-theme .card,.nova-dark-theme .multiselect__spinner{background-color:#161b22}.nova-dark-theme .bg-30:hover{background-color:#060910}.nova-dark-theme .bg-40,.nova-dark-theme .multiselect__content-wrapper,.nova-dark-theme .table tr:hover td,.nova-dark-theme .tooltip{background-color:#0d1117}.nova-dark-theme .border-30{border-color:#30363d}.nova-dark-theme .border-30,.nova-dark-theme .border-40,.nova-dark-theme .border-50{border-color:#30373d}.nova-dark-theme .border-60,.nova-dark-theme .border-70{border-color:#0e1217}.nova-dark-theme .border-80{border-color:#060910}.nova-dark-theme .text-60,.nova-dark-theme .text-70{color:#626a71}.nova-dark-theme .relationship-tabs-panel .tab,.nova-dark-theme .text-80,.nova-dark-theme .text-90{color:#cfd3d8}.nova-dark-theme .btn-outline,.nova-dark-theme .relationship-tabs-panel .tab:hover{color:#ff113b}.nova-dark-theme .multiselect__content-wrapper,.nova-dark-theme .tooltip{border-color:#161b22;color:#cfd3d8}.nova-dark-theme .form-global-search:active,.nova-dark-theme .form-global-search:focus,.nova-dark-theme .form-input:focus,.nova-dark-theme .form-search:active,.nova-dark-theme .form-search:focus{background-color:#060910}.nova-dark-theme .form-input-bordered,.nova-dark-theme .form-input-row,.nova-dark-theme .form-select,.nova-dark-theme .multiselect,.nova-dark-theme .multiselect__input,.nova-dark-theme .multiselect__single,.nova-dark-theme .multiselect__tags,.nova-dark-theme .tags-input-text{background-color:#0e1217;border-color:#2e3235;color:#cfd3d8}.nova-dark-theme .multiselect__tags{border-color:#2e3235!important}.nova-dark-theme .form-global-search,.nova-dark-theme input{background-color:#161b22;border-color:#535c67;color:#cfd3d8}.nova-dark-theme .form-input-bordered,.nova-dark-theme .multiselect__content-wrapper,.nova-dark-theme .multiselect__tags{border-color:#2e3235}.nova-dark-theme .checkbox:checked{background-color:#ff133b}.nova-dark-theme select{color:#cfd3d8}.nova-dark-theme .bg-gray-800{--bg-opacity:1;background-color:#0d1117;background-color:rgba(45,55,72,var(--bg-opacity))}.nova-dark-theme .bg-gray-900{--bg-opacity:1;background-color:#06090f;background-color:rgba(26,32,44,var(--bg-opacity))}.nova-dark-theme .border-gray-700{--border-opacity:1;border-color:#30363d;border-color:rgba(74,85,104,var(--border-opacity))}.nova-dark-theme .text-white{--text-opacity:1;color:#c9d1d9;color:rgba(255,255,255,var(--text-opacity))}.nova-dark-theme .text-gray-400{--text-opacity:1;color:#88929c;color:rgba(203,213,224,var(--text-opacity))}.nova-dark-theme button.appearance-none.cursor-pointer.fill-current.hover\:text-primary.flex.px-4.items-center.focus\:outline-none{color:rgba(207,211,216,.702)}.nova-dark-theme .hover\:bg-30:hover{background-color:#232930}.nova-dark-theme .gallery .gallery-item .gallery-item-info{--bg-opacity:0;background-color:#0e1217;background-color:rgba(14,18,23,var(--bg-opacity))}.nova-dark-theme .gallery .gallery-item-image.gallery-item .gallery-item-info{background-color:rgba(232,245,251,.35)}.nova-dark-theme .bg-gray-100,.nova-dark-theme .gallery .gallery-item{--bg-opacity:1;background-color:#0e1217;background-color:rgba(14,18,23,var(--bg-opacity))}.nova-dark-theme button.text-left.w-full.leading-normal.dim.my-2{color:#cfd3d8}
2 |
--------------------------------------------------------------------------------
/dist/css/responsive.css:
--------------------------------------------------------------------------------
1 | .hamburger-menu{cursor:pointer;position:relative;height:19px;display:none}html:not([dir=rtl]) .hamburger-menu{padding-left:1.25em;margin-right:9px}html[dir=rtl] .hamburger-menu{padding-right:1.25em;margin-left:9px}.hamburger-menu:before{content:"";position:absolute;top:.21em;bottom:.21em;width:1em;background:linear-gradient(to bottom,#000,#000 20%,#fff 20%,#fff 40%,#000 40%,#000 60%,#fff 60%,#fff 80%,#000 80%,#000 100%)}html:not([dir=rtl]) .hamburger-menu:before{left:0}html[dir=rtl] .hamburger-menu:before{right:0}.content.hide-update-and-continue-editing-button button[dusk$=update-and-continue-editing-button]{display:none}.content.sticky-actions .card table.w-full tbody tr td:last-child,.content.sticky-actions .card table.w-full thead tr th:last-child{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky;right:0}.content.sticky-actions .card table.w-full tbody tr td:last-child{background:#fff}.content.sticky-actions .card table.w-full tbody tr td:last-child:before{content:'';height:100%;top:0;margin-left:-.75rem;position:absolute;border-left:1px solid #eee}@media (min-width:992px){body.fixed-sidebar .bg-grad-sidebar{position:fixed;padding-top:5.5rem!important;overflow:auto;height:100%}body.fixed-sidebar .content{padding-left:13.75rem;max-width:100%}}@media (max-width:80rem){.min-w-site{min-width:auto}.content{min-width:auto;width:100%}.content.sticky-actions-on-mobile .card table.w-full tbody tr td:last-child,.content.sticky-actions-on-mobile .card table.w-full thead tr th:last-child{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky;right:0}.content.sticky-actions-on-mobile .card table.w-full tbody tr td:last-child{background:#fff}.content.sticky-actions-on-mobile .card table.w-full tbody tr td:last-child:before{content:'';height:100%;top:0;margin-left:-.75rem;position:absolute;border-left:1px solid #eee}}@media (max-width:992px){.w-sidebar{position:fixed;padding-top:5.5rem!important;z-index:30;height:100%;overflow:auto}.w-sidebar.pt-header{padding-top:1.75rem}.sidebar-hidden{display:none}.h-header{z-index:40;position:fixed;width:100%;margin-top:-3.75rem}.hamburger-menu{display:block}html:not([dir=rtl]) .hamburger-menu{margin-right:1rem}html[dir=rtl] .hamburger-menu{margin-left:1rem}.bg-logo{display:none!important}html:not([dir=rtl]) .h-header .dropdown-trigger{margin-right:-20px}html[dir=rtl] .h-header .dropdown-trigger{margin-left:-20px}.h-header .dropdown-trigger span,.h-header .dropdown-trigger svg{display:none}html:not([dir=rtl]) .h-header .dropdown-trigger img.mr-3{margin-right:2em}html[dir=rtl] .h-header .dropdown-trigger img.mr-3{margin-right:2em}span.hamburger-menu+a{display:none}.h-header .pl-search{width:85%}.content{padding-top:3.75rem;max-width:none}.content .px-view{padding-left:1.125rem;padding-right:1.125rem}.content .py-view{padding-top:1.125rem;padding-bottom:1.125rem}form .w-1\/2{width:80%}form .w-1\/2>div.flex{display:flex;flex-wrap:nowrap}form>.flex{display:block}form>.flex>button{margin-bottom:10px}.content.hide-update-and-continue-editing-button-on-mobile button[dusk$=update-and-continue-editing-button]{display:none}.content form .card>.flex,div[dusk$=detail-component] .card>.flex{display:block}.content form .card>.flex>div,div[dusk$=detail-component] .card>.flex>div{width:100%}.content form .card>.flex>.py-6,div[dusk$=detail-component] .card>.flex>.py-4{padding-top:.5rem;padding-bottom:0}.content form .card>.flex>.py-6,div[dusk$=detail-component] .card>.flex.bg-20>.py-4{padding-bottom:.5rem}.content form .card>.flex>.py-6+.py-6,div[dusk$=detail-component] .card>.flex>.py-4+.py-4{padding-bottom:.5rem}.card>form>div header.flex{display:block}.card>form>div header.flex ul:first-child{border-bottom:1px solid var(--60)}html:not([dir=rtl]) .card>form>div header.flex ul:nth-child(2) button:first-child{border-left:none}html[dir=rtl] .card>form>div header.flex ul:nth-child(2) button:first-child{border-right:none}html:not([dir=rtl]) .card>form>div header.flex ul:nth-child(2) button:last-child{border-right:1px solid var(--60)}html[dir=rtl] .card>form>div header.flex ul:nth-child(2) button:last-child{border-left:1px solid var(--60)}.card>form>div div.pin{z-index:2000}trix-toolbar .trix-button-row{display:inline-block!important}html:not([dir=rtl]) trix-toolbar .trix-button-group{float:left!important}html[dir=rtl] trix-toolbar .trix-button-group{float:right!important}.content .flex-wrap>.w-1\/2,.content .flex-wrap>.w-1\/3,.content .flex-wrap>.w-1\/4,.content .flex-wrap>.w-1\/5,.content .flex-wrap>.w-1\/6,.content .flex-wrap>.w-2\/3,.content .flex-wrap>.w-2\/5,.content .flex-wrap>.w-3\/4,.content .flex-wrap>.w-3\/5,.content .flex-wrap>.w-4\/5,.content .flex-wrap>.w-5\/6{width:100%}.content .card table td.w-1\/2{display:table-row}.btn{white-space:nowrap}div[dusk$=index-component] .pl-search{width:auto}div[dusk$=index-component] .btn[dusk=attach-button],div[dusk$=index-component] .btn[dusk=create-button]{font-weight:bolder;font-size:26px;padding:0 12px;width:39px;overflow:hidden}div[dusk$=index-component] .btn[dusk=attach-button]::before,div[dusk$=index-component] .btn[dusk=create-button]::before{content:"+";position:relative}html:not([dir=rtl]) div[dusk$=index-component] .btn[dusk=attach-button]::before,html:not([dir=rtl]) div[dusk$=index-component] .btn[dusk=create-button]::before{margin-right:20px}html[dir=rtl] div[dusk$=index-component] .btn[dusk=attach-button]::before,html[dir=rtl] div[dusk$=index-component] .btn[dusk=create-button]::before{margin-left:20px}.modal{top:auto}.modal form{width:100%!important}div[dusk$=index-component]>div.card>div.py-3.flex.items-center.border-b.border-50{padding-bottom:.35rem}div[dusk$=detail-component]>div>div.flex.items-center.mb-3{display:block}div[dusk$=detail-component]>div>div.flex.items-center.mb-3>h4{position:absolute}div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center,div[dusk$=index-component]>div.card>div.py-3.flex.items-center.border-b.border-50>div.flex.items-center.ml-auto.px-3{display:inline-block}div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center{display:inline-block;padding-top:1.5rem}div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center>a,div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center>button,div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center>div,div[dusk$=index-component]>div.card>div.py-3.flex.items-center.border-b.border-50>div.flex.items-center.ml-auto.px-3>div{display:inline-flex;vertical-align:top;margin-bottom:.4rem}html:not([dir=rtl]) div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center>div.ml-3{margin-left:0}html[dir=rtl] div[dusk$=detail-component]>div>div.flex.items-center.mb-3>div.ml-3.w-full.flex.items-center>div.ml-3{margin-right:0}}@media (max-width:500px){select[dusk=action-select]{width:8.9rem}}@media (max-width:310px){select[dusk=action-select]{width:5.6rem}}@media (max-height:610px){.z-50.open .scroll-wrap{max-height:270px!important}}@media (max-height:540px){.z-50.open .scroll-wrap{max-height:180px!important}}@media (max-height:440px){.z-50.open .scroll-wrap{max-height:110px!important}}
2 |
--------------------------------------------------------------------------------
/resources/sass/dark.scss:
--------------------------------------------------------------------------------
1 | html.nova-dark-theme {
2 | background-color: #06090f !important;
3 | }
4 |
5 | .nova-dark-theme {
6 | html {
7 | background-color: #0d1117 !important;
8 | height: auto !important;
9 | }
10 |
11 | body {
12 | background-color: #06090f !important;
13 | height: auto !important;
14 | }
15 |
16 | .hamburger-menu:before {
17 | background: linear-gradient(
18 | to bottom,
19 | white,
20 | white 20%,
21 | black 20%,
22 | black 40%,
23 | white 40%,
24 | white 60%,
25 | black 60%,
26 | black 80%,
27 | white 80%,
28 | white 100%
29 | );
30 | }
31 |
32 | .dark-mode-toggle {
33 | background-color: #0e1217;
34 | }
35 |
36 | .bg-white,
37 | #layout-selector .components-container {
38 | background-color: #0d1117;
39 | }
40 |
41 | .component-layout-selector {
42 | border-color: #30383d;
43 | background-color: #161c22;
44 | }
45 |
46 | .flex {
47 | .border-60 {
48 | border-color: #30383d;
49 | }
50 | .bg-white {
51 | background-color: #161b22;
52 | }
53 | }
54 |
55 | a,
56 | .link,
57 | a .text-secondary {
58 | color: #5c7aff;
59 | text-decoration: none;
60 | &:hover {
61 | text-decoration: underline;
62 | }
63 | .link:visited {
64 | opacity: 0.8;
65 | }
66 | }
67 |
68 | .text-primary:visited {
69 | color: #bc4d61 !important;
70 | }
71 |
72 | .w-sidebar * {
73 | color: #c9d1d9 !important;
74 |
75 | &:hover {
76 | color: #ff113b !important;
77 | opacity: 1;
78 | }
79 | }
80 |
81 | .multiselect__option--highlight,
82 | .multiselect__option--highlight::after {
83 | background-color: #ff113b;
84 | background: #ff113b;
85 | }
86 |
87 | .bg-logo {
88 | background-color: #161b22;
89 | color: #ff113b !important;
90 | }
91 |
92 | .markdown {
93 | // background-color: #ffff !important;
94 | }
95 |
96 | .text-primary,
97 | .cursor-pointer:hover {
98 | color: #ff113b !important;
99 |
100 | &:visited {
101 | color: #bc4d61;
102 | }
103 | }
104 | .btn-primary {
105 | color: #ffff;
106 |
107 | &:visited {
108 | color: #ffff;
109 | }
110 | }
111 |
112 | .bg-grad-sidebar {
113 | background-image: -webkit-gradient(
114 | linear,
115 | left bottom,
116 | left top,
117 | from(#0d1117),
118 | to(#0d1117)
119 | );
120 | background-color: #0d1117;
121 | }
122 |
123 | .table td {
124 | color: #eeeeee;
125 | border-color: #30363d;
126 | }
127 |
128 | .table th {
129 | background-color: #0d1117;
130 | color: #eeeeee;
131 | border-color: #30363d;
132 | }
133 |
134 | .flex.items-center.relative.shadow.h-header.bg-white.z-20.px-view {
135 | background-color: #0f1217;
136 | }
137 |
138 | .bg-20,
139 | .card,
140 | .btn-white,
141 | .multiselect__spinner {
142 | background-color: #161b22;
143 | }
144 |
145 | .bg-30 {
146 | background-color: #161b22;
147 |
148 | &:hover {
149 | background-color: #060910;
150 | }
151 | }
152 |
153 | .bg-40,
154 | .table tr:hover td,
155 | .tooltip,
156 | .multiselect__content-wrapper {
157 | background-color: #0d1117;
158 | }
159 |
160 | .border-30 {
161 | border-color: #30363d;
162 | }
163 |
164 | .border-30,
165 | .border-40,
166 | .border-50 {
167 | border-color: #30373d;
168 | }
169 |
170 | .border-60,
171 | .border-70 {
172 | border-color: #0e1217;
173 | }
174 |
175 | .border-80 {
176 | border-color: #060910;
177 | }
178 |
179 | .text-60,
180 | .text-70 {
181 | color: #626a71;
182 | }
183 |
184 | .text-80,
185 | .text-90 {
186 | color: #cfd3d8;
187 | }
188 |
189 | .relationship-tabs-panel .tab {
190 | color: #cfd3d8;
191 | &:hover {
192 | color: #ff113b;
193 | }
194 | }
195 |
196 | .btn-outline {
197 | color: #ff113b;
198 | }
199 |
200 | .tooltip,
201 | .multiselect__content-wrapper {
202 | border-color: #161b22;
203 | color: #cfd3d8;
204 | }
205 |
206 | .form-input:focus,
207 | .form-global-search:active,
208 | .form-global-search:focus,
209 | .form-search:active,
210 | .form-search:focus {
211 | background-color: #060910;
212 | }
213 |
214 | // .form-select, .tabs-wrap {
215 | // background-color: #0e1217;
216 | // border-color: #161b22;
217 | // }
218 |
219 | .form-input-bordered,
220 | .multiselect__input,
221 | .multiselect__tags,
222 | .multiselect__single,
223 | .form-select,
224 | .tags-input-text,
225 | .multiselect,
226 | .form-input-row {
227 | background-color: #0e1217;
228 | color: #cfd3d8;
229 | border-color: #2e3235;
230 | }
231 |
232 | .multiselect__tags {
233 | border-color: #2e3235 !important;
234 | }
235 |
236 | .form-global-search,
237 | input {
238 | border-color: #535c67;
239 | background-color: #161b22;
240 | color: #cfd3d8;
241 | }
242 |
243 | .form-input-bordered,
244 | .multiselect__content-wrapper,
245 | .multiselect__tags {
246 | border-color: #2e3235;
247 | }
248 |
249 | .checkbox:checked {
250 | background-color: #ff133b;
251 | }
252 |
253 | select {
254 | color: #cfd3d8;
255 | }
256 |
257 | .bg-gray-800 {
258 | --bg-opacity: 1;
259 | background-color: #0d1117;
260 | background-color: rgba(45, 55, 72, var(--bg-opacity));
261 | }
262 | .bg-gray-900 {
263 | --bg-opacity: 1;
264 | background-color: #06090f;
265 | background-color: rgba(26, 32, 44, var(--bg-opacity));
266 | }
267 | .border-gray-700 {
268 | --border-opacity: 1;
269 | border-color: #30363d;
270 | border-color: rgba(74, 85, 104, var(--border-opacity));
271 | }
272 | .text-white {
273 | --text-opacity: 1;
274 | color: #c9d1d9;
275 | color: rgba(255, 255, 255, var(--text-opacity));
276 | }
277 | .text-gray-400 {
278 | --text-opacity: 1;
279 | color: #88929c;
280 | color: rgba(203, 213, 224, var(--text-opacity));
281 | }
282 |
283 | button.appearance-none.cursor-pointer.fill-current.hover\:text-primary.flex.px-4.items-center.focus\:outline-none {
284 | color: #cfd3d8b3;
285 | }
286 |
287 | .hover\:bg-30:hover {
288 | background-color: #232930;
289 | }
290 |
291 | .gallery .gallery-item .gallery-item-info {
292 | --bg-opacity: 0;
293 | background-color: #0e1217;
294 | background-color: rgba(14, 18, 23, var(--bg-opacity));
295 | }
296 |
297 | .gallery .gallery-item-image.gallery-item .gallery-item-info {
298 | background-color: rgb(232 245 251 / 35%);
299 | }
300 |
301 | .bg-gray-100,
302 | .gallery .gallery-item {
303 | --bg-opacity: 1;
304 | background-color: #0e1217;
305 | background-color: rgba(14, 18, 23, var(--bg-opacity));
306 | }
307 |
308 | button.text-left.w-full.leading-normal.dim.my-2 {
309 | color: #cfd3d8;
310 | }
311 | }
312 |
--------------------------------------------------------------------------------
/resources/views/partials/logo.blade.php:
--------------------------------------------------------------------------------
1 |
8 |
9 |
17 |
28 |
32 |
46 |
50 |
58 |
69 |
70 |
71 |
79 |
87 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/dist/js/theme.js:
--------------------------------------------------------------------------------
1 | (()=>{var e,t={747:(e,t,n)=>{Nova.booting((function(e,t){e.component("nova-dark-theme-toggle",n(577).Z)})),"true"===localStorage.darkThemeOn?(document.querySelector("html").classList.add("nova-dark-theme"),document.querySelector("body").classList.add("nova-dark-theme")):(document.querySelector("html").classList.remove("nova-dark-theme"),document.querySelector("body").classList.remove("nova-dark-theme")),document.addEventListener("DOMContentLoaded",(function(){document.querySelector("meta[name=viewport]").setAttribute("content","width=device-width, initial-scale=1, shrink-to-fit=no"),document.querySelector(".w-sidebar").classList.add("sidebar-hidden");var e=document.createElement("span");if(e.className="hamburger-menu",document.querySelector(".content .h-header").prepend(e),e.addEventListener("click",(function(e){e.stopPropagation(),document.querySelector(".w-sidebar").classList.toggle("sidebar-hidden")}),!0),document.querySelectorAll(".w-sidebar a, .w-sidebar .cursor-pointer:not(.nc-head), .w-sidebar .nc-item-link").forEach((function(e){e.addEventListener("click",(function(){document.querySelector(".w-sidebar").classList.add("sidebar-hidden")}),!1)})),document.querySelectorAll("body,html").forEach((function(e){e.addEventListener("click",(function(e){var t=document.querySelector(".w-sidebar");e.target===t||t.contains(e.target)||t.classList.add("sidebar-hidden")}))})),Nova.config.mmns){if(document.querySelectorAll(".w-sidebar h4").forEach((function(e){(Nova.config.mmns.hide_all_sidebar_headlines||-1!==Nova.config.mmns.hidden_sidebar_headlines.indexOf(e.textContent))&&e.classList.add("hidden")})),Nova.config.mmns.resource_tables_sticky_actions)document.querySelectorAll(".content").forEach((function(e){e.classList.add("sticky-actions")}));if(Nova.config.mmns.resource_tables_sticky_actions_on_mobile)document.querySelectorAll(".content").forEach((function(e){e.classList.add("sticky-actions-on-mobile")}));if(Nova.config.mmns.hide_update_and_continue_editing_button)document.querySelectorAll(".content").forEach((function(e){e.classList.add("hide-update-and-continue-editing-button")}));if(Nova.config.mmns.hide_update_and_continue_editing_button_on_mobile)document.querySelectorAll(".content").forEach((function(e){e.classList.add("hide-update-and-continue-editing-button-on-mobile")}));Nova.config.mmns.fixed_sidebar&&document.querySelector("body").classList.add("fixed-sidebar")}}),!1)},881:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(519),r=n.n(o)()((function(e){return e[1]}));r.push([e.id,".dark-mode-toggle[data-v-979d093e]{background:var(--primary);border-radius:.6rem 0 0;bottom:0;height:40px;padding:.8rem .6rem .6rem;position:fixed;right:0;width:40px}.nova-dark-theme .dark-mode-toggle[data-v-979d093e]{background:#161c22}.dark-mode-toggle[data-v-979d093e]:hover{background-color:var(--primary-dark)}.dark-mode-toggle[data-v-979d093e]:focus{outline:none}.nova-dark-theme .dark-mode-toggle[data-v-979d093e]:hover{background:#0e1217}.dark-mode-active[data-v-979d093e]{color:var(--primary);margin-bottom:-2px}.dark-mode-disabled[data-v-979d093e]{color:#fff;margin-bottom:-2px;transform:rotate(180deg)}",""]);const a=r},519:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,o){"string"==typeof e&&(e=[[null,e,""]]);var r={};if(o)for(var a=0;a{},379:(e,t,n)=>{"use strict";var o,r=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function d(e){for(var t=-1,n=0;n{"use strict";n.d(t,{Z:()=>l});function o(e,t,n,o,r,a,i,d){var c,s="function"==typeof e?e.options:e;if(t&&(s.render=t,s.staticRenderFns=n,s._compiled=!0),o&&(s.functional=!0),a&&(s._scopeId="data-v-"+a),i?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},s._ssrRegister=c):r&&(c=d?function(){r.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(s.functional){s._injectStyles=c;var l=s.render;s.render=function(e,t){return c.call(t),l(e,t)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,c):[c]}return{exports:e,options:s}}const r=o({},(function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{staticClass:"svg-inline--fa fa-toggle-on",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"48",height:"48",viewBox:"0 0 48 48","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"toggle-on",role:"img"}},[t("path",{attrs:{fill:"currentColor",d:"M40 17.37V8h-9.37L24 1.37 17.37 8H8v9.37L1.37 24 8 30.63V40h9.37L24 46.63 30.63 40H40v-9.37L46.63 24 40 17.37zM24 36c-1.79 0-3.48-.4-5-1.1 4.13-1.9 7-6.06 7-10.9s-2.87-9-7-10.9c1.52-.7 3.21-1.1 5-1.1 6.63 0 12 5.37 12 12s-5.37 12-12 12z"}})])}),[],!1,null,null,null).exports,a={name:"NovaDarkThemeToggle",props:{label:{type:String,required:!1,default:function(){return"Dark Theme"}}},data:function(){return{darkThemeOn:!1}},components:{IconToggle:r},mounted:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&void 0===localStorage.darkThemeOn?(localStorage.darkThemeOn="true",this.darkThemeOn="true"):this.darkThemeOn="true"===localStorage.darkThemeOn,"true"===localStorage.darkThemeOn&&(document.querySelector("html").classList.add("nova-dark-theme"),document.querySelector("body").classList.add("nova-dark-theme")),"false"===localStorage.darkThemeOn&&(document.querySelector("html").classList.remove("nova-dark-theme"),document.querySelector("body").classList.remove("nova-dark-theme"))},methods:{toggle:function(){this.darkThemeOn=!this.darkThemeOn,localStorage.darkThemeOn=this.darkThemeOn.toString(),document.querySelector("html").classList.toggle("nova-dark-theme"),document.querySelector("body").classList.toggle("nova-dark-theme")}}};var i=n(379),d=n.n(i),c=n(881),s={insert:"head",singleton:!1};d()(c.Z,s);c.Z.locals;const l=o(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"block no-underline text-90 hover:bg-30 p-3 w-full text-left dark-mode-toggle",on:{click:function(t){return e.toggle()}}},[e.darkThemeOn?n("icon-toggle",{staticClass:"w-4 h-4 text-black align-baseline ml-1 mr-4 dark-mode-active"}):n("icon-toggle",{staticClass:"w-4 h-4 text-black align-baseline ml-1 mr-4 dark-mode-disabled"})],1)}),[],!1,null,"979d093e",null).exports}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={id:e,exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,e=[],o.O=(t,n,r,a)=>{if(!n){var i=1/0;for(l=0;l=a)&&Object.keys(o.O).every((e=>o.O[e](n[c])))?n.splice(c--,1):(d=!1,a0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[n,r,a]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={564:0,963:0};o.O.j=t=>0===e[t];var t=(t,n)=>{var r,a,[i,d,c]=n,s=0;if(i.some((t=>0!==e[t]))){for(r in d)o.o(d,r)&&(o.m[r]=d[r]);if(c)var l=c(o)}for(t&&t(n);so(747)));var r=o.O(void 0,[963],(()=>o(959)));r=o.O(r)})();
--------------------------------------------------------------------------------
/resources/css/responsive.css:
--------------------------------------------------------------------------------
1 | /* Responsive theme by Gregoriohc/laravel-nova-theme-responsive */
2 | .hamburger-menu {
3 | cursor: pointer;
4 | position: relative;
5 | height: 19px;
6 | display: none;
7 | }
8 | html:not([dir="rtl"]) .hamburger-menu {
9 | padding-left: 1.25em;
10 | margin-right: 9px;
11 | }
12 | html[dir="rtl"] .hamburger-menu {
13 | padding-right: 1.25em;
14 | margin-left: 9px;
15 | }
16 |
17 | .hamburger-menu:before {
18 | content: "";
19 | position: absolute;
20 | top: 0.21em;
21 | bottom: 0.21em;
22 | width: 1em;
23 | background: linear-gradient(
24 | to bottom,
25 | black,
26 | black 20%,
27 | white 20%,
28 | white 40%,
29 | black 40%,
30 | black 60%,
31 | white 60%,
32 | white 80%,
33 | black 80%,
34 | black 100%
35 | );
36 | }
37 | html:not([dir="rtl"]) .hamburger-menu:before {
38 | left: 0;
39 | }
40 | html[dir="rtl"] .hamburger-menu:before {
41 | right: 0;
42 | }
43 |
44 | .content.hide-update-and-continue-editing-button
45 | button[dusk$="update-and-continue-editing-button"] {
46 | display: none;
47 | }
48 |
49 | /* Resource tables */
50 | .content.sticky-actions .card table.w-full tbody tr td:last-child,
51 | .content.sticky-actions .card table.w-full thead tr th:last-child {
52 | position: -webkit-sticky;
53 | position: -moz-sticky;
54 | position: -ms-sticky;
55 | position: -o-sticky;
56 | position: sticky;
57 | right: 0;
58 | }
59 |
60 | .content.sticky-actions .card table.w-full tbody tr td:last-child {
61 | background: white;
62 | }
63 |
64 | .content.sticky-actions .card table.w-full tbody tr td:last-child:before {
65 | content: "";
66 | height: 100%;
67 | top: 0;
68 | margin-left: -0.75rem;
69 | position: absolute;
70 | border-left: 1px solid #eee;
71 | }
72 |
73 | @media (min-width: 992px) {
74 | body.fixed-sidebar .bg-grad-sidebar {
75 | position: fixed;
76 | padding-top: 5.5rem !important;
77 | overflow: auto;
78 | height: 100%;
79 | }
80 |
81 | body.fixed-sidebar .content {
82 | padding-left: 13.75rem;
83 | max-width: 100%;
84 | }
85 | }
86 |
87 | @media (max-width: 80rem) {
88 | .min-w-site {
89 | min-width: auto;
90 | }
91 |
92 | .content {
93 | min-width: auto;
94 | width: 100%;
95 | }
96 |
97 | /* Resource tables */
98 | .content.sticky-actions-on-mobile .card table.w-full tbody tr td:last-child,
99 | .content.sticky-actions-on-mobile
100 | .card
101 | table.w-full
102 | thead
103 | tr
104 | th:last-child {
105 | position: -webkit-sticky;
106 | position: -moz-sticky;
107 | position: -ms-sticky;
108 | position: -o-sticky;
109 | position: sticky;
110 | right: 0;
111 | }
112 |
113 | .content.sticky-actions-on-mobile
114 | .card
115 | table.w-full
116 | tbody
117 | tr
118 | td:last-child {
119 | background: white;
120 | }
121 |
122 | .content.sticky-actions-on-mobile
123 | .card
124 | table.w-full
125 | tbody
126 | tr
127 | td:last-child:before {
128 | content: "";
129 | height: 100%;
130 | top: 0;
131 | margin-left: -0.75rem;
132 | position: absolute;
133 | border-left: 1px solid #eee;
134 | }
135 | }
136 |
137 | @media (max-width: 992px) {
138 | /* Sidebar */
139 | .w-sidebar {
140 | position: fixed;
141 | padding-top: 5.5rem !important;
142 | z-index: 30;
143 | height: 100%;
144 | overflow: auto;
145 | }
146 |
147 | .w-sidebar.pt-header {
148 | padding-top: 1.75rem;
149 | }
150 |
151 | .sidebar-hidden {
152 | display: none;
153 | }
154 |
155 | /* Header */
156 | .h-header {
157 | z-index: 40;
158 | position: fixed;
159 | width: 100%;
160 | margin-top: -3.75rem;
161 | }
162 |
163 | .hamburger-menu {
164 | display: block;
165 | }
166 | html:not([dir="rtl"]) .hamburger-menu {
167 | margin-right: 1rem;
168 | }
169 | html[dir="rtl"] .hamburger-menu {
170 | margin-left: 1rem;
171 | }
172 |
173 | .bg-logo {
174 | display: none !important;
175 | }
176 |
177 | html:not([dir="rtl"]) .h-header .dropdown-trigger {
178 | margin-right: -20px;
179 | }
180 | html[dir="rtl"] .h-header .dropdown-trigger {
181 | margin-left: -20px;
182 | }
183 |
184 | .h-header .dropdown-trigger span,
185 | .h-header .dropdown-trigger svg {
186 | display: none;
187 | }
188 |
189 | html:not([dir="rtl"]) .h-header .dropdown-trigger img.mr-3 {
190 | margin-right: 2em;
191 | }
192 | html[dir="rtl"] .h-header .dropdown-trigger img.mr-3 {
193 | margin-right: 2em;
194 | }
195 |
196 | span.hamburger-menu + a {
197 | display: none;
198 | }
199 |
200 | .h-header .pl-search {
201 | width: 85%;
202 | }
203 |
204 | /* Content */
205 | .content {
206 | padding-top: 3.75rem;
207 | max-width: none;
208 | }
209 |
210 | .content .px-view {
211 | padding-left: 1.125rem;
212 | padding-right: 1.125rem;
213 | }
214 |
215 | .content .py-view {
216 | padding-top: 1.125rem;
217 | padding-bottom: 1.125rem;
218 | }
219 |
220 | /* Forms */
221 | form .w-1\/2 {
222 | width: 80%;
223 | }
224 |
225 | form .w-1\/2 > div.flex {
226 | display: flex;
227 | flex-wrap: nowrap;
228 | }
229 |
230 | form > .flex {
231 | display: block;
232 | }
233 |
234 | form > .flex > button {
235 | margin-bottom: 10px;
236 | }
237 |
238 | .content.hide-update-and-continue-editing-button-on-mobile
239 | button[dusk$="update-and-continue-editing-button"] {
240 | display: none;
241 | }
242 |
243 | .content form .card > .flex,
244 | div[dusk$="detail-component"] .card > .flex {
245 | display: block;
246 | }
247 | .content form .card > .flex > div,
248 | div[dusk$="detail-component"] .card > .flex > div {
249 | width: 100%;
250 | }
251 |
252 | .content form .card > .flex > .py-6,
253 | div[dusk$="detail-component"] .card > .flex > .py-4 {
254 | padding-top: 0.5rem;
255 | padding-bottom: 0;
256 | }
257 |
258 | .content form .card > .flex > .py-6,
259 | div[dusk$="detail-component"] .card > .flex.bg-20 > .py-4 {
260 | padding-bottom: 0.5rem;
261 | }
262 |
263 | .content form .card > .flex > .py-6 + .py-6,
264 | div[dusk$="detail-component"] .card > .flex > .py-4 + .py-4 {
265 | padding-bottom: 0.5rem;
266 | }
267 |
268 | .card > form > div header.flex {
269 | display: block;
270 | }
271 |
272 | .card > form > div header.flex ul:first-child {
273 | border-bottom: 1px solid var(--60);
274 | }
275 |
276 | html:not([dir="rtl"])
277 | .card
278 | > form
279 | > div
280 | header.flex
281 | ul:nth-child(2)
282 | button:first-child {
283 | border-left: none;
284 | }
285 | html[dir="rtl"]
286 | .card
287 | > form
288 | > div
289 | header.flex
290 | ul:nth-child(2)
291 | button:first-child {
292 | border-right: none;
293 | }
294 |
295 | html:not([dir="rtl"])
296 | .card
297 | > form
298 | > div
299 | header.flex
300 | ul:nth-child(2)
301 | button:last-child {
302 | border-right: 1px solid var(--60);
303 | }
304 | html[dir="rtl"]
305 | .card
306 | > form
307 | > div
308 | header.flex
309 | ul:nth-child(2)
310 | button:last-child {
311 | border-left: 1px solid var(--60);
312 | }
313 |
314 | .card > form > div div.pin {
315 | z-index: 2000;
316 | }
317 |
318 | trix-toolbar .trix-button-row {
319 | display: inline-block !important;
320 | }
321 |
322 | html:not([dir="rtl"]) trix-toolbar .trix-button-group {
323 | float: left !important;
324 | }
325 | html[dir="rtl"] trix-toolbar .trix-button-group {
326 | float: right !important;
327 | }
328 |
329 | /* Cards */
330 | .content .flex-wrap > .w-1\/2,
331 | .content .flex-wrap > .w-1\/3,
332 | .content .flex-wrap > .w-1\/4,
333 | .content .flex-wrap > .w-1\/5,
334 | .content .flex-wrap > .w-1\/6,
335 | .content .flex-wrap > .w-2\/3,
336 | .content .flex-wrap > .w-2\/5,
337 | .content .flex-wrap > .w-3\/4,
338 | .content .flex-wrap > .w-3\/5,
339 | .content .flex-wrap > .w-4\/5,
340 | .content .flex-wrap > .w-5\/6 {
341 | width: 100%;
342 | }
343 |
344 | .content .card table td.w-1\/2 {
345 | display: table-row;
346 | }
347 |
348 | /* Other */
349 | .btn {
350 | white-space: nowrap;
351 | }
352 |
353 | div[dusk$="index-component"] .pl-search {
354 | width: auto;
355 | }
356 |
357 | div[dusk$="index-component"] .btn[dusk="create-button"],
358 | div[dusk$="index-component"] .btn[dusk="attach-button"] {
359 | font-weight: bolder;
360 | font-size: 26px;
361 | padding: 0 12px;
362 | width: 39px;
363 | overflow: hidden;
364 | }
365 |
366 | div[dusk$="index-component"] .btn[dusk="create-button"]::before,
367 | div[dusk$="index-component"] .btn[dusk="attach-button"]::before {
368 | content: "+";
369 | position: relative;
370 | }
371 | html:not([dir="rtl"])
372 | div[dusk$="index-component"]
373 | .btn[dusk="create-button"]::before,
374 | html:not([dir="rtl"])
375 | div[dusk$="index-component"]
376 | .btn[dusk="attach-button"]::before {
377 | margin-right: 20px;
378 | }
379 | html[dir="rtl"]
380 | div[dusk$="index-component"]
381 | .btn[dusk="attach-button"]::before,
382 | html[dir="rtl"]
383 | div[dusk$="index-component"]
384 | .btn[dusk="create-button"]::before {
385 | margin-left: 20px;
386 | }
387 |
388 | .modal form {
389 | width: 100% !important;
390 | }
391 |
392 | div[dusk$="index-component"]
393 | > div.card
394 | > div.py-3.flex.items-center.border-b.border-50 {
395 | padding-bottom: 0.35rem;
396 | }
397 |
398 | div[dusk$="detail-component"] > div > div.flex.items-center.mb-3 {
399 | display: block;
400 | }
401 |
402 | div[dusk$="detail-component"] > div > div.flex.items-center.mb-3 > h4 {
403 | position: absolute;
404 | }
405 |
406 | div[dusk$="index-component"]
407 | > div.card
408 | > div.py-3.flex.items-center.border-b.border-50
409 | > div.flex.items-center.ml-auto.px-3,
410 | div[dusk$="detail-component"]
411 | > div
412 | > div.flex.items-center.mb-3
413 | > div.ml-3.w-full.flex.items-center {
414 | display: inline-block;
415 | }
416 |
417 | div[dusk$="detail-component"]
418 | > div
419 | > div.flex.items-center.mb-3
420 | > div.ml-3.w-full.flex.items-center {
421 | display: inline-block;
422 | padding-top: 1.5rem;
423 | }
424 |
425 | div[dusk$="index-component"]
426 | > div.card
427 | > div.py-3.flex.items-center.border-b.border-50
428 | > div.flex.items-center.ml-auto.px-3
429 | > div,
430 | div[dusk$="detail-component"]
431 | > div
432 | > div.flex.items-center.mb-3
433 | > div.ml-3.w-full.flex.items-center
434 | > div,
435 | div[dusk$="detail-component"]
436 | > div
437 | > div.flex.items-center.mb-3
438 | > div.ml-3.w-full.flex.items-center
439 | > button,
440 | div[dusk$="detail-component"]
441 | > div
442 | > div.flex.items-center.mb-3
443 | > div.ml-3.w-full.flex.items-center
444 | > a {
445 | display: inline-flex;
446 | vertical-align: top;
447 | margin-bottom: 0.4rem;
448 | }
449 |
450 | html:not([dir="rtl"])
451 | div[dusk$="detail-component"]
452 | > div
453 | > div.flex.items-center.mb-3
454 | > div.ml-3.w-full.flex.items-center
455 | > div.ml-3 {
456 | margin-left: 0;
457 | }
458 | html[dir="rtl"]
459 | div[dusk$="detail-component"]
460 | > div
461 | > div.flex.items-center.mb-3
462 | > div.ml-3.w-full.flex.items-center
463 | > div.ml-3 {
464 | margin-right: 0;
465 | }
466 | }
467 |
468 | @media (max-width: 500px) {
469 | select[dusk="action-select"] {
470 | width: 8.9rem;
471 | }
472 | }
473 |
474 | @media (max-width: 310px) {
475 | select[dusk="action-select"] {
476 | width: 5.6rem;
477 | }
478 | }
479 |
480 | @media (max-height: 610px) {
481 | .z-50.open .scroll-wrap {
482 | max-height: 270px !important;
483 | }
484 | }
485 |
486 | @media (max-height: 540px) {
487 | .z-50.open .scroll-wrap {
488 | max-height: 180px !important;
489 | }
490 | }
491 |
492 | @media (max-height: 440px) {
493 | .z-50.open .scroll-wrap {
494 | max-height: 110px !important;
495 | }
496 | }
497 |
--------------------------------------------------------------------------------