mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
Associate Switch labels with their respective switches
This commit is contained in:
parent
909502bb0a
commit
292ba665af
4 changed files with 25 additions and 8 deletions
|
@ -5,6 +5,9 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount, createEventDispatcher } from "svelte";
|
import { onMount, createEventDispatcher } from "svelte";
|
||||||
|
|
||||||
|
let forId: string;
|
||||||
|
export { forId as for };
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
let spanRef: HTMLSpanElement;
|
let spanRef: HTMLSpanElement;
|
||||||
|
@ -14,4 +17,4 @@
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<span bind:this={spanRef}><slot /></span>
|
<label bind:this={spanRef} for={forId}><slot /></label>
|
||||||
|
|
|
@ -3,12 +3,19 @@ Copyright: Ankitects Pty Ltd and contributors
|
||||||
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
-->
|
-->
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
export let id: string | undefined;
|
||||||
export let value: boolean;
|
export let value: boolean;
|
||||||
export let disabled = false;
|
export let disabled = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="form-check form-switch">
|
<div class="form-check form-switch">
|
||||||
<input class="form-check-input" type="checkbox" bind:checked={value} {disabled} />
|
<input
|
||||||
|
{id}
|
||||||
|
class="form-check-input"
|
||||||
|
type="checkbox"
|
||||||
|
bind:checked={value}
|
||||||
|
{disabled}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
|
@ -13,15 +13,18 @@
|
||||||
export let value: boolean;
|
export let value: boolean;
|
||||||
export let defaultValue: boolean;
|
export let defaultValue: boolean;
|
||||||
export let markdownTooltip: string | undefined = undefined;
|
export let markdownTooltip: string | undefined = undefined;
|
||||||
|
|
||||||
|
const id = Math.random().toString(36).substring(2);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Row>
|
<Row>
|
||||||
<Col>
|
<Col>
|
||||||
{#if markdownTooltip}<TooltipLabel {markdownTooltip}><slot /></TooltipLabel
|
{#if markdownTooltip}<TooltipLabel for={id} {markdownTooltip}
|
||||||
>{:else}<Label><slot /></Label>{/if}
|
><slot /></TooltipLabel
|
||||||
|
>{:else}<Label for={id}><slot /></Label>{/if}
|
||||||
</Col>
|
</Col>
|
||||||
<Col grow={false}>
|
<Col grow={false}>
|
||||||
<Switch bind:value />
|
<Switch {id} bind:value />
|
||||||
<RevertButton bind:value {defaultValue} />
|
<RevertButton bind:value {defaultValue} />
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
|
@ -10,12 +10,16 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
import Badge from "./Badge.svelte";
|
import Badge from "./Badge.svelte";
|
||||||
|
|
||||||
export let markdownTooltip: string;
|
export let markdownTooltip: string;
|
||||||
|
let forId: string;
|
||||||
|
export { forId as for };
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Label
|
<span
|
||||||
><slot /><WithTooltip tooltip={marked(markdownTooltip)} let:createTooltip
|
><Label for={forId}><slot /></Label><WithTooltip
|
||||||
|
tooltip={marked(markdownTooltip)}
|
||||||
|
let:createTooltip
|
||||||
><Badge on:mount={(event) => createTooltip(event.detail.span)}
|
><Badge on:mount={(event) => createTooltip(event.detail.span)}
|
||||||
>{@html infoCircle}</Badge
|
>{@html infoCircle}</Badge
|
||||||
></WithTooltip
|
></WithTooltip
|
||||||
></Label
|
></span
|
||||||
>
|
>
|
||||||
|
|
Loading…
Reference in a new issue