-
Notifications
You must be signed in to change notification settings - Fork 9
feat: Add component attribution and Afterburn developer tool for identifying in-use components #1738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Implements Phase 1 of the Contrail developer tool by adding minimal data attributes to all LaunchPad components for identification. **Changes:** - Add attribution utility in @launchpad-ui/core with single data attribute - Enhance useLPContextProps to automatically add data-launchpad="ComponentName" - Update all 48+ components in @launchpad-ui/components to use attribution - Minimize DOM pollution with single attribute vs multiple attributes **Technical Details:** - Components now render: <button data-launchpad="Button"> - Provides essential component identification for Contrail highlighting - Contrail tool can provide additional metadata (version, docs, etc.) - Zero performance impact when Contrail is inactive
…omprehensive testing - Complete @launchpad-ui/contrail package with full feature set - Add ComponentHighlighter with CSS injection and hover detection - Add InfoPopover with dark/light theme support and responsive design - Add comprehensive test coverage (42 tests) for all utilities and components - Add keyboard shortcut system with cross-platform support (Cmd/Ctrl + L) - Add metadata generation system scanning 59 components - Fix all lint and TypeScript errors for clean codebase - Add Storybook integration with demo page - Update project documentation with completion status
complete reimplementation of launchpad contrail with: - css-only highlighting for perfect positioning and performance - vanilla js contrailcontroller with tooltip system - advanced ux features: draggable settings, smart component filtering - comprehensive test coverage with 51 passing tests - removed old react-based componenthighlighter components - updated project documentation and implementation status
…atus Updates project plan document with: - Phase 2 completion status and latest progress - Comprehensive test coverage details (51 tests passing) - Key achievements and implementation milestones - Phase 3 planning for rename to "afterburn" and code polish - Architecture review and simplification roadmap
…links ## Major Changes ### Package Rename: contrail → afterburn - Rename package directory: `packages/contrail` → `packages/afterburn` - Update package.json: `@launchpad-ui/contrail` → `@launchpad-ui/afterburn` - Rename main component: `LaunchPadContrail` → `LaunchPadAfterburn` - Rename controller classes: `ContrailController` → `AfterburnController` - Update all CSS classes: `contrail-*` → `afterburn-*` - Rename CSS file: `contrail.css` → `afterburn.css` ### Documentation Link Fixes - **Remove broken storybook functionality** - eliminate 404 links - **Fix URL generation** with proper category mapping based on actual Storybook structure: - Button: `components-buttons-button--docs` ✅ - TextField: `components-forms-textfield--docs` ✅ - Modal: `components-overlays-modal--docs` ✅ - Alert: `components-status-alert--docs` ✅ - **Comprehensive category mapping** for 50+ components across 9 categories - **Simplified tooltip UI** - single "📖 Documentation" link ### Enhanced Settings Panel - **Added GitHub repository link** - 🔗 Links to repo - **Added Storybook link** - 📚 Links to component library - **Improved styling** with proper hover states and dark mode support ## Quality Assurance - ✅ All 53 tests passing (updated for new URL patterns) - ✅ Code formatted and linted with Biome - ✅ TypeScript compilation successful - ✅ Comprehensive test coverage for URL generation ## Breaking Changes - Package name changed: `@launchpad-ui/contrail` → `@launchpad-ui/afterburn` - Component name changed: `LaunchPadContrail` → `LaunchPadAfterburn` - Removed `storybookUrl` prop (no longer needed) The "afterburn" creates a visible highlighting effect on components, like the trail left by a rocket engine. All documentation links now work correctly with the actual Storybook structure.
Clean up the old contrail package directory and files after successful rename to afterburn. All functionality has been preserved and enhanced in the new afterburn package.
Updates the project plan document to reflect completed work: ## Phase 3.1 Completion Status - ✅ Complete package rename: contrail → afterburn - ✅ Fixed documentation links with proper URL generation - ✅ Removed broken storybook functionality - ✅ Enhanced settings panel with repo and storybook links - ✅ All 53 tests passing with comprehensive coverage ## Documentation Updates - Updated consumer usage examples (removed deprecated storybookUrl) - Updated metadata interface (removed storybookUrl field) - Added comprehensive Phase 3.1 completion summary - Documented breaking changes and migration path - Updated key achievements to include working documentation links The plan now accurately reflects the current state with Phase 3.1 complete and optional Phase 3.2 (code review & simplification) pending.
Create dedicated @launchpad-ui/attribution package and implement data attributes across all component packages to enable universal component identification for developer tools like Afterburn. **New Package:** - @launchpad-ui/attribution: Minimal attribution utilities with addLaunchPadAttribution() function **Attribution Coverage:** - Enhanced: @launchpad-ui/components (50+ components) - Added: @launchpad-ui/drawer, @launchpad-ui/dropdown, @launchpad-ui/filter - Added: @launchpad-ui/form, @launchpad-ui/menu, @launchpad-ui/modal - Added: @launchpad-ui/navigation, @launchpad-ui/overlay, @launchpad-ui/popover - Added: @launchpad-ui/table, @launchpad-ui/tooltip - Updated: @launchpad-ui/afterburn (uses new attribution package) **Migration:** - Moved attribution utilities from @launchpad-ui/core to dedicated package - All components now render data-launchpad="ComponentName" attributes - Enables universal component highlighting and identification **Technical Benefits:** - Universal developer tool support across all LaunchPad components - Minimal DOM pollution (single data attribute per component) - Zero performance impact when developer tools inactive - Consistent attribution pattern across 15+ packages
🦋 Changeset detectedLatest commit: 4ba66cf The changes in this PR will be included in the next version bump. This PR includes changesets to release 16 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice
since launchpad is a public repo, are there any security concerns for us exposing this?
Add rootDir to tsconfig.build.json to ensure declaration files are generated at dist/index.d.ts instead of dist/src/index.d.ts, fixing build errors in consuming packages.
commit: |
I can't think of any? It's an opt-in and doesn't expose anything that isn't already publicly available. |
The @launchpad-ui/attribution package was missing its built distribution files, causing TypeScript import errors in CI. This adds the generated dist files to resolve the module resolution issues.
Remove @launchpad-ui/core dependency from button package to resolve circular build dependency: navigation → dropdown → button → core → button
…m coverage - Add comprehensive test coverage for afterburn package exports and functionality - Add package-specific vitest config with 70% coverage threshold - Exclude generated files from coverage checks globally - Fix CI test failures by achieving sufficient coverage for all afterburn functionality - Replace private API testing with proper public API testing
- Update test to focus on keyboard shortcut behavior rather than double-click - Remove test dependency on double-click event which wasn't working properly in test environment
@@ -0,0 +1,12 @@ | |||
/** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is checking in these dist
files intentional?
Uh oh!
There was an error while loading. Please reload this page.