@@ -243,13 +243,13 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
243243 role =" radiogroup"
244244 :aria-label =" $t('filters.weekly_downloads')"
245245 >
246- <button
246+ <TagClickable
247247 v-for =" range in DOWNLOAD_RANGES"
248248 :key =" range.value"
249249 type =" button"
250250 role =" radio"
251251 :aria-checked =" filters.downloadRange === range.value"
252- class =" tag transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
252+ class =" transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
253253 :class ="
254254 filters.downloadRange === range.value
255255 ? 'bg-fg text-bg border-fg hover:text-bg/50'
@@ -258,7 +258,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
258258 @click =" emit('update:downloadRange', range.value)"
259259 >
260260 {{ $t(getDownloadRangeLabelKey(range.value)) }}
261- </button >
261+ </TagClickable >
262262 </div >
263263 </fieldset >
264264
@@ -272,13 +272,13 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
272272 role =" radiogroup"
273273 :aria-label =" $t('filters.updated_within')"
274274 >
275- <button
275+ <TagClickable
276276 v-for =" option in UPDATED_WITHIN_OPTIONS"
277277 :key =" option.value"
278278 type =" button"
279279 role =" radio"
280280 :aria-checked =" filters.updatedWithin === option.value"
281- class =" tag transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
281+ class =" transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
282282 :class ="
283283 filters.updatedWithin === option.value
284284 ? 'bg-fg text-bg border-fg hover:text-bg/70'
@@ -287,7 +287,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
287287 @click =" emit('update:updatedWithin', option.value)"
288288 >
289289 {{ $t(getUpdatedWithinLabelKey(option.value)) }}
290- </button >
290+ </TagClickable >
291291 </div >
292292 </fieldset >
293293
@@ -300,20 +300,20 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
300300 </span >
301301 </legend >
302302 <div class =" flex flex-wrap gap-2" role =" radiogroup" :aria-label =" $t('filters.security')" >
303- <button
303+ <TagClickable
304304 v-for =" option in SECURITY_FILTER_OPTIONS"
305305 :key =" option.value"
306306 type =" button"
307307 role =" radio"
308308 disabled
309309 :aria-checked =" filters.security === option.value"
310- class =" tag transition-colors duration-200 opacity-50 cursor-not-allowed focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
310+ class =" transition-colors duration-200 opacity-50 cursor-not-allowed focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
311311 :class ="
312312 filters.security === option.value ? 'bg-fg text-bg border-fg hover:text-bg/70' : ''
313313 "
314314 >
315315 {{ $t(getSecurityLabelKey(option.value)) }}
316- </button >
316+ </TagClickable >
317317 </div >
318318 </fieldset >
319319
@@ -323,19 +323,19 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
323323 {{ $t('filters.keywords') }}
324324 </legend >
325325 <div class =" flex flex-wrap gap-1.5" role =" group" :aria-label =" $t('filters.keywords')" >
326- <button
326+ <TagClickable
327327 v-for =" keyword in displayedKeywords"
328328 :key =" keyword"
329329 type =" button"
330330 :aria-pressed =" filters.keywords.includes(keyword)"
331- class =" tag text-xs transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
331+ class =" text-xs transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1"
332332 :class ="
333333 filters.keywords.includes(keyword) ? 'bg-fg text-bg border-fg hover:text-bg/70' : ''
334334 "
335335 @click =" emit('toggleKeyword', keyword)"
336336 >
337337 {{ keyword }}
338- </button >
338+ </TagClickable >
339339 <button
340340 v-if =" hasMoreKeywords"
341341 type =" button"
0 commit comments