Nuxt Swiftsearch
Components

<AisSearchBox>

Query input widget for full-text search.

Usage

<AisInstantSearch :configuration="configuration">
  <AisSearchBox placeholder="Search products" />
</AisInstantSearch>

Props

PropTypeDefaultDescription
placeholderstring""Input placeholder text.
autofocusbooleanfalseFocus input on mount.
showLoadingIndicatorbooleantrueShows a loading indicator slot while searching.
shouldShowLoadingIndicatorbooleanfalseForces loading indicator visibility in custom scenarios.
ignoreCompositionEventsbooleanfalseUseful for IME behavior handling.
submitTitlestring"Submit the search query"Accessible title for submit action.
resetTitlestring"Clear the search query"Accessible title for reset action.
queryHookfunctionconnector defaultIntercepts query updates before refine.
modelValuestringconnector stateOptional controlled value.

Emits

  • update:modelValue
  • input
  • focus
  • blur
  • reset

Slots

SlotSlot propsDescription
default{ currentRefinement, isSearchStalled, refine }Full custom search input rendering.
loading-indicatornoneReplaces the default loading indicator icon.
submit-iconnoneReplaces the submit icon.
reset-iconnoneReplaces the reset icon.

End-to-end example

<AisSearchBox>
  <template #default="{ currentRefinement, isSearchStalled, refine }">
    <label>
      <span class="sr-only">Search</span>
      <input
        :value="currentRefinement"
        type="search"
        placeholder="Search products"
        @input="refine(($event.currentTarget as HTMLInputElement).value)"
      >
    </label>

    <p v-if="isSearchStalled">Searching...</p>
  </template>
</AisSearchBox>
Copyright © 2026