Read-and-write contract a category/range chip strip (cngx-pgn-alpha)
injects instead of the concrete CngxBucketPaginate directive. The directive provides it via useExisting, so a chip strip stays
decompose-ready - it talks to the token, never to the model class (DI
abstraction).
The signals are the single derivation source for every chip's pressed and
disabled state; select / clear are the only write paths, each routing
through the directive's active model so the toggle invariant (re-selecting
the active bucket clears it) holds in one place.
true when no bound item matches the bucket's predicate. Derived from the
items / buckets inputs (never a synced flag); a chip binds its disabled
state to this so an empty bucket is a dead control with a stated reason.