@indxsearch/intrface 3.9.0 → 3.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 1c09506: ActiveFiltersPanel: the chips line up with the panel heading on every page. The list no longer picks up the browser's default indent and margins when the page does not reset lists itself.
8
+ - Updated dependencies [34c676b]
9
+ - @indxsearch/systm@2.17.0
10
+
3
11
  ## 3.9.0
4
12
 
5
13
  ### Minor Changes
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));require("@indxsearch/systm/styles.css");let c=require("react");c=s(c);let l=require("@indxsearch/indx-types"),u=require("react/jsx-runtime"),d=require("@indxsearch/systm"),f=require("@indxsearch/pixl");function p({url:e,team:t,dataset:n,preAuthenticatedToken:r,enableDebugLogs:i=!1}){let[a,o]=(0,c.useState)(null),[s,u]=(0,c.useState)(!0),[d,f]=(0,c.useState)([]),[p,m]=(0,c.useState)([]),[h,g]=(0,c.useState)([]),[_,v]=(0,c.useState)({}),[y,b]=(0,c.useState)({}),[x,S]=(0,c.useState)({}),[C,w]=(0,c.useState)(0),[T,E]=(0,c.useState)(null);return(0,c.useEffect)(()=>{(async()=>{E(null);try{if(!r)throw console.error(`[Auth] ❌ Missing bearer token`),console.error(`[Auth] 💡 Pass preAuthenticatedToken to SearchProvider (create a token on the Indx Dashboard)`),Error(`A bearer token is required. Check console for instructions.`);if(!e)throw console.error(`[Auth] ❌ Missing INDX server URL`),console.error(`[Auth] 💡 Pass a url to SearchProvider`),Error(`INDX server URL is required. Check console for instructions.`);if(!n)throw console.error(`[Auth] ❌ Missing dataset name`),console.error(`[Auth] 💡 Pass dataset="your-dataset-name" to SearchProvider`),Error(`Dataset name is required. Check console for instructions.`);i&&console.log(`[Auth] ✅ Using bearer token`);let a=r,s=e=>fetch(e,{method:`GET`,headers:{accept:`text/plain`,Authorization:`Bearer ${a}`}});i&&console.log(`[Auth] 🔍 Checking dataset status...`);let c=await s(`${e}/api/teams/${t}/datasets/${n}/status`);if(!c.ok){if(c.status===401)throw console.error(`[Auth] ❌ Authentication failed (401 Unauthorized)`),console.error(`[Auth] 💡 Your token may be expired or invalid`),console.error(`[Auth] 💡 Create or refresh your token on the Indx Dashboard`),Error(`Authentication failed (401). Token may be expired. Check console for instructions.`);if(c.status===404)throw console.error(`[Auth] ❌ Dataset "`+n+`" not found (404)`),console.error(`[Auth] 💡 Available datasets can be checked with: curl -X GET "`+e+`/api/me/datasets" -H "Authorization: Bearer YOUR_TOKEN"`),console.error(`[Auth] 💡 Make sure you spelled the dataset name correctly`),Error(`Dataset "`+n+`" not found. Check console for instructions.`);{let t=await c.text();throw console.error(`[Auth] ❌ Failed to get dataset status:`,c.status,t),console.error(`[Auth] 💡 Check if your INDX server is running at:`,e),Error(`Failed to connect to INDX server. Check console for details.`)}}let u=await c.json();i&&console.log(`[Auth] 📊 Dataset status:`,u),o(a),i&&console.log(`[Auth] ✅ Dataset session established`),u.systemState!==void 0&&u.systemState!==l.SystemState.Ready&&(console.warn(`[Auth] ⚠️ Dataset is not ready yet. Current state:`,l.SystemState[u.systemState]),console.warn(`[Auth] 💡 Wait for indexing to complete before searching`));let d=u.documentCount??u.numberOfRecords??0;d===0?(console.warn(`[Auth] ⚠️ Dataset "`+n+`" is empty (0 records)`),console.warn(`[Auth] 💡 Add documents to your dataset before searching`),console.warn(`[Auth] 💡 Search will work but return no results`)):i&&console.log(`[Auth] ✅ Dataset has`,d,`records`);let[p,h,_,y]=await Promise.all([s(`${e}/api/teams/${t}/datasets/${n}/fields/filterable`),s(`${e}/api/teams/${t}/datasets/${n}/fields/facetable`),s(`${e}/api/teams/${t}/datasets/${n}/fields/sortable`),s(`${e}/api/teams/${t}/datasets/${n}/fields/configuration`).catch(()=>null)]);if(!p.ok)throw console.error(`[Auth] ❌ GetFilterableFields failed:`,p.status,await p.text()),Error(`Failed to get filterable fields. Check console for details.`);if(!h.ok)throw console.error(`[Auth] ❌ GetFacetableFields failed:`,h.status,await h.text()),Error(`Failed to get facetable fields. Check console for details.`);if(!_.ok)throw console.error(`[Auth] ❌ GetSortableFields failed:`,_.status,await _.text()),Error(`Failed to get sortable fields. Check console for details.`);let[x,C,T]=await Promise.all([p.json().catch(e=>(console.error(`Failed to parse GetFilterableFields response:`,e),[])),h.json().catch(e=>(console.error(`Failed to parse GetFacetableFields response:`,e),[])),_.json().catch(e=>(console.error(`Failed to parse GetSortableFields response:`,e),[]))]);f(x||[]),m(C||[]),g(T||[]),w(d);let E={};if(y?.ok){let e=await y.json().catch(e=>(console.error(`Failed to parse GetFieldConfiguration response:`,e),[]));for(let t of e??[])t?.fieldName&&t?.fieldType&&(E[t.fieldName]=t.fieldType)}else i&&console.log(`[Auth] fields/configuration not available`,y?.status,`- every selected value will be sent as a value filter`);v(E);let D={facets:{}};try{let r=await fetch(`${e}/api/teams/${t}/datasets/${n}/search`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},body:JSON.stringify({text:``,maxNumberOfRecordsToReturn:0,enableFacets:!0})});r.ok?D=await r.json().catch(e=>(console.warn(`Failed to parse blank search response:`,e),{facets:{}})):(console.warn(`Blank search failed:`,r.status,r.statusText),console.warn(`Continuing without initial facet data - facets will be populated after first search`))}catch(e){console.warn(`Blank search error:`,e),console.warn(`Continuing without initial facet data - facets will be populated after first search`)}let O={};if(D.facets){for(let[e,t]of Object.entries(D.facets))if(Array.isArray(t)&&t.length>0){let n=t.map(e=>Number(e.key)).filter(e=>!isNaN(e));n.length>0&&(O[e]={min:Math.min(...n),max:Math.max(...n)})}}let k={};if(D.facets)for(let[e,t]of Object.entries(D.facets))Array.isArray(t)&&(k[e]=t.map(e=>e.key));b(O),S(k),i&&console.log(`[Auth] ✅ Initialization complete`)}catch(t){console.error(`[Auth] ❌ Initialization failed:`,t),(t instanceof Error||typeof t==`object`&&t&&`message`in t)&&console.error(`[Auth] 💡 Error:`,t.message),t instanceof TypeError&&t.message.includes(`fetch`)&&(console.error(`[Auth] ❌ Network error - cannot connect to INDX server`),console.error(`[Auth] 💡 Check if the server is running at:`,e),console.error(`[Auth] 💡 Check the url you passed to SearchProvider`),console.error(`[Auth] 💡 For local development, it should be: http://localhost:5001`)),E(t instanceof Error?t.message:String(t))}finally{u(!1)}})()},[e,t,n]),{token:a,isFetchingInitial:s,authError:T,initialFacetStats:y,initialFacetKeys:x,filterableFields:d,facetableFields:p,sortableFields:h,fieldTypes:_,totalDocumentCount:C}}var m=class e extends Error{status;code;problem;retryAfterSeconds;constructor(e,t,n,r){let i=n?.detail??n?.title;super(`${e} failed: HTTP ${t}${i?` — ${i}`:``}`),this.name=`IndxApiError`,this.status=t,this.code=n?.code,this.problem=n,this.retryAfterSeconds=r}get retryable(){return this.code===`invalidState`&&this.problem?.retryable===!0}static async fromResponse(t,n){let r;try{let e=await n.json();e&&typeof e==`object`&&typeof e.code==`string`?r=e:e&&typeof e==`object`&&(r={...e,code:``})}catch{}let i=n.headers?.get?.(`Retry-After`),a=i!=null&&/^\d+$/.test(i)?Number(i):void 0;return new e(t,n.status,r,a)}};async function h(e,t,n,r,i,a,o){let s=await o(`${r}/api/teams/${i}/datasets/${a}/filters/${e}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!s.ok)throw await m.fromResponse(n,s);let c=await s.json();if(!c||typeof c.hashString!=`string`)throw Error(`${n} failed: server returned no filter token`);return c}async function g(e,t,n,r,i,a){if(e.length===0)return null;if(e.length===1)return e[0];let o=e[0];for(let s=1;s<e.length;s++)o=await h(`combine`,{a:o,b:e[s],useAndOperation:t===`and`},`CombineFilters`,n,r,i,a);return o}async function _(e,t,n,r,i,a,o={},s={},c={}){let l=Object.entries(e??{}).filter(([,e])=>e.length>0),u=Object.entries(t??{}),d=Object.entries(s??{}).filter(([,e])=>e.length>0),f=(e,{min:t,max:o})=>h(`range`,{fieldName:e,lowerLimit:t,upperLimit:o},`Range filter '${e}'`,n,r,i,a),p=(e,t)=>{let o=c[e]===`Number`?Number(t):NaN;return Number.isFinite(o)?f(e,{min:o,max:o}):h(`value`,{fieldName:e,value:t},`Value filter '${e}'`,n,r,i,a)},[m,_,v]=await Promise.all([Promise.all(l.map(async([e,t])=>g(await Promise.all(t.map(t=>p(e,t))),o[e]===`any`?`or`:`and`,n,r,i,a))),Promise.all(u.map(([e,t])=>f(e,t))),Promise.all(d.map(async([e,t])=>g(await Promise.all(t.map(t=>f(e,t))),`or`,n,r,i,a)))]);return g([...m,..._,...v],`and`,n,r,i,a)}function v(e,t){let n,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)};return r.cancel=()=>clearTimeout(n),r}function y({state:e,setState:t,authenticatedFetch:n,auth:r,url:i,team:a,dataset:o,allowEmptySearch:s,facetsEnabled:l,enableDebugLogs:u,shouldFetchMore:d,sessionId:f}){let p=(0,c.useRef)(0),h=(0,c.useRef)(void 0),g=(0,c.useRef)(!1),[y,b]=(0,c.useState)({}),[x,S]=(0,c.useState)(``),[C,w]=(0,c.useState)(``);(0,c.useEffect)(()=>{r.isFetchingInitial||t(e=>({...e,facetStats:r.initialFacetStats,rangeBounds:r.initialFacetStats,totalDocumentCount:r.totalDocumentCount,filterableFields:r.filterableFields,facetableFields:r.facetableFields,sortableFields:r.sortableFields,fieldTypes:r.fieldTypes,fieldsSeeded:!0}))},[r.isFetchingInitial,r.initialFacetStats,r.totalDocumentCount,r.filterableFields,r.facetableFields,r.sortableFields,t]);let T=e.searchSettings.maxNumberOfRecordsToReturn,E=e.searchSettings.enableCoverage,D=e.searchSettings.removeDuplicates,O=e.searchSettings.coverageDepth,k=e.searchSettings.minimumScore,A=e.searchSettings.coverageSetup,j=e.sortBy,M=e.sortAscending,N=(0,c.useCallback)(async({enableFacets:c})=>{if(!r.token)return;let l=++p.current;if(t(e=>({...e,isLoading:!0})),e.query.trim()===``){if(!s)return;c=!0}try{let d=c?Array.from(new Set([...Object.keys(e.filters).filter(t=>e.valueMatch[t]===`any`&&(e.filters[t]?.length??0)>0),...Object.keys(e.bucketFilters).filter(t=>(e.bucketFilters[t]?.length??0)>0)])):[],[h,...g]=await Promise.all([_(e.filters,e.rangeFilters,i,a,o,n,e.valueMatch,e.bucketFilters,e.fieldTypes),...d.map(t=>_({...e.filters,[t]:[]},e.rangeFilters,i,a,o,n,e.valueMatch,{...e.bucketFilters,[t]:[]},e.fieldTypes))]),v=s||e.query.trim()!==``,N={text:e.query,enableCoverage:E,removeDuplicates:D,coverageDepth:O,coverageSetup:A},P={...N,maxNumberOfRecordsToReturn:v?T:0,enableFacets:c,...h?{filter:h}:{},...j?{sortBy:j}:{},...M===void 0?{}:{sortAscending:M}};u&&console.log(`[performSearch] request body:`,JSON.stringify(P,null,2));let F=e=>n(`${i}/api/teams/${a}/datasets/${o}/search?session=${encodeURIComponent(f)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),[I,...L]=await Promise.all([F(P),...g.map(e=>F({...N,maxNumberOfRecordsToReturn:0,enableFacets:!0,...e?{filter:e}:{}}))]);if(!I.ok)throw await m.fromResponse(`Search`,I);let R=await I.json(),z=I.headers.get(`Indx-Query-Id`)??void 0,B=R.truncationIndex??-1,V={};for(let e=0;e<d.length;e++){let t=d[e];if(!L[e].ok)throw await m.fromResponse(`Facets for '${t}'`,L[e]);let n=await L[e].json();n.facets?.[t]!==void 0&&(V[t]=n.facets[t])}let H=R.records||[],U=H.map(e=>e.documentKey),W=H.map(e=>e.score),G=[];if(v&&U.length>0){let e=await n(`${i}/api/teams/${a}/datasets/${o}/documents/lookup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(U)});if(!e.ok)throw await m.fromResponse(`Document lookup`,e);G=(await e.json()).map((e,t)=>({document:e,documentKey:U[t],score:W[t]}))}let K={};if(c&&R.facets){for(let[e,t]of Object.entries(R.facets))if(Array.isArray(t)&&t.length>0){let n=t.map(e=>Number(e.key)).filter(e=>!isNaN(e));n.length>0&&(K[e]={min:Math.min(...n),max:Math.max(...n)})}}if(l!==p.current)return;let q=e.query!==x,ee=e.query!==C,J=e.facetStats??{};if(q?(J={...r.initialFacetStats,...K},b(J),S(e.query)):J={...y,...K},ee&&c){let n={...e.rangeBounds};for(let[e,t]of Object.entries(K))n[e]=t;t(e=>({...e,rangeBounds:n})),w(e.query)}let Y=Object.keys(V).length>0?{...R.facets??{},...V}:R.facets;if(c&&(!Y||Object.keys(Y).length===0)){Y={};for(let[e,t]of Object.entries(r.initialFacetKeys))Y[e]=t.map(e=>({key:e,value:null}))}let te=G.filter(t=>{let n=e.query.trim();return n===``||n.length===1?!0:t.score>=k}).map((e,t)=>({...e,position:t+1}));t(e=>({...e,results:te,error:void 0,resultsSuppressed:!v,...c?{facets:Y,facetStats:J}:{},isLoading:!1,truncationIndex:B,queryId:z}))}catch(e){if(console.error(`[Search] ❌ Search failed:`,e),e instanceof TypeError&&e.message.includes(`fetch`)?(console.error(`[Search] ❌ Network error - cannot reach INDX server`),console.error(`[Search] 💡 Check if server is running at:`,i)):e instanceof Error&&(e.message.includes(`401`)?(console.error(`[Search] ❌ Authentication failed`),console.error(`[Search] 💡 Your token may have expired. Create or refresh it on the Indx Dashboard.`)):e.message.includes(`404`)?(console.error(`[Search] ❌ Dataset not found`),console.error(`[Search] 💡 Check that dataset "`+o+`" exists`)):console.error(`[Search] 💡 Error:`,e.message)),l!==p.current)return;t(t=>({...t,results:null,isLoading:!1,resultsSuppressed:!1,error:e instanceof Error?e.message:`Search failed`}))}},[e.query,e.filters,e.valueMatch,e.rangeFilters,e.bucketFilters,e.facetStats,j,M,T,E,D,O,A,k,n,r.initialFacetStats,r.initialFacetKeys,r.token,y,x,C,e.rangeBounds,i,a,o,s,u,t]);(0,c.useEffect)(()=>{h.current=N},[N]);let P=(0,c.useRef)(null);(0,c.useEffect)(()=>(P.current?.cancel(),P.current=v(()=>{u&&console.log(`Debounced searchWithFacets fired`),h.current?.({enableFacets:!0})},e.facetDebounceDelayMillis??500),()=>{P.current?.cancel()}),[e.facetDebounceDelayMillis]),(0,c.useEffect)(()=>{!r.isFetchingInitial&&r.token&&!g.current&&(s&&h.current?.({enableFacets:l}),g.current=!0)},[r.isFetchingInitial,r.token,s,l]),(0,c.useEffect)(()=>{if(!r.token||!g.current)return;let n=e.query.trim(),i=n===``&&s;if(n===``&&!s){e.resultsSuppressed||t(e=>({...e,resultsSuppressed:!0}));return}return i?(P.current?.cancel(),h.current?.({enableFacets:l})):l?(u&&console.log(`Search fired`),h.current?.({enableFacets:!1}),P.current?.()):h.current?.({enableFacets:!1}),()=>{P.current?.cancel()}},[e.query,s,l]),(0,c.useEffect)(()=>{if(!g.current||!r.token||e.filterRevision===0)return;let t=e.query.trim();!s&&t===``||h.current?.({enableFacets:l})},[e.filterRevision]),(0,c.useEffect)(()=>{if(!g.current||!r.token)return;let t=e.query.trim();!s&&t===``||h.current?.({enableFacets:l})},[j,M]);let F=(0,c.useRef)(!0),I=(0,c.useRef)(e.query);(0,c.useEffect)(()=>{if(F.current){F.current=!1;return}if(I.current!==e.query||!g.current||!r.token)return;if(d.current){d.current=!1,h.current?.({enableFacets:!1});return}let t=e.query.trim();!s&&t===``||h.current?.({enableFacets:l})},[T,E,D,O,A,k]),(0,c.useEffect)(()=>{I.current=e.query},[e.query])}function b(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}var x=(0,c.createContext)(void 0),S=({children:e,url:t,team:n,dataset:r,allowEmptySearch:i=!1,maxResults:a=10,facetDebounceDelayMillis:o=500,enableFacets:s=!0,coverageDepth:l=500,removeDuplicates:d=!0,enableCoverage:f=!0,initialCoverageSetup:m={},enableDebugLogs:h=!1,preAuthenticatedToken:g})=>{let _=(0,c.useRef)(!1),v=(0,c.useRef)(b()).current,S=(0,c.useRef)(a),[C,w]=(0,c.useState)({query:``,results:null,isLoading:!1,resultsSuppressed:!i,facetDebounceDelayMillis:o,filterableFields:[],facetableFields:[],sortableFields:[],fieldTypes:{},filters:{},valueMatch:{},rangeFilters:{},bucketFilters:{},filterRevision:0,fieldsSeeded:!1,facetStats:{},rangeBounds:{},searchSettings:{maxNumberOfRecordsToReturn:a,coverageDepth:l,enableCoverage:f,removeDuplicates:d,minimumScore:0,showScore:!0,placeholderText:`Type to search`,coverageSetup:{coverWholeQuery:!0,coverWholeWords:!0,coverFuzzyWords:!0,coverJoinedWords:!0,coverPrefixSuffix:!0,truncate:!0,includePatternMatches:!0,minWordSize:2,levenshteinMaxWordSize:20,truncateWordHitLimit:1,truncateWordHitTolerance:0,truncationScore:65024,...m}}});(0,c.useEffect)(()=>{h&&console.log(`SearchContext mounted on client`)},[h]),(0,c.useEffect)(()=>{w(e=>({...e,facetDebounceDelayMillis:o}))},[o]);let[T]=(0,c.useState)(s),E=p({url:t,team:n,dataset:r,preAuthenticatedToken:g,enableDebugLogs:h}),D=(0,c.useCallback)((e,t={})=>{if(!E.token)throw Error(`No authentication token available`);return fetch(e,{...t,headers:{...t.headers,Authorization:`Bearer ${E.token}`}})},[E.token]);y({state:C,setState:w,authenticatedFetch:D,auth:E,url:t,team:n,dataset:r,allowEmptySearch:i,facetsEnabled:T,enableDebugLogs:h,shouldFetchMore:_,sessionId:v});let O=(0,c.useRef)(void 0);O.current=C.queryId;let k=(0,c.useCallback)(async e=>{if(E.token)try{let i=await D(`${t}/api/teams/${n}/datasets/${r}/events/select`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({queryId:O.current,documentKey:e.documentKey,position:e.position})});h&&(i.ok?console.log(`[select] document ${e.documentKey} at position ${e.position}`):console.warn(`[select] not recorded: ${i.status}`))}catch(e){h&&console.warn(`[select] failed:`,e)}},[E.token,D,t,n,r,h]),A=(0,c.useCallback)(e=>{w(t=>{let n=Object.keys(t.filters).length>0,r=Object.keys(t.rangeFilters).length>0,i=Object.keys(t.bucketFilters).length>0;return{...t,query:e,filters:n?{}:t.filters,rangeFilters:r?{}:t.rangeFilters,bucketFilters:i?{}:t.bucketFilters,searchSettings:{...t.searchSettings,maxNumberOfRecordsToReturn:S.current}}})},[]),j=(0,c.useCallback)(e=>{w(t=>({...t,facetDebounceDelayMillis:e}))},[]),M=(0,c.useCallback)(e=>{typeof e.maxNumberOfRecordsToReturn==`number`&&(S.current=e.maxNumberOfRecordsToReturn),w(t=>{let n={...t.searchSettings,...e};return e.coverageSetup?n.coverageSetup={...t.searchSettings.coverageSetup,...e.coverageSetup}:n.coverageSetup=t.searchSettings.coverageSetup,{...t,searchSettings:n}})},[]),N=(0,c.useCallback)(e=>{_.current=!0,w(t=>({...t,searchSettings:{...t.searchSettings,maxNumberOfRecordsToReturn:e}}))},[]),P=(0,c.useCallback)((e,t,n=!1)=>{w(r=>{let i={...r.filters},a=i[e]||[],o=a.includes(t)?a.filter(e=>e!==t):n?[t]:[...a,t];return o.length?i[e]=o:delete i[e],{...r,filters:i,filterRevision:r.filterRevision+1}})},[]),F=(0,c.useCallback)((e,t)=>{w(n=>n.valueMatch[e]===t?n:{...n,valueMatch:{...n.valueMatch,[e]:t}})},[]),I=(0,c.useCallback)((e,t,n)=>{w(r=>({...r,rangeFilters:{...r.rangeFilters,[e]:{min:t,max:n}},filterRevision:r.filterRevision+1}))},[]),L=(0,c.useCallback)(()=>{w(e=>({...e,filters:{},rangeFilters:{},bucketFilters:{},filterRevision:e.filterRevision+1}))},[]),R=(0,c.useCallback)((e,t,n=!0)=>{w(r=>{let i={...r.filters},a=(i[e]||[]).filter(e=>e!==t);return a.length>0?i[e]=a:delete i[e],{...r,filters:i,filterRevision:r.filterRevision+ +!!n}})},[]),z=(0,c.useCallback)((e,t=!0)=>{w(n=>{if(!(e in n.rangeFilters))return n;let r={...n.rangeFilters};return delete r[e],{...n,rangeFilters:r,filterRevision:n.filterRevision+ +!!t}})},[]),B=(e,t)=>e.min===t.min&&e.max===t.max,V=(0,c.useCallback)((e,t,n=!1)=>{w(r=>{let i=r.bucketFilters[e]??[],a=i.some(e=>B(e,t))?i.filter(e=>!B(e,t)):n?[t]:[...i,t],o={...r.bucketFilters};return a.length>0?o[e]=a:delete o[e],{...r,bucketFilters:o,filterRevision:r.filterRevision+1}})},[]),H=(0,c.useCallback)((e,t,n=!0)=>{w(r=>{let i={...r.bucketFilters},a=t?(i[e]??[]).filter(e=>!B(e,t)):[];return a.length>0?i[e]=a:delete i[e],{...r,bucketFilters:i,filterRevision:r.filterRevision+ +!!n}})},[]),U=(0,c.useCallback)((e,t)=>{w(n=>({...n,sortBy:e||void 0,sortAscending:e?t:void 0}))},[]);return(0,u.jsx)(x.Provider,{value:{state:C,isFetchingInitial:E.isFetchingInitial||!C.fieldsSeeded,authError:E.authError??void 0,allowEmptySearch:i,url:t,team:n,dataset:r,authenticatedFetch:D,setQuery:A,toggleFilter:P,setValueMatch:F,setRangeFilter:I,resetFilters:L,resetSingleFilter:R,resetRangeFilter:z,toggleBucketFilter:V,resetBucketFilter:H,setSort:U,setDebounceDelay:j,setSearchSettings:M,fetchMoreResults:N,selectResult:k,sessionId:v},children:e})},C=()=>{let e=(0,c.useContext)(x);if(!e)throw Error(`useSearchContext must be used within a SearchProvider`);return e},w=({className:e=``,autoFocus:t=!1,inputSize:n=`default`,showClear:r=!0,showFocus:i=!1,...a})=>{let{state:{query:o,filters:s,rangeFilters:c,searchSettings:l},setQuery:f}=C();Object.keys(s).length>0||Object.keys(c).length;let p=o.length>0;return(0,u.jsx)(d.SearchField,{type:`text`,value:o,onChange:e=>f(e.target.value),placeholder:l.placeholderText,autoFocus:t,className:e,showSearchIcon:!0,inputSize:n,showFocusBorder:i,...a,children:r&&p&&(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,onClick:()=>f(``),"aria-label":`Clear search`,children:`Clear`})})},T={placeholder:`_placeholder_ee9qi_1`,invalid:`_invalid_ee9qi_11`},E={row:`_row_1i201_1`,content:`_content_1i201_19`,indexNumber:`_indexNumber_1i201_31`,scoreNumber:`_scoreNumber_1i201_39`,skeletonBars:`_skeletonBars_1i201_53`,skeletonBarLg:`_skeletonBarLg_1i201_59`,fade:`_fade_1i201_1`,skeletonBarSm:`_skeletonBarSm_1i201_66`},D=({skeleton:e=!1,index:t,score:n,showScore:r=!1,children:i,skeletonDelay:a=0,skeletonWidths:o=[62,38]})=>(0,u.jsxs)(`div`,{className:E.row,children:[t!==void 0&&(0,u.jsx)(`div`,{className:E.indexNumber,children:t}),(0,u.jsx)(`div`,{className:E.content,children:e?(0,u.jsxs)(`div`,{className:E.skeletonBars,children:[(0,u.jsx)(`div`,{className:E.skeletonBarLg,style:{width:`${o[0]}%`,animationDelay:`${a}s`}}),(0,u.jsx)(`div`,{className:E.skeletonBarSm,style:{width:`${o[1]}%`,animationDelay:`${a+.05}s`}})]}):i}),r&&n!==void 0&&(0,u.jsx)(`div`,{className:E.scoreNumber,children:n})]}),O={wrapper:`_wrapper_81m3c_6`,skeletonAppear:`_skeletonAppear_81m3c_1`},k=[[62,38],[75,45],[58,33],[70,42],[65,50],[55,35],[72,40],[60,30]],A=({rows:e=6})=>(0,u.jsx)(`div`,{className:O.wrapper,children:Array.from({length:e}).map((e,t)=>(0,u.jsx)(D,{skeleton:!0,skeletonDelay:t*.1,skeletonWidths:k[t%k.length]},t))}),j=/^\[\s*(?:'[^']*'(?:\s*,\s*'[^']*')*)?\s*\]$/;function M(e){let t=e.trim();if(!t.startsWith(`[`)||!t.endsWith(`]`))return;try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e))}catch{}if(!j.test(t))return;let n=[],r=/'([^']*)'/g,i;for(;(i=r.exec(t))!==null;)n.push(i[1]);return n}var N=({fields:e,resultsPerPage:t,parseArrayStrings:n=!1,children:r})=>{let{state:{results:i,resultsSuppressed:a,searchSettings:o,truncationIndex:s,query:l,error:p},isFetchingInitial:m,authError:h,allowEmptySearch:g,fetchMoreResults:_,selectResult:v}=C(),y=t??30,[b,x]=(0,c.useState)(y),S=(0,c.useRef)(0),w=(0,c.useRef)(``);(0,c.useEffect)(()=>{let e=l!==w.current;(!i||i.length<S.current||e)&&x(y),S.current=i?.length??0,w.current=l},[i,y,l]);let E=i&&i.length>b,O=()=>{let e=b+y;x(e),i&&e>=i.length&&(!s||s===-1||s>i.length)&&_(i.length+y)};if(m)return g?(0,u.jsx)(A,{rows:y}):(0,u.jsx)(`div`,{className:T.placeholder,children:(0,u.jsx)(f.Indx,{size:200,color:`var(--lv5)`})});let k=h??p;return k?(0,u.jsx)(`div`,{className:T.invalid,role:`alert`,children:(0,u.jsx)(`p`,{children:k})}):a||i===null?(0,u.jsx)(`div`,{className:T.placeholder,children:(0,u.jsx)(f.Indx,{size:200,color:`var(--lv5)`})}):i.length===0?(0,u.jsx)(`div`,{className:T.invalid,children:(0,u.jsx)(`p`,{children:`No results found.`})}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{children:(i??[]).slice(0,b).map((t,i)=>{let a=t.document,s=t.score,c;try{c=typeof a==`string`?JSON.parse(a):a}catch{return(0,u.jsx)(`div`,{className:T.invalid,children:(0,u.jsx)(`p`,{children:`Invalid JSON`})},i)}let l;if(e&&e.length>0){l={};for(let t of e)t in c&&(l[t]=c[t])}else l={...c};if(n)for(let e in l){let t=l[e];if(typeof t==`string`){let n=M(t);n&&(l[e]=n)}}return(0,u.jsx)(D,{index:i,score:s,showScore:o.showScore,children:r(l,{result:t,select:()=>v?.(t)??Promise.resolve()})},i)})}),E&&(0,u.jsx)(`div`,{style:{textAlign:`center`,marginTop:`20px`},children:(0,u.jsx)(d.Button,{variant:`secondary`,size:`micro`,onClick:O,children:l.trim()===``?`Load more`:s!==-1&&s!==void 0&&s>0?`Load results ${b+1}-${Math.min(b+y,i.length,s)} of ${s}`:`Load more`})})]})},P={row:`_row_ujwhc_1`,title:`_title_ujwhc_8`},F=({variant:e=`default`,children:t})=>(0,u.jsx)(`div`,{className:[P.row,e===`title`?P.title:``].filter(Boolean).join(` `),children:t}),I={bar:`_bar_4nxla_12`,skeletonAppear:`_skeletonAppear_4nxla_1`,fade:`_fade_4nxla_1`,listRows:`_listRows_4nxla_19`,sliderArea:`_sliderArea_4nxla_25`,sliderTrack:`_sliderTrack_4nxla_32`,inputRow:`_inputRow_4nxla_40`,inputBar:`_inputBar_4nxla_45`,histogramRow:`_histogramRow_4nxla_55`},L=[65,80,55,72,60,75,50,68],R=({title:e,rows:t=5,variant:n=`list`,withHistogram:r=!1,collapsible:i=!0,startCollapsed:a=!1})=>(0,u.jsx)(d.FilterPanelBase,{title:e,collapsible:i,collapsed:a,children:n===`slider`?(0,u.jsxs)(`div`,{className:I.sliderArea,children:[r&&(0,u.jsx)(`div`,{className:I.histogramRow}),(0,u.jsx)(`div`,{className:I.sliderTrack}),(0,u.jsxs)(`div`,{className:I.inputRow,children:[(0,u.jsx)(`div`,{className:I.inputBar,style:{animationDelay:`0.1s`}}),(0,u.jsx)(`div`,{className:I.inputBar,style:{animationDelay:`0.15s`}})]})]}):(0,u.jsx)(`div`,{className:I.listRows,children:Array.from({length:t}).map((e,t)=>(0,u.jsx)(`div`,{className:I.bar,style:{width:`${L[t%L.length]}%`,animationDelay:`${t*.05}s`}},t))})}),z={list:`_list_18vbb_2`,count:`_count_18vbb_7`,countValue:`_countValue_18vbb_17`,chip:`_chip_18vbb_22`,chipLabel:`_chipLabel_18vbb_32`,grid:`_grid_18vbb_40`,active:`_active_18vbb_54`},B=({field:e,label:t,preserveBlankFacetState:n=!1,preserveBlankFacetStateOrder:r=!1,sortFacetsBy:i=`histogram`,limit:a=10,collapsible:o=!0,startCollapsed:s=!1,control:l,displayType:f,layout:p=`list`,showActivePanel:m=!1,showCount:h=!0,showNull:g=!1,match:_=`all`,displayIfEmptyQuery:v=!0,displayCondition:y=e=>!0})=>{let{state:{facets:b,filterableFields:x,facetableFields:S,filters:w,query:T},toggleFilter:E,setValueMatch:D,isFetchingInitial:O,allowEmptySearch:k}=C(),A=l??f??`checkbox`,j=A===`radio`?`any`:_;(0,c.useEffect)(()=>{D(e,j)},[e,j,D]);let M=(0,c.useRef)(null),[N,P]=(0,c.useState)(a);if((0,c.useEffect)(()=>{P(a)},[b?.[e],a]),!k&&!T)return null;if(O||!b)return A===`toggle`?(0,u.jsx)(R,{rows:1,collapsible:!1}):(0,u.jsx)(R,{title:t,rows:Math.min(a,6),collapsible:o,startCollapsed:s});if(!y({query:T??``,filters:w,facets:b})||!v&&!T&&Object.keys(w).length<1)return null;if(!x?.includes(e)||!S?.includes(e)){let t=[];return x?.includes(e)||t.push(`filterable`),S?.includes(e)||t.push(`facetable`),(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{style:{color:`red`,fontSize:`12px`},children:[`Cannot render filter for "`,e,`": missing `,t.join(` and `),`.`]})})}let F=b?.[e]??(A===`toggle`?[]:void 0);if(!F||!Array.isArray(F))return null;let I=w?.[e]??[];n&&!M.current&&F.length>0&&(M.current=F.reduce((e,t)=>(e[t.key]=t.value,e),{}));let L=new Map;n&&M.current&&Object.keys(M.current).forEach(e=>{L.set(e,0)}),F.forEach(e=>{L.set(e.key,e.value)});let B=new Set([`true`,`false`,`null`]),V=Array.from(L.keys()),H=A===`toggle`&&(V.length>0&&V.every(e=>B.has(e))||V.length===0&&I.length>0);if(H&&L.has(`null`)){let e=L.get(`null`)??0,t=L.get(`false`)??0;L.set(`false`,t+e),L.delete(`null`)}if(A===`toggle`&&!H)return(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsx)(`div`,{className:z.count,children:(0,u.jsx)(d.ToggleSwitch,{label:t,checked:!1,onChange:()=>{},disabled:!0})})});if(H){let n=L.get(`true`),r=typeof n==`number`?n:null,i=I.includes(`true`),a=r===0&&!i,o=h&&(r??0)>0?`${r}`:``;return(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{className:z.count,children:[(0,u.jsx)(d.ToggleSwitch,{label:t,checked:i,onChange:()=>E(e,`true`),disabled:a}),` `,o]})})}let U=Array.from(L.entries());if(g||(U=U.filter(([e])=>e!==`null`)),U.length===0&&!n)return null;if(!r)if(i===`alphabetical`){let e=U.filter(([,e])=>typeof e==`number`&&e>0).sort(([e],[t])=>e.localeCompare(t)),t=U.filter(([,e])=>e===0||e===null).sort(([e],[t])=>e.localeCompare(t));U=[...e,...t]}else if(i===`numeric`){let e=(e,t)=>{let n=Number(e),r=Number(t);return!isNaN(n)&&!isNaN(r)?n-r:e.localeCompare(t)},t=U.filter(([,e])=>typeof e==`number`&&e>0).sort(([t],[n])=>e(t,n)),n=U.filter(([,e])=>e===0||e===null).sort(([t],[n])=>e(t,n));U=[...t,...n]}else{let e=U.filter(([,e])=>typeof e==`number`&&e>0),t=U.filter(([,e])=>e===0||e===null);U=[...e,...t]}let W=typeof a==`number`&&U.length>a,G=W?U.slice(0,N):U,K=(t,n)=>{let r=I.includes(t),i=n===0,a=h&&(n??0)>0?` (${n})`:``,o=h&&(n??0)>0?n:``,s=()=>E(e,t,A===`radio`);switch(A){case`button`:return p===`list`?(0,u.jsxs)(`div`,{className:z.count,children:[(0,u.jsx)(d.Button,{variant:r?`primary`:`secondary`,onClick:s,disabled:i,size:`micro`,className:z.chip,title:t,children:(0,u.jsx)(`span`,{className:z.chipLabel,children:t})}),(0,u.jsx)(`span`,{className:z.countValue,children:o})]}):(0,u.jsx)(d.Button,{variant:r?`primary`:`secondary`,onClick:s,disabled:i,size:`micro`,className:z.chip,title:`${t}${a}`,children:(0,u.jsx)(`span`,{className:z.chipLabel,children:`${t}${a}`})});case`toggle`:return(0,u.jsx)(d.ToggleSwitch,{label:t,checked:r,onChange:s,disabled:i});case`radio`:{let n=(0,u.jsx)(d.RadioButton,{id:`${e}-${t}`,name:e,value:t,label:p===`grid`?`${t}${a}`:t,checked:r,onChange:s,disabled:i});return p===`list`?(0,u.jsxs)(`div`,{className:z.count,children:[n,(0,u.jsx)(`span`,{className:z.countValue,children:o})]}):n}default:return p===`list`?(0,u.jsxs)(`div`,{className:z.count,children:[(0,u.jsx)(d.Checkbox,{label:t,score:``,checked:r,onChange:s,disabled:i}),(0,u.jsx)(`span`,{className:z.countValue,children:o})]}):(0,u.jsx)(d.Checkbox,{label:t,score:a,checked:r,onChange:s,disabled:i})}};return(0,u.jsx)(d.FilterPanelBase,{title:t,collapsible:o,collapsed:o?s:!1,className:m&&I.length>0?z.active:void 0,children:(0,u.jsxs)(`ul`,{className:p===`grid`?z.grid:z.list,style:{listStyle:`none`,padding:0,margin:0},children:[G.map(([e,t])=>(0,u.jsx)(`li`,{children:K(e,t)},e)),W&&N<U.length&&(()=>{let e=U.length-N,t=Math.min(50,e);return(0,u.jsx)(`li`,{className:z.toggleItem,children:(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,onClick:()=>P(e=>e+50),children:`Show ${t} more of ${U.length} total`})})})()]})})},V={disabledMessage:`_disabledMessage_adany_1`,histogram:`_histogram_adany_6`,histogramLayer:`_histogramLayer_adany_14`,histogramLive:`_histogramLive_adany_22`,histogramLit:`_histogramLit_adany_23`,histogramFill:`_histogramFill_adany_30`,histogramBar:`_histogramBar_adany_43`,histogramSeparators:`_histogramSeparators_adany_61`,histogramSeparator:`_histogramSeparator_adany_48`,active:`_active_adany_76`};function H(e){if(!Number.isFinite(e))return 0;let t=String(e),n=t.indexOf(`.`);return n===-1?0:Math.min(6,t.length-n-1)}function U(e){let t=0;for(let n of e)t=Math.max(t,H(n));return t===0?1:Number((10**-t).toFixed(t))}function W(e,t){return Number(e.toFixed(H(t)))}function G(e,t,n){let r=t+Math.round((e-t)/n)*n;return Number(r.toFixed(H(n)))}var K=({field:e,label:t,expectedMin:n=0,expectedMax:r=1e3,control:i,displayType:a,showActivePanel:o=!1,collapsible:s=!0,startCollapsed:l=!1,showHistogram:f=!1,resolution:p,step:m,stepMarks:h})=>{let{state:{rangeFilters:g,rangeBounds:_,facetStats:v,facets:y,filterableFields:b,facetableFields:x,query:S,facetDebounceDelayMillis:w},setRangeFilter:T,resetRangeFilter:E,allowEmptySearch:D,isFetchingInitial:O}=C(),k=i??a??`input`,A=_?.[e]!==void 0,j=_?.[e]??{min:n,max:r},M=j.min,N=j.max,P=v?.[e]??j,F=Math.max(M,Math.min(N,P.min)),I=Math.max(M,Math.min(N,P.max)),L=c.default.useMemo(()=>{if(m)return m;let t=Math.max(H(M),H(N)),n=y?.[e];if(Array.isArray(n))for(let e of n)t=Math.max(t,H(Number(e.key)));return t===0?1:Number((10**-t).toFixed(t))},[m,M,N,y,e]),z=A&&M===N,B=z?n:M,U=z?r:N,K=g?.[e],q=o&&K!==void 0?V.active:void 0,ee=K?K.min:M,J=K?K.max:N,Y=K!==void 0,te=F!==M||I!==N,[X,Z]=c.default.useState([ee,J]),[ne,re]=c.default.useState(!1),[ie,ae]=c.default.useState(!1),[Q,oe]=c.default.useState(String(ee)),[$,se]=c.default.useState(String(J)),ce=c.default.useMemo(()=>{let e=H(L);return{width:`calc(${Math.max(3,M.toFixed(e).length,N.toFixed(e).length,Q.length,$.length)+1}ch + 20px)`}},[L,M,N,Q,$]);c.default.useEffect(()=>{oe(String(X[0])),se(String(X[1]))},[X]);let{finalMin:le,finalMax:ue,isValidMin:de,isValidMax:fe}=c.default.useMemo(()=>{let[e,t]=X,n=Math.max(M,Math.min(N,e)),r=Math.max(M,Math.min(N,t)),i=Math.min(n,r),a=Math.max(n,r);return{finalMin:i,finalMax:a,isValidMin:i>=M&&i<=a,isValidMax:a<=N&&a>=i}},[X,M,N]);c.default.useEffect(()=>{if(z)return;if(X[0]===M&&X[1]===N){re(!1),ae(!1);return}let t=w??500,n=setTimeout(()=>{re(!de),ae(!fe)},300),r=setTimeout(()=>{de&&fe&&(le===M&&ue===N?E(e,!1):T(e,le,ue))},t);return()=>{clearTimeout(n),clearTimeout(r)}},[le,ue,de,fe,M,N,e,E,T,w,z]),c.default.useEffect(()=>{Z([ee,J]),re(!1),ae(!1)},[ee,J,e]);let pe=c.default.useCallback(e=>{let t=W(Math.min(e[0],e[1]-L),L);return[t,W(Math.max(e[1]-L,t),L)]},[L]),me=c.default.useCallback(e=>{if(z)return;let[t,n]=pe(e);Z([Math.max(M,Math.min(I,t)),Math.max(F,Math.min(N,n))])},[z,pe,M,N,F,I]),he=c.default.useCallback(t=>{if(z)return;let[n,r]=pe(t),i=Math.max(M,Math.min(I,n)),a=Math.max(F,Math.min(N,r));i===M&&a===N?(Z([M,N]),E(e,!0)):Z([i,a])},[z,pe,M,N,F,I,e,E]),ge=c.default.useRef(null),_e=c.default.useCallback((t,n)=>{if(z)return;let r=ge.current;if(K&&r&&r.start===t&&r.last===n){ge.current=null,Z([M,N]),E(e,!0);return}let i=G(Math.max(M,F,t),M,L),a=Math.max(i,G(Math.min(N,I,n),M,L));ge.current={start:t,last:n},Z([i,a])},[z,K,M,N,F,I,L,e,E]),ve=c.default.useCallback(()=>{if(z)return;let e=Q.trim(),t=e===``?NaN:Number(e);if(isNaN(t)){oe(String(X[0]));return}let n=Math.max(M,Math.min(I,t));n<X[1]?Z([n,X[1]]):Z([M,X[1]]),oe(String(n<X[1]?n:M))},[z,Q,X,M,I]),ye=c.default.useCallback(()=>{if(z)return;let e=$.trim(),t=e===``?NaN:Number(e);if(isNaN(t)){se(String(X[1]));return}let n=Math.max(F,Math.min(N,t));n>X[0]?Z([X[0],n]):Z([X[0],N]),se(String(n>X[0]?n:N))},[z,$,X,F,N]),be=e=>t=>{t.key===`Enter`&&e()},[xe,Se]=c.default.useState(null),Ce=c.default.useRef(null);c.default.useEffect(()=>{if(!f)return;let t=`${M}:${N}`;if(t===Ce.current&&Ce.current!==null)return;let n=y?.[e];if(!Array.isArray(n)||n.length===0)return;let r=n.filter(e=>e.value!=null&&!isNaN(Number(e.key))).map(e=>({key:e.key,value:e.value}));r.length>0&&(Ce.current=t,Se(r))},[M,N,y,e,f]);let we=c.default.useMemo(()=>{if(!f||!xe||xe.length===0)return[];let e=N-M;if(e<=0)return[];let t=p??(Math.ceil(e/20)||1),n=Math.ceil(e/t);return Array.from({length:n},(e,r)=>{let i=M+r*t,a=M+(r+1)*t,o=r===n-1,s=xe.filter(e=>{let t=Number(e.key);return t>=i&&(t<a||o&&t<=N)}).reduce((e,t)=>e+t.value,0),c=o?N:W(a-L,L);return{bucketStart:i,bucketEnd:a,count:s,last:c,barEnd:W(c+L,L)}}).map((e,t,n)=>({...e,span:(t+1<n.length?n[t+1].bucketStart:e.barEnd)-e.bucketStart}))},[f,xe,M,N,p,L]),Te=c.default.useMemo(()=>Math.max(...we.map(e=>e.count),1),[we]);return f&&!O&&!x?.includes(e)&&console.warn(`RangeFilterPanel: showHistogram=true but field "${e}" is not facetable. Add .Facetable = true to this field.`),O?(0,u.jsx)(R,{title:t,variant:`slider`,withHistogram:f,collapsible:s,startCollapsed:l}):!D&&!S?null:b?.includes(e)?k===`slider`?(0,u.jsxs)(d.FilterPanelBase,{title:t,collapsed:l,collapsible:s,className:q,children:[z&&(0,u.jsxs)(`div`,{className:V.disabledMessage,children:[`No adjustable range (all results have the same value: `,M,`).`]}),f&&we.length===0&&(0,u.jsx)(`div`,{className:V.histogram}),f&&we.length>0&&(()=>{let[e,t]=I>F&&(F>M||I<N)?[F,I]:[B,U],n=Math.max(le,e),r=Math.min(ue,t),i=U+L,a=i-B||1,o=e=>Math.max(0,Math.min(1,(e-B)/a)),s=e=>Math.max(0,Math.min(1,(i-(e+L))/a)),c=o(n),l=r<n?1-c:s(r),d=e=>`calc(10px + (100% - 20px) * ${e})`,f=`inset(0 ${d(l)} 0 ${d(c)})`,p=`inset(0 ${d(s(t))} 0 ${d(o(e))})`,m=n=>n.last<e||n.bucketStart>t,h=we.slice(1).map(e=>d((e.bucketStart-B)/a)),g=we.map(e=>({...e,height:Math.max(1,Math.ceil(e.count/Te*20))}));return(0,u.jsxs)(`div`,{className:V.histogram,children:[(0,u.jsx)(`div`,{className:V.histogramLayer,children:g.map((e,t)=>(0,u.jsx)(`button`,{type:`button`,className:V.histogramBar,style:{flexGrow:e.span},"data-testid":`histogram-bar`,disabled:z||m(e),"aria-label":`${e.bucketStart} to ${e.last}: ${e.count}`,title:`${e.bucketStart} to ${e.last}: ${e.count}`,onClick:()=>_e(e.bucketStart,e.last),children:(0,u.jsx)(`span`,{className:V.histogramFill,style:{height:`${e.height}px`}})},t))}),(0,u.jsx)(`div`,{className:`${V.histogramLayer} ${V.histogramLive}`,"aria-hidden":`true`,"data-testid":`histogram-live`,style:{clipPath:p},children:g.map((e,t)=>(0,u.jsx)(`span`,{className:V.histogramBar,style:{flexGrow:e.span},children:(0,u.jsx)(`span`,{className:V.histogramFill,style:{height:`${e.height}px`}})},t))}),(0,u.jsx)(`div`,{className:`${V.histogramLayer} ${V.histogramLit}`,"aria-hidden":`true`,"data-testid":`histogram-lit`,style:{clipPath:f},children:g.map((e,t)=>(0,u.jsx)(`span`,{className:V.histogramBar,style:{flexGrow:e.span},children:(0,u.jsx)(`span`,{className:V.histogramFill,style:{height:`${e.height}px`}})},t))}),(0,u.jsx)(`div`,{className:V.histogramSeparators,"aria-hidden":`true`,children:h.map((e,t)=>(0,u.jsx)(`span`,{className:V.histogramSeparator,style:{left:e}},t))})]})})(),(0,u.jsx)(`div`,{style:{padding:`10px 10px 20px 10px`},children:(0,u.jsx)(d.Slider,{min:B,max:W(U+L,L),step:L,stepMarks:h,value:z?[B,W(U+L,L)]:[G(le,B,L),G(ue+L,B,L)],isRange:!0,onChange:e=>me(e),onFinalChange:e=>he(e),disabled:z,activeMin:F,activeMax:W(I+L,L),isFaceted:te,highlightFaceted:Y,"aria-label":t||`Filter by ${e}`})}),(0,u.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,alignItems:`flex-start`,justifyContent:`space-between`},children:[(0,u.jsx)(d.InputField,{label:`Min:`,type:`number`,style:ce,value:z?String(M):Q,min:M,max:W(Math.min(I,X[1]-L),L),onChange:e=>oe(e.target.value),onBlur:ve,onKeyDown:be(ve),disabled:z,isValid:z||!ne}),(0,u.jsx)(d.InputField,{label:`Max:`,type:`number`,style:ce,value:z?String(N):$,min:W(Math.max(F,X[0]+L),L),max:N,onChange:e=>se(e.target.value),onBlur:ye,onKeyDown:be(ye),disabled:z,isValid:z||!ie})]})]}):(0,u.jsxs)(d.FilterPanelBase,{title:t,className:q,children:[z&&(0,u.jsxs)(`div`,{className:V.disabledMessage,children:[`No adjustable range (all results have the same value: `,M,`).`]}),(0,u.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,alignItems:`flex-start`},children:[(0,u.jsx)(d.InputField,{label:`Min:`,type:`number`,style:ce,value:z?String(M):Q,min:M,max:W(Math.min(I,X[1]-L),L),onChange:e=>oe(e.target.value),onBlur:ve,onKeyDown:be(ve),disabled:z,isValid:z||!ne}),(0,u.jsx)(d.InputField,{label:`Max:`,type:`number`,style:ce,value:z?String(N):$,min:W(Math.max(F,X[0]+L),L),max:N,onChange:e=>se(e.target.value),onBlur:ye,onKeyDown:be(ye),disabled:z,isValid:z||!ie})]})]}):(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{style:{color:`red`,fontSize:`12px`},children:[`Cannot render filter for "`,e,`": missing filterable.`]})})},q={list:`_list_apmmi_2`,grid:`_grid_apmmi_9`,count:`_count_apmmi_22`,countValue:`_countValue_apmmi_31`,chip:`_chip_apmmi_35`,error:`_error_apmmi_40`,active:`_active_apmmi_46`};function ee(e,t){if(!t)return null;let n=0,r=!1;for(let i of t){let t=Number(i.key);if(!(Number.isNaN(t)||!e.contains(t))){if(typeof i.value!=`number`)return null;n+=i.value,r=!0}}return r?n:0}var J=({field:e,label:t,width:n,buckets:r,control:i,displayType:a,layout:o=`list`,showCount:s=!0,showEmpty:l=!1,limit:f,showActivePanel:p=!1,collapsible:m=!0,startCollapsed:h=!1})=>{let{state:{facets:g,filterableFields:_,facetableFields:v,bucketFilters:y,rangeBounds:b,facetStats:x,query:S},toggleBucketFilter:w,isFetchingInitial:T,allowEmptySearch:E}=C(),D=i??a??`checkbox`,O=g?.[e],k=y[e]??[],[A,j]=(0,c.useState)(f??1/0);(0,c.useEffect)(()=>{j(f??1/0)},[f,O]);let M=b?.[e]??x?.[e],N=(0,c.useMemo)(()=>{let e=[];if(M&&e.push(M.min,M.max),Array.isArray(O))for(let t of O)e.push(Number(t.key));return U(e.filter(Number.isFinite))},[M,O]),P=(0,c.useMemo)(()=>{let e=M?.min??-Number.MAX_VALUE,t=M?.max??Number.MAX_VALUE,i=(n,r,i)=>({label:i??(n===void 0?`up to ${r}`:r===void 0?`${n} and up`:`${n}-${r}`),range:{min:n??e,max:r??t},contains:e=>(n===void 0||e>=n)&&(r===void 0||e<=r)});if(r&&r.length>0)return r.map(e=>i(e.min,e.max,e.label));if(Array.isArray(n)){let e=[...n].sort((e,t)=>e-t),t=[];for(let n=0;n<e.length-1;n++)t.push(i(e[n],W(e[n+1]-N,N)));return t}if(typeof n==`number`&&n>0&&M){let e=[],t=Math.floor(M.min/n)*n;for(let r=t;r<=M.max;r=W(r+n,N))e.push(i(W(r,N),W(r+n-N,N)));return e}return[]},[r,n,M,N]);if(T||!g)return(0,u.jsx)(R,{title:t,rows:Math.max(1,Math.min(P.length||5,8)),collapsible:m,startCollapsed:h});if(!E&&!S)return null;if(!_?.includes(e))return(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{className:q.error,children:[`Cannot render buckets for "`,e,`": field is not filterable.`]})});let F=v?.includes(e)&&Array.isArray(O),I=e=>k.some(t=>t.min===e.range.min&&t.max===e.range.max),L=P.map(e=>({bucket:e,count:F?ee(e,O):null}));if(l||(L=L.filter(e=>e.count!==0||I(e.bucket))),L.length===0)return null;let z=L.slice(0,A),B=(t,n)=>{let r=I(t),i=n===0&&!r,a=s&&(n??0)>0?`${n}`:``,c=()=>w(e,t.range,D===`radio`);if(D===`radio`){let n=(0,u.jsx)(d.RadioButton,{id:`${e}-${t.range.min}-${t.range.max}`,name:e,value:t.label,label:o===`grid`&&a?`${t.label} (${a})`:t.label,checked:r,onChange:c,disabled:i});return o===`list`?(0,u.jsxs)(`div`,{className:q.count,children:[n,(0,u.jsx)(`span`,{className:q.countValue,children:a})]}):n}if(D===`button`){let e=(0,u.jsx)(d.Button,{variant:r?`primary`:`secondary`,onClick:c,disabled:i,size:`micro`,className:q.chip,children:o===`grid`&&a?`${t.label} (${a})`:t.label});return o===`list`?(0,u.jsxs)(`div`,{className:q.count,children:[e,(0,u.jsx)(`span`,{className:q.countValue,children:a})]}):e}return o===`list`?(0,u.jsxs)(`div`,{className:q.count,children:[(0,u.jsx)(d.Checkbox,{label:t.label,score:``,checked:r,onChange:c,disabled:i}),(0,u.jsx)(`span`,{className:q.countValue,children:a})]}):(0,u.jsx)(d.Checkbox,{label:t.label,score:a?` (${a})`:``,checked:r,onChange:c,disabled:i})};return(0,u.jsx)(d.FilterPanelBase,{title:t,collapsible:m,collapsed:m?h:!1,className:p&&k.length>0?q.active:void 0,children:(0,u.jsxs)(`ul`,{className:o===`grid`?q.grid:q.list,style:{listStyle:`none`,padding:0,margin:0},children:[z.map(({bucket:e,count:t})=>(0,u.jsx)(`li`,{children:B(e,t)},`${e.range.min}-${e.range.max}`)),z.length<L.length&&(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,onClick:()=>j(L.length),children:`Show ${L.length-z.length} more of ${L.length} total`})})]})})},Y={grid:`_grid_xm2uh_2`,chip:`_chip_xm2uh_17`,chipLabel:`_chipLabel_xm2uh_28`},te=(0,c.memo)(({field:e,value:t,onReset:n})=>(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:n,iconRight:(0,u.jsx)(f.X_or_error,{}),variant:`primary`,size:`micro`,className:Y.chip,title:`${e}: ${t}`,children:(0,u.jsxs)(`span`,{className:Y.chipLabel,children:[e,`: `,t]})})})),X=(0,c.memo)(({field:e,min:t,max:n,onReset:r})=>(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:r,iconRight:(0,u.jsx)(f.X_or_error,{}),variant:`primary`,size:`micro`,className:Y.chip,title:`${e}: ${t} – ${n}`,children:(0,u.jsxs)(`span`,{className:Y.chipLabel,children:[e,`: `,t,` – `,n]})})})),Z=(0,c.memo)(({field:e,label:t,onReset:n})=>(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:n,iconRight:(0,u.jsx)(f.X_or_error,{}),variant:`primary`,size:`micro`,className:Y.chip,title:`${e}: ${t}`,children:(0,u.jsxs)(`span`,{className:Y.chipLabel,children:[e,`: `,t]})})}));function ne(){let{state:{filters:e,rangeFilters:t,bucketFilters:n},resetFilters:r,resetSingleFilter:i,resetRangeFilter:a,resetBucketFilter:o}=C(),s=(0,c.useMemo)(()=>Object.entries(e).map(([e,t])=>t.map(t=>({field:e,value:t}))).flat(),[e]),l=(0,c.useMemo)(()=>Object.entries(t).map(([e,{min:t,max:n}])=>({field:e,min:t,max:n})),[t]),f=(0,c.useMemo)(()=>Object.entries(n).flatMap(([e,t])=>t.map(t=>({field:e,range:t,label:`${t.min}-${t.max}`}))),[n]);return(0,c.useMemo)(()=>Object.keys(e).length>0||Object.keys(t).length>0||f.length>0,[e,t,f])?(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,title:`Active filters`,children:(0,u.jsxs)(`ul`,{className:Y.grid,children:[s.map(({field:e,value:t})=>(0,u.jsx)(te,{field:e,value:t,onReset:()=>i(e,t)},`${e}-${t}`)),l.map(({field:e,min:t,max:n})=>(0,u.jsx)(X,{field:e,min:t,max:n,onReset:()=>a(e)},e)),f.map(({field:e,range:t,label:n})=>(0,u.jsx)(Z,{field:e,label:n,onReset:()=>o(e,t)},`${e}-${t.min}-${t.max}`)),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:r,size:`micro`,variant:`ghost`,children:`Reset`})})]})}):null}var re={select:`_select_nwf7i_1`,radioGroup:`_radioGroup_nwf7i_6`},ie=({control:e,displayType:t,collapsible:n=!0,startCollapsed:r=!1})=>{let i=e??(t===`radio`?`radio`:`select`),{state:{sortableFields:a,sortBy:o,sortAscending:s},setSort:c,isFetchingInitial:l}=C();if(l)return(0,u.jsx)(R,{title:`Sort by`,rows:i===`radio`?3:1,collapsible:n,startCollapsed:r});if(!a||a.length===0)return null;let f=o?`${o}:${s?`asc`:`desc`}`:`none`,p=[{label:`None`,value:`none`},...a.flatMap(e=>[{label:`${e} (asc)`,value:`${e}:asc`},{label:`${e} (desc)`,value:`${e}:desc`}])],m=e=>{if(e===`none`||e===``)c(null,!0);else{let[t,n]=e.split(`:`);c(t,n===`asc`)}};return(0,u.jsx)(d.FilterPanelBase,{title:`Sort by`,collapsible:n,collapsed:n?r:!1,children:i===`select`?(0,u.jsx)(d.Select,{value:f,onValueChange:m,options:p,placeholder:`Select sort...`,"aria-label":`Sort by`}):(0,u.jsx)(`div`,{className:re.radioGroup,children:p.map(e=>(0,u.jsx)(d.RadioButton,{id:`sort-${e.value}`,name:`sort-by`,value:e.value,label:e.label,checked:f===e.value,onChange:e=>m(e.target.value)},e.value))})})},ae={list:`_list_1y4fk_1`};function Q(){let{state:{searchSettings:e},setSearchSettings:t}=C(),[n,r]=(0,c.useState)(!1),i=(e,n)=>{let r=parseInt(n,10);isNaN(r)||t({[e]:r})},a=(e,n)=>{t({[e]:n})},o=(n,r)=>{let i=parseInt(r,10);isNaN(i)||t({coverageSetup:{...e.coverageSetup,[n]:i}})},s=(n,r)=>{t({coverageSetup:{...e.coverageSetup,[n]:r}})};return(0,u.jsx)(d.FilterPanelBase,{collapsed:!0,title:`Settings`,children:(0,u.jsxs)(`ul`,{className:ae.list,children:[(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Max Results`,type:`number`,value:e.maxNumberOfRecordsToReturn.toString(),onChange:e=>i(`maxNumberOfRecordsToReturn`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Coverage Depth`,type:`number`,value:e.coverageDepth.toString(),onChange:e=>i(`coverageDepth`,e.target.value)})}),(0,u.jsxs)(`li`,{children:[(0,u.jsx)(d.InputField,{label:`Minimum Score (16 bit)`,type:`number`,value:e.minimumScore.toString(),min:`0`,max:`65535`,onChange:e=>{let n=parseFloat(e.target.value);isNaN(n)||t({minimumScore:n})}}),(0,u.jsx)(`div`,{style:{padding:`10px 10px 20px 10px`},children:(0,u.jsx)(d.Slider,{min:0,max:65535,step:1,value:Math.max(0,Math.min(65535,Math.round(e.minimumScore))),onChange:e=>{t({minimumScore:e})},"aria-label":`Minimum score`})})]}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Placeholder text`,type:`text`,value:e.placeholderText,onChange:e=>{t({placeholderText:e.target.value})}})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Show score`,checked:e.showScore,onChange:e=>a(`showScore`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Enable Coverage`,checked:e.enableCoverage,onChange:e=>a(`enableCoverage`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Remove Duplicates`,checked:e.removeDuplicates,onChange:e=>a(`removeDuplicates`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,iconRight:n?(0,u.jsx)(f.ArrowDown,{}):(0,u.jsx)(f.ArrowRight,{}),onClick:()=>r(e=>!e),children:n?`Hide Coverage Setup`:`Show Coverage Setup`})}),n&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Whole Query`,checked:e.coverageSetup.coverWholeQuery,onChange:e=>s(`coverWholeQuery`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Whole Words`,checked:e.coverageSetup.coverWholeWords,onChange:e=>s(`coverWholeWords`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Fuzzy Words`,checked:e.coverageSetup.coverFuzzyWords,onChange:e=>s(`coverFuzzyWords`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Joined Words`,checked:e.coverageSetup.coverJoinedWords,onChange:e=>s(`coverJoinedWords`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Prefix Suffix`,checked:e.coverageSetup.coverPrefixSuffix,onChange:e=>s(`coverPrefixSuffix`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Truncate`,checked:e.coverageSetup.truncate,onChange:e=>s(`truncate`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Include Pattern Matches`,checked:e.coverageSetup.includePatternMatches,onChange:e=>s(`includePatternMatches`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Levenshtein Max Word Size`,type:`number`,value:e.coverageSetup.levenshteinMaxWordSize.toString(),onChange:e=>o(`levenshteinMaxWordSize`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Min Word Size`,type:`number`,value:e.coverageSetup.minWordSize.toString(),onChange:e=>o(`minWordSize`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Truncate Word Hit Limit`,type:`number`,value:e.coverageSetup.truncateWordHitLimit.toString(),onChange:e=>o(`truncateWordHitLimit`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Truncate Word Hit Tolerance`,type:`number`,value:e.coverageSetup.truncateWordHitTolerance.toString(),onChange:e=>o(`truncateWordHitTolerance`,e.target.value)})})]})]})})}var oe=class extends c.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`[SearchErrorBoundary] Caught error:`,e,t)}reset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback(this.state.error,this.reset):(0,u.jsxs)(`div`,{style:{padding:`2rem`,backgroundColor:`#fee`,border:`2px solid #c33`,borderRadius:`8px`,maxWidth:`600px`,margin:`2rem auto`},children:[(0,u.jsx)(`h2`,{style:{color:`#c33`,marginTop:0},children:`⚠️ Search Initialization Error`}),(0,u.jsxs)(`p`,{style:{marginBottom:`1rem`},children:[(0,u.jsx)(`strong`,{children:`Error:`}),` `,this.state.error.message]}),(0,u.jsxs)(`div`,{style:{backgroundColor:`#fff`,padding:`1rem`,borderRadius:`4px`,marginBottom:`1rem`,fontSize:`0.9rem`},children:[(0,u.jsx)(`strong`,{children:`💡 Common fixes:`}),(0,u.jsxs)(`ul`,{style:{marginBottom:0,paddingLeft:`1.5rem`},children:[(0,u.jsx)(`li`,{children:`Check browser console for detailed error messages`}),(0,u.jsx)(`li`,{children:`Verify the url passed to SearchProvider is correct`}),(0,u.jsx)(`li`,{children:`Verify your bearer token is valid (create or check it on the Indx Dashboard)`}),(0,u.jsx)(`li`,{children:`Ensure INDX server is running`}),(0,u.jsx)(`li`,{children:`Check dataset name spelling`})]})]}),(0,u.jsx)(d.Button,{variant:`primary`,size:`micro`,onClick:this.reset,children:`Try Again`})]}):this.props.children}};function $(e,t){let{url:n,team:r,dataset:i,authenticatedFetch:a}=C(),[o,s]=(0,c.useState)(null),[l,u]=(0,c.useState)(!1),[d,f]=(0,c.useState)(void 0);return{results:o,isLoading:l,error:d,search:(0,c.useCallback)(async o=>{u(!0),f(void 0);try{let c=await e(o),l={fieldName:t.fieldName,vector:c,maxResults:t.maxResults??10};t.filter&&(l.filter=t.filter);let u=await a(`${n}/api/teams/${r}/datasets/${i}/search/vector`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(l)});if(!u.ok)throw await m.fromResponse(`VectorSearch`,u);let d=await u.json();if(d.length===0){s([]);return}let f=d.map(e=>e.documentKey),p=await a(`${n}/api/teams/${r}/datasets/${i}/documents/lookup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(f)});if(!p.ok)throw await m.fromResponse(`GetJson`,p);s((await p.json()).map((e,t)=>({document:e,documentKey:f[t],score:d[t].score})))}catch(e){f(e instanceof Error?e.message:`Vector search failed`),s(null)}finally{u(!1)}},[e,t.fieldName,t.maxResults,t.filter,n,r,i,a])}}function se(e,t){let{url:n,team:r,dataset:i,authenticatedFetch:a}=C(),[o,s]=(0,c.useState)(null),[l,u]=(0,c.useState)(!1),[d,f]=(0,c.useState)(void 0);return{results:o,isLoading:l,error:d,search:(0,c.useCallback)(async o=>{u(!0),f(void 0);try{let c=await e(o),l={text:o,embeddingField:t.fieldName,vector:c,maxNumberOfRecordsToReturn:t.maxResults??10,alpha:t.alpha??.5};t.filter&&(l.filter=t.filter),t.timeoutMs&&(l.timeOutLimitMilliseconds=t.timeoutMs);let u=await a(`${n}/api/teams/${r}/datasets/${i}/search/hybrid`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(l)});if(!u.ok)throw await m.fromResponse(`HybridSearch`,u);let d=await u.json();if(d.length===0){s([]);return}let f=d.map(e=>e.documentKey),p=await a(`${n}/api/teams/${r}/datasets/${i}/documents/lookup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(f)});if(!p.ok)throw await m.fromResponse(`GetJson`,p);s((await p.json()).map((e,t)=>({document:e,documentKey:f[t],score:d[t].score})))}catch(e){f(e instanceof Error?e.message:`Hybrid search failed`),s(null)}finally{u(!1)}},[e,t.fieldName,t.alpha,t.maxResults,t.filter,t.timeoutMs,n,r,i,a])}}exports.ActiveFiltersPanel=ne,exports.BucketFilterPanel=J,exports.FilterPanelSkeleton=R,exports.IndxApiError=m,exports.RangeFilterPanel=K,exports.SearchContext=x,exports.SearchErrorBoundary=oe,exports.SearchInput=w,exports.SearchProvider=S,exports.SearchResult=D,exports.SearchResultRow=F,exports.SearchResults=N,exports.SearchResultsSkeleton=A,exports.SearchSettingsPanel=Q,exports.SortByPanel=ie,exports.ValueFilterPanel=B,exports.useHybridSearch=se,exports.useSearch=C,exports.useSearchContext=C,exports.useVectorSearch=$;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));require("@indxsearch/systm/styles.css");let c=require("react");c=s(c);let l=require("@indxsearch/indx-types"),u=require("react/jsx-runtime"),d=require("@indxsearch/systm"),f=require("@indxsearch/pixl");function p({url:e,team:t,dataset:n,preAuthenticatedToken:r,enableDebugLogs:i=!1}){let[a,o]=(0,c.useState)(null),[s,u]=(0,c.useState)(!0),[d,f]=(0,c.useState)([]),[p,m]=(0,c.useState)([]),[h,g]=(0,c.useState)([]),[_,v]=(0,c.useState)({}),[y,b]=(0,c.useState)({}),[x,S]=(0,c.useState)({}),[C,w]=(0,c.useState)(0),[T,E]=(0,c.useState)(null);return(0,c.useEffect)(()=>{(async()=>{E(null);try{if(!r)throw console.error(`[Auth] ❌ Missing bearer token`),console.error(`[Auth] 💡 Pass preAuthenticatedToken to SearchProvider (create a token on the Indx Dashboard)`),Error(`A bearer token is required. Check console for instructions.`);if(!e)throw console.error(`[Auth] ❌ Missing INDX server URL`),console.error(`[Auth] 💡 Pass a url to SearchProvider`),Error(`INDX server URL is required. Check console for instructions.`);if(!n)throw console.error(`[Auth] ❌ Missing dataset name`),console.error(`[Auth] 💡 Pass dataset="your-dataset-name" to SearchProvider`),Error(`Dataset name is required. Check console for instructions.`);i&&console.log(`[Auth] ✅ Using bearer token`);let a=r,s=e=>fetch(e,{method:`GET`,headers:{accept:`text/plain`,Authorization:`Bearer ${a}`}});i&&console.log(`[Auth] 🔍 Checking dataset status...`);let c=await s(`${e}/api/teams/${t}/datasets/${n}/status`);if(!c.ok){if(c.status===401)throw console.error(`[Auth] ❌ Authentication failed (401 Unauthorized)`),console.error(`[Auth] 💡 Your token may be expired or invalid`),console.error(`[Auth] 💡 Create or refresh your token on the Indx Dashboard`),Error(`Authentication failed (401). Token may be expired. Check console for instructions.`);if(c.status===404)throw console.error(`[Auth] ❌ Dataset "`+n+`" not found (404)`),console.error(`[Auth] 💡 Available datasets can be checked with: curl -X GET "`+e+`/api/me/datasets" -H "Authorization: Bearer YOUR_TOKEN"`),console.error(`[Auth] 💡 Make sure you spelled the dataset name correctly`),Error(`Dataset "`+n+`" not found. Check console for instructions.`);{let t=await c.text();throw console.error(`[Auth] ❌ Failed to get dataset status:`,c.status,t),console.error(`[Auth] 💡 Check if your INDX server is running at:`,e),Error(`Failed to connect to INDX server. Check console for details.`)}}let u=await c.json();i&&console.log(`[Auth] 📊 Dataset status:`,u),o(a),i&&console.log(`[Auth] ✅ Dataset session established`),u.systemState!==void 0&&u.systemState!==l.SystemState.Ready&&(console.warn(`[Auth] ⚠️ Dataset is not ready yet. Current state:`,l.SystemState[u.systemState]),console.warn(`[Auth] 💡 Wait for indexing to complete before searching`));let d=u.documentCount??u.numberOfRecords??0;d===0?(console.warn(`[Auth] ⚠️ Dataset "`+n+`" is empty (0 records)`),console.warn(`[Auth] 💡 Add documents to your dataset before searching`),console.warn(`[Auth] 💡 Search will work but return no results`)):i&&console.log(`[Auth] ✅ Dataset has`,d,`records`);let[p,h,_,y]=await Promise.all([s(`${e}/api/teams/${t}/datasets/${n}/fields/filterable`),s(`${e}/api/teams/${t}/datasets/${n}/fields/facetable`),s(`${e}/api/teams/${t}/datasets/${n}/fields/sortable`),s(`${e}/api/teams/${t}/datasets/${n}/fields/configuration`).catch(()=>null)]);if(!p.ok)throw console.error(`[Auth] ❌ GetFilterableFields failed:`,p.status,await p.text()),Error(`Failed to get filterable fields. Check console for details.`);if(!h.ok)throw console.error(`[Auth] ❌ GetFacetableFields failed:`,h.status,await h.text()),Error(`Failed to get facetable fields. Check console for details.`);if(!_.ok)throw console.error(`[Auth] ❌ GetSortableFields failed:`,_.status,await _.text()),Error(`Failed to get sortable fields. Check console for details.`);let[x,C,T]=await Promise.all([p.json().catch(e=>(console.error(`Failed to parse GetFilterableFields response:`,e),[])),h.json().catch(e=>(console.error(`Failed to parse GetFacetableFields response:`,e),[])),_.json().catch(e=>(console.error(`Failed to parse GetSortableFields response:`,e),[]))]);f(x||[]),m(C||[]),g(T||[]),w(d);let E={};if(y?.ok){let e=await y.json().catch(e=>(console.error(`Failed to parse GetFieldConfiguration response:`,e),[]));for(let t of e??[])t?.fieldName&&t?.fieldType&&(E[t.fieldName]=t.fieldType)}else i&&console.log(`[Auth] fields/configuration not available`,y?.status,`- every selected value will be sent as a value filter`);v(E);let D={facets:{}};try{let r=await fetch(`${e}/api/teams/${t}/datasets/${n}/search`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},body:JSON.stringify({text:``,maxNumberOfRecordsToReturn:0,enableFacets:!0})});r.ok?D=await r.json().catch(e=>(console.warn(`Failed to parse blank search response:`,e),{facets:{}})):(console.warn(`Blank search failed:`,r.status,r.statusText),console.warn(`Continuing without initial facet data - facets will be populated after first search`))}catch(e){console.warn(`Blank search error:`,e),console.warn(`Continuing without initial facet data - facets will be populated after first search`)}let O={};if(D.facets){for(let[e,t]of Object.entries(D.facets))if(Array.isArray(t)&&t.length>0){let n=t.map(e=>Number(e.key)).filter(e=>!isNaN(e));n.length>0&&(O[e]={min:Math.min(...n),max:Math.max(...n)})}}let k={};if(D.facets)for(let[e,t]of Object.entries(D.facets))Array.isArray(t)&&(k[e]=t.map(e=>e.key));b(O),S(k),i&&console.log(`[Auth] ✅ Initialization complete`)}catch(t){console.error(`[Auth] ❌ Initialization failed:`,t),(t instanceof Error||typeof t==`object`&&t&&`message`in t)&&console.error(`[Auth] 💡 Error:`,t.message),t instanceof TypeError&&t.message.includes(`fetch`)&&(console.error(`[Auth] ❌ Network error - cannot connect to INDX server`),console.error(`[Auth] 💡 Check if the server is running at:`,e),console.error(`[Auth] 💡 Check the url you passed to SearchProvider`),console.error(`[Auth] 💡 For local development, it should be: http://localhost:5001`)),E(t instanceof Error?t.message:String(t))}finally{u(!1)}})()},[e,t,n]),{token:a,isFetchingInitial:s,authError:T,initialFacetStats:y,initialFacetKeys:x,filterableFields:d,facetableFields:p,sortableFields:h,fieldTypes:_,totalDocumentCount:C}}var m=class e extends Error{status;code;problem;retryAfterSeconds;constructor(e,t,n,r){let i=n?.detail??n?.title;super(`${e} failed: HTTP ${t}${i?` — ${i}`:``}`),this.name=`IndxApiError`,this.status=t,this.code=n?.code,this.problem=n,this.retryAfterSeconds=r}get retryable(){return this.code===`invalidState`&&this.problem?.retryable===!0}static async fromResponse(t,n){let r;try{let e=await n.json();e&&typeof e==`object`&&typeof e.code==`string`?r=e:e&&typeof e==`object`&&(r={...e,code:``})}catch{}let i=n.headers?.get?.(`Retry-After`),a=i!=null&&/^\d+$/.test(i)?Number(i):void 0;return new e(t,n.status,r,a)}};async function h(e,t,n,r,i,a,o){let s=await o(`${r}/api/teams/${i}/datasets/${a}/filters/${e}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!s.ok)throw await m.fromResponse(n,s);let c=await s.json();if(!c||typeof c.hashString!=`string`)throw Error(`${n} failed: server returned no filter token`);return c}async function g(e,t,n,r,i,a){if(e.length===0)return null;if(e.length===1)return e[0];let o=e[0];for(let s=1;s<e.length;s++)o=await h(`combine`,{a:o,b:e[s],useAndOperation:t===`and`},`CombineFilters`,n,r,i,a);return o}async function _(e,t,n,r,i,a,o={},s={},c={}){let l=Object.entries(e??{}).filter(([,e])=>e.length>0),u=Object.entries(t??{}),d=Object.entries(s??{}).filter(([,e])=>e.length>0),f=(e,{min:t,max:o})=>h(`range`,{fieldName:e,lowerLimit:t,upperLimit:o},`Range filter '${e}'`,n,r,i,a),p=(e,t)=>{let o=c[e]===`Number`?Number(t):NaN;return Number.isFinite(o)?f(e,{min:o,max:o}):h(`value`,{fieldName:e,value:t},`Value filter '${e}'`,n,r,i,a)},[m,_,v]=await Promise.all([Promise.all(l.map(async([e,t])=>g(await Promise.all(t.map(t=>p(e,t))),o[e]===`any`?`or`:`and`,n,r,i,a))),Promise.all(u.map(([e,t])=>f(e,t))),Promise.all(d.map(async([e,t])=>g(await Promise.all(t.map(t=>f(e,t))),`or`,n,r,i,a)))]);return g([...m,..._,...v],`and`,n,r,i,a)}function v(e,t){let n,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)};return r.cancel=()=>clearTimeout(n),r}function y({state:e,setState:t,authenticatedFetch:n,auth:r,url:i,team:a,dataset:o,allowEmptySearch:s,facetsEnabled:l,enableDebugLogs:u,shouldFetchMore:d,sessionId:f}){let p=(0,c.useRef)(0),h=(0,c.useRef)(void 0),g=(0,c.useRef)(!1),[y,b]=(0,c.useState)({}),[x,S]=(0,c.useState)(``),[C,w]=(0,c.useState)(``);(0,c.useEffect)(()=>{r.isFetchingInitial||t(e=>({...e,facetStats:r.initialFacetStats,rangeBounds:r.initialFacetStats,totalDocumentCount:r.totalDocumentCount,filterableFields:r.filterableFields,facetableFields:r.facetableFields,sortableFields:r.sortableFields,fieldTypes:r.fieldTypes,fieldsSeeded:!0}))},[r.isFetchingInitial,r.initialFacetStats,r.totalDocumentCount,r.filterableFields,r.facetableFields,r.sortableFields,t]);let T=e.searchSettings.maxNumberOfRecordsToReturn,E=e.searchSettings.enableCoverage,D=e.searchSettings.removeDuplicates,O=e.searchSettings.coverageDepth,k=e.searchSettings.minimumScore,A=e.searchSettings.coverageSetup,j=e.sortBy,M=e.sortAscending,N=(0,c.useCallback)(async({enableFacets:c})=>{if(!r.token)return;let l=++p.current;if(t(e=>({...e,isLoading:!0})),e.query.trim()===``){if(!s)return;c=!0}try{let d=c?Array.from(new Set([...Object.keys(e.filters).filter(t=>e.valueMatch[t]===`any`&&(e.filters[t]?.length??0)>0),...Object.keys(e.bucketFilters).filter(t=>(e.bucketFilters[t]?.length??0)>0)])):[],[h,...g]=await Promise.all([_(e.filters,e.rangeFilters,i,a,o,n,e.valueMatch,e.bucketFilters,e.fieldTypes),...d.map(t=>_({...e.filters,[t]:[]},e.rangeFilters,i,a,o,n,e.valueMatch,{...e.bucketFilters,[t]:[]},e.fieldTypes))]),v=s||e.query.trim()!==``,N={text:e.query,enableCoverage:E,removeDuplicates:D,coverageDepth:O,coverageSetup:A},P={...N,maxNumberOfRecordsToReturn:v?T:0,enableFacets:c,...h?{filter:h}:{},...j?{sortBy:j}:{},...M===void 0?{}:{sortAscending:M}};u&&console.log(`[performSearch] request body:`,JSON.stringify(P,null,2));let F=e=>n(`${i}/api/teams/${a}/datasets/${o}/search?session=${encodeURIComponent(f)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),[I,...L]=await Promise.all([F(P),...g.map(e=>F({...N,maxNumberOfRecordsToReturn:0,enableFacets:!0,...e?{filter:e}:{}}))]);if(!I.ok)throw await m.fromResponse(`Search`,I);let R=await I.json(),z=I.headers.get(`Indx-Query-Id`)??void 0,B=R.truncationIndex??-1,V={};for(let e=0;e<d.length;e++){let t=d[e];if(!L[e].ok)throw await m.fromResponse(`Facets for '${t}'`,L[e]);let n=await L[e].json();n.facets?.[t]!==void 0&&(V[t]=n.facets[t])}let H=R.records||[],U=H.map(e=>e.documentKey),W=H.map(e=>e.score),G=[];if(v&&U.length>0){let e=await n(`${i}/api/teams/${a}/datasets/${o}/documents/lookup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(U)});if(!e.ok)throw await m.fromResponse(`Document lookup`,e);G=(await e.json()).map((e,t)=>({document:e,documentKey:U[t],score:W[t]}))}let K={};if(c&&R.facets){for(let[e,t]of Object.entries(R.facets))if(Array.isArray(t)&&t.length>0){let n=t.map(e=>Number(e.key)).filter(e=>!isNaN(e));n.length>0&&(K[e]={min:Math.min(...n),max:Math.max(...n)})}}if(l!==p.current)return;let q=e.query!==x,ee=e.query!==C,J=e.facetStats??{};if(q?(J={...r.initialFacetStats,...K},b(J),S(e.query)):J={...y,...K},ee&&c){let n={...e.rangeBounds};for(let[e,t]of Object.entries(K))n[e]=t;t(e=>({...e,rangeBounds:n})),w(e.query)}let Y=Object.keys(V).length>0?{...R.facets??{},...V}:R.facets;if(c&&(!Y||Object.keys(Y).length===0)){Y={};for(let[e,t]of Object.entries(r.initialFacetKeys))Y[e]=t.map(e=>({key:e,value:null}))}let te=G.filter(t=>{let n=e.query.trim();return n===``||n.length===1?!0:t.score>=k}).map((e,t)=>({...e,position:t+1}));t(e=>({...e,results:te,error:void 0,resultsSuppressed:!v,...c?{facets:Y,facetStats:J}:{},isLoading:!1,truncationIndex:B,queryId:z}))}catch(e){if(console.error(`[Search] ❌ Search failed:`,e),e instanceof TypeError&&e.message.includes(`fetch`)?(console.error(`[Search] ❌ Network error - cannot reach INDX server`),console.error(`[Search] 💡 Check if server is running at:`,i)):e instanceof Error&&(e.message.includes(`401`)?(console.error(`[Search] ❌ Authentication failed`),console.error(`[Search] 💡 Your token may have expired. Create or refresh it on the Indx Dashboard.`)):e.message.includes(`404`)?(console.error(`[Search] ❌ Dataset not found`),console.error(`[Search] 💡 Check that dataset "`+o+`" exists`)):console.error(`[Search] 💡 Error:`,e.message)),l!==p.current)return;t(t=>({...t,results:null,isLoading:!1,resultsSuppressed:!1,error:e instanceof Error?e.message:`Search failed`}))}},[e.query,e.filters,e.valueMatch,e.rangeFilters,e.bucketFilters,e.facetStats,j,M,T,E,D,O,A,k,n,r.initialFacetStats,r.initialFacetKeys,r.token,y,x,C,e.rangeBounds,i,a,o,s,u,t]);(0,c.useEffect)(()=>{h.current=N},[N]);let P=(0,c.useRef)(null);(0,c.useEffect)(()=>(P.current?.cancel(),P.current=v(()=>{u&&console.log(`Debounced searchWithFacets fired`),h.current?.({enableFacets:!0})},e.facetDebounceDelayMillis??500),()=>{P.current?.cancel()}),[e.facetDebounceDelayMillis]),(0,c.useEffect)(()=>{!r.isFetchingInitial&&r.token&&!g.current&&(s&&h.current?.({enableFacets:l}),g.current=!0)},[r.isFetchingInitial,r.token,s,l]),(0,c.useEffect)(()=>{if(!r.token||!g.current)return;let n=e.query.trim(),i=n===``&&s;if(n===``&&!s){e.resultsSuppressed||t(e=>({...e,resultsSuppressed:!0}));return}return i?(P.current?.cancel(),h.current?.({enableFacets:l})):l?(u&&console.log(`Search fired`),h.current?.({enableFacets:!1}),P.current?.()):h.current?.({enableFacets:!1}),()=>{P.current?.cancel()}},[e.query,s,l]),(0,c.useEffect)(()=>{if(!g.current||!r.token||e.filterRevision===0)return;let t=e.query.trim();!s&&t===``||h.current?.({enableFacets:l})},[e.filterRevision]),(0,c.useEffect)(()=>{if(!g.current||!r.token)return;let t=e.query.trim();!s&&t===``||h.current?.({enableFacets:l})},[j,M]);let F=(0,c.useRef)(!0),I=(0,c.useRef)(e.query);(0,c.useEffect)(()=>{if(F.current){F.current=!1;return}if(I.current!==e.query||!g.current||!r.token)return;if(d.current){d.current=!1,h.current?.({enableFacets:!1});return}let t=e.query.trim();!s&&t===``||h.current?.({enableFacets:l})},[T,E,D,O,A,k]),(0,c.useEffect)(()=>{I.current=e.query},[e.query])}function b(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}var x=(0,c.createContext)(void 0),S=({children:e,url:t,team:n,dataset:r,allowEmptySearch:i=!1,maxResults:a=10,facetDebounceDelayMillis:o=500,enableFacets:s=!0,coverageDepth:l=500,removeDuplicates:d=!0,enableCoverage:f=!0,initialCoverageSetup:m={},enableDebugLogs:h=!1,preAuthenticatedToken:g})=>{let _=(0,c.useRef)(!1),v=(0,c.useRef)(b()).current,S=(0,c.useRef)(a),[C,w]=(0,c.useState)({query:``,results:null,isLoading:!1,resultsSuppressed:!i,facetDebounceDelayMillis:o,filterableFields:[],facetableFields:[],sortableFields:[],fieldTypes:{},filters:{},valueMatch:{},rangeFilters:{},bucketFilters:{},filterRevision:0,fieldsSeeded:!1,facetStats:{},rangeBounds:{},searchSettings:{maxNumberOfRecordsToReturn:a,coverageDepth:l,enableCoverage:f,removeDuplicates:d,minimumScore:0,showScore:!0,placeholderText:`Type to search`,coverageSetup:{coverWholeQuery:!0,coverWholeWords:!0,coverFuzzyWords:!0,coverJoinedWords:!0,coverPrefixSuffix:!0,truncate:!0,includePatternMatches:!0,minWordSize:2,levenshteinMaxWordSize:20,truncateWordHitLimit:1,truncateWordHitTolerance:0,truncationScore:65024,...m}}});(0,c.useEffect)(()=>{h&&console.log(`SearchContext mounted on client`)},[h]),(0,c.useEffect)(()=>{w(e=>({...e,facetDebounceDelayMillis:o}))},[o]);let[T]=(0,c.useState)(s),E=p({url:t,team:n,dataset:r,preAuthenticatedToken:g,enableDebugLogs:h}),D=(0,c.useCallback)((e,t={})=>{if(!E.token)throw Error(`No authentication token available`);return fetch(e,{...t,headers:{...t.headers,Authorization:`Bearer ${E.token}`}})},[E.token]);y({state:C,setState:w,authenticatedFetch:D,auth:E,url:t,team:n,dataset:r,allowEmptySearch:i,facetsEnabled:T,enableDebugLogs:h,shouldFetchMore:_,sessionId:v});let O=(0,c.useRef)(void 0);O.current=C.queryId;let k=(0,c.useCallback)(async e=>{if(E.token)try{let i=await D(`${t}/api/teams/${n}/datasets/${r}/events/select`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({queryId:O.current,documentKey:e.documentKey,position:e.position})});h&&(i.ok?console.log(`[select] document ${e.documentKey} at position ${e.position}`):console.warn(`[select] not recorded: ${i.status}`))}catch(e){h&&console.warn(`[select] failed:`,e)}},[E.token,D,t,n,r,h]),A=(0,c.useCallback)(e=>{w(t=>{let n=Object.keys(t.filters).length>0,r=Object.keys(t.rangeFilters).length>0,i=Object.keys(t.bucketFilters).length>0;return{...t,query:e,filters:n?{}:t.filters,rangeFilters:r?{}:t.rangeFilters,bucketFilters:i?{}:t.bucketFilters,searchSettings:{...t.searchSettings,maxNumberOfRecordsToReturn:S.current}}})},[]),j=(0,c.useCallback)(e=>{w(t=>({...t,facetDebounceDelayMillis:e}))},[]),M=(0,c.useCallback)(e=>{typeof e.maxNumberOfRecordsToReturn==`number`&&(S.current=e.maxNumberOfRecordsToReturn),w(t=>{let n={...t.searchSettings,...e};return e.coverageSetup?n.coverageSetup={...t.searchSettings.coverageSetup,...e.coverageSetup}:n.coverageSetup=t.searchSettings.coverageSetup,{...t,searchSettings:n}})},[]),N=(0,c.useCallback)(e=>{_.current=!0,w(t=>({...t,searchSettings:{...t.searchSettings,maxNumberOfRecordsToReturn:e}}))},[]),P=(0,c.useCallback)((e,t,n=!1)=>{w(r=>{let i={...r.filters},a=i[e]||[],o=a.includes(t)?a.filter(e=>e!==t):n?[t]:[...a,t];return o.length?i[e]=o:delete i[e],{...r,filters:i,filterRevision:r.filterRevision+1}})},[]),F=(0,c.useCallback)((e,t)=>{w(n=>n.valueMatch[e]===t?n:{...n,valueMatch:{...n.valueMatch,[e]:t}})},[]),I=(0,c.useCallback)((e,t,n)=>{w(r=>({...r,rangeFilters:{...r.rangeFilters,[e]:{min:t,max:n}},filterRevision:r.filterRevision+1}))},[]),L=(0,c.useCallback)(()=>{w(e=>({...e,filters:{},rangeFilters:{},bucketFilters:{},filterRevision:e.filterRevision+1}))},[]),R=(0,c.useCallback)((e,t,n=!0)=>{w(r=>{let i={...r.filters},a=(i[e]||[]).filter(e=>e!==t);return a.length>0?i[e]=a:delete i[e],{...r,filters:i,filterRevision:r.filterRevision+ +!!n}})},[]),z=(0,c.useCallback)((e,t=!0)=>{w(n=>{if(!(e in n.rangeFilters))return n;let r={...n.rangeFilters};return delete r[e],{...n,rangeFilters:r,filterRevision:n.filterRevision+ +!!t}})},[]),B=(e,t)=>e.min===t.min&&e.max===t.max,V=(0,c.useCallback)((e,t,n=!1)=>{w(r=>{let i=r.bucketFilters[e]??[],a=i.some(e=>B(e,t))?i.filter(e=>!B(e,t)):n?[t]:[...i,t],o={...r.bucketFilters};return a.length>0?o[e]=a:delete o[e],{...r,bucketFilters:o,filterRevision:r.filterRevision+1}})},[]),H=(0,c.useCallback)((e,t,n=!0)=>{w(r=>{let i={...r.bucketFilters},a=t?(i[e]??[]).filter(e=>!B(e,t)):[];return a.length>0?i[e]=a:delete i[e],{...r,bucketFilters:i,filterRevision:r.filterRevision+ +!!n}})},[]),U=(0,c.useCallback)((e,t)=>{w(n=>({...n,sortBy:e||void 0,sortAscending:e?t:void 0}))},[]);return(0,u.jsx)(x.Provider,{value:{state:C,isFetchingInitial:E.isFetchingInitial||!C.fieldsSeeded,authError:E.authError??void 0,allowEmptySearch:i,url:t,team:n,dataset:r,authenticatedFetch:D,setQuery:A,toggleFilter:P,setValueMatch:F,setRangeFilter:I,resetFilters:L,resetSingleFilter:R,resetRangeFilter:z,toggleBucketFilter:V,resetBucketFilter:H,setSort:U,setDebounceDelay:j,setSearchSettings:M,fetchMoreResults:N,selectResult:k,sessionId:v},children:e})},C=()=>{let e=(0,c.useContext)(x);if(!e)throw Error(`useSearchContext must be used within a SearchProvider`);return e},w=({className:e=``,autoFocus:t=!1,inputSize:n=`default`,showClear:r=!0,showFocus:i=!1,...a})=>{let{state:{query:o,filters:s,rangeFilters:c,searchSettings:l},setQuery:f}=C();Object.keys(s).length>0||Object.keys(c).length;let p=o.length>0;return(0,u.jsx)(d.SearchField,{type:`text`,value:o,onChange:e=>f(e.target.value),placeholder:l.placeholderText,autoFocus:t,className:e,showSearchIcon:!0,inputSize:n,showFocusBorder:i,...a,children:r&&p&&(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,onClick:()=>f(``),"aria-label":`Clear search`,children:`Clear`})})},T={placeholder:`_placeholder_ee9qi_1`,invalid:`_invalid_ee9qi_11`},E={row:`_row_1i201_1`,content:`_content_1i201_19`,indexNumber:`_indexNumber_1i201_31`,scoreNumber:`_scoreNumber_1i201_39`,skeletonBars:`_skeletonBars_1i201_53`,skeletonBarLg:`_skeletonBarLg_1i201_59`,fade:`_fade_1i201_1`,skeletonBarSm:`_skeletonBarSm_1i201_66`},D=({skeleton:e=!1,index:t,score:n,showScore:r=!1,children:i,skeletonDelay:a=0,skeletonWidths:o=[62,38]})=>(0,u.jsxs)(`div`,{className:E.row,children:[t!==void 0&&(0,u.jsx)(`div`,{className:E.indexNumber,children:t}),(0,u.jsx)(`div`,{className:E.content,children:e?(0,u.jsxs)(`div`,{className:E.skeletonBars,children:[(0,u.jsx)(`div`,{className:E.skeletonBarLg,style:{width:`${o[0]}%`,animationDelay:`${a}s`}}),(0,u.jsx)(`div`,{className:E.skeletonBarSm,style:{width:`${o[1]}%`,animationDelay:`${a+.05}s`}})]}):i}),r&&n!==void 0&&(0,u.jsx)(`div`,{className:E.scoreNumber,children:n})]}),O={wrapper:`_wrapper_81m3c_6`,skeletonAppear:`_skeletonAppear_81m3c_1`},k=[[62,38],[75,45],[58,33],[70,42],[65,50],[55,35],[72,40],[60,30]],A=({rows:e=6})=>(0,u.jsx)(`div`,{className:O.wrapper,children:Array.from({length:e}).map((e,t)=>(0,u.jsx)(D,{skeleton:!0,skeletonDelay:t*.1,skeletonWidths:k[t%k.length]},t))}),j=/^\[\s*(?:'[^']*'(?:\s*,\s*'[^']*')*)?\s*\]$/;function M(e){let t=e.trim();if(!t.startsWith(`[`)||!t.endsWith(`]`))return;try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e))}catch{}if(!j.test(t))return;let n=[],r=/'([^']*)'/g,i;for(;(i=r.exec(t))!==null;)n.push(i[1]);return n}var N=({fields:e,resultsPerPage:t,parseArrayStrings:n=!1,children:r})=>{let{state:{results:i,resultsSuppressed:a,searchSettings:o,truncationIndex:s,query:l,error:p},isFetchingInitial:m,authError:h,allowEmptySearch:g,fetchMoreResults:_,selectResult:v}=C(),y=t??30,[b,x]=(0,c.useState)(y),S=(0,c.useRef)(0),w=(0,c.useRef)(``);(0,c.useEffect)(()=>{let e=l!==w.current;(!i||i.length<S.current||e)&&x(y),S.current=i?.length??0,w.current=l},[i,y,l]);let E=i&&i.length>b,O=()=>{let e=b+y;x(e),i&&e>=i.length&&(!s||s===-1||s>i.length)&&_(i.length+y)};if(m)return g?(0,u.jsx)(A,{rows:y}):(0,u.jsx)(`div`,{className:T.placeholder,children:(0,u.jsx)(f.Indx,{size:200,color:`var(--lv5)`})});let k=h??p;return k?(0,u.jsx)(`div`,{className:T.invalid,role:`alert`,children:(0,u.jsx)(`p`,{children:k})}):a||i===null?(0,u.jsx)(`div`,{className:T.placeholder,children:(0,u.jsx)(f.Indx,{size:200,color:`var(--lv5)`})}):i.length===0?(0,u.jsx)(`div`,{className:T.invalid,children:(0,u.jsx)(`p`,{children:`No results found.`})}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{children:(i??[]).slice(0,b).map((t,i)=>{let a=t.document,s=t.score,c;try{c=typeof a==`string`?JSON.parse(a):a}catch{return(0,u.jsx)(`div`,{className:T.invalid,children:(0,u.jsx)(`p`,{children:`Invalid JSON`})},i)}let l;if(e&&e.length>0){l={};for(let t of e)t in c&&(l[t]=c[t])}else l={...c};if(n)for(let e in l){let t=l[e];if(typeof t==`string`){let n=M(t);n&&(l[e]=n)}}return(0,u.jsx)(D,{index:i,score:s,showScore:o.showScore,children:r(l,{result:t,select:()=>v?.(t)??Promise.resolve()})},i)})}),E&&(0,u.jsx)(`div`,{style:{textAlign:`center`,marginTop:`20px`},children:(0,u.jsx)(d.Button,{variant:`secondary`,size:`micro`,onClick:O,children:l.trim()===``?`Load more`:s!==-1&&s!==void 0&&s>0?`Load results ${b+1}-${Math.min(b+y,i.length,s)} of ${s}`:`Load more`})})]})},P={row:`_row_ujwhc_1`,title:`_title_ujwhc_8`},F=({variant:e=`default`,children:t})=>(0,u.jsx)(`div`,{className:[P.row,e===`title`?P.title:``].filter(Boolean).join(` `),children:t}),I={bar:`_bar_4nxla_12`,skeletonAppear:`_skeletonAppear_4nxla_1`,fade:`_fade_4nxla_1`,listRows:`_listRows_4nxla_19`,sliderArea:`_sliderArea_4nxla_25`,sliderTrack:`_sliderTrack_4nxla_32`,inputRow:`_inputRow_4nxla_40`,inputBar:`_inputBar_4nxla_45`,histogramRow:`_histogramRow_4nxla_55`},L=[65,80,55,72,60,75,50,68],R=({title:e,rows:t=5,variant:n=`list`,withHistogram:r=!1,collapsible:i=!0,startCollapsed:a=!1})=>(0,u.jsx)(d.FilterPanelBase,{title:e,collapsible:i,collapsed:a,children:n===`slider`?(0,u.jsxs)(`div`,{className:I.sliderArea,children:[r&&(0,u.jsx)(`div`,{className:I.histogramRow}),(0,u.jsx)(`div`,{className:I.sliderTrack}),(0,u.jsxs)(`div`,{className:I.inputRow,children:[(0,u.jsx)(`div`,{className:I.inputBar,style:{animationDelay:`0.1s`}}),(0,u.jsx)(`div`,{className:I.inputBar,style:{animationDelay:`0.15s`}})]})]}):(0,u.jsx)(`div`,{className:I.listRows,children:Array.from({length:t}).map((e,t)=>(0,u.jsx)(`div`,{className:I.bar,style:{width:`${L[t%L.length]}%`,animationDelay:`${t*.05}s`}},t))})}),z={list:`_list_18vbb_2`,count:`_count_18vbb_7`,countValue:`_countValue_18vbb_17`,chip:`_chip_18vbb_22`,chipLabel:`_chipLabel_18vbb_32`,grid:`_grid_18vbb_40`,active:`_active_18vbb_54`},B=({field:e,label:t,preserveBlankFacetState:n=!1,preserveBlankFacetStateOrder:r=!1,sortFacetsBy:i=`histogram`,limit:a=10,collapsible:o=!0,startCollapsed:s=!1,control:l,displayType:f,layout:p=`list`,showActivePanel:m=!1,showCount:h=!0,showNull:g=!1,match:_=`all`,displayIfEmptyQuery:v=!0,displayCondition:y=e=>!0})=>{let{state:{facets:b,filterableFields:x,facetableFields:S,filters:w,query:T},toggleFilter:E,setValueMatch:D,isFetchingInitial:O,allowEmptySearch:k}=C(),A=l??f??`checkbox`,j=A===`radio`?`any`:_;(0,c.useEffect)(()=>{D(e,j)},[e,j,D]);let M=(0,c.useRef)(null),[N,P]=(0,c.useState)(a);if((0,c.useEffect)(()=>{P(a)},[b?.[e],a]),!k&&!T)return null;if(O||!b)return A===`toggle`?(0,u.jsx)(R,{rows:1,collapsible:!1}):(0,u.jsx)(R,{title:t,rows:Math.min(a,6),collapsible:o,startCollapsed:s});if(!y({query:T??``,filters:w,facets:b})||!v&&!T&&Object.keys(w).length<1)return null;if(!x?.includes(e)||!S?.includes(e)){let t=[];return x?.includes(e)||t.push(`filterable`),S?.includes(e)||t.push(`facetable`),(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{style:{color:`red`,fontSize:`12px`},children:[`Cannot render filter for "`,e,`": missing `,t.join(` and `),`.`]})})}let F=b?.[e]??(A===`toggle`?[]:void 0);if(!F||!Array.isArray(F))return null;let I=w?.[e]??[];n&&!M.current&&F.length>0&&(M.current=F.reduce((e,t)=>(e[t.key]=t.value,e),{}));let L=new Map;n&&M.current&&Object.keys(M.current).forEach(e=>{L.set(e,0)}),F.forEach(e=>{L.set(e.key,e.value)});let B=new Set([`true`,`false`,`null`]),V=Array.from(L.keys()),H=A===`toggle`&&(V.length>0&&V.every(e=>B.has(e))||V.length===0&&I.length>0);if(H&&L.has(`null`)){let e=L.get(`null`)??0,t=L.get(`false`)??0;L.set(`false`,t+e),L.delete(`null`)}if(A===`toggle`&&!H)return(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsx)(`div`,{className:z.count,children:(0,u.jsx)(d.ToggleSwitch,{label:t,checked:!1,onChange:()=>{},disabled:!0})})});if(H){let n=L.get(`true`),r=typeof n==`number`?n:null,i=I.includes(`true`),a=r===0&&!i,o=h&&(r??0)>0?`${r}`:``;return(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{className:z.count,children:[(0,u.jsx)(d.ToggleSwitch,{label:t,checked:i,onChange:()=>E(e,`true`),disabled:a}),` `,o]})})}let U=Array.from(L.entries());if(g||(U=U.filter(([e])=>e!==`null`)),U.length===0&&!n)return null;if(!r)if(i===`alphabetical`){let e=U.filter(([,e])=>typeof e==`number`&&e>0).sort(([e],[t])=>e.localeCompare(t)),t=U.filter(([,e])=>e===0||e===null).sort(([e],[t])=>e.localeCompare(t));U=[...e,...t]}else if(i===`numeric`){let e=(e,t)=>{let n=Number(e),r=Number(t);return!isNaN(n)&&!isNaN(r)?n-r:e.localeCompare(t)},t=U.filter(([,e])=>typeof e==`number`&&e>0).sort(([t],[n])=>e(t,n)),n=U.filter(([,e])=>e===0||e===null).sort(([t],[n])=>e(t,n));U=[...t,...n]}else{let e=U.filter(([,e])=>typeof e==`number`&&e>0),t=U.filter(([,e])=>e===0||e===null);U=[...e,...t]}let W=typeof a==`number`&&U.length>a,G=W?U.slice(0,N):U,K=(t,n)=>{let r=I.includes(t),i=n===0,a=h&&(n??0)>0?` (${n})`:``,o=h&&(n??0)>0?n:``,s=()=>E(e,t,A===`radio`);switch(A){case`button`:return p===`list`?(0,u.jsxs)(`div`,{className:z.count,children:[(0,u.jsx)(d.Button,{variant:r?`primary`:`secondary`,onClick:s,disabled:i,size:`micro`,className:z.chip,title:t,children:(0,u.jsx)(`span`,{className:z.chipLabel,children:t})}),(0,u.jsx)(`span`,{className:z.countValue,children:o})]}):(0,u.jsx)(d.Button,{variant:r?`primary`:`secondary`,onClick:s,disabled:i,size:`micro`,className:z.chip,title:`${t}${a}`,children:(0,u.jsx)(`span`,{className:z.chipLabel,children:`${t}${a}`})});case`toggle`:return(0,u.jsx)(d.ToggleSwitch,{label:t,checked:r,onChange:s,disabled:i});case`radio`:{let n=(0,u.jsx)(d.RadioButton,{id:`${e}-${t}`,name:e,value:t,label:p===`grid`?`${t}${a}`:t,checked:r,onChange:s,disabled:i});return p===`list`?(0,u.jsxs)(`div`,{className:z.count,children:[n,(0,u.jsx)(`span`,{className:z.countValue,children:o})]}):n}default:return p===`list`?(0,u.jsxs)(`div`,{className:z.count,children:[(0,u.jsx)(d.Checkbox,{label:t,score:``,checked:r,onChange:s,disabled:i}),(0,u.jsx)(`span`,{className:z.countValue,children:o})]}):(0,u.jsx)(d.Checkbox,{label:t,score:a,checked:r,onChange:s,disabled:i})}};return(0,u.jsx)(d.FilterPanelBase,{title:t,collapsible:o,collapsed:o?s:!1,className:m&&I.length>0?z.active:void 0,children:(0,u.jsxs)(`ul`,{className:p===`grid`?z.grid:z.list,style:{listStyle:`none`,padding:0,margin:0},children:[G.map(([e,t])=>(0,u.jsx)(`li`,{children:K(e,t)},e)),W&&N<U.length&&(()=>{let e=U.length-N,t=Math.min(50,e);return(0,u.jsx)(`li`,{className:z.toggleItem,children:(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,onClick:()=>P(e=>e+50),children:`Show ${t} more of ${U.length} total`})})})()]})})},V={disabledMessage:`_disabledMessage_adany_1`,histogram:`_histogram_adany_6`,histogramLayer:`_histogramLayer_adany_14`,histogramLive:`_histogramLive_adany_22`,histogramLit:`_histogramLit_adany_23`,histogramFill:`_histogramFill_adany_30`,histogramBar:`_histogramBar_adany_43`,histogramSeparators:`_histogramSeparators_adany_61`,histogramSeparator:`_histogramSeparator_adany_48`,active:`_active_adany_76`};function H(e){if(!Number.isFinite(e))return 0;let t=String(e),n=t.indexOf(`.`);return n===-1?0:Math.min(6,t.length-n-1)}function U(e){let t=0;for(let n of e)t=Math.max(t,H(n));return t===0?1:Number((10**-t).toFixed(t))}function W(e,t){return Number(e.toFixed(H(t)))}function G(e,t,n){let r=t+Math.round((e-t)/n)*n;return Number(r.toFixed(H(n)))}var K=({field:e,label:t,expectedMin:n=0,expectedMax:r=1e3,control:i,displayType:a,showActivePanel:o=!1,collapsible:s=!0,startCollapsed:l=!1,showHistogram:f=!1,resolution:p,step:m,stepMarks:h})=>{let{state:{rangeFilters:g,rangeBounds:_,facetStats:v,facets:y,filterableFields:b,facetableFields:x,query:S,facetDebounceDelayMillis:w},setRangeFilter:T,resetRangeFilter:E,allowEmptySearch:D,isFetchingInitial:O}=C(),k=i??a??`input`,A=_?.[e]!==void 0,j=_?.[e]??{min:n,max:r},M=j.min,N=j.max,P=v?.[e]??j,F=Math.max(M,Math.min(N,P.min)),I=Math.max(M,Math.min(N,P.max)),L=c.default.useMemo(()=>{if(m)return m;let t=Math.max(H(M),H(N)),n=y?.[e];if(Array.isArray(n))for(let e of n)t=Math.max(t,H(Number(e.key)));return t===0?1:Number((10**-t).toFixed(t))},[m,M,N,y,e]),z=A&&M===N,B=z?n:M,U=z?r:N,K=g?.[e],q=o&&K!==void 0?V.active:void 0,ee=K?K.min:M,J=K?K.max:N,Y=K!==void 0,te=F!==M||I!==N,[X,Z]=c.default.useState([ee,J]),[ne,re]=c.default.useState(!1),[ie,ae]=c.default.useState(!1),[Q,oe]=c.default.useState(String(ee)),[$,se]=c.default.useState(String(J)),ce=c.default.useMemo(()=>{let e=H(L);return{width:`calc(${Math.max(3,M.toFixed(e).length,N.toFixed(e).length,Q.length,$.length)+1}ch + 20px)`}},[L,M,N,Q,$]);c.default.useEffect(()=>{oe(String(X[0])),se(String(X[1]))},[X]);let{finalMin:le,finalMax:ue,isValidMin:de,isValidMax:fe}=c.default.useMemo(()=>{let[e,t]=X,n=Math.max(M,Math.min(N,e)),r=Math.max(M,Math.min(N,t)),i=Math.min(n,r),a=Math.max(n,r);return{finalMin:i,finalMax:a,isValidMin:i>=M&&i<=a,isValidMax:a<=N&&a>=i}},[X,M,N]);c.default.useEffect(()=>{if(z)return;if(X[0]===M&&X[1]===N){re(!1),ae(!1);return}let t=w??500,n=setTimeout(()=>{re(!de),ae(!fe)},300),r=setTimeout(()=>{de&&fe&&(le===M&&ue===N?E(e,!1):T(e,le,ue))},t);return()=>{clearTimeout(n),clearTimeout(r)}},[le,ue,de,fe,M,N,e,E,T,w,z]),c.default.useEffect(()=>{Z([ee,J]),re(!1),ae(!1)},[ee,J,e]);let pe=c.default.useCallback(e=>{let t=W(Math.min(e[0],e[1]-L),L);return[t,W(Math.max(e[1]-L,t),L)]},[L]),me=c.default.useCallback(e=>{if(z)return;let[t,n]=pe(e);Z([Math.max(M,Math.min(I,t)),Math.max(F,Math.min(N,n))])},[z,pe,M,N,F,I]),he=c.default.useCallback(t=>{if(z)return;let[n,r]=pe(t),i=Math.max(M,Math.min(I,n)),a=Math.max(F,Math.min(N,r));i===M&&a===N?(Z([M,N]),E(e,!0)):Z([i,a])},[z,pe,M,N,F,I,e,E]),ge=c.default.useRef(null),_e=c.default.useCallback((t,n)=>{if(z)return;let r=ge.current;if(K&&r&&r.start===t&&r.last===n){ge.current=null,Z([M,N]),E(e,!0);return}let i=G(Math.max(M,F,t),M,L),a=Math.max(i,G(Math.min(N,I,n),M,L));ge.current={start:t,last:n},Z([i,a])},[z,K,M,N,F,I,L,e,E]),ve=c.default.useCallback(()=>{if(z)return;let e=Q.trim(),t=e===``?NaN:Number(e);if(isNaN(t)){oe(String(X[0]));return}let n=Math.max(M,Math.min(I,t));n<X[1]?Z([n,X[1]]):Z([M,X[1]]),oe(String(n<X[1]?n:M))},[z,Q,X,M,I]),ye=c.default.useCallback(()=>{if(z)return;let e=$.trim(),t=e===``?NaN:Number(e);if(isNaN(t)){se(String(X[1]));return}let n=Math.max(F,Math.min(N,t));n>X[0]?Z([X[0],n]):Z([X[0],N]),se(String(n>X[0]?n:N))},[z,$,X,F,N]),be=e=>t=>{t.key===`Enter`&&e()},[xe,Se]=c.default.useState(null),Ce=c.default.useRef(null);c.default.useEffect(()=>{if(!f)return;let t=`${M}:${N}`;if(t===Ce.current&&Ce.current!==null)return;let n=y?.[e];if(!Array.isArray(n)||n.length===0)return;let r=n.filter(e=>e.value!=null&&!isNaN(Number(e.key))).map(e=>({key:e.key,value:e.value}));r.length>0&&(Ce.current=t,Se(r))},[M,N,y,e,f]);let we=c.default.useMemo(()=>{if(!f||!xe||xe.length===0)return[];let e=N-M;if(e<=0)return[];let t=p??(Math.ceil(e/20)||1),n=Math.ceil(e/t);return Array.from({length:n},(e,r)=>{let i=M+r*t,a=M+(r+1)*t,o=r===n-1,s=xe.filter(e=>{let t=Number(e.key);return t>=i&&(t<a||o&&t<=N)}).reduce((e,t)=>e+t.value,0),c=o?N:W(a-L,L);return{bucketStart:i,bucketEnd:a,count:s,last:c,barEnd:W(c+L,L)}}).map((e,t,n)=>({...e,span:(t+1<n.length?n[t+1].bucketStart:e.barEnd)-e.bucketStart}))},[f,xe,M,N,p,L]),Te=c.default.useMemo(()=>Math.max(...we.map(e=>e.count),1),[we]);return f&&!O&&!x?.includes(e)&&console.warn(`RangeFilterPanel: showHistogram=true but field "${e}" is not facetable. Add .Facetable = true to this field.`),O?(0,u.jsx)(R,{title:t,variant:`slider`,withHistogram:f,collapsible:s,startCollapsed:l}):!D&&!S?null:b?.includes(e)?k===`slider`?(0,u.jsxs)(d.FilterPanelBase,{title:t,collapsed:l,collapsible:s,className:q,children:[z&&(0,u.jsxs)(`div`,{className:V.disabledMessage,children:[`No adjustable range (all results have the same value: `,M,`).`]}),f&&we.length===0&&(0,u.jsx)(`div`,{className:V.histogram}),f&&we.length>0&&(()=>{let[e,t]=I>F&&(F>M||I<N)?[F,I]:[B,U],n=Math.max(le,e),r=Math.min(ue,t),i=U+L,a=i-B||1,o=e=>Math.max(0,Math.min(1,(e-B)/a)),s=e=>Math.max(0,Math.min(1,(i-(e+L))/a)),c=o(n),l=r<n?1-c:s(r),d=e=>`calc(10px + (100% - 20px) * ${e})`,f=`inset(0 ${d(l)} 0 ${d(c)})`,p=`inset(0 ${d(s(t))} 0 ${d(o(e))})`,m=n=>n.last<e||n.bucketStart>t,h=we.slice(1).map(e=>d((e.bucketStart-B)/a)),g=we.map(e=>({...e,height:Math.max(1,Math.ceil(e.count/Te*20))}));return(0,u.jsxs)(`div`,{className:V.histogram,children:[(0,u.jsx)(`div`,{className:V.histogramLayer,children:g.map((e,t)=>(0,u.jsx)(`button`,{type:`button`,className:V.histogramBar,style:{flexGrow:e.span},"data-testid":`histogram-bar`,disabled:z||m(e),"aria-label":`${e.bucketStart} to ${e.last}: ${e.count}`,title:`${e.bucketStart} to ${e.last}: ${e.count}`,onClick:()=>_e(e.bucketStart,e.last),children:(0,u.jsx)(`span`,{className:V.histogramFill,style:{height:`${e.height}px`}})},t))}),(0,u.jsx)(`div`,{className:`${V.histogramLayer} ${V.histogramLive}`,"aria-hidden":`true`,"data-testid":`histogram-live`,style:{clipPath:p},children:g.map((e,t)=>(0,u.jsx)(`span`,{className:V.histogramBar,style:{flexGrow:e.span},children:(0,u.jsx)(`span`,{className:V.histogramFill,style:{height:`${e.height}px`}})},t))}),(0,u.jsx)(`div`,{className:`${V.histogramLayer} ${V.histogramLit}`,"aria-hidden":`true`,"data-testid":`histogram-lit`,style:{clipPath:f},children:g.map((e,t)=>(0,u.jsx)(`span`,{className:V.histogramBar,style:{flexGrow:e.span},children:(0,u.jsx)(`span`,{className:V.histogramFill,style:{height:`${e.height}px`}})},t))}),(0,u.jsx)(`div`,{className:V.histogramSeparators,"aria-hidden":`true`,children:h.map((e,t)=>(0,u.jsx)(`span`,{className:V.histogramSeparator,style:{left:e}},t))})]})})(),(0,u.jsx)(`div`,{style:{padding:`10px 10px 20px 10px`},children:(0,u.jsx)(d.Slider,{min:B,max:W(U+L,L),step:L,stepMarks:h,value:z?[B,W(U+L,L)]:[G(le,B,L),G(ue+L,B,L)],isRange:!0,onChange:e=>me(e),onFinalChange:e=>he(e),disabled:z,activeMin:F,activeMax:W(I+L,L),isFaceted:te,highlightFaceted:Y,"aria-label":t||`Filter by ${e}`})}),(0,u.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,alignItems:`flex-start`,justifyContent:`space-between`},children:[(0,u.jsx)(d.InputField,{label:`Min:`,type:`number`,style:ce,value:z?String(M):Q,min:M,max:W(Math.min(I,X[1]-L),L),onChange:e=>oe(e.target.value),onBlur:ve,onKeyDown:be(ve),disabled:z,isValid:z||!ne}),(0,u.jsx)(d.InputField,{label:`Max:`,type:`number`,style:ce,value:z?String(N):$,min:W(Math.max(F,X[0]+L),L),max:N,onChange:e=>se(e.target.value),onBlur:ye,onKeyDown:be(ye),disabled:z,isValid:z||!ie})]})]}):(0,u.jsxs)(d.FilterPanelBase,{title:t,className:q,children:[z&&(0,u.jsxs)(`div`,{className:V.disabledMessage,children:[`No adjustable range (all results have the same value: `,M,`).`]}),(0,u.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,alignItems:`flex-start`},children:[(0,u.jsx)(d.InputField,{label:`Min:`,type:`number`,style:ce,value:z?String(M):Q,min:M,max:W(Math.min(I,X[1]-L),L),onChange:e=>oe(e.target.value),onBlur:ve,onKeyDown:be(ve),disabled:z,isValid:z||!ne}),(0,u.jsx)(d.InputField,{label:`Max:`,type:`number`,style:ce,value:z?String(N):$,min:W(Math.max(F,X[0]+L),L),max:N,onChange:e=>se(e.target.value),onBlur:ye,onKeyDown:be(ye),disabled:z,isValid:z||!ie})]})]}):(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{style:{color:`red`,fontSize:`12px`},children:[`Cannot render filter for "`,e,`": missing filterable.`]})})},q={list:`_list_apmmi_2`,grid:`_grid_apmmi_9`,count:`_count_apmmi_22`,countValue:`_countValue_apmmi_31`,chip:`_chip_apmmi_35`,error:`_error_apmmi_40`,active:`_active_apmmi_46`};function ee(e,t){if(!t)return null;let n=0,r=!1;for(let i of t){let t=Number(i.key);if(!(Number.isNaN(t)||!e.contains(t))){if(typeof i.value!=`number`)return null;n+=i.value,r=!0}}return r?n:0}var J=({field:e,label:t,width:n,buckets:r,control:i,displayType:a,layout:o=`list`,showCount:s=!0,showEmpty:l=!1,limit:f,showActivePanel:p=!1,collapsible:m=!0,startCollapsed:h=!1})=>{let{state:{facets:g,filterableFields:_,facetableFields:v,bucketFilters:y,rangeBounds:b,facetStats:x,query:S},toggleBucketFilter:w,isFetchingInitial:T,allowEmptySearch:E}=C(),D=i??a??`checkbox`,O=g?.[e],k=y[e]??[],[A,j]=(0,c.useState)(f??1/0);(0,c.useEffect)(()=>{j(f??1/0)},[f,O]);let M=b?.[e]??x?.[e],N=(0,c.useMemo)(()=>{let e=[];if(M&&e.push(M.min,M.max),Array.isArray(O))for(let t of O)e.push(Number(t.key));return U(e.filter(Number.isFinite))},[M,O]),P=(0,c.useMemo)(()=>{let e=M?.min??-Number.MAX_VALUE,t=M?.max??Number.MAX_VALUE,i=(n,r,i)=>({label:i??(n===void 0?`up to ${r}`:r===void 0?`${n} and up`:`${n}-${r}`),range:{min:n??e,max:r??t},contains:e=>(n===void 0||e>=n)&&(r===void 0||e<=r)});if(r&&r.length>0)return r.map(e=>i(e.min,e.max,e.label));if(Array.isArray(n)){let e=[...n].sort((e,t)=>e-t),t=[];for(let n=0;n<e.length-1;n++)t.push(i(e[n],W(e[n+1]-N,N)));return t}if(typeof n==`number`&&n>0&&M){let e=[],t=Math.floor(M.min/n)*n;for(let r=t;r<=M.max;r=W(r+n,N))e.push(i(W(r,N),W(r+n-N,N)));return e}return[]},[r,n,M,N]);if(T||!g)return(0,u.jsx)(R,{title:t,rows:Math.max(1,Math.min(P.length||5,8)),collapsible:m,startCollapsed:h});if(!E&&!S)return null;if(!_?.includes(e))return(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,children:(0,u.jsxs)(`div`,{className:q.error,children:[`Cannot render buckets for "`,e,`": field is not filterable.`]})});let F=v?.includes(e)&&Array.isArray(O),I=e=>k.some(t=>t.min===e.range.min&&t.max===e.range.max),L=P.map(e=>({bucket:e,count:F?ee(e,O):null}));if(l||(L=L.filter(e=>e.count!==0||I(e.bucket))),L.length===0)return null;let z=L.slice(0,A),B=(t,n)=>{let r=I(t),i=n===0&&!r,a=s&&(n??0)>0?`${n}`:``,c=()=>w(e,t.range,D===`radio`);if(D===`radio`){let n=(0,u.jsx)(d.RadioButton,{id:`${e}-${t.range.min}-${t.range.max}`,name:e,value:t.label,label:o===`grid`&&a?`${t.label} (${a})`:t.label,checked:r,onChange:c,disabled:i});return o===`list`?(0,u.jsxs)(`div`,{className:q.count,children:[n,(0,u.jsx)(`span`,{className:q.countValue,children:a})]}):n}if(D===`button`){let e=(0,u.jsx)(d.Button,{variant:r?`primary`:`secondary`,onClick:c,disabled:i,size:`micro`,className:q.chip,children:o===`grid`&&a?`${t.label} (${a})`:t.label});return o===`list`?(0,u.jsxs)(`div`,{className:q.count,children:[e,(0,u.jsx)(`span`,{className:q.countValue,children:a})]}):e}return o===`list`?(0,u.jsxs)(`div`,{className:q.count,children:[(0,u.jsx)(d.Checkbox,{label:t.label,score:``,checked:r,onChange:c,disabled:i}),(0,u.jsx)(`span`,{className:q.countValue,children:a})]}):(0,u.jsx)(d.Checkbox,{label:t.label,score:a?` (${a})`:``,checked:r,onChange:c,disabled:i})};return(0,u.jsx)(d.FilterPanelBase,{title:t,collapsible:m,collapsed:m?h:!1,className:p&&k.length>0?q.active:void 0,children:(0,u.jsxs)(`ul`,{className:o===`grid`?q.grid:q.list,style:{listStyle:`none`,padding:0,margin:0},children:[z.map(({bucket:e,count:t})=>(0,u.jsx)(`li`,{children:B(e,t)},`${e.range.min}-${e.range.max}`)),z.length<L.length&&(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,onClick:()=>j(L.length),children:`Show ${L.length-z.length} more of ${L.length} total`})})]})})},Y={grid:`_grid_1xjna_2`,chip:`_chip_1xjna_21`,chipLabel:`_chipLabel_1xjna_32`},te=(0,c.memo)(({field:e,value:t,onReset:n})=>(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:n,iconRight:(0,u.jsx)(f.X_or_error,{}),variant:`primary`,size:`micro`,className:Y.chip,title:`${e}: ${t}`,children:(0,u.jsxs)(`span`,{className:Y.chipLabel,children:[e,`: `,t]})})})),X=(0,c.memo)(({field:e,min:t,max:n,onReset:r})=>(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:r,iconRight:(0,u.jsx)(f.X_or_error,{}),variant:`primary`,size:`micro`,className:Y.chip,title:`${e}: ${t} – ${n}`,children:(0,u.jsxs)(`span`,{className:Y.chipLabel,children:[e,`: `,t,` – `,n]})})})),Z=(0,c.memo)(({field:e,label:t,onReset:n})=>(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:n,iconRight:(0,u.jsx)(f.X_or_error,{}),variant:`primary`,size:`micro`,className:Y.chip,title:`${e}: ${t}`,children:(0,u.jsxs)(`span`,{className:Y.chipLabel,children:[e,`: `,t]})})}));function ne(){let{state:{filters:e,rangeFilters:t,bucketFilters:n},resetFilters:r,resetSingleFilter:i,resetRangeFilter:a,resetBucketFilter:o}=C(),s=(0,c.useMemo)(()=>Object.entries(e).map(([e,t])=>t.map(t=>({field:e,value:t}))).flat(),[e]),l=(0,c.useMemo)(()=>Object.entries(t).map(([e,{min:t,max:n}])=>({field:e,min:t,max:n})),[t]),f=(0,c.useMemo)(()=>Object.entries(n).flatMap(([e,t])=>t.map(t=>({field:e,range:t,label:`${t.min}-${t.max}`}))),[n]);return(0,c.useMemo)(()=>Object.keys(e).length>0||Object.keys(t).length>0||f.length>0,[e,t,f])?(0,u.jsx)(d.FilterPanelBase,{collapsible:!1,title:`Active filters`,children:(0,u.jsxs)(`ul`,{className:Y.grid,children:[s.map(({field:e,value:t})=>(0,u.jsx)(te,{field:e,value:t,onReset:()=>i(e,t)},`${e}-${t}`)),l.map(({field:e,min:t,max:n})=>(0,u.jsx)(X,{field:e,min:t,max:n,onReset:()=>a(e)},e)),f.map(({field:e,range:t,label:n})=>(0,u.jsx)(Z,{field:e,label:n,onReset:()=>o(e,t)},`${e}-${t.min}-${t.max}`)),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{onClick:r,size:`micro`,variant:`ghost`,children:`Reset`})})]})}):null}var re={select:`_select_nwf7i_1`,radioGroup:`_radioGroup_nwf7i_6`},ie=({control:e,displayType:t,collapsible:n=!0,startCollapsed:r=!1})=>{let i=e??(t===`radio`?`radio`:`select`),{state:{sortableFields:a,sortBy:o,sortAscending:s},setSort:c,isFetchingInitial:l}=C();if(l)return(0,u.jsx)(R,{title:`Sort by`,rows:i===`radio`?3:1,collapsible:n,startCollapsed:r});if(!a||a.length===0)return null;let f=o?`${o}:${s?`asc`:`desc`}`:`none`,p=[{label:`None`,value:`none`},...a.flatMap(e=>[{label:`${e} (asc)`,value:`${e}:asc`},{label:`${e} (desc)`,value:`${e}:desc`}])],m=e=>{if(e===`none`||e===``)c(null,!0);else{let[t,n]=e.split(`:`);c(t,n===`asc`)}};return(0,u.jsx)(d.FilterPanelBase,{title:`Sort by`,collapsible:n,collapsed:n?r:!1,children:i===`select`?(0,u.jsx)(d.Select,{value:f,onValueChange:m,options:p,placeholder:`Select sort...`,"aria-label":`Sort by`}):(0,u.jsx)(`div`,{className:re.radioGroup,children:p.map(e=>(0,u.jsx)(d.RadioButton,{id:`sort-${e.value}`,name:`sort-by`,value:e.value,label:e.label,checked:f===e.value,onChange:e=>m(e.target.value)},e.value))})})},ae={list:`_list_1y4fk_1`};function Q(){let{state:{searchSettings:e},setSearchSettings:t}=C(),[n,r]=(0,c.useState)(!1),i=(e,n)=>{let r=parseInt(n,10);isNaN(r)||t({[e]:r})},a=(e,n)=>{t({[e]:n})},o=(n,r)=>{let i=parseInt(r,10);isNaN(i)||t({coverageSetup:{...e.coverageSetup,[n]:i}})},s=(n,r)=>{t({coverageSetup:{...e.coverageSetup,[n]:r}})};return(0,u.jsx)(d.FilterPanelBase,{collapsed:!0,title:`Settings`,children:(0,u.jsxs)(`ul`,{className:ae.list,children:[(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Max Results`,type:`number`,value:e.maxNumberOfRecordsToReturn.toString(),onChange:e=>i(`maxNumberOfRecordsToReturn`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Coverage Depth`,type:`number`,value:e.coverageDepth.toString(),onChange:e=>i(`coverageDepth`,e.target.value)})}),(0,u.jsxs)(`li`,{children:[(0,u.jsx)(d.InputField,{label:`Minimum Score (16 bit)`,type:`number`,value:e.minimumScore.toString(),min:`0`,max:`65535`,onChange:e=>{let n=parseFloat(e.target.value);isNaN(n)||t({minimumScore:n})}}),(0,u.jsx)(`div`,{style:{padding:`10px 10px 20px 10px`},children:(0,u.jsx)(d.Slider,{min:0,max:65535,step:1,value:Math.max(0,Math.min(65535,Math.round(e.minimumScore))),onChange:e=>{t({minimumScore:e})},"aria-label":`Minimum score`})})]}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Placeholder text`,type:`text`,value:e.placeholderText,onChange:e=>{t({placeholderText:e.target.value})}})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Show score`,checked:e.showScore,onChange:e=>a(`showScore`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Enable Coverage`,checked:e.enableCoverage,onChange:e=>a(`enableCoverage`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Remove Duplicates`,checked:e.removeDuplicates,onChange:e=>a(`removeDuplicates`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.Button,{variant:`ghost`,size:`micro`,iconRight:n?(0,u.jsx)(f.ArrowDown,{}):(0,u.jsx)(f.ArrowRight,{}),onClick:()=>r(e=>!e),children:n?`Hide Coverage Setup`:`Show Coverage Setup`})}),n&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Whole Query`,checked:e.coverageSetup.coverWholeQuery,onChange:e=>s(`coverWholeQuery`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Whole Words`,checked:e.coverageSetup.coverWholeWords,onChange:e=>s(`coverWholeWords`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Fuzzy Words`,checked:e.coverageSetup.coverFuzzyWords,onChange:e=>s(`coverFuzzyWords`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Joined Words`,checked:e.coverageSetup.coverJoinedWords,onChange:e=>s(`coverJoinedWords`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Cover Prefix Suffix`,checked:e.coverageSetup.coverPrefixSuffix,onChange:e=>s(`coverPrefixSuffix`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Truncate`,checked:e.coverageSetup.truncate,onChange:e=>s(`truncate`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.ToggleSwitch,{label:`Include Pattern Matches`,checked:e.coverageSetup.includePatternMatches,onChange:e=>s(`includePatternMatches`,e)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Levenshtein Max Word Size`,type:`number`,value:e.coverageSetup.levenshteinMaxWordSize.toString(),onChange:e=>o(`levenshteinMaxWordSize`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Min Word Size`,type:`number`,value:e.coverageSetup.minWordSize.toString(),onChange:e=>o(`minWordSize`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Truncate Word Hit Limit`,type:`number`,value:e.coverageSetup.truncateWordHitLimit.toString(),onChange:e=>o(`truncateWordHitLimit`,e.target.value)})}),(0,u.jsx)(`li`,{children:(0,u.jsx)(d.InputField,{label:`Truncate Word Hit Tolerance`,type:`number`,value:e.coverageSetup.truncateWordHitTolerance.toString(),onChange:e=>o(`truncateWordHitTolerance`,e.target.value)})})]})]})})}var oe=class extends c.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`[SearchErrorBoundary] Caught error:`,e,t)}reset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback(this.state.error,this.reset):(0,u.jsxs)(`div`,{style:{padding:`2rem`,backgroundColor:`#fee`,border:`2px solid #c33`,borderRadius:`8px`,maxWidth:`600px`,margin:`2rem auto`},children:[(0,u.jsx)(`h2`,{style:{color:`#c33`,marginTop:0},children:`⚠️ Search Initialization Error`}),(0,u.jsxs)(`p`,{style:{marginBottom:`1rem`},children:[(0,u.jsx)(`strong`,{children:`Error:`}),` `,this.state.error.message]}),(0,u.jsxs)(`div`,{style:{backgroundColor:`#fff`,padding:`1rem`,borderRadius:`4px`,marginBottom:`1rem`,fontSize:`0.9rem`},children:[(0,u.jsx)(`strong`,{children:`💡 Common fixes:`}),(0,u.jsxs)(`ul`,{style:{marginBottom:0,paddingLeft:`1.5rem`},children:[(0,u.jsx)(`li`,{children:`Check browser console for detailed error messages`}),(0,u.jsx)(`li`,{children:`Verify the url passed to SearchProvider is correct`}),(0,u.jsx)(`li`,{children:`Verify your bearer token is valid (create or check it on the Indx Dashboard)`}),(0,u.jsx)(`li`,{children:`Ensure INDX server is running`}),(0,u.jsx)(`li`,{children:`Check dataset name spelling`})]})]}),(0,u.jsx)(d.Button,{variant:`primary`,size:`micro`,onClick:this.reset,children:`Try Again`})]}):this.props.children}};function $(e,t){let{url:n,team:r,dataset:i,authenticatedFetch:a}=C(),[o,s]=(0,c.useState)(null),[l,u]=(0,c.useState)(!1),[d,f]=(0,c.useState)(void 0);return{results:o,isLoading:l,error:d,search:(0,c.useCallback)(async o=>{u(!0),f(void 0);try{let c=await e(o),l={fieldName:t.fieldName,vector:c,maxResults:t.maxResults??10};t.filter&&(l.filter=t.filter);let u=await a(`${n}/api/teams/${r}/datasets/${i}/search/vector`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(l)});if(!u.ok)throw await m.fromResponse(`VectorSearch`,u);let d=await u.json();if(d.length===0){s([]);return}let f=d.map(e=>e.documentKey),p=await a(`${n}/api/teams/${r}/datasets/${i}/documents/lookup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(f)});if(!p.ok)throw await m.fromResponse(`GetJson`,p);s((await p.json()).map((e,t)=>({document:e,documentKey:f[t],score:d[t].score})))}catch(e){f(e instanceof Error?e.message:`Vector search failed`),s(null)}finally{u(!1)}},[e,t.fieldName,t.maxResults,t.filter,n,r,i,a])}}function se(e,t){let{url:n,team:r,dataset:i,authenticatedFetch:a}=C(),[o,s]=(0,c.useState)(null),[l,u]=(0,c.useState)(!1),[d,f]=(0,c.useState)(void 0);return{results:o,isLoading:l,error:d,search:(0,c.useCallback)(async o=>{u(!0),f(void 0);try{let c=await e(o),l={text:o,embeddingField:t.fieldName,vector:c,maxNumberOfRecordsToReturn:t.maxResults??10,alpha:t.alpha??.5};t.filter&&(l.filter=t.filter),t.timeoutMs&&(l.timeOutLimitMilliseconds=t.timeoutMs);let u=await a(`${n}/api/teams/${r}/datasets/${i}/search/hybrid`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(l)});if(!u.ok)throw await m.fromResponse(`HybridSearch`,u);let d=await u.json();if(d.length===0){s([]);return}let f=d.map(e=>e.documentKey),p=await a(`${n}/api/teams/${r}/datasets/${i}/documents/lookup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(f)});if(!p.ok)throw await m.fromResponse(`GetJson`,p);s((await p.json()).map((e,t)=>({document:e,documentKey:f[t],score:d[t].score})))}catch(e){f(e instanceof Error?e.message:`Hybrid search failed`),s(null)}finally{u(!1)}},[e,t.fieldName,t.alpha,t.maxResults,t.filter,t.timeoutMs,n,r,i,a])}}exports.ActiveFiltersPanel=ne,exports.BucketFilterPanel=J,exports.FilterPanelSkeleton=R,exports.IndxApiError=m,exports.RangeFilterPanel=K,exports.SearchContext=x,exports.SearchErrorBoundary=oe,exports.SearchInput=w,exports.SearchProvider=S,exports.SearchResult=D,exports.SearchResultRow=F,exports.SearchResults=N,exports.SearchResultsSkeleton=A,exports.SearchSettingsPanel=Q,exports.SortByPanel=ie,exports.ValueFilterPanel=B,exports.useHybridSearch=se,exports.useSearch=C,exports.useSearchContext=C,exports.useVectorSearch=$;
package/dist/index.es.js CHANGED
@@ -1754,9 +1754,9 @@ var ue = ({ field: e, label: t, width: n, buckets: r, control: i, displayType: a
1754
1754
  })
1755
1755
  });
1756
1756
  }, $ = {
1757
- grid: "_grid_xm2uh_2",
1758
- chip: "_chip_xm2uh_17",
1759
- chipLabel: "_chipLabel_xm2uh_28"
1757
+ grid: "_grid_1xjna_2",
1758
+ chip: "_chip_1xjna_21",
1759
+ chipLabel: "_chipLabel_1xjna_32"
1760
1760
  }, de = r(({ field: e, value: t, onReset: n }) => /* @__PURE__ */ f("li", { children: /* @__PURE__ */ f(m, {
1761
1761
  onClick: n,
1762
1762
  iconRight: /* @__PURE__ */ f(E, {}),
package/dist/intrface.css CHANGED
@@ -1,2 +1,2 @@
1
- ._placeholder_ee9qi_1{opacity:.05;justify-content:center;align-items:center;height:100%;min-height:600px;max-height:1000px;display:flex}._invalid_ee9qi_11 p{font:var(--text-base);padding:25px}._row_1i201_1{border-bottom:1px solid var(--lv0);font:var(--text-xs);color:var(--lv5);padding:20px 25px 20px 30px;position:relative}@media (prefers-color-scheme:dark){._row_1i201_1{border-color:var(--lv2)}}._row_1i201_1:last-child{border-bottom:none}._content_1i201_19{flex-direction:column;gap:10px;line-height:1.8;display:flex}._content_1i201_19 span{background-color:var(--lv0)}._indexNumber_1i201_31{font:var(--text-2xs);color:var(--lv4);position:absolute;top:25px;left:5px}._scoreNumber_1i201_39{font:var(--text-2xs);color:var(--lv4);position:absolute;top:25px;right:5px}@keyframes _fade_1i201_1{0%,to{opacity:1}50%{opacity:.4}}._skeletonBars_1i201_53{flex-direction:column;gap:10px;display:flex}._skeletonBarLg_1i201_59{background:var(--lv3);border-radius:1px;height:12px;animation:2.4s ease-in-out infinite _fade_1i201_1}._skeletonBarSm_1i201_66{background:var(--lv3);border-radius:1px;height:8px;animation:2.4s ease-in-out infinite _fade_1i201_1}@keyframes _skeletonAppear_81m3c_1{0%{opacity:0}to{opacity:1}}._wrapper_81m3c_6{animation:.2s .15s both _skeletonAppear_81m3c_1}._row_ujwhc_1{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._title_ujwhc_8{font:var(--text-base);color:var(--lv8)}@keyframes _skeletonAppear_4nxla_1{0%{opacity:0}to{opacity:1}}@keyframes _fade_4nxla_1{0%,to{opacity:1}50%{opacity:.4}}._bar_4nxla_12{background:var(--lv2);border-radius:1px;height:10px;animation:.2s .15s both _skeletonAppear_4nxla_1,2.4s ease-in-out .35s infinite _fade_4nxla_1}._listRows_4nxla_19{flex-direction:column;gap:12px;display:flex}._sliderArea_4nxla_25{flex-direction:column;gap:14px;padding:4px 0 10px;display:flex}._sliderTrack_4nxla_32{background:var(--lv2);border-radius:1px;width:100%;height:6px;animation:.2s .15s both _skeletonAppear_4nxla_1,2.4s ease-in-out .35s infinite _fade_4nxla_1}._inputRow_4nxla_40{justify-content:space-between;display:flex}._inputBar_4nxla_45{background:var(--lv2);border-radius:1px;width:40px;height:20px;animation:.2s .15s both _skeletonAppear_4nxla_1,2.4s ease-in-out .35s infinite _fade_4nxla_1}._histogramRow_4nxla_55{height:8px;margin-top:2px}._list_18vbb_2{flex-direction:column;gap:10px;display:flex}._count_18vbb_7{font:var(--text-xs);color:var(--lv5);justify-content:space-between;align-items:center;gap:8px;display:flex}._countValue_18vbb_17{flex-shrink:0}._chip_18vbb_22{min-width:0;max-width:100%}._chip_18vbb_22 svg{flex-shrink:0}._chipLabel_18vbb_32{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._grid_18vbb_40{flex-wrap:wrap;gap:10px;display:flex}._grid_18vbb_40 li{flex:0 auto;min-width:0;max-width:100%}._active_18vbb_54{background:var(--lv1)}._disabledMessage_adany_1{font:var(--text-2xs);margin-bottom:10px}._histogram_adany_6{height:20px;margin-bottom:2px;position:relative}._histogramLayer_adany_14{align-items:flex-end;padding:0 10px;display:flex;position:absolute;inset:0}._histogramLive_adany_22,._histogramLit_adany_23{pointer-events:none}._histogramLive_adany_22 ._histogramFill_adany_30{background:var(--lv3);border-radius:0}._histogramLit_adany_23 ._histogramFill_adany_30{background:var(--lv5);border-radius:0}._histogramBar_adany_43{cursor:pointer;background:0 0;border:0;flex:0 0;align-items:flex-end;min-width:0;height:100%;padding:0;display:flex}._histogramSeparators_adany_61{pointer-events:none;position:absolute;inset:0}._histogramSeparator_adany_48{background:var(--lv0);width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0}._active_adany_76 ._histogramSeparator_adany_48{background:var(--lv1)}._histogramBar_adany_43:disabled{cursor:default}._histogramBar_adany_43:focus-visible{outline:1px solid var(--lv5);outline-offset:1px}._histogramFill_adany_30{background:var(--lv2);border-radius:1px 1px 0 0;width:100%;transition:height .15s;display:block}._active_adany_76{background:var(--lv1)}._list_apmmi_2{flex-direction:column;gap:10px;display:flex}._grid_apmmi_9{flex-wrap:wrap;gap:10px;display:flex}._grid_apmmi_9 li{flex:0 auto;min-width:0;max-width:100%}._count_apmmi_22{font:var(--text-xs);color:var(--lv5);justify-content:space-between;align-items:center;gap:8px;display:flex}._countValue_apmmi_31{flex-shrink:0}._chip_apmmi_35{min-width:0;max-width:100%}._error_apmmi_40{font:var(--text-xs);color:var(--negative,#c33)}._active_apmmi_46{background:var(--lv1)}._grid_xm2uh_2{flex-wrap:wrap;gap:10px;list-style:none;display:flex}._grid_xm2uh_2 li{flex:0 auto;min-width:0;max-width:100%}._chip_xm2uh_17{min-width:0;max-width:100%}._chip_xm2uh_17 svg{flex-shrink:0}._chipLabel_xm2uh_28{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._select_nwf7i_1{padding:6px 10px;font-size:14px}._radioGroup_nwf7i_6{flex-direction:column;gap:6px;display:flex}._list_1y4fk_1{flex-direction:column;gap:15px;list-style-type:none;display:flex}
1
+ ._placeholder_ee9qi_1{opacity:.05;justify-content:center;align-items:center;height:100%;min-height:600px;max-height:1000px;display:flex}._invalid_ee9qi_11 p{font:var(--text-base);padding:25px}._row_1i201_1{border-bottom:1px solid var(--lv0);font:var(--text-xs);color:var(--lv5);padding:20px 25px 20px 30px;position:relative}@media (prefers-color-scheme:dark){._row_1i201_1{border-color:var(--lv2)}}._row_1i201_1:last-child{border-bottom:none}._content_1i201_19{flex-direction:column;gap:10px;line-height:1.8;display:flex}._content_1i201_19 span{background-color:var(--lv0)}._indexNumber_1i201_31{font:var(--text-2xs);color:var(--lv4);position:absolute;top:25px;left:5px}._scoreNumber_1i201_39{font:var(--text-2xs);color:var(--lv4);position:absolute;top:25px;right:5px}@keyframes _fade_1i201_1{0%,to{opacity:1}50%{opacity:.4}}._skeletonBars_1i201_53{flex-direction:column;gap:10px;display:flex}._skeletonBarLg_1i201_59{background:var(--lv3);border-radius:1px;height:12px;animation:2.4s ease-in-out infinite _fade_1i201_1}._skeletonBarSm_1i201_66{background:var(--lv3);border-radius:1px;height:8px;animation:2.4s ease-in-out infinite _fade_1i201_1}@keyframes _skeletonAppear_81m3c_1{0%{opacity:0}to{opacity:1}}._wrapper_81m3c_6{animation:.2s .15s both _skeletonAppear_81m3c_1}._row_ujwhc_1{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._title_ujwhc_8{font:var(--text-base);color:var(--lv8)}@keyframes _skeletonAppear_4nxla_1{0%{opacity:0}to{opacity:1}}@keyframes _fade_4nxla_1{0%,to{opacity:1}50%{opacity:.4}}._bar_4nxla_12{background:var(--lv2);border-radius:1px;height:10px;animation:.2s .15s both _skeletonAppear_4nxla_1,2.4s ease-in-out .35s infinite _fade_4nxla_1}._listRows_4nxla_19{flex-direction:column;gap:12px;display:flex}._sliderArea_4nxla_25{flex-direction:column;gap:14px;padding:4px 0 10px;display:flex}._sliderTrack_4nxla_32{background:var(--lv2);border-radius:1px;width:100%;height:6px;animation:.2s .15s both _skeletonAppear_4nxla_1,2.4s ease-in-out .35s infinite _fade_4nxla_1}._inputRow_4nxla_40{justify-content:space-between;display:flex}._inputBar_4nxla_45{background:var(--lv2);border-radius:1px;width:40px;height:20px;animation:.2s .15s both _skeletonAppear_4nxla_1,2.4s ease-in-out .35s infinite _fade_4nxla_1}._histogramRow_4nxla_55{height:8px;margin-top:2px}._list_18vbb_2{flex-direction:column;gap:10px;display:flex}._count_18vbb_7{font:var(--text-xs);color:var(--lv5);justify-content:space-between;align-items:center;gap:8px;display:flex}._countValue_18vbb_17{flex-shrink:0}._chip_18vbb_22{min-width:0;max-width:100%}._chip_18vbb_22 svg{flex-shrink:0}._chipLabel_18vbb_32{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._grid_18vbb_40{flex-wrap:wrap;gap:10px;display:flex}._grid_18vbb_40 li{flex:0 auto;min-width:0;max-width:100%}._active_18vbb_54{background:var(--lv1)}._disabledMessage_adany_1{font:var(--text-2xs);margin-bottom:10px}._histogram_adany_6{height:20px;margin-bottom:2px;position:relative}._histogramLayer_adany_14{align-items:flex-end;padding:0 10px;display:flex;position:absolute;inset:0}._histogramLive_adany_22,._histogramLit_adany_23{pointer-events:none}._histogramLive_adany_22 ._histogramFill_adany_30{background:var(--lv3);border-radius:0}._histogramLit_adany_23 ._histogramFill_adany_30{background:var(--lv5);border-radius:0}._histogramBar_adany_43{cursor:pointer;background:0 0;border:0;flex:0 0;align-items:flex-end;min-width:0;height:100%;padding:0;display:flex}._histogramSeparators_adany_61{pointer-events:none;position:absolute;inset:0}._histogramSeparator_adany_48{background:var(--lv0);width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0}._active_adany_76 ._histogramSeparator_adany_48{background:var(--lv1)}._histogramBar_adany_43:disabled{cursor:default}._histogramBar_adany_43:focus-visible{outline:1px solid var(--lv5);outline-offset:1px}._histogramFill_adany_30{background:var(--lv2);border-radius:1px 1px 0 0;width:100%;transition:height .15s;display:block}._active_adany_76{background:var(--lv1)}._list_apmmi_2{flex-direction:column;gap:10px;display:flex}._grid_apmmi_9{flex-wrap:wrap;gap:10px;display:flex}._grid_apmmi_9 li{flex:0 auto;min-width:0;max-width:100%}._count_apmmi_22{font:var(--text-xs);color:var(--lv5);justify-content:space-between;align-items:center;gap:8px;display:flex}._countValue_apmmi_31{flex-shrink:0}._chip_apmmi_35{min-width:0;max-width:100%}._error_apmmi_40{font:var(--text-xs);color:var(--negative,#c33)}._active_apmmi_46{background:var(--lv1)}._grid_1xjna_2{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}._grid_1xjna_2 li{flex:0 auto;min-width:0;max-width:100%}._chip_1xjna_21{min-width:0;max-width:100%}._chip_1xjna_21 svg{flex-shrink:0}._chipLabel_1xjna_32{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._select_nwf7i_1{padding:6px 10px;font-size:14px}._radioGroup_nwf7i_6{flex-direction:column;gap:6px;display:flex}._list_1y4fk_1{flex-direction:column;gap:15px;list-style-type:none;display:flex}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indxsearch/intrface",
3
- "version": "3.9.0",
3
+ "version": "3.9.1",
4
4
  "description": "Indx Search interface components for React. Provides ready-to-use filter panels, search inputs, faceted navigation, and sorting components. Built on @indxsearch/systm.",
5
5
  "keywords": [
6
6
  "indx",
@@ -73,7 +73,7 @@
73
73
  "dependencies": {
74
74
  "@indxsearch/indx-types": "^2.2.0",
75
75
  "@indxsearch/pixl": "^1.5.0",
76
- "@indxsearch/systm": "^2.16.0",
76
+ "@indxsearch/systm": "^2.17.0",
77
77
  "react-range": "^1.10.0"
78
78
  },
79
79
  "publishConfig": {