Files
2025-04-06 12:54:48 -04:00

362 lines
10 KiB
CSS

/* styles/mappingComponent.css - EXACT from original JS */
/* Mapping List Container */
.mapping-list-container,
.controller-mapping-list {
font-family: var(--cf-brand-font); /* Use brand font */
color: var(--cf-text-primary);
max-width: 100%;
/* Add some default spacing */
/* margin-top: 10px; */
}
/* Style the list shown in the Mappings tab */
#mappings-panel .mapping-list {
/* Add some padding/margin if needed */
margin-top: 0; /* Remove top margin if header exists */
gap: 8px; /* Consistent gap from commands list */
padding-right: 0; /* Remove scroll padding if panel scrolls */
}
.mapping-list-header {
margin-bottom: 10px;
font-size: 14px;
}
/* Mapping List */
.mapping-list {
display: flex;
flex-direction: column;
gap: 8px;
max-height: 300px;
overflow-y: auto;
padding-right: 5px;
}
/* Inside dialog */
.controller-mapping-existing-content .mapping-list {
max-height: none;
}
/* Mapping Item - Original style */
.mapping-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 8px;
background-color: var(--cf-bg-secondary);
border-radius: 3px;
border: 1px solid var(--cf-border-color);
}
/* Mapping Component Style (main style used in panel) */
.controller-mapping-component {
display: flex;
align-items: center;
/* padding: 10px; */
padding: 10px 15px; /* Match command item padding */
/* margin: 5px 0; */
margin: 0; /* Remove margin, rely on parent gap */
/* background-color: var(--cf-bg-tertiary); */
background-color: var(--cf-bg-secondary); /* Match command item bg */
border-radius: 4px;
/* border: 1px solid var(--cf-border-color); */
border: 1px solid var(--cf-border-color); /* Match command item border */
position: relative;
gap: 10px;
transition: border-color 0.2s, background-color 0.2s; /* Add transition */
}
/* Add hover effect like command item */
.controller-mapping-component:hover {
border-color: var(--cf-brand-primary);
background-color: var(--cf-bg-tertiary);
}
.mapping-control-source {
flex: 1;
/* margin-right: 10px; */ /* Handled by parent gap */
display: flex;
align-items: center;
gap: 8px; /* Increase gap slightly */
overflow: hidden;
white-space: nowrap;
}
.mapping-target {
flex: 1;
display: flex;
align-items: center;
gap: 8px; /* Increase gap slightly */
overflow: hidden;
white-space: nowrap;
}
.mapping-icon {
/* margin-right: 5px; */ /* Handled by parent gap */
flex-shrink: 0;
font-size: 16px; /* Larger icon */
opacity: 0.9;
color: var(--cf-text-secondary); /* Muted icon color */
}
.mapping-name {
font-weight: 500; /* Match command label weight */
font-size: 14px; /* Match command label size */
color: var(--cf-text-primary); /* Ensure color */
text-overflow: ellipsis;
overflow: hidden;
}
.mapping-arrow {
margin: 0 10px;
font-size: 16px;
color: var(--cf-text-muted);
flex-shrink: 0;
}
.mapping-type-badge {
padding: 3px 7px; /* Slightly larger padding */
background-color: var(--cf-bg-tertiary); /* Slightly darker badge */
border: 1px solid var(--cf-border-light); /* Add border */
border-radius: 3px;
font-size: 11px; /* Keep small */
margin-left: 10px;
flex-shrink: 0;
color: var(--cf-text-secondary); /* Muted text */
font-weight: 500;
}
.mapping-actions {
display: flex;
margin-left: auto;
padding-left: 15px;
gap: 6px; /* Slightly more gap */
flex-shrink: 0;
}
/* Make buttons look like command map button */
.mapping-edit,
.mapping-delete {
/* Base style similar to .command-map-btn */
padding: 5px 10px;
background-color: var(--cf-bg-secondary);
border: 1px solid var(--cf-border-light);
color: var(--cf-text-secondary);
border-radius: 3px;
cursor: pointer;
font-size: 12px;
font-weight: 600;
transition: all 0.2s;
}
/* UPDATED HOVER: Match command map button hover */
.mapping-edit:hover,
.mapping-delete:hover {
background-color: var(--cf-brand-primary); /* Orange brand color */
border-color: var(--cf-brand-primary);
color: white;
}
.mapping-empty-message,
.no-mappings-message { /* Combined empty message styles */
color: var(--cf-text-muted);
font-style: italic;
text-align: center;
padding: 20px; /* Increased padding */
font-size: 14px;
background-color: var(--cf-bg-secondary); /* Added background */
border: 1px dashed var(--cf-border-color); /* Added border */
border-radius: 4px;
margin-top: 10px;
}
/* Inside dialog, make items more compact */
.controller-mapping-existing-content .mapping-item,
.controller-mapping-existing-content .controller-mapping-component {
padding: 5px;
font-size: 12px;
}
/* Mapping Info */
.mapping-info {
flex-grow: 1;
display: flex;
flex-direction: column;
gap: 4px;
}
/* Inside dialog, make info more compact */
.controller-mapping-existing-content .mapping-info {
gap: 2px;
}
/* Buttons */
.mapping-edit-btn,
.mapping-delete-btn {
padding: 4px 8px;
border: none;
border-radius: 3px;
cursor: pointer;
background-color: var(--cf-accent-blue-dark);
color: white;
}
/* Inside dialog, make buttons smaller */
.controller-mapping-existing-content .mapping-edit-btn,
.controller-mapping-existing-content .mapping-delete-btn,
.controller-mapping-existing-content .mapping-edit,
.controller-mapping-existing-content .mapping-delete {
padding: 2px 6px;
font-size: 11px;
}
.mapping-delete-btn {
background-color: var(--cf-accent-red-dark);
}
/* Error State */
.mapping-error {
color: var(--cf-status-error);
padding: 8px;
background-color: rgba(255, 107, 107, 0.1);
border-radius: 3px;
margin-bottom: 8px;
}
/* Mapping Editor Dialog */
.mapping-editor-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: var(--cf-bg-overlay); /* Ensure this is applied */
display: flex;
justify-content: center;
align-items: center;
z-index: 10001; /* Ensure above panel */
}
/* Apply base dialog styles AND editor specifics */
.mapping-editor.controller-dialog {
/* Base Dialog Properties (Copied/Verified from dialog.css) */
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 10001; /* Ensure above panel */
display: flex;
flex-direction: column;
background-color: var(--cf-bg-primary); /* Ensure solid background */
border: 1px solid var(--cf-border-color);
border-radius: 6px;
box-shadow: 0 4px 20px var(--cf-bg-overlay);
padding: 0; /* Padding is on inner elements */
min-width: 450px; /* Consistent min-width */
max-width: 600px; /* Specific max-width */
max-height: 90vh;
color: var(--cf-text-primary);
font-family: var(--cf-brand-font);
overflow: hidden; /* Prevent outer scroll */
}
/* Editor Header (Inherit/Match dialog header) */
.mapping-editor .controller-dialog-header {
/* Styles copied from dialog.css header */
display: flex;
justify-content: space-between;
align-items: center;
background: linear-gradient(90deg, var(--cf-bg-tertiary), var(--cf-brand-primary) 250%);
padding: 12px 20px;
border-bottom: 1px solid var(--cf-border-color);
border-radius: 6px 6px 0 0;
flex-shrink: 0;
}
.mapping-editor .controller-dialog-header h3 {
margin: 0;
font-family: var(--cf-brand-font);
font-weight: 600;
font-size: 18px; /* Editor title size */
color: var(--cf-text-primary);
}
/* Editor Close Button (Inherit/Match dialog close) */
.mapping-editor .controller-dialog-close {
/* Styles copied from dialog.css close */
background: none; border: none; font-size: 24px; cursor: pointer;
color: var(--cf-text-muted); width: 30px; height: 30px;
display: flex; align-items: center; justify-content: center;
transition: all 0.2s; border-radius: 4px;
}
.mapping-editor .controller-dialog-close:hover {
color: var(--cf-text-primary); background: rgba(255, 255, 255, 0.1);
}
/* Editor Content Area (Inherit/Match dialog content) */
.mapping-editor .controller-dialog-content {
padding: 20px;
overflow-y: auto; /* Allow content scroll */
flex-grow: 1;
}
/* Editor Footer/Actions (Inherit/Match dialog buttons container) */
.mapping-editor .controller-mapping-buttons {
/* Styles copied from dialog.css buttons container */
display: flex; justify-content: space-between; gap: 15px;
margin-top: 15px; /* Space above */
padding: 20px; /* Consistent padding */
border-top: 1px solid var(--cf-border-light);
flex-shrink: 0;
}
/* Ensure editor buttons inherit base styles */
.mapping-editor .controller-cancel-button,
.mapping-editor .controller-map-button {
/* Styles copied from dialog.css buttons */
flex: 1; padding: 12px; border: none; border-radius: 4px;
cursor: pointer; color: white; font-family: var(--cf-brand-font);
font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;
transition: all 0.2s; font-size: 14px;
}
.mapping-editor .controller-cancel-button {
background-color: var(--cf-bg-secondary); flex: 1;
border: 1px solid var(--cf-border-color); color: var(--cf-text-primary);
}
.mapping-editor .controller-cancel-button:hover {
background-color: var(--cf-bg-hover); border-color: var(--cf-text-secondary);
}
.mapping-editor .controller-map-button {
background-color: var(--cf-brand-primary); flex: 2;
}
.mapping-editor .controller-map-button:hover:not(:disabled) {
background-color: var(--cf-brand-primary-dark);
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
.mapping-editor .controller-map-button:disabled {
opacity: 0.5; cursor: not-allowed; background-color: var(--cf-brand-primary);
}
/* Scrollbars - Applying original styles */
.mapping-list::-webkit-scrollbar,
.mapping-editor::-webkit-scrollbar { /* Add scrollbar to editor */
width: 6px;
}
.mapping-list::-webkit-scrollbar-track,
.mapping-editor::-webkit-scrollbar-track {
background: var(--cf-bg-primary);
border-radius: 3px;
}
.mapping-list::-webkit-scrollbar-thumb,
.mapping-editor::-webkit-scrollbar-thumb {
background-color: var(--cf-border-color);
border-radius: 3px;
}
.mapping-list::-webkit-scrollbar-thumb:hover,
.mapping-editor::-webkit-scrollbar-thumb:hover {
background-color: var(--cf-text-muted);
}
.mapping-list,
.mapping-editor {
scrollbar-width: thin;
scrollbar-color: var(--cf-border-color) var(--cf-bg-primary);
}