From bb5446ad7087be652837ca403cb616d2917b8f65 Mon Sep 17 00:00:00 2001 From: Ilyas Mohammed Date: Mon, 3 Aug 2026 14:02:43 +0200 Subject: [PATCH 01/30] refactor: migrate basic components to bootstrap theme variables --- frontend/src/basic/Sidebar.vue | 34 +++++++++---------- frontend/src/basic/Table.vue | 2 +- frontend/src/basic/editor/CommandEditor.vue | 2 +- frontend/src/basic/editor/JsonEditor.vue | 2 +- frontend/src/basic/form/Choice.vue | 4 +-- .../basic/graph/WorkflowStepInspectModal.vue | 6 ++-- .../basic/modal/ApplySkillSetupStepper.vue | 2 +- .../src/basic/modal/ConfigurationModal.vue | 6 ++-- .../src/basic/modal/GeneralSettingStep.vue | 16 ++++----- frontend/src/basic/modal/InformationModal.vue | 12 +++---- frontend/src/basic/modal/PlaceholdersStep.vue | 20 +++++------ frontend/src/basic/modal/ServicesStep.vue | 18 +++++----- frontend/src/basic/modal/StepTemplate.vue | 2 +- frontend/src/basic/modal/StepperModal.vue | 4 +-- .../src/basic/modal/skills/InputConfirm.vue | 6 ++-- .../src/basic/modal/skills/InputFiles.vue | 4 +-- .../src/basic/modal/skills/InputGroup.vue | 2 +- frontend/src/basic/modal/skills/InputMap.vue | 2 +- frontend/src/basic/navigation/Topbar.vue | 10 +++--- 19 files changed, 77 insertions(+), 77 deletions(-) diff --git a/frontend/src/basic/Sidebar.vue b/frontend/src/basic/Sidebar.vue index d6a537faf..f2c7eeffd 100644 --- a/frontend/src/basic/Sidebar.vue +++ b/frontend/src/basic/Sidebar.vue @@ -521,8 +521,8 @@ export default { /* ===== MAIN CONTAINER STYLES ===== */ .sidebar-wrapper { position: relative; - background-color: #f8f9fa; - border-left: 1px solid #ddd; + background-color: var(--bs-tertiary-bg, #f8f9fa); + border-left: 1px solid var(--bs-border-color, #ddd); flex-shrink: 0; } @@ -560,7 +560,7 @@ export default { } #sidepane { - background-color: #e6e6e6; + background-color: var(--bs-secondary-bg, #e6e6e6); width: 100%; height: 100%; display: flex; @@ -576,8 +576,8 @@ export default { display: flex; align-items: stretch; padding: 10px; - border-bottom: 1px solid #ddd; - background-color: #ffff; + border-bottom: 1px solid var(--bs-border-color, #ddd); + background-color: var(--bs-body-bg, #ffffff); flex-shrink: 0; } @@ -590,23 +590,23 @@ export default { border: 1px solid transparent; border-radius: 0.375rem 0.375rem 0 0; padding: 8px 8px; - color: #495057; + color: var(--bs-body-color, #495057); transition: all 0.2s ease-in-out; } .sidebar-header .nav-tabs .nav-link:hover { - border-color: #e9ecef #e9ecef #dee2e6; - background-color: #f8f9fa; + border-color: var(--bs-border-color, #dee2e6); + background-color: var(--bs-tertiary-bg, #f8f9fa); } .sidebar-header .nav-tabs .nav-link.active { - color: #0d6efd; - background-color: #fff; - border-color: #dee2e6 #dee2e6 #fff; + color: var(--bs-primary, #0d6efd); + background-color: var(--bs-body-bg, #fff); + border-color: var(--bs-border-color, #dee2e6) var(--bs-border-color, #dee2e6) var(--bs-body-bg, #fff); } .sidebar-header .nav-tabs .nav-link.disabled { - color: #6c757d; + color: var(--bs-secondary-color, #6c757d); background-color: transparent; border-color: transparent; cursor: not-allowed; @@ -632,8 +632,8 @@ export default { .sidebar-action-button:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important; - background-color: #f8f9fa !important; - border-color: #dee2e6 !important; + background-color: var(--bs-tertiary-bg, #f8f9fa) !important; + border-color: var(--bs-border-color, #dee2e6) !important; } .sidebar-action-button:active { @@ -658,13 +658,13 @@ export default { /* ===== DROPDOWN STYLES ===== */ .dropdown-menu { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - border: 1px solid #dee2e6; + border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 8px; padding: 4px } .dropdown-item:hover { - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); transform: translateY(-1px); transition: all 0.2s ease; } @@ -680,7 +680,7 @@ export default { #addPageNote .btn { border: none; - color: #575757; + color: var(--bs-secondary-color, #575757); } .nav-text { diff --git a/frontend/src/basic/Table.vue b/frontend/src/basic/Table.vue index db408c68f..16d9dc103 100644 --- a/frontend/src/basic/Table.vue +++ b/frontend/src/basic/Table.vue @@ -1145,7 +1145,7 @@ export default { cursor: not-allowed; pointer-events: initial; opacity: 0.5; - background-color: #d8d8d8; + background-color: var(--bs-secondary-bg, #d8d8d8); border: 1px solid gray; } diff --git a/frontend/src/basic/editor/CommandEditor.vue b/frontend/src/basic/editor/CommandEditor.vue index 4621bec40..e59140026 100644 --- a/frontend/src/basic/editor/CommandEditor.vue +++ b/frontend/src/basic/editor/CommandEditor.vue @@ -130,7 +130,7 @@
diff --git a/frontend/src/basic/editor/JsonEditor.vue b/frontend/src/basic/editor/JsonEditor.vue index f1f70b667..a93a49fd4 100644 --- a/frontend/src/basic/editor/JsonEditor.vue +++ b/frontend/src/basic/editor/JsonEditor.vue @@ -8,7 +8,7 @@ >
diff --git a/frontend/src/basic/form/Choice.vue b/frontend/src/basic/form/Choice.vue index fc1ed4937..2af598942 100644 --- a/frontend/src/basic/form/Choice.vue +++ b/frontend/src/basic/form/Choice.vue @@ -390,10 +390,10 @@ export default { diff --git a/frontend/src/basic/graph/WorkflowStepInspectModal.vue b/frontend/src/basic/graph/WorkflowStepInspectModal.vue index eaf60d09d..9c7d7aa36 100644 --- a/frontend/src/basic/graph/WorkflowStepInspectModal.vue +++ b/frontend/src/basic/graph/WorkflowStepInspectModal.vue @@ -166,7 +166,7 @@ export default { font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; - color: #6c757d; + color: var(--bs-secondary-color, #6c757d); border-bottom: 1px solid #dee2e6; padding-bottom: 0.25rem; margin-bottom: 0.5rem; @@ -182,7 +182,7 @@ export default { .info-grid dt { font-weight: 500; - color: #495057; + color: var(--bs-body-color, #495057); font-size: 0.875rem; align-self: start; padding-top: 0.1rem; @@ -195,7 +195,7 @@ export default { } .config-block { - background: #f8f9fa; + background: var(--bs-tertiary-bg, #f8f9fa); border: 1px solid #dee2e6; border-radius: 0.375rem; padding: 0.75rem 1rem; diff --git a/frontend/src/basic/modal/ApplySkillSetupStepper.vue b/frontend/src/basic/modal/ApplySkillSetupStepper.vue index 38835a309..74ff8c4e1 100644 --- a/frontend/src/basic/modal/ApplySkillSetupStepper.vue +++ b/frontend/src/basic/modal/ApplySkillSetupStepper.vue @@ -339,6 +339,6 @@ export default { } .text-primary { - color: #007bff !important; + color: var(--bs-primary, #007bff) !important; } diff --git a/frontend/src/basic/modal/ConfigurationModal.vue b/frontend/src/basic/modal/ConfigurationModal.vue index 90f495bd8..76f39d54e 100644 --- a/frontend/src/basic/modal/ConfigurationModal.vue +++ b/frontend/src/basic/modal/ConfigurationModal.vue @@ -247,15 +247,15 @@ export default { } .text-primary { - color: #007bff !important; + color: var(--bs-primary, #007bff) !important; } .text-secondary { - color: #6c757d !important; + color: var(--bs-secondary-color, #6c757d) !important; } .short-preview { - background: #f8f9fa; + background: var(--bs-tertiary-bg, #f8f9fa); border: 1px solid #ddd; border-radius: 0.5rem; font-size: 14px; diff --git a/frontend/src/basic/modal/GeneralSettingStep.vue b/frontend/src/basic/modal/GeneralSettingStep.vue index 14bc8544a..86908f6ed 100644 --- a/frontend/src/basic/modal/GeneralSettingStep.vue +++ b/frontend/src/basic/modal/GeneralSettingStep.vue @@ -102,7 +102,7 @@ export default { } .section-title { - color: #495057; + color: var(--bs-body-color, #495057); font-weight: 600; margin-bottom: 1rem; padding-bottom: 0.5rem; @@ -110,14 +110,14 @@ export default { } .config-fields { - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; } .general-settings { - background-color: #ffffff; + background-color: var(--bs-body-bg, #ffffff); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; @@ -125,14 +125,14 @@ export default { .setting-item { padding: 0.75rem; - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); border-radius: 0.375rem; border: 1px solid #e9ecef; } .form-label { font-weight: 500; - color: #495057; + color: var(--bs-body-color, #495057); margin-bottom: 0.5rem; } @@ -141,7 +141,7 @@ export default { } .form-control:focus { - border-color: #0d6efd; + border-color: var(--bs-primary, #0d6efd); box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -150,8 +150,8 @@ export default { } .form-check-input:checked { - background-color: #0d6efd; - border-color: #0d6efd; + background-color: var(--bs-primary, #0d6efd); + border-color: var(--bs-primary, #0d6efd); } .form-text { diff --git a/frontend/src/basic/modal/InformationModal.vue b/frontend/src/basic/modal/InformationModal.vue index c68d2b1d7..81ad1564a 100644 --- a/frontend/src/basic/modal/InformationModal.vue +++ b/frontend/src/basic/modal/InformationModal.vue @@ -93,7 +93,7 @@ export default { .information-container { max-height: 400px; overflow-y: auto; - background: #f8f9fa; + background: var(--bs-tertiary-bg, #f8f9fa); border-radius: 0.5rem; } @@ -107,15 +107,15 @@ export default { } .text-primary { - color: #007bff !important; + color: var(--bs-primary, #007bff) !important; } .text-secondary { - color: #6c757d !important; + color: var(--bs-secondary-color, #6c757d) !important; } .text-muted { - color: #6c757d !important; + color: var(--bs-secondary-color, #6c757d) !important; } .fw-bold { @@ -131,8 +131,8 @@ export default { } .btn-outline-secondary:hover { - background-color: #6c757d; - color: #fff; + background-color: var(--bs-secondary-color, #6c757d); + color: var(--bs-body-color, #fff); } diff --git a/frontend/src/basic/modal/PlaceholdersStep.vue b/frontend/src/basic/modal/PlaceholdersStep.vue index 1a5b91237..dfbe2963f 100644 --- a/frontend/src/basic/modal/PlaceholdersStep.vue +++ b/frontend/src/basic/modal/PlaceholdersStep.vue @@ -494,7 +494,7 @@ export default { } .section-title { - color: #495057; + color: var(--bs-body-color, #495057); font-weight: 600; margin-bottom: 1rem; padding-bottom: 0.5rem; @@ -502,7 +502,7 @@ export default { } .short-preview { - background: #f8f9fa; + background: var(--bs-tertiary-bg, #f8f9fa); border: 1px solid #ddd; border-radius: 0.5rem; padding: 1rem; @@ -514,7 +514,7 @@ export default { } .legend { - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; @@ -536,14 +536,14 @@ export default { } .placeholders-config { - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; } .placeholder-item { - background-color: #ffffff; + background-color: var(--bs-body-bg, #ffffff); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; @@ -564,7 +564,7 @@ export default { } .placeholder-type { - background-color: #6c757d; + background-color: var(--bs-secondary-color, #6c757d); color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; @@ -575,14 +575,14 @@ export default { .comparison-inputs, .single-input { - background-color: #f1f3f4; + background-color: var(--bs-secondary-bg, #f1f3f4); padding: 0.75rem; border-radius: 0.375rem; border: 1px solid #e9ecef; } .input-group { - background-color: #ffffff; + background-color: var(--bs-body-bg, #ffffff); padding: 0.5rem; border-radius: 0.25rem; border: 1px solid #dee2e6; @@ -590,7 +590,7 @@ export default { .form-label { font-weight: 500; - color: #495057; + color: var(--bs-body-color, #495057); margin-bottom: 0.5rem; } @@ -599,7 +599,7 @@ export default { } .form-control:focus { - border-color: #0d6efd; + border-color: var(--bs-primary, #0d6efd); box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } diff --git a/frontend/src/basic/modal/ServicesStep.vue b/frontend/src/basic/modal/ServicesStep.vue index 1a29187b1..52c12102b 100644 --- a/frontend/src/basic/modal/ServicesStep.vue +++ b/frontend/src/basic/modal/ServicesStep.vue @@ -269,7 +269,7 @@ export default { } .section-title { - color: #495057; + color: var(--bs-body-color, #495057); font-weight: 600; margin-bottom: 1rem; padding-bottom: 0.5rem; @@ -277,42 +277,42 @@ export default { } .services-config { - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; } .skill-item { - background-color: #ffffff; + background-color: var(--bs-body-bg, #ffffff); padding: 1rem; border-radius: 0.5rem; border: 1px solid #e9ecef; } .skill-selection { - background-color: #f8f9fa; + background-color: var(--bs-tertiary-bg, #f8f9fa); padding: 0.75rem; border-radius: 0.375rem; border: 1px solid #e9ecef; } .input-mappings { - background-color: #f1f3f4; + background-color: var(--bs-secondary-bg, #f1f3f4); padding: 0.75rem; border-radius: 0.375rem; border: 1px solid #e9ecef; } .input-title { - color: #495057; + color: var(--bs-body-color, #495057); font-weight: 600; margin-bottom: 0.75rem; font-size: 0.9rem; } .input-mapping { - background-color: #ffffff; + background-color: var(--bs-body-bg, #ffffff); padding: 0.5rem; border-radius: 0.25rem; border: 1px solid #dee2e6; @@ -320,7 +320,7 @@ export default { .form-label { font-weight: 500; - color: #495057; + color: var(--bs-body-color, #495057); margin-bottom: 0.5rem; } @@ -329,7 +329,7 @@ export default { } .form-control:focus { - border-color: #0d6efd; + border-color: var(--bs-primary, #0d6efd); box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } diff --git a/frontend/src/basic/modal/StepTemplate.vue b/frontend/src/basic/modal/StepTemplate.vue index aeabfd0e9..d5911068c 100644 --- a/frontend/src/basic/modal/StepTemplate.vue +++ b/frontend/src/basic/modal/StepTemplate.vue @@ -32,7 +32,7 @@ export default { } .step-template h5 { - color: #495057; + color: var(--bs-body-color, #495057); font-weight: 600; margin-bottom: 1rem; padding-bottom: 0.5rem; diff --git a/frontend/src/basic/modal/StepperModal.vue b/frontend/src/basic/modal/StepperModal.vue index 877b79126..7ac0fc670 100644 --- a/frontend/src/basic/modal/StepperModal.vue +++ b/frontend/src/basic/modal/StepperModal.vue @@ -203,7 +203,7 @@ export default { left: 0; right: 0; height: 2px; - background-color: #ccc; + background-color: var(--bs-secondary-bg, #ccc); } } @@ -235,7 +235,7 @@ export default { } .stepper div.active { - --btn-color: #0d6efd; + --btn-color: var(--bs-primary, #0d6efd); border-color: var(--btn-color); &:before { diff --git a/frontend/src/basic/modal/skills/InputConfirm.vue b/frontend/src/basic/modal/skills/InputConfirm.vue index a1f4a5667..0807d9b4e 100644 --- a/frontend/src/basic/modal/skills/InputConfirm.vue +++ b/frontend/src/basic/modal/skills/InputConfirm.vue @@ -103,7 +103,7 @@ export default { \ No newline at end of file diff --git a/frontend/src/basic/modal/skills/InputFiles.vue b/frontend/src/basic/modal/skills/InputFiles.vue index 147524326..126a47e79 100644 --- a/frontend/src/basic/modal/skills/InputFiles.vue +++ b/frontend/src/basic/modal/skills/InputFiles.vue @@ -305,11 +305,11 @@ export default { diff --git a/frontend/src/basic/navigation/Topbar.vue b/frontend/src/basic/navigation/Topbar.vue index c4889116e..1fb71cb18 100644 --- a/frontend/src/basic/navigation/Topbar.vue +++ b/frontend/src/basic/navigation/Topbar.vue @@ -4,7 +4,7 @@ ref="topbar" class="nav-container" > -