diff --git a/internal/dashboard/proposals_templates.go b/internal/dashboard/proposals_templates.go index bb64175..2b335b8 100644 --- a/internal/dashboard/proposals_templates.go +++ b/internal/dashboard/proposals_templates.go @@ -279,6 +279,9 @@ const workspaceContentTmpl = `{{define "content"}}
The working draft is not available yet.
{{end}} +
@@ -287,14 +290,17 @@ const workspaceContentTmpl = `{{define "content"}}
-
+ @@ -368,8 +374,14 @@ const workspaceContentTmpl = `{{define "content"}} .ed-save-chip { font: 600 11px/1 var(--font-sans); color: var(--st-done); margin-left: 8px; text-transform: none; letter-spacing: 0; } .ed-save-chip.saving { color: var(--ink-3); } .r-actions form { margin: 0; } - .demo-toggle { display: inline-flex; align-items: center; gap: 6px; font: var(--t-small); color: var(--ink-3); cursor: pointer; user-select: none; margin-left: auto; } + .demo-toggle { display: inline-flex; align-items: center; gap: 6px; font: var(--t-small); color: var(--ink-3); cursor: pointer; user-select: none; margin: 16px 0 0; } .demo-toggle input { accent-color: var(--primary, #2563EB); width: 15px; height: 15px; } + .demo-submit { display: flex; align-items: center; gap: 16px; justify-content: space-between; flex-wrap: wrap; margin-top: 12px; padding: 16px 18px; border-radius: var(--r-md); border: 1px solid color-mix(in oklab, var(--st-done) 30%, transparent); background: linear-gradient(180deg, var(--st-done-bg), var(--surface) 70%); } + /* The [hidden] attribute must win over the display:flex above so the demo + toggle can actually hide the submit panel. */ + .demo-submit[hidden] { display: none; } + .demo-submit b { font: 650 14px/1.3 var(--font-sans); color: var(--ink); } + .demo-submit p { font-size: 13px; color: var(--ink-soft); margin: 4px 0 0; line-height: 1.5; max-width: 52ch; } .draft-body { white-space: pre-wrap; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 12px 14px; font: var(--t-body); color: var(--ink); } .draft-pending { border: 1px dashed var(--border); border-radius: var(--r-md); padding: 12px 14px; font: var(--t-small); color: var(--ink-3); font-style: italic; } @@ -403,16 +415,20 @@ const workspaceContentTmpl = `{{define "content"}} }); }); - // Demo mode: a persisted toggle that reveals the "Save to Google Drive" action - // at the gate, so a presenter can show the full lifecycle without waiting for - // Vera's final pass. Production submit (the ready state) is unaffected. + // Demo mode: shows the "Save to Google Drive" panel at the gate alongside the + // normal review actions, so a presenter (or a hackathon judge self-testing the + // deployed app) can save the package without waiting for Vera's final pass — + // bypassing any open [GAP] markers. ON BY DEFAULT so the path is discoverable + // without flipping a hidden switch; uncheck it for a strict review walkthrough. + // Production submit (the ready state) is unaffected. (function () { var KEY = "kaimi_demo_mode"; function apply(on) { document.querySelectorAll("[data-demo-only]").forEach(function (el) { el.hidden = !on; }); } var toggle = document.querySelector("[data-demo-toggle]"); - var on = localStorage.getItem(KEY) === "1"; + var saved = localStorage.getItem(KEY); + var on = saved === null ? true : saved === "1"; // default ON if (toggle) toggle.checked = on; apply(on); if (toggle) {