From eb1f7427c4644072f66c930bf2b0da1fb62f335d Mon Sep 17 00:00:00 2001 From: Justin Visser Date: Wed, 10 Jun 2026 17:51:21 +0200 Subject: [PATCH] web: panel management, slice 7 of M3 The kebab menu goes live: Edit and Rename open the PanelEditorPopover (rename focuses the label in its header), Duplicate copies with a ' copy' suffix and the next accent, Remove deletes immediately and is disabled on the last panel. Add scenario opens the new panel's editor right away, still capped at six. The editor offers the strategy select plus every Config field as a row against the base value: a differing value becomes an override (highlighted row, per-field reset, chips on the card), typing the base value back clears it, and runs touch only that panel through the debounce. Engine 400s appear inline in the popover with the offending field marked. Per-panel failures now leave a rose dot on the kebab while the panel keeps its last good result; the store tracks failed panel ids and clears them on the next successful run. Field and strategy labels moved to lib/fieldLabels so controls, editor, and table share one vocabulary. --- web/src/components/AdvancedFields.vue | 15 +- web/src/components/PanelEditorPopover.vue | 297 ++++++++++++++++++ web/src/components/PanelMenu.vue | 107 +++++++ web/src/components/ResultsTable.vue | 9 +- web/src/components/ScenarioPanel.vue | 94 +++++- web/src/components/ScenarioToolbar.vue | 8 +- .../composables/__tests__/useSimStore.spec.ts | 3 + web/src/composables/useSimStore.ts | 11 + web/src/lib/fieldLabels.ts | 21 ++ 9 files changed, 545 insertions(+), 20 deletions(-) create mode 100644 web/src/components/PanelEditorPopover.vue create mode 100644 web/src/components/PanelMenu.vue create mode 100644 web/src/lib/fieldLabels.ts diff --git a/web/src/components/AdvancedFields.vue b/web/src/components/AdvancedFields.vue index 9591f3b..4811496 100644 --- a/web/src/components/AdvancedFields.vue +++ b/web/src/components/AdvancedFields.vue @@ -1,6 +1,7 @@ + + + + diff --git a/web/src/components/PanelMenu.vue b/web/src/components/PanelMenu.vue new file mode 100644 index 0000000..fc72e10 --- /dev/null +++ b/web/src/components/PanelMenu.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/web/src/components/ResultsTable.vue b/web/src/components/ResultsTable.vue index 19bc416..5f7e08b 100644 --- a/web/src/components/ResultsTable.vue +++ b/web/src/components/ResultsTable.vue @@ -1,4 +1,5 @@