* Reapply "Fix/Retention help button bounds (#4253)" (#4258)

This reverts commit fb2e2bd37a.

* move div up slots instead of using condition

* Avoid tabbing

---------

Co-authored-by: Abdo <abdo@abdnh.net>
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
This commit is contained in:
Luc Mcgrady 2025-08-19 16:19:25 +01:00 committed by GitHub
parent e676e1a484
commit 562cef1f22
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 23 additions and 31 deletions

View file

@ -12,7 +12,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
export { className as class }; export { className as class };
export let title: string; export let title: string;
export let onTitleClick: ((_e: MouseEvent | KeyboardEvent) => void) | null = null;
</script> </script>
<div <div
@ -25,22 +24,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
style:--container-margin="0" style:--container-margin="0"
> >
<div class="position-relative"> <div class="position-relative">
{#if onTitleClick} <h1>
<span {title}
on:click={onTitleClick} </h1>
on:keydown={onTitleClick}
role="button"
tabindex="0"
>
<h1>
{title}
</h1>
</span>
{:else}
<h1>
{title}
</h1>
{/if}
<div class="help-badge position-absolute" class:rtl> <div class="help-badge position-absolute" class:rtl>
<slot name="tooltip" /> <slot name="tooltip" />
</div> </div>

View file

@ -8,7 +8,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
// When title is null (default), the graph is inlined, not having TitledContainer wrapper. // When title is null (default), the graph is inlined, not having TitledContainer wrapper.
export let title: string | null = null; export let title: string | null = null;
export let subtitle: string | null = null; export let subtitle: string | null = null;
export let onTitleClick: ((_e: MouseEvent | KeyboardEvent) => void) | null = null;
</script> </script>
{#if title == null} {#if title == null}
@ -19,8 +18,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
<slot /> <slot />
</div> </div>
{:else} {:else}
<TitledContainer class="d-flex flex-column" {title} {onTitleClick}> <TitledContainer class="d-flex flex-column" {title}>
<slot slot="tooltip" name="tooltip"></slot> <slot name="tooltip" slot="tooltip"></slot>
<div class="graph d-flex flex-grow-1 flex-column justify-content-center"> <div class="graph d-flex flex-grow-1 flex-column justify-content-center">
{#if subtitle} {#if subtitle}
<div class="subtitle">{subtitle}</div> <div class="subtitle">{subtitle}</div>

View file

@ -57,22 +57,29 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
const title = tr.statisticsTrueRetentionTitle(); const title = tr.statisticsTrueRetentionTitle();
const subtitle = tr.statisticsTrueRetentionSubtitle(); const subtitle = tr.statisticsTrueRetentionSubtitle();
const onTitleClick = () => { const onHelpClick = () => {
openHelpModal(Object.keys(retentionHelp).indexOf("trueRetention")); openHelpModal(Object.keys(retentionHelp).indexOf("trueRetention"));
}; };
</script> </script>
<Graph {title} {subtitle} {onTitleClick}> <Graph {title} {subtitle}>
<HelpModal <div
title={tr.statisticsTrueRetentionTitle()}
url={HelpPage.DeckOptions.fsrs}
slot="tooltip" slot="tooltip"
{helpSections} onclick={onHelpClick}
on:mount={(e) => { onkeydown={onHelpClick}
modal = e.detail.modal; role="button"
carousel = e.detail.carousel; tabindex="-1"
}} >
/> <HelpModal
title={tr.statisticsTrueRetentionTitle()}
url={HelpPage.DeckOptions.fsrs}
{helpSections}
on:mount={(e) => {
modal = e.detail.modal;
carousel = e.detail.carousel;
}}
/>
</div>
<InputBox> <InputBox>
<label> <label>
<input type="radio" bind:group={mode} value={DisplayMode.Young} /> <input type="radio" bind:group={mode} value={DisplayMode.Young} />