//! The project dashboard's Content panel, described. //! //! B4's centrepiece, and the close condition makeover-layout `N12` has been //! waiting on since 2026-08-18. That task decided two things about this screen //! and then had nowhere to spend them: the ticks are a payload the renderer //! assembles rather than something the layer names, and the three filter //! controls are a **server round trip** rather than a client-side pass over //! rendered rows. Both are what this module is built out of. //! //! Compare `routes::pages::dashboard::project_tabs::build_content`, which //! answers the same address from Askama when the screen is switched off, and //! `static/tab-project-content.js`, whose 334 lines are what a described panel //! replaces. //! //! # A view is an address //! //! Every narrowing the shipped screen holds in module scope -- the search box, //! the two selects, the sort column and its direction, which bundles are //! expanded -- is a query param here, and [`View`] is the whole of that state. //! `filterContentTable` walked the DOM and toggled a `hidden` class on rows; //! `sortContentTable` reordered `