Make tags and tag suggestions able to be styled by add-ons (#2941)

* Expose tag name to add-ons via data attribute

* Expose autocomplete items to add-ons as data attributes

* Use common data-addon* prefix for attributes
This commit is contained in:
Aristotelis 2024-01-18 01:09:06 +01:00 committed by GitHub
parent 7d37fe3daf
commit db9aaba929
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 14 additions and 1 deletions

View file

@ -5,6 +5,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
<script lang="ts">
export let selected = false;
export let active = false;
export let suggestion: string; // used by add-ons to target individual suggestions
let buttonRef: HTMLElement;
@ -24,6 +25,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
class="autocomplete-item"
class:selected
class:active
data-addon-suggestion={suggestion}
on:mousedown|preventDefault
on:mouseup
on:mouseenter

View file

@ -8,6 +8,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
let className: string = "";
export { className as class };
export let tagName: string; // used by add-ons to target individual tag elements
export let tooltip: string | undefined = undefined;
export let selected = false;
@ -32,6 +33,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
class:flashing
tabindex="-1"
title={tooltip}
data-addon-tag={tagName}
on:mousemove
on:click
>

View file

@ -69,7 +69,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
class:empty={name === ""}
>
{#if active}
<Tag class={className} on:mousemove={setControlShift} on:click={onClick}>
<Tag
class={className}
tagName={name}
on:mousemove={setControlShift}
on:click={onClick}
>
{name}
<slot {selectMode} {hoverClass} />
</Tag>
@ -77,6 +82,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
<WithTooltip {tooltip} trigger="hover" placement="top" let:createTooltip>
<Tag
class={className}
tagName={name}
bind:flash
bind:selected
on:mousemove={setControlShift}
@ -90,6 +96,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
{:else}
<Tag
class={className}
tagName={name}
bind:flash
bind:selected
on:mousemove={setControlShift}

View file

@ -143,6 +143,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
<AutocompleteItem
selected
{active}
{suggestion}
on:mousedown={() => setSelectedAndActive(index)}
on:mouseup={() => {
selectIndex(index);
@ -155,6 +156,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
</AutocompleteItem>
{:else}
<AutocompleteItem
{suggestion}
on:mousedown={() => setSelectedAndActive(index)}
on:mouseup={() => {
selectIndex(index);