Configuration
Hosted configuration is the published field schema (and optional branding title) for an importer. The component fetches it with a publishable key. Spreadsheet files are not part of configuration and are never uploaded.
Local vs hosted
- Local: pass
fields(and optionalduplicateKey) as props. - Hosted: create an importer in the dashboard, edit a draft, publish a revision, then pass
importerId+ publishable key.
What the client loads
Published config includes importer id, name, revision number, fields, optional duplicateKey, and branding. The widget heading uses the branding title (or importer name). primaryColor sets the accent. Optional logoUrl renders beside the title when present in published config. When primaryColor is set, it writes --bsw-accent inline and overrides the theme accent.
Theme
Visual theme is a component prop, not a published configuration field. theme is "light" | "dark". Omit it and the shell stays the light cream default, with no data-theme attribute. v1 does not follow prefers-color-scheme or the system theme. theme="dark" sets data-theme="dark".
Hosts may set these CSS custom properties on the embed root (.bsw-importer): --bsw-bg, --bsw-panel, --bsw-fg, --bsw-muted, --bsw-line, --bsw-accent, --bsw-accent-fg, --bsw-radius. These overrides are the supported API. Do not fight .bsw-* classes. With theme="dark", target .bsw-importer[data-theme="dark"] so your values win over the dark defaults.
Related: Configuration revisions · Fields · Environments