Skip to content
tcpsystemsui

Theme

Colour scheme
Accent
Density
Radius
Esc

SearchTrigger

Button that opens search, showing the shortcut.

beta

Try it

Svelte
<SearchTrigger label="Search deployments" />

Examples

Search.svelte
<script lang="ts">
	import SearchTrigger from '@tcpsystems/ui/foundation/SearchTrigger';
	import Stack from '@tcpsystems/ui/foundation/Stack';
	import Field from '@tcpsystems/ui/foundation/Field';
	import Input from '@tcpsystems/ui/foundation/Input';
	let searching = $state(false);
	let query = $state('');
</script>

<Stack>
	<SearchTrigger label="Search deployments" onclick={() => searching = !searching} aria-expanded={searching} />
	{#if searching}
		<Field label="Deployment name">
			{#snippet control(attrs)}<Input {...attrs} type="search" bind:value={query} />{/snippet}
		</Field>
		<p role="status">{query ? `Searching deployments for “${query}”` : 'Enter a deployment name'}</p>
	{/if}
</Stack>

Custom shortcut

Custom shortcut.svelte
<script lang="ts">
	import SearchTrigger from '@tcpsystems/ui/foundation/SearchTrigger';
	let searching = $state(false);
</script>

<SearchTrigger label="Search invoices" shortcut="⌘ K" onclick={() => searching = !searching} aria-expanded={searching} />
{#if searching}<p role="status">Invoice search opened</p>{/if}

No shortcut

No shortcut.svelte
<script lang="ts">
	import SearchTrigger from '@tcpsystems/ui/foundation/SearchTrigger';
</script>

<SearchTrigger label="Search" />

Disabled

Disabled.svelte
<script lang="ts">
	import SearchTrigger from '@tcpsystems/ui/foundation/SearchTrigger';
</script>

<SearchTrigger label="Search unavailable during reindexing" disabled />

Variant

Variant.svelte
<script lang="ts">
	import SearchTrigger from '@tcpsystems/ui/foundation/SearchTrigger';
</script>

<SearchTrigger label="Search" variant="secondary" shortcut="Cmd P" />

API

Import
import SearchTrigger from '@tcpsystems/ui/foundation/SearchTrigger';
PropTypeDefault
label?string'Search'
shortcut?string'Ctrl K'
HookKind
.tcp-search-triggerRoot class