Commit Graph

7 Commits

Author SHA1 Message Date
c0dev0id
66c1f2c151 Add delete buttons and bar add/create to sub-objects pane 2026-06-30 13:18:29 +02:00
c0dev0id
89f46e7579 BA pane: group bars by P?L? key, render as inline chips
Bars in the BA sub-objects pane are now visually grouped by the
P\d+L\d+ fragment extracted from their opaque IDs (e.g. P1L1, P2L3).
Each group renders as a row of compact inline-block chips; groups are
separated by a line break. Fallback: if an ID contains no P?L?
pattern, trailing digits are stripped instead, yielding singleton rows.

The grouping is a display-only heuristic — no semantic meaning is
derived from the ID. Chips are clickable, highlight when focused.
2026-06-30 12:06:05 +02:00
c0dev0id
67c75781d8 Drop custom auth dialog; rely on browser Basic Auth handling
Remove ImportDialog and all manual credential management. The browser
handles 401 challenges natively for same-origin fetch requests — it
shows its own credential prompt, retries, and caches the result for
the session. No JS-level auth code is needed.

- api.js: remove authHeader() and all credentials parameters
- store.js: remove credentials field
- ImportDialog.js: deleted
- AppShell.js: remove showImport/openImport/onMounted dialog machinery;
  pass importOnLoad through to PaneCP
- PaneCP.js: inline doImport() (was in ImportDialog); auto-triggers on
  mount when importOnLoad is true; shows inline import error on failure
- StatusPoller.js: remove credentials arg from fetchStatus()
- style.css: remove .se-import-dialog and .se-overlay blocks
2026-06-30 09:32:44 +02:00
c0dev0id
86b14dfaa3 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).
2026-06-30 06:27:12 +02:00
c0dev0id
5bec1a1d1e PaneCP article label + PaneFO editable property rows
Article entries in the CP path list now show the article label
(letter/extension) instead of just "article", with a property count
in the meta column. In the FO pane, each property is rendered as an
editable row: key input, value input (coerced via ast-parser.coerce),
scope toggle, morphing default/overwrite label, and per-row remove
button. A "+ add property" button appends a blank defaults entry.
Every edit marks the score dirty.

`coerce` is now exported from ast-parser.js so the FO pane can apply
the same type-inference rules to user input as the parser does to
AST values.
2026-06-29 08:17:57 +02:00
c0dev0id
a91b5747a3 Article scope: render an actual sliding toggle, not an ASCII-labelled button
Previous commit took the user's (O-) / (-O) shorthand literally and put
those glyphs as the button label. They were describing the visual states
of a real toggle switch, not text to display.

Now: pill-shaped track with a sliding circular thumb, "default" and
"overwrite" labels flanking it (the active side brightens). The button
carries role="switch" + aria-checked for accessibility. Click anywhere
on the track to flip and mark the score dirty.
2026-06-28 20:37:53 +02:00
Florian "flowdy" Heß
822e2c9f42 Added files generated by Claude, prompted by sdk based on the md files 2026-06-21 19:23:54 +02:00