069ea1235a4bbcd774d1fe433ee9ef69ed61136c
Real-world AI output frequently sends mismatched prop names (e.g. items vs features, cta object vs buttonText/Href). The toHtml functions of section/form/sections-folder components each defined a local esc = (s: string) => s.replace(...) that crashed when called with undefined, taking the auto-save export with it. Patched every local esc() to coerce non-strings: const esc = (s: any) => String(s ?? "").replace(...) 17 files touched; behavior unchanged for valid string inputs. Also adds a WorkingIndicator (Claude Code-style spinner + rotating phrase + elapsed seconds) shown in the modal footer while a generation is in flight, replacing the disabled "Thinking..." placeholder.
Description
Visual drag-and-drop website builder using GrapesJS
Languages
TypeScript
52%
HTML
21.7%
JavaScript
21.5%
CSS
3.4%
PHP
1%
Other
0.4%