0.4.50 • Published 8 months ago

@cdxker/trieve-search-component v0.4.50

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

Trieve Search Component

The easiest way to get up and running in your app using trieve search.

How to use

Install using your favorite package manager:

yarn add trieve-search-component
# or
npm install trieve-search-component
# or
pnpm install trieve-search-component

After installing the first step is to instantiate a new TrieveSDK like so:

import { TrieveSDK } from "trieve-ts-sdk";

export const trieve = new TrieveSDK({
  apiKey: "<your-api-key>",
  datasetId: "<dataset-to-use>",
});

And then you can use any of the two components in your React application or as web component:

Search Modal

light closed dark closed light open

Usage in React:

<TrieveModalSearch trieve={trieve} />

Usage in Web Components:

initModalSearch({
  trieve: new TrieveSDK({
    // your options
  })
})


<trieve-modal-search />

If you are using it in JSX environment you will need to add the trieve-modal-search to the JSX attributes, for solid that would be:

declare module "solid-js" {
  namespace JSX {
    interface IntrinsicElements {
      "trieve-modal-search": {};
      "trieve-search": {};
    }
  }
}

Props

NameTypeDefault
datasetIdstring''
apiKeystring''
baseUrlstring"https://api.trieve.ai"
type"docs""ecommerce"
useGroupSearchbooleanfalse
chatbooleantrue
analyticsbooleantrue
placeholderstring"Search..."
onResultClick() => void() => {}
theme"light" or "dark""light"
searchOptionsAutocompleteReqPayload{ search_type: "fulltext" }
openKeyCombination{ key?: string; label?: string; ctrl?: boolean }[]{ ctrl: true }, { key: "k", label: "K" }
tags{ tag: string; label?: string; selected? boolean; iconClassName?: string }[]{tag: "docs", label: "dev docs", iconClassName: "fa-solid fa-info"}
inlinebooleantrue
inlineHeaderstring""
initialAiMessagestring""
ButtonElJSX.ElementTypenull
suggestedQueriesbooleantrue
defaultSearchQueriesstring[][]
defaultAiQuestionsstring[][]
brandLogoImgSrcUrlstringnull
brandNamestringnull
brandColorstring#CB53EB
brandFontFamilystringMaven Pro
problemLinkstring (example: "help@trieve.ai?subject=")null
responsivebooleanfalse
floatingButtonPosition"top-left", "top-right", "bottom-left", or "bottom-right""bottom-right"
showFloatingButtonbooleanfalse
floatingSearchIconPosition"left" or "right""right"
showFloatingSearchIconbooleanfalse
showFloatingInputbooleanfalse
buttonTriggers{ selector: <"query-selector">, mode: "chat"}
hideopenButtonbooleanfalse
showResultHighlightsbooleantrue
initialAiMessagestring (example: "Hi! How can I help")null
ignoreEventListenersbooleanfalse
hideOverlaybooleanfalse

Search Results

light dark

Usage in React:

<TrieveSearch
  apiKey="<your trieve apiKey>"
  datasetId="<your trieve datasetId"
/>

Usage in Web Components:

<trieve-search
  apiKey="<your trieve apiKey>"
  datasetId="<your trieve datasetId"
/>

Usage with Vanilla JS

import "trieve-search-component/styles";
import { renderToDiv } from 'trieve-search-component/vanilla';

const root = document.getElementById('root');
renderToDiv(root, {
  apiKey: "<Your Trieve Api Key>"
  datasetId: "<Your Trieve Dataset Id>"
   // ... other props
})

License

MIT

Development Guide

Deploying to view search playground UI

The example/ folder shows the example application for what rendering this would look like

Run the example, search-component, css, javascript and watcher for demos page

$clients/search-component yarn all

or to run each individually

Start the listener to update the search-component's css and javascript

$clients/search-component yarn
$clients/search-component yarn dev

Run the example application

$clients/search-component cd example/
$clients/search-component yarn
$clients/search-component yarn dev

Viewing it on demos page

cd clients/search-component/
yarn all

Set environment variable in server/.env

SEARCH_COMPONENT_URL="http://localhost:8000"