Some LoRAs list a whole sentence as their trigger. A click on it in a
row's info card added it to the row, but its chip stayed dark, and a
second click added it again instead of taking it out.
A row keeps its triggers as one comma-joined text. The chip's check and
toggleTrigger both split that text at commas and looked for the whole
trigger as one part, so a trigger with a comma of its own never matched.
A trigger is now looked for as the run of parts it becomes (hasTrigger),
and toggleTrigger uses the same search. Off takes out every copy, so a row
that already holds the sentence twice is cleared with one click. A click
refreshes every chip of the card: the same words can sit in two lists.
No Python change and no input change. The row text and the triggers
output are what they were for every trigger.