frontend update to tabler beta 19 (#4029)

This commit is contained in:
Kevin Papst
2023-05-15 19:10:00 +02:00
committed by GitHub
parent 43bd7bf1ab
commit 04422f3530
61 changed files with 235 additions and 1018 deletions

View File

@@ -1,5 +1,5 @@
require('./sass/app.scss');
require('./sass/_app.scss');
// ------ Kimai itself ------
require('./js/KimaiWebLoader.js');

View File

@@ -1,2 +1,2 @@
require('./sass/export-pdf.scss');
require('./sass/_export-pdf.scss');

View File

@@ -1,2 +1,2 @@
require('./sass/invoice-pdf.scss');
require('./sass/_invoice-pdf.scss');

View File

@@ -1,2 +1,2 @@
require('./sass/invoice.scss');
require('./sass/_invoice.scss');

View File

@@ -194,7 +194,7 @@ export default class KimaiAlert extends KimaiPlugin {
<div class="toast-body">
` + icon + ' ' + message + `
</div>
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="` + translation.get('close') + `"></button>
<button type="button" class="btn-close me-2 m-auto" data-bs-dismiss="toast" aria-label="` + translation.get('close') + `"></button>
</div>
</div>`;

37
assets/sass/_app.scss Normal file
View File

@@ -0,0 +1,37 @@
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
@import "bootstrap/scss/functions";
@import "@tabler/core/src/scss/variables";
@import "@tabler/core/src/scss/variables-dark";
@import "@tabler/core/src/scss/mixins";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
@import "layout";
@import "error-page";
@import "print";
@import "content";
@import "loading-spinner";
@import "tables";
@import "calendar";
@import "ticktac";
@import "selectpicker";
@import "forms";
@import "modal";
@import "progressbar";
@import "avatar";
@import "theme-dark";
@import "pages";
@import "tabler-fixes";
@import "help";
@import "rtl";

View File

@@ -7,15 +7,17 @@
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
@import "bootstrap/scss/reboot";
@import "bootstrap/scss/type";
@import "bootstrap/scss/grid";
@import "bootstrap/scss/tables";
@import "bootstrap/scss/list-group";
@import "bootstrap/scss/card";
@import "bootstrap/scss/utilities";
body {
font-family: $font-family-sans-serif;

View File

@@ -1,26 +0,0 @@
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
@import 'variables';
@import 'layout';
@import 'error-page';
@import 'print';
@import 'content';
@import 'loading-spinner';
@import 'tables';
@import 'calendar';
@import 'ticktac';
@import 'selectpicker';
@import 'forms';
@import 'modal';
@import 'progressbar';
@import 'avatar';
@import 'theme-dark';
@import 'pages';
@import 'tabler-fixes';
@import 'help';
@import 'rtl';

View File

@@ -3,18 +3,18 @@ $avatar-base-size: 30;
.initials {
font-weight: bold;
font-size: ceil($avatar-base-size / 2 - 2)+px;
font-size: ceil(calc($avatar-base-size / 2 - 2))+px;
}
$avatarSizes: "xs" .75, "sm" 1.25, "md" 1.5, "lg" 2;
@each $avatarSizeName, $avatarBaseSize in $avatarSizes {
.avatar-#{$avatarSizeName} {
width: ceil($avatar-base-size * $avatarBaseSize)+px;
height: ceil($avatar-base-size * $avatarBaseSize)+px;
width: ceil(calc($avatar-base-size * $avatarBaseSize))+px;
height: ceil(calc($avatar-base-size * $avatarBaseSize))+px;
.initials {
font-size: ceil($avatar-base-size * $avatarBaseSize / 2 - 2)+px;
font-size: ceil(calc($avatar-base-size * $avatarBaseSize / 2 - 2))+px;
}
}
}
@@ -23,10 +23,10 @@ $avatarSizes: "xs" .75, "sm" 1.25, "md" 1.5, "lg" 2;
border-radius: 50%;
border: 3px solid #fff;
.avatar {
width: ceil($avatar-base-size * 2.75)+px;
height: ceil($avatar-base-size * 2.75)+px;
width: ceil(calc($avatar-base-size * 2.75))+px;
height: ceil(calc($avatar-base-size * 2.75))+px;
.initials {
font-size: ceil($avatar-base-size * 2.75 / 2 - 2)+px;
font-size: ceil(calc($avatar-base-size * 2.75 / 2 - 2))+px;
}
}
}
@@ -39,3 +39,8 @@ table.dataTable.table > tbody > tr > td {
}
}
}
/* decreases the margin between avatars, see https://github.com/tabler/tabler/issues/1567 */
.avatar-list-stacked .avatar {
margin-right: calc(var(--tblr-avatar-size)*-.1)!important;
}

View File

@@ -5,6 +5,11 @@
* file that was distributed with this source code.
*/
/* used in security screens and other full-size pages */
.page-center {
justify-content: center;
}
/* make sure that elements can be hidden without taking space (eg. hidden modals like the search or column visibility) */
.hidden-no-space {
margin: 0;
@@ -33,11 +38,6 @@ td {
}
}
.label-gray {
background-color: $gray-lte;
color: #666;
}
.open-edit {
cursor: pointer;
}

View File

@@ -1,19 +0,0 @@
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
$fa-font-path: "~@fortawesome/fontawesome-free/webfonts/";
@import "@fortawesome/fontawesome-free/scss/fontawesome";
@import "@fortawesome/fontawesome-free/scss/regular";
@import "@fortawesome/fontawesome-free/scss/solid";
@import "@fortawesome/fontawesome-free/scss/brands";
/* all icon-buttons with fontawesome icons */
.btn-icon i.icon {
font-size: 16px;
color: $text-muted;
padding-top: 2px;
}

View File

@@ -38,3 +38,8 @@ h1.navbar-brand a {
/* bootstrap thead.sticky-top has z-index 1020 and the reporting form dropdowns hide behind that */
z-index: 1021;
}
/* reduce the default font size for the brand header */
.navbar {
--tblr-navbar-brand-font-size: 1rem;
}

View File

@@ -11,7 +11,7 @@
left: 0;
width: 100%;
height: 100%;
z-index: 50;
z-index: 1021;
background: rgba(255, 255, 255, 0.7);
> .fas {
position: absolute;

View File

@@ -1,23 +1,22 @@
@import "tom-select/dist/scss/tom-select.bootstrap5";
/* bootstrap thead.sticky-top has z-index 1020 and tomselect dropdowns often hide behind that */
.ts-dropdown {
z-index: 1021;
}
/* can be removed if no error is reported. it is unknown why this was added */
/*
.ts-control {
> input {
min-width: unset;
}
}
*/
.ts-dropdown {
.optgroup-header {
background-color: #eee;
color: #000;
font-weight: 600;
}
[data-selectable].option {
padding-left: 20px;
.optgroup {
[data-selectable].option {
padding-left: 20px;
}
}
}

View File

@@ -1,5 +1,3 @@
@import "@tabler/core/src/scss/variables";
/* fix for vertical labels in date-time pickers, if they are used in half-column forms, e.g. "create tasks" or "create expenses" */
fieldset legend.col-form-label {
padding-top: 0;

View File

@@ -4,7 +4,6 @@
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
@import "variables";
table.dataTable {
clear: both;
@@ -93,7 +92,7 @@ table.dataTable {
&.summary td {
font-weight: bold;
border: 0;
background-color: var(--tblr-table-striped-bg);
background-color: var(--tblr-bg-surface-secondary);
}
th.multiCheckbox {
width: 15px;
@@ -118,30 +117,17 @@ table.dataTable {
padding: .3em .6em .3em;
line-height: 24px;
}
span.label-activity,
span.label-project,
span.label-customer {
a {
color: unset;
padding-bottom: 2px;
border-bottom: 1px dotted $gray-lte;
&:hover {
border-bottom: 1px dotted darken($gray-lte, 20);
}
}
}
span.label-invisible {
opacity: 0.8;
opacity: 0.6;
}
}
th.weekend,
td.weekend {
background-color: #f9f9f9;
background-color: var(--tblr-bg-surface-secondary);
}
/* order is important, "today” should overwrite "weekend" therefor later in the file */
th.today,
td.today {
background-color: $highlight-today;
th.today {
background-color: var(--tblr-highlight-bg);
}
th.total,
td.total {

View File

@@ -1,48 +1,7 @@
@include dark-mode {
.form-check-input {
border-color: $input-border-color;
}
/* selectpicker.scss / Tom Select */
.ts-wrapper.form-select .ts-control,
.ts-wrapper.form-select.single.input-active .ts-control {
color: $dark-mode-text;
}
.ts-dropdown {
background-color: $dark-mode-lighten;
color: $dark-mode-text;
}
.ts-control {
> input {
min-width: unset;
color: $dark-mode-text;
}
.item {
background-color: $dark;
color: $dark-mode-text;
}
}
.optgroup-header {
background-color: $dropdown-dark-bg;
color: $dark-mode-text;
}
@include color-mode(dark, true) {
table.dataTable {
th.weekend, td.weekend {
background-color: $dark-mode-weekend;
color: $dark-mode-text;
}
/* must be defined after weekend, to overwrite it */
th.today, td.today {
background-color: $dark-mode-today;
color: $dark-mode-text;
}
tr {
&.summary td {
background-color: $dark-mode-darken;
}
th.today {
color: var(--tblr-muted);
}
}
@@ -50,7 +9,7 @@
background: rgba(0, 0, 0, 0.5);
> .fas {
color: $dark-mode-text;
color: var(--tblr-white);
}
}
}

View File

@@ -37,8 +37,6 @@
@include media-breakpoint-down(lg) {
aside.navbar .btn-outline-white,
header.navbar .btn-outline-white {
background-color: var(--tblr-body-color);
border-color: hsla(0,0%,100%,.2);
color: hsla(0,0%,100%,.7);
}
}

View File

@@ -1,30 +0,0 @@
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/mixins";
@import "@tabler/core/src/scss/variables";
@import "@tabler/core/src/scss/mixins";
/* For highlighting rows, fieldsets and so on */
$highlight-bg: #f5f5f5;
$highlight-today: #fcf8e3;
$red: #dd4b39;
$green: #00a65a;
$yellow: #f0ad4e;
$blue: #0073b7;
$gray-lte: #d2d6de;
$kimai-default: $gray-lte;
$box-border-radius: 3px;
$dark-mode-today: var(--tblr-blue);
$dark-mode-weekend: lighten($dark, 5%) !default;

View File

@@ -34,7 +34,7 @@
"friendsofsymfony/rest-bundle": "^3.0",
"gedmo/doctrine-extensions": "^3.6",
"jms/serializer-bundle": "^5.0",
"kevinpapst/tabler-bundle": "^0.15",
"kevinpapst/tabler-bundle": "^0.16",
"league/csv": "^9.4",
"mpdf/mpdf": "^8.0",
"nelmio/api-doc-bundle": "^4.0",

14
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "276b8b25218c04ae6527eccfec7f1464",
"content-hash": "26d6641fd4c8f977b0a50cab05e1df87",
"packages": [
{
"name": "bacon/bacon-qr-code",
@@ -2416,16 +2416,16 @@
},
{
"name": "kevinpapst/tabler-bundle",
"version": "0.15",
"version": "0.16",
"source": {
"type": "git",
"url": "https://github.com/kevinpapst/TablerBundle.git",
"reference": "570cdda287a49127217f0f2aa4425d3174073bdb"
"reference": "c5986daa3595fc5163f7d0cb15f69dc5f696b987"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kevinpapst/TablerBundle/zipball/570cdda287a49127217f0f2aa4425d3174073bdb",
"reference": "570cdda287a49127217f0f2aa4425d3174073bdb",
"url": "https://api.github.com/repos/kevinpapst/TablerBundle/zipball/c5986daa3595fc5163f7d0cb15f69dc5f696b987",
"reference": "c5986daa3595fc5163f7d0cb15f69dc5f696b987",
"shasum": ""
},
"require": {
@@ -2474,7 +2474,7 @@
"description": "Admin/Backend theme bundle for Symfony based on Tabler.io",
"support": {
"issues": "https://github.com/kevinpapst/TablerBundle/issues",
"source": "https://github.com/kevinpapst/TablerBundle/tree/0.15"
"source": "https://github.com/kevinpapst/TablerBundle/tree/0.16"
},
"funding": [
{
@@ -2486,7 +2486,7 @@
"type": "github"
}
],
"time": "2023-04-06T16:30:28+00:00"
"time": "2023-05-15T12:01:30+00:00"
},
{
"name": "laminas/laminas-escaper",

View File

@@ -36,7 +36,7 @@
"@fullcalendar/interaction": "^5.11",
"@fullcalendar/timegrid": "^5.11",
"@symfony/webpack-encore": "^4.0",
"@tabler/core": "1.0.0-beta16",
"@tabler/core": "1.0.0-beta18",
"chart.js": "^3.9",
"core-js": "^3.6",
"eslint": "^8.0",
@@ -44,9 +44,9 @@
"gridstack": "^7.1",
"litepicker": "^2.0",
"luxon": "^3.3",
"node-sass": "^8.0",
"sass": "^1.62.1",
"sass-loader": "^13.2",
"tom-select": "^2.0",
"tom-select": "^2.2",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-notifier": "^1.13"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
/*!
* Bootstrap v5.2.2 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
/*!
* Bootstrap v5.2.2 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/

View File

@@ -3,16 +3,16 @@
"app": {
"js": [
"/build/runtime.f0079159.js",
"/build/app.c61734af.js"
"/build/app.bed7a1bf.js"
],
"css": [
"/build/app.d3ccebf5.css"
"/build/app.80fb16e8.css"
]
},
"export-pdf": {
"js": [
"/build/runtime.f0079159.js",
"/build/export-pdf.587575e7.js"
"/build/export-pdf.d367a32e.js"
],
"css": [
"/build/export-pdf.d8a6c23b.css"
@@ -21,16 +21,16 @@
"invoice": {
"js": [
"/build/runtime.f0079159.js",
"/build/invoice.c8ae95ad.js"
"/build/invoice.2604495e.js"
],
"css": [
"/build/invoice.d0ae14e1.css"
"/build/invoice.5bea118e.css"
]
},
"invoice-pdf": {
"js": [
"/build/runtime.f0079159.js",
"/build/invoice-pdf.d86b82ee.js"
"/build/invoice-pdf.ce9aace0.js"
],
"css": [
"/build/invoice-pdf.2b749265.css"
@@ -45,7 +45,7 @@
"calendar": {
"js": [
"/build/runtime.f0079159.js",
"/build/calendar.8577d9cd.js"
"/build/calendar.198a5c2b.js"
],
"css": [
"/build/calendar.bb473428.css"
@@ -63,16 +63,16 @@
},
"integrity": {
"/build/runtime.f0079159.js": "sha384-H22sAW1aTvyIPqvHOvGXWSWTxf0y6mptp+MsVmyXCfjx/WJjBbhX9gbUZ+qIuihV",
"/build/app.c61734af.js": "sha384-EP0ldSWtoYJlwRuaj2IjQCncdMT5rlz4cfZgDzciCd0i2pGn6MEijujB4bUU0PCP",
"/build/app.d3ccebf5.css": "sha384-9ufQd+D9ebk0tkPhQvGxswVMeHGES5GgJGK5lsDFS9+dQmdKbxwB/58ZSCVA3N/2",
"/build/export-pdf.587575e7.js": "sha384-J50GStmmfVwUTN4dIRQ02eg9hyzGFPSzpTtpPody92j0V6zCqw+s5l8+ZhVTugeW",
"/build/app.bed7a1bf.js": "sha384-OCg9guQNr23augSqlruX0IK2FWrKO1MWMx0sBRIzAkKgg561U4stZRHfxQbrwJeG",
"/build/app.80fb16e8.css": "sha384-kDryvDuNVyJAdIyQEuF5NpT1duQ4VmScmUNtha3B0ssQyzLuQdWBz/G3m70wao12",
"/build/export-pdf.d367a32e.js": "sha384-Z5baqnzjI636nYFs4g63ViIKBZKRW4Jhv/7PQmTEQlqhfA7eK0vUMUtiyy0R5A9u",
"/build/export-pdf.d8a6c23b.css": "sha384-ztepocHE4rnGE9eKZ4kL6jTKaePUyiwiB9TjJjstjpf/ckcKg1HedrEOOk/8ElJg",
"/build/invoice.c8ae95ad.js": "sha384-2eVY7MBiMQxo1vhfizU+fYfEZbz9bYUdzqxnpTQhxpYiLaxeSV4WnaObq2G7/Pks",
"/build/invoice.d0ae14e1.css": "sha384-DZ9f2EsTAIOVoFBZe4jMaW3R6yNVGCtcn3Dq3hxZnWRDdFzhyt1O1iQqRZUyQFTM",
"/build/invoice-pdf.d86b82ee.js": "sha384-A0HJqP+MvEqQr1uG8wViCeEWxBRKyS6l8D+Ao4pFYHUA12gCC1gRYhk9I+SJPvZq",
"/build/invoice.2604495e.js": "sha384-D6JvhGSqlx7z72b/qD3nF3QDXPy+XsCSRGtWfs1icjDKOcd2UzuXwuSa/E1Fg2TJ",
"/build/invoice.5bea118e.css": "sha384-KNyGdZSTXnAi8Tn2WqrxJnCP18yRK7BrZTHKCAGAEtl5/4S/XAe4IHKpM5gfsmB7",
"/build/invoice-pdf.ce9aace0.js": "sha384-mtZkXrpsXFMX2YvmmTlCm91QgsTlZLzLJnDAFcTuBDtDZ7TNkqLYkfCeLzFLVfwb",
"/build/invoice-pdf.2b749265.css": "sha384-DXXgkz2WWnrWnfBnXX5fmfPQSPb98upMnWxYKwTGYS04EhrPIWfDCutB2unIrWh7",
"/build/chart.f5becfac.js": "sha384-GSqETm8wULiVXyizvwRompfwu63r/C0Qd/AvrHDE4cqAKiIGCssb3QyBtGu1WN+W",
"/build/calendar.8577d9cd.js": "sha384-1qlF+4tr7/zve+wvZef7sVcbUxhK0/yEm5Hbuct8K/ZV4JtENdNY7YRLqOcZ/8Y3",
"/build/calendar.198a5c2b.js": "sha384-Rx1eiPfZeAO2iapu94+f3xx4tjj7xbtkUaZwycaxMU+v/bYLjAJIL+VSjiBPYnTg",
"/build/calendar.bb473428.css": "sha384-900W9o8666Qpw21rLP7hn5Ql8tWd40k0IcE3QpFm7E7V6bKva7xQgGlyzVuuh4GK",
"/build/dashboard.6774a712.js": "sha384-lBwkNqUPv+IBbznagiFakY2BOIueq/Bg89wHO2XeM9YAZ51rPkrvdMd+XmFupHsM",
"/build/dashboard.18f5a8b7.css": "sha384-PBD8ftb2yBoSjRe2sN5Xb4dEz045kOEUfcIufdSis+tWoWdAx5j4Yic+F/6CYbrP"

View File

@@ -1 +1 @@
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[185],{8810:function(i,n,u){u(8568)},8568:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=8810,i(i.s=n)}]);
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[185],{8810:function(i,n,u){u(9508)},9508:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=8810,i(i.s=n)}]);

View File

@@ -0,0 +1 @@
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[266],{35:function(i,n,u){u(6197)},6197:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=35,i(i.s=n)}]);

View File

@@ -1 +0,0 @@
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[266],{35:function(i,n,u){u(297)},297:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=35,i(i.s=n)}]);

View File

@@ -1 +1 @@
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[149],{474:function(i,n,u){u(3648)},3648:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=474,i(i.s=n)}]);
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[149],{474:function(i,n,u){u(9822)},9822:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=474,i(i.s=n)}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,15 +1,15 @@
{
"build/app.css": "/build/app.d3ccebf5.css",
"build/app.js": "/build/app.c61734af.js",
"build/app.css": "/build/app.80fb16e8.css",
"build/app.js": "/build/app.bed7a1bf.js",
"build/export-pdf.css": "/build/export-pdf.d8a6c23b.css",
"build/export-pdf.js": "/build/export-pdf.587575e7.js",
"build/invoice.css": "/build/invoice.d0ae14e1.css",
"build/invoice.js": "/build/invoice.c8ae95ad.js",
"build/export-pdf.js": "/build/export-pdf.d367a32e.js",
"build/invoice.css": "/build/invoice.5bea118e.css",
"build/invoice.js": "/build/invoice.2604495e.js",
"build/invoice-pdf.css": "/build/invoice-pdf.2b749265.css",
"build/invoice-pdf.js": "/build/invoice-pdf.d86b82ee.js",
"build/invoice-pdf.js": "/build/invoice-pdf.ce9aace0.js",
"build/chart.js": "/build/chart.f5becfac.js",
"build/calendar.css": "/build/calendar.bb473428.css",
"build/calendar.js": "/build/calendar.8577d9cd.js",
"build/calendar.js": "/build/calendar.198a5c2b.js",
"build/dashboard.css": "/build/dashboard.18f5a8b7.css",
"build/dashboard.js": "/build/dashboard.6774a712.js",
"build/runtime.js": "/build/runtime.f0079159.js"

View File

@@ -10,6 +10,7 @@
namespace App\EventSubscriber;
use App\Configuration\LocaleService;
use App\Constants;
use App\Entity\User;
use App\Entity\UserPreference;
use KevinPapst\TablerBundle\Helper\ContextHelper;
@@ -41,6 +42,8 @@ final class ThemeOptionsSubscriber implements EventSubscriberInterface
return;
}
$this->helper->setAssetVersion((string) Constants::VERSION_ID);
if ($this->localeService->isRightToLeft(\Locale::getDefault())) {
$this->helper->setIsRightToLeft(true);
}
@@ -66,8 +69,7 @@ final class ThemeOptionsSubscriber implements EventSubscriberInterface
$this->helper->setIsCondensedUserMenu(false);
$this->helper->setIsCondensedNavbar(false);
$this->helper->setIsNavbarOverlapping(false);
if (!$this->helper->isDarkMode()) {
$this->helper->setIsNavbarDark(true);
}
$this->helper->setIsNavbarDark(true);
$this->helper->setIsHeaderDark($this->helper->isDarkMode());
}
}

View File

@@ -12,27 +12,27 @@
<h3 class="m-0 mb-1">
<a href="{{ constant('App\\Constants::HOMEPAGE') }}" target="_blank">{{ constant('App\\Constants::SOFTWARE') }}</a>
</h3>
<div class="text-muted">
<div class="text-body-secondary">
{{ constant('App\\Constants::VERSION') }}
</div>
</div>
<div class="d-flex">
<a href="{{ ''|docu_link }}" target="_blank" class="card-btn">
<i class="me-2 text-muted {{ 'help'|icon(false) }}"></i>
<i class="me-2 text-body-secondary {{ 'help'|icon(false) }}"></i>
{{ 'help'|trans({}, 'about') }}
</a>
<a href="{{ constant('App\\Constants::GITHUB') }}discussions" target="_blank" class="card-btn">
<i class="me-2 text-muted {{ 'fab fa-github'|icon(false) }}"></i>
<i class="me-2 text-body-secondary {{ 'fab fa-github'|icon(false) }}"></i>
{{ 'support'|trans({}, 'about') }}
</a>
</div>
<div class="d-flex">
<a href="{{ constant('App\\Constants::HOMEPAGE') }}" target="_blank" class="card-btn">
<i class="me-2 text-muted {{ 'home'|icon(false) }}"></i>
<i class="me-2 text-body-secondary {{ 'home'|icon(false) }}"></i>
{{ 'website'|trans({}, 'about') }}
</a>
<a href="{{ constant('App\\Constants::HOMEPAGE') }}/donate/" target="_blank" class="card-btn">
<i class="me-2 text-muted {{ 'fas fa-hand-holding-heart'|icon(false) }}"></i>
<i class="me-2 text-body-secondary {{ 'fas fa-hand-holding-heart'|icon(false) }}"></i>
{{ 'donate'|trans({}, 'about') }}
</a>
</div>
@@ -92,11 +92,11 @@
<i class="fa-2x fas fa-balance-scale"></i>
</div>
<div>
<small class="text-muted">{{ constant('\\App\\Constants::SOFTWARE') }} is licensed under the</small>
<small class="text-body-secondary">{{ constant('\\App\\Constants::SOFTWARE') }} is licensed under the</small>
<h3 class="lh-1">GNU Affero General Public License v3.0</h3>
</div>
</div>
<div class="text-muted mb-3">
<div class="text-body-secondary mb-3">
Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications,
which include larger works using a licensed work, under the same license.
Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.

View File

@@ -157,7 +157,7 @@
{% if block('table_actions') is defined %}
{{ block('table_actions') }}
{% elseif block('breadcrumb') is defined %}
<div class="text-muted mt-1">
<div class="text-body-secondary mt-1">
{{ block('breadcrumb') }}
</div>
{% endif %}

View File

@@ -28,7 +28,7 @@
{% if source.blockInclude is not null and entry.blockName is not null and block(entry.blockName, source.blockInclude) is defined %}
{{ block(entry.blockName, source.blockInclude) }}
{% else %}
<span class="d-block text-muted text-truncate mt-n1">{{ entry.title }}</span>
<span class="d-block text-body-secondary text-truncate mt-n1">{{ entry.title }}</span>
{% endif %}
</div>
</div>

View File

@@ -2,6 +2,6 @@
{% import "macros/widgets.html.twig" as widgets %}
{{ title }}
{% if project is not null %}
<small class="d-block text-muted text-truncate mt-n1">{{ project }}{% if customer is not null %}, {{ customer }}{% endif %}</small>
<small class="d-block text-body-secondary text-truncate mt-n1">{{ project }}{% if customer is not null %}, {{ customer }}{% endif %}</small>
{% endif %}
{% endmacro %}

View File

@@ -12,7 +12,7 @@
{% endif %}
{% endblock %}
</h5>
<button type="button" class="btn-close{% if tabler_bundle.isDarkMode() %} btn-close-white{% endif %}" data-bs-dismiss="modal" aria-label="{{ 'action.close'|trans }}"></button>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ 'action.close'|trans }}"></button>
</div>
<div class="modal-body">
{% block modal_body %}

View File

@@ -106,7 +106,7 @@
{%- elseif '.ERROR' in logLine -%}
{%- set logLineClass = 'text-warning text-bold' -%}
{%- elseif '.DEBUG' in logLine -%}
{%- set logLineClass = 'text-muted' -%}
{%- set logLineClass = 'text-body-secondary' -%}
{%- endif -%}
<span class="{{ logLineClass }}">{{- logLine -}}</span>
{%- endfor %}</pre>

View File

@@ -22,7 +22,7 @@
<div class="text-truncate">
<strong>{{ widgets.username(comment.createdBy) }}</strong>
</div>
<div class="text-muted">{{ comment.createdAt|date_time }}</div>
<div class="text-body-secondary">{{ comment.createdAt|date_time }}</div>
</div>
<div class="col-auto align-self-center">
{% if route_pin is not null %}

View File

@@ -20,7 +20,7 @@
{% block box_attributes %}id="team_listing_box"{% endblock %}
{% block box_title %}
{{ 'permissions'|trans({}, 'actions') }}
{% if teams|length > 0 %}<small class="text-muted d-none d-sm-inline ms-1">{{ 'team.visibility_restricted'|trans({}, 'teams') }}</small>{% endif %}
{% if teams|length > 0 %}<small class="text-body-secondary d-none d-sm-inline ms-1">{{ 'team.visibility_restricted'|trans({}, 'teams') }}</small>{% endif %}
{% endblock %}
{% block box_body_class %}{% if teams|length > 0 %}p-0{% endif %}{% endblock %}
{% block box_body %}

View File

@@ -103,9 +103,9 @@
{{ form_errors(form.user) }}
</div>
{% if user is not null %}
<div class="text-muted">{{- form.vars.data.user.title -}}</div>
<div class="text-body-secondary">{{- form.vars.data.user.title -}}</div>
{% else %}
<div class="text-muted">__TITLE__</div>
<div class="text-body-secondary">__TITLE__</div>
{% endif %}
</div>
</div>

View File

@@ -4,7 +4,7 @@
{% import "invoice/actions.html.twig" as actions %}
{% block datatable_row %}
<tr class="modal-ajax-form open-edit{% if entry.canceled %} warning text-muted{% endif %}" data-href="{{ path('admin_invoice_edit', {'id': entry.id}) }}">
<tr class="modal-ajax-form open-edit{% if entry.canceled %} text-body-secondary{% endif %}" data-href="{{ path('admin_invoice_edit', {'id': entry.id}) }}">
<td class="{{ tables.class(dataTable, 'avatar') }}">{{ widgets.user_avatar(entry.user) }}</td>
<td class="{{ tables.class(dataTable, 'date') }}">{{ entry.createdAt|date_short }}</td>
<td class="{{ tables.class(dataTable, 'user') }}">{{ widgets.label_user(entry.user) }}</td>

View File

@@ -262,7 +262,7 @@
{{ form_end(multi_update_form) }}
{% endif %}
{% if route is not empty and entries is not null %}
<p class="d-none d-sm-block m-0 text-muted multi_update_form_hide">
<p class="d-none d-sm-block m-0 text-body-secondary multi_update_form_hide">
{{ 'pagination'|trans({'%start%': entries.getCurrentPageOffsetStart(), '%end%': entries.getCurrentPageOffsetEnd(), '%total%': entries.getNbResults()}) }}
</p>
{% set options = { 'css_container_class': 'pagination m-0 ms-auto d-print-none' } %}

View File

@@ -7,7 +7,7 @@
{% endblock %}
{% block login_actions %}
<div class="text-center text-muted mt-3">
<div class="text-center text-body-secondary mt-3">
<a href="{{ path('homepage') }}">
{{ 'Show homepage'|trans({}, 'TablerBundle') }}
</a>

View File

@@ -7,7 +7,7 @@
{% block login_box_msg %}{{ 'security.unlock.title'|trans }}{% endblock %}
{% block login_form %}
<p class="text-muted text-center mb-4">
<p class="text-body-secondary text-center mb-4">
{% block unlock_title %}{{ 'security.unlock.intro'|trans }}{% endblock %}
</p>
<div class="mb-4 text-center">
@@ -15,7 +15,7 @@
{{ user_avatar(app.user, false, 'avatar-xl mb-3') }}
<h3>{{ username(app.user) }}</h3>
{% if app.user.title is not empty %}
<p class="text-muted">{{ app.user.title }}</p>
<p class="text-body-secondary">{{ app.user.title }}</p>
{% endif %}
</div>
{% block unlock_form %}

View File

@@ -17,7 +17,7 @@
{% for section in sorted|sort((a, b) => a.name <=> b.name) %}
<a class="list-group-item d-flex" href="#conf_{{ section.id }}">
{{ section.name }}
<small class="text-muted ms-auto">{{ section.counter }}</small>
<small class="text-body-secondary ms-auto">{{ section.counter }}</small>
</a>
{% endfor %}
</div>

View File

@@ -18,7 +18,7 @@
<div class="col" style="min-width: 100px">
<h4 class="card-title m-0">{{ widgets.username(user) }}</h4>
{% if user.title is not empty %}
<div class="text-muted">
<div class="text-body-secondary">
{{ user.title }}
</div>
{% endif %}

View File

@@ -16,7 +16,7 @@
<div class="font-weight-medium">
{{ title|trans }}
</div>
<div class="text-muted">
<div class="text-body-secondary">
{% block widget_data %}
{{ data }}
{% endblock %}

View File

@@ -17,7 +17,7 @@
{{ title|trans }}
</a>
</div>
<div class="text-muted">
<div class="text-body-secondary">
{% if data is iterable %}
{{ 'Invalid data' }}
{% else %}

View File

@@ -5,7 +5,7 @@
<div class="card-body text-center py-4 p-sm-5">
<img src="{{ asset('wizard/done.png') }}" height="120" class="mb-n2" alt="Illustration by Katerina Limpitsouni from https://undraw.co/">
<h1 class="mt-5">{{ 'wizard.done.title'|trans({}, 'wizard') }}</h1>
<p class="text-muted">{{ 'wizard.done.description'|trans({}, 'wizard') }}</p>
<p class="text-body-secondary">{{ 'wizard.done.description'|trans({}, 'wizard') }}</p>
</div>
{% endblock %}

View File

@@ -4,6 +4,6 @@
<div class="card-body text-center py-4 p-sm-5">
<img src="{{ asset('wizard/time-management.png') }}" height="120" class="mb-n2" alt="Illustration by Katerina Limpitsouni from https://undraw.co/">
<h1 class="mt-5">{{ 'wizard.intro.title'|trans({}, 'wizard') }}</h1>
<p class="text-muted">{{ 'wizard.intro.description'|trans({}, 'wizard') }}</p>
<p class="text-body-secondary">{{ 'wizard.intro.description'|trans({}, 'wizard') }}</p>
</div>
{% endblock %}

View File

@@ -3,7 +3,7 @@
{% block wizard_content %}
<div class="card-body text-center py-4 p-sm-5">
<h1 class="mt-2">{{ 'wizard.profile.title'|trans({}, 'wizard') }}</h1>
<p class="text-muted">{{ 'wizard.profile.description'|trans({}, 'wizard') }}</p>
<p class="text-body-secondary">{{ 'wizard.profile.description'|trans({}, 'wizard') }}</p>
</div>
<div class="hr-text hr-text-center hr-text-spaceless">{{ 'wizard.separator'|trans({}, 'wizard') }}</div>
<div class="card-body">

845
yarn.lock

File diff suppressed because it is too large Load Diff