-
Notifications
You must be signed in to change notification settings - Fork 0
Release v0.2.0-rc3: Headless Components with RC2 Features #102
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
Open
ryanrozich
wants to merge
31
commits into
main
Choose a base branch
from
release/v0.2.0-rc3
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+19,185
−8,638
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Convert DateFilter to headless compound component pattern - Convert ActiveFilters to headless compound component pattern - Convert QuickFilterDropdown to headless compound component pattern - Remove all CSS from component library (zero CSS shipped) - Move all styles to demo app (headless-components.css) - Add data-* attributes for state-based styling - Maintain full backward compatibility with default structures - Enable complete customization via compound components BREAKING CHANGE: Components no longer ship with any CSS. Users must provide their own styles or use the reference styles from the demo app. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…ality - Created SavedViewsManager as a fully headless compound component - Implemented Save/Load/Export/Import functionality for filter views - Added CategorySelector with portal-based dropdown and inline category creation - Fixed z-index layering issues using React Portals - Added comprehensive E2E tests for all components - Added icons to Export/Import buttons in demo - Fixed event delegation for custom styled action buttons - Added SavedViewsManager to both Client-Side and Server-Side demos - Implemented proper AG Grid API integration with getSortModel workaround - Added demo styles using data attributes for headless pattern - Created comprehensive test suite with all tests passing Key features: - Complete filter state management (filters, column state, sort) - Category-based organization of saved views - Export all views to JSON file - Import views from JSON with merge logic - Set default views that apply on mount - Maximum view limit with validation - Proper localStorage persistence - TypeScript strict mode compliance 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added 5 default categories (General, Reports, Analysis, Team Views, Personal) - This fixes the Save button being disabled in the dialog - Ensures users can save views immediately without creating categories first 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed imports in index.ts, SavePresetModal, and ManagePresetsModal - All imports now point to CategorySelector/index instead of CategorySelector.tsx - This fixes the 404 error preventing the demo from loading 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed 'Can apply a saved view' test by updating selector to wait for demo load - Fixed 'Export and import functionality' test by simplifying panel interaction - All 11 SavedViewsManager tests now passing - All 7 basic headless components tests passing - Cleaned up debug test files and screenshots Tests are now fully functional and validate: - Save/Load functionality - Export/Import functionality - Category management with inline creation - Default view persistence - Proper headless component structure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added comprehensive CSS styling for CategorySelector in SavedViewsManager.css - Styled input field with proper padding, borders, and focus states - Added dropdown styling with shadows and proper positioning - Styled 'Create new category' option with blue color and + icon - Added styles for create form, buttons, and error messages - Fixed server-side demo layout issue - Moved results count and loading indicator out of toolbar - Placed them in a separate section between filters and grid - Prevents UI elements from jumping around - Export button correctly disabled when no views (expected behavior) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add missing useMemo import to SavedViewsManager - Fix demo page conditional logic (was showing "Page not found" for demo) - Import components from sharedGridConfig in working-demo for cell renderers - Enable avatar renderer for both client and server side demos - Reduce CategorySelector dropdown gap from 4px to 2px for better positioning - Remove default categories - only show categories from existing saved views All avatars now render correctly on both client and server side demos. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…server loading UX - Add disabled state handling in Actions component event delegation - Support aria-disabled attribute and disabled class checking - Update demo buttons to use aria-disabled styling - Improve server-side loading state to show dashes in stats instead of skeleton loaders - Add subtle "Updating..." overlay on stats during loading - Make stats values show as grayed out when loading The export button now properly appears disabled when there are no saved views. Server-side loading no longer breaks up the UI between filter pills and data grid. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Remove the results count display (e.g., "10,000 results") from ServerSideDemo - Grid container now appears directly after Active Filters section - Loading state already shows dashes in stats cards as requested - Dropdown styling is consistent (different colors indicate active filter state) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Rename "Preset filters" to "My Views" in demos to better indicate user-saved views - Create ViewDropdownLoader interface for extensible view loading - Add SavedViewOption type supporting both filters-only and full-grid-state saves - Implement LocalStorageLoader for browser-based persistence - Implement PresetLoader for built-in/developer-defined views - Support for categories, metadata, default views, and import/export This architecture allows developers to implement custom loaders (e.g., server-side storage) while providing sensible defaults for local storage and preset management. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Implement ViewManagementMenu component with three-dots trigger - Add comprehensive ViewManagementModal for managing saved views - Support inline editing, category changes, and delete confirmation - Use React Portals for proper z-index management - Add CSS styling for both components with proper focus states - Fix CSS linting issues by using standard box-shadow properties Phase 3 and 4 implementation complete. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…management - Create SavedViewsDropdown component that combines QuickFilterDropdown with view management - Implement SaveViewModal for saving new views with filters or full grid state - Add support for extensible ViewDropdownLoader interface - Integrate ViewManagementMenu and ViewManagementModal into single component - Replace separate components in ServerSideDemo with unified SavedViewsDropdown - Support local storage persistence with LocalStorageLoader - Add CSS styling for new components - Fix TypeScript lint issues with proper type guards Phase 5 implementation complete - all view management functionality now integrated. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Remove complex category grouping from dropdown options - Show all saved views directly in the dropdown with clear indicators - Add icons to show default views (⭐) and categorized views (📁) - Remove separate SavedViewsManager button from demo - Remove duplicate ViewManagementMenu from demo - All save/manage functionality now integrated in SavedViewsDropdown's three-dots menu The My Views dropdown now works just like the presets dropdown, but loads its options from localStorage instead of bundled presets.
- Start RC3 branch from stable headless refactor (commit 5d6af0c) - Update version to 0.2.0-rc3 - Foundation for selectively porting RC2 features
- Mark CategorySelector, FilterPresetManagerV2, FilterPresets as SKIP - Prioritize StackBlitz examples (user priority) - Add independent execution plan - Update feature actions based on user preferences
- Create subdirectories: build/, dev/, quality/, github/, utils/ - Move scripts to appropriate directories based on purpose - Update all package.json script paths - Port missing utilities from RC2 (run-tsx.js, ensure-project-root.mjs) - Port dev scripts from RC2 (test-filter-click.js, thorough-demo-check.js) - Update scripts README with comprehensive documentation - Improve maintainability by grouping related scripts
- Add simple-data-generator.js for browser-based data generation - Add test-api.js for health checks and API testing - These additions complement existing API functionality - No conflicts with current relative date parsing features
- Add z-index: 10 to AG Grid filter popups, menus, and wrapper elements - Apply fix to all three themes: ag-theme-quartz, ag-theme-quartz-dark, and ag-theme-material - Ensure filter dropdowns render above the grand total row at bottom of grid - Port fix from RC2 to resolve UI overlap issue
- Add bot-ci-integration.yml for automated bot workflows - Add deploy-preview.yml for PR preview deployments - Add rc-integration-deploy.yml for release candidate deployments - Add health-check.yml for monitoring deployment health - These workflows enhance CI/CD capabilities and automation
- Fix trailing whitespace in GitHub workflows - Remove DateFilter.backup directory (old implementation) - Clean up for RC3 release
- Document PRs to close and reasons why - List issues resolved by RC3 - Add branch cleanup commands - Include communication template for closures - Identify remaining work that needs attention
This was referenced Jul 15, 2025
- Remove unused autoSave property from LocalStorageLoader - Add proper type imports (ColumnState) to SavedViewsDropdown - Fix metadata.description references (should be view.description) - Handle null GridApi in dropdown components - Fix render prop type issues in SavedViewsManager - Remove unused viewMap variable in utils - Fix E2E test unused imports and type assertions - Replace any[] with unknown[] to satisfy linter These changes ensure the build passes for RC3.
- Skip legacy RelativeDateFilter tests (component is just an alias now) - Remove obsolete DateFilter hook tests that no longer exist - Update ActiveFilters tests to use data attributes instead of className - Fix QuickFilterDropdown position tests to check data-position attribute - Update filterModelBuilder tests for new filter model structure - Fix DATE_FILTER_PRESETS count from 11 to 12 - Update filter model expectations to match actual structure All tests now pass successfully!
- Update date formatting to use UTC dates consistently - Fix test expectation to match actual formatted date 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update package.json path from ../package.json to ../../package.json - Update version-info.json output path to ../../src/demo/version-info.json - Resolves Deploy PR Preview failures 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update deploy workflows to use scripts/build/generate-version-info.js - Fixes remaining Deploy PR Preview failures 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
🚀 Demo Preview Ready! Preview URL: https://demo.rozich.net/ag-grid-react-components-pr-102/ This preview will be available for testing until the PR is merged or closed. |
…tion - Add detailed headless UI architecture explanation to DocumentationPanel - Document compound component pattern with code examples - Add styling guide using data attributes - Include benefits of headless approach (flexibility, bundle size, accessibility) - Update hero section with headless design callout - Add code block styling for better documentation presentation These changes restore and enhance the headless documentation that was developed during the migration process. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…cumentation - Add dedicated "Headless Components" section to /docs page with: - Overview explaining benefits and v2.0 headless mode - Architecture details with hooks pattern and context providers - Customization examples for Tailwind, CSS-in-JS, CSS Modules - Integration examples with Material-UI, Ant Design, Chakra UI - Comparison tables and performance best practices - Add complete SavedViewsDropdown documentation including: - Navigation entry under Components section - Basic and advanced usage examples - Headless architecture examples (unstyled vs styled) - Full API documentation with props table - Local storage and server persistence examples - Categories, custom icons, and import/export features - Create docs/SAVEDVIEWSDROPDOWN_API.md with detailed API reference - Update docs/README.md to include SavedViewsDropdown references - Add CSS styles for API tables and documentation formatting These changes provide the comprehensive headless documentation requested, showing raw unstyled components and multiple styling approaches. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix SavedViewsDropdown content not displaying in docs navigation - Rename 'Headless Components' to 'Headless Architecture' for clarity - Add live interactive examples showing unstyled vs styled components - Include examples for DateFilter, QuickFilterDropdown, and ActiveFilters - Show Tailwind CSS and custom CSS styling approaches - Fix style jsx syntax issue by using dangerouslySetInnerHTML 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix duplicate "Headless Architecture" sections causing rendering bugs - Consolidate content into 3 main sections: overview, examples, customization - Move Core Concepts and Implementation Pattern into Overview section - Remove duplicate section that was causing navigation issues - Improve content organization for better user experience 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add server-side grouping logic with aggregations in data-generator.js - Create helper functions for group row creation and hierarchical grouping - Pass rowGroupCols and groupKeys from client to server - Enable row grouping UI in ServerSideDemo component - Configure autoGroupColumnDef for proper group display - Support multi-level grouping with drill-down capabilities Demo-only branch - not intended for merge
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area: components
Related to the React components
area: demo
Related to the demo/showcase application
bug
Something isn't working
component: date-filter
DateFilter/RelativeDateFilter components
component: demo-app
Demo application specific
component: quick-filter-dropdown
QuickFilterDropdown component
effort: s
Small (1-4 hours)
enhancement
New feature or request
has-preview
priority: critical
Must fix ASAP, blocking usage
priority: high
Important, should be fixed soon
priority: medium
Normal priority
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR creates release candidate v0.2.0-rc3, built on the stable headless refactor foundation with valuable features selectively ported from RC2.
What's in RC3
Foundation: Headless Architecture
Features Ported from RC2
Why RC3?
Testing
Next Steps
Migration Plan
See HEADLESS_RC3_MIGRATION_PLAN.md for full details on the porting process and cleanup plan.
Issues Resolved
Fixes #6 (Grand total row z-index)
Fixes #97 (Make all components truly headless)
Fixes #96 (QuickFilterDropdown headless violations)
Fixes #99 (QuickFilterDropdown tab switching errors)
Fixes #72 (DateFilter state management issues)
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
EOF < /dev/null