([]);
+
+export const getFirstPositionedChild = (el: HTMLElement): HTMLElement | undefined => {
+ if (!browser) {
+ return undefined;
+ }
+
+ const firstChild = el.firstElementChild as HTMLElement | null;
+
+ if (!firstChild) {
+ return undefined;
+ }
+
+ const style = window.getComputedStyle(firstChild);
+
+ if (style.display === 'none' || style.display === 'contents') {
+ return getFirstPositionedChild(firstChild);
+ }
+
+ return firstChild;
+};
diff --git a/svelte-app/src/components/experiments/toru.svelte b/svelte-app/src/components/experiments/toru.svelte
index e2d3492c..ea90945d 100644
--- a/svelte-app/src/components/experiments/toru.svelte
+++ b/svelte-app/src/components/experiments/toru.svelte
@@ -6,6 +6,7 @@
import Divider from '$components/divider.svelte';
import { initSync, stopSync } from '$components/experiments/toru';
import Hoverable from '$components/hoverable.svelte';
+ import Icon from '$components/icon.svelte';
import Link from '$components/link.svelte';
import Spinner from '$components/loading/spinner.svelte';
@@ -59,6 +60,19 @@
+
+
+
+
-
-
-
-
+ import { BASE_GIT_URL } from '$lib/consts';
import { APP_VERSION } from '$lib/env';
import { t } from '$lib/i18n';
@@ -62,7 +63,7 @@
{APP_VERSION.slice(0, 6)}
diff --git a/svelte-app/src/components/icon.svelte b/svelte-app/src/components/icon.svelte
index 0294aae7..3ee9ddfe 100644
--- a/svelte-app/src/components/icon.svelte
+++ b/svelte-app/src/components/icon.svelte
@@ -12,6 +12,7 @@
Check,
Copy,
Downasaur,
+ ExternalLink,
ForwardBurger,
GitBranch,
GitCommit,
@@ -34,6 +35,7 @@
check: Check,
copy: Copy,
downasaur: Downasaur,
+ 'external-link': ExternalLink,
'forward-burger': ForwardBurger,
'git-branch': GitBranch,
'git-commit': GitCommit,
diff --git a/svelte-app/src/components/link.svelte b/svelte-app/src/components/link.svelte
index 03946119..66e2e667 100644
--- a/svelte-app/src/components/link.svelte
+++ b/svelte-app/src/components/link.svelte
@@ -10,6 +10,7 @@
type = $$props.href ? 'a' : 'button';
export let tooltipDelay = 300,
+ tooltipText: string | undefined = undefined,
newtab = false;
$: link = $$props.href
@@ -21,7 +22,8 @@
50 ? `${link.slice(0, 50 - 3)}...` : link ?? $t('Visit')}
+ text={tooltipText ??
+ (link && link.length > 50 ? `${link.slice(0, 50 - 3)}...` : link ?? $t('Visit'))}
delay={tooltipDelay}
>
diff --git a/svelte-app/src/lib/icons/index.ts b/svelte-app/src/lib/icons/index.ts
index 28a31d02..8a9bcf65 100644
--- a/svelte-app/src/lib/icons/index.ts
+++ b/svelte-app/src/lib/icons/index.ts
@@ -8,6 +8,7 @@ export { default as BackBurger } from '$lib/icons/backburger.svelte';
export { default as Check } from '$lib/icons/check.svelte';
export { default as Copy } from '$lib/icons/copy.svelte';
export { default as Downasaur } from '$lib/icons/downasaur.svelte';
+export { default as ExternalLink } from '$lib/icons/external-link.svelte';
export { default as ForwardBurger } from '$lib/icons/forwardburger.svelte';
export { default as GitBranch } from '$lib/icons/git-branch.svelte';
export { default as GitCommit } from '$lib/icons/git-commit.svelte';