Files
eveAI/nginx/static/assets/css/eveai.css
Josako 0d05499d2b - Add Specialist Magic Links
- correction of some bugs:
  - dynamic fields for adding documents / urls to dossier catalog
  - tabs in latest bootstrap version no longer functional
  - partner association of license tier not working when no partner selected
  - data-type dynamic field needs conversion to isoformat
  - Add public tables to env.py of tenant schema
2025-06-04 11:53:35 +02:00

1219 lines
38 KiB
CSS

/*Overriding Colors*/
:root {
--bs-primary: #76599a;
--bs-secondary: #b14f9d;
--bs-success: #f8e1a9;
--bs-info: #423372;
--bs-warning: #eb7f31;
--bs-danger: #9c2d66;
}
/* Overriding the background gradient and text colors ------------------------------------------ */
.bg-gradient-success {
background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%);
}
.shadow-success {
box-shadow: 0px 4px 20px 0px rgba(118, 89, 154, 0.5); /* Adjusting shadow color */
}
.border-radius-lg {
border-radius: 1rem; /* Assuming you want to keep the large border-radius */
}
.text-white {
color: #f8e1a9 !important; /* Adjust text to the EveAI success color */
}
.text-sm {
font-size: 0.875rem; /* Adjust size if needed, keeping original */
}
/* Override for the link with text-success and text-gradient classes */
.text-success {
color: var(--bs-primary) !important; /* Use EveAI primary color */
}
.text-gradient {
background-image: linear-gradient(90deg, var(--bs-primary), var(--bs-secondary));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.font-weight-bold {
font-weight: 700; /* Retain bold text */
}
/* Navbar customization ------------------------------------------------------------------------ */
.navbar-light .navbar-brand {
color: var(--bs-primary) !important; /* Primary color for the brand text */
}
.navbar-light .navbar-nav .nav-link {
color: var(--bs-secondary) !important; /* Secondary color for the nav links */
}
/* Ensure consistent alignment for all dropdown icons */
.navbar-nav .nav-link i.material-icons {
font-size: 24px; /* Ensures all icons are the same size */
vertical-align: middle; /* Align icons vertically with text */
margin-right: 8px; /* Space between icon and text */
line-height: 1; /* Prevents misalignment due to line-height issues */
}
.navbar-nav .nav-link {
display: flex;
align-items: center; /* Aligns icon and text vertically */
padding: 0; /* Remove any additional padding */
}
/* Adjust the size and spacing of the material-symbols-outlined icons */
.navbar-nav .nav-link .material-symbols-outlined {
font-size: 20px; /* Adjust the icon size */
vertical-align: middle; /* Ensure vertical alignment with text */
margin-right: 8px; /* Add space between the icon and the text */
line-height: 1; /* Maintain alignment */
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus {
color: var(--bs-primary) !important; /* Primary color on hover/focus */
}
.bg-white {
background-color: var(--bs-light) !important; /* Adjust the background to a custom light color if needed */
}
.btn.bg-gradient-primary {
background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%);
color: var(--bs-white) !important; /* Ensures text is readable on the gradient */
border: none;
}
.navbar-toggler .navbar-toggler-bar {
background-color: var(--bs-secondary); /* Adjusts color of the toggler bars */
}
.dropdown-menu {
background-color: var(--bs-light); /* Light background for dropdown */
border-radius: 0.375rem; /* Retains rounded corners */
}
.dropdown-item {
color: var(--bs-primary) !important; /* Primary color for dropdown items */
}
.dropdown-item:hover,
.dropdown-item:focus {
background-color: var(--bs-secondary) !important; /* Secondary color for hover/focus background */
color: var(--bs-white) !important; /* White text on hover/focus */
}
.btn.bg-gradient-primary {
background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%);
color: var(--bs-white) !important;
}
/* Page header customization ------------------------------------------------------------------- */
.page-header {
background-size: cover;
background-position: center;
min-height: 25vh;
position: relative;
}
.page-header .mask {
background: linear-gradient(90deg, var(--bs-primary), var(--bs-secondary)) !important; /* Gradient overlay */
opacity: 0.8; /* Adjust opacity to let the background image show through */
}
.page-header h1 {
color: var(--bs-success) !important; /* Use the success color for the header text */
margin-top: -1.5rem; /* Adjusted margin to align text properly */
}
.page-header p.lead {
color: var(--bs-info) !important; /* Use the info color for the lead text */
padding-left: 1.5rem;
padding-right: 1.5rem;
}
/* Ensure consistent padding */
.page-header .container {
padding-top: 3rem;
padding-bottom: 3rem;
}
.page-header .col-lg-7 {
margin-top: -5rem; /* Adjust margin to improve vertical alignment */
}
/* Card and table customization ---------------------------------------------------------------- */
.card {
border: 1px solid var(--bs-secondary) !important; /* Secondary color for the card border */
border-radius: 0.5rem; /* Keeps the border-radius consistent */
box-shadow: 0 4px 8px rgba(118, 89, 154, 0.2); /* Soft shadow with primary color */
}
.table {
color: var(--bs-body-color) !important; /* Ensure the text color matches the theme */
background-color: var(--bs-light) !important; /* Light background color */
border-collapse: separate !important; /* Ensure borders do not collapse */
border-spacing: 0; /* Remove spacing between table cells */
border-radius: 0.375rem; /* Rounded corners */
overflow: hidden; /* Ensure the rounded corners apply to the entire table */
border: 1px solid var(--bs-secondary) !important; /* Apply border with secondary color */
}
.table thead th {
color: var(--bs-info) !important; /* Info color for the table headers */
background-color: var(--bs-light) !important; /* Background for table headers */
border-bottom: 1px solid var(--bs-secondary) !important; /* Secondary color for the header bottom border */
}
/* Ensures corners are colored */
.table thead th:first-child {
border-top-left-radius: 0.375rem !important;
}
.table thead th:last-child {
border-top-right-radius: 0.375rem !important;
}
.table tbody tr:last-child td:first-child {
border-bottom-left-radius: 0.375rem !important;
}
.table tbody tr:last-child td:last-child {
border-bottom-right-radius: 0.375rem !important;
}
.table tbody tr {
border-top: 1px solid var(--bs-gray-300) !important; /* Subtle border between rows */
}
.table tbody tr:hover {
background-color: var(--bs-secondary) !important; /* Secondary color on row hover */
color: var(--bs-white) !important; /* White text on hover */
}
.table tbody tr:hover a,
.table tbody tr:hover p,
.table tbody tr:hover td {
color: var(--bs-white) !important; /* Ensure all text, links, and paragraphs change to white */
}
.table tbody tr:hover .text-xs {
color: var(--bs-white) !important; /* Ensure the smaller text also changes to white */
}
.table .text-xs {
color: var(--bs-body-color) !important; /* Consistent text color in the table cells */
}
input[type="radio"] {
accent-color: var(--bs-primary); /* Primary color for radio buttons */
}
/* Buttons customization */
.btn-primary {
background-color: var(--bs-primary) !important;
border-color: var(--bs-primary) !important;
color: var(--bs-white) !important;
}
.btn-secondary {
background-color: var(--bs-secondary) !important;
border-color: var(--bs-secondary) !important;
color: var(--bs-white) !important;
}
.btn-success {
background-color: var(--bs-warning) !important;
border-color: var(--bs-warning) !important;
color: var(--bs-white) !important;
}
/* Adjust the form group margin */
.form-group {
margin-top: 1.5rem; /* Adjust for better spacing */
}
/* Card footer customization */
.card-footer {
/*background-color: var(--bs-light) !important; !* Light background for the footer *!*/
padding-top: 1rem; /* Adjust padding for consistent spacing */
padding-bottom: 1rem; /* Adjust padding for consistent spacing */
/*border-top: 1px solid var(--bs-secondary) !important; !* Border with secondary color *!*/
padding-left: 0 !important;
padding-right: 0 !important;
}
.card-footer .pagination {
padding-left: 0 !important; /* Remove extra padding */
padding-right: 0 !important; /* Remove extra padding */
}
/* Pagination customization */
.pagination {
display: flex;
justify-content: center;
list-style: none;
border-radius: 0.375rem;
margin-left: 0 !important;
margin-right: 0 !important;
padding-left: 0 !important; /* Add some padding inside the pagination */
padding-right: 0 !important; /* Add some padding inside the pagination */
}
.pagination .page-item {
margin-left: 0 !important;
margin-right: 0 !important;
}
.page-item.disabled .page-link {
color: var(--bs-gray-500) !important; /* Disabled state color */
background-color: var(--bs-gray-200) !important; /* Disabled state background */
border-color: var(--bs-gray-300) !important; /* Disabled state border */
}
.page-item.active .page-link {
z-index: 1;
color: var(--bs-white) !important; /* Active page color */
background-color: var(--bs-primary) !important; /* Active page background */
border-color: var(--bs-primary) !important; /* Active page border */
}
.page-item .page-link {
border-radius: 50% !important; /* Ensure circular buttons */
margin: 0 5px; /* Add some spacing between buttons */
}
.page-link {
color: var(--bs-primary) !important; /* Default link color */
background-color: var(--bs-light) !important; /* Light background for links */
border: 1px solid var(--bs-secondary) !important; /* Border with secondary color */
border-radius: 0.375rem; /* Rounded corners */
padding: 0.5rem 0.75rem;
margin: 0 0.25rem; /* Adjust margin for spacing */
}
.page-link:hover {
color: var(--bs-white) !important; /* Hover state text color */
background-color: var(--bs-secondary) !important; /* Hover state background */
border-color: var(--bs-secondary) !important; /* Hover state border */
}
.page-link i.fa {
margin-right: 0.25rem; /* Add spacing between icon and text */
}
/* Align text centrally */
.text-center {
text-align: center !important;
}
/* Form and Input Fields ----------------------------------------------------------------------- */
.form-group label.form-label {
color: var(--bs-secondary) !important; /* Secondary color for labels */
font-weight: 500; /* Slightly bolder labels */
}
.form-group:last-of-type {
margin-bottom: 2rem; /* Adjust this value to control spacing */
}
.form-control {
background-color: var(--bs-light) !important; /* Light background for input fields */
border-color: var(--bs-secondary) !important; /* Secondary color for borders */
color: var(--bs-body-color) !important; /* Text color consistent with the theme */
}
/* Style for both disabled and readonly fields - same gray background */
.form-control:disabled,
.form-control[readonly] {
background-color: var(--bs-gray-100) !important; /* Gray background */
color: var(--bs-gray-600) !important; /* Dimmed text color */
}
/* Light orange background for editable fields */
/* TODO
.form-control:not([readonly]):not(:disabled) {
background-color: #ffe4d6 !important;
}
*/
.form-check-input:checked {
background-color: var(--bs-primary) !important; /* Primary color for checked checkboxes */
border-color: var(--bs-primary) !important; /* Primary color for checkbox border */
}
.form-check-label {
color: var(--bs-body-color) !important; /* Consistent text color for check labels */
}
/* Tabs Navigation ----------------------------------------------------------------------------- */
.nav-pills .nav-link {
color: var(--bs-primary) !important; /* Primary color for inactive tab text */
border-radius: 0.375rem !important; /* Rounded corners for tabs */
transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transitions */
}
.nav-pills .nav-link.active {
background-color: var(--bs-primary) !important; /* Primary background for active tab */
color: var(--bs-white) !important; /* White text for active tab */
}
.nav-pills .nav-link:hover {
background-color: var(--bs-secondary) !important; /* Secondary background on hover */
color: var(--bs-white) !important; /* White text on hover */
}
/* Tabs Content -------------------------------------------------------------------------------- */
.tab-pane {
padding-top: 1rem; /* Consistent padding inside tabs */
}
.moving-tab {
background-color: var(--bs-primary) !important; /* Primary color for the moving tab indicator */
}
/* Buttons ------------------------------------------------------------------------------------- */
.btn-primary:hover {
background-color: var(--bs-secondary) !important;
border-color: var(--bs-secondary) !important;
}
#copy-message {
color: var(--bs-success) !important; /* Success color for the copy message */
}
/* Danger Button Styling */
.btn-danger {
background-color: var(--bs-danger) !important; /* Use the danger color from the EveAI theme */
border-color: var(--bs-danger) !important;
color: var(--bs-white) !important; /* Ensure text is white for readability */
transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transition on hover */
}
.btn-danger:hover {
background-color: var(--bs-secondary) !important;
border-color: var(--bs-secondary) !important;
color: var(--bs-white) !important; /* Ensure the text remains white and readable */
}
/* Success Alert Styling */
.alert-success {
background-color: var(--bs-success) !important; /* EveAI success background color */
color: var(--bs-dark) !important; /* Dark color for the text for better readability */
border-color: var(--bs-success) !important; /* Matching border color */
border-radius: 0.375rem; /* Rounded corners for the alert box */
padding: 1rem; /* Consistent padding */
box-shadow: 0px 4px 10px rgba(118, 89, 154, 0.2); /* Soft shadow for some depth */
}
.alert-success .alert-heading {
color: var(--bs-dark) !important; /* Ensure the heading stands out */
font-weight: 600; /* Slightly bolder heading */
}
.alert-success p {
margin-bottom: 0; /* Remove extra margin from paragraphs inside alerts */
}
.form-control {
border: 1px solid #d2d6da;
padding: 0.625rem 0.75rem;
}
.form-control:focus {
color: #495057;
background-color: transparent;
border-color: #d2d6da;
outline: 0;
box-shadow: none;
}
/* Custom styles for chat session view --------------------------------------------------------- */
.accordion-button:not(.collapsed) {
background-color: var(--bs-primary);
color: var(--bs-white);
}
.accordion-button:focus {
box-shadow: 0 0 0 0.25rem rgba(118, 89, 154, 0.25);
}
.interaction-question {
font-size: 1rem; /* Normal text size */
}
.interaction-icons {
display: flex;
align-items: center;
}
.interaction-icons .material-icons {
font-size: 24px;
margin-left: 8px;
}
.thumb-icon.filled {
color: var(--bs-success);
}
.thumb-icon.outlined {
color: var(--thumb-icon-outlined);
}
/* Algorithm icon colors */
.algorithm-icon.rag_tenant {
color: var(--algorithm-color-rag-tenant);
}
.algorithm-icon.rag_wikipedia {
color: var(--algorithm-color-rag-wikipedia);
}
.algorithm-icon.rag_google {
color: var(--algorithm-color-rag-google);
}
.algorithm-icon.llm {
color: var(--algorithm-color-llm);
}
.accordion-body {
background-color: var(--bs-light);
}
/* Markdown content styles --------------------------------------------------------------------- */
.markdown-content {
font-size: 1rem;
line-height: 1.5;
}
.markdown-content p {
margin-bottom: 1rem;
}
.markdown-content h1, .markdown-content h2, .markdown-content h3,
.markdown-content h4, .markdown-content h5, .markdown-content h6 {
margin-top: 1.5rem;
margin-bottom: 1rem;
}
.markdown-content ul, .markdown-content ol {
margin-bottom: 1rem;
padding-left: 2rem;
}
.markdown-content code {
background-color: #f8f9fa;
padding: 0.2em 0.4em;
border-radius: 3px;
}
.markdown-content pre {
background-color: #f8f9fa;
padding: 1rem;
border-radius: 5px;
overflow-x: auto;
}
/* Hide Select2's custom elements */
.select2-container-hidden {
position: absolute !important;
left: -9999px !important;
}
.select2-dropdown-hidden {
display: none !important;
}
/* Ensure the original select is visible and styled -------------------------------------------- */
select.select2 {
display: block !important;
width: 100% !important;
height: auto !important;
padding: .375rem .75rem !important;
font-size: 1rem !important;
line-height: 1.5 !important;
color: #495057 !important;
background-color: #fff !important;
background-clip: padding-box !important;
border: 1px solid #ced4da !important;
border-radius: .25rem !important;
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out !important;
}
/* Style for multiple select */
select.select2[multiple] {
height: auto !important;
}
/* REQUIRED FIELD SETTINGS --------------------------------------------------------------------- */
/* Required field indicator styling */
.field-label-wrapper {
display: flex;
align-items: baseline; /* Changed from center to baseline for proper text alignment */
gap: 0.25rem;
}
.required-field-indicator {
display: inline-flex;
align-items: baseline; /* Match the wrapper's alignment */
}
.required-field-indicator .required-icon {
font-size: 0.7rem;
transition: transform 0.2s ease-in-out;
opacity: 0.8;
line-height: 1; /* Ensure proper vertical alignment */
}
/* Hover animation */
.field-label-wrapper:hover .required-icon {
transform: scale(1.2);
opacity: 1;
}
/* Animation when field is invalid */
.is-invalid + .field-label-wrapper .required-icon {
color: var(--bs-danger);
animation: pulse 1s infinite;
}
@keyframes pulse {
0% {
transform: scale(1);
opacity: 0.8;
}
50% {
transform: scale(1.2);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 0.8;
}
}
/* Hide visually but maintain accessibility */
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* TAB ERROR STYLES ---------------------------------------------------------------------------- */
/* Style for tabs with errors */
.nav-link.has-error {
position: relative;
}
.nav-link.has-error::after {
content: '';
position: absolute;
top: 0;
right: 0;
width: 8px;
height: 8px;
background-color: var(--bs-danger);
border-radius: 50%;
transform: translate(50%, -50%);
}
/* Enhance the invalid field visualization */
.form-control:invalid {
border-color: var(--bs-danger);
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}
/* Add smooth transition for tab changes */
.tab-pane {
transition: opacity 0.15s linear;
}
.tab-pane.fade {
opacity: 0;
}
.tab-pane.fade.show {
opacity: 1;
}
.interaction-header {
font-size: 0.9rem;
display: flex;
flex-direction: column;
width: 100%;
padding: 0.5rem 0;
}
.interaction-metadata {
display: flex;
gap: 1rem;
align-items: center;
margin-bottom: 0.5rem;
}
.interaction-time {
font-size: 0.9rem;
}
.specialist-info {
display: flex;
gap: 0.5rem;
align-items: center;
}
.interaction-question {
font-size: 0.9rem;
font-weight: bold;
line-height: 1.4;
}
.badge {
font-size: 0.9rem;
padding: 0.35em 0.65em;
white-space: nowrap;
}
.accordion-button {
padding: 0.5rem 1rem;
}
.accordion-button::after {
margin-left: 1rem;
}
.list-group-item {
font-size: 0.9rem;
}
.material-icons {
font-size: 1.1rem;
}
/* JSON Editor Styling - EveAI Aanpassingen ---------------------------------------------------- */
:root {
/* Hoofdkleuren gebaseerd op EveAI kleurenschema */
--jse-theme-color: var(--bs-primary); /* Paars als hoofdkleur */
--jse-theme-color-highlight: var(--bs-secondary); /* Secundair paars voor highlights */
/* Achtergrondkleuren */
--jse-background-color: #fff;
--jse-panel-background: #f8f9fa;
--jse-panel-border: 1px solid var(--bs-secondary);
--jse-panel-border-radius: 0.375rem;
/* Tekstkleuren */
--jse-text-color: var(--bs-body-color);
--jse-text-color-inverse: #ffffff;
/* Navigatie */
--jse-navigation-bar-background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%);
--jse-navigation-bar-background-highlight: var(--bs-secondary);
--jse-navigation-bar-text-color: #ffffff;
/* Status balk */
--jse-status-bar-background: var(--bs-light);
--jse-status-bar-color: var(--bs-body-color);
--jse-status-bar-border: 1px solid var(--bs-secondary);
--jse-status-bar-border-radius: 0 0 0.375rem 0.375rem;
/* Main menu bar */
--jse-main-menu-background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%);
--jse-main-menu-color: #ffffff;
--jse-main-menu-button-background-highlight: var(--bs-secondary);
--jse-main-menu-button-color-highlight: #ffffff;
/* Contextmenu */
--jse-context-menu-background: #fff;
--jse-context-menu-background-highlight: var(--bs-secondary);
--jse-context-menu-color: var(--bs-body-color);
--jse-context-menu-color-highlight: #ffffff;
--jse-context-menu-border: 1px solid var(--bs-secondary);
--jse-context-menu-box-shadow: 0 4px 8px rgba(118, 89, 154, 0.2);
--jse-context-menu-border-radius: 0.375rem;
/* Knoppen */
--jse-button-background: var(--bs-primary);
--jse-button-background-highlight: var(--bs-secondary);
--jse-button-color: #ffffff;
--jse-button-color-highlight: #ffffff;
--jse-button-border-radius: 0.375rem;
/* JSON Tree Mode */
--jse-key-color: var(--bs-info);
--jse-delimiter-color: #666;
--jse-string-color: var(--bs-primary);
--jse-number-color: var(--bs-warning);
--jse-boolean-color: var(--bs-danger);
--jse-null-color: #888;
--jse-invalid-color: #e0b4b4;
--jse-readonly-color: #888;
--jse-readonly-background-color: #f0f0f0;
/* Selectie */
--jse-selection-background-color: rgba(118, 89, 154, 0.2);
--jse-selection-background-inactive-color: rgba(118, 89, 154, 0.1);
/* Foutmeldingen */
--jse-error-color: var(--bs-danger);
--jse-error-background-color: rgba(156, 45, 102, 0.1);
/* Tooltips */
--jse-tooltip-background: var(--bs-primary);
--jse-tooltip-color: #ffffff;
--jse-tooltip-border-radius: 0.375rem;
--jse-tooltip-box-shadow: 0 4px 8px rgba(118, 89, 154, 0.2);
}
/* Extra stijlen voor de containers */
.jsoneditor-initialized {
border: 1px solid var(--bs-secondary);
border-radius: 0.375rem;
min-height: 300px;
box-shadow: 0 4px 8px rgba(118, 89, 154, 0.1);
}
.jsoneditor-readonly-mode {
background-color: var(--bs-light);
}
/* Stijlen voor de knoppen in de editor */
.jse-button {
border: none !important;
transition: background-color 0.3s ease;
}
/* Stijlen voor veldlabels in de boom */
.jse-tree .jse-key {
font-weight: 500;
}
/* Stijlen voor waarden in de boom */
.jse-tree .jse-value {
font-family: monospace;
}
/* Verbeter de leesbaarheid van de tekstmodus */
.jse-text-mode {
font-family: monospace;
line-height: 1.5;
}
/* Tabulator styling / ordered_list ------------------------------------------------------------ */
.ordered-list-editor {
margin-bottom: 1rem;
min-height: 200px; /* Minimum height, will expand as needed */
}
/* Make sure the Tabulator container has a proper height */
.ordered-list-editor .tabulator {
height: auto; /* Auto height to display all rows */
min-height: 200px; /* Minimum height */
width: 100%;
border: 1px solid var(--bs-primary); /* Primary color for border */
border-radius: 0.375rem; /* Match application's border-radius */
margin-bottom: 0.5rem;
box-shadow: 0 4px 8px rgba(118, 89, 154, 0.2); /* Match application's shadow style */
}
/* Ensure the table holder has a scrollbar */
.ordered-list-editor .tabulator-tableholder {
/* overflow-y: auto !important; - Removed to allow Tabulator to handle overflow */
/* max-height: calc(100% - 42px) !important; - Removed to allow Tabulator to handle height */
/* Consider using non-!important values if specific scrolling behavior is needed */
overflow-y: auto;
max-height: calc(100% - 42px);
}
/* Style for the table element */
.ordered-list-editor .tabulator-table {
display: table !important; /* Force display as table */
width: 100% !important;
table-layout: fixed !important; /* Use fixed table layout for consistent column widths */
}
/* Style for the handle column */
.ordered-list-editor .tabulator-row-handle {
cursor: move;
background-color: var(--bs-light, #f8f9fa);
border-right: 1px solid var(--bs-gray-300, #dee2e6);
transition: background-color 0.3s ease; /* Smooth transition for hover effect */
}
/* Hover effect for handle column */
.ordered-list-editor .tabulator-row:hover .tabulator-row-handle {
background-color: var(--bs-secondary); /* Secondary color on hover */
}
/* Style for the handle bars to make them more visible */
.ordered-list-editor .tabulator-row-handle-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
}
.ordered-list-editor .tabulator-row-handle-bar {
background: var(--bs-primary); /* Primary color for handle bars */
display: inline-block;
width: 10px;
height: 2px;
margin: 1px 0;
transition: background-color 0.3s ease; /* Smooth transition for hover effect */
}
/* Change handle bar color on hover */
.ordered-list-editor .tabulator-row:hover .tabulator-row-handle-bar {
background: #ffffff; /* White handle bars on hover */
}
/* Style for the delete button */
.ordered-list-editor .tabulator-cell button.btn-danger {
padding: 0.25rem 0.5rem;
font-size: 0.75rem;
}
/* Style for boolean columns */
.ordered-list-editor .tabulator-cell[data-type="boolean"] {
text-align: center;
}
/* Style for boolean cell icons */
.ordered-list-editor .tabulator-cell .material-icons {
font-size: 1.2rem;
vertical-align: middle;
}
/* Style for true/checked icons */
.ordered-list-editor .tabulator-cell[aria-checked="true"] .material-icons {
color: var(--bs-primary); /* Primary color for checked state */
}
/* Style for false/unchecked icons */
.ordered-list-editor .tabulator-cell[aria-checked="false"] .material-icons {
color: var(--bs-danger); /* Danger color for unchecked state */
}
/* Style for the table header */
.ordered-list-editor .tabulator-header {
background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%); /* Match JSE gradient */
border-bottom: 2px solid var(--bs-secondary); /* Secondary color for border */
color: #ffffff; /* White text for better contrast on gradient */
}
/* Style for the headers container */
.ordered-list-editor .tabulator-headers {
display: table-row !important; /* Force display as table row */
}
/* Style for the header cells */
.ordered-list-editor .tabulator-col {
background: transparent; /* Let the header gradient show through */
padding: 8px;
font-weight: bold;
text-align: center;
display: table-cell !important; /* Force display as table cell */
box-sizing: border-box !important; /* Include padding in width calculation */
position: relative !important; /* Ensure proper positioning */
color: #ffffff; /* White text for better contrast on gradient */
}
/* Override any inline styles that might hide column headers */
.ordered-list-editor .tabulator-col[style*="display: none"] {
display: table-cell !important; /* Force display as table cell */
}
/* Ensure header cells have the same width as their corresponding data cells */
.ordered-list-editor .tabulator-col,
.ordered-list-editor .tabulator-cell
{
}
/* Style for the header cell content */
.ordered-list-editor .tabulator-col-title {
white-space: normal; /* Allow header text to wrap */
word-break: break-word; /* Break words to prevent horizontal overflow */
font-weight: bold;
color: #ffffff; /* White text for better contrast on gradient */
}
/* Style for the table rows */
.ordered-list-editor .tabulator-row {
border-bottom: 1px solid var(--bs-gray-300, #dee2e6); /* Match application's row border color */
display: table-row !important; /* Force display as table row */
}
/* Hover effect for rows */
.ordered-list-editor .tabulator-row:hover {
background-color: var(--bs-secondary) !important; /* Secondary color on hover */
color: #ffffff !important; /* White text on hover */
}
/* Ensure all text in hovered rows changes to white */
.ordered-list-editor .tabulator-row:hover .tabulator-cell,
.ordered-list-editor .tabulator-row:hover .tabulator-cell * {
color: #ffffff !important; /* White text for all elements in hovered rows */
}
/* Style for even rows */
.ordered-list-editor .tabulator-row-even {
background-color: #f8f9fa; /* Light gray for even rows */
}
/* Style for odd rows */
.ordered-list-editor .tabulator-row-odd {
background-color: #ffffff; /* White for odd rows */
}
/* Style for selected rows */
.ordered-list-editor .tabulator-row.tabulator-selected {
background-color: var(--bs-primary) !important; /* Primary color for selected rows */
color: #ffffff !important; /* White text for contrast */
}
/* Style for row being moved */
.ordered-list-editor .tabulator-row.tabulator-moving {
background-color: var(--bs-primary) !important; /* Primary color for moving rows */
color: #ffffff !important; /* White text for contrast */
border: 2px dashed var(--bs-secondary) !important; /* Dashed border to indicate movement */
opacity: 0.9 !important; /* Slightly transparent to distinguish from other rows */
box-shadow: 0 0 10px rgba(118, 89, 154, 0.5) !important; /* Shadow for depth */
z-index: 100 !important; /* Ensure it appears above other rows */
pointer-events: none !important; /* Allow events to pass through to elements below */
transform: scale(1.02) !important; /* Slightly larger to stand out */
transition: transform 0.2s ease !important; /* Smooth transition */
}
/* Style for cells in the row being moved */
.ordered-list-editor .tabulator-row.tabulator-moving .tabulator-cell {
color: #ffffff !important; /* Ensure text is white for contrast */
background-color: transparent !important; /* Use the row's background color */
border-color: transparent !important; /* Hide cell borders */
display: table-cell !important; /* Ensure cells are visible */
overflow: visible !important; /* Show all content */
}
/* Style for the moving element (the ghost row that follows the cursor) */
.tabulator-moving-element {
background-color: var(--bs-primary) !important; /* Primary color for moving element */
color: #ffffff !important; /* White text for contrast */
border: 2px dashed var(--bs-secondary) !important; /* Dashed border to indicate movement */
opacity: 0.9 !important; /* Slightly transparent */
box-shadow: 0 0 15px rgba(118, 89, 154, 0.7) !important; /* Stronger shadow for better visibility */
border-radius: 0.375rem !important; /* Rounded corners */
overflow: visible !important; /* Show all content */
width: auto !important; /* Allow width to adjust to content */
max-width: none !important; /* Don't limit width */
pointer-events: none !important; /* Allow events to pass through */
display: table !important; /* Ensure it's displayed as a table */
table-layout: fixed !important; /* Fixed table layout for consistent cell widths */
}
/* Style for cells in the moving element */
.tabulator-moving-element .tabulator-cell,
.tabulator-moving-element .tabulator-row .tabulator-cell {
color: #ffffff !important; /* White text for contrast */
background-color: transparent !important; /* Use the row's background color */
border-color: transparent !important; /* Hide cell borders */
display: table-cell !important; /* Ensure cells are visible */
overflow: visible !important; /* Show all content */
padding: 8px !important; /* Consistent padding */
white-space: normal !important; /* Allow text to wrap */
word-break: break-word !important; /* Break words to prevent overflow */
font-size: 0.85rem !important; /* Consistent font size */
vertical-align: middle !important; /* Center content vertically */
}
/* Style for the active moving element */
.tabulator-moving-element-active {
opacity: 1 !important; /* Fully opaque when active */
transform: scale(1.05) !important; /* Slightly larger when active */
box-shadow: 0 0 20px rgba(118, 89, 154, 0.8) !important; /* Stronger shadow when active */
z-index: 1000 !important; /* Higher z-index to ensure it's on top */
}
/* Style for the table cells */
.ordered-list-editor .tabulator-cell {
padding: 8px;
white-space: normal; /* Allow text to wrap */
overflow: visible; /* Show overflowing content */
height: auto !important; /* Allow cell to grow as needed */
word-break: break-word; /* Break words to prevent horizontal overflow */
display: table-cell !important; /* Force display as table cell */
scroll-margin-top: 100px; /* Prevent unwanted scrolling when focusing */
scroll-behavior: auto; /* Disable smooth scrolling which might cause jumping */
font-size: 0.85rem; /* Smaller font size */
}
/* Style for truncated cells */
.ordered-list-editor .truncated-cell {
position: relative;
padding-right: 20px;
}
.ordered-list-editor .truncated-content {
white-space: normal;
word-break: break-word;
}
.ordered-list-editor .show-more {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
color: var(--bs-primary); /* Use primary color for the show more indicator */
cursor: pointer;
transition: color 0.3s ease; /* Smooth transition for hover effect */
}
.ordered-list-editor .show-more:hover {
color: var(--bs-secondary); /* Use secondary color on hover */
}
/* Style for the visible cells */
.ordered-list-editor .tabulator-cell-visible {
display: table-cell !important; /* Force display as table cell */
}
/* Override any inline styles that might hide cells */
.ordered-list-editor .tabulator-cell[style*="display: none"] {
display: table-cell !important; /* Force display as table cell */
}
/* Style for the textarea editor */
.ordered-list-editor .tabulator-cell textarea {
min-height: 60px;
resize: vertical;
width: 100%; /* Ensure textarea fills the cell */
border: 1px solid var(--bs-gray-300, #dee2e6); /* Match application's input border */
border-radius: 0.375rem; /* Match application's border-radius */
padding: 0.625rem 0.75rem; /* Match application's input padding */
transition: border-color 0.3s ease, box-shadow 0.3s ease; /* Smooth transition for focus effect */
}
/* Focus state for textarea */
.ordered-list-editor .tabulator-cell textarea:focus {
border-color: var(--bs-primary); /* Primary color for focus state */
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(118, 89, 154, 0.25); /* Subtle glow with primary color */
}
/* Style for the placeholder */
.ordered-list-editor .tabulator-placeholder {
padding: 20px;
text-align: center;
color: var(--bs-secondary); /* Secondary color for placeholder text */
font-style: italic;
background-color: var(--bs-light, #f8f9fa); /* Light background for placeholder */
border-radius: 0.375rem; /* Match application's border-radius */
margin: 10px;
border: 1px dashed var(--bs-gray-300, #dee2e6); /* Dashed border for empty state */
}
/* Style for the Add Row button */
.ordered-list-editor + .btn-primary {
margin-top: 0.5rem;
background-color: var(--bs-primary) !important;
border-color: var(--bs-primary) !important;
color: #ffffff !important;
transition: background-color 0.3s ease, border-color 0.3s ease;
}
/* Hover effect for primary button */
.ordered-list-editor + .btn-primary:hover {
background-color: var(--bs-secondary) !important;
border-color: var(--bs-secondary) !important;
}
/* Style for the Expand button */
.ordered-list-editor + .btn-primary + .btn-secondary {
margin-top: 0.5rem;
background-color: var(--bs-secondary) !important;
border-color: var(--bs-secondary) !important;
color: #ffffff !important;
transition: background-color 0.3s ease, border-color 0.3s ease;
}
/* Hover effect for secondary button */
.ordered-list-editor + .btn-primary + .btn-secondary:hover {
background-color: var(--bs-primary) !important;
border-color: var(--bs-primary) !important;
}
/* Fullscreen mode styles */
.ordered-list-editor.fullscreen-mode {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 9999;
background: var(--bs-light, #f8f9fa); /* Use light background color */
padding: 20px;
margin: 0;
overflow: auto;
box-sizing: border-box;
border: 2px solid var(--bs-primary); /* Primary color border */
box-shadow: 0 0 20px rgba(118, 89, 154, 0.3); /* Larger shadow for modal effect */
}
.ordered-list-editor.fullscreen-mode .tabulator {
height: calc(100vh - 100px) !important;
width: 100% !important;
border: 1px solid var(--bs-primary); /* Consistent border */
box-shadow: 0 4px 8px rgba(118, 89, 154, 0.2); /* Consistent shadow */
}
/* Tekst in invoervelden zwart maken voor betere leesbaarheid */
.ordered-list-editor .tabulator-row:hover .tabulator-cell input,
.ordered-list-editor .tabulator-row:hover .tabulator-cell select,
.ordered-list-editor .tabulator-row:hover .tabulator-cell textarea,
.ordered-list-editor .tabulator-row:hover .tabulator-cell .tabulator-editor,
.ordered-list-editor .tabulator-row.tabulator-selected .tabulator-cell input,
.ordered-list-editor .tabulator-row.tabulator-selected .tabulator-cell select,
.ordered-list-editor .tabulator-row.tabulator-selected .tabulator-cell textarea,
.ordered-list-editor .tabulator-row.tabulator-selected .tabulator-cell .tabulator-editor {
color: #000000 !important; /* Zwarte tekst op witte achtergrond */
background-color: #ffffff !important; /* Witte achtergrond verzekeren */
border: 1px solid var(--bs-primary) !important; /* Duidelijke rand toevoegen */
}
/* Select2 settings ---------------------------------------------------------------------------- */
.select2-container--default .select2-results > .select2-results__options {
max-height: 200px !important; /* Pas deze waarde aan naar wens */
overflow-y: auto !important;
}
/* Zorg voor een consistente breedte */
.select2-container {
width: 100% !important;
}
/* Voorkom dat de dropdown de pagina uitbreidt */
.select2-dropdown {
max-width: 100%;
}
.timezone-dropdown {
max-height: 300px;
overflow-y: auto !important;
}