From 593b43e4333543dcebe49e2db12484a6ce104b95 Mon Sep 17 00:00:00 2001 From: vcoppe Date: Sat, 17 Oct 2026 16:24:19 +0200 Subject: [PATCH] sticky folders --- .../collapsible-tree/CollapsibleTreeNode.svelte | 5 ++++- .../src/lib/components/explorer/Explorer.svelte | 7 ++++++- .../lib/components/explorer/ExplorerTree.svelte | 12 ++++++++++-- .../src/lib/components/explorer/sticky.test.ts | 17 +++++++++++++++++ website/src/lib/components/explorer/sticky.ts | 11 +++++++++++ 5 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 website/src/lib/components/explorer/sticky.test.ts create mode 100644 website/src/lib/components/explorer/sticky.ts diff --git a/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte b/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte index e24caffb9..ddd11dac6 100644 --- a/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte +++ b/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte @@ -10,6 +10,9 @@ id: string | number; class?: ClassValue; trigger: Snippet; + /** Classes and style of the trigger row (when the trigger holds the content), to make it stick. */ + triggerClass?: ClassValue; + triggerStyle?: string; /** Gets whether the node is open, for contents that are only worth building then. */ content: Snippet<[boolean]>; } = $props(); @@ -32,7 +35,7 @@ {#if slotInsideTrigger} - +