diff --git a/.idea/laravel-idea.xml b/.idea/laravel-idea.xml index 1e6474834..dd2ecef01 100644 --- a/.idea/laravel-idea.xml +++ b/.idea/laravel-idea.xml @@ -1,6 +1,17 @@ + + + + @@ -313,11 +315,12 @@ + - - - + + + diff --git a/.idea/phpspec.xml b/.idea/phpspec.xml index c347231e8..927f0d575 100644 --- a/.idea/phpspec.xml +++ b/.idea/phpspec.xml @@ -119,6 +119,12 @@ + + + + \ No newline at end of file diff --git a/.idea/phpunit.xml b/.idea/phpunit.xml index b108760b8..35cdd1f4f 100644 --- a/.idea/phpunit.xml +++ b/.idea/phpunit.xml @@ -4,8 +4,7 @@ - + \ No newline at end of file diff --git a/app/Core/Configuration/laravelConfig.php b/app/Core/Configuration/laravelConfig.php index 1b3e359eb..360291ea8 100644 --- a/app/Core/Configuration/laravelConfig.php +++ b/app/Core/Configuration/laravelConfig.php @@ -1,18 +1,8 @@ [ @@ -112,7 +103,7 @@ ], 'default' => 'single', ], - "debugbar" => [ + 'debugbar' => [ /* |-------------------------------------------------------------------------- @@ -149,14 +140,14 @@ | Leaving it to null will allow localhost only. */ 'storage' => [ - 'enabled' => true, - 'open' => true, // bool/callback. - 'driver' => 'file', // redis, file, pdo, socket, custom - 'path' => storage_path('debugbar'), // For file driver + 'enabled' => true, + 'open' => true, // bool/callback. + 'driver' => 'file', // redis, file, pdo, socket, custom + 'path' => storage_path('debugbar'), // For file driver 'connection' => null, // Leave null for default connection (Redis/PDO) - 'provider' => '', // Instance of StorageInterface for custom driver - 'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver - 'port' => 2304, // Port to use with the "socket" driver + 'provider' => '', // Instance of StorageInterface for custom driver + 'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver + 'port' => 2304, // Port to use with the "socket" driver ], /* @@ -175,7 +166,7 @@ 'editor' => 'phpstorm', - /* + /* |-------------------------------------------------------------------------- | Vendors |-------------------------------------------------------------------------- @@ -245,30 +236,30 @@ */ 'collectors' => [ - 'phpinfo' => true, // Php version - 'messages' => true, // Messages - 'time' => true, // Time Datalogger - 'memory' => true, // Memory usage - 'exceptions' => true, // Exception displayer - 'log' => true, // Logs from Monolog (merged in messages if enabled) - 'db' => false, // Show database (PDO) queries and bindings - 'views' => true, // Views with their data - 'route' => true, // Current route information - 'auth' => false, // Display Laravel authentication status - 'gate' => false, // Display Laravel Gate checks - 'session' => true, // Display session data + 'phpinfo' => true, // Php version + 'messages' => true, // Messages + 'time' => true, // Time Datalogger + 'memory' => true, // Memory usage + 'exceptions' => true, // Exception displayer + 'log' => true, // Logs from Monolog (merged in messages if enabled) + 'db' => false, // Show database (PDO) queries and bindings + 'views' => true, // Views with their data + 'route' => true, // Current route information + 'auth' => false, // Display Laravel authentication status + 'gate' => false, // Display Laravel Gate checks + 'session' => true, // Display session data 'symfony_request' => true, // Only one can be enabled.. - 'mail' => false, // Catch mail messages - 'laravel' => false, // Laravel version and environment - 'events' => true, // All events fired + 'mail' => false, // Catch mail messages + 'laravel' => false, // Laravel version and environment + 'events' => true, // All events fired 'default_request' => false, // Regular or special Symfony request logger - 'logs' => true, // Add the latest log messages - 'files' => true, // Show the included files - 'config' => true, // Display config settings - 'cache' => true, // Display cache events - 'models' => false, // Display models - 'livewire' => false, // Display Livewire (when available) - 'jobs' => false, // Display dispatched jobs + 'logs' => true, // Add the latest log messages + 'files' => true, // Show the included files + 'config' => true, // Display config settings + 'cache' => true, // Display cache events + 'models' => false, // Display models + 'livewire' => false, // Display Livewire (when available) + 'jobs' => false, // Display dispatched jobs ], /* @@ -297,21 +288,21 @@ 'show_guards' => true, // Show the guards that are used ], 'db' => [ - 'with_params' => true, // Render SQL with the parameters substituted - 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. + 'with_params' => true, // Render SQL with the parameters substituted + 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults) - 'timeline' => false, // Add the queries to the timeline - 'duration_background' => true, // Show shaded background on each query relative to how long it took to execute. + 'timeline' => false, // Add the queries to the timeline + 'duration_background' => true, // Show shaded background on each query relative to how long it took to execute. 'explain' => [ // Show EXPLAIN output on queries 'enabled' => false, 'types' => ['SELECT'], // Deprecated setting, is always only SELECT ], - 'hints' => false, // Show hints for common mistakes - 'show_copy' => false, // Show copy button next to the query, - 'slow_threshold' => false, // Only track queries that last longer than this time in ms - 'memory_usage' => false, // Show queries memory usage - 'soft_limit' => 100, // After the soft limit, no parameters/backtrace are captured - 'hard_limit' => 500, // After the hard limit, queries are ignored + 'hints' => false, // Show hints for common mistakes + 'show_copy' => false, // Show copy button next to the query, + 'slow_threshold' => false, // Only track queries that last longer than this time in ms + 'memory_usage' => false, // Show queries memory usage + 'soft_limit' => 100, // After the soft limit, no parameters/backtrace are captured + 'hard_limit' => 500, // After the hard limit, queries are ignored ], 'mail' => [ 'timeline' => false, // Add mails to the timeline @@ -322,7 +313,7 @@ 'data' => true, //true for all data, 'keys' for only names, false for no parameters. 'group' => 50, // Group duplicate views. Pass value to auto-group, or true/false to force 'exclude_paths' => [ // Add the paths which you don't want to appear in the views - 'vendor/filament' // Exclude Filament components by default + 'vendor/filament', // Exclude Filament components by default ], ], 'route' => [ @@ -691,4 +682,16 @@ 'compiled' => realpath(storage_path('framework/views')), ], + 'blade-icons' => [ + 'path' => 'public/assets/images/svg', + 'class' => '', + 'components' => [ + 'default' => 'svg', + ], + ], + 'blade-google-material-design-icons' => [ + 'path' => 'public/assets/images/svg', + 'prefix' => 'gmdi', + ], + ]; diff --git a/app/Domain/Calendar/Templates/partials/addEvent.blade.php b/app/Domain/Calendar/Templates/partials/addEvent.blade.php index 1d4e4f493..b25657d5c 100644 --- a/app/Domain/Calendar/Templates/partials/addEvent.blade.php +++ b/app/Domain/Calendar/Templates/partials/addEvent.blade.php @@ -68,7 +68,7 @@ id="allDay" :checked="isset($values['allDay']) && $values['allDay']" labelText="{{ __('label.all_day') }}" - labelPosition="left" + labelPosition="right" />

diff --git a/app/Domain/Calendar/Templates/partials/editEvent.blade.php b/app/Domain/Calendar/Templates/partials/editEvent.blade.php index 5933de2d7..211111218 100644 --- a/app/Domain/Calendar/Templates/partials/editEvent.blade.php +++ b/app/Domain/Calendar/Templates/partials/editEvent.blade.php @@ -48,7 +48,7 @@ id="allDay" :checked="$values['allDay']" labelText="{{ __('label.all_day') }}" - labelPosition="left" + labelPosition="right" /> dispatchTplEvent('beforeSubmitButton'); ?> diff --git a/app/Domain/Goalcanvas/Templates/dashboard.blade.php b/app/Domain/Goalcanvas/Templates/dashboard.blade.php index a787f7381..552dd88ac 100644 --- a/app/Domain/Goalcanvas/Templates/dashboard.blade.php +++ b/app/Domain/Goalcanvas/Templates/dashboard.blade.php @@ -161,9 +161,6 @@ class="sr-only">{{ sprintf(__('text.percent_complete'), round($goalStats['avgPer $nbcomments = $comments->countComments(moduleId: $row['id']); @endphp
- - -
diff --git a/app/Domain/Goalcanvas/Templates/partials/canvasDialog.blade.php b/app/Domain/Goalcanvas/Templates/partials/canvasDialog.blade.php index f0da6a4a2..2d4e51c1e 100644 --- a/app/Domain/Goalcanvas/Templates/partials/canvasDialog.blade.php +++ b/app/Domain/Goalcanvas/Templates/partials/canvasDialog.blade.php @@ -43,20 +43,24 @@
+ variant="compact" + class="w-20" />
+ class="w-20" +{{-- @if ($canvasItem['setting'] == 'linkAndReport')--}} +{{-- dataTippyContent="Current value calculated from child goals" @endif--}} + />
diff --git a/app/Domain/Projects/Templates/partials/projectCardProgressBar.blade.php b/app/Domain/Projects/Templates/partials/projectCardProgressBar.blade.php index c4ea234d6..6f0fc2ff4 100644 --- a/app/Domain/Projects/Templates/partials/projectCardProgressBar.blade.php +++ b/app/Domain/Projects/Templates/partials/projectCardProgressBar.blade.php @@ -21,11 +21,19 @@
@if ($project['status'] !== null && $project['status'] != '') - - {{ __("label.project_status_" . $project['status']) }} -
+ + {{ __("label.project_status_" . $project['status']) }} + @else - {{ __("label.no_status") }}
+ + {{ __("label.no_status") }} + @endif
diff --git a/app/Domain/Tickets/Templates/components/duedate.blade.php b/app/Domain/Tickets/Templates/components/duedate.blade.php new file mode 100644 index 000000000..753f83b22 --- /dev/null +++ b/app/Domain/Tickets/Templates/components/duedate.blade.php @@ -0,0 +1,22 @@ +@props([ + 'contentRole' => 'ghost', + 'variant' => '', + 'labelPosition' => 'top', + 'date' => '', +]) + + + + + + + Due Date + + + diff --git a/app/Domain/Tickets/Templates/components/effort-select.blade.php b/app/Domain/Tickets/Templates/components/effort-select.blade.php index 1ab082f4a..308c5e21b 100644 --- a/app/Domain/Tickets/Templates/components/effort-select.blade.php +++ b/app/Domain/Tickets/Templates/components/effort-select.blade.php @@ -1,21 +1,28 @@ - +@props([ + 'contentRole' => 'ghost', + 'variant' => 'default', + 'labelPosition' => 'left', + '$ticket' => '', + 'efforts' => [], + 'labelPosition' => 'top' +]) + + - 👕 {{ __('label.effort') }} + {{ __('label.effort') }} - - + {{ __('label.effort_not_defined') }} @foreach ($efforts as $effortKey => $effortValue) - {{ $effortValue }} @endforeach + diff --git a/app/Domain/Tickets/Templates/components/priority-select.blade.php b/app/Domain/Tickets/Templates/components/priority-select.blade.php index 49acac67d..28591fece 100644 --- a/app/Domain/Tickets/Templates/components/priority-select.blade.php +++ b/app/Domain/Tickets/Templates/components/priority-select.blade.php @@ -1,22 +1,28 @@ - +@props([ + 'contentRole' => 'ghost', + 'variant' => '', + 'priorities' => [], + 'priorityValue' => '', + 'labelPosition' => 'top' +]) + + + - {!! __('label.priority') !!} + {!! __('label.priority') !!} - - - - + {{ __('label.priority_not_defined') }} + @foreach ($priorities as $priorityKey => $priorityValue) - {{ $priorityValue }} + {{ $priorityValue }} diff --git a/app/Domain/Tickets/Templates/components/type-select.blade.php b/app/Domain/Tickets/Templates/components/type-select.blade.php index 819ebbe26..871cff0f8 100644 --- a/app/Domain/Tickets/Templates/components/type-select.blade.php +++ b/app/Domain/Tickets/Templates/components/type-select.blade.php @@ -1,13 +1,20 @@ +@props([ + 'contentRole' => 'default', + 'variant' => '', + 'ticketTypes' => '', + 'labelPosition' => 'top' +]) + @php $typeIcons = array('story' => 'fa-book', 'task' => 'fa-check-square', 'subtask' => 'fa-diagram-successor', 'bug' => 'fa-bug'); @endphp - + @foreach ($ticketTypes as $type) - {{ __("label." . strtolower($type)) }} + {{ __("label." . strtolower($type)) }} @endforeach diff --git a/app/Domain/Tickets/Templates/partials/showTicket.blade.php b/app/Domain/Tickets/Templates/partials/showTicket.blade.php index 21a7fcb9c..3bc4a61d5 100644 --- a/app/Domain/Tickets/Templates/partials/showTicket.blade.php +++ b/app/Domain/Tickets/Templates/partials/showTicket.blade.php @@ -12,42 +12,37 @@
-
+

#{{ $ticket->id }}

- +
-
- -
-
+{{--
--}} +{{-- --}} +{{--
--}} + +
-
-
- -
-
+ - + - + - - 📅 Due Date - + {{-- 'regular', // Dropdown variant: regular or card 'contentRole' => 'primary', // Content role: primary, secondary, accent, ghost, link + 'state' => '', + + 'buttonVariant' => '', + 'position' => 'bottom', // Dropdown position: top, left, bottom, right 'align' => 'start', // Dropdown alignment: start or end 'labelText' => 'Dropdown', // Text for the dropdown button @@ -41,9 +45,9 @@ @endphp
merge(['class' => "dropdown $positionClass $alignmentClass"]) }}> - - + + {!! $labelText !!} diff --git a/app/Views/Templates/components/content/icon.blade.php b/app/Views/Templates/components/content/icon.blade.php new file mode 100644 index 000000000..dbaf6fd24 --- /dev/null +++ b/app/Views/Templates/components/content/icon.blade.php @@ -0,0 +1,21 @@ +@props([ + 'icon' => '' +]) + +@php + $leantimeEntityTypeMaps = [ + 'bug' => 'bug_report', + 'subtask' => 'account_tree', + 'story' => 'book', + 'task' => 'task', + ]; + + if(key_exists($icon, $leantimeEntityTypeMaps)) { + $iconMapped = $leantimeEntityTypeMaps[$icon]; + }else{ + $iconMapped = $icon; + } + +@endphp + +merge([ 'class' => 'material-symbols-rounded' ]) }}>{{ $iconMapped }} diff --git a/app/Views/Templates/components/dates/datepicker.blade.php b/app/Views/Templates/components/dates/datepicker.blade.php index c5f65f49b..094e79f4d 100644 --- a/app/Views/Templates/components/dates/datepicker.blade.php +++ b/app/Views/Templates/components/dates/datepicker.blade.php @@ -4,6 +4,7 @@ "timeName" => '', "showTime" => true, "noDateLabel" => "", + "leadingVisual" => "", ]) + + + diff --git a/composer.json b/composer.json index 6099eaa0d..ac66dc1c7 100644 --- a/composer.json +++ b/composer.json @@ -69,7 +69,9 @@ "carbon-cli/carbon-cli": "^1.2", "metasyntactical/composer-plugin-license-check": "^2.1", "predis/predis": "^2.2", - "sentry/sentry-laravel": "^4.8" + "sentry/sentry-laravel": "^4.8", + "blade-ui-kit/blade-icons": "^1.7", + "codeat3/blade-google-material-design-icons": "^1.19" }, "require-dev": { "squizlabs/php_codesniffer": "^3.8", diff --git a/composer.lock b/composer.lock index 0657f3f56..7d958aadb 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "c83702290190764135fa91054b004993", + "content-hash": "26b7582442204a3d1b9e004580963947", "packages": [ { "name": "aws/aws-crt-php", @@ -212,6 +212,87 @@ }, "time": "2022-12-07T17:46:57+00:00" }, + { + "name": "blade-ui-kit/blade-icons", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-icons.git", + "reference": "8f787baf09d88cdfd6ec4dbaba11ebfa885f0595" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/8f787baf09d88cdfd6ec4dbaba11ebfa885f0595", + "reference": "8f787baf09d88cdfd6ec4dbaba11ebfa885f0595", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0", + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "bin": [ + "bin/blade-icons-generate" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Icons\\BladeIconsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "BladeUI\\Icons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of icons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-icons", + "keywords": [ + "blade", + "icons", + "laravel", + "svg" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-icons/issues", + "source": "https://github.com/blade-ui-kit/blade-icons" + }, + "funding": [ + { + "url": "https://github.com/sponsors/driesvints", + "type": "github" + }, + { + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" + } + ], + "time": "2024-08-14T14:25:11+00:00" + }, { "name": "brick/math", "version": "0.12.1", @@ -389,6 +470,79 @@ ], "time": "2023-12-11T17:09:12+00:00" }, + { + "name": "codeat3/blade-google-material-design-icons", + "version": "1.19.0", + "source": { + "type": "git", + "url": "https://github.com/codeat3/blade-google-material-design-icons.git", + "reference": "7a20f3a763edc54dba69725660eff2b2e99f8dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/codeat3/blade-google-material-design-icons/zipball/7a20f3a763edc54dba69725660eff2b2e99f8dad", + "reference": "7a20f3a763edc54dba69725660eff2b2e99f8dad", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-icons": "^1.1", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0" + }, + "require-dev": { + "codeat3/blade-icon-generation-helpers": "^0.8", + "codeat3/phpcs-styles": "^1.0", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Codeat3\\BladeGoogleMaterialDesignIcons\\BladeGoogleMaterialDesignIconsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Codeat3\\BladeGoogleMaterialDesignIcons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Swapnil Sarwe", + "homepage": "https://swapnilsarwe.com" + }, + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of \"Google Fonts Material Icons\" in your Laravel Blade views.", + "homepage": "https://github.com/codeat3/blade-google-material-design-icons", + "keywords": [ + "blade", + "google", + "icons", + "laravel", + "material" + ], + "support": { + "issues": "https://github.com/codeat3/blade-google-material-design-icons/issues", + "source": "https://github.com/codeat3/blade-google-material-design-icons/tree/1.19.0" + }, + "funding": [ + { + "url": "https://github.com/swapnilsarwe", + "type": "github" + } + ], + "time": "2024-02-28T15:02:13+00:00" + }, { "name": "dasprid/enum", "version": "1.0.6", diff --git a/public/assets/css/components/kanban.css b/public/assets/css/components/kanban.css index c4f9429bf..17088e89c 100644 --- a/public/assets/css/components/kanban.css +++ b/public/assets/css/components/kanban.css @@ -288,75 +288,7 @@ body .maincontent .priority-border-5 { border-left: 3px solid var(--dark-grey); } -.priority-bg-1, -body .maincontent .priority-bg-1, -body .maincontent .ticketDropdown .priority-bg-1{ - background:var(--dark-red); - color:var(--dark-red-text-color); -} - -.priority-bg-2, -body .maincontent .priority-bg-2, -body .maincontent .ticketDropdown .priority-bg-2{ - background: var(--red); - color:var(--red-text-color); -} - -.priority-bg-3, -body .maincontent .priority-bg-3, -body .maincontent .ticketDropdown .priority-bg-3{ - background: var(--yellow); - color:var(--yellow-text-color); -} - -.priority-bg-4, -body .maincontent .priority-bg-4, -body .maincontent .ticketDropdown .priority-bg-4{ - background:var(--green); - color:var(--green-text-color); -} - -.priority-bg-5, -body .maincontent .priority-bg-5, -body .maincontent .ticketDropdown .priority-bg-5 { - background:var(--dark-grey); - color:var(--dark-grey-text-color); -} -.priority-text-1, -body .maincontent .priority-text-1, -body .maincontent .priority-text-1 a, -body .maincontent .priority-text-1 a:link{ - color:var(--dark-red); -} - -.priority-text-2, -body .maincontent .priority-text-2, -body .maincontent .priority-text-2 a, -body .maincontent .priority-text-2 a:link { - color:var(--red); -} - -.priority-text-3, -body .maincontent .priority-text-3, -body .maincontent .priority-text-3 a, -body .maincontent .priority-text-3 a:link { - color:var(--yellow); -} - -.priority-text-4, -body .maincontent .priority-text-4, -body .maincontent .priority-text-4 a, -body .maincontent .priority-text-4 a:link { - color:var(--green); -} - -.priority-text-5, -body .maincontent .priority-text-5, -body .maincontent .priority-text-5 a, -body .maincontent .priority-text-5 a:link { - color:var(--dark-grey); -} .widgettitle { background: var(--kanban-col-title-bg) !important; diff --git a/public/assets/fonts/material-icons/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf b/public/assets/fonts/material-icons/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf new file mode 100644 index 000000000..2c7520462 Binary files /dev/null and b/public/assets/fonts/material-icons/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf differ diff --git a/public/assets/js/app/core/selects.module.mjs b/public/assets/js/app/core/selects.module.mjs index 0236eb9c2..e9c7ceace 100644 --- a/public/assets/js/app/core/selects.module.mjs +++ b/public/assets/js/app/core/selects.module.mjs @@ -28,14 +28,13 @@ function getOptions(selectElement) { return items; } -export const initSelect = function (element, enableSearch, additionalClass) { +export const initSelect = function (element, enableSearch, additionalClasses) { - let outerClasses = []; - outerClasses.push("select"); - outerClasses.push("choices"); + let outerClasses = ["select"]; - if(additionalClass !== '') { - outerClasses.push(additionalClass); + if(additionalClasses !== '') { + const selectClasses = additionalClasses.trim().split(" "); + outerClasses = selectClasses; } const select = new Choices(element, { @@ -69,7 +68,8 @@ export const initSelect = function (element, enableSearch, additionalClass) { list: ["choices__list"], listItems: ["choices__list--multiple"], listSingle: ["choices__list--single"], - listDropdown: ["choices__list--dropdown"], + listDropdown: ["dropdown-content", "menu"], + item: ["choices__item"], itemSelectable: ["choices__item--selectable"], itemDisabled: ["choices__item--disabled"], @@ -111,14 +111,13 @@ export const initSelect = function (element, enableSearch, additionalClass) { ); }; -export const initTags = function (element, enableSearch, autoCompleteTags, additionalClass) { +export const initTags = function (element, enableSearch, autoCompleteTags, additionalClasses) { - let outerClasses = []; - outerClasses.push("select"); - outerClasses.push("choices"); + let outerClasses = ["select"]; - if(additionalClass !== '') { - outerClasses.push(additionalClass); + if(additionalClasses !== '') { + const selectClasses = additionalClasses.trim().split(" "); + outerClasses = selectClasses; } const select = new Choices(element, { @@ -151,12 +150,11 @@ export const initTags = function (element, enableSearch, autoCompleteTags, addit input: ["choices__input"], inputCloned: [ "choices__input--cloned", - ], - list: ["choices__list"], + list: ["dropdown-content","menu"], listItems: ["choices__list--multiple"], listSingle: ["choices__list--single"], - listDropdown: ["choices__list--dropdown"], + listDropdown: ["dropdown-content","menu"], item: ["choices__item"], itemSelectable: ["choices__item--selectable"], itemDisabled: ["choices__item--disabled"], diff --git a/public/assets/less/base/font.css b/public/assets/less/base/font.css index ee283233e..ee8e2328d 100644 --- a/public/assets/less/base/font.css +++ b/public/assets/less/base/font.css @@ -1,15 +1,13 @@ @font-face { font-family: 'Hanken Grotesk'; - src: url('fonts/Hanken_Grotesk/HankenGrotesk-VariableFont_wght.ttf') format("woff2 supports variations"), - url('fonts/Hanken_Grotesk/HankenGrotesk-VariableFont_wght.ttf') format("woff2-variations"); + src: url('~fonts/Hanken_Grotesk/HankenGrotesk-VariableFont_wght.ttf') format("truetype-variations"); font-weight: 100 1000; font-style:normal; } @font-face { font-family: 'Hanken Grotesk'; - src: url('fonts/Hanken_Grotesk/HankenGrotesk-Italic-VariableFont_wght.ttf') format("ttf supports variations"), - url('fonts/Hanken_Grotesk/HankenGrotesk-Italic-VariableFont_wght.ttf') format("ttf-variations"); + src: url('fonts/Hanken_Grotesk/HankenGrotesk-Italic-VariableFont_wght.ttf') format("truetype-variations"); font-weight: 100 1000; font-style:italic; } @@ -80,7 +78,42 @@ src: url('~fonts/shantell/Shantell_Sans-Informal_Regular_Italic.woff2') format('woff2'); font-weight: normal; font-style: italic; +} + +@font-face { + font-family: 'Material Symbols Rounded'; + src: url('~fonts/material-icons/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf') format("truetype-variations"); + font-weight: 100 700; +} + +.material-symbols-rounded { + @apply font-materialIcons align-top; + margin-left: -2px; + font-size:110%; + line-height:inherit; + + font-variation-settings: + 'FILL' 0, + 'wght' 600, + 'GRAD' 0, + 'opsz' 48; + + &.fill { + font-variation-settings:'FILL' 1; + } + + &.strong { + font-variation-settings:'wght' 600; + } + + &.large { + font-size: 130%; + vertical-align: bottom; + } +} +strong .material-symbols-rounded { + font-variation-settings:'wght' 600; } diff --git a/public/assets/less/components/labels.css b/public/assets/less/components/labels.css index 49527de3f..a50a574c4 100644 --- a/public/assets/less/components/labels.css +++ b/public/assets/less/components/labels.css @@ -3,9 +3,9 @@ } .label { - @apply text-sm py-0.5; + @apply text-sm py-0.5 ; } .label-text { - @apply text-sm; + @apply text-sm text-base-content/80; } diff --git a/public/assets/less/components/select.css b/public/assets/less/components/select.css index 5879f708a..b9ebafabd 100644 --- a/public/assets/less/components/select.css +++ b/public/assets/less/components/select.css @@ -1,6 +1,14 @@ .select { - @apply select-bordered select-sm w-full max-w-xs relative; + @apply select-sm text-sm w-full max-w-xs relative; + + &.select-ghost { + @apply bg-none; + + &:hover { + @apply caret-neutral-700; + } + } &.select-chip { @apply bg-none leading-6 min-h-6 h-6 w-auto px-0.5 rounded-full ps-1.5 pe-1.5 bg-none text-xs leading-6 min-h-6 h-6 align-sub; @@ -31,10 +39,15 @@ @apply border-base-content/20 outline-base-content/20 outline outline-2 outline-offset-2; } - .choices__inner { - select { - display: none; - } + &:hover { + @apply shadow-lg; + } + +} + +.choices__inner { + select { + display: none; } } @@ -161,7 +174,7 @@ .choices__list--single .choices__item { width: 100%; align-content: center; - @apply select-sm text-sm px-1; + @apply px-0 text-sm select-sm; } .select-chip { diff --git a/public/assets/less/custom-utilities.css b/public/assets/less/custom-utilities.css index 86802f002..605d19df2 100644 --- a/public/assets/less/custom-utilities.css +++ b/public/assets/less/custom-utilities.css @@ -1,2 +1,3 @@ @import "utilities/forms.css"; @import "utilities/boxes.css"; +@import "utilities/semantic-styles.css"; diff --git a/public/assets/less/utilities/forms.css b/public/assets/less/utilities/forms.css index 167b353f4..8419a7490 100644 --- a/public/assets/less/utilities/forms.css +++ b/public/assets/less/utilities/forms.css @@ -2,16 +2,15 @@ @apply shadow-md; } - .input, .select { - &:hover { - @apply shadow-none border-base-content/50; + @apply shadow-md bg-neutral; } -} - -.form-control { - @apply pb-4; + &-bordered { + &:hover { + @apply border-base-content/50 bg-none; + } + } } diff --git a/public/assets/less/utilities/semantic-styles.css b/public/assets/less/utilities/semantic-styles.css new file mode 100644 index 000000000..d1cb24d7e --- /dev/null +++ b/public/assets/less/utilities/semantic-styles.css @@ -0,0 +1,26 @@ + +.priority-text-1 { + @apply text-red-50; +} + +.priority-text-2 { + @apply text-orange-50; +} + +.priority-text-3 { + @apply text-yellow-50; +} + +.priority-text-4 { + @apply text-green-50; +} + +.priority-text-5 { + @apply text-blue-50; +} + +.priority-text-6 { + @apply text-neutral-50; +} + + diff --git a/public/dist/mix-manifest.json b/public/dist/mix-manifest.json index aaa4d8238..5c98ef47f 100644 --- a/public/dist/mix-manifest.json +++ b/public/dist/mix-manifest.json @@ -132,6 +132,7 @@ "/fonts/Hanken_Grotesk/HankenGrotesk-VariableFont_wght.ttf": "/fonts/Hanken_Grotesk/HankenGrotesk-VariableFont_wght.ttf", "/fonts/Hanken_Grotesk/OFL.txt": "/fonts/Hanken_Grotesk/OFL.txt", "/fonts/Hanken_Grotesk/README.txt": "/fonts/Hanken_Grotesk/README.txt", + "/fonts/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf": "/fonts/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf", "/fonts/Roboto-Bold.ttf": "/fonts/Roboto-Bold.ttf", "/fonts/Roboto-Bold.woff2": "/fonts/Roboto-Bold.woff2", "/fonts/Roboto-Italic.ttf": "/fonts/Roboto-Italic.ttf", @@ -165,6 +166,7 @@ "/fonts/fa-solid-900.woff2": "/fonts/fa-solid-900.woff2", "/fonts/fa-v4compatibility.ttf": "/fonts/fa-v4compatibility.ttf", "/fonts/fa-v4compatibility.woff2": "/fonts/fa-v4compatibility.woff2", + "/fonts/material-icons/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf": "/fonts/material-icons/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.ttf", "/fonts/roboto/Google Android License.txt": "/fonts/roboto/Google Android License.txt", "/fonts/roboto/LICENSE.txt": "/fonts/roboto/LICENSE.txt", "/fonts/roboto/Roboto-Black.ttf": "/fonts/roboto/Roboto-Black.ttf", diff --git a/tailwind.config.js b/tailwind.config.js index 2f969e3ad..61db6dbc9 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -16,6 +16,7 @@ module.exports = { hanken: ['"Hanken Grotesk"', 'sans-serif'], atkinson: ['"Atkinson Hyperlegible"', 'sans-serif'], shantell: ['"Shantell Sans"', 'sans-serif'], + materialIcons: ['"Material Symbols Rounded"', 'sans-serif'], }, fontWeight: { thin: '100',