Unreleased

0.3.0 (2026-07-26)

  • Harden attribute output against javascript URLs, unsafe names, and nested data attributes
  • Validate dynamic HTML and SVG tag names at render time
  • Align plain/raw SafeObject rules with Phlex Ruby; add unsafe_raw/2
  • Implement process-local cache/3 and low_level_cache/3
  • Add nested render/2 with shared state and before_template/around_template/after_template/render? hooks
  • Record fragment byte offsets during cache capture and replay selective fragments by offset
  • Add Phlex.CSV with required escape_csv_injection?/0 configuration
  • Add Phlex.Kit with explicit kit_component/1 registration for nested helpers
  • Sync Phlex.version/0 and README dep pin with package 0.3.0

0.2.0

  • Update optional Phoenix dependencies to the latest supported versions
  • Refresh development and test tooling dependencies
  • Silence non-error logging during tests by default
  • Update Phoenix demo dependencies and code reloader listener

0.1.0

  • Initial public release of phlex.ex
  • Component-based architecture for building HTML, SVG, and other markup views in Elixir
  • Core modules: Phlex, Phlex.SGML, Phlex.HTML, Phlex.SVG
  • Explicit state passing for functional programming style with clear data flow
  • Phoenix and Phoenix LiveView integration via Phlex.Phoenix
  • StyleCapsule integration helper via Phlex.StyleCapsule
  • Attribute caching with FIFO cache store for improved performance
  • Fragment support for selective rendering and conditional content
  • Safe content handling with SafeValue and SafeObject protocol
  • Comprehensive HTML element support (standard elements, void elements, SVG elements)
  • Block support with content yielding
  • Helper functions for common HTML patterns
  • Comprehensive test suite with 279 tests
  • Quality assurance: Credo, Dialyzer, ExCoveralls
  • Example applications: Phoenix demo and standalone examples
  • Elixir >= 1.18 requirement