@searchcraft/react-sdk 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +154 -1
- package/dist/index.d.ts +22 -18
- package/dist/index.js +414 -345
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +3 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../core-sdk/dist/index.js","../src/components/providers/SearchcraftContext.tsx","../src/components/providers/SearchcraftProvider.tsx","../../../node_modules/classnames/index.js","../src/components/ui/components/Spinner/index.tsx","../src/components/ui/components/Button/index.tsx","../src/components/ui/components/ErrorMessage/index.tsx","../src/components/ui/components/InputCaption/index.tsx","../src/components/ui/assets/SearchIcons.jsx","../src/components/ui/components/InputIcon/index.tsx","../src/components/ui/assets/ClearInputIcon.jsx","../src/components/ui/components/ClearInputButton/index.tsx","../src/components/ui/components/Input/index.tsx","../src/components/ui/components/InputLabel/index.tsx","../src/components/ui/BaseSearchForm/index.tsx","../src/components/ui/AutoSearchForm/index.tsx","../src/components/ui/assets/ButtonIcons.jsx","../src/components/ui/BaseSearchResult/index.tsx"],"sourcesContent":["var h = Object.defineProperty;\nvar c = (e, t, s) => t in e ? h(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s;\nvar n = (e, t, s) => c(e, typeof t != \"symbol\" ? t + \"\" : t, s);\nclass l {\n constructor(t) {\n n(this, \"config\");\n n(this, \"searchResult\");\n /**\n * @param {string} query - User provided value Searchcraft will use to search against\n * @param {string} mode - Can be either 'fuzzy' or 'normal'\n * @returns {SearchResults} - Returns a `SearchResponse` object with the results from the search or throws an error\n */\n n(this, \"search\", async (t, s) => {\n try {\n this.config.setIsRequestingTrue();\n const i = `http://localhost:3000${this.config.endpointPath}`, r = {\n query: t,\n mode: s,\n app: this.config.index\n }, a = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `${this.config.apiKey}`\n },\n body: JSON.stringify(r)\n }, o = await (await fetch(i, a)).json();\n return this.searchResult = o.data, o;\n } catch (i) {\n return i;\n } finally {\n this.config.setIsRequestingFalse();\n }\n });\n if (!t.apiKey || !t.endpointPath || !t.index)\n throw new Error(\n \"API key, endpoint path, and index value(s) must be provided\"\n );\n this.config = t, this.searchResult = null;\n }\n}\nexport {\n l as CoreSDK\n};\n//# sourceMappingURL=index.js.map\n","import React from 'react';\n\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst defaultContext: SearchcraftProviderContext = {\n error: null,\n index: '',\n isRequesting: false,\n mode: 'fuzzy',\n query: '',\n setQuery: (query) => query,\n search: async () => null,\n};\n\nexport const SearchcraftContext =\n React.createContext<SearchcraftProviderContext>(defaultContext);\n","import { type PropsWithChildren, useContext, useMemo, useState } from 'react';\nimport { CoreSDK } from '@searchcraft-sdk/core';\n\nimport { SearchcraftContext } from './SearchcraftContext';\nimport type { SearchcraftProviderConfig } from './SearchcraftProviderConfig';\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst SearchcraftProvider = ({\n children,\n config,\n}: PropsWithChildren & SearchcraftProviderConfig) => {\n const core: CoreSDK = useMemo<CoreSDK>(\n () =>\n new CoreSDK({\n ...config,\n setIsRequestingFalse: () => setIsRequesting(false),\n setIsRequestingTrue: () => setIsRequesting(true),\n }),\n [config],\n );\n\n const [query, setQuery] = useState<string>('');\n const [isRequesting, setIsRequesting] = useState<boolean>(false);\n\n const providerContext: SearchcraftProviderContext = {\n error: null,\n index: core.config.index,\n isRequesting,\n mode: 'fuzzy',\n query,\n search: core.search,\n searchResult: core.searchResult,\n setQuery,\n };\n\n return (\n <SearchcraftContext.Provider value={providerContext}>\n {children}\n </SearchcraftContext.Provider>\n );\n};\n\nconst useSearchcraft = () =>\n useContext<SearchcraftProviderContext>(SearchcraftContext);\n\nexport { SearchcraftProvider, useSearchcraft };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import styles from '@styles/sc-spinner.module.scss';\n\nexport const SpinnerLight = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerLight} />\n </div>\n);\n\nexport const SpinnerDark = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerDark} />\n </div>\n);\n","import type { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { SpinnerDark } from '../Spinner';\n\nimport styles from '@styles/sc-button.module.scss';\n\ntype ButtonProps = {\n className?: string;\n isRequesting?: boolean;\n iconElement?: ReactNode;\n iconOnly?: boolean;\n iconPosition?: string;\n label?: string;\n onClick?: () => void;\n};\n\nexport const Button: FC<ButtonProps> = ({\n className,\n iconElement,\n iconOnly = false,\n iconPosition = 'left',\n isRequesting = false,\n label = 'Search',\n onClick,\n}) => {\n return (\n <>\n {iconOnly && (\n <button\n className={classNames(styles.button, className)}\n onClick={onClick}\n type='submit'\n >\n {isRequesting ? <SpinnerDark /> : iconElement}\n </button>\n )}\n {!iconOnly && (\n <button\n className={classNames(styles.button, className)}\n onClick={onClick}\n type='submit'\n >\n {iconPosition === 'left' && isRequesting ? (\n <div className={styles.spinnerMarginRight}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n <span\n className={classNames(\n isRequesting && styles.buttonLabel,\n className,\n )}\n >\n {label}\n </span>\n {iconPosition === 'right' && isRequesting ? (\n <div className={styles.spinnerMarginLeft}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n </button>\n )}\n </>\n );\n};\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-error-message.module.scss';\n\ntype ErrorMessageProps = {\n className?: string;\n errorMessage?: string;\n};\n\nexport const ErrorMessage: FC<ErrorMessageProps> = ({\n className,\n errorMessage,\n}) => {\n return (\n <p className={classNames(styles.errorMessage, className)}>\n {errorMessage || 'Search term is required.'}\n </p>\n );\n};\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-caption.module.scss';\n\ntype InputCaptionProps = {\n error?: boolean;\n inputCaptionClassName?: string;\n inputCaptionValue: string;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputCaption: FC<InputCaptionProps> = ({\n error = false,\n inputCaptionClassName,\n inputCaptionValue = 'Enter Search',\n rightToLeftOrientation = false,\n}) => {\n return rightToLeftOrientation ? (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorRTL : styles.inputCaptionRTL,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n ) : (\n <p\n className={classNames(\n error ? styles.inputCaptionError : styles.inputCaption,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n );\n};\n","export const SearchIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#404040'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const SearchIconError = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Error Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-input-icon.module.scss';\nimport { SearchIcon, SearchIconError } from '../../assets/SearchIcons';\n\ntype InputIconProps = {\n error?: boolean;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputIcon: FC<InputIconProps> = ({\n error = false,\n rightToLeftOrientation = false,\n}) => {\n return error ? (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIcon\n }\n >\n <SearchIconError />\n </div>\n ) : (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIcon\n }\n >\n <SearchIcon />\n </div>\n );\n};\n","export const ClearInputIcon = () => (\n <svg width='22' height='22' viewBox='0 0 22 22' fill='none'>\n <title>Searchcraft Clear Input Icon</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='black'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const ArrowRightIcon = () => (\n <svg width='20' height='21' viewBox='0 0 20 21' fill='none'>\n <title>Searchcraft Arrow Right Icon</title>\n <path\n d='M7.5 15.0444L12.5 10.0444L7.5 5.04443'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport { ClearInputIcon } from '../../assets/ClearInputIcon';\n\nimport { SpinnerLight } from '../Spinner';\n\nimport styles from '@styles/sc-clear-input-button.module.scss';\n\ntype ClearInputButtonProps = {\n isAutoSearch?: boolean;\n isRequesting?: boolean;\n onClearInput?: () => void;\n rightToLeftOrientation?: boolean;\n};\n\nexport const ClearInputButton: FC<ClearInputButtonProps> = ({\n isAutoSearch = false,\n isRequesting = false,\n onClearInput,\n rightToLeftOrientation = false,\n}) => {\n return rightToLeftOrientation ? (\n <button\n className={styles.inputClearButtonRTL}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n ) : (\n <button\n className={styles.inputClearButton}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n );\n};\n","import type { ChangeEventHandler, FC } from 'react';\nimport classNames from 'classnames';\n\nimport { InputCaption } from '../InputCaption';\nimport { InputIcon } from '../InputIcon';\nimport { ClearInputButton } from '../ClearInputButton';\n\nimport styles from '@styles/sc-input.module.scss';\n\ntype InputProps = {\n error?: boolean;\n formClassName?: string;\n inputCaptionClassName?: string;\n inputCaptionValue?: string;\n inputClassName?: string;\n isRequesting?: boolean;\n onClearInput?: () => void;\n onSearchInputChange: ChangeEventHandler<HTMLInputElement>;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n query: string;\n};\n\nexport const Input: FC<InputProps> = ({\n error = false,\n formClassName = '',\n inputCaptionClassName = '',\n inputClassName = '',\n inputCaptionValue = '',\n isRequesting = false,\n onClearInput,\n onSearchInputChange,\n placeholderValue = 'Enter Search',\n rightToLeftOrientation = false,\n query = '',\n}) => {\n const containerClassName = rightToLeftOrientation\n ? styles.inputContainerRTL\n : styles.inputContainer;\n return (\n <div className={classNames(containerClassName, formClassName)}>\n {rightToLeftOrientation ? (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorRTL : styles.inputRTL,\n inputClassName,\n )}\n id='sc-input'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n isRequesting={isRequesting}\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon\n error={error}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </>\n ) : (\n <>\n <input\n className={classNames(\n error ? styles.inputError : styles.input,\n inputClassName,\n )}\n id='sc-input'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n isRequesting={isRequesting}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon error={error} />\n </>\n )}\n </div>\n );\n};\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-label.module.scss';\n\ntype InputLabelProps = {\n className?: string;\n label: string;\n};\n\nexport const InputLabel: FC<InputLabelProps> = ({\n className,\n label = 'Enter Search',\n}) => {\n return (\n <label className={classNames(styles.label, className)} htmlFor='sc-input'>\n {label}\n </label>\n );\n};\n","import { useState, type FC } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport { Button } from '../components/Button';\nimport { ErrorMessage } from '../components/ErrorMessage';\nimport { Input } from '../components/Input';\nimport { InputLabel } from '../components/InputLabel';\n\ninterface BaseSearchFormProps {\n errorMessage?: string;\n handleSubmit: (query: string) => void;\n labelForInput?: string;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n}\n\n/**\n * * Form used to submit the search query using a provided search function.\n */\nexport const BaseSearchForm: FC<BaseSearchFormProps> = ({\n errorMessage,\n handleSubmit,\n labelForInput = 'Search',\n placeholderValue = 'Enter Search Term',\n rightToLeftOrientation = false,\n}) => {\n const { query, isRequesting, setQuery } = useSearchcraft();\n const [error, setError] = useState<boolean>(false);\n\n const handleFormSubmit = (e: { preventDefault: () => void }) => {\n e.preventDefault();\n if (query.trim() === '') {\n setError(true);\n } else {\n setError(false);\n handleSubmit(query);\n }\n };\n\n const handleSearchInputChange = (event: { target: { value: string } }) =>\n setQuery(event.target.value);\n\n const handleClearInput = () => setQuery('');\n\n return (\n <form\n className={rightToLeftOrientation ? styles.formRTL : styles.formLTR}\n onSubmit={handleFormSubmit}\n >\n <InputLabel label={labelForInput} />\n <div className={styles.searchContainer}>\n {rightToLeftOrientation && <Button isRequesting={isRequesting} />}\n <Input\n error={error}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n {!rightToLeftOrientation && <Button isRequesting={isRequesting} />}\n </div>\n {error && <ErrorMessage errorMessage={errorMessage} />}\n </form>\n );\n};\n","import { useState, type FC, useEffect, type ChangeEventHandler } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport { Input } from '../components/Input';\nimport { InputLabel } from '../components/InputLabel';\n\ninterface AutoSearchFormProps {\n handleSubmit: (query: string) => void;\n inputCaptionValue?: string;\n labelForInput?: string;\n onClearedInput?: () => void;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n}\n/**\n * * Buttonless form used to submit the search query with a timing configurable debounced function.\n */\nexport const AutoSearchForm: FC<AutoSearchFormProps> = ({\n handleSubmit,\n inputCaptionValue = '',\n labelForInput = 'Search',\n onClearedInput = () => {},\n placeholderValue = 'Search here',\n rightToLeftOrientation = false,\n}) => {\n const { isRequesting, query, setQuery } = useSearchcraft();\n const [canSearch, setCanSearch] = useState<boolean>(false);\n\n const handleSearchInputChange: ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n event.preventDefault();\n setQuery(event.currentTarget.value);\n if (query !== event.currentTarget.value) {\n setCanSearch(true);\n }\n };\n\n /**\n * * Exposes a callback for convenience when the input's value is cleared by the user\n */\n const handleClearInput = () => {\n setQuery('');\n onClearedInput();\n };\n\n /**\n * * Delay the submit function until the user is done typing to throttle API usage.\n */\n useEffect(() => {\n if (canSearch) {\n handleSubmit(query);\n setCanSearch(false);\n } else {\n return;\n }\n }, [canSearch, handleSubmit, query]);\n\n return (\n <form\n className={rightToLeftOrientation ? styles.formRTL : styles.formLTR}\n onSubmit={(e) => {\n e.preventDefault();\n }}\n >\n <InputLabel label={labelForInput} />\n <div className={styles.searchContainer}>\n <Input\n inputCaptionValue={inputCaptionValue}\n isRequesting={isRequesting}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </div>\n </form>\n );\n};\n","export const ButtonIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Button Icon</title>\n <path\n d='M2.725 5.79959L10 10.0079L17.275 5.79959M10 18.3996V9.99959M17.5 13.3329V6.66626C17.4997 6.37399 17.4225 6.08693 17.2763 5.8339C17.13 5.58086 16.9198 5.37073 16.6667 5.22459L10.8333 1.89126C10.58 1.74498 10.2926 1.66797 10 1.66797C9.70744 1.66797 9.42003 1.74498 9.16667 1.89126L3.33333 5.22459C3.08022 5.37073 2.86998 5.58086 2.72372 5.8339C2.57745 6.08693 2.5003 6.37399 2.5 6.66626V13.3329C2.5003 13.6252 2.57745 13.9123 2.72372 14.1653C2.86998 14.4183 3.08022 14.6285 3.33333 14.7746L9.16667 18.1079C9.42003 18.2542 9.70744 18.3312 10 18.3312C10.2926 18.3312 10.58 18.2542 10.8333 18.1079L16.6667 14.7746C16.9198 14.6285 17.13 14.4183 17.2763 14.1653C17.4225 13.9123 17.4997 13.6252 17.5 13.3329Z'\n stroke='white'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport { ButtonIcon } from '../assets/ButtonIcons';\n\nimport styles from '@styles/sc-search-result.module.scss';\nimport { ArrowRightIcon } from '../assets/ClearInputIcon';\n\ninterface BaseSearchResultProps {\n buttonCallbackFn?: () => void;\n buttonLabel?: string;\n imageAltText?: string;\n imageSrc?: string;\n interactiveResult?: boolean;\n callbackFn?: () => void;\n keyDownCallbackFn?: () => void;\n resultBodyContent?: string;\n resultHeading?: string;\n resultSubheading?: string;\n}\n\nexport const BaseSearchResult: FC<BaseSearchResultProps> = ({\n buttonCallbackFn = () => {},\n buttonLabel = '',\n callbackFn = () => {},\n keyDownCallbackFn = () => {},\n imageAltText = '',\n interactiveResult = false,\n imageSrc = '',\n resultBodyContent = '',\n resultHeading = '',\n resultSubheading = '',\n}) => {\n const buttonFn = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n buttonCallbackFn();\n };\n\n const callbackFunc = () => {\n if (interactiveResult) {\n callbackFn();\n } else {\n return;\n }\n };\n\n return (\n <div\n className={\n interactiveResult\n ? styles.interactiveResultContainer\n : styles.resultContainer\n }\n id='searchcraft-item'\n onClick={callbackFunc}\n onKeyDown={keyDownCallbackFn}\n >\n {interactiveResult && (\n <div className={styles.interactiveIconLarge}>\n <ArrowRightIcon />\n </div>\n )}\n <div className={styles.imageContainer}>\n <img alt={imageAltText} className={styles.image} src={imageSrc} />\n </div>\n <div className={styles.contentContainer}>\n <h2 className={styles.heading}>\n {resultHeading}{' '}\n {interactiveResult && (\n <div className={styles.interactiveIconSmall}>\n <ArrowRightIcon />\n </div>\n )}\n </h2>\n <h3 className={styles.subheading}>{resultSubheading}</h3>\n <p className={styles.bodyContent}>{resultBodyContent}</p>\n <button className={styles.button} onClick={buttonFn} type='button'>\n <ButtonIcon />\n <span>{buttonLabel}</span>\n </button>\n </div>\n </div>\n );\n};\n"],"names":["h","c","e","t","n","l","s","i","o","defaultContext","query","SearchcraftContext","React","SearchcraftProvider","children","config","core","useMemo","CoreSDK","setIsRequesting","setQuery","useState","isRequesting","providerContext","useSearchcraft","useContext","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","SpinnerLight","jsx","styles","SpinnerDark","Button","className","iconElement","iconOnly","iconPosition","label","onClick","jsxs","Fragment","ErrorMessage","errorMessage","InputCaption","error","inputCaptionClassName","inputCaptionValue","rightToLeftOrientation","SearchIcon","SearchIconError","InputIcon","ClearInputIcon","ArrowRightIcon","ClearInputButton","isAutoSearch","onClearInput","Input","formClassName","inputClassName","onSearchInputChange","placeholderValue","containerClassName","InputLabel","BaseSearchForm","handleSubmit","labelForInput","setError","handleFormSubmit","handleSearchInputChange","event","handleClearInput","AutoSearchForm","onClearedInput","canSearch","setCanSearch","useEffect","ButtonIcon","BaseSearchResult","buttonCallbackFn","buttonLabel","callbackFn","keyDownCallbackFn","imageAltText","interactiveResult","imageSrc","resultBodyContent","resultHeading","resultSubheading","buttonFn","callbackFunc"],"mappings":";;AAAA,IAAIA,IAAI,OAAO,gBACXC,IAAI,CAACC,GAAGC,GAAG,MAAMA,KAAKD,IAAIF,EAAEE,GAAGC,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAC,CAAE,IAAID,EAAEC,CAAC,IAAI,GACzGC,IAAI,CAACF,GAAGC,GAAG,MAAMF,EAAEC,GAAG,OAAOC,KAAK,WAAWA,IAAI,KAAKA,GAAG,CAAC;AAC9D,MAAME,EAAE;AAAA,EACN,YAAYF,GAAG;AA8Bb,QA7BAC,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,cAAc,GAMtBA,EAAE,MAAM,UAAU,OAAOD,GAAGG,MAAM;AAChC,UAAI;AACF,aAAK,OAAO;AACZ,cAAMC,IAAI,wBAAwB,KAAK,OAAO,YAAY,IAAI,IAAI;AAAA,UAChE,OAAOJ;AAAA,UACP,MAAMG;AAAA,UACN,KAAK,KAAK,OAAO;AAAA,QAClB,GAAE,IAAI;AAAA,UACL,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,gBAAgB;AAAA,YAChB,eAAe,GAAG,KAAK,OAAO,MAAM;AAAA,UACrC;AAAA,UACD,MAAM,KAAK,UAAU,CAAC;AAAA,QAChC,GAAWE,IAAI,OAAO,MAAM,MAAMD,GAAG,CAAC,GAAG;AACjC,eAAO,KAAK,eAAeC,EAAE,MAAMA;AAAA,MACpC,SAAQD,GAAG;AACV,eAAOA;AAAA,MACf,UAAgB;AACR,aAAK,OAAO;MACb;AAAA,IACP,CAAK,GACG,CAACJ,EAAE,UAAU,CAACA,EAAE,gBAAgB,CAACA,EAAE;AACrC,YAAM,IAAI;AAAA,QACR;AAAA,MACR;AACI,SAAK,SAASA,GAAG,KAAK,eAAe;AAAA,EACtC;AACH;ACpCA,MAAMM,IAA6C;AAAA,EACjD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,cAAc;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU,CAACC,MAAUA;AAAA,EACrB,QAAQ,YAAY;AACtB,GAEaC,IACXC,EAAM,cAA0CH,CAAc,GCR1DI,KAAsB,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,QAAAC;AACF,MAAqD;AACnD,QAAMC,IAAgBC;AAAA,IACpB,MACE,IAAIC,EAAQ;AAAA,MACV,GAAGH;AAAA,MACH,sBAAsB,MAAMI,EAAgB,EAAK;AAAA,MACjD,qBAAqB,MAAMA,EAAgB,EAAI;AAAA,IAAA,CAChD;AAAA,IACH,CAACJ,CAAM;AAAA,EAAA,GAGH,CAACL,GAAOU,CAAQ,IAAIC,EAAiB,EAAE,GACvC,CAACC,GAAcH,CAAe,IAAIE,EAAkB,EAAK,GAEzDE,IAA8C;AAAA,IAClD,OAAO;AAAA,IACP,OAAOP,EAAK,OAAO;AAAA,IACnB,cAAAM;AAAA,IACA,MAAM;AAAA,IACN,OAAAZ;AAAA,IACA,QAAQM,EAAK;AAAA,IACb,cAAcA,EAAK;AAAA,IACnB,UAAAI;AAAA,EAAA;AAGF,2BACGT,EAAmB,UAAnB,EAA4B,OAAOY,GACjC,UAAAT,EACH,CAAA;AAEJ,GAEMU,IAAiB,MACrBC,EAAuCd,CAAkB;;;;;;;;;;;;;;;ACpC3D,GAAC,WAAY;AAGZ,QAAIe,IAAS,CAAE,EAAC;AAEhB,aAASC,IAAc;AAGtB,eAFIC,IAAU,IAELrB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,YAAIsB,IAAM,UAAUtB,CAAC;AACrB,QAAIsB,MACHD,IAAUE,EAAYF,GAASG,EAAWF,CAAG,CAAC;AAAA,MAE/C;AAED,aAAOD;AAAA,IACP;AAED,aAASG,EAAYF,GAAK;AACzB,UAAI,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAC7C,eAAOA;AAGR,UAAI,OAAOA,KAAQ;AAClB,eAAO;AAGR,UAAI,MAAM,QAAQA,CAAG;AACpB,eAAOF,EAAW,MAAM,MAAME,CAAG;AAGlC,UAAIA,EAAI,aAAa,OAAO,UAAU,YAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe;AAClG,eAAOA,EAAI;AAGZ,UAAID,IAAU;AAEd,eAASI,KAAOH;AACf,QAAIH,EAAO,KAAKG,GAAKG,CAAG,KAAKH,EAAIG,CAAG,MACnCJ,IAAUE,EAAYF,GAASI,CAAG;AAIpC,aAAOJ;AAAA,IACP;AAED,aAASE,EAAaG,GAAOC,GAAU;AACtC,aAAKA,IAIDD,IACIA,IAAQ,MAAMC,IAGfD,IAAQC,IAPPD;AAAA,IAQR;AAED,IAAqCE,EAAO,WAC3CR,EAAW,UAAUA,GACrBQ,EAAA,UAAiBR,KAOjB,OAAO,aAAaA;AAAA,EAEtB;;;;;;;;GC1EaS,IAAe,MACzB,gBAAAC,EAAA,OAAA,EAAI,WAAWC,EAAO,kBACrB,UAAA,gBAAAD,EAAC,OAAI,EAAA,WAAWC,EAAO,aAAA,CAAc,EACvC,CAAA,GAGWC,IAAc,MACxB,gBAAAF,EAAA,OAAA,EAAI,WAAWC,EAAO,kBACrB,UAAA,gBAAAD,EAAC,OAAI,EAAA,WAAWC,EAAO,YAAa,CAAA,GACtC;;;;;;GCMWE,IAA0B,CAAC;AAAA,EACtC,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,cAAAtB,IAAe;AAAA,EACf,OAAAuB,IAAQ;AAAA,EACR,SAAAC;AACF,MAGO,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,EACCL,KAAA,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWV,EAAWW,EAAO,QAAQG,CAAS;AAAA,MAC9C,SAAAK;AAAA,MACA,MAAK;AAAA,MAEJ,UAAAxB,IAAgB,gBAAAe,EAAAE,GAAA,CAAA,CAAY,IAAKG;AAAA,IAAA;AAAA,EACpC;AAAA,EAED,CAACC,KACA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWpB,EAAWW,EAAO,QAAQG,CAAS;AAAA,MAC9C,SAAAK;AAAA,MACA,MAAK;AAAA,MAEJ,UAAA;AAAA,QAAiBF,MAAA,UAAUtB,IAC1B,gBAAAe,EAAC,OAAI,EAAA,WAAWC,EAAO,oBACrB,UAAA,gBAAAD,EAACE,GAAY,CAAA,CAAA,EAAA,CACf,IAEAG;AAAA,QAEF,gBAAAL;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWV;AAAA,cACTL,KAAgBgB,EAAO;AAAA,cACvBG;AAAA,YACF;AAAA,YAEC,UAAAI;AAAA,UAAA;AAAA,QACH;AAAA,QACCD,MAAiB,WAAWtB,IAC1B,gBAAAe,EAAA,OAAA,EAAI,WAAWC,EAAO,mBACrB,UAAA,gBAAAD,EAACE,GAAY,CAAA,CAAA,EAAA,CACf,IAEAG;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ,EAAA,CAAA;;GCzDSO,KAAsC,CAAC;AAAA,EAClD,WAAAR;AAAA,EACA,cAAAS;AACF,MAEI,gBAAAb,EAAC,OAAE,WAAWV,EAAWW,GAAO,cAAcG,CAAS,GACpD,UAAAS,KAAgB,2BACnB,CAAA;;;;;GCLSC,IAAsC,CAAC;AAAA,EAClD,OAAAC,IAAQ;AAAA,EACR,uBAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,wBAAAC,IAAyB;AAC3B,MACSA,IACL,gBAAAlB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWV;AAAA,MACTyB,IAAQd,EAAO,uBAAuBA,EAAO;AAAA,MAC7Ce;AAAA,IACF;AAAA,IAEC,UAAAC;AAAA,EAAA;AAAA,IAGH,gBAAAjB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWV;AAAA,MACTyB,IAAQd,EAAO,oBAAoBA,EAAO;AAAA,MAC1Ce;AAAA,IACF;AAAA,IAEC,UAAAC;AAAA,EAAA;AAAA;;;GClCME,KAAa,MACxB,gBAAAT,EAAC,OAAI,EAAA,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,EAAA,gBAAAV,EAAC,WAAM,UAAuB,0BAAA,CAAA;AAAA,EAC9B,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,IAAA;AAAA,EACjB;AAAA,EACF,CAAA,GAGWoB,KAAkB,MAC7B,gBAAAV,EAAC,OAAI,EAAA,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,EAAA,gBAAAV,EAAC,WAAM,UAA6B,gCAAA,CAAA;AAAA,EACpC,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,IAAA;AAAA,EACjB;AAAA,GACF,GCbWqB,IAAgC,CAAC;AAAA,EAC5C,OAAAN,IAAQ;AAAA,EACR,wBAAAG,IAAyB;AAC3B,MACSH,IACL,gBAAAf;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WACEkB,IAAyBjB,EAAO,eAAeA,EAAO;AAAA,IAGxD,4BAACmB,IAAgB,EAAA;AAAA,EAAA;AAAA,IAGnB,gBAAApB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WACEkB,IAAyBjB,EAAO,eAAeA,EAAO;AAAA,IAGxD,4BAACkB,IAAW,EAAA;AAAA,EAAA;AAAA,GC5BLG,IAAiB,MAC5B,gBAAAZ,EAAC,OAAI,EAAA,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,EAAA,gBAAAV,EAAC,WAAM,UAA4B,+BAAA,CAAA;AAAA,EACnC,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,IAAA;AAAA,EACjB;AAAA,EACF,CAAA,GAGWuB,IAAiB,MAC5B,gBAAAb,EAAC,OAAI,EAAA,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,EAAA,gBAAAV,EAAC,WAAM,UAA4B,+BAAA,CAAA;AAAA,EACnC,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,IAAA;AAAA,EACjB;AAAA,GACF;;;GCRWwB,IAA8C,CAAC;AAAA,EAC1D,cAAAC,IAAe;AAAA,EACf,cAAAxC,IAAe;AAAA,EACf,cAAAyC;AAAA,EACA,wBAAAR,IAAyB;AAC3B,MACSA,IACL,gBAAAlB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC,EAAO;AAAA,IAClB,SAASyB;AAAA,IACT,MAAK;AAAA,IAEJ,UAAezC,IAAA,gBAAAe,EAACD,GAAa,CAAA,CAAA,sBAAMuB,GAAe,EAAA;AAAA,EAAA;AAAA,IAGrD,gBAAAtB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC,EAAO;AAAA,IAClB,SAASyB;AAAA,IACT,MAAK;AAAA,IAEJ,UAAezC,IAAA,gBAAAe,EAACD,GAAa,CAAA,CAAA,sBAAMuB,GAAe,EAAA;AAAA,EAAA;AAAA;;;;;;;GCZ5CK,IAAwB,CAAC;AAAA,EACpC,OAAAZ,IAAQ;AAAA,EACR,eAAAa,IAAgB;AAAA,EAChB,uBAAAZ,IAAwB;AAAA,EACxB,gBAAAa,IAAiB;AAAA,EACjB,mBAAAZ,IAAoB;AAAA,EACpB,cAAAhC,IAAe;AAAA,EACf,cAAAyC;AAAA,EACA,qBAAAI;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,wBAAAb,IAAyB;AAAA,EACzB,OAAA7C,IAAQ;AACV,MAAM;AACJ,QAAM2D,IAAqBd,IACvBjB,EAAO,oBACPA,EAAO;AAET,SAAA,gBAAAD,EAAC,SAAI,WAAWV,EAAW0C,GAAoBJ,CAAa,GACzD,cAEG,gBAAAlB,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAX;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWV;AAAA,UACTyB,IAAQd,EAAO,gBAAgBA,EAAO;AAAA,UACtC4B;AAAA,QACF;AAAA,QACA,IAAG;AAAA,QACH,UAAUC;AAAA,QACV,aAAaC;AAAA,QACb,MAAK;AAAA,QACL,OAAO1D;AAAA,MAAA;AAAA,IACT;AAAA,IACC4C,KACC,gBAAAjB;AAAA,MAACc;AAAA,MAAA;AAAA,QACC,uBAAAE;AAAA,QACA,mBAAAC;AAAA,QACA,wBAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IAED7C,EAAM,SAAS,KACd,gBAAA2B;AAAA,MAACwB;AAAA,MAAA;AAAA,QACC,cAAAvC;AAAA,QACA,cAAAyC;AAAA,QACA,wBAAAR;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,gBAAAlB;AAAA,MAACqB;AAAA,MAAA;AAAA,QACC,OAAAN;AAAA,QACA,wBAAAG;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,EAAA,CACF,IAGE,gBAAAR,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAX;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWV;AAAA,UACTyB,IAAQd,EAAO,aAAaA,EAAO;AAAA,UACnC4B;AAAA,QACF;AAAA,QACA,IAAG;AAAA,QACH,UAAUC;AAAA,QACV,aAAaC;AAAA,QACb,MAAK;AAAA,QACL,OAAO1D;AAAA,MAAA;AAAA,IACT;AAAA,IACC4C,KACC,gBAAAjB;AAAA,MAACc;AAAA,MAAA;AAAA,QACC,uBAAAE;AAAA,QACA,mBAAAC;AAAA,QACA,wBAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IAED7C,EAAM,SAAS,KACd,gBAAA2B;AAAA,MAACwB;AAAA,MAAA;AAAA,QACC,cAAAE;AAAA,QACA,cAAAzC;AAAA,QACA,wBAAAiC;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,gBAAAlB,EAACqB,KAAU,OAAAN,GAAc;AAAA,EAAA,EAC3B,CAAA,EAEJ,CAAA;AAEJ;;GC/FakB,IAAkC,CAAC;AAAA,EAC9C,WAAA7B;AAAA,EACA,OAAAI,IAAQ;AACV,MAEI,gBAAAR,EAAC,SAAM,EAAA,WAAWV,EAAWW,GAAO,OAAOG,CAAS,GAAG,SAAQ,YAC5D,UACHI,EAAA,CAAA,GCIS0B,KAA0C,CAAC;AAAA,EACtD,cAAArB;AAAA,EACA,cAAAsB;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,kBAAAL,IAAmB;AAAA,EACnB,wBAAAb,IAAyB;AAC3B,MAAM;AACJ,QAAM,EAAE,OAAA7C,GAAO,cAAAY,GAAc,UAAAF,MAAaI,EAAe,GACnD,CAAC4B,GAAOsB,CAAQ,IAAIrD,EAAkB,EAAK,GAE3CsD,IAAmB,CAACzE,MAAsC;AAC9D,IAAAA,EAAE,eAAe,GACbQ,EAAM,KAAK,MAAM,KACnBgE,EAAS,EAAI,KAEbA,EAAS,EAAK,GACdF,EAAa9D,CAAK;AAAA,EACpB,GAGIkE,IAA0B,CAACC,MAC/BzD,EAASyD,EAAM,OAAO,KAAK,GAEvBC,IAAmB,MAAM1D,EAAS,EAAE;AAGxC,SAAA,gBAAA2B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWQ,IAAyBjB,EAAO,UAAUA,EAAO;AAAA,MAC5D,UAAUqC;AAAA,MAEV,UAAA;AAAA,QAAC,gBAAAtC,EAAAiC,GAAA,EAAW,OAAOG,EAAe,CAAA;AAAA,QACjC,gBAAA1B,EAAA,OAAA,EAAI,WAAWT,EAAO,iBACpB,UAAA;AAAA,UAA0BiB,KAAA,gBAAAlB,EAACG,KAAO,cAAAlB,EAA4B,CAAA;AAAA,UAC/D,gBAAAe;AAAA,YAAC2B;AAAA,YAAA;AAAA,cACC,OAAAZ;AAAA,cACA,cAAc0B;AAAA,cACd,qBAAqBF;AAAA,cACrB,kBAAAR;AAAA,cACA,OAAA1D;AAAA,cACA,wBAAA6C;AAAA,YAAA;AAAA,UACF;AAAA,UACC,CAACA,KAA2B,gBAAAlB,EAAAG,GAAA,EAAO,cAAAlB,EAA4B,CAAA;AAAA,QAAA,GAClE;AAAA,QACC8B,KAAU,gBAAAf,EAAAY,IAAA,EAAa,cAAAC,EAA4B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1D,GChDa6B,KAA0C,CAAC;AAAA,EACtD,cAAAP;AAAA,EACA,mBAAAlB,IAAoB;AAAA,EACpB,eAAAmB,IAAgB;AAAA,EAChB,gBAAAO,IAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,kBAAAZ,IAAmB;AAAA,EACnB,wBAAAb,IAAyB;AAC3B,MAAM;AACJ,QAAM,EAAE,cAAAjC,GAAc,OAAAZ,GAAO,UAAAU,MAAaI,EAAe,GACnD,CAACyD,GAAWC,CAAY,IAAI7D,EAAkB,EAAK,GAEnDuD,IAAgE,CACpEC,MACG;AACH,IAAAA,EAAM,eAAe,GACZzD,EAAAyD,EAAM,cAAc,KAAK,GAC9BnE,MAAUmE,EAAM,cAAc,SAChCK,EAAa,EAAI;AAAA,EACnB,GAMIJ,IAAmB,MAAM;AAC7B,IAAA1D,EAAS,EAAE,GACI4D;EAAA;AAMjB,SAAAG,EAAU,MAAM;AACd,QAAIF;AACF,MAAAT,EAAa9D,CAAK,GAClBwE,EAAa,EAAK;AAAA;AAElB;AAAA,EAED,GAAA,CAACD,GAAWT,GAAc9D,CAAK,CAAC,GAGjC,gBAAAqC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWQ,IAAyBjB,EAAO,UAAUA,EAAO;AAAA,MAC5D,UAAU,CAACpC,MAAM;AACf,QAAAA,EAAE,eAAe;AAAA,MACnB;AAAA,MAEA,UAAA;AAAA,QAAC,gBAAAmC,EAAAiC,GAAA,EAAW,OAAOG,EAAe,CAAA;AAAA,QACjC,gBAAApC,EAAA,OAAA,EAAI,WAAWC,EAAO,iBACrB,UAAA,gBAAAD;AAAA,UAAC2B;AAAA,UAAA;AAAA,YACC,mBAAAV;AAAA,YACA,cAAAhC;AAAA,YACA,cAAcwD;AAAA,YACd,qBAAqBF;AAAA,YACrB,kBAAAR;AAAA,YACA,OAAA1D;AAAA,YACA,wBAAA6C;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GCjFa6B,KAAa,MACxB,gBAAArC,EAAC,OAAI,EAAA,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,EAAA,gBAAAV,EAAC,WAAM,UAAuB,0BAAA,CAAA;AAAA,EAC9B,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,IAAA;AAAA,EACjB;AAAA,GACF;;;;;;;;;;;;GCUWgD,KAA8C,CAAC;AAAA,EAC1D,kBAAAC,IAAmB,MAAM;AAAA,EAAC;AAAA,EAC1B,aAAAC,IAAc;AAAA,EACd,YAAAC,IAAa,MAAM;AAAA,EAAC;AAAA,EACpB,mBAAAC,IAAoB,MAAM;AAAA,EAAC;AAAA,EAC3B,cAAAC,IAAe;AAAA,EACf,mBAAAC,IAAoB;AAAA,EACpB,UAAAC,IAAW;AAAA,EACX,mBAAAC,IAAoB;AAAA,EACpB,eAAAC,IAAgB;AAAA,EAChB,kBAAAC,IAAmB;AACrB,MAAM;AACE,QAAAC,IAAW,CAACnB,MAA2C;AAC3D,IAAAA,EAAM,gBAAgB,GACLS;EAAA,GAGbW,IAAe,MAAM;AACzB,QAAIN;AACS,MAAAH;;AAEX;AAAA,EACF;AAIA,SAAA,gBAAAzC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WACE4C,IACIrD,EAAO,6BACPA,EAAO;AAAA,MAEb,IAAG;AAAA,MACH,SAAS2D;AAAA,MACT,WAAWR;AAAA,MAEV,UAAA;AAAA,QAAAE,uBACE,OAAI,EAAA,WAAWrD,EAAO,sBACrB,UAAA,gBAAAD,EAACuB,KAAe,EAClB,CAAA;AAAA,QAED,gBAAAvB,EAAA,OAAA,EAAI,WAAWC,EAAO,gBACrB,UAAC,gBAAAD,EAAA,OAAA,EAAI,KAAKqD,GAAc,WAAWpD,EAAO,OAAO,KAAKsD,EAAU,CAAA,GAClE;AAAA,QACC,gBAAA7C,EAAA,OAAA,EAAI,WAAWT,EAAO,kBACrB,UAAA;AAAA,UAAC,gBAAAS,EAAA,MAAA,EAAG,WAAWT,EAAO,SACnB,UAAA;AAAA,YAAAwD;AAAA,YAAe;AAAA,YACfH,uBACE,OAAI,EAAA,WAAWrD,EAAO,sBACrB,UAAA,gBAAAD,EAACuB,KAAe,EAClB,CAAA;AAAA,UAAA,GAEJ;AAAA,UACC,gBAAAvB,EAAA,MAAA,EAAG,WAAWC,EAAO,YAAa,UAAiByD,GAAA;AAAA,UACnD,gBAAA1D,EAAA,KAAA,EAAE,WAAWC,EAAO,aAAc,UAAkBuD,GAAA;AAAA,UACrD,gBAAA9C,EAAC,YAAO,WAAWT,EAAO,QAAQ,SAAS0D,GAAU,MAAK,UACxD,UAAA;AAAA,YAAA,gBAAA3D,EAAC+C,IAAW,EAAA;AAAA,YACZ,gBAAA/C,EAAC,UAAM,UAAYkD,EAAA,CAAA;AAAA,UAAA,GACrB;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;","x_google_ignoreList":[3]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../core-sdk/dist/index.js","../src/components/providers/SearchcraftContext.tsx","../src/components/providers/SearchcraftProvider.tsx","../../../node_modules/classnames/index.js","../src/components/ui/components/Spinner/index.tsx","../src/components/ui/components/Button/index.tsx","../src/components/ui/components/ErrorMessage/index.tsx","../src/components/ui/assets/ClearInputIcon.jsx","../src/components/ui/components/ClearInputButton/index.tsx","../src/components/ui/components/InputCaption/index.tsx","../src/components/ui/assets/SearchIcons.jsx","../src/components/ui/components/InputIcon/index.tsx","../src/components/ui/components/Input/index.tsx","../src/components/ui/components/InputLabel/index.tsx","../src/components/ui/BaseSearchForm/index.tsx","../src/components/ui/AutoSearchForm/index.tsx","../src/components/ui/assets/ButtonIcons.jsx","../src/components/ui/BaseSearchResult/index.tsx","../src/components/ui/BaseSearchResults/index.tsx"],"sourcesContent":["var c = Object.defineProperty;\nvar d = (n, e, t) => e in n ? c(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar o = (n, e, t) => d(n, typeof e != \"symbol\" ? e + \"\" : e, t);\nclass p {\n constructor(e) {\n o(this, \"config\");\n /**\n * @param {string} query - User provided value Searchcraft will use to search against\n * @param {string} mode - Can be either 'fuzzy' or 'normal'\n * @returns {SearchResult} - Returns a `SearchResponse` object with the results from the search or throws an error\n */\n o(this, \"search\", async (e) => {\n try {\n const t = this.config.index.join(\",\"), i = `${this.config.endpointURL}/index/${t}/search`, r = {\n query: e.query,\n mode: e.mode,\n app: this.config.index\n }, s = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: this.config.apiKey ? `${this.config.apiKey}` : \"\"\n },\n body: JSON.stringify(r)\n };\n return await (await fetch(i, s)).json();\n } catch (t) {\n return t;\n }\n });\n if (!e.endpointURL || !e.index)\n throw new Error(\"Endpoint URL and Index value(s) must be provided\");\n this.config = e;\n }\n}\nexport {\n p as CoreSDK\n};\n//# sourceMappingURL=index.js.map\n","import React from 'react';\n\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst defaultContext: SearchcraftProviderContext = {\n error: null,\n index: [''],\n isRequesting: false,\n mode: 'fuzzy',\n query: '',\n setQuery: (query) => query,\n search: async () => null,\n};\n\nexport const SearchcraftContext =\n React.createContext<SearchcraftProviderContext>(defaultContext);\n","import { type PropsWithChildren, useContext, useState } from 'react';\nimport type {\n SearchcraftInstance,\n SearchError,\n SearchResult,\n} from '@searchcraft/core';\nimport { CoreSDK as Searchcraft } from '@searchcraft/core';\n\nimport { SearchcraftContext } from './SearchcraftContext';\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst SearchcraftProvider = ({\n children,\n searchcraft,\n}: PropsWithChildren & SearchcraftInstance) => {\n const [query, setQuery] = useState<string>('');\n const [isRequesting, setIsRequesting] = useState<boolean>(false);\n const [searchResults, setSearchResults] = useState<\n SearchResult | SearchError | null\n >(null);\n\n const search = async () => {\n setIsRequesting(true);\n const results = await searchcraft.search({ query, mode: 'fuzzy' });\n setSearchResults(results);\n setIsRequesting(false);\n };\n\n const providerContext: SearchcraftProviderContext = {\n error: null,\n index: searchcraft.config.index,\n isRequesting,\n mode: 'fuzzy',\n query,\n search,\n searchResults,\n setQuery,\n };\n\n return (\n <SearchcraftContext.Provider value={providerContext}>\n {children}\n </SearchcraftContext.Provider>\n );\n};\n\nconst useSearchcraft = () =>\n useContext<SearchcraftProviderContext>(SearchcraftContext);\n\nexport { SearchcraftProvider, useSearchcraft, Searchcraft };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import styles from '@styles/sc-spinner.module.scss';\n\nexport const SpinnerLight = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerLight} />\n </div>\n);\n\nexport const SpinnerDark = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerDark} />\n </div>\n);\n","import type { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-button.module.scss';\n\nimport { SpinnerDark } from '../Spinner';\n\nexport type ButtonProps = {\n className?: string;\n iconElement?: ReactNode;\n iconOnly?: boolean;\n iconPosition?: string;\n label?: string;\n onClick?: () => void;\n};\n\nconst Button: FC<ButtonProps> = ({\n className,\n iconElement,\n iconOnly = false,\n iconPosition = 'left',\n label = 'Search',\n onClick,\n}) => {\n const { isRequesting } = useSearchcraft();\n return (\n <>\n {iconOnly && (\n <button\n className={classNames(\n styles.button,\n className,\n '.searchcraft-button',\n )}\n onClick={onClick}\n type='submit'\n >\n {isRequesting ? <SpinnerDark /> : iconElement}\n </button>\n )}\n {!iconOnly && (\n <button\n className={classNames(\n styles.button,\n className,\n '.searchcraft-button',\n )}\n onClick={onClick}\n type='submit'\n >\n {iconPosition === 'left' && isRequesting ? (\n <div className={styles.spinnerMarginRight}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n <span\n className={classNames(\n isRequesting && styles.buttonLabel,\n className,\n '.searchcraft-button-label',\n )}\n >\n {label}\n </span>\n {iconPosition === 'right' && isRequesting ? (\n <div className={styles.spinnerMarginLeft}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n </button>\n )}\n </>\n );\n};\n\nexport default Button;\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-error-message.module.scss';\n\nexport type ErrorMessageProps = {\n className?: string;\n errorMessage?: string;\n};\n\nconst ErrorMessage: FC<ErrorMessageProps> = ({ className, errorMessage }) => {\n return (\n <p className={classNames(styles.errorMessage, className)}>\n {errorMessage || 'Search term is required.'}\n </p>\n );\n};\n\nexport default ErrorMessage;\n","export const ClearInputIcon = () => (\n <svg width='22' height='22' viewBox='0 0 22 22' fill='none'>\n <title>Searchcraft Clear Input Icon</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='black'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const ArrowRightIcon = () => (\n <svg width='20' height='21' viewBox='0 0 20 21' fill='none'>\n <title>Searchcraft Arrow Right Icon</title>\n <path\n d='M7.5 15.0444L12.5 10.0444L7.5 5.04443'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-clear-input-button.module.scss';\n\nimport { ClearInputIcon } from '../../assets/ClearInputIcon';\nimport { SpinnerLight } from '../Spinner';\n\nexport type ClearInputButtonProps = {\n onClearInput?: () => void;\n rightToLeftOrientation?: boolean;\n};\n\nexport const ClearInputButton: FC<ClearInputButtonProps> = ({\n onClearInput,\n rightToLeftOrientation = false,\n}) => {\n const { isRequesting } = useSearchcraft();\n return rightToLeftOrientation ? (\n <button\n className={classNames(\n styles.inputClearButtonRTL,\n '.sc-clear-input-button-rtl',\n )}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n ) : (\n <button\n className={classNames(\n styles.inputClearButtonLTR,\n '.sc-clear-input-button-ltr',\n )}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n );\n};\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-caption.module.scss';\n\nexport type InputCaptionProps = {\n error?: boolean;\n inputCaptionClassName?: string;\n inputCaptionValue: string;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputCaption: FC<InputCaptionProps> = ({\n error = false,\n inputCaptionClassName,\n inputCaptionValue = 'Enter Search',\n rightToLeftOrientation = false,\n}) => {\n return rightToLeftOrientation ? (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorRTL : styles.inputCaptionRTL,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n ) : (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorLTR : styles.inputCaptionLTR,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n );\n};\n","export const SearchIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#404040'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const SearchIconError = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Error Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-input-icon.module.scss';\nimport { SearchIcon, SearchIconError } from '../../assets/SearchIcons';\n\nexport type InputIconProps = {\n error?: boolean;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputIcon: FC<InputIconProps> = ({\n error = false,\n rightToLeftOrientation = false,\n}) => {\n return error ? (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIconLTR\n }\n >\n <SearchIconError />\n </div>\n ) : (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIconLTR\n }\n >\n <SearchIcon />\n </div>\n );\n};\n","import type { ChangeEventHandler, FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input.module.scss';\n\nimport { ClearInputButton } from '../ClearInputButton';\nimport { InputCaption } from '../InputCaption';\nimport { InputIcon } from '../InputIcon';\n\nexport type InputProps = {\n error?: boolean;\n formClassName?: string;\n inputCaptionClassName?: string;\n inputCaptionValue?: string;\n inputClassName?: string;\n onClearInput?: () => void;\n onSearchInputChange: ChangeEventHandler<HTMLInputElement>;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n query: string;\n};\n\nconst Input: FC<InputProps> = ({\n error = false,\n formClassName = '',\n inputCaptionClassName = '',\n inputClassName = '',\n inputCaptionValue = '',\n onClearInput,\n onSearchInputChange,\n placeholderValue = 'Enter Search',\n rightToLeftOrientation = false,\n query = '',\n}) => {\n const containerClassName = rightToLeftOrientation\n ? styles.inputContainerRTL\n : styles.inputContainerLTR;\n return (\n <div\n className={classNames(\n containerClassName,\n formClassName,\n 'searchcraft-input-form',\n )}\n >\n {rightToLeftOrientation ? (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorRTL : styles.inputRTL,\n inputClassName,\n 'searchcraft-input',\n )}\n id='searchcraft-input-id'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon\n error={error}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </>\n ) : (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorLTR : styles.inputLTR,\n inputClassName,\n 'searchcraft-input',\n )}\n id='searchcraft-input-id'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon error={error} />\n </>\n )}\n </div>\n );\n};\n\nexport default Input;\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-label.module.scss';\n\nexport type InputLabelProps = {\n className?: string;\n label: string;\n};\n\nconst InputLabel: FC<InputLabelProps> = ({\n className,\n label = 'Enter Search',\n}) => {\n return (\n <label\n className={classNames(styles.label, className)}\n htmlFor='searchcraft-input-id'\n >\n {label}\n </label>\n );\n};\n\nexport default InputLabel;\n","import { useState, type FC } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport Button from '../components/Button';\nimport ErrorMessage from '../components/ErrorMessage';\nimport Input from '../components/Input';\nimport InputLabel from '../components/InputLabel';\n\nexport interface BaseSearchFormProps {\n errorMessage?: string;\n handleSubmit: (query: string) => void;\n labelForInput?: string;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n}\n\n/**\n * * Form used to submit the search query using a provided search function.\n */\nconst BaseSearchForm: FC<BaseSearchFormProps> = ({\n errorMessage,\n handleSubmit,\n labelForInput = 'Search',\n placeholderValue = 'Enter Search Term',\n rightToLeftOrientation = false,\n}) => {\n const { query, setQuery } = useSearchcraft();\n const [error, setError] = useState<boolean>(false);\n\n const handleFormSubmit = (e: { preventDefault: () => void }) => {\n e.preventDefault();\n if (query.trim() === '') {\n setError(true);\n } else {\n setError(false);\n handleSubmit(query);\n }\n };\n\n const handleSearchInputChange = (event: { target: { value: string } }) =>\n setQuery(event.target.value);\n\n const handleClearInput = () => setQuery('');\n\n return (\n <form\n className={rightToLeftOrientation ? styles.formRTL : styles.formLTR}\n onSubmit={handleFormSubmit}\n >\n <InputLabel label={labelForInput} />\n <div className={styles.searchContainer}>\n {rightToLeftOrientation && <Button />}\n <Input\n error={error}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n {!rightToLeftOrientation && <Button />}\n </div>\n {error && <ErrorMessage errorMessage={errorMessage} />}\n </form>\n );\n};\n\nexport default BaseSearchForm;\n","import { useState, type FC, useEffect, type ChangeEventHandler } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport Input from '../components/Input';\nimport InputLabel from '../components/InputLabel';\nimport classNames from 'classnames';\n\nexport interface AutoSearchFormProps {\n autoSearchFormClass?: string;\n handleSubmit: (query: string) => void;\n inputCaptionValue?: string;\n labelForInput?: string;\n onClearedInput?: () => void;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n searchContainerClass?: string;\n}\n\n/**\n * * Button-less form used to submit the search query with a timing configurable debounced function.\n */\nconst AutoSearchForm: FC<AutoSearchFormProps> = ({\n autoSearchFormClass = '',\n handleSubmit,\n inputCaptionValue = '',\n labelForInput = 'Search',\n onClearedInput = () => {},\n placeholderValue = 'Search here',\n rightToLeftOrientation = false,\n searchContainerClass = '',\n}) => {\n const { query, setQuery } = useSearchcraft();\n const [canSearch, setCanSearch] = useState<boolean>(false);\n\n const handleSearchInputChange: ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n event.preventDefault();\n setQuery(event.currentTarget.value);\n if (query !== event.currentTarget.value) {\n setCanSearch(true);\n }\n };\n\n /**\n * * Exposes a callback for convenience when the input's value is cleared by the user\n */\n const handleClearInput = () => {\n setQuery('');\n onClearedInput();\n };\n\n /**\n * * Delay the submit function until the user is done typing to throttle API usage.\n */\n useEffect(() => {\n if (canSearch) {\n handleSubmit(query);\n setCanSearch(false);\n } else {\n return;\n }\n }, [canSearch, handleSubmit, query]);\n const autoSearchFormClassname = rightToLeftOrientation\n ? styles.formRTL\n : styles.formLTR;\n return (\n <form\n className={classNames(\n autoSearchFormClassname,\n autoSearchFormClass,\n 'searchcraft-auto-search-form',\n )}\n onSubmit={(event) => {\n event.preventDefault();\n }}\n >\n <InputLabel label={labelForInput} />\n <div\n className={classNames(\n styles.searchContainer,\n searchContainerClass,\n 'searchcraft-input-container',\n )}\n >\n <Input\n inputCaptionValue={inputCaptionValue}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </div>\n </form>\n );\n};\n\nexport default AutoSearchForm;\n","export const ButtonIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Button Icon</title>\n <path\n d='M2.725 5.79959L10 10.0079L17.275 5.79959M10 18.3996V9.99959M17.5 13.3329V6.66626C17.4997 6.37399 17.4225 6.08693 17.2763 5.8339C17.13 5.58086 16.9198 5.37073 16.6667 5.22459L10.8333 1.89126C10.58 1.74498 10.2926 1.66797 10 1.66797C9.70744 1.66797 9.42003 1.74498 9.16667 1.89126L3.33333 5.22459C3.08022 5.37073 2.86998 5.58086 2.72372 5.8339C2.57745 6.08693 2.5003 6.37399 2.5 6.66626V13.3329C2.5003 13.6252 2.57745 13.9123 2.72372 14.1653C2.86998 14.4183 3.08022 14.6285 3.33333 14.7746L9.16667 18.1079C9.42003 18.2542 9.70744 18.3312 10 18.3312C10.2926 18.3312 10.58 18.2542 10.8333 18.1079L16.6667 14.7746C16.9198 14.6285 17.13 14.4183 17.2763 14.1653C17.4225 13.9123 17.4997 13.6252 17.5 13.3329Z'\n stroke='white'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport { ButtonIcon } from '../assets/ButtonIcons';\n\nimport styles from '@styles/sc-search-result.module.scss';\nimport { ArrowRightIcon } from '../assets/ClearInputIcon';\n\ninterface BaseSearchResultProps {\n buttonCallbackFn?: () => void;\n buttonLabel?: string;\n imageAltText?: string;\n imageSrc?: string;\n interactiveResult?: boolean;\n callbackFn?: () => void;\n keyDownCallbackFn?: () => void;\n resultBodyContent?: string;\n resultHeading?: string;\n resultSubheading?: string;\n}\n\nconst BaseSearchResult: FC<BaseSearchResultProps> = ({\n buttonCallbackFn = () => {},\n buttonLabel = '',\n callbackFn = () => {},\n keyDownCallbackFn = () => {},\n imageAltText = '',\n interactiveResult = false,\n imageSrc = '',\n resultBodyContent = '',\n resultHeading = '',\n resultSubheading = '',\n}) => {\n const buttonFn = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n buttonCallbackFn();\n };\n\n const callbackFunc = () => {\n if (interactiveResult) {\n callbackFn();\n } else {\n return;\n }\n };\n\n return (\n <div\n className={\n interactiveResult\n ? styles.interactiveResultContainer\n : styles.resultContainer\n }\n id='searchcraft-item'\n onClick={callbackFunc}\n onKeyDown={keyDownCallbackFn}\n >\n {interactiveResult && (\n <div className={styles.interactiveIconLarge}>\n <ArrowRightIcon />\n </div>\n )}\n <div className={styles.imageContainer}>\n <img alt={imageAltText} className={styles.image} src={imageSrc} />\n </div>\n <div className={styles.contentContainer}>\n <h2 className={styles.heading}>\n {resultHeading}{' '}\n {interactiveResult && (\n <div className={styles.interactiveIconSmall}>\n <ArrowRightIcon />\n </div>\n )}\n </h2>\n <h3 className={styles.subheading}>{resultSubheading}</h3>\n <p className={styles.bodyContent}>{resultBodyContent}</p>\n <button className={styles.button} onClick={buttonFn} type='button'>\n <ButtonIcon />\n <span>{buttonLabel}</span>\n </button>\n </div>\n </div>\n );\n};\n\nexport default BaseSearchResult;\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-search-results.module.scss';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport BaseSearchResult from '@components/ui/BaseSearchResult';\n\nconst BaseSearchResults: FC = () => {\n const { searchResults } = useSearchcraft();\n return (\n <div className={styles.resultsContainer}>\n {searchResults?.hits ? (\n searchResults?.hits?.map((document, index) => {\n const { doc: result } = document;\n const callback = () => {\n console.log('interactive');\n };\n const buttonCallback = () => {\n console.log('button callback');\n };\n return (\n <BaseSearchResult\n key={`${result?.id}-${index}`}\n buttonLabel='View More'\n buttonCallbackFn={buttonCallback}\n callbackFn={callback}\n interactiveResult\n imageSrc={result?.poster}\n resultBodyContent={result?.overview}\n resultHeading={result?.title}\n resultSubheading={result?.release_date}\n />\n );\n })\n ) : (\n <div>no results found</div>\n )}\n </div>\n );\n};\n\nexport default BaseSearchResults;\n"],"names":["c","d","n","t","o","p","e","i","s","defaultContext","query","SearchcraftContext","React","SearchcraftProvider","children","searchcraft","setQuery","useState","isRequesting","setIsRequesting","searchResults","setSearchResults","search","results","providerContext","useSearchcraft","useContext","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","SpinnerLight","jsx","styles","SpinnerDark","Button","className","iconElement","iconOnly","iconPosition","label","onClick","jsxs","Fragment","ErrorMessage","errorMessage","ClearInputIcon","ArrowRightIcon","ClearInputButton","onClearInput","rightToLeftOrientation","InputCaption","error","inputCaptionClassName","inputCaptionValue","SearchIcon","SearchIconError","InputIcon","Input","formClassName","inputClassName","onSearchInputChange","placeholderValue","containerClassName","InputLabel","BaseSearchForm","handleSubmit","labelForInput","setError","handleFormSubmit","handleSearchInputChange","event","handleClearInput","AutoSearchForm","autoSearchFormClass","onClearedInput","searchContainerClass","canSearch","setCanSearch","useEffect","autoSearchFormClassname","ButtonIcon","BaseSearchResult","buttonCallbackFn","buttonLabel","callbackFn","keyDownCallbackFn","imageAltText","interactiveResult","imageSrc","resultBodyContent","resultHeading","resultSubheading","buttonFn","callbackFunc","BaseSearchResults","_a","document","index","result"],"mappings":"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","x_google_ignoreList":[3]}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
._formLTR_dvuqa_5{text-align:left}._formRTL_dvuqa_9{text-align:right}._searchContainer_dvuqa_13{align-items:center;display:flex}._spinnerContainer_1noam_1{background-color:transparent;height:20px;width:20px}._spinnerDark_1noam_7{height:100%;width:100%;background:conic-gradient(#000 50%,#fff);clip-path:circle(50%);-webkit-mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);animation:_spinning_1noam_1 1s linear infinite}._spinnerLight_1noam_16{height:100%;width:100%;background:conic-gradient(#737373 50%,#fff);clip-path:circle(50%);-webkit-mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);animation:_spinning_1noam_1 1s linear infinite}@keyframes _spinning_1noam_1{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.
|
|
1
|
+
._formLTR_dvuqa_5{text-align:left}._formRTL_dvuqa_9{text-align:right}._searchContainer_dvuqa_13{align-items:center;display:flex}._button_8jqm2_5{background-color:#000;border:1px solid #E6E6E6;border-radius:8px;color:#fff;display:flex;font-family:var(--font-stack);font-size:16px;font-weight:700;line-height:20px;padding:11px 20px;position:relative}._button_8jqm2_5:hover{background-color:#2e2e2e;cursor:pointer}._button_8jqm2_5:focus{outline:2px solid #000000}._spinnerMarginRight_8jqm2_26{margin-right:4px;position:absolute;left:4px}._spinnerMarginLeft_8jqm2_32{margin-left:4px;position:absolute;left:4px}._buttonLabel_8jqm2_38{animation:_rightandback_8jqm2_1 .2s;position:relative}@keyframes _rightandback_8jqm2_1{0%{right:-6px}50%{right:-12px}75%{right:-6px}to{right:0}}._spinnerContainer_1noam_1{background-color:transparent;height:20px;width:20px}._spinnerDark_1noam_7{height:100%;width:100%;background:conic-gradient(#000 50%,#fff);clip-path:circle(50%);-webkit-mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);animation:_spinning_1noam_1 1s linear infinite}._spinnerLight_1noam_16{height:100%;width:100%;background:conic-gradient(#737373 50%,#fff);clip-path:circle(50%);-webkit-mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);mask-image:radial-gradient(circle at center,#0000 6.6666666667px,#000 6.6666666667px);animation:_spinning_1noam_1 1s linear infinite}@keyframes _spinning_1noam_1{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}._errorMessage_12dc9_5{color:#900;font-family:var(--font-stack);font-size:12px;line-height:16px;margin-bottom:4px;margin-top:4px}._inputContainerLTR_s1rq8_5{position:relative}._inputContainerRTL_s1rq8_9{position:relative;margin-left:8px}._inputLTR_s1rq8_14{background-color:#ededed;border:none;border-radius:8px;font-family:var(--font-stack);outline:none;margin-right:8px;padding:15px 16px 15px 36px}._inputLTR_s1rq8_14::placeholder{color:#737373;font-family:var(--font-stack);font-size:16px}._inputLTR_s1rq8_14:focus{outline:2px solid #000000}._inputRTL_s1rq8_35{background-color:#ededed;border:none;border-radius:8px;font-family:var(--font-stack);outline:none;margin-left:8px;padding:15px 36px 15px 16px;text-align:right}._inputRTL_s1rq8_35::placeholder{color:#737373;font-family:var(--font-stack);font-size:16px}._inputRTL_s1rq8_35:focus{outline:2px solid #000000}._inputErrorLTR_s1rq8_57{background-color:#ededed;border:none;border-radius:8px;font-family:var(--font-stack);outline:none;outline:2px solid #c00;margin-right:8px;padding:15px 16px 15px 36px}._inputErrorLTR_s1rq8_57::placeholder{color:#737373;font-family:var(--font-stack);font-size:16px}._inputErrorLTR_s1rq8_57:focus{outline:2px solid #000000}._inputErrorLTR_s1rq8_57:focus-visible{outline:2px solid #c00}._inputErrorRTL_s1rq8_82{background-color:#ededed;border:none;border-radius:8px;font-family:var(--font-stack);outline:none;outline:2px solid #c00;margin-left:8px;padding:15px 36px 15px 16px;text-align:right}._inputErrorRTL_s1rq8_82::placeholder{color:#737373;font-family:var(--font-stack);font-size:16px}._inputErrorRTL_s1rq8_82:focus{outline:2px solid #000000}._inputErrorRTL_s1rq8_82:focus-visible{outline:2px solid #c00}._inputClearButtonLTR_t63ei_5{align-items:center;background:none;border:none;display:flex;height:20px;justify-content:center;padding:0;position:absolute;right:25px;top:11px;width:20px}._inputClearButtonRTL_t63ei_19{align-items:center;background:none;border:none;display:flex;height:20px;justify-content:center;left:25px;padding:0;position:absolute;top:11px;width:20px}._inputCaptionLTR_xoy9r_5{color:#404040;font-family:var(--font-stack);font-size:12px;font-weight:400;line-height:16px;margin-top:4px}._inputCaptionErrorLTR_xoy9r_14{color:#404040;font-family:var(--font-stack);font-size:12px;font-weight:400;line-height:16px;margin-top:4px;color:#900}._inputCaptionRTL_xoy9r_24{color:#404040;font-family:var(--font-stack);font-size:12px;font-weight:400;line-height:16px;margin-top:4px;text-align:right}._inputCaptionErrorRTL_xoy9r_34{color:#404040;font-family:var(--font-stack);font-size:12px;font-weight:400;line-height:16px;margin-top:4px;color:#900;text-align:right}._inputIconLTR_cusap_5{height:20px;left:10px;position:absolute;top:11px;width:20px}._inputIconRTL_cusap_13{height:20px;position:absolute;right:10px;top:11px;width:20px}._label_1euwf_5{color:#292929;font-family:var(--font-stack);font-size:12px;font-weight:700;line-height:16px;margin-bottom:4px}._resultContainer_10d68_5{align-items:flex-start;display:flex;flex-direction:column;gap:16px}@media (min-width: 600px){._resultContainer_10d68_5{flex-direction:row}}._interactiveResultContainer_10d68_17{align-items:flex-start;background-color:#fafafa;border-radius:16px;display:flex;position:relative;flex-direction:column;gap:16px;padding:8px}@media (min-width: 600px){._interactiveResultContainer_10d68_17{flex-direction:row}}._interactiveIconLarge_10d68_33{position:absolute;right:5px;top:8px;display:inline-block}@media (max-width: 600px){._interactiveIconLarge_10d68_33{display:none}}._interactiveIconSmall_10d68_45{position:absolute;right:5px;top:-2px;display:inline-block}@media (min-width: 600px){._interactiveIconSmall_10d68_45{display:none}}._imageContainer_10d68_57{max-height:540px;max-width:100%}@media (min-width: 600px){._imageContainer_10d68_57{max-height:100%;max-width:50%}}._contentContainer_10d68_68{max-height:100%;max-width:100%}@media (min-width: 600px){._contentContainer_10d68_68{max-width:50%}}._image_10d68_57{aspect-ratio:2/1;border-radius:8px;border:1px solid #D9D9D9;max-height:100%;max-width:100%}._heading_10d68_86{color:#292929;font-family:var(--font-stack);font-size:16px;font-weight:700;line-height:20px;margin-bottom:4px;margin-top:0;position:relative}._subheading_10d68_97{color:#737373;font-family:var(--font-stack);font-size:12px;font-weight:400;line-height:16px;margin-bottom:4px;margin-top:0}._bodyContent_10d68_107{color:#404040;font-family:var(--font-stack);font-size:16px;font-weight:400;line-height:20px;margin-top:0;margin-bottom:4px}._button_10d68_117{background-color:#000;border:1px solid #E6E6E6;border-radius:8px;color:#fff;display:flex;font-weight:700;line-height:20px;padding:10px 20px;margin-top:16px}._button_10d68_117 span{margin-left:4px}:root{--font-stack: Helvetica, Arial, sans-serif}._resultsContainer_pfxt4_5{display:flex;flex-direction:column;justify-content:center;margin:100px 20px}._resultsContainer_pfxt4_5>div{margin-bottom:20px}._resultsContainer_pfxt4_5>div img{height:300px;width:200px}
|
package/package.json
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
"name": "@searchcraft/react-sdk",
|
|
3
3
|
"private": false,
|
|
4
4
|
"author": "Searchcraft",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.1",
|
|
6
6
|
"description": "SearchCraft's React SDK.",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"license": "Apache-2.0",
|
|
9
|
+
"keywords": ["searchcraft"],
|
|
9
10
|
"scripts": {
|
|
10
11
|
"build": "tsc && vite build",
|
|
11
12
|
"lint": "biome format lint ./src",
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@biomejs/biome": "^1.8.1",
|
|
39
|
-
"@searchcraft
|
|
40
|
+
"@searchcraft/core": "*",
|
|
40
41
|
"@testing-library/jest-dom": "^6.4.2",
|
|
41
42
|
"@testing-library/react": "^14.2.1",
|
|
42
43
|
"@types/node": "^20.11.25",
|