You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Popover still clips — now at the window top: the leftward+flip-up fix (feat(studio): optimistic in-memory edits (near-instant canvas) + inspector round 4 #77) doesn't clamp fully. Fix: viewport-aware positioning as a pure, testable geometry function (anchor rect + popover size + viewport → position): prefer below/left, flip when clipping, then CLAMP both axes to the viewport with a margin; escape any scroll-container clipping.
No raw JSON objects in the config: stat.trend shows {"value":"+340%","direction":"up","color":null} as a textarea. Complex object fields with known schema properties must render as indented structured sub-rows using the same control factory (String→input, enum→select, color→picker), recursion depth-limited (nested complex → JsonArea fallback). Writes mutate the sub-key and write the whole typed object; null prunes. Number arrays (sparkline_data) get per-entry number rows with add/remove (NumberList, ColorRows pattern).
User iteration round 5 (screenshots):
stat.trendshows{"value":"+340%","direction":"up","color":null}as a textarea. Complex object fields with known schema properties must render as indented structured sub-rows using the same control factory (String→input, enum→select, color→picker), recursion depth-limited (nested complex → JsonArea fallback). Writes mutate the sub-key and write the whole typed object; null prunes. Number arrays (sparkline_data) get per-entry number rows with add/remove (NumberList, ColorRows pattern).