Skip to content

Conversation

@MaxLee-dev
Copy link
Contributor

Related Issues

  • N/A

Description of Changes

  • We added this package for data sync into docs. This package analyzes props types based on the TypeScript compiler, handles default values, and also analyzes types from external libraries.
  • Since our design system is based on base-ui, we added support to import that type by default.

Checklist

Before submitting the PR, please make sure you have checked all of the following items.

  • The PR title follows the Conventional Commits convention. (e.g., feat, fix, docs, style, refactor, test, chore)
  • I have added tests for my changes.
  • I have updated the Storybook or relevant documentation.
  • I have added a changeset for this change. (e.g., for any changes that affect users, such as component prop changes or new features).
  • I have performed a self-code review.
  • I have followed the project's coding conventions and component patterns.

- Added TypeExtractor class to orchestrate the extraction of component type information.
- Introduced specialized analyzers: ComponentAnalyzer, PropsAnalyzer, VanillaExtractAnalyzer, and ExternalTypeResolver.
- Created utility functions for TypeScript analysis and component extraction.
- Developed a main function to handle file processing and output generation in JSON format.
- Added types and interfaces for component type information and extraction configuration.
- Integrated support for Vanilla Extract CSS files to extract default values and styling information.
- Established a configuration file for TypeScript compilation settings.
- Updated package dependencies and lock file to include necessary libraries for functionality.
…ction

- Removed legacy order.json configuration file.
- Enhanced types.ts with new interfaces for component and prop information.
- Updated tsconfig.json to include path mapping for improved module resolution.
- Created comprehensive README.md detailing the new architecture and usage.
- Implemented CLI tool for extracting component types from specified files.
- Developed ComponentAnalyzer for extracting display names and default elements from React components.
- Introduced ExternalTypeResolver for resolving external type definitions from npm packages.
- Built PropsAnalyzer for extracting prop information, including types and default values.
- Refactored TypeExtractor to orchestrate the extraction process using various analyzers.
- Added utility functions for TypeScript analysis, including JSDoc extraction and type parsing.
- Integrated Vanilla Extract support for CSS-in-JS styling analysis.
- Removed the ComponentAnalyzer and ExternalTypeResolver classes, replacing them with standalone functions in new files.
- Introduced PropsAnalyzer for extracting props information from TypeScript types.
- Created a new type-extractor module to handle TypeScript program creation and component type extraction.
- Updated index.ts to reflect new module structure and exports.
- Removed legacy VanillaExtractAnalyzer and replaced it with utility functions for CSS file handling.
- Cleaned up unused utility functions and consolidated prop extraction logic.
- Updated tsconfig.json for improved path resolution.
…w parser utilities and restructuring component handling
@MaxLee-dev MaxLee-dev self-assigned this Oct 1, 2025
@MaxLee-dev MaxLee-dev added the scope: docs Issues related to the Docs component. label Oct 1, 2025
@changeset-bot
Copy link

changeset-bot bot commented Oct 1, 2025

⚠️ No Changeset found

Latest commit: f3e62df

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

@vercel
Copy link

vercel bot commented Oct 1, 2025

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

Project Deployment Preview Comments Updated (UTC)
vapor-ui Ready Ready Preview Comment Oct 13, 2025 7:14am

@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!

This pull request introduces a dedicated documentation extraction package to enhance the project's documentation workflow. By programmatically analyzing TypeScript component definitions, the new tool automates the generation of API documentation, ensuring that the website's component reference is always up-to-date and accurately reflects the codebase. This change significantly improves the efficiency and reliability of maintaining comprehensive component documentation.

Highlights

  • New Docs Extractor Package: A new package, @vapor-ui/docs-extractor, has been introduced to automate the extraction of API documentation from TypeScript React components. This package is designed to analyze prop types, handle default values, and integrate with external libraries like Base UI.
  • Automated Documentation Generation: A new docs:generate script has been added to the apps/website/package.json to leverage the new docs extractor. This script will automatically generate component documentation, streamlining the data synchronization process for the website's documentation.
  • Comprehensive Type Analysis: The extractor performs in-depth TypeScript analysis, including support for JSDoc comments, Vanilla Extract CSS-in-JS default values, and resolution of external types, ensuring accurate and rich documentation output in JSON format.
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

새로운 docs-extractor 패키지 추가는 매우 유용한 기능입니다. 전반적인 아키텍처는 모듈식으로 잘 구성되어 있고 TypeScript 컴파일러 API를 활용한 점이 좋습니다. 다만, 성능 및 정확성과 관련된 몇 가지 중요한 이슈를 발견했습니다. 또한 리팩토링, 문서 정확성 개선, 불필요한 코드 제거가 필요한 부분들이 있습니다. 아래의 상세 리뷰를 통해 각 항목을 확인해주세요.

@MaxLee-dev MaxLee-dev marked this pull request as draft October 12, 2025 23:45
- Deleted ESLint configuration file as it is no longer needed.
- Removed package.json and TypeScript configuration files, cleaning up the project structure.
- Eliminated CLI implementation and related handlers for component extraction.
- Removed parser utilities and types related to component and prop extraction.
- Cleaned up utility functions and external type parsing logic.
- Updated pnpm lock file to reflect dependency changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: docs Issues related to the Docs component.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant