* A few different types of validation
* Rename
* Fix test
* Updating validation framework
* Update lockfile
* Ensure validators can be None
* Reworking the API a little
* Convert Input.Changed to dataclass
* Add utility for getting failures as strings
* Update an example in Validator docstring
* Remove some redundant `pass`es
* Renaming variables
* Validating Input on submit, attaching result to Submitted event
* Testing various validation features
* Update snapshots and deps
* Styling unfocused -invalid Input differently
* Add snapshot test around input validation and associated styles
* Validation docs
* Tidying validation docs in Input widget reference
* Fix mypy issues
* Remove __bool__ from Failure, make validator field required
* Code review changes
* Improving error messages in Validators
* Checking in remove_row progress
* Ensuring structures updated correctly when row deleted
* Clamping index
* Failed attempt
* Removing rows
* Update a type hint in DataTable
* Remove some code that wasnt required
* Use index syntax instead of get
* Add DataTable remove row test
* Snapshot tests for removing rows
* Add a docstring for DataTable.remove_row method
* Update changelog regarding DataTable.remove_row
* Add check_idle call to remove_row
* Add pageup and pagedown actions to DataTable, with no impls
* Pagedown moves DataTable cursor now
* Account for header height in pagedown action
* Page Up support in the DataTable
* Fix and off-by-1, ensure page up/down works on col cursor
* Add placeholder scroll home/end action handlers to datatable
* Add scroll home and scroll end
* Hide hover cursor when home or end is used
* Ensure home and end work correctly with all curosrs
* Testing home/end/pagedown/pageup cursor movement in DataTable
* Docstrings for new datatable actions
* Fix a broken unit test for the DataTable
* Using pseudoclass state in DataTable cache keys
* Use full pseudo-class state on tree cache key
* Adding tests for Widget.get_pseudo_class_state
* Test hiding hover cursor when mouse cursor leaves DataTable
* Update CHANGELOG.md
* Delete redundant test file
* Sketch out pilot API improvements - signatures/docstrings
* Pilot click and hover
* Updating test to use new pilot hover method for DataTable
* hover and click methods for Pilot
* Update changelog
* Add docstring
* remove sender
* removed priority post
* timer fix
* test fixes
* drop async version of post_message
* extended docs
* fix no app
* Added control properties
* changelog
* changelog
* changelog
* fix for stopping timers
* changelog
* added aliases to radio and checkbox
* Drop sender from Message init
* drop time
* drop cast
* Added aliases
* Renaming some component classes in DataTable
* Some more renaming of DataTable component classes
* Separate styling for fixed rows/columns from labels
* Highlight fixed rows/cols affected by colour differently
* Tweaking styles for fixed data in DataTable
* Update DataTable snapshots
* Add row label to Row metadata
* Wiring up some labelled row logic behind flags
* Renaming variable in DataTable
* Variable renaming in DataTable
* [no ci] Labelling rows progress
* Add RenderedRow abstraction to DataTable
* Computing label widths
* Use the Column object to represent row label column
* Ability to toggle row labels reactively
* Adjust width calculation for label widths
* Add DataTable.RowLabelSelected
* Posting the RowLabelClick message
* Hovering of row labels applies new style
* Remove a print
* Ensure horizontal scrolling with column cursor accounts for row label column
* Account for possible row labels in cell cursor horizontal scrolling
* Ensure cursor highlighting is correct on row label cells
* Document component class for DataTable label hover
* Test to ensure clicking row label emits correct event
* Add snapshot test for DataTable with fixed rows/cols and row labels
* Using pilot pause instead of wait_for_idle directly
* Update CHANGELOG
* Add a docstring
* Add a note to CHANGELOG.md about RowLabelSelected