diff --git a/apps/mana/apps/web/src/lib/components/PickerOverlay.svelte b/apps/mana/apps/web/src/lib/components/PickerOverlay.svelte index fd0f60cf2..f0c306f85 100644 --- a/apps/mana/apps/web/src/lib/components/PickerOverlay.svelte +++ b/apps/mana/apps/web/src/lib/components/PickerOverlay.svelte @@ -20,6 +20,9 @@ items: TItem[]; onClose: () => void; item: Snippet<[TItem, number]>; + /** Optional snippet rendered between the header and the list + * (e.g. a search input). */ + subheader?: Snippet; /** Optional snippet rendered after the items (e.g. "create custom" button). */ footer?: Snippet; emptyLabel?: string; @@ -32,6 +35,7 @@ items, onClose, item, + subheader, footer, emptyLabel = 'Keine Einträge', width = '320px', @@ -45,6 +49,11 @@ + {#if subheader} +
+ {@render subheader()} +
+ {/if}
{#each items as entry, i} {#if i > 0}
{/if} @@ -116,6 +125,11 @@ color: hsl(var(--color-foreground)); } + .picker-subheader { + padding: 0 1rem 0.5rem; + flex-shrink: 0; + } + .picker-list { flex: 1; overflow-y: auto; diff --git a/apps/mana/apps/web/src/lib/components/workbench/AppPagePicker.svelte b/apps/mana/apps/web/src/lib/components/workbench/AppPagePicker.svelte index c252460a2..a22e7d4fb 100644 --- a/apps/mana/apps/web/src/lib/components/workbench/AppPagePicker.svelte +++ b/apps/mana/apps/web/src/lib/components/workbench/AppPagePicker.svelte @@ -3,6 +3,8 @@ --> + {#snippet subheader()} +
+ + +
+ {/snippet} {#snippet item(app)}