Article export + Bootstrap toggle + export change log
- patchScore() now accepts articles[] and returns { text, log } instead
of a plain string. Dirty articles are re-serialized into the articles:
block (block style, replacing any existing flow-style entries). Clean
articles bypass the patcher entirely.
- article.isDirty is set on direct property edits so the exporter can
distinguish directly changed entities from propagated dirty state.
- patchScore() log collects { level:'changed', path } for each patched
article/instrument/bar, and a { level:'info', message } entry for the
count of bar documents passed through unchanged.
- CP pane shows the export log above the status poller after each export.
- Article scope toggle replaced with Bootstrap form-check form-switch;
hand-rolled .se-toggle CSS removed.
- Test suite updated for { text, log } return; 11 new assertions (188 total).
This commit is contained in:
@@ -356,47 +356,19 @@
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
/* Two-state toggle (scope: defaults / overwrites). The label preceding the
|
||||
switch tells the user what the two ends mean; the thumb position shows
|
||||
which is active. Click anywhere on the track to flip. */
|
||||
.se-toggle {
|
||||
position: relative;
|
||||
width: 2.2rem;
|
||||
height: 1.1rem;
|
||||
flex-shrink: 0;
|
||||
border: 1px solid #555;
|
||||
border-radius: 0.55rem;
|
||||
background: #2a2a2a;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
/* Export log (shown in CP pane after export) */
|
||||
.se-export-log {
|
||||
font-size: 0.75rem;
|
||||
font-family: monospace;
|
||||
border: 1px solid #333;
|
||||
padding: 0.3rem 0.4rem;
|
||||
margin: 0.4rem 0;
|
||||
}
|
||||
.se-toggle::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
left: 1px;
|
||||
width: 0.85rem;
|
||||
height: 0.85rem;
|
||||
border-radius: 50%;
|
||||
background: #999;
|
||||
transition: transform 0.12s ease, background 0.12s ease;
|
||||
.se-export-changed {
|
||||
color: #aad4aa;
|
||||
}
|
||||
.se-toggle[aria-checked="true"] {
|
||||
background: #2d4a2d;
|
||||
border-color: #4a7a4a;
|
||||
}
|
||||
.se-toggle[aria-checked="true"]::after {
|
||||
transform: translateX(1.1rem);
|
||||
background: #b0e0b0;
|
||||
}
|
||||
.se-toggle-label {
|
||||
font-size: 0.7rem;
|
||||
.se-export-info {
|
||||
color: #888;
|
||||
user-select: none;
|
||||
min-width: 4em;
|
||||
}
|
||||
.se-toggle-label.active {
|
||||
color: #d8d8d8;
|
||||
}
|
||||
|
||||
.se-prop-key, .se-prop-val {
|
||||
|
||||
Reference in New Issue
Block a user