diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 644378d12..5ab9f82c9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -119,7 +119,9 @@ "EditorConfig.EditorConfig", // EditorConfig support for maintaining consistent coding styles "ms-azuretools.vscode-docker", // Docker extension for Visual Studio Code "charliermarsh.ruff", // Ruff extension for Ruff language support - "github.vscode-github-actions" // GitHub Actions extension for Visual Studio Code + "github.vscode-github-actions", // GitHub Actions extension for Visual Studio Code + "stylelint.vscode-stylelint", // Stylelint extension for CSS and SCSS linting + "redhat.vscode-yaml" // YAML extension for Visual Studio Code ] } }, diff --git a/.github/labeler-config-srvaroa.yml b/.github/labeler-config-srvaroa.yml index b2324fbe3..cad51267f 100644 --- a/.github/labeler-config-srvaroa.yml +++ b/.github/labeler-config-srvaroa.yml @@ -116,6 +116,9 @@ labels: - '.pre-commit-config' - '.github/workflows/pre_commit.yml' - 'devGuide/.*' + - '.stylelintrc.json' + - 'package.json' + - 'package-lock.json' - label: 'Test' files: diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 128af83ba..6ab09796f 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -17,5 +17,7 @@ "GitHub.vscode-pull-request-github", // GitHub Pull Requests extension for Visual Studio Code "charliermarsh.ruff", // Ruff code formatter for Python to follow the Ruff Style Guide "yzhang.markdown-all-in-one", // Markdown All-in-One extension for enhanced Markdown editing + "stylelint.vscode-stylelint", // Stylelint extension for CSS and SCSS linting + "redhat.vscode-yaml", // YAML extension for Visual Studio Code ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 3f272e18a..8d6b1fcc2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -27,6 +27,9 @@ "[gradle]": { "editor.defaultFormatter": "vscjava.vscode-gradle" }, + "[yaml]": { + "editor.defaultFormatter": "redhat.vscode-yaml" + }, "java.compile.nullAnalysis.mode": "automatic", "java.configuration.updateBuildConfiguration": "interactive", "java.format.enabled": true, @@ -119,7 +122,7 @@ "html.format.indentHandlebars": true, "html.format.preserveNewLines": true, "html.format.maxPreserveNewLines": 2, - "java.project.sourcePaths": [ + "stylelint.configFile": ".stylelintrc.json", "stirling-pdf/src/main/java", "common/src/main/java", "proprietary/src/main/java" diff --git a/package.json b/package.json index ad1d8a064..ace309a26 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "PDF utilities for Stirling", "scripts": { - "lint:css": "stylelint \"stirling-pdf/src/main/**/*.css\" --fix" + "lint:css": "stylelint \"stirling-pdf/src/main/**/*.css\" \"proprietary/src/main/resources/static/css/*.css\" --fix" }, "repository": { "type": "git", diff --git a/proprietary/src/main/resources/static/css/audit-dashboard.css b/proprietary/src/main/resources/static/css/audit-dashboard.css index 51531c04e..4afcdcc7e 100644 --- a/proprietary/src/main/resources/static/css/audit-dashboard.css +++ b/proprietary/src/main/resources/static/css/audit-dashboard.css @@ -16,23 +16,28 @@ .card-body { background-color: var(--md-sys-color-surface-container); } + .stat-card { text-align: center; padding: 20px; } + .stat-number { font-size: 2rem; font-weight: bold; } + .stat-label { font-size: 1rem; color: var(--md-sys-color-on-surface-variant); } + .chart-container { position: relative; height: 300px; width: 100%; } + .filter-card { margin-bottom: 20px; padding: 15px; @@ -40,6 +45,7 @@ border: 1px solid var(--md-sys-color-outline-variant); border-radius: 4px; } + .loading-overlay { position: absolute; top: 0; @@ -52,6 +58,7 @@ align-items: center; z-index: 1000; } + .level-indicator { display: inline-block; padding: 5px 10px; @@ -59,18 +66,23 @@ color: white; font-weight: bold; } + .level-0 { background-color: var(--md-sys-color-error, #dc3545); /* Red */ } + .level-1 { background-color: var(--md-sys-color-secondary, #fd7e14); /* Orange */ } + .level-2 { background-color: var(--md-nav-section-color-other, #28a745); /* Green */ } + .level-3 { background-color: var(--md-sys-color-tertiary, #17a2b8); /* Teal */ } + /* Custom data table styling */ .audit-table { font-size: 0.9rem; @@ -89,6 +101,7 @@ .audit-table tbody tr:hover { background-color: var(--md-sys-color-surface-container-high); } + .audit-table th { background-color: var(--md-sys-color-surface-container-high); color: var(--md-sys-color-on-surface); @@ -97,9 +110,11 @@ z-index: 10; font-weight: bold; } + .table-responsive { max-height: 600px; } + .pagination-container { display: flex; justify-content: space-between; @@ -125,6 +140,7 @@ color: var(--bs-secondary); background-color: var(--bs-light); } + .json-viewer { background-color: var(--md-sys-color-surface-container-low); color: var(--md-sys-color-on-surface); diff --git a/proprietary/src/main/resources/static/css/modern-tables.css b/proprietary/src/main/resources/static/css/modern-tables.css index 156c39fed..037535551 100644 --- a/proprietary/src/main/resources/static/css/modern-tables.css +++ b/proprietary/src/main/resources/static/css/modern-tables.css @@ -383,7 +383,7 @@ width: 100%; padding: 0.75rem 1rem; border-radius: 0.5rem; - border: 1px solid + border: 1px solid; } .text-overflow {