diff --git a/README.md b/README.md index 8ba843f5..3fe048bc 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,11 @@ And this is what gets rendered (plus the CSS and Javascript you've specified): ## Release notes +**Version 0.96** +- Run-time type validation for Python 3.11+ - If the `Component` class is typed, e.g. `Component[Args, Kwargs, ...]`, the args, kwargs, slots, and data are validated against the given types. (See [Runtime input validation with types](#runtime-input-validation-with-types)) +- Render hooks - Set `on_render_before` and `on_render_after` methods on `Component` to intercept or modify the template or context before rendering, or the rendered result afterwards. (See [Component hooks](#component-hooks)) +- `component_vars.is_filled` context variable can be accessed from within `on_render_before` and `on_render_after` hooks as `self.is_filled.my_slot` + **Version 0.95** - Added support for dynamic components, where the component name is passed as a variable. (See [Dynamic components](#dynamic-components)) - Changed `Component.input` to raise `RuntimeError` if accessed outside of render context. Previously it returned `None` if unset. diff --git a/pyproject.toml b/pyproject.toml index 3baa1c51..7ffa624c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "django_components" -version = "0.95" +version = "0.96" requires-python = ">=3.8, <4.0" description = "A way to create simple reusable template components in Django." keywords = ["django", "components", "css", "js", "html"]