@inkeep/cxkit-primitives 0.5.36 → 0.5.38

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.
Files changed (35) hide show
  1. package/dist/atoms/cmdk/index.cjs +1 -1
  2. package/dist/atoms/cmdk/index.js +328 -320
  3. package/dist/components/embedded-chat/use-inkeep-chat.cjs +3 -3
  4. package/dist/components/embedded-chat/use-inkeep-chat.js +138 -143
  5. package/dist/components/embedded-chat.cjs +2 -2
  6. package/dist/components/embedded-chat.js +306 -306
  7. package/dist/components/embedded-search/search-provider.cjs +1 -1
  8. package/dist/components/embedded-search/search-provider.js +19 -12
  9. package/dist/components/embedded-search/transform-results.cjs +1 -1
  10. package/dist/components/embedded-search/transform-results.js +56 -72
  11. package/dist/components/embedded-search/url-query.cjs +1 -0
  12. package/dist/components/embedded-search/url-query.js +12 -0
  13. package/dist/components/embedded-search/use-inkeep-search.cjs +1 -1
  14. package/dist/components/embedded-search/use-inkeep-search.js +27 -149
  15. package/dist/components/embedded-search/use-search-filter.cjs +1 -0
  16. package/dist/components/embedded-search/use-search-filter.js +91 -0
  17. package/dist/components/embedded-search.cjs +1 -1
  18. package/dist/components/embedded-search.js +372 -365
  19. package/dist/components/intelligent-form/actions/escalation-schema.cjs +1 -1
  20. package/dist/components/intelligent-form/actions/escalation-schema.js +1 -2
  21. package/dist/constants/search.cjs +1 -0
  22. package/dist/constants/search.js +5 -0
  23. package/dist/index.d.cts +17 -122
  24. package/dist/index.d.ts +17 -122
  25. package/dist/providers/base-events-provider.cjs +1 -1
  26. package/dist/providers/base-events-provider.js +1 -1
  27. package/dist/providers/config-provider.cjs +1 -1
  28. package/dist/providers/config-provider.js +15 -15
  29. package/dist/utils/component-ids.cjs +1 -1
  30. package/dist/utils/component-ids.js +1 -1
  31. package/dist/utils/default-settings.cjs +1 -1
  32. package/dist/utils/default-settings.js +7 -21
  33. package/dist/utils/tools/{links-schema.cjs → links-tool.cjs} +1 -1
  34. package/dist/utils/tools/{links-schema.js → links-tool.js} +13 -4
  35. package/package.json +4 -4
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),t=require("react"),i=require("./use-inkeep-search.cjs"),a=require("../../providers/search-events-provider.cjs"),c=t.createContext(void 0),u=e=>r.jsx(a.SearchEventsProviderWithBase,{children:r.jsx(s,{...e})}),s=({children:e,...o})=>{const n=i.useInkeepSearch();return r.jsx(c.Provider,{value:{...n,...o},children:e})},h=()=>{const e=t.useContext(c);if(!e)throw new Error("useSearch must be used within a SearchProvider");return e};exports.SearchProvider=u;exports.SearchProviderImpl=s;exports.useSearch=h;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),s=require("react"),i=require("./use-inkeep-search.cjs"),a=require("../../providers/search-events-provider.cjs"),u=require("../../atoms/cmdk/index.cjs"),h=require("../../providers/config-provider.cjs"),o=s.createContext(void 0),d=e=>{const{searchSettings:{defaultQuery:t}}=h.useInkeepConfig();return r.jsx(a.SearchEventsProviderWithBase,{children:r.jsx(u.Command,{shouldFilter:!1,loop:!1,defaultSearch:t,children:r.jsx(c,{...e})})})},c=({children:e,...t})=>{const n=i.useInkeepSearch();return r.jsx(o.Provider,{value:{...n,...t},children:e})},l=()=>{const e=s.useContext(o);if(!e)throw new Error("useSearch must be used within a SearchProvider");return e};exports.SearchProvider=d;exports.SearchProviderImpl=c;exports.useSearch=l;
@@ -1,19 +1,26 @@
1
1
  "use client";
2
- import { jsx as e } from "react/jsx-runtime";
3
- import { createContext as n, useContext as s } from "react";
2
+ import { jsx as r } from "react/jsx-runtime";
3
+ import { createContext as s, useContext as c } from "react";
4
4
  import { useInkeepSearch as i } from "./use-inkeep-search.js";
5
5
  import { SearchEventsProviderWithBase as a } from "../../providers/search-events-provider.js";
6
- const t = n(void 0), S = (r) => /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e(h, { ...r }) }), h = ({ children: r, ...o }) => {
7
- const c = i();
8
- return /* @__PURE__ */ e(t.Provider, { value: { ...c, ...o }, children: r });
9
- }, p = () => {
10
- const r = s(t);
11
- if (!r)
6
+ import { Command as h } from "../../atoms/cmdk/index.js";
7
+ import { useInkeepConfig as m } from "../../providers/config-provider.js";
8
+ const t = s(void 0), x = (e) => {
9
+ const {
10
+ searchSettings: { defaultQuery: o }
11
+ } = m();
12
+ return /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(h, { shouldFilter: !1, loop: !1, defaultSearch: o, children: /* @__PURE__ */ r(u, { ...e }) }) });
13
+ }, u = ({ children: e, ...o }) => {
14
+ const n = i();
15
+ return /* @__PURE__ */ r(t.Provider, { value: { ...n, ...o }, children: e });
16
+ }, C = () => {
17
+ const e = c(t);
18
+ if (!e)
12
19
  throw new Error("useSearch must be used within a SearchProvider");
13
- return r;
20
+ return e;
14
21
  };
15
22
  export {
16
- S as SearchProvider,
17
- h as SearchProviderImpl,
18
- p as useSearch
23
+ x as SearchProvider,
24
+ u as SearchProviderImpl,
25
+ C as useSearch
19
26
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),S=require("../../providers/config-provider.cjs"),T=require("../../utils/transform-source/index.cjs"),v=(e,s)=>{const{baseSettings:{transformSource:r,organizationDisplayName:o},searchSettings:{tabs:u,searchQueryParamKey:i,shouldOpenLinksInNewTab:g}}=S.useInkeepConfig();return w.useMemo(()=>{const R=u.length>0?u:["All"],n={},y=new Set,d=R.map(t=>typeof t=="string"?t:t[0]);for(const t of d)n[t]=[];for(const t of e){const c=t.url||"";if(y.has(c))continue;y.add(c);const l=i?I(c,s,i):c,a=T.transformInkeepSource({title:t.title,url:l,description:k(t),type:O(t.rootRecord.__typename),tag:D(t),breadcrumbs:t.rootRecord.pathBreadcrumbs??[],contentType:t.rootRecord.contentType},"searchResultItem",{organizationDisplayName:o,tabs:u,transformSource:r}),f={...a,id:t.id,isExternal:a.shouldOpenInNewTab!==void 0?a.shouldOpenInNewTab:g},m=f.tabs||[];for(const b of m){const p=typeof b=="string"?b:b[0];if(!d.includes(p)){console.warn(`Tab "${p}" found in item but not configured in tabs`);continue}n[p].push(f)}d.includes("All")&&n.All.push(f)}for(const t of Object.keys(n)){const c=R.find(a=>typeof a=="string"?a===t:a[0]===t),l=typeof c=="object"?c[1]?.isAlwaysVisible===!0:!1;n[t].length===0&&!l&&delete n[t]}return n},[e,r,o,u,i,g])};function I(e,s,r){try{const o=new URL(e);return o.searchParams.set(r,s),o.toString()}catch{return e}}const k=e=>{switch(e.rootRecord.__typename){case"DocumentationRecord":{const s=h(e.pathHeadings?.at(-1)?.content||""),r=h(e.content?.content||"");return e.preview||r||s}case"GitHubIssueRecord":case"StackOverflowRecord":case"DiscourseRecord":return e.rootRecord.body;default:return e.preview}},D=e=>{switch(e.rootRecord.__typename){case"StackOverflowRecord":return e.rootRecord.markedAsCorrectAnswer?"Resolved":void 0;case"GitHubIssueRecord":return e.rootRecord.state==="CLOSED"?"Closed":void 0}},h=e=>{const s=/(https?:\/\/\S+)/g;return e.replace(s,r=>{const o=r.split("/");return o.length>3?`...${o.slice(-2).join("/")}`:r})},O=e=>{switch(e){case"DocumentationRecord":return"documentation";case"GitHubIssueRecord":return"github_issue";case"DiscourseRecord":return"discourse";case"DiscordRecord":return"discord";case"StackOverflowRecord":return"stackoverflow";case"SlackEntry":return"slack_message";default:return"site"}};exports.useTransformResults=v;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),y=require("../../providers/config-provider.cjs"),h=require("../../utils/transform-source/index.cjs"),w=t=>{const{baseSettings:{transformSource:c,organizationDisplayName:o},searchSettings:{tabs:r,shouldOpenLinksInNewTab:f}}=y.useInkeepConfig();return m.useMemo(()=>{const b=r.length>0?r:["All"],s={},p=new Set,u=b.map(e=>typeof e=="string"?e:e[0]);for(const e of u)s[e]=[];for(const e of t){const a=e.url||"";if(p.has(a))continue;p.add(a);const i=h.transformInkeepSource({title:e.title,url:a,description:S(e),type:v(e.rootRecord.__typename),tag:T(e),breadcrumbs:e.rootRecord.pathBreadcrumbs??[],contentType:e.rootRecord.contentType},"searchResultItem",{organizationDisplayName:o,tabs:r,transformSource:c}),n={...i,id:e.id,isExternal:i.shouldOpenInNewTab!==void 0?i.shouldOpenInNewTab:f},R=n.tabs||[];for(const d of R){const l=typeof d=="string"?d:d[0];if(!u.includes(l)){console.warn(`Tab "${l}" found in item but not configured in tabs`);continue}s[l].push(n)}u.includes("All")&&s.All.push(n)}for(const e of Object.keys(s)){const a=b.find(n=>typeof n=="string"?n===e:n[0]===e),i=typeof a=="object"?a[1]?.isAlwaysVisible===!0:!1;s[e].length===0&&!i&&delete s[e]}return s},[t,c,o,r,f])},S=t=>{switch(t.rootRecord.__typename){case"DocumentationRecord":{const c=g(t.pathHeadings?.at(-1)?.content||""),o=g(t.content?.content||"");return t.preview||o||c}case"GitHubIssueRecord":case"StackOverflowRecord":case"DiscourseRecord":return t.rootRecord.body;default:return t.preview}},T=t=>{switch(t.rootRecord.__typename){case"StackOverflowRecord":return t.rootRecord.markedAsCorrectAnswer?"Resolved":void 0;case"GitHubIssueRecord":return t.rootRecord.state==="CLOSED"?"Closed":void 0}},g=t=>{const c=/(https?:\/\/\S+)/g;return t.replace(c,o=>{const r=o.split("/");return r.length>3?`...${r.slice(-2).join("/")}`:o})},v=t=>{switch(t){case"DocumentationRecord":return"documentation";case"GitHubIssueRecord":return"github_issue";case"DiscourseRecord":return"discourse";case"DiscordRecord":return"discord";case"StackOverflowRecord":return"stackoverflow";case"SlackEntry":return"slack_message";default:return"site"}};exports.useTransformResults=w;
@@ -1,97 +1,81 @@
1
1
  "use client";
2
- import { useMemo as w } from "react";
3
- import { useInkeepConfig as S } from "../../providers/config-provider.js";
4
- import { transformInkeepSource as I } from "../../utils/transform-source/index.js";
5
- const N = (e, s) => {
2
+ import { useMemo as R } from "react";
3
+ import { useInkeepConfig as h } from "../../providers/config-provider.js";
4
+ import { transformInkeepSource as y } from "../../utils/transform-source/index.js";
5
+ const D = (t) => {
6
6
  const {
7
- baseSettings: { transformSource: o, organizationDisplayName: r },
8
- searchSettings: { tabs: u, searchQueryParamKey: i, shouldOpenLinksInNewTab: g }
9
- } = S();
10
- return w(() => {
11
- const m = u.length > 0 ? u : ["All"], n = {}, R = /* @__PURE__ */ new Set(), d = m.map((t) => typeof t == "string" ? t : t[0]);
12
- for (const t of d)
13
- n[t] = [];
14
- for (const t of e) {
15
- const c = t.url || "";
16
- if (R.has(c)) continue;
17
- R.add(c);
18
- const l = i ? T(c, s, i) : c, a = I(
7
+ baseSettings: { transformSource: c, organizationDisplayName: o },
8
+ searchSettings: { tabs: r, shouldOpenLinksInNewTab: f }
9
+ } = h();
10
+ return R(() => {
11
+ const p = r.length > 0 ? r : ["All"], s = {}, b = /* @__PURE__ */ new Set(), u = p.map((e) => typeof e == "string" ? e : e[0]);
12
+ for (const e of u)
13
+ s[e] = [];
14
+ for (const e of t) {
15
+ const a = e.url || "";
16
+ if (b.has(a)) continue;
17
+ b.add(a);
18
+ const i = y(
19
19
  {
20
- title: t.title,
21
- url: l,
22
- description: k(t),
23
- type: D(t.rootRecord.__typename),
24
- tag: v(t),
25
- breadcrumbs: t.rootRecord.pathBreadcrumbs ?? [],
26
- contentType: t.rootRecord.contentType
20
+ title: e.title,
21
+ url: a,
22
+ description: w(e),
23
+ type: I(e.rootRecord.__typename),
24
+ tag: S(e),
25
+ breadcrumbs: e.rootRecord.pathBreadcrumbs ?? [],
26
+ contentType: e.rootRecord.contentType
27
27
  },
28
28
  "searchResultItem",
29
- { organizationDisplayName: r, tabs: u, transformSource: o }
30
- ), f = {
31
- ...a,
32
- id: t.id,
33
- isExternal: a.shouldOpenInNewTab !== void 0 ? a.shouldOpenInNewTab : g
34
- }, y = f.tabs || [];
35
- for (const p of y) {
36
- const b = typeof p == "string" ? p : p[0];
37
- if (!d.includes(b)) {
38
- console.warn(`Tab "${b}" found in item but not configured in tabs`);
29
+ { organizationDisplayName: o, tabs: r, transformSource: c }
30
+ ), n = {
31
+ ...i,
32
+ id: e.id,
33
+ isExternal: i.shouldOpenInNewTab !== void 0 ? i.shouldOpenInNewTab : f
34
+ }, m = n.tabs || [];
35
+ for (const d of m) {
36
+ const l = typeof d == "string" ? d : d[0];
37
+ if (!u.includes(l)) {
38
+ console.warn(`Tab "${l}" found in item but not configured in tabs`);
39
39
  continue;
40
40
  }
41
- n[b].push(f);
41
+ s[l].push(n);
42
42
  }
43
- d.includes("All") && n.All.push(f);
43
+ u.includes("All") && s.All.push(n);
44
44
  }
45
- for (const t of Object.keys(n)) {
46
- const c = m.find((a) => typeof a == "string" ? a === t : a[0] === t), l = typeof c == "object" ? c[1]?.isAlwaysVisible === !0 : !1;
47
- n[t].length === 0 && !l && delete n[t];
45
+ for (const e of Object.keys(s)) {
46
+ const a = p.find((n) => typeof n == "string" ? n === e : n[0] === e), i = typeof a == "object" ? a[1]?.isAlwaysVisible === !0 : !1;
47
+ s[e].length === 0 && !i && delete s[e];
48
48
  }
49
- return n;
50
- }, [
51
- e,
52
- o,
53
- r,
54
- u,
55
- i,
56
- g
57
- ]);
58
- };
59
- function T(e, s, o) {
60
- try {
61
- const r = new URL(e);
62
- return r.searchParams.set(o, s), r.toString();
63
- } catch {
64
- return e;
65
- }
66
- }
67
- const k = (e) => {
68
- switch (e.rootRecord.__typename) {
49
+ return s;
50
+ }, [t, c, o, r, f]);
51
+ }, w = (t) => {
52
+ switch (t.rootRecord.__typename) {
69
53
  case "DocumentationRecord": {
70
- const s = h(e.pathHeadings?.at(-1)?.content || ""), o = h(e.content?.content || "");
71
- return e.preview || o || s;
54
+ const c = g(t.pathHeadings?.at(-1)?.content || ""), o = g(t.content?.content || "");
55
+ return t.preview || o || c;
72
56
  }
73
57
  case "GitHubIssueRecord":
74
58
  case "StackOverflowRecord":
75
59
  case "DiscourseRecord":
76
- return e.rootRecord.body;
60
+ return t.rootRecord.body;
77
61
  default:
78
- return e.preview;
62
+ return t.preview;
79
63
  }
80
- }, v = (e) => {
81
- switch (e.rootRecord.__typename) {
64
+ }, S = (t) => {
65
+ switch (t.rootRecord.__typename) {
82
66
  case "StackOverflowRecord":
83
- return e.rootRecord.markedAsCorrectAnswer ? "Resolved" : void 0;
67
+ return t.rootRecord.markedAsCorrectAnswer ? "Resolved" : void 0;
84
68
  case "GitHubIssueRecord":
85
- return e.rootRecord.state === "CLOSED" ? "Closed" : void 0;
69
+ return t.rootRecord.state === "CLOSED" ? "Closed" : void 0;
86
70
  }
87
- }, h = (e) => {
88
- const s = /(https?:\/\/\S+)/g;
89
- return e.replace(s, (o) => {
71
+ }, g = (t) => {
72
+ const c = /(https?:\/\/\S+)/g;
73
+ return t.replace(c, (o) => {
90
74
  const r = o.split("/");
91
75
  return r.length > 3 ? `...${r.slice(-2).join("/")}` : o;
92
76
  });
93
- }, D = (e) => {
94
- switch (e) {
77
+ }, I = (t) => {
78
+ switch (t) {
95
79
  case "DocumentationRecord":
96
80
  return "documentation";
97
81
  case "GitHubIssueRecord":
@@ -109,5 +93,5 @@ const k = (e) => {
109
93
  }
110
94
  };
111
95
  export {
112
- N as useTransformResults
96
+ D as useTransformResults
113
97
  };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function n(t,r,u){try{const e=new URL(t);return e.searchParams.set(u,r),e.toString()}catch{return t}}exports.getUrlWithQuery=n;
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ function c(t, r, n) {
3
+ try {
4
+ const e = new URL(t);
5
+ return e.searchParams.set(n, r), e.toString();
6
+ } catch {
7
+ return t;
8
+ }
9
+ }
10
+ export {
11
+ c as getUrlWithQuery
12
+ };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),te=require("../../providers/config-provider.cjs"),se=require("../../hooks/use-media-query.cjs"),re=require("./search-query.graphql.cjs"),ne=require("./transform-results.cjs"),ce=require("../../providers/search-events-provider.cjs"),ue=require("../../hooks/use-instant-update.cjs"),ae=require("../../utils/graphql-client.cjs"),oe=()=>{const{baseSettings:B,searchSettings:H}=te.useInkeepConfig(),{apiKey:Q,aiApiBaseUrl:$,userAuthToken:h,filters:T}=B,{maxResults:q,placeholder:w,defaultQuery:z,debounceTimeMs:C,onQueryChange:D,searchFunctionsRef:K,tabs:a,filters:k}=H,{logEvent:v}=ce.useSearchEvents(),[n,E]=t.useState(z),M=t.useRef(null),[I,f]=t.useState(!1),[W,d]=t.useState(null),[G,o]=t.useState("NONE"),J=t.useCallback(e=>{o(e)},[]),[y,b]=t.useState([]),s=ne.useTransformResults(y,n),A=a?.length?typeof a[0]=="string"?a[0]:a[0][0]:"All",[m,P]=t.useState(A),{disableTransition:U,disabled:V}=ue.useInstantUpdate(),X=t.useCallback(e=>{U(),P(e);const r=s[e][0]?s[e][0]?.id:void 0;o(r)},[s,U]);t.useEffect(()=>{let e=m in s?m:Object.keys(s)[0];if(!s[e]?.length){const u=Object.keys(s).find(i=>s[i]?.length);u?e=u:e=A}if(!e)return;P(e);const r=s[e]?.[0];r&&o(r.id)},[s]);const g=se.useMediaQuery("(max-width: 768px)"),l=t.useRef({}),S=t.useRef(null),p=t.useRef(null);t.useImperativeHandle(K,()=>({updateQuery(e){E(e)},focusInput:()=>{M.current?.focus()}}));const _=`${$}/graphql`,j=t.useMemo(()=>({Authorization:`Bearer ${Q}`,"Content-Type":"application/json",...h?{"User-Token":h}:{}}),[Q,h]),F=t.useCallback(async e=>{const r=new AbortController;S.current=r;try{d(null);const i=(await ae.graphqlRequest(_,re.default,{searchInput:e},j,r.signal))?.search.searchHits;l.current[e.searchQuery]=i,b(i)}catch(u){if(u.name==="AbortError")return;d("Failed to fetch search results. Please try again.")}finally{f(!1)}},[_,j]),L=t.useCallback(e=>{const r=l.current[e.searchQuery];v({eventName:"search_query_response_received",properties:{searchQuery:e.searchQuery,totalResults:r?.length}})},[]),N=()=>{S.current&&(S.current.abort(),f(!1))},O=t.useCallback(e=>{if(p.current&&window.clearTimeout(p.current),!e.searchQuery){N(),b([]),d(null);return}p.current=window.setTimeout(()=>{N(),v({eventName:"search_query_submitted",properties:{searchQuery:e.searchQuery}}),l.current[e.searchQuery]?(b(l.current[e.searchQuery]),L(e)):(f(!0),F(e).then(()=>{L(e)}))},C)},[C,F]),R=t.useMemo(()=>({searchQuery:n,filters:{...T,...k,limit:q}}),[n,q,T,k]);t.useEffect(()=>{D?.(R.searchQuery),O(R)},[O,R]);const c=t.useRef(null),[Y,x]=t.useState(!1);t.useEffect(()=>(c.current!==null&&window.clearTimeout(c.current),n?c.current=window.setTimeout(()=>{x(!0)},400):x(!1),()=>{c.current!==null&&window.clearTimeout(c.current)}),[n]);const Z=t.useCallback(e=>E(e.target.value),[]),ee=t.useMemo(()=>w||(g?"Search...":"Search for anything..."),[w,g]);return{results:s,resultsList:y,hasContent:Y&&(y.length>0||I),loading:I,error:W,query:n,onInput:Z,placeholder:ee,tab:m,onTabChange:X,selectedItem:G,setSelectedItem:o,onSelectedItemChange:J,transitionsDisabled:V,inputRef:M,isMobile:g}};exports.useInkeepSearch=oe;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),I=require("../../providers/config-provider.cjs"),m=require("./transform-results.cjs"),q=require("../../hooks/use-instant-update.cjs"),T=require("../../atoms/cmdk/index.cjs"),y=()=>{const{searchSettings:u}=I.useInkeepConfig(),{tabs:t,searchFunctionsRef:c}=u,[n,i]=e.useState(!1),a=e.useRef(null),[o,l]=e.useState(!1),r=t?.length?typeof t[0]=="string"?t[0]:t[0][0]:"All",[d,f]=e.useState(r),[s,S]=e.useState([]),h=m.useTransformResults(s),{disableTransition:p,disabled:g}=q.useInstantUpdate(),b=T.useCommandStore();return e.useImperativeHandle(c,()=>({updateQuery(R){b.setState("search",R)},focusInput:()=>{a.current?.focus()}})),{results:h,resultsList:s,setResultsList:S,hasContent:n&&(s.length>0||o),loading:o,setLoading:l,defaultTab:r,tab:d,setTab:f,disableTransition:p,transitionsDisabled:g,inputRef:a,showSearchResults:n,setShowSearchResults:i}};exports.useInkeepSearch=y;
@@ -1,157 +1,35 @@
1
1
  "use client";
2
- import { useState as s, useRef as l, useCallback as o, useEffect as w, useImperativeHandle as oe, useMemo as v } from "react";
3
- import { useInkeepConfig as ce } from "../../providers/config-provider.js";
4
- import { useMediaQuery as ae } from "../../hooks/use-media-query.js";
5
- import le from "./search-query.graphql.js";
6
- import { useTransformResults as ue } from "./transform-results.js";
7
- import { useSearchEvents as ie } from "../../providers/search-events-provider.js";
8
- import { useInstantUpdate as he } from "../../hooks/use-instant-update.js";
9
- import { graphqlRequest as fe } from "../../utils/graphql-client.js";
10
- const Te = () => {
11
- const { baseSettings: D, searchSettings: K } = ce(), { apiKey: C, aiApiBaseUrl: W, userAuthToken: m, filters: k } = D, {
12
- maxResults: q,
13
- placeholder: A,
14
- defaultQuery: G,
15
- debounceTimeMs: E,
16
- onQueryChange: J,
17
- searchFunctionsRef: V,
18
- tabs: u,
19
- filters: I
20
- } = K, { logEvent: _ } = ie(), [n, x] = s(G), F = l(null), [L, d] = s(!1), [X, y] = s(null), [Y, i] = s("NONE"), Z = o((e) => {
21
- i(e);
22
- }, []), [p, b] = s([]), t = ue(p, n), M = u?.length ? typeof u[0] == "string" ? u[0] : u[0][0] : "All", [g, N] = s(M), { disableTransition: U, disabled: ee } = he(), te = o(
23
- (e) => {
24
- U(), N(e);
25
- const r = t[e][0] ? t[e][0]?.id : void 0;
26
- i(r);
27
- },
28
- [t, U]
29
- );
30
- w(() => {
31
- let e = g in t ? g : Object.keys(t)[0];
32
- if (!t[e]?.length) {
33
- const a = Object.keys(t).find((f) => t[f]?.length);
34
- a ? e = a : e = M;
35
- }
36
- if (!e) return;
37
- N(e);
38
- const r = t[e]?.[0];
39
- r && i(r.id);
40
- }, [t]);
41
- const Q = ae("(max-width: 768px)"), h = l({}), R = l(null), T = l(null);
42
- oe(V, () => ({
43
- updateQuery(e) {
44
- x(e);
2
+ import { useState as t, useRef as R, useImperativeHandle as I } from "react";
3
+ import { useInkeepConfig as T } from "../../providers/config-provider.js";
4
+ import { useTransformResults as C } from "./transform-results.js";
5
+ import { useInstantUpdate as L } from "../../hooks/use-instant-update.js";
6
+ import { useCommandStore as k } from "../../atoms/cmdk/index.js";
7
+ const D = () => {
8
+ const { searchSettings: u } = T(), { tabs: s, searchFunctionsRef: c } = u, [n, i] = t(!1), o = R(null), [r, l] = t(!1), a = s?.length ? typeof s[0] == "string" ? s[0] : s[0][0] : "All", [f, m] = t(a), [e, p] = t([]), d = C(e), { disableTransition: h, disabled: S } = L(), b = k();
9
+ return I(c, () => ({
10
+ updateQuery(g) {
11
+ b.setState("search", g);
45
12
  },
46
13
  focusInput: () => {
47
- F.current?.focus();
14
+ o.current?.focus();
48
15
  }
49
- }));
50
- const j = `${W}/graphql`, O = v(
51
- () => ({
52
- Authorization: `Bearer ${C}`,
53
- "Content-Type": "application/json",
54
- ...m ? { "User-Token": m } : {}
55
- }),
56
- [C, m]
57
- ), B = o(
58
- async (e) => {
59
- const r = new AbortController();
60
- R.current = r;
61
- try {
62
- y(null);
63
- const f = (await fe(
64
- j,
65
- le,
66
- { searchInput: e },
67
- O,
68
- r.signal
69
- ))?.search.searchHits;
70
- h.current[e.searchQuery] = f, b(f);
71
- } catch (a) {
72
- if (a.name === "AbortError")
73
- return;
74
- y("Failed to fetch search results. Please try again.");
75
- } finally {
76
- d(!1);
77
- }
78
- },
79
- [j, O]
80
- ), H = o((e) => {
81
- const r = h.current[e.searchQuery];
82
- _({
83
- eventName: "search_query_response_received",
84
- properties: {
85
- searchQuery: e.searchQuery,
86
- totalResults: r?.length
87
- }
88
- });
89
- }, []), P = () => {
90
- R.current && (R.current.abort(), d(!1));
91
- }, $ = o(
92
- (e) => {
93
- if (T.current && window.clearTimeout(T.current), !e.searchQuery) {
94
- P(), b([]), y(null);
95
- return;
96
- }
97
- T.current = window.setTimeout(() => {
98
- P(), _({
99
- eventName: "search_query_submitted",
100
- properties: {
101
- searchQuery: e.searchQuery
102
- }
103
- }), h.current[e.searchQuery] ? (b(h.current[e.searchQuery]), H(e)) : (d(!0), B(e).then(() => {
104
- H(e);
105
- }));
106
- }, E);
107
- },
108
- [E, B]
109
- ), S = v(
110
- () => ({
111
- searchQuery: n,
112
- filters: {
113
- ...k,
114
- ...I,
115
- limit: q
116
- }
117
- }),
118
- [n, q, k, I]
119
- );
120
- w(() => {
121
- J?.(S.searchQuery), $(S);
122
- }, [$, S]);
123
- const c = l(null), [re, z] = s(!1);
124
- w(() => (c.current !== null && window.clearTimeout(c.current), n ? c.current = window.setTimeout(() => {
125
- z(!0);
126
- }, 400) : z(!1), () => {
127
- c.current !== null && window.clearTimeout(c.current);
128
- }), [n]);
129
- const se = o(
130
- (e) => x(e.target.value),
131
- []
132
- ), ne = v(
133
- () => A || (Q ? "Search..." : "Search for anything..."),
134
- [A, Q]
135
- );
136
- return {
137
- results: t,
138
- resultsList: p,
139
- hasContent: re && (p.length > 0 || L),
140
- loading: L,
141
- error: X,
142
- query: n,
143
- onInput: se,
144
- placeholder: ne,
145
- tab: g,
146
- onTabChange: te,
147
- selectedItem: Y,
148
- setSelectedItem: i,
149
- onSelectedItemChange: Z,
150
- transitionsDisabled: ee,
151
- inputRef: F,
152
- isMobile: Q
16
+ })), {
17
+ results: d,
18
+ resultsList: e,
19
+ setResultsList: p,
20
+ hasContent: n && (e.length > 0 || r),
21
+ loading: r,
22
+ setLoading: l,
23
+ defaultTab: a,
24
+ tab: f,
25
+ setTab: m,
26
+ disableTransition: h,
27
+ transitionsDisabled: S,
28
+ inputRef: o,
29
+ showSearchResults: n,
30
+ setShowSearchResults: i
153
31
  };
154
32
  };
155
33
  export {
156
- Te as useInkeepSearch
34
+ D as useInkeepSearch
157
35
  };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),F=require("../../atoms/cmdk/index.cjs"),L=require("../../providers/search-events-provider.cjs"),P=require("../../providers/config-provider.cjs"),U=require("../../utils/graphql-client.cjs"),B=require("./search-query.graphql.cjs"),H=require("./search-provider.cjs"),O=400,j=()=>{const{setResultsList:o,setLoading:u,showSearchResults:a,setShowSearchResults:i}=H.useSearch(),{baseSettings:_,searchSettings:k}=P.useInkeepConfig(),{apiKey:y,aiApiBaseUrl:A,userAuthToken:l,filters:R}=_,{maxResults:m,debounceTimeMs:S,onQueryChange:M,filters:b}=k,{logEvent:g}=L.useSearchEvents(),s=r.useRef({}),h=r.useRef(null),f=r.useRef(null),T=`${A}/graphql`,q=r.useMemo(()=>({Authorization:`Bearer ${y}`,"Content-Type":"application/json",...l?{"User-Token":l}:{}}),[y,l]),w=r.useCallback(async e=>{const t=new AbortController;h.current=t;try{const E=(await U.graphqlRequest(T,B.default,{searchInput:e},q,t.signal))?.search.searchHits;s.current[e.searchQuery]=E,o(E)}catch(C){if(C.name==="AbortError")return}finally{u(!1)}},[T,q]),Q=r.useCallback(e=>{const t=s.current[e.searchQuery];g({eventName:"search_query_response_received",properties:{searchQuery:e.searchQuery,totalResults:t?.length}})},[]),p=()=>{h.current&&(h.current.abort(),u(!1))},v=r.useCallback(e=>{if(f.current&&window.clearTimeout(f.current),!e.searchQuery){p(),o([]);return}f.current=window.setTimeout(()=>{p(),g({eventName:"search_query_submitted",properties:{searchQuery:e.searchQuery}}),s.current[e.searchQuery]?(o(s.current[e.searchQuery]),Q(e)):(u(!0),w(e).then(()=>{Q(e)}))},S)},[S,w]),c=F.useCommandState(e=>e.search),d=r.useMemo(()=>({searchQuery:c,filters:{...R,...b,limit:m}}),[c,m,R,b]),n=r.useRef(null);r.useEffect(()=>{const e=()=>{n.current!==null&&(window.clearTimeout(n.current),n.current=null)},t=!!c;return t&&!a?(e(),n.current=window.setTimeout(()=>{i(!0)},O)):!t&&a&&(e(),i(!1)),e},[c,a,i]),r.useEffect(()=>{M?.(d.searchQuery),v(d)},[v,d])};exports.useSearchFetch=j;
@@ -0,0 +1,91 @@
1
+ "use client";
2
+ import { useRef as n, useMemo as A, useCallback as y, useEffect as k } from "react";
3
+ import { useCommandState as H } from "../../atoms/cmdk/index.js";
4
+ import { useSearchEvents as M } from "../../providers/search-events-provider.js";
5
+ import { useInkeepConfig as x } from "../../providers/config-provider.js";
6
+ import { graphqlRequest as N } from "../../utils/graphql-client.js";
7
+ import O from "./search-query.graphql.js";
8
+ import { useSearch as $ } from "./search-provider.js";
9
+ const j = 400, V = () => {
10
+ const { setResultsList: c, setLoading: u, showSearchResults: a, setShowSearchResults: i } = $(), { baseSettings: L, searchSettings: U } = x(), { apiKey: R, aiApiBaseUrl: B, userAuthToken: l, filters: d } = L, { maxResults: p, debounceTimeMs: S, onQueryChange: F, filters: w } = U, { logEvent: T } = M(), t = n({}), h = n(null), m = n(null), Q = `${B}/graphql`, b = A(
11
+ () => ({
12
+ Authorization: `Bearer ${R}`,
13
+ "Content-Type": "application/json",
14
+ ...l ? { "User-Token": l } : {}
15
+ }),
16
+ [R, l]
17
+ ), g = y(
18
+ async (e) => {
19
+ const r = new AbortController();
20
+ h.current = r;
21
+ try {
22
+ const v = (await N(
23
+ Q,
24
+ O,
25
+ { searchInput: e },
26
+ b,
27
+ r.signal
28
+ ))?.search.searchHits;
29
+ t.current[e.searchQuery] = v, c(v);
30
+ } catch (q) {
31
+ if (q.name === "AbortError")
32
+ return;
33
+ } finally {
34
+ u(!1);
35
+ }
36
+ },
37
+ [Q, b]
38
+ ), C = y((e) => {
39
+ const r = t.current[e.searchQuery];
40
+ T({
41
+ eventName: "search_query_response_received",
42
+ properties: {
43
+ searchQuery: e.searchQuery,
44
+ totalResults: r?.length
45
+ }
46
+ });
47
+ }, []), _ = () => {
48
+ h.current && (h.current.abort(), u(!1));
49
+ }, E = y(
50
+ (e) => {
51
+ if (m.current && window.clearTimeout(m.current), !e.searchQuery) {
52
+ _(), c([]);
53
+ return;
54
+ }
55
+ m.current = window.setTimeout(() => {
56
+ _(), T({
57
+ eventName: "search_query_submitted",
58
+ properties: {
59
+ searchQuery: e.searchQuery
60
+ }
61
+ }), t.current[e.searchQuery] ? (c(t.current[e.searchQuery]), C(e)) : (u(!0), g(e).then(() => {
62
+ C(e);
63
+ }));
64
+ }, S);
65
+ },
66
+ [S, g]
67
+ ), s = H((e) => e.search), f = A(
68
+ () => ({
69
+ searchQuery: s,
70
+ filters: {
71
+ ...d,
72
+ ...w,
73
+ limit: p
74
+ }
75
+ }),
76
+ [s, p, d, w]
77
+ ), o = n(null);
78
+ k(() => {
79
+ const e = () => {
80
+ o.current !== null && (window.clearTimeout(o.current), o.current = null);
81
+ }, r = !!s;
82
+ return r && !a ? (e(), o.current = window.setTimeout(() => {
83
+ i(!0);
84
+ }, j)) : !r && a && (e(), i(!1)), e;
85
+ }, [s, a, i]), k(() => {
86
+ F?.(f.searchQuery), E(f);
87
+ }, [E, f]);
88
+ };
89
+ export {
90
+ V as useSearchFetch
91
+ };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),R=require("../atoms/cmdk/index.cjs"),r=require("./factory.cjs"),h=require("../utils/misc.cjs"),m=require("react"),o=require("./embedded-search/search-provider.cjs"),Le=require("./tagline-logo-icon.cjs"),_=require("../atoms/icons/custom-icon.cjs"),xe=require("@radix-ui/react-scroll-area"),Ce=require("@radix-ui/react-tabs"),p=require("../providers/config-provider.cjs"),ye=require("../providers/search-events-provider.cjs"),L=require("../atoms/link.cjs"),I=require("../providers/source-item-provider.cjs"),x=require("../atoms/icons/built-in-icon-renderer.cjs"),Oe=require("../utils/highlight-emphasis.cjs"),je=require("../hooks/use-scrolling-fades.cjs"),qe=require("@inkeep/cxkit-color-mode"),Be=require("../atoms/avatars/ai.cjs"),q=require("./modal/modal-provider.cjs"),w=require("../utils/compose-refs.cjs"),g=require("../utils/compose-event-handlers.cjs"),He=require("../atoms/shadow/context.cjs"),Ne=require("../atoms/markdown/index.cjs");function B(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const E=B(xe),T=B(Ce),P="__ask_ai__",Me=r.ikp("div",{_id:"aiSearchWrapper"}),H=e=>{const{searchSettings:{view:t}}=p.useInkeepConfig(),{isHidden:i,hasContent:s,isMobile:n}=o.useSearch(),c=q.useModal();return a.jsx(Me,{"data-hidden":h.dataAttr(i),"data-has-content":h.dataAttr(s),"data-in-modal":h.dataAttr(!!c),"data-mobile":h.dataAttr(n),"data-view":t,"data-dual-pane-search-expanded":h.dataAttr(s&&t==="dual-pane"&&!i),...e})},De=r.ikp(R.Command,{_id:"aiSearchRoot"}),N=e=>{const{isHidden:t,selectedItem:i,onSelectedItemChange:s,isMobile:n}=o.useSearch();return a.jsx(De,{"data-hidden":h.dataAttr(t),"data-mobile":h.dataAttr(n),shouldFilter:!1,loop:!1,value:i,onValueChange:s,...e})},M=r.ikp(R.Command.List,{_id:"aiSearchContent"}),D=m.forwardRef((e,t)=>{const{selectedItem:i}=o.useSearch();return a.jsx(M,{"aria-activedescendant":`aiSearchResults__Item-${i}`,...e,ref:t})}),F=r.ikp("div",{_id:"aiSearchInputGroup"}),U=r.ikp(_.CustomIcon,{_id:"aiSearchInputIcon",iconKey:"search"}),Fe=r.ikp(R.Command.Input,{_id:"aiSearchInput"}),V=m.forwardRef(({onInput:e,...t},i)=>{const{query:s,onInput:n,placeholder:c,inputRef:d,shouldAutoFocusInput:u,selectedItem:l}=o.useSearch(),v=w.useComposedRefs(i,d),S=q.useModal();return m.useEffect(()=>{requestAnimationFrame(()=>{u&&d?.current&&(d.current.focus(),d.current.selectionStart=d.current.value.length)})},[u,d,S?.isOpen]),a.jsx(Fe,{ref:v,placeholder:c,value:s,onInput:g.composeEventHandlers(e,n),"aria-activedescendant":`aiSearchResults__Item-${l}`,...t})}),Ue=r.ikp(x.BuiltInIconRenderer,{_id:"aiSearchLoading",iconSettings:{builtIn:"LuLoaderCircle"}}),K=e=>{const{loading:t,resultsList:i}=o.useSearch();return!t||i.length===0?null:a.jsx(Ue,{...e})},Ve=r.ikp(R.Command.Item,{_id:"aiAskAITrigger",value:P}),G=e=>{const{setSelectedItem:t,results:i,tab:s}=o.useSearch(),n=i[s]?.[0]?.id??"NONE";return a.jsx(Ve,{...e,id:`aiSearchResults__Item-${P}`,tabIndex:0,onPointerLeave:()=>t(n)})},Ke=r.ikp("img",{_id:"aiAskAITrigger__Icon"}),W=e=>{const{aiChatSettings:t}=p.useInkeepConfig(),{aiAssistantAvatar:i}=t??{},s=typeof i=="string"?i:i?.light,n=(typeof i=="string"?i:i?.dark)??s,c=qe.useColorModeValue(s,n),[d,u]=m.useState(c);m.useEffect(()=>{u(c)},[c]);const l=()=>{u(null)};return a.jsx(Ke,{asChild:!0,...e,children:d?a.jsx("img",{src:d,alt:"AI Avatar","data-type":"image",onError:g.composeEventHandlers(l),...e}):a.jsx(Be.default,{"data-type":"icon",...e})})},$=r.ikp("span",{_id:"aiAskAITrigger__Label"}),Q=r.ikp(_.CustomIcon,{_id:"aiAskAITrigger__Indicator",iconKey:"openLinkInSameTab"}),Ge=r.ikp(T.Root,{_id:"aiSearchResults"}),z=e=>{const{searchSettings:{view:t}}=p.useInkeepConfig(),{tab:i,onTabChange:s,hasContent:n,isHidden:c}=o.useSearch();return a.jsx(Ge,{value:i,onValueChange:s,"data-has-content":h.dataAttr(n),"data-dual-pane-search-expanded":h.dataAttr(n&&t==="dual-pane"&&!c),...e})},We=r.ikp("div",{_id:"aiSearchResults__Loading"}),J=e=>{const{loading:t,resultsList:i}=o.useSearch();return!t||i.length>0?null:a.jsx(We,{...e})},$e=r.ikp(R.Command.Empty,{_id:"aiSearchResults__Empty"}),X=e=>{const{query:t,loading:i,results:s,tab:n}=o.useSearch(),c=s[n]?.length;return i||!t||c?null:a.jsx($e,{children:"No results found.",...e})},Qe=r.ikp(T.List,{_id:"aiSearchResults__TabList"}),Y=e=>{const{children:t,...i}=e,{searchSettings:{tabs:s}}=p.useInkeepConfig(),{results:n,loading:c,resultsList:d}=o.useSearch();if(c&&d.length===0)return null;const u=Object.keys(n);return!s.length||!u.length?null:a.jsx(Qe,{tabIndex:-1,children:h.maybeRender(t,u),...i})},ze=r.ikp(T.Trigger,{_id:"aiSearchResults__Tab"}),Z=m.forwardRef((e,t)=>{const i=m.useRef(null),s=w.useComposedRefs(t,i),{tab:n,onClick:c,...d}=e,{results:u,tab:l,inputRef:v}=o.useSearch(),S=u[n].length,b=n===l,k=()=>{v.current?.focus()},f=He.useShadow();return m.useEffect(()=>{b&&f?.shadowHost?.shadowRoot?.activeElement?.hasAttribute("ikp-tab")&&i.current?.focus()},[b]),a.jsx(ze,{ref:s,"ikp-tab":"",tabIndex:b?0:-1,value:n,children:`${n} (${S})`,onClick:g.composeEventHandlers(c,k),...d})}),ee=r.ikp("div",{_id:"aiSearchResults__Content"}),Je=r.ikp(E.Root,{_id:"aiSearchResults__ScrollArea"}),te=e=>{const{loading:t,resultsList:i}=o.useSearch();return t&&i.length===0?null:a.jsx(Je,{tabIndex:-1,...e})},Xe=r.ikp(E.Viewport,{_id:"aiSearchResults__ScrollAreaViewport"}),ie=m.forwardRef(({children:e,...t},i)=>{const s=je.useScrollingFades(),n=w.useComposedRefs(i,s),{tab:c}=o.useSearch();return m.useEffect(()=>{c&&s.current?.scrollTo({top:0,behavior:"auto"})},[c]),a.jsx(Xe,{ref:n,tabIndex:-1,children:a.jsx("div",{tabIndex:-1,style:{display:"grid"},children:e}),...t})}),Ye=r.ikp(E.ScrollAreaScrollbar,{_id:"aiSearchResults__ScrollAreaScrollbar"}),Ze=r.ikp(E.ScrollAreaThumb,{_id:"aiSearchResults__ScrollAreaThumb"}),et=r.ikp(E.Corner,{_id:"aiSearchResults__ScrollAreaCorner"}),tt=r.ikp(T.Content,{_id:"aiSearchResults__List"}),re=e=>{const{children:t,...i}=e,{results:s,tab:n}=o.useSearch(),c=s[n]??[];return a.jsx(tt,{value:n,"data-has-results":h.dataAttr(c.length>0),"aria-label":"Search results",children:h.maybeRender(t,c),tabIndex:-1,...i})},it=r.ikp(R.Command.Item,{_id:"aiSearchResults__Item",asChild:!0}),se=m.forwardRef(({item:e,onClick:t,onSelect:i,children:s,...n},c)=>{const{searchSettings:{shouldOpenLinksInNewTab:d,view:u}}=p.useInkeepConfig(),{logEvent:l}=ye.useSearchEvents(),{query:v,transitionsDisabled:S,selectedItem:b}=o.useSearch(),k=m.useRef(null),f=w.useComposedRefs(c,k),y=m.useCallback(Ae=>{Ae.trigger==="keyboard"&&k.current?.click()},[]),O=m.useCallback(()=>{l({eventName:"search_result_clicked",properties:{searchQuery:v,title:e.title,url:e.url}})},[l,v,e.title,e.url]),A=m.useMemo(()=>e.shouldOpenInNewTab!==void 0?e.shouldOpenInNewTab:d,[e.shouldOpenInNewTab,d]),j=b===e.id,Te=j||(b==="NONE"||b===P),fe=m.useMemo(()=>({href:e.url,isExternal:A,appendToUrl:e.appendToUrl,children:s,id:`aiSearchResults__Item-${e.id}`}),[e.url,A,e.appendToUrl,s,e.id]);return a.jsx(I.SourceItemProvider,{source:{...e,isExternal:A},children:a.jsx(it,{ref:f,value:e.id,"data-type":e.type,"data-breadcrumbs":!!e.breadcrumbs?.length,"data-disable-transitions":h.dataAttr(S),"data-view":u,onSelect:g.composeEventHandlers(i,y),onClick:g.composeEventHandlers(t,O),"data-selected":h.dataAttr(j),tabIndex:Te?0:-1,...n,children:a.jsx(L.LinkWithQueryParams,{...fe})})})}),rt=r.ikp("div",{_id:"aiSearchResults__ItemBreadcrumbs"}),C=e=>{const{source:t}=I.useSourceItem(),{tab:i}=o.useSearch();if(!t.breadcrumbs?.length)return null;const{children:s,...n}=e,d=t.tabs?.find(u=>typeof u!="string"&&u[0]===i)?.[1]?.breadcrumbs??t.breadcrumbs??[];return a.jsx(rt,{"aria-hidden":"true",children:h.maybeRender(s,d),...n})},ne=r.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemBreadcrumbIcon",iconKey:"breadcrumbSeparator"}),st=r.ikp(x.BuiltInIconRenderer,{_id:"aiSearchResults__ItemIcon"}),ae=e=>{const{source:t}=I.useSourceItem();return a.jsx(st,{iconSettings:t.icon,"data-type":t.type,...e})},nt=r.ikp("span",{_id:"aiSearchResults__ItemTitle"}),ce=e=>{const{source:t}=I.useSourceItem();return a.jsx(nt,{"data-type":t.type,children:t.title,...e})},at=r.ikp("span",{_id:"aiSearchResults__ItemTag"}),de=e=>{const{source:t}=I.useSourceItem();return a.jsx(at,{"data-type":t.type,children:t.tag,...e})},ct=r.ikp("span",{_id:"aiSearchResults__ItemDescription"}),oe=e=>{const{source:t}=I.useSourceItem(),{children:i,...s}=e,n=m.useMemo(()=>t.description?Oe.highlightEmphasis(t.description):[],[t.description]);return n.length?a.jsx(ct,{"data-type":t.type,"aria-hidden":"true",children:h.maybeRender(i,n),...s}):null},dt=r.ikp("span",{_id:"aiSearchResults__ItemDescriptionPart"}),ue=e=>{const{part:t,...i}=e,{source:s}=I.useSourceItem();return typeof t=="string"?t:a.jsx(dt,{"data-type":s.type,children:t.content,"data-highlighted":h.dataAttr(t.highlighted),...i})},ot=r.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemIndicator"}),le=e=>{const{source:t}=I.useSourceItem(),{searchSettings:{view:i}}=p.useInkeepConfig();return a.jsx(ot,{iconKey:t.isExternal?"openLinkInNewTab":"openLinkInSameTab","data-view":i,...e})},ut=r.ikp("div",{_id:"aiSearchResults__ItemPreview","aria-hidden":!0}),me=e=>{const{searchSettings:{view:t,shouldOpenLinksInNewTab:i}}=p.useInkeepConfig(),{results:s,tab:n,selectedItem:c}=o.useSearch(),d=s[n]??[],u=m.useRef(null),l=m.useMemo(()=>{if(c===P)return u.current;const S=d.find(b=>b.id===c);return u.current=S??null,S},[c]);if(t!=="dual-pane"||c===P||!l)return null;const v=l.shouldOpenInNewTab!==void 0?l.shouldOpenInNewTab:i;return a.jsx(I.SourceItemProvider,{source:{...l,isExternal:v},children:a.jsx(ut,{...e})})},lt=r.ikp("div",{_id:"aiSearchResults__ItemPreview__Header"}),mt=r.ikp(L.LinkWithQueryParams,{_id:"aiSearchResults__ItemPreview__Heading"}),he=e=>{const{source:t}=I.useSourceItem();return a.jsx(mt,{href:t.url,isExternal:t.isExternal,appendToUrl:t.appendToUrl,"data-type":t.type,...e})},ht=r.ikp("span",{_id:"aiSearchResults__ItemPreview__Title"}),Ie=e=>{const{source:t}=I.useSourceItem();return a.jsx(ht,{children:t.title,...e})},It=r.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemPreview__Title__LinkIcon",iconKey:"openLinkInNewTab"}),ve=e=>{const{source:t}=I.useSourceItem();return a.jsx(It,{iconKey:t.isExternal?"openLinkInNewTab":"openLinkInSameTab",...e})},vt=r.ikp(C,{_id:"aiSearchResults__ItemPreview__Breadcrumbs"}),Se=r.ikp(ne,{_id:"aiSearchResults__ItemPreview__BreadcrumbIcon"}),St=r.ikp(Ne.Markdown,{_id:"aiSearchResults__ItemPreview__Body"}),be=e=>{const{source:t}=I.useSourceItem(),{resultsList:i}=o.useSearch(),s=i.find(c=>c.id===t.id),{searchSettings:{shouldOpenLinksInNewTab:n}}=p.useInkeepConfig();return s?a.jsx(St,{shouldOpenLinksInNewTab:n,children:s.preview,...e}):null},bt=r.ikp("div",{_id:"aiSearchResults__ItemPreview__Outline"}),pe=e=>{const{source:t}=I.useSourceItem(),{resultsList:i}=o.useSearch();return i.find(c=>c.id===t.id)?.rootRecord.topLevelHeadings?.length?a.jsx(bt,{...e}):null},Pe=r.ikp("span",{_id:"aiSearchResults__ItemPreview__Outline__Title",children:"On this page"}),pt=r.ikp("ul",{_id:"aiSearchResults__ItemPreview__Outline__List"}),Re=e=>{const{source:t}=I.useSourceItem(),{resultsList:i}=o.useSearch(),s=i.find(l=>l.id===t.id),n=s?.rootRecord.topLevelHeadings;if(!n?.length)return null;const c=n.map(l=>{const v=l?.anchor&&l?.anchor===s?.content?.anchor,S=l?.anchor===s?.pathHeadings?.[0]?.anchor;return{...l,isMatch:v||S}}),{children:d,...u}=e;return a.jsx(pt,{children:h.maybeRender(d,c),...u})},Pt=r.ikp(L.LinkWithQueryParams,{_id:"aiSearchResults__ItemPreview__Outline__Item"}),_e=e=>{const{searchSettings:{shouldOpenLinksInNewTab:t}}=p.useInkeepConfig();return a.jsx(Pt,{isExternal:t,...e})},ge=r.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemPreview__Outline__ItemIcon",iconKey:"newLine"}),Rt=r.ikp("span",{_id:"aiSearchResults__ItemPreview__Outline__ItemText"}),Ee=e=>a.jsx(Rt,{...e}),ke=r.ikp(x.BuiltInIconRenderer,{_id:"aiSearchResults__ItemPreview__Outline__ItemLinkIcon",iconSettings:{builtIn:"LuLink"}}),_t=r.ikp("div",{_id:"aiSearchFooter"}),we=e=>{const{hasContent:t}=o.useSearch();return a.jsx(_t,{"data-has-results":h.dataAttr(t),...e})},gt=r.ikp("div",{_id:"aiSearchTagline__Container"}),Et=r.ikp("span",{_id:"aiSearchTagline__Text",children:"Powered by"}),kt=r.ikp(Le.default,{_id:"aiSearchTagline__Logo"}),wt=r.ikp("a",{_id:"aiSearchTagline__BrandName",children:"inkeep",href:"https://www.inkeep.com/",target:"_blank",rel:"noopener noreferrer"});exports.Provider=o.SearchProvider;exports.ASK_AI_TRIGGER_VALUE=P;exports.AskAITrigger=G;exports.AskAITriggerIcon=W;exports.AskAITriggerIndicator=Q;exports.AskAITriggerLabel=$;exports.Content=D;exports.EmbeddedSearchInputIcon=U;exports.EmbeddedSearchPrimitiveAskAITrigger=G;exports.EmbeddedSearchPrimitiveAskAITriggerIcon=W;exports.EmbeddedSearchPrimitiveAskAITriggerIndicator=Q;exports.EmbeddedSearchPrimitiveAskAITriggerLabel=$;exports.EmbeddedSearchPrimitiveContent=D;exports.EmbeddedSearchPrimitiveFooter=we;exports.EmbeddedSearchPrimitiveInput=V;exports.EmbeddedSearchPrimitiveInputGroup=F;exports.EmbeddedSearchPrimitiveLoading=K;exports.EmbeddedSearchPrimitiveResults=z;exports.EmbeddedSearchPrimitiveResultsContent=ee;exports.EmbeddedSearchPrimitiveResultsEmpty=X;exports.EmbeddedSearchPrimitiveResultsItem=se;exports.EmbeddedSearchPrimitiveResultsItemBreadcrumbs=C;exports.EmbeddedSearchPrimitiveResultsItemDescription=oe;exports.EmbeddedSearchPrimitiveResultsItemDescriptionPart=ue;exports.EmbeddedSearchPrimitiveResultsItemIcon=ae;exports.EmbeddedSearchPrimitiveResultsItemIndicator=le;exports.EmbeddedSearchPrimitiveResultsItemPreview=me;exports.EmbeddedSearchPrimitiveResultsItemPreviewBody=be;exports.EmbeddedSearchPrimitiveResultsItemPreviewBreadcrumbIcon=Se;exports.EmbeddedSearchPrimitiveResultsItemPreviewHeading=he;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutline=pe;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItem=_e;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItemIcon=ge;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItemLinkIcon=ke;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItemText=Ee;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineList=Re;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineTitle=Pe;exports.EmbeddedSearchPrimitiveResultsItemPreviewTitle=Ie;exports.EmbeddedSearchPrimitiveResultsItemPreviewTitleLinkIcon=ve;exports.EmbeddedSearchPrimitiveResultsItemTag=de;exports.EmbeddedSearchPrimitiveResultsItemTitle=ce;exports.EmbeddedSearchPrimitiveResultsList=re;exports.EmbeddedSearchPrimitiveResultsLoading=J;exports.EmbeddedSearchPrimitiveResultsScrollArea=te;exports.EmbeddedSearchPrimitiveResultsScrollAreaViewport=ie;exports.EmbeddedSearchPrimitiveResultsTab=Z;exports.EmbeddedSearchPrimitiveResultsTabList=Y;exports.EmbeddedSearchPrimitiveRoot=N;exports.EmbeddedSearchPrimitiveWrapper=H;exports.Footer=we;exports.Input=V;exports.InputGroup=F;exports.InputIcon=U;exports.Loading=K;exports.PrimitiveContent=M;exports.Results=z;exports.ResultsContent=ee;exports.ResultsEmpty=X;exports.ResultsItem=se;exports.ResultsItemBreadcrumbIcon=ne;exports.ResultsItemBreadcrumbs=C;exports.ResultsItemDescription=oe;exports.ResultsItemDescriptionPart=ue;exports.ResultsItemIcon=ae;exports.ResultsItemIndicator=le;exports.ResultsItemPreview=me;exports.ResultsItemPreviewBody=be;exports.ResultsItemPreviewBreadcrumbIcon=Se;exports.ResultsItemPreviewBreadcrumbs=vt;exports.ResultsItemPreviewHeader=lt;exports.ResultsItemPreviewHeading=he;exports.ResultsItemPreviewOutline=pe;exports.ResultsItemPreviewOutlineItem=_e;exports.ResultsItemPreviewOutlineItemIcon=ge;exports.ResultsItemPreviewOutlineItemLinkIcon=ke;exports.ResultsItemPreviewOutlineItemText=Ee;exports.ResultsItemPreviewOutlineList=Re;exports.ResultsItemPreviewOutlineTitle=Pe;exports.ResultsItemPreviewTitle=Ie;exports.ResultsItemPreviewTitleLinkIcon=ve;exports.ResultsItemTag=de;exports.ResultsItemTitle=ce;exports.ResultsList=re;exports.ResultsLoading=J;exports.ResultsScrollArea=te;exports.ResultsScrollAreaCorner=et;exports.ResultsScrollAreaScrollbar=Ye;exports.ResultsScrollAreaThumb=Ze;exports.ResultsScrollAreaViewport=ie;exports.ResultsTab=Z;exports.ResultsTabList=Y;exports.Root=N;exports.TaglineBrandName=wt;exports.TaglineContainer=gt;exports.TaglineLogo=kt;exports.TaglineText=Et;exports.Wrapper=H;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),p=require("../atoms/cmdk/index.cjs"),s=require("./factory.cjs"),I=require("../utils/misc.cjs"),l=require("react"),m=require("./embedded-search/search-provider.cjs"),Ce=require("./tagline-logo-icon.cjs"),E=require("../atoms/icons/custom-icon.cjs"),Oe=require("@radix-ui/react-scroll-area"),je=require("@radix-ui/react-tabs"),R=require("../providers/config-provider.cjs"),qe=require("../providers/search-events-provider.cjs"),y=require("../atoms/link.cjs"),S=require("../providers/source-item-provider.cjs"),C=require("../atoms/icons/built-in-icon-renderer.cjs"),Be=require("../utils/highlight-emphasis.cjs"),Me=require("../hooks/use-scrolling-fades.cjs"),Ne=require("@inkeep/cxkit-color-mode"),He=require("../atoms/avatars/ai.cjs"),M=require("./modal/modal-provider.cjs"),A=require("../utils/compose-refs.cjs"),f=require("../utils/compose-event-handlers.cjs"),Ue=require("../atoms/shadow/context.cjs"),Ge=require("../atoms/markdown/index.cjs"),O=require("../hooks/use-media-query.cjs"),De=require("./embedded-search/use-search-filter.cjs"),Fe=require("./embedded-search/url-query.cjs"),k=require("../constants/search.cjs");function N(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const r=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const w=N(Oe),L=N(je),Ke=s.ikp("div",{_id:"aiSearchWrapper"}),H=e=>{const{searchSettings:{view:t}}=R.useInkeepConfig(),{isHidden:i,hasContent:r}=m.useSearch(),n=O.useMediaQuery("(max-width: 768px)"),c=M.useModal();return a.jsx(Ke,{"data-hidden":I.dataAttr(i),"data-has-content":I.dataAttr(r),"data-in-modal":I.dataAttr(!!c),"data-mobile":I.dataAttr(n),"data-view":t,"data-dual-pane-search-expanded":I.dataAttr(r&&t==="dual-pane"&&!i),...e})},Ve=s.ikp("div",{_id:"aiSearchRoot"}),U=e=>{const{isHidden:t}=m.useSearch(),i=O.useMediaQuery("(max-width: 768px)");return a.jsx(Ve,{"data-hidden":I.dataAttr(t),"data-mobile":I.dataAttr(i),...e})},G=s.ikp(p.Command.List,{_id:"aiSearchContent"}),D=l.forwardRef((e,t)=>{const i=p.useCommandState(r=>r.value);return a.jsx(G,{"aria-activedescendant":`aiSearchResults__Item-${i}`,...e,ref:t})}),F=s.ikp("div",{_id:"aiSearchInputGroup"}),K=s.ikp(E.CustomIcon,{_id:"aiSearchInputIcon",iconKey:"search"}),Qe=s.ikp(p.Command.Input,{_id:"aiSearchInput"}),V=l.forwardRef(({onInput:e,...t},i)=>{const{inputRef:r,shouldAutoFocusInput:n}=m.useSearch(),c=p.useCommandState(h=>h.value),d=O.useMediaQuery("(max-width: 768px)"),{searchSettings:o}=R.useInkeepConfig(),u=l.useMemo(()=>o.placeholder||(d?"Search...":"Search for anything..."),[o.placeholder,d]),b=A.useComposedRefs(i,r),v=M.useModal();return l.useEffect(()=>{requestAnimationFrame(()=>{n&&r?.current&&(r.current.focus(),r.current.selectionStart=r.current.value.length)})},[n,r,v?.isOpen]),De.useSearchFetch(),a.jsx(Qe,{ref:b,placeholder:u,"aria-activedescendant":`aiSearchResults__Item-${c}`,...t})}),We=s.ikp(C.BuiltInIconRenderer,{_id:"aiSearchLoading",iconSettings:{builtIn:"LuLoaderCircle"}}),Q=e=>{const{loading:t,resultsList:i}=m.useSearch();return!t||i.length===0?null:a.jsx(We,{...e})},$e=s.ikp(p.Command.Item,{_id:"aiAskAITrigger",value:k.ASK_AI_TRIGGER_VALUE}),W=e=>{const{results:t,tab:i}=m.useSearch(),r=p.useCommandStore(),n=t[i]?.[0]?.id??"NONE";return a.jsx($e,{...e,id:`aiSearchResults__Item-${k.ASK_AI_TRIGGER_VALUE}`,tabIndex:0,onPointerLeave:()=>r.setState("value",n,!0)})},ze=s.ikp("img",{_id:"aiAskAITrigger__Icon"}),$=e=>{const{aiChatSettings:t}=R.useInkeepConfig(),{aiAssistantAvatar:i}=t??{},r=typeof i=="string"?i:i?.light,n=(typeof i=="string"?i:i?.dark)??r,c=Ne.useColorModeValue(r,n),[d,o]=l.useState(c);l.useEffect(()=>{o(c)},[c]);const u=()=>{o(null)};return a.jsx(ze,{asChild:!0,...e,children:d?a.jsx("img",{src:d,alt:"AI Avatar","data-type":"image",onError:f.composeEventHandlers(u),...e}):a.jsx(He.default,{"data-type":"icon",...e})})},z=s.ikp("span",{_id:"aiAskAITrigger__Label"}),J=s.ikp(E.CustomIcon,{_id:"aiAskAITrigger__Indicator",iconKey:"openLinkInSameTab"}),Je=s.ikp(L.Root,{_id:"aiSearchResults"}),X=e=>{const{searchSettings:{view:t}}=R.useInkeepConfig(),{tab:i,setTab:r,hasContent:n,isHidden:c,disableTransition:d,results:o,defaultTab:u}=m.useSearch(),b=p.useCommandStore(),v=l.useCallback(h=>{d(),r(h);const P=o[h][0]?o[h][0]?.id:void 0;b.setState("value",P,!0)},[o,d]);return l.useEffect(()=>{let h=i in o?i:Object.keys(o)[0];if(!o[h]?.length){const _=Object.keys(o).find(T=>o[T]?.length);_?h=_:h=u}if(!h)return;r(h);const P=o[h]?.[0];P&&b.setState("value",P.id,!0)},[o]),a.jsx(Je,{value:i,onValueChange:v,"data-has-content":I.dataAttr(n),"data-dual-pane-search-expanded":I.dataAttr(n&&t==="dual-pane"&&!c),...e})},Xe=s.ikp("div",{_id:"aiSearchResults__Loading"}),Y=e=>{const{loading:t,resultsList:i}=m.useSearch();return!t||i.length>0?null:a.jsx(Xe,{...e})},Ye=s.ikp(p.Command.Empty,{_id:"aiSearchResults__Empty"}),Z=e=>{const t=p.useCommandState(d=>d.search),{loading:i,results:r,tab:n}=m.useSearch(),c=r[n]?.length;return i||!t||c?null:a.jsx(Ye,{children:"No results found.",...e})},Ze=s.ikp(L.List,{_id:"aiSearchResults__TabList"}),ee=e=>{const{children:t,...i}=e,{searchSettings:{tabs:r}}=R.useInkeepConfig(),{results:n,loading:c,resultsList:d}=m.useSearch();if(c&&d.length===0)return null;const o=Object.keys(n);return!r.length||!o.length?null:a.jsx(Ze,{tabIndex:-1,children:I.maybeRender(t,o),...i})},et=s.ikp(L.Trigger,{_id:"aiSearchResults__Tab"}),te=l.forwardRef((e,t)=>{const i=l.useRef(null),r=A.useComposedRefs(t,i),{tab:n,onClick:c,...d}=e,{results:o,tab:u,inputRef:b}=m.useSearch(),v=o[n].length,h=n===u,P=()=>{b.current?.focus()},_=Ue.useShadow();return l.useEffect(()=>{h&&_?.shadowHost?.shadowRoot?.activeElement?.hasAttribute("ikp-tab")&&i.current?.focus()},[h]),a.jsx(et,{ref:r,"ikp-tab":"",tabIndex:h?0:-1,value:n,children:`${n} (${v})`,onClick:f.composeEventHandlers(c,P),...d})}),ie=s.ikp("div",{_id:"aiSearchResults__Content"}),tt=s.ikp(w.Root,{_id:"aiSearchResults__ScrollArea"}),re=e=>{const{loading:t,resultsList:i}=m.useSearch();return t&&i.length===0?null:a.jsx(tt,{tabIndex:-1,...e})},it=s.ikp(w.Viewport,{_id:"aiSearchResults__ScrollAreaViewport"}),se=l.forwardRef(({children:e,...t},i)=>{const r=Me.useScrollingFades(),n=A.useComposedRefs(i,r),{tab:c}=m.useSearch();return l.useEffect(()=>{c&&r.current?.scrollTo({top:0,behavior:"auto"})},[c]),a.jsx(it,{ref:n,tabIndex:-1,children:a.jsx("div",{tabIndex:-1,style:{display:"grid"},children:e}),...t})}),rt=s.ikp(w.ScrollAreaScrollbar,{_id:"aiSearchResults__ScrollAreaScrollbar"}),st=s.ikp(w.ScrollAreaThumb,{_id:"aiSearchResults__ScrollAreaThumb"}),nt=s.ikp(w.Corner,{_id:"aiSearchResults__ScrollAreaCorner"}),at=s.ikp(L.Content,{_id:"aiSearchResults__List"}),ne=e=>{const{children:t,...i}=e,{results:r,tab:n}=m.useSearch(),c=r[n]??[];return a.jsx(at,{value:n,"data-has-results":I.dataAttr(c.length>0),"aria-label":"Search results",children:I.maybeRender(t,c),tabIndex:-1,...i})},ct=s.ikp(p.Command.Item,{_id:"aiSearchResults__Item",asChild:!0}),ae=l.forwardRef(({item:e,onClick:t,onSelect:i,children:r,...n},c)=>{const{searchSettings:{shouldOpenLinksInNewTab:d,view:o,searchQueryParamKey:u}}=R.useInkeepConfig(),{logEvent:b}=qe.useSearchEvents(),v=p.useCommandState(g=>g.search),{transitionsDisabled:h}=m.useSearch(),P=p.useCommandState(g=>g.value),_=l.useRef(null),T=A.useComposedRefs(c,_),q=l.useCallback(g=>{g.trigger==="keyboard"&&_.current?.click()},[]),Ae=l.useCallback(()=>{b({eventName:"search_result_clicked",properties:{searchQuery:v,title:e.title,url:e.url}})},[b,v,e.title,e.url]),x=l.useMemo(()=>e.shouldOpenInNewTab!==void 0?e.shouldOpenInNewTab:d,[e.shouldOpenInNewTab,d]),B=P===e.id,Le=P==="NONE"||P===k.ASK_AI_TRIGGER_VALUE,xe=B||Le,ye=l.useMemo(()=>({href:u?Fe.getUrlWithQuery(e.url,v,u):e.url,isExternal:x,appendToUrl:e.appendToUrl,children:r,id:`aiSearchResults__Item-${e.id}`}),[e.url,x,e.appendToUrl,r,e.id,u,v]);return a.jsx(S.SourceItemProvider,{source:{...e,isExternal:x},children:a.jsx(ct,{ref:T,value:e.id,"data-type":e.type,"data-breadcrumbs":!!e.breadcrumbs?.length,"data-disable-transitions":I.dataAttr(h),"data-view":o,onSelect:f.composeEventHandlers(i,q),onClick:f.composeEventHandlers(t,Ae),"data-selected":I.dataAttr(B),tabIndex:xe?0:-1,...n,children:a.jsx(y.LinkWithQueryParams,{...ye})})})}),ot=s.ikp("div",{_id:"aiSearchResults__ItemBreadcrumbs"}),j=e=>{const{source:t}=S.useSourceItem(),{tab:i}=m.useSearch();if(!t.breadcrumbs?.length)return null;const{children:r,...n}=e,d=t.tabs?.find(o=>typeof o!="string"&&o[0]===i)?.[1]?.breadcrumbs??t.breadcrumbs??[];return a.jsx(ot,{"aria-hidden":"true",children:I.maybeRender(r,d),...n})},ce=s.ikp(E.CustomIcon,{_id:"aiSearchResults__ItemBreadcrumbIcon",iconKey:"breadcrumbSeparator"}),dt=s.ikp(C.BuiltInIconRenderer,{_id:"aiSearchResults__ItemIcon"}),oe=e=>{const{source:t}=S.useSourceItem();return a.jsx(dt,{iconSettings:t.icon,"data-type":t.type,...e})},ut=s.ikp("span",{_id:"aiSearchResults__ItemTitle"}),de=e=>{const{source:t}=S.useSourceItem();return a.jsx(ut,{"data-type":t.type,children:t.title,...e})},lt=s.ikp("span",{_id:"aiSearchResults__ItemTag"}),ue=e=>{const{source:t}=S.useSourceItem();return a.jsx(lt,{"data-type":t.type,children:t.tag,...e})},mt=s.ikp("span",{_id:"aiSearchResults__ItemDescription"}),le=e=>{const{source:t}=S.useSourceItem(),{children:i,...r}=e,n=l.useMemo(()=>t.description?Be.highlightEmphasis(t.description):[],[t.description]);return n.length?a.jsx(mt,{"data-type":t.type,"aria-hidden":"true",children:I.maybeRender(i,n),...r}):null},ht=s.ikp("span",{_id:"aiSearchResults__ItemDescriptionPart"}),me=e=>{const{part:t,...i}=e,{source:r}=S.useSourceItem();return typeof t=="string"?t:a.jsx(ht,{"data-type":r.type,children:t.content,"data-highlighted":I.dataAttr(t.highlighted),...i})},It=s.ikp(E.CustomIcon,{_id:"aiSearchResults__ItemIndicator"}),he=e=>{const{source:t}=S.useSourceItem(),{searchSettings:{view:i}}=R.useInkeepConfig();return a.jsx(It,{iconKey:t.isExternal?"openLinkInNewTab":"openLinkInSameTab","data-view":i,...e})},vt=s.ikp("div",{_id:"aiSearchResults__ItemPreview","aria-hidden":!0}),Ie=e=>{const{searchSettings:{view:t,shouldOpenLinksInNewTab:i}}=R.useInkeepConfig(),{results:r,tab:n}=m.useSearch(),c=p.useCommandState(v=>v.value),d=r[n]??[],o=l.useRef(null),u=l.useMemo(()=>{if(c===k.ASK_AI_TRIGGER_VALUE)return o.current;const v=d.find(h=>h.id===c);return o.current=v??null,v},[c]);if(t!=="dual-pane"||c===k.ASK_AI_TRIGGER_VALUE||!u)return null;const b=u.shouldOpenInNewTab!==void 0?u.shouldOpenInNewTab:i;return a.jsx(S.SourceItemProvider,{source:{...u,isExternal:b},children:a.jsx(vt,{...e})})},St=s.ikp("div",{_id:"aiSearchResults__ItemPreview__Header"}),bt=s.ikp(y.LinkWithQueryParams,{_id:"aiSearchResults__ItemPreview__Heading"}),ve=e=>{const{source:t}=S.useSourceItem();return a.jsx(bt,{href:t.url,isExternal:t.isExternal,appendToUrl:t.appendToUrl,"data-type":t.type,...e})},pt=s.ikp("span",{_id:"aiSearchResults__ItemPreview__Title"}),Se=e=>{const{source:t}=S.useSourceItem();return a.jsx(pt,{children:t.title,...e})},Pt=s.ikp(E.CustomIcon,{_id:"aiSearchResults__ItemPreview__Title__LinkIcon",iconKey:"openLinkInNewTab"}),be=e=>{const{source:t}=S.useSourceItem();return a.jsx(Pt,{iconKey:t.isExternal?"openLinkInNewTab":"openLinkInSameTab",...e})},Rt=s.ikp(j,{_id:"aiSearchResults__ItemPreview__Breadcrumbs"}),pe=s.ikp(ce,{_id:"aiSearchResults__ItemPreview__BreadcrumbIcon"}),_t=s.ikp(Ge.Markdown,{_id:"aiSearchResults__ItemPreview__Body"}),Pe=e=>{const{source:t}=S.useSourceItem(),{resultsList:i}=m.useSearch(),r=i.find(c=>c.id===t.id),{searchSettings:{shouldOpenLinksInNewTab:n}}=R.useInkeepConfig();return r?a.jsx(_t,{shouldOpenLinksInNewTab:n,children:r.preview,...e}):null},gt=s.ikp("div",{_id:"aiSearchResults__ItemPreview__Outline"}),Re=e=>{const{source:t}=S.useSourceItem(),{resultsList:i}=m.useSearch();return i.find(c=>c.id===t.id)?.rootRecord.topLevelHeadings?.length?a.jsx(gt,{...e}):null},_e=s.ikp("span",{_id:"aiSearchResults__ItemPreview__Outline__Title",children:"On this page"}),Et=s.ikp("ul",{_id:"aiSearchResults__ItemPreview__Outline__List"}),ge=e=>{const{source:t}=S.useSourceItem(),{resultsList:i}=m.useSearch(),r=i.find(u=>u.id===t.id),n=r?.rootRecord.topLevelHeadings;if(!n?.length)return null;const c=n.map(u=>{const b=u?.anchor&&u?.anchor===r?.content?.anchor,v=u?.anchor===r?.pathHeadings?.[0]?.anchor;return{...u,isMatch:b||v}}),{children:d,...o}=e;return a.jsx(Et,{children:I.maybeRender(d,c),...o})},kt=s.ikp(y.LinkWithQueryParams,{_id:"aiSearchResults__ItemPreview__Outline__Item"}),Ee=e=>{const{searchSettings:{shouldOpenLinksInNewTab:t}}=R.useInkeepConfig();return a.jsx(kt,{isExternal:t,...e})},ke=s.ikp(E.CustomIcon,{_id:"aiSearchResults__ItemPreview__Outline__ItemIcon",iconKey:"newLine"}),wt=s.ikp("span",{_id:"aiSearchResults__ItemPreview__Outline__ItemText"}),we=e=>a.jsx(wt,{...e}),Te=s.ikp(C.BuiltInIconRenderer,{_id:"aiSearchResults__ItemPreview__Outline__ItemLinkIcon",iconSettings:{builtIn:"LuLink"}}),Tt=s.ikp("div",{_id:"aiSearchFooter"}),fe=e=>{const{hasContent:t}=m.useSearch();return a.jsx(Tt,{"data-has-results":I.dataAttr(t),...e})},ft=s.ikp("div",{_id:"aiSearchTagline__Container"}),At=s.ikp("span",{_id:"aiSearchTagline__Text",children:"Powered by"}),Lt=s.ikp(Ce.default,{_id:"aiSearchTagline__Logo"}),xt=s.ikp("a",{_id:"aiSearchTagline__BrandName",children:"inkeep",href:"https://www.inkeep.com/",target:"_blank",rel:"noopener noreferrer"});exports.Provider=m.SearchProvider;exports.AskAITrigger=W;exports.AskAITriggerIcon=$;exports.AskAITriggerIndicator=J;exports.AskAITriggerLabel=z;exports.Content=D;exports.EmbeddedSearchInputIcon=K;exports.EmbeddedSearchPrimitiveAskAITrigger=W;exports.EmbeddedSearchPrimitiveAskAITriggerIcon=$;exports.EmbeddedSearchPrimitiveAskAITriggerIndicator=J;exports.EmbeddedSearchPrimitiveAskAITriggerLabel=z;exports.EmbeddedSearchPrimitiveContent=D;exports.EmbeddedSearchPrimitiveFooter=fe;exports.EmbeddedSearchPrimitiveInput=V;exports.EmbeddedSearchPrimitiveInputGroup=F;exports.EmbeddedSearchPrimitiveLoading=Q;exports.EmbeddedSearchPrimitiveResults=X;exports.EmbeddedSearchPrimitiveResultsContent=ie;exports.EmbeddedSearchPrimitiveResultsEmpty=Z;exports.EmbeddedSearchPrimitiveResultsItem=ae;exports.EmbeddedSearchPrimitiveResultsItemBreadcrumbs=j;exports.EmbeddedSearchPrimitiveResultsItemDescription=le;exports.EmbeddedSearchPrimitiveResultsItemDescriptionPart=me;exports.EmbeddedSearchPrimitiveResultsItemIcon=oe;exports.EmbeddedSearchPrimitiveResultsItemIndicator=he;exports.EmbeddedSearchPrimitiveResultsItemPreview=Ie;exports.EmbeddedSearchPrimitiveResultsItemPreviewBody=Pe;exports.EmbeddedSearchPrimitiveResultsItemPreviewBreadcrumbIcon=pe;exports.EmbeddedSearchPrimitiveResultsItemPreviewHeading=ve;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutline=Re;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItem=Ee;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItemIcon=ke;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItemLinkIcon=Te;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineItemText=we;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineList=ge;exports.EmbeddedSearchPrimitiveResultsItemPreviewOutlineTitle=_e;exports.EmbeddedSearchPrimitiveResultsItemPreviewTitle=Se;exports.EmbeddedSearchPrimitiveResultsItemPreviewTitleLinkIcon=be;exports.EmbeddedSearchPrimitiveResultsItemTag=ue;exports.EmbeddedSearchPrimitiveResultsItemTitle=de;exports.EmbeddedSearchPrimitiveResultsList=ne;exports.EmbeddedSearchPrimitiveResultsLoading=Y;exports.EmbeddedSearchPrimitiveResultsScrollArea=re;exports.EmbeddedSearchPrimitiveResultsScrollAreaViewport=se;exports.EmbeddedSearchPrimitiveResultsTab=te;exports.EmbeddedSearchPrimitiveResultsTabList=ee;exports.EmbeddedSearchPrimitiveRoot=U;exports.EmbeddedSearchPrimitiveWrapper=H;exports.Footer=fe;exports.Input=V;exports.InputGroup=F;exports.InputIcon=K;exports.Loading=Q;exports.PrimitiveContent=G;exports.Results=X;exports.ResultsContent=ie;exports.ResultsEmpty=Z;exports.ResultsItem=ae;exports.ResultsItemBreadcrumbIcon=ce;exports.ResultsItemBreadcrumbs=j;exports.ResultsItemDescription=le;exports.ResultsItemDescriptionPart=me;exports.ResultsItemIcon=oe;exports.ResultsItemIndicator=he;exports.ResultsItemPreview=Ie;exports.ResultsItemPreviewBody=Pe;exports.ResultsItemPreviewBreadcrumbIcon=pe;exports.ResultsItemPreviewBreadcrumbs=Rt;exports.ResultsItemPreviewHeader=St;exports.ResultsItemPreviewHeading=ve;exports.ResultsItemPreviewOutline=Re;exports.ResultsItemPreviewOutlineItem=Ee;exports.ResultsItemPreviewOutlineItemIcon=ke;exports.ResultsItemPreviewOutlineItemLinkIcon=Te;exports.ResultsItemPreviewOutlineItemText=we;exports.ResultsItemPreviewOutlineList=ge;exports.ResultsItemPreviewOutlineTitle=_e;exports.ResultsItemPreviewTitle=Se;exports.ResultsItemPreviewTitleLinkIcon=be;exports.ResultsItemTag=ue;exports.ResultsItemTitle=de;exports.ResultsList=ne;exports.ResultsLoading=Y;exports.ResultsScrollArea=re;exports.ResultsScrollAreaCorner=nt;exports.ResultsScrollAreaScrollbar=rt;exports.ResultsScrollAreaThumb=st;exports.ResultsScrollAreaViewport=se;exports.ResultsTab=te;exports.ResultsTabList=ee;exports.Root=U;exports.TaglineBrandName=xt;exports.TaglineContainer=ft;exports.TaglineLogo=Lt;exports.TaglineText=At;exports.Wrapper=H;