Skip to content

docs: add component anatomy explorer for all compound components#472

Open
MaxLee-dev wants to merge 1 commit intodocs-component-analyzerfrom
add-component-anatomy
Open

docs: add component anatomy explorer for all compound components#472
MaxLee-dev wants to merge 1 commit intodocs-component-analyzerfrom
add-component-anatomy

Conversation

@MaxLee-dev
Copy link
Contributor

@MaxLee-dev MaxLee-dev commented Feb 6, 2026

Related Issues

Description of Changes

An interactive Anatomy Explorer has been implemented for all compound pattern components, and an Anatomy section has been added to each component's documentation.

1. Component Explorer System Implementation

  • ComponentExplorer: Interactive exploration UI combining iframe-based component previews with a left-hand part list
  • AnatomyPanel: Side panel displaying the component's structural parts
  • HighlightOverlay: Overlay highlighting elements within the iframe on hover (clsx styling, Vapor UI design tokens applied)
  • PartButton: Interactive buttons representing individual parts
  • PostMessage-based communication between iframe and parent
  • Fetch error handling and retry functionality

2. Automated Anatomy Data Generation

  • generate:anatomy script automatically generates anatomy JSON from index.parts.ts
  • Anatomy JSON data generation completed for 25 compound components

3. Add Anatomy Examples for 25 Components

Group Component
Simple Display Grid, Avatar
Content Containers Card, Callout, Collapsible, Breadcrumb
Form Controls Switch, Checkbox, Radio, RadioGroup, InputGroup, Field
Tabs/Table Pagination, Tabs, Table
Popup (Basic) Tooltip, FloatingBar, Popover, Sheet, NavigationMenu
Popup (Complex) Select, MultiSelect, Toast, Menu, Dialog

4. MDX Documentation Updates

  • Added Anatomy section to 24 component MDX files + 1 layout MDX (Grid)
  • Placed <componentexplorer> before the Props Table section

Checklist

  • The PR title follows the Conventional Commits convention.
  • I have added tests for my changes.
  • I have updated the Storybook or relevant documentation.
  • I have added a changeset for this change.
  • I have performed a self-code review.
  • I have followed the project's coding conventions and component patterns.

Add interactive anatomy examples with ComponentExplorer for 24 compound
pattern components. Each example marks all component parts with data-part
attributes for hover-based highlighting in the documentation site.

Components added:
- Simple: Grid, Avatar
- Containers: Card, Callout, Collapsible, Breadcrumb
- Form Controls: Switch, Checkbox, Radio, RadioGroup, InputGroup, Field
- Tabs/Table: Pagination, Tabs, Table
- Popup: Tooltip, FloatingBar, Popover, Sheet, NavigationMenu
- Complex: Select, MultiSelect, Toast, Menu

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@vercel
Copy link
Contributor

vercel bot commented Feb 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vapor-ui Ready Ready Preview, Comment Feb 6, 2026 5:53am

Request Review

@changeset-bot
Copy link

changeset-bot bot commented Feb 6, 2026

⚠️ No Changeset found

Latest commit: b2516e0

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@MaxLee-dev MaxLee-dev changed the base branch from main to docs-component-analyzer February 6, 2026 05:52
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @MaxLee-dev, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 컴포넌트 문서의 사용자 경험을 혁신적으로 개선하기 위해 인터랙티브 Anatomy Explorer를 도입합니다. 개발자와 디자이너는 이제 각 컴포넌트의 내부 구조와 파트를 시각적으로 탐색하고 이해할 수 있어, 컴포넌트 사용 및 커스터마이징이 훨씬 용이해질 것입니다. 이는 문서의 가독성과 유용성을 크게 향상시키는 중요한 기능 추가입니다.

Highlights

  • 인터랙티브 컴포넌트 Anatomy Explorer 시스템 구현: 컴포넌트의 구조를 시각적으로 탐색할 수 있는 ComponentExplorer 시스템이 추가되었습니다. 이는 iframe 기반 미리보기, 컴포넌트 파트 목록, 호버 시 하이라이트 오버레이(HighlightOverlay), 그리고 iframe과 부모 간의 PostMessage 통신을 포함합니다. 또한, 데이터 로딩을 위한 fetch 에러 핸들링 및 재시도 기능도 구현되었습니다.
  • Anatomy 데이터 자동 생성 및 통합: generate:anatomy 스크립트를 통해 25개 compound 컴포넌트의 index.parts.ts 파일에서 anatomy JSON 데이터가 자동으로 생성됩니다. 이 데이터는 각 컴포넌트의 구조적 파트 정보를 담고 있으며, Explorer에서 활용됩니다.
  • 25개 컴포넌트 문서에 Anatomy 섹션 추가: Avatar, Breadcrumb, Card, Callout, Checkbox, Collapsible, Dialog, Field, FloatingBar, InputGroup, Menu, MultiSelect, NavigationMenu, Pagination, Popover, Radio, Select, Sheet, Switch, Table, Tabs, Toast, Tooltip, Grid 컴포넌트의 MDX 문서에 새로운 'Anatomy' 섹션이 추가되었으며, 여기에 <ComponentExplorer> 컴포넌트가 배치되어 인터랙티브 탐색 기능을 제공합니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • apps/website/content/docs/components/*.mdx
    • 각 컴포넌트 문서에 'Anatomy' 섹션과 <ComponentExplorer> 컴포넌트 추가
  • apps/website/content/docs/layout/grid.mdx
    • Grid 컴포넌트 문서에 'Anatomy' 섹션과 <ComponentExplorer> 컴포넌트 추가
  • apps/website/package.json
    • generate:anatomy 스크립트 추가
  • apps/website/public/components/anatomy/*.json
    • 각 컴포넌트의 Anatomy 데이터를 담은 JSON 파일 25개 신규 추가
  • apps/website/scripts/generate-anatomy.mjs
    • 컴포넌트 Anatomy JSON 데이터를 자동으로 생성하는 스크립트 신규 추가
  • apps/website/src/app/preview/[component]/page.tsx
    • 미리보기 페이지에서 explorer 검색 파라미터를 받아 PreviewWrapper에 전달하도록 수정
  • apps/website/src/app/preview/[component]/preview-wrapper.tsx
    • HighlightOverlay 컴포넌트 임포트 및 explorer prop에 따라 조건부 렌더링 로직 추가
    • 미리보기 컨테이너에 fixed inset-0 flex items-center justify-center p-4 스타일 추가
  • apps/website/src/app/preview/layout.tsx
    • HTML 및 Body 태그에 h-full 클래스 추가 및 Body에 미리보기 중앙 정렬을 위한 스타일 추가
  • apps/website/src/components/component-explorer/anatomy-panel.tsx
    • 컴포넌트 파트 목록을 표시하고 호버 이벤트를 처리하는 AnatomyPanel 컴포넌트 신규 추가
  • apps/website/src/components/component-explorer/component-explorer.tsx
    • 인터랙티브 컴포넌트 탐색기 UI를 구현하는 ComponentExplorer 컴포넌트 신규 추가
    • Anatomy 데이터 로딩, iframe 통신, 에러 처리 및 재시도 로직 포함
  • apps/website/src/components/component-explorer/iframe/highlight-overlay.tsx
    • iframe 내에서 컴포넌트 파트를 시각적으로 하이라이트하는 HighlightOverlay 컴포넌트 신규 추가
  • apps/website/src/components/component-explorer/iframe/use-highlight-receiver.ts
    • iframe 내에서 부모로부터 하이라이트 메시지를 수신하는 훅 신규 추가
  • apps/website/src/components/component-explorer/index.ts
    • ComponentExplorer 및 관련 타입 내보내기 추가
  • apps/website/src/components/component-explorer/part-button.tsx
    • 개별 컴포넌트 파트를 나타내는 PartButton 컴포넌트 신규 추가
  • apps/website/src/components/component-explorer/types.ts
    • Explorer 메시지 타입 및 Anatomy 데이터 구조 정의 신규 추가
  • apps/website/src/components/component-explorer/use-explorer-communication.ts
    • 부모 컴포넌트에서 iframe으로 하이라이트 메시지를 전송하는 훅 신규 추가
  • apps/website/src/components/demo/examples//anatomy-.tsx
    • 각 컴포넌트의 Anatomy Explorer를 위한 데모 예제 파일 신규 추가
  • apps/website/src/mdx-components.tsx
    • ComponentExplorer 컴포넌트를 MDX에서 사용할 수 있도록 임포트 및 노출
Activity
  • MaxLee-dev 님이 모든 compound pattern 컴포넌트에 대한 인터랙티브 Anatomy Explorer를 구현하고 각 컴포넌트 문서에 Anatomy 섹션을 추가했습니다.
  • MaxLee-dev 님이 Component Explorer 시스템 (iframe 기반 미리보기, 파트 목록, 하이라이트 오버레이, PostMessage 통신, fetch 에러 핸들링)을 구현했습니다.
  • MaxLee-dev 님이 generate:anatomy 스크립트를 개발하여 25개 compound 컴포넌트의 anatomy JSON 데이터를 자동 생성했습니다.
  • MaxLee-dev 님이 25개 컴포넌트의 MDX 문서에 Anatomy 예제를 추가하고 <ComponentExplorer>를 배치했습니다.
  • MaxLee-dev 님이 Conventional Commits 컨벤션을 따르는 PR 제목을 작성했습니다.
  • MaxLee-dev 님이 자체 코드 리뷰를 수행했습니다.
  • MaxLee-dev 님이 프로젝트의 코딩 컨벤션 및 컴포넌트 패턴을 준수했습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이 PR은 복합 컴포넌트(compound components)를 위한 대화형 Anatomy Explorer를 도입하여 문서의 완성도를 크게 높였습니다. 전반적인 구현은 훌륭하며, 자동화된 데이터 생성 스크립트와 다수의 컴포넌트에 대한 문서 업데이트가 인상적입니다. 다만, 일부 새로운 anatomy 예제 파일에서 data-part 속성이 누락되어 Explorer가 특정 파트를 하이라이트하지 못하는 문제가 발견되었습니다. 각 파일에 구체적인 수정 제안을 포함한 리뷰 코멘트를 남겼으니 확인 부탁드립니다. 이 리뷰는 저장소 스타일 가이드에 따라 작성되었습니다.

Comment on lines +5 to +25
<Breadcrumb.RootPrimitive data-part="RootPrimitive">
<Breadcrumb.ListPrimitive data-part="ListPrimitive">
<Breadcrumb.ItemPrimitive data-part="ItemPrimitive">
<Breadcrumb.LinkPrimitive data-part="LinkPrimitive" href="#">
Home
</Breadcrumb.LinkPrimitive>
</Breadcrumb.ItemPrimitive>
<Breadcrumb.Separator data-part="Separator" />
<Breadcrumb.ItemPrimitive>
<Breadcrumb.LinkPrimitive href="#">Products</Breadcrumb.LinkPrimitive>
</Breadcrumb.ItemPrimitive>
<Breadcrumb.Separator />
<Breadcrumb.Ellipsis data-part="Ellipsis" />
<Breadcrumb.Separator />
<Breadcrumb.ItemPrimitive>
<Breadcrumb.LinkPrimitive href="#" current>
Details
</Breadcrumb.LinkPrimitive>
</Breadcrumb.ItemPrimitive>
</Breadcrumb.ListPrimitive>
</Breadcrumb.RootPrimitive>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Anatomy Explorer가 모든 파트를 하이라이트할 수 있도록 data-part 속성이 누락된 컴포넌트들에 추가하는 것이 좋습니다. breadcrumb.json에 정의된 모든 파트가 예제 코드에 포함되어야 합니다. 예를 들어, 일부 ItemPrimitive, LinkPrimitiveSeparatordata-part 속성이 누락되었습니다.

        <Breadcrumb.RootPrimitive data-part="RootPrimitive">
            <Breadcrumb.ListPrimitive data-part="ListPrimitive">
                <Breadcrumb.ItemPrimitive data-part="ItemPrimitive">
                    <Breadcrumb.LinkPrimitive data-part="LinkPrimitive" href="#">
                        Home
                    </Breadcrumb.LinkPrimitive>
                </Breadcrumb.ItemPrimitive>
                <Breadcrumb.Separator data-part="Separator" />
                <Breadcrumb.ItemPrimitive data-part="ItemPrimitive">
                    <Breadcrumb.LinkPrimitive data-part="LinkPrimitive" href="#">Products</Breadcrumb.LinkPrimitive>
                </Breadcrumb.ItemPrimitive>
                <Breadcrumb.Separator data-part="Separator" />
                <Breadcrumb.Ellipsis data-part="Ellipsis" />
                <Breadcrumb.Separator data-part="Separator" />
                <Breadcrumb.ItemPrimitive data-part="ItemPrimitive">
                    <Breadcrumb.LinkPrimitive data-part="LinkPrimitive" href="#" current>
                        Details
                    </Breadcrumb.LinkPrimitive>
                </Breadcrumb.ItemPrimitive>
            </Breadcrumb.ListPrimitive>
        </Breadcrumb.RootPrimitive>

Comment on lines +11 to +14
<FloatingBar.PopupPrimitive data-part="PopupPrimitive">
This is the floating bar content.
<FloatingBar.Close data-part="Close">Close</FloatingBar.Close>
</FloatingBar.PopupPrimitive>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

floating-bar.json에 정의된 Popup 파트가 예제에 누락되었습니다. Anatomy Explorer에서 해당 파트를 식별하고 하이라이트할 수 있도록 FloatingBar.Popup 컴포넌트와 data-part="Popup" 속성을 추가해야 합니다. 다른 컴포넌트(예: Popover)의 anatomy 예제를 참고하시면 좋습니다.

                    <FloatingBar.PopupPrimitive data-part="PopupPrimitive">
                        <FloatingBar.Popup data-part="Popup">
                            This is the floating bar content.
                            <FloatingBar.Close data-part="Close">Close</FloatingBar.Close>
                        </FloatingBar.Popup>
                    </FloatingBar.PopupPrimitive>

Comment on lines +15 to +50
<Menu.PopupPrimitive data-part="PopupPrimitive">
<Menu.Group data-part="Group">
<Menu.GroupLabel data-part="GroupLabel">File</Menu.GroupLabel>
<Menu.Item data-part="Item">New File</Menu.Item>
<Menu.Item>Open File</Menu.Item>
</Menu.Group>
<Menu.Separator data-part="Separator" />
<Menu.CheckboxItemPrimitive data-part="CheckboxItemPrimitive">
<Menu.CheckboxItem data-part="CheckboxItem">
<Menu.CheckboxItemIndicatorPrimitive data-part="CheckboxItemIndicatorPrimitive" />
Auto Save
</Menu.CheckboxItem>
</Menu.CheckboxItemPrimitive>
<Menu.Separator />
<Menu.RadioGroup data-part="RadioGroup" defaultValue="light">
<Menu.RadioItemPrimitive data-part="RadioItemPrimitive" value="light">
<Menu.RadioItem data-part="RadioItem" value="light">
<Menu.RadioItemIndicatorPrimitive data-part="RadioItemIndicatorPrimitive" />
Light
</Menu.RadioItem>
</Menu.RadioItemPrimitive>
<Menu.RadioItemPrimitive value="dark">
<Menu.RadioItem value="dark">Dark</Menu.RadioItem>
</Menu.RadioItemPrimitive>
</Menu.RadioGroup>
<Menu.Separator />
<Menu.SubmenuRoot data-part="SubmenuRoot">
<Menu.SubmenuTriggerItem data-part="SubmenuTriggerItem">
Export
</Menu.SubmenuTriggerItem>
<Menu.SubmenuPopup data-part="SubmenuPopup">
<Menu.Item>PDF</Menu.Item>
<Menu.Item>CSV</Menu.Item>
</Menu.SubmenuPopup>
</Menu.SubmenuRoot>
</Menu.PopupPrimitive>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Anatomy Explorer가 모든 파트를 올바르게 하이라이트할 수 있도록 일부 컴포넌트에 data-part 속성을 추가하고, 누락된 Menu.Popup 컴포넌트를 추가해야 합니다.

  • 여러 Menu.Item, Menu.Separator, Menu.RadioItemPrimitive, Menu.RadioItemdata-part 속성이 누락되었습니다.
  • menu.json에 정의된 Popup 파트가 예제에 없습니다. Menu.PopupPrimitive 내부에 Menu.Popup 컴포넌트를 추가하고 data-part="Popup" 속성을 지정해야 합니다.
                    <Menu.PopupPrimitive data-part="PopupPrimitive">
                        <Menu.Popup data-part="Popup">
                            <Menu.Group data-part="Group">
                                <Menu.GroupLabel data-part="GroupLabel">File</Menu.GroupLabel>
                                <Menu.Item data-part="Item">New File</Menu.Item>
                                <Menu.Item data-part="Item">Open File</Menu.Item>
                            </Menu.Group>
                            <Menu.Separator data-part="Separator" />
                            <Menu.CheckboxItemPrimitive data-part="CheckboxItemPrimitive">
                                <Menu.CheckboxItem data-part="CheckboxItem">
                                    <Menu.CheckboxItemIndicatorPrimitive data-part="CheckboxItemIndicatorPrimitive" />
                                    Auto Save
                                </Menu.CheckboxItem>
                            </Menu.CheckboxItemPrimitive>
                            <Menu.Separator data-part="Separator" />
                            <Menu.RadioGroup data-part="RadioGroup" defaultValue="light">
                                <Menu.RadioItemPrimitive data-part="RadioItemPrimitive" value="light">
                                    <Menu.RadioItem data-part="RadioItem" value="light">
                                        <Menu.RadioItemIndicatorPrimitive data-part="RadioItemIndicatorPrimitive" />
                                        Light
                                    </Menu.RadioItem>
                                </Menu.RadioItemPrimitive>
                                <Menu.RadioItemPrimitive data-part="RadioItemPrimitive" value="dark">
                                    <Menu.RadioItem data-part="RadioItem" value="dark">Dark</Menu.RadioItem>
                                </Menu.RadioItemPrimitive>
                            </Menu.RadioGroup>
                            <Menu.Separator data-part="Separator" />
                            <Menu.SubmenuRoot data-part="SubmenuRoot">
                                <Menu.SubmenuTriggerItem data-part="SubmenuTriggerItem">
                                    Export
                                </Menu.SubmenuTriggerItem>
                                <Menu.SubmenuPopup data-part="SubmenuPopup">
                                    <Menu.Item data-part="Item">PDF</Menu.Item>
                                    <Menu.Item data-part="Item">CSV</Menu.Item>
                                </Menu.SubmenuPopup>
                            </Menu.SubmenuRoot>
                        </Menu.Popup>
                    </Menu.PopupPrimitive>

Home
</NavigationMenu.Link>
</NavigationMenu.Item>
<NavigationMenu.Item>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Anatomy Explorer에서 모든 Item을 하이라이트할 수 있도록 이 NavigationMenu.Item 컴포넌트에도 data-part="Item" 속성을 추가하는 것이 좋습니다.

Suggested change
<NavigationMenu.Item>
<NavigationMenu.Item data-part="Item">

Comment on lines +5 to +35
<Table.Root data-part="Root" width="100%">
<Table.ColumnGroup data-part="ColumnGroup">
<Table.Column data-part="Column" />
<Table.Column />
</Table.ColumnGroup>
<Table.Header data-part="Header">
<Table.Row data-part="Row">
<Table.Heading data-part="Heading">Name</Table.Heading>
<Table.Heading>Role</Table.Heading>
</Table.Row>
</Table.Header>
<Table.Body data-part="Body">
<Table.Row>
<Table.Cell data-part="Cell">Olivia Park</Table.Cell>
<Table.Cell>Designer</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>Ethan Kim</Table.Cell>
<Table.Cell>Developer</Table.Cell>
</Table.Row>
</Table.Body>
<Table.Footer data-part="Footer">
<Table.Row>
<Table.Cell colSpan={2}>
<Text typography="body3" foreground="hint-100">
2 members total
</Text>
</Table.Cell>
</Table.Row>
</Table.Footer>
</Table.Root>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Anatomy Explorer가 테이블의 모든 구성 요소를 하이라이트할 수 있도록 data-part 속성이 누락된 여러 요소에 추가해야 합니다. Column, Row, Heading, Cell 등 여러 컴포넌트에 data-part가 빠져 있습니다.

        <Table.Root data-part="Root" width="100%">
            <Table.ColumnGroup data-part="ColumnGroup">
                <Table.Column data-part="Column" />
                <Table.Column data-part="Column" />
            </Table.ColumnGroup>
            <Table.Header data-part="Header">
                <Table.Row data-part="Row">
                    <Table.Heading data-part="Heading">Name</Table.Heading>
                    <Table.Heading data-part="Heading">Role</Table.Heading>
                </Table.Row>
            </Table.Header>
            <Table.Body data-part="Body">
                <Table.Row data-part="Row">
                    <Table.Cell data-part="Cell">Olivia Park</Table.Cell>
                    <Table.Cell data-part="Cell">Designer</Table.Cell>
                </Table.Row>
                <Table.Row data-part="Row">
                    <Table.Cell data-part="Cell">Ethan Kim</Table.Cell>
                    <Table.Cell data-part="Cell">Developer</Table.Cell>
                </Table.Row>
            </Table.Body>
            <Table.Footer data-part="Footer">
                <Table.Row data-part="Row">
                    <Table.Cell data-part="Cell" colSpan={2}>
                        <Text typography="body3" foreground="hint-100">
                            2 members total
                        </Text>
                    </Table.Cell>
                </Table.Row>
            </Table.Footer>
        </Table.Root>

Comment on lines +7 to +26
<Tabs.List data-part="List">
<Tabs.Button data-part="Button" value="overview">
Overview
</Tabs.Button>
<Tabs.Button value="features">Features</Tabs.Button>
<Tabs.IndicatorPrimitive data-part="IndicatorPrimitive" />
</Tabs.List>
</Tabs.ListPrimitive>

<Tabs.Panel data-part="Panel" value="overview">
<Text typography="body2" foreground="normal-100">
Overview content
</Text>
</Tabs.Panel>

<Tabs.Panel value="features">
<Text typography="body2" foreground="normal-100">
Features content
</Text>
</Tabs.Panel>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Anatomy Explorer의 일관된 동작을 위해 data-part 속성이 누락된 Tabs.ButtonTabs.Panel에 각각 data-part="Button"data-part="Panel"을 추가하는 것이 좋습니다.

Suggested change
<Tabs.List data-part="List">
<Tabs.Button data-part="Button" value="overview">
Overview
</Tabs.Button>
<Tabs.Button value="features">Features</Tabs.Button>
<Tabs.IndicatorPrimitive data-part="IndicatorPrimitive" />
</Tabs.List>
</Tabs.ListPrimitive>
<Tabs.Panel data-part="Panel" value="overview">
<Text typography="body2" foreground="normal-100">
Overview content
</Text>
</Tabs.Panel>
<Tabs.Panel value="features">
<Text typography="body2" foreground="normal-100">
Features content
</Text>
</Tabs.Panel>
<Tabs.List data-part="List">
<Tabs.Button data-part="Button" value="overview">
Overview
</Tabs.Button>
<Tabs.Button data-part="Button" value="features">Features</Tabs.Button>
<Tabs.IndicatorPrimitive data-part="IndicatorPrimitive" />
</Tabs.List>
</Tabs.ListPrimitive>
<Tabs.Panel data-part="Panel" value="overview">
<Text typography="body2" foreground="normal-100">
Overview content
</Text>
</Tabs.Panel>
<Tabs.Panel data-part="Panel" value="features">
<Text typography="body2" foreground="normal-100">
Features content
</Text>
</Tabs.Panel>

Copy link
Contributor

@noahchoii noahchoii left a comment

Choose a reason for hiding this comment

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

Thanks for your work! Explorer looks really great! I've left a few questions and points for discussion below—please take a look!


  1. The reason we initially proposed adding Anatomy was to clearly show the hierarchical structure between component elements, but that part seems to be missing!

  2. Elements like PortalPrimitive and PopupPrimitive don't seem to be navigating properly—please check this!

  3. For rendering states like the open state of Overlay elements or the checked state of checkboxes, adjusting the initial value to true or similar might be beneficial!

  4. Clicking the left button doesn't seem to trigger any specific event, but the active style remains, potentially creating an expectation among users that another action will occur. How about leaving only the hover style, or using a different element?

  5. The role of the left sidebar is set to navigation. The navigation role is a collection of links used for navigating a website. Personally, I feel this doesn't fit this component. Is there a specific reason you determined it should be the navigation role?

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.

2 participants