FilterItem

components/filter/Item.vue

c88 Phase 2 redesign of the filter pill — primarily a display element: a static key label + delete (x) on top, and a value row below that opens a closed dropdown over valSuggestions when clicked (key and operator are not editable here — change those in the Config modal). A slash-circle glyph prefixes the value for the neq ("not this") operator instead of Phase 1's "!=" text. Tag filters with no value read as "tag exists" and have no dropdown. `removable=false` drops the x for a column that is always in place — Filter uses it for the permanent `when:` timeframe pill (design c92 timeframe-always). Look (design c92, 2026-09-24): a 24 px key row (grey-500, medium, not italic; ✕ in content-subtle) over the value row (bold, var(--qf-value, #759ac0)) with the chevron in var(--qf-accent, #4c99f8) — the vars come from Filter's .qf-bar, with fallbacks for standalone use.

Key and operator are fixed — only the value is interactive. Click the value to pick a different one from its dropdown.

team:
Engineering
Scenarios
eq — with a value dropdown
team:
Engineering
neq (not-this)
provider:
Anthropic
contains (labeled operator)
destination:
qpoint
Tag filter, no value
bin:
tag exists
Not removable (removable=false) — the timeframe pill: no ✕, value still a dropdown, formatVal shows the option label
when:
Past 7 days
Overflow value
user-agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
components/filter/Item.vue

Usage

<FilterItem _key = "undefined" val = "undefined" operator = "undefined" :isTagFilter = "false" :valSuggestions = "[]" :formatVal = "formatVal" :roundLeft = "false" :removable = "true" />

Props

PropTypeDefaultDescription
_keyStringundefinedThe filter key (static — not editable here).
valStringundefinedThe filter value.
operatorStringundefinedFalls back to FILTER_DEFAULT_OP when unset; neq renders a slash-circle glyph. Static — not editable here.
isTagFilterBooleanfalseRenders "tag exists" instead of a value when true and val is empty, and disables the value dropdown.
valSuggestionsArray[]string[] offered in the value dropdown for the current key.
formatValFunctionnullDisplay-only formatter for the value and its suggestions (FilterKeyDefinition.formatVal); the emitted value stays raw.
roundLeftBooleanfalseRounds the value box's bottom-left corner — set by Filter on its leftmost column.
removableBooleantrueFalse renders no x button (and never emits delete) — a permanent column such as the timeframe pill. Row height is unchanged.

Events

EventDescription
update:valFired with the newly selected value from the dropdown.
deleteFired on the x button — stops propagation. Never fired when removable is false.

Related

Qpoint Brand Style Guide