Skip to main content

How configuration works

Starting with SDK v3.2, the <bonsai-search> component has two configuration sources:
  1. HTML attributes you set on the tag — the small set listed below. These are the only values the component reads from the DOM.
  2. Runtime configuration from the Settings API — theming (colors, layout, max width, alignment), default labels, default placeholder, default suggestions, and feature toggles (markdown, price rendering, autocomplete, etc.). These are fetched per-tenant by the component at load time from /rest/search-component-config/ using your api-key, and they are applied automatically.
Where theming lives now. Colors, borders, alignment, and width are not HTML attributes anymore. They are either returned by the Settings API (preferred — managed per tenant from the Bonsai dashboard) or overridden locally via CSS custom properties on the host element. See Advanced Styling for the full CSS variable list.

Precedence

For any given value, the component resolves in this order:
  1. HTML attribute on the tag (if set)
  2. Settings API response for this api-key (if provided)
  3. Built-in default
So you can leave the tag minimal (just api-key) and let the dashboard drive the rest, or override a specific value on the tag when you need to.

Attributes

The <bonsai-search> web component observes only the following attributes: Any other attribute (including legacy color attributes like brand-color, text-color, input-bg, etc.) is ignored. Use CSS custom properties or the Settings API instead.

Required Attributes

required
Your Bonsai API key. Required for the search component to function and to fetch runtime configuration from the Settings API.

API Configuration

required
The base URL for the Bonsai Search API. Required. The Settings API URL is derived from this value automatically.

User Experience

default:"Describe what you're looking for..."
The placeholder text displayed in the search input field. If omitted, the value from the Settings API is used; otherwise the built-in default.
default:"[]"
A JSON array of suggested search queries that appear below the search input. If omitted, the Settings API content.suggestions list is used.
The suggestions attribute must be a valid JSON array string. Use single quotes around the attribute value and double quotes for the array items.
default:"50"
The maximum number of search results to display.
default:"30000"
The request timeout in milliseconds.

Display Options

default:"false"
Boolean attribute that enables price display in search results. Presence of the attribute is sufficient to enable it.
default:"true"
Controls whether the price is displayed alongside the product title.
default:"false"
Boolean attribute that enables markdown rendering in AI summaries and content.
default:"light"
Color theme for the component. Options: light, dark, or auto (follows the user’s system preference).
default:"cover"
Sets the --bonsai-image-object-fit CSS variable. Options: cover or contain.
default:"false"
Boolean attribute — when present, product results are hidden and only the AI summary is shown. Useful for conversational integrations.

Results Section Labels

The heading text displayed above AI-recommended products.
default:"More Items"
The heading text displayed above additional results when AI recommendations are present.
default:"Items"
The heading text displayed above results when there are no AI recommendations.

Callbacks

Name of a globally-accessible function used to format prices before they are rendered. The function receives (result, price, parent) and must return the string to display.

Styling

All visual customization (colors, borders, alignment, max width, hover states) is done via either:
  • The Settings API — preferred. Configure per-tenant in the Bonsai dashboard; the component picks up the values automatically.
  • CSS custom properties on the host element — to override per-embed.
See Advanced Styling for the full list of CSS variables and override examples.