zeroclaw/web
Chris Hengge 0aefde95f2
fix(web/config): fill viewport and add TOML syntax highlighting (#4201)
Two issues with the config editor:

Layout: the page root had no height constraint and the textarea used
min-h-[500px] resize-y, causing independent scrollbars on both the
page and the editor. Fixed by adopting the Memory/Cron flex column
pattern so the editor fills the remaining viewport height with a single
scroll surface.

Highlighting: plain textarea with no visual structure for TOML.
Added a zero-dependency layered pre-overlay technique — no new npm
packages (per CLAUDE.md anti-pattern rules). A pre element sits
absolute behind a transparent textarea; highlightToml() produces HTML
colour-coding sections, keys, strings, booleans, numbers, datetimes,
and comments via per-line regex. onScroll syncs the overlay. Tab key
inserts two spaces instead of leaving focus.

dangerouslySetInnerHTML used on the pre — content is the user's own
local config, not from the network, risk equivalent to any local editor.

Risk: Low-Medium — no API or backend change. New rendering logic
in editor only.
Does not change: save/load API calls, validation, sensitive field
masking behaviour.
2026-03-21 22:11:18 -04:00
..
dist feat(channel): add interrupt_on_new_message support for Discord (#3918) 2026-03-19 19:33:37 -04:00
public fix(web): restore accidentally deleted logo file (#3988) 2026-03-19 14:21:15 -04:00
src fix(web/config): fill viewport and add TOML syntax highlighting (#4201) 2026-03-21 22:11:18 -04:00
.gitignore fix(web): ensure web/dist exists in fresh clones (#3114) 2026-03-16 18:37:14 -04:00
index.html fix(docs): use absolute URLs for banner in all READMEs + update web dashboard logo 2026-03-19 16:31:21 -04:00
package-lock.json fix(web): update rollup to patch path traversal vulnerability (#3258) 2026-03-11 23:24:04 -04:00
package.json feat(web): electric blue dashboard restyle with animations and logo (#3445) 2026-03-13 17:27:41 -04:00
tsconfig.app.json feat(gateway): add embedded web dashboard with React frontend 2026-02-21 16:14:01 +08:00
tsconfig.json feat(gateway): add embedded web dashboard with React frontend 2026-02-21 16:14:01 +08:00
tsconfig.node.json feat(gateway): add embedded web dashboard with React frontend 2026-02-21 16:14:01 +08:00
vite.config.ts feat(web): electric blue dashboard restyle with animations and logo (#3445) 2026-03-13 17:27:41 -04:00