mirror of
https://github.com/actions/runner.git
synced 2026-01-22 20:44:30 +08:00
1024 lines
24 KiB
CSS
1024 lines
24 KiB
CSS
/**
|
|
* Content Script Styles
|
|
*
|
|
* Matches GitHub's Primer design system for seamless integration.
|
|
* Uses CSS custom properties for light/dark mode support.
|
|
*
|
|
* Supports two layout modes:
|
|
* - Bottom panel: Fixed at bottom of viewport (like browser DevTools)
|
|
* - Sidebar: Fixed on right side of viewport
|
|
*/
|
|
|
|
/* ==========================================================================
|
|
Base Debugger Pane Styles
|
|
========================================================================== */
|
|
|
|
.dap-debugger-pane {
|
|
background-color: var(--bgColor-default, #0d1117);
|
|
border-color: var(--borderColor-default, #30363d) !important;
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
|
|
font-size: 14px;
|
|
z-index: 999;
|
|
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Bottom Panel Layout
|
|
========================================================================== */
|
|
|
|
/* Add padding to body when bottom panel is open so all content is accessible */
|
|
body.dap-bottom-panel-active {
|
|
padding-bottom: 360px !important; /* Slightly more than panel height for breathing room */
|
|
}
|
|
|
|
.dap-debugger-bottom {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 350px;
|
|
border-top: 1px solid var(--borderColor-default, #30363d);
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dap-debugger-bottom .dap-header {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
flex-shrink: 0;
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.dap-debugger-bottom .dap-content {
|
|
flex: 1;
|
|
min-height: 0;
|
|
display: flex;
|
|
}
|
|
|
|
.dap-debugger-bottom .dap-scopes {
|
|
width: 33%;
|
|
min-width: 200px;
|
|
max-width: 400px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-right: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-debugger-bottom .dap-repl {
|
|
flex: 1;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dap-debugger-bottom .dap-controls {
|
|
gap: 4px;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Sidebar Layout
|
|
========================================================================== */
|
|
|
|
.dap-debugger-sidebar {
|
|
position: fixed;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
width: 350px;
|
|
border-left: 1px solid var(--borderColor-default, #30363d);
|
|
display: flex;
|
|
flex-direction: column;
|
|
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.dap-debugger-sidebar .dap-header {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
flex-shrink: 0;
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.dap-debugger-sidebar .dap-scopes {
|
|
flex: 0 0 auto;
|
|
max-height: 40%;
|
|
min-height: 150px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-bottom: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-debugger-sidebar .dap-repl {
|
|
flex: 1;
|
|
min-height: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dap-debugger-sidebar .dap-controls {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
flex-shrink: 0;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Header Styles
|
|
========================================================================== */
|
|
|
|
.dap-header {
|
|
display: flex;
|
|
align-items: center;
|
|
border-bottom: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-header .text-bold {
|
|
font-weight: 600;
|
|
color: var(--fgColor-default, #e6edf3);
|
|
}
|
|
|
|
.dap-header-right {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.dap-step-info {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
color: var(--fgColor-muted, #8b949e);
|
|
font-size: 12px;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Layout Toggle Buttons
|
|
========================================================================== */
|
|
|
|
.dap-layout-toggles {
|
|
display: flex;
|
|
gap: 2px;
|
|
background-color: var(--bgColor-inset, #010409);
|
|
border-radius: 6px;
|
|
padding: 2px;
|
|
}
|
|
|
|
.dap-layout-btn {
|
|
padding: 4px 6px !important;
|
|
background-color: transparent !important;
|
|
border: none !important;
|
|
color: var(--fgColor-muted, #8b949e) !important;
|
|
border-radius: 4px !important;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.dap-layout-btn:hover {
|
|
background-color: var(--bgColor-neutral-muted, #6e768166) !important;
|
|
color: var(--fgColor-default, #e6edf3) !important;
|
|
}
|
|
|
|
.dap-layout-btn.active {
|
|
background-color: var(--bgColor-accent-muted, #388bfd26) !important;
|
|
color: var(--fgColor-accent, #58a6ff) !important;
|
|
}
|
|
|
|
.dap-layout-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Close Button
|
|
========================================================================== */
|
|
|
|
.dap-close-btn {
|
|
padding: 4px 6px !important;
|
|
background-color: transparent !important;
|
|
border: none !important;
|
|
color: var(--fgColor-muted, #8b949e) !important;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.dap-close-btn:hover {
|
|
background-color: var(--bgColor-danger-muted, #da363326) !important;
|
|
color: var(--fgColor-danger, #f85149) !important;
|
|
}
|
|
|
|
.dap-close-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Control Buttons
|
|
========================================================================== */
|
|
|
|
.dap-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 8px;
|
|
}
|
|
|
|
.dap-control-btn {
|
|
width: 32px;
|
|
height: 32px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 0 !important;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.dap-control-btn:last-child {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.dap-control-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
display: block;
|
|
margin: auto !important;
|
|
}
|
|
|
|
.dap-control-btn:disabled {
|
|
opacity: 0.4;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.dap-control-btn:not(:disabled):hover {
|
|
background-color: var(--bgColor-accent-muted, #388bfd26);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Scopes Panel
|
|
========================================================================== */
|
|
|
|
.dap-scopes {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.dap-scope-header {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
flex-shrink: 0;
|
|
padding: 8px;
|
|
border-bottom: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-scope-tree {
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
padding: 8px;
|
|
overflow-y: auto;
|
|
flex: 1;
|
|
}
|
|
|
|
/* Tree Nodes */
|
|
.dap-tree-node {
|
|
padding: 1px 0;
|
|
}
|
|
|
|
.dap-tree-content {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
padding: 2px 4px;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.dap-tree-content:hover {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
}
|
|
|
|
.dap-tree-children {
|
|
margin-left: 16px;
|
|
border-left: 1px solid var(--borderColor-muted, #21262d);
|
|
padding-left: 8px;
|
|
}
|
|
|
|
.dap-expand-icon {
|
|
display: inline-block;
|
|
width: 16px;
|
|
text-align: center;
|
|
color: var(--fgColor-muted, #8b949e);
|
|
font-size: 10px;
|
|
flex-shrink: 0;
|
|
user-select: none;
|
|
}
|
|
|
|
.dap-tree-node .text-bold {
|
|
color: var(--fgColor-default, #e6edf3);
|
|
font-weight: 600;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.dap-tree-node .color-fg-muted {
|
|
color: var(--fgColor-muted, #8b949e);
|
|
word-break: break-word;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
REPL Console
|
|
========================================================================== */
|
|
|
|
.dap-repl {
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.dap-repl-header {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
flex-shrink: 0;
|
|
padding: 8px;
|
|
border-bottom: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-repl-output {
|
|
background-color: var(--bgColor-inset, #010409);
|
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
|
|
font-size: 12px;
|
|
line-height: 1.5;
|
|
padding: 8px;
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
min-height: 60px;
|
|
}
|
|
|
|
.dap-output-input {
|
|
color: var(--fgColor-muted, #8b949e);
|
|
}
|
|
|
|
.dap-output-result {
|
|
color: var(--fgColor-default, #e6edf3);
|
|
}
|
|
|
|
.dap-output-stdout {
|
|
color: var(--fgColor-default, #e6edf3);
|
|
}
|
|
|
|
.dap-output-error {
|
|
color: var(--fgColor-danger, #f85149);
|
|
}
|
|
|
|
/* REPL Input */
|
|
.dap-repl-input {
|
|
flex-shrink: 0;
|
|
padding: 8px;
|
|
border-top: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-repl-input input {
|
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
|
|
font-size: 12px;
|
|
background-color: var(--bgColor-inset, #010409) !important;
|
|
border-color: var(--borderColor-default, #30363d) !important;
|
|
color: var(--fgColor-default, #e6edf3) !important;
|
|
width: 100%;
|
|
padding: 6px 8px;
|
|
border-radius: 6px;
|
|
border: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-repl-input input:focus {
|
|
border-color: var(--focus-outlineColor, #1f6feb) !important;
|
|
outline: none;
|
|
box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.3);
|
|
}
|
|
|
|
.dap-repl-input input:disabled {
|
|
opacity: 0.5;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.dap-repl-input input::placeholder {
|
|
color: var(--fgColor-muted, #8b949e);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Breakpoint Indicator
|
|
========================================================================== */
|
|
|
|
/* Current step indicator - shown on the step where debugger is paused
|
|
Breakpoints are BEFORE steps, so we indicate the boundary above the step */
|
|
check-step.dap-current-step {
|
|
position: relative;
|
|
}
|
|
|
|
/* Highlight the step row with a subtle background and red accent line at TOP */
|
|
check-step.dap-current-step > details,
|
|
check-step.dap-current-step > div {
|
|
position: relative;
|
|
}
|
|
|
|
check-step.dap-current-step > details > summary,
|
|
check-step.dap-current-step > div:first-child {
|
|
background: linear-gradient(90deg, rgba(248, 81, 73, 0.08) 0%, rgba(248, 81, 73, 0.02) 100%) !important;
|
|
border-top: 2px solid #f85149 !important;
|
|
}
|
|
|
|
/* Red accent bar at top of step - horizontal line showing "breakpoint here" */
|
|
check-step.dap-current-step::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
top: 0;
|
|
height: 2px;
|
|
background: linear-gradient(90deg, #f85149 0%, #da3633 100%);
|
|
}
|
|
|
|
/* Triangle pointer at top of step - points to the boundary between steps */
|
|
check-step.dap-current-step::before {
|
|
content: '';
|
|
position: absolute;
|
|
right: -8px;
|
|
top: 0;
|
|
transform: translateY(-50%);
|
|
width: 0;
|
|
height: 0;
|
|
border-top: 8px solid transparent;
|
|
border-bottom: 8px solid transparent;
|
|
border-left: 10px solid #f85149;
|
|
z-index: 100;
|
|
filter: drop-shadow(2px 0 2px rgba(0, 0, 0, 0.2));
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Debug Button in Header
|
|
========================================================================== */
|
|
|
|
.dap-debug-btn-container {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-right: 8px;
|
|
}
|
|
|
|
.dap-debug-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
font-weight: 500;
|
|
padding: 5px 12px;
|
|
height: 32px;
|
|
}
|
|
|
|
.dap-debug-btn-text {
|
|
font-size: var(--text-body-size-medium, .875rem);
|
|
}
|
|
|
|
.dap-debug-btn .octicon {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.dap-debug-btn.selected {
|
|
background-color: var(--bgColor-accent-muted, #388bfd26);
|
|
border-color: var(--borderColor-accent-emphasis, #388bfd);
|
|
color: var(--fgColor-accent, #58a6ff);
|
|
}
|
|
|
|
.dap-debug-btn:hover:not(:disabled) {
|
|
background-color: var(--bgColor-neutral-muted, #6e768166);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Utility Classes
|
|
========================================================================== */
|
|
|
|
.d-flex { display: flex; }
|
|
.flex-column { flex-direction: column; }
|
|
.flex-items-center { align-items: center; }
|
|
.flex-auto { flex: 1 1 auto; }
|
|
.justify-content-center { justify-content: center; }
|
|
|
|
.p-2 { padding: 8px; }
|
|
.px-2 { padding-left: 8px; padding-right: 8px; }
|
|
.mx-2 { margin-left: 8px; margin-right: 8px; }
|
|
.mb-2 { margin-bottom: 8px; }
|
|
.ml-1 { margin-left: 4px; }
|
|
.ml-2 { margin-left: 8px; }
|
|
.ml-3 { margin-left: 16px; }
|
|
.mr-2 { margin-right: 8px; }
|
|
.mr-3 { margin-right: 16px; }
|
|
.ml-auto { margin-left: auto; }
|
|
|
|
.border { border: 1px solid var(--borderColor-default, #30363d); }
|
|
.border-bottom { border-bottom: 1px solid var(--borderColor-default, #30363d); }
|
|
.border-top { border-top: 1px solid var(--borderColor-default, #30363d); }
|
|
.border-right { border-right: 1px solid var(--borderColor-default, #30363d); }
|
|
.rounded-2 { border-radius: 6px; }
|
|
|
|
.overflow-auto { overflow: auto; }
|
|
.text-bold { font-weight: 600; }
|
|
.text-mono { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; }
|
|
.text-small { font-size: 12px; }
|
|
|
|
.color-fg-muted { color: var(--fgColor-muted, #8b949e); }
|
|
.color-fg-danger { color: var(--fgColor-danger, #f85149); }
|
|
.color-fg-default { color: var(--fgColor-default, #e6edf3); }
|
|
|
|
/* ==========================================================================
|
|
Light Mode Overrides
|
|
========================================================================== */
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
.dap-debugger-pane {
|
|
background-color: var(--bgColor-default, #ffffff);
|
|
border-color: var(--borderColor-default, #d0d7de) !important;
|
|
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.dap-debugger-sidebar {
|
|
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.dap-header,
|
|
.dap-scope-header,
|
|
.dap-repl-header,
|
|
.dap-controls {
|
|
background-color: var(--bgColor-muted, #f6f8fa);
|
|
}
|
|
|
|
.dap-repl-output,
|
|
.dap-repl-input input {
|
|
background-color: var(--bgColor-inset, #f6f8fa) !important;
|
|
}
|
|
|
|
.dap-tree-node .text-bold {
|
|
color: var(--fgColor-default, #1f2328);
|
|
}
|
|
|
|
.color-fg-muted {
|
|
color: var(--fgColor-muted, #656d76);
|
|
}
|
|
|
|
check-step.dap-current-step > details > summary,
|
|
check-step.dap-current-step > div:first-child {
|
|
background: linear-gradient(90deg, rgba(248, 81, 73, 0.1) 0%, rgba(248, 81, 73, 0.02) 100%) !important;
|
|
border-top: 2px solid #f85149 !important;
|
|
}
|
|
}
|
|
|
|
/* Respect GitHub's color mode data attribute */
|
|
[data-color-mode="light"] .dap-debugger-pane,
|
|
html[data-color-mode="light"] .dap-debugger-pane {
|
|
background-color: #ffffff;
|
|
border-color: #d0d7de !important;
|
|
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-debugger-sidebar,
|
|
html[data-color-mode="light"] .dap-debugger-sidebar {
|
|
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-header,
|
|
[data-color-mode="light"] .dap-scope-header,
|
|
[data-color-mode="light"] .dap-repl-header,
|
|
[data-color-mode="light"] .dap-controls,
|
|
html[data-color-mode="light"] .dap-header,
|
|
html[data-color-mode="light"] .dap-scope-header,
|
|
html[data-color-mode="light"] .dap-repl-header,
|
|
html[data-color-mode="light"] .dap-controls {
|
|
background-color: #f6f8fa;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-repl-output,
|
|
[data-color-mode="light"] .dap-repl-input input,
|
|
html[data-color-mode="light"] .dap-repl-output,
|
|
html[data-color-mode="light"] .dap-repl-input input {
|
|
background-color: #f6f8fa !important;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-layout-toggles,
|
|
html[data-color-mode="light"] .dap-layout-toggles {
|
|
background-color: #eaeef2;
|
|
}
|
|
|
|
[data-color-mode="light"] check-step.dap-current-step > details > summary,
|
|
[data-color-mode="light"] check-step.dap-current-step > div:first-child,
|
|
html[data-color-mode="light"] check-step.dap-current-step > details > summary,
|
|
html[data-color-mode="light"] check-step.dap-current-step > div:first-child {
|
|
background: linear-gradient(90deg, rgba(248, 81, 73, 0.1) 0%, rgba(248, 81, 73, 0.02) 100%) !important;
|
|
border-top: 2px solid #f85149 !important;
|
|
}
|
|
|
|
/* Light mode for debug button */
|
|
[data-color-mode="light"] .dap-debug-btn.selected,
|
|
html[data-color-mode="light"] .dap-debug-btn.selected {
|
|
background-color: #ddf4ff;
|
|
border-color: #54aeff;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Steps Panel
|
|
========================================================================== */
|
|
|
|
.dap-steps-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-right: 1px solid var(--borderColor-default, #30363d);
|
|
min-width: 200px;
|
|
max-width: 280px;
|
|
width: 25%;
|
|
}
|
|
|
|
.dap-debugger-sidebar .dap-steps-panel {
|
|
border-right: none;
|
|
border-bottom: 1px solid var(--borderColor-default, #30363d);
|
|
max-width: none;
|
|
width: auto;
|
|
max-height: 35%;
|
|
min-height: 120px;
|
|
}
|
|
|
|
.dap-steps-header {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.dap-steps-list {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
padding: 4px 0;
|
|
}
|
|
|
|
.dap-steps-empty {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.dap-steps-footer {
|
|
flex-shrink: 0;
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
}
|
|
|
|
.dap-add-step-btn,
|
|
.dap-export-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
|
|
.dap-add-step-btn svg,
|
|
.dap-export-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.dap-add-step-btn:disabled,
|
|
.dap-export-btn:disabled {
|
|
opacity: 0.5;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
/* Step Items */
|
|
.dap-step-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 4px 8px;
|
|
font-size: 12px;
|
|
cursor: default;
|
|
gap: 4px;
|
|
border-left: 3px solid transparent;
|
|
}
|
|
|
|
.dap-step-item:hover {
|
|
background-color: var(--bgColor-muted, #161b22);
|
|
}
|
|
|
|
.dap-step-item.completed {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.dap-step-item.current {
|
|
background-color: var(--bgColor-accent-muted, #388bfd26);
|
|
border-left-color: var(--fgColor-accent, #58a6ff);
|
|
}
|
|
|
|
.dap-step-item.pending[data-editable="true"] {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dap-step-status-icon {
|
|
flex-shrink: 0;
|
|
width: 16px;
|
|
height: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.dap-step-status-icon svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.dap-step-status-icon.completed {
|
|
color: var(--fgColor-success, #3fb950);
|
|
}
|
|
|
|
.dap-step-status-icon.current {
|
|
color: var(--fgColor-accent, #58a6ff);
|
|
}
|
|
|
|
.dap-step-status-icon.pending {
|
|
color: var(--fgColor-muted, #8b949e);
|
|
}
|
|
|
|
.dap-step-index {
|
|
color: var(--fgColor-muted, #8b949e);
|
|
font-size: 11px;
|
|
min-width: 20px;
|
|
}
|
|
|
|
.dap-step-name {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
color: var(--fgColor-default, #e6edf3);
|
|
}
|
|
|
|
.dap-step-badge {
|
|
font-size: 10px;
|
|
padding: 1px 4px;
|
|
border-radius: 3px;
|
|
font-weight: 500;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.dap-step-badge-added {
|
|
background-color: var(--bgColor-success-muted, #2ea04326);
|
|
color: var(--fgColor-success, #3fb950);
|
|
}
|
|
|
|
.dap-step-badge-modified {
|
|
background-color: var(--bgColor-attention-muted, #bb800926);
|
|
color: var(--fgColor-attention, #d29922);
|
|
}
|
|
|
|
.dap-step-type {
|
|
color: var(--fgColor-muted, #8b949e);
|
|
font-size: 10px;
|
|
flex-shrink: 0;
|
|
max-width: 80px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dap-step-menu-btn {
|
|
background: none;
|
|
border: none;
|
|
color: var(--fgColor-muted, #8b949e);
|
|
cursor: pointer;
|
|
padding: 2px 6px;
|
|
border-radius: 3px;
|
|
font-weight: bold;
|
|
letter-spacing: 1px;
|
|
opacity: 0;
|
|
transition: opacity 0.1s;
|
|
}
|
|
|
|
.dap-step-item:hover .dap-step-menu-btn {
|
|
opacity: 1;
|
|
}
|
|
|
|
.dap-step-menu-btn:hover {
|
|
background-color: var(--bgColor-neutral-muted, #6e768166);
|
|
color: var(--fgColor-default, #e6edf3);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Context Menu
|
|
========================================================================== */
|
|
|
|
.dap-context-menu {
|
|
background-color: var(--bgColor-default, #0d1117);
|
|
border: 1px solid var(--borderColor-default, #30363d);
|
|
border-radius: 6px;
|
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
|
|
z-index: 10000;
|
|
min-width: 140px;
|
|
padding: 4px 0;
|
|
}
|
|
|
|
.dap-context-menu-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 6px 12px;
|
|
font-size: 12px;
|
|
color: var(--fgColor-default, #e6edf3);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dap-context-menu-item:hover {
|
|
background-color: var(--bgColor-accent-muted, #388bfd26);
|
|
}
|
|
|
|
.dap-context-menu-item.danger {
|
|
color: var(--fgColor-danger, #f85149);
|
|
}
|
|
|
|
.dap-context-menu-item.danger:hover {
|
|
background-color: var(--bgColor-danger-muted, #da363326);
|
|
}
|
|
|
|
.dap-context-menu-item svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.dap-context-menu-divider {
|
|
height: 1px;
|
|
background-color: var(--borderColor-default, #30363d);
|
|
margin: 4px 0;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Modal
|
|
========================================================================== */
|
|
|
|
.dap-modal-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 10001;
|
|
}
|
|
|
|
.dap-modal {
|
|
background-color: var(--bgColor-default, #0d1117);
|
|
border: 1px solid var(--borderColor-default, #30363d);
|
|
border-radius: 8px;
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
|
|
width: 90%;
|
|
max-width: 500px;
|
|
max-height: 80vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dap-modal-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 12px 16px;
|
|
border-bottom: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
.dap-modal-header .text-bold {
|
|
font-size: 14px;
|
|
color: var(--fgColor-default, #e6edf3);
|
|
}
|
|
|
|
.dap-modal-close-btn {
|
|
background: none !important;
|
|
border: none !important;
|
|
color: var(--fgColor-muted, #8b949e) !important;
|
|
padding: 4px !important;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dap-modal-close-btn:hover {
|
|
color: var(--fgColor-default, #e6edf3) !important;
|
|
}
|
|
|
|
.dap-modal-close-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.dap-modal-content {
|
|
padding: 16px;
|
|
overflow-y: auto;
|
|
flex: 1;
|
|
}
|
|
|
|
.dap-modal-footer {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
padding: 12px 16px;
|
|
border-top: 1px solid var(--borderColor-default, #30363d);
|
|
}
|
|
|
|
/* Form elements */
|
|
.dap-form-group {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dap-form-group:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.dap-label {
|
|
display: block;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
color: var(--fgColor-default, #e6edf3);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.dap-modal .form-control {
|
|
width: 100%;
|
|
background-color: var(--bgColor-inset, #010409) !important;
|
|
border-color: var(--borderColor-default, #30363d) !important;
|
|
color: var(--fgColor-default, #e6edf3) !important;
|
|
font-size: 12px;
|
|
padding: 6px 8px;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.dap-modal .form-control:focus {
|
|
border-color: var(--focus-outlineColor, #1f6feb) !important;
|
|
outline: none;
|
|
box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.3);
|
|
}
|
|
|
|
.dap-modal select.form-control {
|
|
appearance: auto;
|
|
}
|
|
|
|
.dap-modal textarea.form-control {
|
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
resize: vertical;
|
|
}
|
|
|
|
/* Export Modal */
|
|
.dap-export-stats {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.dap-export-yaml {
|
|
background-color: var(--bgColor-inset, #010409);
|
|
border: 1px solid var(--borderColor-default, #30363d);
|
|
border-radius: 6px;
|
|
overflow: auto;
|
|
max-height: 300px;
|
|
}
|
|
|
|
.dap-yaml-content {
|
|
margin: 0;
|
|
padding: 12px;
|
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
font-size: 11px;
|
|
line-height: 1.5;
|
|
color: var(--fgColor-default, #e6edf3);
|
|
white-space: pre;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Light Mode Overrides for New Components
|
|
========================================================================== */
|
|
|
|
[data-color-mode="light"] .dap-context-menu,
|
|
html[data-color-mode="light"] .dap-context-menu {
|
|
background-color: #ffffff;
|
|
border-color: #d0d7de;
|
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-context-menu-item,
|
|
html[data-color-mode="light"] .dap-context-menu-item {
|
|
color: #1f2328;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-modal,
|
|
html[data-color-mode="light"] .dap-modal {
|
|
background-color: #ffffff;
|
|
border-color: #d0d7de;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-modal-header .text-bold,
|
|
html[data-color-mode="light"] .dap-modal-header .text-bold {
|
|
color: #1f2328;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-step-name,
|
|
html[data-color-mode="light"] .dap-step-name {
|
|
color: #1f2328;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-export-yaml,
|
|
html[data-color-mode="light"] .dap-export-yaml {
|
|
background-color: #f6f8fa;
|
|
}
|
|
|
|
[data-color-mode="light"] .dap-yaml-content,
|
|
html[data-color-mode="light"] .dap-yaml-content {
|
|
color: #1f2328;
|
|
}
|