Skip to content

feat(studio): flat inspector — Style group#2121

Open
vanceingalls wants to merge 10 commits into
studio-flat-01-foundation-textfrom
studio-flat-02-style
Open

feat(studio): flat inspector — Style group#2121
vanceingalls wants to merge 10 commits into
studio-flat-01-foundation-textfrom
studio-flat-02-style

Conversation

@vanceingalls

@vanceingalls vanceingalls commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

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/FlatSelectRow primitives 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/pinnedGroupIds pattern this PR generalizes.

How

  • FlatSlider and FlatSelectRow are new shared primitives (drag-to-scrub numeric input, dropdown with tier-aware value coloring) used by every group in the rest of this stack.
  • FlatStyleSection composes 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)).
  • Still behind STUDIO_FLAT_INSPECTOR_ENABLED (default off).

Test plan

  • Every new row/primitive has a real DOM-event test (click/pointerdown with exact assertions) — this convention, established here, was enforced task-by-task for the rest of the stack.
  • Full monorepo suite green; oxlint/oxfmt/fallow clean.
  • Unit tests added/updated
  • Manual testing performed
  • Documentation updated (not applicable — internal Studio UI behind an off-by-default flag)

vanceingalls commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

@miga-heygen miga-heygen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@vanceingalls vanceingalls force-pushed the studio-flat-02-style branch from ec3ad42 to e02e0f5 Compare July 11, 2026 01:34
@vanceingalls vanceingalls force-pushed the studio-flat-01-foundation-text branch from 444639d to 6e9d99e Compare July 11, 2026 01:34

@miguel-heygen miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants