feat(studio): flat inspector — Style group#2121
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
miga-heygen
left a comment
There was a problem hiding this comment.
Reviewed as part of the 15-PR edit-panel redesign stack. Full stack review posted on #2120. No blockers on this PR. — Miga
miguel-heygen
left a comment
There was a problem hiding this comment.
Final current-head pass: ec3ad42. Reviewed the stack boundaries and current diff against the flat-inspector contracts; required checks have no failures/pending checks and no unresolved review threads remain. No new drift found; residual notes are non-blocking.
ec3ad42 to
e02e0f5
Compare
444639d to
6e9d99e
Compare
miguel-heygen
left a comment
There was a problem hiding this comment.
Superseding earlier approval: the latest max-review pass found confirmed correctness issues in this flat-inspector stack (identity/selector-index state, hide-all write races, timing inference, slider pointer/keyboard/reset semantics, and duplicate React keys). Hold merge and require fixes plus re-review on the current stack head.

What
Second PR in a 6-PR stack for the flat inspector redesign (see #2120 for the foundation and full stack list). Adds the
FlatSlider/FlatSelectRowprimitives and the flat Style group (Fill, Stroke, Radius, Shadow, Blend, Layer blur, Backdrop, Overflow, Mask, Opacity), wired into the one-open accordion introduced in #2120.Stack: #2120 (Foundation+Text) → #2121 (this) → #2122 (Layout+Motion) → #2123 (Media) → #2124 (Grade) → #2125 (Pinning + multi-field Text).
Why
Style is the second-largest legacy section after Text and establishes the accordion's generalization from one group (Text) to N groups — every later group in this stack reuses the
openGroupId/pinnedGroupIdspattern this PR generalizes.How
FlatSliderandFlatSelectRoware new shared primitives (drag-to-scrub numeric input, dropdown with tier-aware value coloring) used by every group in the rest of this stack.FlatStyleSectioncomposes ten rows across Fill/Stroke/Radius/Shadow/Blend/Layer-blur/Backdrop/Overflow/Mask/Opacity, each built and reviewed as its own task.PropertyPanelFlat.tsx's accordion state generalized from a single hardcoded Text group to a repeatable per-group pattern (openGroupId === id || pinnedGroupIds.includes(id)).STUDIO_FLAT_INSPECTOR_ENABLED(default off).Test plan
oxlint/oxfmt/fallowclean.