Skip to content

Conversation

@leoafarias
Copy link
Collaborator

Summary

  • introduce shared BuildStatus model in core with typed helpers
  • refactor builders/CLI/watchers to consume the shared model
  • tighten cli watcher tests around shared parsing utilities

Testing

  • melos run test --no-select

- Removed DartPadBlock and ImageBlock classes from block_model.dart.
- Introduced WidgetDefinition abstract class for custom widgets with typed arguments.
- Created DartPadWidget and ImageWidget as schema-validated custom widgets.
- Updated BlockData to use a generic Block type instead of specific block types.
- Modified BlockWidget to accept a generic BlockData type.
- Enhanced markdown_helpers.dart to improve string fading logic.
- Updated tests to accommodate changes in block data handling and widget definitions.
- Added built-in widgets for DartPad and Image to the widgets.dart file.
- Updated pubspec.yaml to include qr_flutter dependency for QR code generation.
- Remove unused WidgetArgs class (200+ lines of YAGNI violation)
- Simplify color parsing in QrCodeWidget
- Improve DartPadArgs URL building with conditional parameters
- Simplify block wrapping logic in BlockWidget
- Refactor widget collection in SlideConfigurationBuilder using functional approach
- Minor readability improvements throughout

All functionality preserved with passing tests.
…tecture

- Rename ColumnBlock to ContentBlock throughout codebase for clarity
- Refactor widget implementations (DartPad, Image, QR Code) for consistency
- Add utility extensions for better code organization
- Improve converters with enhanced validation and error handling
- Update parsers to support new block structure
- Add comprehensive test coverage for parser changes
- Update dependencies to support new features
- Fix widget lifecycle error in SplitView by saving DeckController reference
  - Prevents "Looking up a deactivated widget's ancestor" error in dispose()
  - Store controller reference in didChangeDependencies() instead of accessing context in dispose()

- Add semantic labels to slides for accessibility
  - Wrap SlideScreen with Semantics widget providing "Slide N" labels
  - Enables screen reader support and semantic navigation testing

- Update integration tests to use NavigationController directly
  - Replace keyboard shortcut simulation with direct controller method calls
  - Fixes navigation in tests where keyboard events weren't being processed
  - Use fixed-duration pumps instead of pumpAndSettle() to avoid hanging

- Use semanticsEnabled parameter for proper semantics testing
  - Follow official Flutter recommendation for integration tests
  - Use RegExp matchers for semantic labels that merge with content

Note: SemanticsHandle disposal warning remains due to known Flutter framework
bug (flutter/flutter#153850, #138135). All functional assertions pass.
- Remove local path dependencies for ack packages
- Update ack packages to latest beta version (1.0.0-beta.2)
- Add pubspec_overrides.yaml to .gitignore for local development
- Update generated code from build_runner
- Ensure CI can resolve all dependencies from pub.dev
- Use fvm dart instead of dart for melos setup
- Use fvm flutter for all flutter commands
- Fixes PATH issue where dart command not found before PATH update takes effect
@docs-page
Copy link

docs-page bot commented Oct 29, 2025

To view this pull requests documentation preview, visit the following URL:

docs.page/btwld/superdeck~18

Documentation is deployed and generated using docs.page.

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