From 20d58a856bffc494de37a785cff1859bdcfadfb8 Mon Sep 17 00:00:00 2001 From: BearToCode Date: Fri, 12 Apr 2024 16:34:34 +0200 Subject: [PATCH 01/21] docs: fix code background --- docs/src/lib/styles/markdown.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/lib/styles/markdown.scss b/docs/src/lib/styles/markdown.scss index 2e3c7cd..cef9e64 100644 --- a/docs/src/lib/styles/markdown.scss +++ b/docs/src/lib/styles/markdown.scss @@ -46,7 +46,8 @@ @apply rounded bg-neutral-800 px-1 text-neutral-50; } - .carta-renderer code { + .carta-editor code { font-family: 'Fira Code', monospace; + background: transparent; } } From 0cef0b94eddd3dee7405183addbfbc163a215347 Mon Sep 17 00:00:00 2001 From: BearToCode Date: Fri, 12 Apr 2024 20:14:11 +0200 Subject: [PATCH 02/21] docs: fix laggy header tracker --- .../header-tracker/HeaderTracker.svelte | 63 +++++++++++-------- docs/src/lib/utils.ts | 38 +++++++++++ docs/src/routes/+layout.svelte | 2 +- 3 files changed, 76 insertions(+), 27 deletions(-) diff --git a/docs/src/lib/components/header-tracker/HeaderTracker.svelte b/docs/src/lib/components/header-tracker/HeaderTracker.svelte index f5a6b1d..d584c97 100644 --- a/docs/src/lib/components/header-tracker/HeaderTracker.svelte +++ b/docs/src/lib/components/header-tracker/HeaderTracker.svelte @@ -1,5 +1,7 @@ - + { + throttledHighlightHeader(); + debouncedHighlightHeader(); // So it is called at the end of the scroll event + }} +/>
{#each headers as header, i} {@const margin = Number(header.tagName.split('')[1]) - 1} - {@const nextHeader = headers[i + 1]} - {#if header.children[0] instanceof HTMLAnchorElement && header.children[0].href} - {#key scrollY} + {#key selectedHeaderIndex} + {#if header.children[0] instanceof HTMLAnchorElement && header.children[0].href} {header.innerText} - {/key} - {/if} + {/if} + {/key} {/each}
diff --git a/docs/src/lib/utils.ts b/docs/src/lib/utils.ts index eba19d8..d2b288e 100644 --- a/docs/src/lib/utils.ts +++ b/docs/src/lib/utils.ts @@ -54,3 +54,41 @@ export const flyAndScale = ( easing: cubicOut }; }; + +export const throttle = ( + fn: (...args: A) => R, + delay: number +): [(...args: A) => R | undefined, () => void] => { + let wait = false; + let timeout: undefined | number; + let cancelled = false; + + return [ + (...args: A) => { + if (cancelled) return undefined; + if (wait) return undefined; + + const val = fn(...args); + + wait = true; + + timeout = window.setTimeout(() => { + wait = false; + }, delay); + + return val; + }, + () => { + cancelled = true; + clearTimeout(timeout); + } + ]; +}; + +export function debounce(cb: (...args: T) => unknown, wait = 1000) { + let timeout: NodeJS.Timeout; + return (...args: T) => { + clearTimeout(timeout); + timeout = setTimeout(() => cb(...args), wait); + }; +} diff --git a/docs/src/routes/+layout.svelte b/docs/src/routes/+layout.svelte index 9dddf88..723f83f 100644 --- a/docs/src/routes/+layout.svelte +++ b/docs/src/routes/+layout.svelte @@ -24,6 +24,6 @@