Skip to content

feat(studio): structured object editors + robust popover viewport clamping #78

Description

@LeadcodeDev

User iteration round 5 (screenshots):

  1. 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.
  2. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions