@inkeep/cxkit-primitives 0.5.22 → 0.5.24
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/dist/components/embedded-chat/use-chat-action.cjs +1 -1
- package/dist/components/embedded-chat/use-chat-action.js +6 -6
- package/dist/components/embedded-chat/use-inkeep-chat.cjs +3 -3
- package/dist/components/embedded-chat/use-inkeep-chat.js +106 -96
- package/dist/components/embedded-chat.cjs +3 -3
- package/dist/components/embedded-chat.js +1 -1
- package/dist/components/embedded-search/transform-results.cjs +1 -1
- package/dist/components/embedded-search/transform-results.js +24 -24
- package/dist/components/embedded-search/use-inkeep-search.cjs +1 -1
- package/dist/components/embedded-search/use-inkeep-search.js +69 -66
- package/dist/components/embedded-search.cjs +1 -1
- package/dist/components/embedded-search.js +8 -8
- package/dist/components/modal/use-inkeep-modal.cjs +1 -1
- package/dist/components/modal/use-inkeep-modal.js +16 -23
- package/dist/components/modal.cjs +1 -1
- package/dist/components/modal.js +27 -27
- package/dist/index.d.cts +4 -8
- package/dist/index.d.ts +4 -8
- package/dist/providers/base-events-provider.cjs +1 -1
- package/dist/providers/base-events-provider.js +1 -1
- package/dist/providers/chat-form-provider.cjs +1 -1
- package/dist/providers/chat-form-provider.js +23 -23
- package/package.json +4 -4
|
@@ -1,140 +1,143 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useState as s, useRef as l, useCallback as n, useEffect as
|
|
3
|
-
import { useInkeepConfig as
|
|
4
|
-
import { useMediaQuery as
|
|
5
|
-
import
|
|
6
|
-
import { useTransformResults as
|
|
7
|
-
import { useSearchEvents as
|
|
8
|
-
import { useInstantUpdate as
|
|
9
|
-
import { graphqlRequest as
|
|
10
|
-
const
|
|
11
|
-
const { baseSettings:
|
|
12
|
-
maxResults:
|
|
13
|
-
placeholder:
|
|
14
|
-
defaultQuery:
|
|
15
|
-
debounceTimeMs:
|
|
16
|
-
onQueryChange:
|
|
17
|
-
searchFunctionsRef:
|
|
18
|
-
tabs: f
|
|
19
|
-
|
|
2
|
+
import { useState as s, useRef as l, useCallback as n, useEffect as H, useImperativeHandle as te, useMemo as T } from "react";
|
|
3
|
+
import { useInkeepConfig as re } from "../../providers/config-provider.js";
|
|
4
|
+
import { useMediaQuery as se } from "../../hooks/use-media-query.js";
|
|
5
|
+
import ne from "./search-query.graphql.js";
|
|
6
|
+
import { useTransformResults as oe } from "./transform-results.js";
|
|
7
|
+
import { useSearchEvents as ce } from "../../providers/search-events-provider.js";
|
|
8
|
+
import { useInstantUpdate as ae } from "../../hooks/use-instant-update.js";
|
|
9
|
+
import { graphqlRequest as ie } from "../../utils/graphql-client.js";
|
|
10
|
+
const be = () => {
|
|
11
|
+
const { baseSettings: P, searchSettings: $ } = re(), { apiKey: S, aiApiBaseUrl: z, userAuthToken: h, filters: C } = P, {
|
|
12
|
+
maxResults: v,
|
|
13
|
+
placeholder: k,
|
|
14
|
+
defaultQuery: D,
|
|
15
|
+
debounceTimeMs: w,
|
|
16
|
+
onQueryChange: K,
|
|
17
|
+
searchFunctionsRef: W,
|
|
18
|
+
tabs: f,
|
|
19
|
+
filters: q
|
|
20
|
+
} = $, { logEvent: E } = ce(), [c, A] = s(D), I = l(null), [_, x] = s(!1), [G, m] = s(null), [J, a] = s("NONE"), V = n((e) => {
|
|
20
21
|
a(e);
|
|
21
|
-
}, []), [d, p] = s([]), t =
|
|
22
|
+
}, []), [d, p] = s([]), t = oe(d, c), F = typeof f?.[0] == "string" ? f[0] : f[0][0], [y, L] = s(F), { disableTransition: M, disabled: X } = ae(), Y = n(
|
|
22
23
|
(e) => {
|
|
23
|
-
|
|
24
|
+
M(), L(e);
|
|
24
25
|
const r = t[e][0].id;
|
|
25
26
|
a(r);
|
|
26
27
|
},
|
|
27
|
-
[t,
|
|
28
|
+
[t, M]
|
|
28
29
|
);
|
|
29
|
-
|
|
30
|
+
H(() => {
|
|
30
31
|
let e = y in t ? y : Object.keys(t)[0];
|
|
31
32
|
if (!t[e]?.length) {
|
|
32
|
-
const o = Object.keys(t).find((
|
|
33
|
-
o ? e = o : e =
|
|
33
|
+
const o = Object.keys(t).find((u) => t[u]?.length);
|
|
34
|
+
o ? e = o : e = F;
|
|
34
35
|
}
|
|
35
36
|
if (!e) return;
|
|
36
|
-
|
|
37
|
+
L(e);
|
|
37
38
|
const r = t[e]?.[0];
|
|
38
39
|
r && a(r.id);
|
|
39
40
|
}, [t]);
|
|
40
|
-
const b =
|
|
41
|
-
|
|
41
|
+
const b = se("(max-width: 768px)"), i = l({}), g = l(null), Q = l(null);
|
|
42
|
+
te(W, () => ({
|
|
42
43
|
updateQuery(e) {
|
|
43
|
-
|
|
44
|
+
A(e);
|
|
44
45
|
},
|
|
45
46
|
focusInput: () => {
|
|
46
|
-
|
|
47
|
+
I.current?.focus();
|
|
47
48
|
}
|
|
48
49
|
}));
|
|
49
|
-
const
|
|
50
|
+
const N = `${z}/graphql`, U = T(
|
|
50
51
|
() => ({
|
|
51
52
|
Authorization: `Bearer ${S}`,
|
|
52
53
|
"Content-Type": "application/json",
|
|
53
54
|
...h ? { "User-Token": h } : {}
|
|
54
55
|
}),
|
|
55
56
|
[S, h]
|
|
56
|
-
),
|
|
57
|
+
), j = n(
|
|
57
58
|
async (e) => {
|
|
58
59
|
g.current && g.current.abort();
|
|
59
60
|
const r = new AbortController();
|
|
60
61
|
g.current = r;
|
|
61
62
|
try {
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
63
|
+
x(!0), m(null);
|
|
64
|
+
const u = (await ie(N, ne, { searchInput: e }, U))?.search.searchHits;
|
|
65
|
+
i.current[e.searchQuery] = u, p(u);
|
|
65
66
|
} catch (o) {
|
|
66
67
|
if (o.name === "AbortError")
|
|
67
68
|
return;
|
|
68
69
|
m("Failed to fetch search results. Please try again.");
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
+
x(!1);
|
|
71
72
|
},
|
|
72
|
-
[
|
|
73
|
-
),
|
|
74
|
-
const r =
|
|
75
|
-
|
|
73
|
+
[N, U]
|
|
74
|
+
), O = n((e) => {
|
|
75
|
+
const r = i.current[e.searchQuery];
|
|
76
|
+
E({
|
|
76
77
|
eventName: "search_query_response_received",
|
|
77
78
|
properties: {
|
|
78
79
|
searchQuery: e.searchQuery,
|
|
79
80
|
totalResults: r?.length
|
|
80
81
|
}
|
|
81
82
|
});
|
|
82
|
-
}, []),
|
|
83
|
+
}, []), B = n(
|
|
83
84
|
(e) => {
|
|
84
85
|
if (Q.current && window.clearTimeout(Q.current), !e.searchQuery) {
|
|
85
86
|
p([]), m(null);
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
89
|
Q.current = window.setTimeout(() => {
|
|
89
|
-
|
|
90
|
+
E({
|
|
90
91
|
eventName: "search_query_submitted",
|
|
91
92
|
properties: {
|
|
92
93
|
searchQuery: e.searchQuery
|
|
93
94
|
}
|
|
94
|
-
}),
|
|
95
|
-
|
|
95
|
+
}), i.current[e.searchQuery] ? (p(i.current[e.searchQuery]), O(e)) : j(e).then(() => {
|
|
96
|
+
O(e);
|
|
96
97
|
});
|
|
97
|
-
},
|
|
98
|
+
}, w);
|
|
98
99
|
},
|
|
99
|
-
[
|
|
100
|
+
[w, j]
|
|
100
101
|
), R = T(
|
|
101
102
|
() => ({
|
|
102
103
|
searchQuery: c,
|
|
103
104
|
filters: {
|
|
104
|
-
|
|
105
|
+
...C,
|
|
106
|
+
...q,
|
|
107
|
+
limit: v
|
|
105
108
|
}
|
|
106
109
|
}),
|
|
107
|
-
[c, C]
|
|
110
|
+
[c, v, C, q]
|
|
108
111
|
);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}, [
|
|
112
|
-
const
|
|
113
|
-
(e) =>
|
|
112
|
+
H(() => {
|
|
113
|
+
K?.(R.searchQuery), B(R);
|
|
114
|
+
}, [B, R]);
|
|
115
|
+
const Z = n(
|
|
116
|
+
(e) => A(e.target.value),
|
|
114
117
|
[]
|
|
115
|
-
),
|
|
116
|
-
() =>
|
|
117
|
-
[
|
|
118
|
+
), ee = T(
|
|
119
|
+
() => k || (b ? "Search..." : "Search for anything..."),
|
|
120
|
+
[k, b]
|
|
118
121
|
);
|
|
119
122
|
return {
|
|
120
123
|
results: t,
|
|
121
124
|
resultsList: d,
|
|
122
|
-
hasContent: d.length > 0 ||
|
|
123
|
-
loading:
|
|
124
|
-
error:
|
|
125
|
+
hasContent: d.length > 0 || _,
|
|
126
|
+
loading: _,
|
|
127
|
+
error: G,
|
|
125
128
|
query: c,
|
|
126
|
-
onInput:
|
|
127
|
-
placeholder:
|
|
129
|
+
onInput: Z,
|
|
130
|
+
placeholder: ee,
|
|
128
131
|
tab: y,
|
|
129
|
-
onTabChange:
|
|
130
|
-
selectedItem:
|
|
132
|
+
onTabChange: Y,
|
|
133
|
+
selectedItem: J,
|
|
131
134
|
setSelectedItem: a,
|
|
132
|
-
onSelectedItemChange:
|
|
133
|
-
transitionsDisabled:
|
|
134
|
-
inputRef:
|
|
135
|
+
onSelectedItemChange: V,
|
|
136
|
+
transitionsDisabled: X,
|
|
137
|
+
inputRef: I,
|
|
135
138
|
isMobile: b
|
|
136
139
|
};
|
|
137
140
|
};
|
|
138
141
|
export {
|
|
139
|
-
|
|
142
|
+
be as useInkeepSearch
|
|
140
143
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),I=require("../atoms/cmdk/index.cjs"),i=require("./factory.cjs"),u=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"),ue=require("@radix-ui/react-scroll-area"),me=require("@radix-ui/react-tabs"),C=require("../providers/config-provider.cjs"),he=require("../providers/search-events-provider.cjs"),Se=require("../atoms/link.cjs"),h=require("../providers/source-item-provider.cjs"),x=require("../atoms/icons/built-in-icon-renderer.cjs"),be=require("../utils/highlight-emphasis.cjs"),pe=require("../hooks/use-scrolling-fades.cjs"),Ie=require("@inkeep/cxkit-color-mode"),ve=require("../atoms/avatars/ai.cjs"),j=require("./modal/modal-provider.cjs"),P=require("../utils/compose-refs.cjs"),R=require("../utils/compose-event-handlers.cjs"),Re=require("../atoms/shadow/context.cjs");function q(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=q(ue),E=q(me),A="__ask_ai__",ge=i.ikp("div",{_id:"aiSearchWrapper"}),w=e=>{const{isHidden:t,hasContent:r,isMobile:s}=o.useSearch(),n=j.useModal();return a.jsx(ge,{"data-hidden":u.dataAttr(t),"data-has-content":u.dataAttr(r),"data-in-modal":u.dataAttr(!!n),"data-mobile":u.dataAttr(s),...e})},_e=i.ikp(I.Command,{_id:"aiSearchRoot"}),B=e=>{const{isHidden:t,selectedItem:r,onSelectedItemChange:s}=o.useSearch();return a.jsx(_e,{"data-hidden":u.dataAttr(t),shouldFilter:!1,loop:!1,value:r,onValueChange:s,...e})},D=i.ikp(I.Command.List,{_id:"aiSearchContent"}),F=m.forwardRef((e,t)=>{const{selectedItem:r}=o.useSearch();return a.jsx(D,{"aria-activedescendant":`aiSearchResults__Item-${r}`,...e,ref:t})}),N=i.ikp("div",{_id:"aiSearchInputGroup"}),O=i.ikp(_.CustomIcon,{_id:"aiSearchInputIcon",iconKey:"search"}),Pe=i.ikp(I.Command.Input,{_id:"aiSearchInput"}),V=m.forwardRef(({onInput:e,...t},r)=>{const{query:s,onInput:n,placeholder:c,inputRef:d,shouldAutoFocusInput:l,selectedItem:S}=o.useSearch(),v=P.useComposedRefs(r,d),b=j.useModal();return m.useEffect(()=>{requestAnimationFrame(()=>{l&&d?.current&&(d.current.focus(),d.current.selectionStart=d.current.value.length)})},[l,d,b?.isOpen]),a.jsx(Pe,{ref:v,placeholder:c,value:s,onInput:R.composeEventHandlers(e,n),"aria-activedescendant":`aiSearchResults__Item-${S}`,...t})}),Ee=i.ikp(x.BuiltInIconRenderer,{_id:"aiSearchLoading",iconSettings:{builtIn:"LuLoaderCircle"}}),M=e=>{const{loading:t,resultsList:r}=o.useSearch();return!t||r.length===0?null:a.jsx(Ee,{...e})},Ae=i.ikp(I.Command.Item,{_id:"aiAskAITrigger",value:A}),H=e=>{const{setSelectedItem:t,results:r,tab:s}=o.useSearch(),n=r[s]?.[0]?.id??"NONE";return a.jsx(Ae,{...e,id:`aiSearchResults__Item-${A}`,tabIndex:0,onPointerLeave:()=>t(n)})},ke=i.ikp("img",{_id:"aiAskAITrigger__Icon"}),U=e=>{const{aiChatSettings:t}=C.useInkeepConfig(),{aiAssistantAvatar:r}=t??{},s=typeof r=="string"?r:r?.light,n=(typeof r=="string"?r:r?.dark)??s,c=Ie.useColorModeValue(s,n),[d,l]=m.useState(c);m.useEffect(()=>{l(c)},[c]);const S=()=>{l(null)};return a.jsx(ke,{asChild:!0,...e,children:d?a.jsx("img",{src:d,alt:"AI Avatar","data-type":"image",onError:R.composeEventHandlers(S),...e}):a.jsx(ve.default,{"data-type":"icon",...e})})},G=i.ikp("span",{_id:"aiAskAITrigger__Label"}),K=i.ikp(_.CustomIcon,{_id:"aiAskAITrigger__Indicator",iconKey:"openLinkInSameTab"}),fe=i.ikp(E.Root,{_id:"aiSearchResults"}),W=e=>{const{tab:t,onTabChange:r,hasContent:s}=o.useSearch();return a.jsx(fe,{value:t,onValueChange:r,"data-has-content":u.dataAttr(s),...e})},Te=i.ikp("div",{_id:"aiSearchResults__Loading"}),$=e=>{const{loading:t,resultsList:r}=o.useSearch();return!t||r.length>0?null:a.jsx(Te,{...e})},Ce=i.ikp(I.Command.Empty,{_id:"aiSearchResults__Empty"}),Q=e=>{const{query:t,loading:r,results:s,tab:n}=o.useSearch(),c=s[n]?.length;return r||!t||c?null:a.jsx(Ce,{children:"No results found.",...e})},ye=i.ikp(E.List,{_id:"aiSearchResults__TabList"}),z=e=>{const{children:t,...r}=e,{searchSettings:{tabs:s}}=C.useInkeepConfig(),{results:n,loading:c,resultsList:d}=o.useSearch();if(c&&d.length===0)return null;const l=Object.keys(n);return!s.length||!l.length?null:a.jsx(ye,{tabIndex:-1,children:u.maybeRender(t,l),...r})},Le=i.ikp(E.Trigger,{_id:"aiSearchResults__Tab"}),J=m.forwardRef((e,t)=>{const r=m.useRef(null),s=P.useComposedRefs(t,r),{tab:n,onClick:c,...d}=e,{results:l,tab:S,inputRef:v}=o.useSearch(),b=l[n].length,p=n===S,k=()=>{v.current?.focus()},f=Re.useShadow();return m.useEffect(()=>{p&&f?.shadowHost?.shadowRoot?.activeElement?.hasAttribute("ikp-tab")&&r.current?.focus()},[p]),a.jsx(Le,{ref:s,"ikp-tab":"",tabIndex:p?0:-1,value:n,children:`${n} (${b})`,onClick:R.composeEventHandlers(c,k),...d})}),xe=i.ikp(g.Root,{_id:"aiSearchResults__ScrollArea"}),X=e=>{const{loading:t,resultsList:r}=o.useSearch();return t&&r.length===0?null:a.jsx(xe,{tabIndex:-1,...e})},je=i.ikp(g.Viewport,{_id:"aiSearchResults__ScrollAreaViewport"}),Y=m.forwardRef(({children:e,...t},r)=>{const s=pe.useScrollingFades(),n=P.useComposedRefs(r,s),{tab:c}=o.useSearch();return m.useEffect(()=>{c&&s.current?.scrollTo({top:0,behavior:"auto"})},[c]),a.jsx(je,{ref:n,tabIndex:-1,children:a.jsx("div",{tabIndex:-1,style:{display:"grid"},children:e}),...t})}),qe=i.ikp(g.ScrollAreaScrollbar,{_id:"aiSearchResults__ScrollAreaScrollbar"}),we=i.ikp(g.ScrollAreaThumb,{_id:"aiSearchResults__ScrollAreaThumb"}),Be=i.ikp(g.Corner,{_id:"aiSearchResults__ScrollAreaCorner"}),De=i.ikp(E.Content,{_id:"aiSearchResults__List"}),Z=e=>{const{children:t,...r}=e,{results:s,tab:n}=o.useSearch(),c=s[n]??[];return a.jsx(De,{value:n,"data-has-results":u.dataAttr(c.length>0),"aria-label":"Search results",children:u.maybeRender(t,c),tabIndex:-1,...r})},Fe=i.ikp(I.Command.Item,{_id:"aiSearchResults__Item",asChild:!0}),ee=m.forwardRef(({item:e,onClick:t,onSelect:r,children:s,...n},c)=>{const{searchSettings:{shouldOpenLinksInNewTab:d}}=C.useInkeepConfig(),{logEvent:l}=he.useSearchEvents(),{query:S,transitionsDisabled:v,selectedItem:b}=o.useSearch(),p=m.useRef(null),k=P.useComposedRefs(c,p),f=()=>{p.current?.click()},y=()=>{l({eventName:"search_result_clicked",properties:{searchQuery:S,title:e.title,url:e.url}})},T=d||!!e.shouldOpenInNewTab,L=b===e.id,de=L||(b==="NONE"||b===A);return a.jsx(h.SourceItemProvider,{source:{...e,isExternal:T},children:a.jsx(Fe,{ref:k,value:e.id,"data-type":e.type,"data-breadcrumbs":!!e.breadcrumbs?.length,"data-disable-transitions":u.dataAttr(v),onSelect:R.composeEventHandlers(r,f),onClick:R.composeEventHandlers(t,y),"data-selected":u.dataAttr(L),tabIndex:de?0:-1,...n,children:a.jsx(Se.LinkWithQueryParams,{href:e.url,isExternal:T,appendToUrl:e.appendToUrl,children:s,id:`aiSearchResults__Item-${e.id}`})})})}),Ne=i.ikp("div",{_id:"aiSearchResults__ItemBreadcrumbs"}),te=e=>{const{source:t}=h.useSourceItem(),{tab:r}=o.useSearch();if(!t.breadcrumbs?.length)return null;const{children:s,...n}=e,d=t.tabs?.find(l=>typeof l!="string"&&l[0]===r)?.[1]?.breadcrumbs??t.breadcrumbs??[];return a.jsx(Ne,{"aria-hidden":"true",children:u.maybeRender(s,d),...n})},Oe=i.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemBreadcrumbIcon",iconKey:"breadcrumbSeparator"}),Ve=i.ikp(x.BuiltInIconRenderer,{_id:"aiSearchResults__ItemIcon"}),re=e=>{const{source:t}=h.useSourceItem();return a.jsx(Ve,{iconSettings:t.icon,"data-type":t.type,...e})},Me=i.ikp("span",{_id:"aiSearchResults__ItemTitle"}),ie=e=>{const{source:t}=h.useSourceItem();return a.jsx(Me,{"data-type":t.type,children:t.title,...e})},He=i.ikp("span",{_id:"aiSearchResults__ItemTag"}),se=e=>{const{source:t}=h.useSourceItem();return a.jsx(He,{"data-type":t.type,children:t.tag,...e})},Ue=i.ikp("span",{_id:"aiSearchResults__ItemDescription"}),ae=e=>{const{source:t}=h.useSourceItem(),{children:r,...s}=e,n=m.useMemo(()=>t.description?be.highlightEmphasis(t.description):[],[t.description]);return n.length?a.jsx(Ue,{"data-type":t.type,"aria-hidden":"true",children:u.maybeRender(r,n),...s}):null},Ge=i.ikp("span",{_id:"aiSearchResults__ItemDescriptionPart"}),ne=e=>{const{part:t,...r}=e,{source:s}=h.useSourceItem();return typeof t=="string"?t:a.jsx(Ge,{"data-type":s.type,children:t.content,"data-highlighted":u.dataAttr(t.highlighted),...r})},Ke=i.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemIndicator"}),ce=e=>{const{source:t}=h.useSourceItem();return a.jsx(Ke,{iconKey:t.isExternal?"openLinkInNewTab":"openLinkInSameTab",...e})},We=i.ikp("div",{_id:"aiSearchFooter"}),oe=e=>{const{resultsList:t}=o.useSearch();return a.jsx(We,{"data-has-results":u.dataAttr(t.length>0),...e})},$e=i.ikp("div",{_id:"aiSearchTagline__Container"}),Qe=i.ikp("span",{_id:"aiSearchTagline__Text",children:"Powered by"}),ze=i.ikp(le.default,{_id:"aiSearchTagline__Logo"}),Je=i.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=A;exports.AskAITrigger=H;exports.AskAITriggerIcon=U;exports.AskAITriggerIndicator=K;exports.AskAITriggerLabel=G;exports.Content=F;exports.EmbeddedSearchInputIcon=O;exports.EmbeddedSearchPrimitiveAskAITrigger=H;exports.EmbeddedSearchPrimitiveAskAITriggerIcon=U;exports.EmbeddedSearchPrimitiveAskAITriggerIndicator=K;exports.EmbeddedSearchPrimitiveAskAITriggerLabel=G;exports.EmbeddedSearchPrimitiveContent=F;exports.EmbeddedSearchPrimitiveFooter=oe;exports.EmbeddedSearchPrimitiveInput=V;exports.EmbeddedSearchPrimitiveInputGroup=N;exports.EmbeddedSearchPrimitiveLoading=M;exports.EmbeddedSearchPrimitiveResults=W;exports.EmbeddedSearchPrimitiveResultsEmpty=Q;exports.EmbeddedSearchPrimitiveResultsItem=ee;exports.EmbeddedSearchPrimitiveResultsItemBreadcrumbs=te;exports.EmbeddedSearchPrimitiveResultsItemDescription=ae;exports.EmbeddedSearchPrimitiveResultsItemDescriptionPart=ne;exports.EmbeddedSearchPrimitiveResultsItemIcon=re;exports.EmbeddedSearchPrimitiveResultsItemIndicator=ce;exports.EmbeddedSearchPrimitiveResultsItemTag=se;exports.EmbeddedSearchPrimitiveResultsItemTitle=ie;exports.EmbeddedSearchPrimitiveResultsList=Z;exports.EmbeddedSearchPrimitiveResultsLoading=$;exports.EmbeddedSearchPrimitiveResultsScrollArea=X;exports.EmbeddedSearchPrimitiveResultsScrollAreaViewport=Y;exports.EmbeddedSearchPrimitiveResultsTab=J;exports.EmbeddedSearchPrimitiveResultsTabList=z;exports.EmbeddedSearchPrimitiveRoot=B;exports.EmbeddedSearchPrimitiveWrapper=w;exports.Footer=oe;exports.Input=V;exports.InputGroup=N;exports.InputIcon=O;exports.Loading=M;exports.PrimitiveContent=D;exports.Results=W;exports.ResultsEmpty=Q;exports.ResultsItem=ee;exports.ResultsItemBreadcrumbIcon=Oe;exports.ResultsItemBreadcrumbs=te;exports.ResultsItemDescription=ae;exports.ResultsItemDescriptionPart=ne;exports.ResultsItemIcon=re;exports.ResultsItemIndicator=ce;exports.ResultsItemTag=se;exports.ResultsItemTitle=ie;exports.ResultsList=Z;exports.ResultsLoading=$;exports.ResultsScrollArea=X;exports.ResultsScrollAreaCorner=Be;exports.ResultsScrollAreaScrollbar=qe;exports.ResultsScrollAreaThumb=we;exports.ResultsScrollAreaViewport=Y;exports.ResultsTab=J;exports.ResultsTabList=z;exports.Root=B;exports.TaglineBrandName=Je;exports.TaglineContainer=$e;exports.TaglineLogo=ze;exports.TaglineText=Qe;exports.Wrapper=w;
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),I=require("../atoms/cmdk/index.cjs"),i=require("./factory.cjs"),u=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"),ue=require("@radix-ui/react-scroll-area"),me=require("@radix-ui/react-tabs"),C=require("../providers/config-provider.cjs"),he=require("../providers/search-events-provider.cjs"),Se=require("../atoms/link.cjs"),h=require("../providers/source-item-provider.cjs"),x=require("../atoms/icons/built-in-icon-renderer.cjs"),be=require("../utils/highlight-emphasis.cjs"),pe=require("../hooks/use-scrolling-fades.cjs"),Ie=require("@inkeep/cxkit-color-mode"),ve=require("../atoms/avatars/ai.cjs"),j=require("./modal/modal-provider.cjs"),P=require("../utils/compose-refs.cjs"),R=require("../utils/compose-event-handlers.cjs"),Re=require("../atoms/shadow/context.cjs");function q(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=q(ue),E=q(me),A="__ask_ai__",ge=i.ikp("div",{_id:"aiSearchWrapper"}),w=e=>{const{isHidden:t,hasContent:r,isMobile:s}=o.useSearch(),a=j.useModal();return n.jsx(ge,{"data-hidden":u.dataAttr(t),"data-has-content":u.dataAttr(r),"data-in-modal":u.dataAttr(!!a),"data-mobile":u.dataAttr(s),...e})},_e=i.ikp(I.Command,{_id:"aiSearchRoot"}),B=e=>{const{isHidden:t,selectedItem:r,onSelectedItemChange:s}=o.useSearch();return n.jsx(_e,{"data-hidden":u.dataAttr(t),shouldFilter:!1,loop:!1,value:r,onValueChange:s,...e})},N=i.ikp(I.Command.List,{_id:"aiSearchContent"}),D=m.forwardRef((e,t)=>{const{selectedItem:r}=o.useSearch();return n.jsx(N,{"aria-activedescendant":`aiSearchResults__Item-${r}`,...e,ref:t})}),F=i.ikp("div",{_id:"aiSearchInputGroup"}),O=i.ikp(_.CustomIcon,{_id:"aiSearchInputIcon",iconKey:"search"}),Pe=i.ikp(I.Command.Input,{_id:"aiSearchInput"}),V=m.forwardRef(({onInput:e,...t},r)=>{const{query:s,onInput:a,placeholder:c,inputRef:d,shouldAutoFocusInput:l,selectedItem:S}=o.useSearch(),v=P.useComposedRefs(r,d),b=j.useModal();return m.useEffect(()=>{requestAnimationFrame(()=>{l&&d?.current&&(d.current.focus(),d.current.selectionStart=d.current.value.length)})},[l,d,b?.isOpen]),n.jsx(Pe,{ref:v,placeholder:c,value:s,onInput:R.composeEventHandlers(e,a),"aria-activedescendant":`aiSearchResults__Item-${S}`,...t})}),Ee=i.ikp(x.BuiltInIconRenderer,{_id:"aiSearchLoading",iconSettings:{builtIn:"LuLoaderCircle"}}),M=e=>{const{loading:t,resultsList:r}=o.useSearch();return!t||r.length===0?null:n.jsx(Ee,{...e})},Ae=i.ikp(I.Command.Item,{_id:"aiAskAITrigger",value:A}),H=e=>{const{setSelectedItem:t,results:r,tab:s}=o.useSearch(),a=r[s]?.[0]?.id??"NONE";return n.jsx(Ae,{...e,id:`aiSearchResults__Item-${A}`,tabIndex:0,onPointerLeave:()=>t(a)})},ke=i.ikp("img",{_id:"aiAskAITrigger__Icon"}),U=e=>{const{aiChatSettings:t}=C.useInkeepConfig(),{aiAssistantAvatar:r}=t??{},s=typeof r=="string"?r:r?.light,a=(typeof r=="string"?r:r?.dark)??s,c=Ie.useColorModeValue(s,a),[d,l]=m.useState(c);m.useEffect(()=>{l(c)},[c]);const S=()=>{l(null)};return n.jsx(ke,{asChild:!0,...e,children:d?n.jsx("img",{src:d,alt:"AI Avatar","data-type":"image",onError:R.composeEventHandlers(S),...e}):n.jsx(ve.default,{"data-type":"icon",...e})})},G=i.ikp("span",{_id:"aiAskAITrigger__Label"}),K=i.ikp(_.CustomIcon,{_id:"aiAskAITrigger__Indicator",iconKey:"openLinkInSameTab"}),fe=i.ikp(E.Root,{_id:"aiSearchResults"}),W=e=>{const{tab:t,onTabChange:r,hasContent:s}=o.useSearch();return n.jsx(fe,{value:t,onValueChange:r,"data-has-content":u.dataAttr(s),...e})},Te=i.ikp("div",{_id:"aiSearchResults__Loading"}),$=e=>{const{loading:t,resultsList:r}=o.useSearch();return!t||r.length>0?null:n.jsx(Te,{...e})},Ce=i.ikp(I.Command.Empty,{_id:"aiSearchResults__Empty"}),Q=e=>{const{query:t,loading:r,results:s,tab:a}=o.useSearch(),c=s[a]?.length;return r||!t||c?null:n.jsx(Ce,{children:"No results found.",...e})},ye=i.ikp(E.List,{_id:"aiSearchResults__TabList"}),z=e=>{const{children:t,...r}=e,{searchSettings:{tabs:s}}=C.useInkeepConfig(),{results:a,loading:c,resultsList:d}=o.useSearch();if(c&&d.length===0)return null;const l=Object.keys(a);return!s.length||!l.length?null:n.jsx(ye,{tabIndex:-1,children:u.maybeRender(t,l),...r})},Le=i.ikp(E.Trigger,{_id:"aiSearchResults__Tab"}),J=m.forwardRef((e,t)=>{const r=m.useRef(null),s=P.useComposedRefs(t,r),{tab:a,onClick:c,...d}=e,{results:l,tab:S,inputRef:v}=o.useSearch(),b=l[a].length,p=a===S,k=()=>{v.current?.focus()},f=Re.useShadow();return m.useEffect(()=>{p&&f?.shadowHost?.shadowRoot?.activeElement?.hasAttribute("ikp-tab")&&r.current?.focus()},[p]),n.jsx(Le,{ref:s,"ikp-tab":"",tabIndex:p?0:-1,value:a,children:`${a} (${b})`,onClick:R.composeEventHandlers(c,k),...d})}),xe=i.ikp(g.Root,{_id:"aiSearchResults__ScrollArea"}),X=e=>{const{loading:t,resultsList:r}=o.useSearch();return t&&r.length===0?null:n.jsx(xe,{tabIndex:-1,...e})},je=i.ikp(g.Viewport,{_id:"aiSearchResults__ScrollAreaViewport"}),Y=m.forwardRef(({children:e,...t},r)=>{const s=pe.useScrollingFades(),a=P.useComposedRefs(r,s),{tab:c}=o.useSearch();return m.useEffect(()=>{c&&s.current?.scrollTo({top:0,behavior:"auto"})},[c]),n.jsx(je,{ref:a,tabIndex:-1,children:n.jsx("div",{tabIndex:-1,style:{display:"grid"},children:e}),...t})}),qe=i.ikp(g.ScrollAreaScrollbar,{_id:"aiSearchResults__ScrollAreaScrollbar"}),we=i.ikp(g.ScrollAreaThumb,{_id:"aiSearchResults__ScrollAreaThumb"}),Be=i.ikp(g.Corner,{_id:"aiSearchResults__ScrollAreaCorner"}),Ne=i.ikp(E.Content,{_id:"aiSearchResults__List"}),Z=e=>{const{children:t,...r}=e,{results:s,tab:a}=o.useSearch(),c=s[a]??[];return n.jsx(Ne,{value:a,"data-has-results":u.dataAttr(c.length>0),"aria-label":"Search results",children:u.maybeRender(t,c),tabIndex:-1,...r})},De=i.ikp(I.Command.Item,{_id:"aiSearchResults__Item",asChild:!0}),ee=m.forwardRef(({item:e,onClick:t,onSelect:r,children:s,...a},c)=>{const{searchSettings:{shouldOpenLinksInNewTab:d}}=C.useInkeepConfig(),{logEvent:l}=he.useSearchEvents(),{query:S,transitionsDisabled:v,selectedItem:b}=o.useSearch(),p=m.useRef(null),k=P.useComposedRefs(c,p),f=()=>{p.current?.click()},y=()=>{l({eventName:"search_result_clicked",properties:{searchQuery:S,title:e.title,url:e.url}})},T=e.shouldOpenInNewTab!==void 0?e.shouldOpenInNewTab:d,L=b===e.id,de=L||(b==="NONE"||b===A);return n.jsx(h.SourceItemProvider,{source:{...e,isExternal:T},children:n.jsx(De,{ref:k,value:e.id,"data-type":e.type,"data-breadcrumbs":!!e.breadcrumbs?.length,"data-disable-transitions":u.dataAttr(v),onSelect:R.composeEventHandlers(r,f),onClick:R.composeEventHandlers(t,y),"data-selected":u.dataAttr(L),tabIndex:de?0:-1,...a,children:n.jsx(Se.LinkWithQueryParams,{href:e.url,isExternal:T,appendToUrl:e.appendToUrl,children:s,id:`aiSearchResults__Item-${e.id}`})})})}),Fe=i.ikp("div",{_id:"aiSearchResults__ItemBreadcrumbs"}),te=e=>{const{source:t}=h.useSourceItem(),{tab:r}=o.useSearch();if(!t.breadcrumbs?.length)return null;const{children:s,...a}=e,d=t.tabs?.find(l=>typeof l!="string"&&l[0]===r)?.[1]?.breadcrumbs??t.breadcrumbs??[];return n.jsx(Fe,{"aria-hidden":"true",children:u.maybeRender(s,d),...a})},Oe=i.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemBreadcrumbIcon",iconKey:"breadcrumbSeparator"}),Ve=i.ikp(x.BuiltInIconRenderer,{_id:"aiSearchResults__ItemIcon"}),re=e=>{const{source:t}=h.useSourceItem();return n.jsx(Ve,{iconSettings:t.icon,"data-type":t.type,...e})},Me=i.ikp("span",{_id:"aiSearchResults__ItemTitle"}),ie=e=>{const{source:t}=h.useSourceItem();return n.jsx(Me,{"data-type":t.type,children:t.title,...e})},He=i.ikp("span",{_id:"aiSearchResults__ItemTag"}),se=e=>{const{source:t}=h.useSourceItem();return n.jsx(He,{"data-type":t.type,children:t.tag,...e})},Ue=i.ikp("span",{_id:"aiSearchResults__ItemDescription"}),ne=e=>{const{source:t}=h.useSourceItem(),{children:r,...s}=e,a=m.useMemo(()=>t.description?be.highlightEmphasis(t.description):[],[t.description]);return a.length?n.jsx(Ue,{"data-type":t.type,"aria-hidden":"true",children:u.maybeRender(r,a),...s}):null},Ge=i.ikp("span",{_id:"aiSearchResults__ItemDescriptionPart"}),ae=e=>{const{part:t,...r}=e,{source:s}=h.useSourceItem();return typeof t=="string"?t:n.jsx(Ge,{"data-type":s.type,children:t.content,"data-highlighted":u.dataAttr(t.highlighted),...r})},Ke=i.ikp(_.CustomIcon,{_id:"aiSearchResults__ItemIndicator"}),ce=e=>{const{source:t}=h.useSourceItem();return n.jsx(Ke,{iconKey:t.isExternal?"openLinkInNewTab":"openLinkInSameTab",...e})},We=i.ikp("div",{_id:"aiSearchFooter"}),oe=e=>{const{resultsList:t}=o.useSearch();return n.jsx(We,{"data-has-results":u.dataAttr(t.length>0),...e})},$e=i.ikp("div",{_id:"aiSearchTagline__Container"}),Qe=i.ikp("span",{_id:"aiSearchTagline__Text",children:"Powered by"}),ze=i.ikp(le.default,{_id:"aiSearchTagline__Logo"}),Je=i.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=A;exports.AskAITrigger=H;exports.AskAITriggerIcon=U;exports.AskAITriggerIndicator=K;exports.AskAITriggerLabel=G;exports.Content=D;exports.EmbeddedSearchInputIcon=O;exports.EmbeddedSearchPrimitiveAskAITrigger=H;exports.EmbeddedSearchPrimitiveAskAITriggerIcon=U;exports.EmbeddedSearchPrimitiveAskAITriggerIndicator=K;exports.EmbeddedSearchPrimitiveAskAITriggerLabel=G;exports.EmbeddedSearchPrimitiveContent=D;exports.EmbeddedSearchPrimitiveFooter=oe;exports.EmbeddedSearchPrimitiveInput=V;exports.EmbeddedSearchPrimitiveInputGroup=F;exports.EmbeddedSearchPrimitiveLoading=M;exports.EmbeddedSearchPrimitiveResults=W;exports.EmbeddedSearchPrimitiveResultsEmpty=Q;exports.EmbeddedSearchPrimitiveResultsItem=ee;exports.EmbeddedSearchPrimitiveResultsItemBreadcrumbs=te;exports.EmbeddedSearchPrimitiveResultsItemDescription=ne;exports.EmbeddedSearchPrimitiveResultsItemDescriptionPart=ae;exports.EmbeddedSearchPrimitiveResultsItemIcon=re;exports.EmbeddedSearchPrimitiveResultsItemIndicator=ce;exports.EmbeddedSearchPrimitiveResultsItemTag=se;exports.EmbeddedSearchPrimitiveResultsItemTitle=ie;exports.EmbeddedSearchPrimitiveResultsList=Z;exports.EmbeddedSearchPrimitiveResultsLoading=$;exports.EmbeddedSearchPrimitiveResultsScrollArea=X;exports.EmbeddedSearchPrimitiveResultsScrollAreaViewport=Y;exports.EmbeddedSearchPrimitiveResultsTab=J;exports.EmbeddedSearchPrimitiveResultsTabList=z;exports.EmbeddedSearchPrimitiveRoot=B;exports.EmbeddedSearchPrimitiveWrapper=w;exports.Footer=oe;exports.Input=V;exports.InputGroup=F;exports.InputIcon=O;exports.Loading=M;exports.PrimitiveContent=N;exports.Results=W;exports.ResultsEmpty=Q;exports.ResultsItem=ee;exports.ResultsItemBreadcrumbIcon=Oe;exports.ResultsItemBreadcrumbs=te;exports.ResultsItemDescription=ne;exports.ResultsItemDescriptionPart=ae;exports.ResultsItemIcon=re;exports.ResultsItemIndicator=ce;exports.ResultsItemTag=se;exports.ResultsItemTitle=ie;exports.ResultsList=Z;exports.ResultsLoading=$;exports.ResultsScrollArea=X;exports.ResultsScrollAreaCorner=Be;exports.ResultsScrollAreaScrollbar=qe;exports.ResultsScrollAreaThumb=we;exports.ResultsScrollAreaViewport=Y;exports.ResultsTab=J;exports.ResultsTabList=z;exports.Root=B;exports.TaglineBrandName=Je;exports.TaglineContainer=$e;exports.TaglineLogo=ze;exports.TaglineText=Qe;exports.Wrapper=w;
|
|
@@ -6,12 +6,12 @@ import { dataAttr as u, maybeRender as v } from "../utils/misc.js";
|
|
|
6
6
|
import { forwardRef as _, useEffect as f, useState as V, useRef as B, useMemo as U } from "react";
|
|
7
7
|
import { useSearch as l } from "./embedded-search/search-provider.js";
|
|
8
8
|
import { SearchProvider as Tt } from "./embedded-search/search-provider.js";
|
|
9
|
-
import
|
|
9
|
+
import O from "./tagline-logo-icon.js";
|
|
10
10
|
import { CustomIcon as P } from "../atoms/icons/custom-icon.js";
|
|
11
11
|
import * as R from "@radix-ui/react-scroll-area";
|
|
12
12
|
import * as T from "@radix-ui/react-tabs";
|
|
13
13
|
import { useInkeepConfig as y } from "../providers/config-provider.js";
|
|
14
|
-
import { useSearchEvents as
|
|
14
|
+
import { useSearchEvents as M } from "../providers/search-events-provider.js";
|
|
15
15
|
import { LinkWithQueryParams as $ } from "../atoms/link.js";
|
|
16
16
|
import { SourceItemProvider as G, useSourceItem as h } from "../providers/source-item-provider.js";
|
|
17
17
|
import { BuiltInIconRenderer as N } from "../atoms/icons/built-in-icon-renderer.js";
|
|
@@ -25,7 +25,7 @@ import { composeEventHandlers as g } from "../utils/compose-event-handlers.js";
|
|
|
25
25
|
import { useShadow as j } from "../atoms/shadow/context.js";
|
|
26
26
|
const C = "__ask_ai__", Q = s("div", {
|
|
27
27
|
_id: "aiSearchWrapper"
|
|
28
|
-
}),
|
|
28
|
+
}), Me = (e) => {
|
|
29
29
|
const { isHidden: t, hasContent: r, isMobile: i } = l(), n = F();
|
|
30
30
|
return /* @__PURE__ */ a(
|
|
31
31
|
Q,
|
|
@@ -241,7 +241,7 @@ const C = "__ask_ai__", Q = s("div", {
|
|
|
241
241
|
}), ct = _(({ item: e, onClick: t, onSelect: r, children: i, ...n }, o) => {
|
|
242
242
|
const {
|
|
243
243
|
searchSettings: { shouldOpenLinksInNewTab: c }
|
|
244
|
-
} = y(), { logEvent: d } =
|
|
244
|
+
} = y(), { logEvent: d } = M(), { query: p, transitionsDisabled: S, selectedItem: m } = l(), b = B(null), E = A(o, b), L = () => {
|
|
245
245
|
b.current?.click();
|
|
246
246
|
}, w = () => {
|
|
247
247
|
d({
|
|
@@ -252,7 +252,7 @@ const C = "__ask_ai__", Q = s("div", {
|
|
|
252
252
|
url: e.url
|
|
253
253
|
}
|
|
254
254
|
});
|
|
255
|
-
}, k =
|
|
255
|
+
}, k = e.shouldOpenInNewTab !== void 0 ? e.shouldOpenInNewTab : c, x = m === e.id, D = x || (m === "NONE" || m === C);
|
|
256
256
|
return /* @__PURE__ */ a(G, { source: { ...e, isExternal: k }, children: /* @__PURE__ */ a(
|
|
257
257
|
le,
|
|
258
258
|
{
|
|
@@ -357,7 +357,7 @@ const C = "__ask_ai__", Q = s("div", {
|
|
|
357
357
|
}), _t = s("span", {
|
|
358
358
|
_id: "aiSearchTagline__Text",
|
|
359
359
|
children: "Powered by"
|
|
360
|
-
}), Rt = s(
|
|
360
|
+
}), Rt = s(O, {
|
|
361
361
|
_id: "aiSearchTagline__Logo"
|
|
362
362
|
}), vt = s("a", {
|
|
363
363
|
_id: "aiSearchTagline__BrandName",
|
|
@@ -400,7 +400,7 @@ export {
|
|
|
400
400
|
tt as EmbeddedSearchPrimitiveResultsTab,
|
|
401
401
|
et as EmbeddedSearchPrimitiveResultsTabList,
|
|
402
402
|
$e as EmbeddedSearchPrimitiveRoot,
|
|
403
|
-
|
|
403
|
+
Me as EmbeddedSearchPrimitiveWrapper,
|
|
404
404
|
St as Footer,
|
|
405
405
|
qe as Input,
|
|
406
406
|
Ke as InputGroup,
|
|
@@ -433,5 +433,5 @@ export {
|
|
|
433
433
|
gt as TaglineContainer,
|
|
434
434
|
Rt as TaglineLogo,
|
|
435
435
|
_t as TaglineText,
|
|
436
|
-
|
|
436
|
+
Me as Wrapper
|
|
437
437
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),c=require("@radix-ui/react-use-controllable-state"),p=s=>{const{isOpen:t,onOpenChange:a,shortcutKey:o}=s??{},[l=!1,n]=c.useControllableState({prop:t,defaultProp:t,onChange:a});return u.useEffect(()=>{const r=e=>{o&&(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===o.toLowerCase()&&(e.preventDefault(),e.stopPropagation(),n(!0)),e.key==="Escape"&&t&&(e.preventDefault(),n(!1))};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[o,n,t]),{isOpen:l,setOpen:n,shortcutKey:o}};exports.useInkeepModal=p;
|
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[e]
|
|
14
|
-
), p = s(() => e(!0), [e]), u = s(() => e(!1), [e]);
|
|
15
|
-
return d(() => {
|
|
16
|
-
const t = (o) => {
|
|
17
|
-
n && (o.metaKey || o.ctrlKey) && o.key.toLowerCase() === n.toLowerCase() && (o.preventDefault(), o.stopPropagation(), e(!0)), o.key === "Escape" && a && (o.preventDefault(), e(!1));
|
|
2
|
+
import { useEffect as u } from "react";
|
|
3
|
+
import { useControllableState as l } from "@radix-ui/react-use-controllable-state";
|
|
4
|
+
const i = (s) => {
|
|
5
|
+
const { isOpen: o, onOpenChange: a, shortcutKey: t } = s ?? {}, [p = !1, n] = l({
|
|
6
|
+
prop: o,
|
|
7
|
+
defaultProp: o,
|
|
8
|
+
onChange: a
|
|
9
|
+
});
|
|
10
|
+
return u(() => {
|
|
11
|
+
const r = (e) => {
|
|
12
|
+
t && (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === t.toLowerCase() && (e.preventDefault(), e.stopPropagation(), n(!0)), e.key === "Escape" && o && (e.preventDefault(), n(!1));
|
|
18
13
|
};
|
|
19
|
-
return document.addEventListener("keydown",
|
|
20
|
-
}, [
|
|
21
|
-
isOpen:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
handleOpenChange: l,
|
|
25
|
-
shortcutKey: n
|
|
14
|
+
return document.addEventListener("keydown", r), () => document.removeEventListener("keydown", r);
|
|
15
|
+
}, [t, n, o]), {
|
|
16
|
+
isOpen: p,
|
|
17
|
+
setOpen: n,
|
|
18
|
+
shortcutKey: t
|
|
26
19
|
};
|
|
27
20
|
};
|
|
28
21
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),t=require("../atoms/dialog.cjs"),i=require("./factory.cjs"),
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),t=require("../atoms/dialog.cjs"),i=require("./factory.cjs"),c=require("../atoms/icons/custom-icon.cjs"),u=require("./modal/use-inkeep-modal.cjs"),s=require("./modal/modal-provider.cjs"),m=require("../utils/compose-event-handlers.cjs"),M=require("../hooks/use-media-query.cjs"),p=require("../utils/misc.cjs"),v=i.ikp(t.Root,{_id:"modal"}),C=e=>{const{onOpenChange:n,config:l,...a}=e,r=u.useInkeepModal(l);return o.jsx(s.ModalProvider,{modal:r,children:o.jsx(v,{open:r.isOpen,onOpenChange:m.composeEventHandlers(n,d=>r.setOpen(d)),...a})})},y=i.ikp(t.Overlay,{_id:"modal__Overlay"}),_=i.ikp(t.Content,{_id:"modal__Content","aria-describedby":void 0}),q=e=>{const n=M.useMediaQuery("(max-width: 768px)");return o.jsx(_,{"data-mobile":p.dataAttr(n),...e})},O=i.ikp(t.Close,{_id:"modal__Close",children:o.jsx(c.CustomIcon,{iconKey:"close"})}),x=e=>s.useModal()?o.jsx(O,{...e}):null;exports.Close=x;exports.Content=q;exports.Modal=C;exports.Overlay=y;
|
package/dist/components/modal.js
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as e } from "react/jsx-runtime";
|
|
3
|
-
import { Overlay as
|
|
4
|
-
import { ikp as
|
|
5
|
-
import { CustomIcon as
|
|
6
|
-
import { useInkeepModal as
|
|
7
|
-
import { ModalProvider as
|
|
8
|
-
import { composeEventHandlers as
|
|
9
|
-
import { useMediaQuery as
|
|
10
|
-
import { dataAttr as
|
|
11
|
-
const
|
|
3
|
+
import { Overlay as s, Root as d, Content as m, Close as c } from "../atoms/dialog.js";
|
|
4
|
+
import { ikp as r } from "./factory.js";
|
|
5
|
+
import { CustomIcon as p } from "../atoms/icons/custom-icon.js";
|
|
6
|
+
import { useInkeepModal as C } from "./modal/use-inkeep-modal.js";
|
|
7
|
+
import { ModalProvider as M, useModal as f } from "./modal/modal-provider.js";
|
|
8
|
+
import { composeEventHandlers as u } from "../utils/compose-event-handlers.js";
|
|
9
|
+
import { useMediaQuery as v } from "../hooks/use-media-query.js";
|
|
10
|
+
import { dataAttr as _ } from "../utils/misc.js";
|
|
11
|
+
const O = r(d, {
|
|
12
12
|
_id: "modal"
|
|
13
|
-
}),
|
|
14
|
-
const { onOpenChange: t, config: i, ...a } = o,
|
|
15
|
-
return /* @__PURE__ */ e(
|
|
16
|
-
|
|
13
|
+
}), E = (o) => {
|
|
14
|
+
const { onOpenChange: t, config: i, ...a } = o, n = C(i);
|
|
15
|
+
return /* @__PURE__ */ e(M, { modal: n, children: /* @__PURE__ */ e(
|
|
16
|
+
O,
|
|
17
17
|
{
|
|
18
|
-
open:
|
|
19
|
-
onOpenChange:
|
|
18
|
+
open: n.isOpen,
|
|
19
|
+
onOpenChange: u(t, (l) => n.setOpen(l)),
|
|
20
20
|
...a
|
|
21
21
|
}
|
|
22
22
|
) });
|
|
23
|
-
},
|
|
23
|
+
}, H = r(s, {
|
|
24
24
|
_id: "modal__Overlay"
|
|
25
|
-
}),
|
|
25
|
+
}), y = r(m, {
|
|
26
26
|
_id: "modal__Content",
|
|
27
27
|
"aria-describedby": void 0
|
|
28
|
-
}),
|
|
29
|
-
const t =
|
|
30
|
-
return /* @__PURE__ */ e(
|
|
31
|
-
}, h =
|
|
28
|
+
}), K = (o) => {
|
|
29
|
+
const t = v("(max-width: 768px)");
|
|
30
|
+
return /* @__PURE__ */ e(y, { "data-mobile": _(t), ...o });
|
|
31
|
+
}, h = r(c, {
|
|
32
32
|
_id: "modal__Close",
|
|
33
|
-
children: /* @__PURE__ */ e(
|
|
34
|
-
}),
|
|
33
|
+
children: /* @__PURE__ */ e(p, { iconKey: "close" })
|
|
34
|
+
}), Q = (o) => f() ? /* @__PURE__ */ e(h, { ...o }) : null;
|
|
35
35
|
export {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
Q as Close,
|
|
37
|
+
K as Content,
|
|
38
|
+
E as Modal,
|
|
39
|
+
H as Overlay
|
|
40
40
|
};
|
package/dist/index.d.cts
CHANGED
|
@@ -3541,10 +3541,8 @@ declare const useInkeepIntelligentForm: (props: InkeepIntelligentFormSettings) =
|
|
|
3541
3541
|
};
|
|
3542
3542
|
|
|
3543
3543
|
declare const useInkeepModal: (props: InkeepModalSettings | undefined) => {
|
|
3544
|
-
isOpen: boolean
|
|
3545
|
-
|
|
3546
|
-
closeModal: () => void;
|
|
3547
|
-
handleOpenChange: (newState: boolean) => void;
|
|
3544
|
+
isOpen: boolean;
|
|
3545
|
+
setOpen: Dispatch<SetStateAction<boolean | undefined>>;
|
|
3548
3546
|
shortcutKey: string | null | undefined;
|
|
3549
3547
|
};
|
|
3550
3548
|
|
|
@@ -3615,10 +3613,8 @@ export declare const useMessageAttachments: () => MessageAttachmentsContextValue
|
|
|
3615
3613
|
export declare const useMessageFeedback: () => FeedbackContextValue;
|
|
3616
3614
|
|
|
3617
3615
|
export declare const useModal: () => {
|
|
3618
|
-
isOpen: boolean
|
|
3619
|
-
|
|
3620
|
-
closeModal: () => void;
|
|
3621
|
-
handleOpenChange: (newState: boolean) => void;
|
|
3616
|
+
isOpen: boolean;
|
|
3617
|
+
setOpen: Dispatch<SetStateAction<boolean | undefined>>;
|
|
3622
3618
|
shortcutKey: string | null | undefined;
|
|
3623
3619
|
} | undefined;
|
|
3624
3620
|
|
package/dist/index.d.ts
CHANGED
|
@@ -3541,10 +3541,8 @@ declare const useInkeepIntelligentForm: (props: InkeepIntelligentFormSettings) =
|
|
|
3541
3541
|
};
|
|
3542
3542
|
|
|
3543
3543
|
declare const useInkeepModal: (props: InkeepModalSettings | undefined) => {
|
|
3544
|
-
isOpen: boolean
|
|
3545
|
-
|
|
3546
|
-
closeModal: () => void;
|
|
3547
|
-
handleOpenChange: (newState: boolean) => void;
|
|
3544
|
+
isOpen: boolean;
|
|
3545
|
+
setOpen: Dispatch<SetStateAction<boolean | undefined>>;
|
|
3548
3546
|
shortcutKey: string | null | undefined;
|
|
3549
3547
|
};
|
|
3550
3548
|
|
|
@@ -3615,10 +3613,8 @@ export declare const useMessageAttachments: () => MessageAttachmentsContextValue
|
|
|
3615
3613
|
export declare const useMessageFeedback: () => FeedbackContextValue;
|
|
3616
3614
|
|
|
3617
3615
|
export declare const useModal: () => {
|
|
3618
|
-
isOpen: boolean
|
|
3619
|
-
|
|
3620
|
-
closeModal: () => void;
|
|
3621
|
-
handleOpenChange: (newState: boolean) => void;
|
|
3616
|
+
isOpen: boolean;
|
|
3617
|
+
setOpen: Dispatch<SetStateAction<boolean | undefined>>;
|
|
3622
3618
|
shortcutKey: string | null | undefined;
|
|
3623
3619
|
} | undefined;
|
|
3624
3620
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react/jsx-runtime"),t=require("react"),y=require("../atoms/api/analytics/events.cjs"),B=require("./config-provider.cjs"),b=require("./user-provider.cjs"),p=t.createContext(void 0),f=({children:e})=>{const{baseSettings:s,componentType:n}=B.useInkeepConfig(),{apiKey:o,analyticsApiBaseUrl:r,tags:i,privacyPreferences:d,env:E}=s,{userProperties:c}=b.useUser(),a=t.useMemo(()=>({widgetLibraryVersion:"0.5.
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react/jsx-runtime"),t=require("react"),y=require("../atoms/api/analytics/events.cjs"),B=require("./config-provider.cjs"),b=require("./user-provider.cjs"),p=t.createContext(void 0),f=({children:e})=>{const{baseSettings:s,componentType:n}=B.useInkeepConfig(),{apiKey:o,analyticsApiBaseUrl:r,tags:i,privacyPreferences:d,env:E}=s,{userProperties:c}=b.useUser(),a=t.useMemo(()=>({widgetLibraryVersion:"0.5.24",componentType:n,tags:i}),[n,i]),u=!d.optOutAllAnalytics&&E!=="development",g={logEvent:t.useCallback(async v=>{const m={...a,...v.properties},l={eventName:v.eventName,properties:m,userProperties:c};u&&y.logEvent(l,o,r),s.onEvent?.(l)},[u,s,o,r,c,a])};return P.jsx(p.Provider,{value:g,children:e})},x=()=>{const e=t.useContext(p);if(!e)throw new Error("useBaseEvents must be used within a BaseEventsProvider");return e};exports.BaseEventsProvider=f;exports.useBaseEvents=x;
|
|
@@ -7,7 +7,7 @@ import { useUser as b } from "./user-provider.js";
|
|
|
7
7
|
const m = x(void 0), U = ({ children: e }) => {
|
|
8
8
|
const { baseSettings: t, componentType: o } = C(), { apiKey: n, analyticsApiBaseUrl: s, tags: r, privacyPreferences: u, env: l } = t, { userProperties: i } = b(), a = d(
|
|
9
9
|
() => ({
|
|
10
|
-
widgetLibraryVersion: "0.5.
|
|
10
|
+
widgetLibraryVersion: "0.5.24",
|
|
11
11
|
componentType: o,
|
|
12
12
|
tags: r
|
|
13
13
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react/jsx-runtime"),o=require("react"),x=require("react-hook-form"),P=require("./conversation-provider.cjs"),w=require("../components/modal/modal-provider.cjs"),M=require("../utils/form.cjs"),j="root.serverError",f=o.createContext(void 0);function h(){const[t,n]=o.useState(null),[S,u]=o.useState(!1),{conversation:i}=P.useInkeepConversation(),v=w.useModal(),F=e=>{n(e)},C=()=>{n(null),u(!1),t?.buttons.close?.action==="close_modal"&&v?.
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react/jsx-runtime"),o=require("react"),x=require("react-hook-form"),P=require("./conversation-provider.cjs"),w=require("../components/modal/modal-provider.cjs"),M=require("../utils/form.cjs"),j="root.serverError",f=o.createContext(void 0);function h(){const[t,n]=o.useState(null),[S,u]=o.useState(!1),{conversation:i}=P.useInkeepConversation(),v=w.useModal(),F=e=>{n(e)},C=()=>{n(null),u(!1),t?.buttons.close?.action==="close_modal"&&v?.setOpen(!1)},c=o.useMemo(()=>t?.fields.map(e=>{const s=e;return"_type"in e&&e._type==="include_chat_session"&&(s.isRequired=!1,s.inputType="checkbox",i.id||(s.isHidden=!0)),s}),[t?.fields,i.id]),a=c?.find(e=>"_type"in e&&e._type==="include_chat_session"),r=o.useMemo(()=>M.getFormDefaultValues(c),[c]),{control:b,handleSubmit:p,formState:{errors:m,isSubmitting:E},setError:_,reset:l}=x.useForm({defaultValues:r});o.useEffect(()=>{r&&l(r)},[l,r]);const y=p(async e=>{const R=i.id&&a&&e[a.name]?i:null;try{await t?.buttons.submit.onSubmit({values:e,conversation:R}),u(!0)}catch(d){_(j,{message:d instanceof Error?d.message:"Something went wrong."})}}),g=m?.root?.serverError;return{form:t,openForm:F,closeForm:C,handleSubmit:y,isSuccess:S,isSubmitting:E,formError:g,fields:c,errors:m,control:b,defaultValues:r}}const k=({children:t})=>{const n=h();return q.jsx(f.Provider,{value:n,children:t})},O=()=>{const t=o.useContext(f);if(!t)throw new Error("useChatForm must be used within a ChatFormProvider");return t};exports.ChatFormProvider=k;exports.useChatForm=O;exports.useChatFormState=h;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as w } from "react/jsx-runtime";
|
|
3
|
-
import { useState as
|
|
3
|
+
import { useState as f, useMemo as d, useEffect as R, createContext as M, useContext as P } from "react";
|
|
4
4
|
import { useForm as V } from "react-hook-form";
|
|
5
5
|
import { useInkeepConversation as k } from "./conversation-provider.js";
|
|
6
6
|
import { useModal as I } from "../components/modal/modal-provider.js";
|
|
7
|
-
import { getFormDefaultValues as
|
|
8
|
-
const
|
|
9
|
-
function
|
|
10
|
-
const [
|
|
11
|
-
r(
|
|
7
|
+
import { getFormDefaultValues as O } from "../utils/form.js";
|
|
8
|
+
const j = "root.serverError", p = M(void 0);
|
|
9
|
+
function q() {
|
|
10
|
+
const [o, r] = f(null), [h, c] = f(!1), { conversation: n } = k(), S = I(), b = (t) => {
|
|
11
|
+
r(t);
|
|
12
12
|
}, v = () => {
|
|
13
|
-
r(null), c(!1),
|
|
14
|
-
}, i =
|
|
15
|
-
const s =
|
|
16
|
-
return "_type" in
|
|
17
|
-
}), [
|
|
13
|
+
r(null), c(!1), o?.buttons.close?.action === "close_modal" && S?.setOpen(!1);
|
|
14
|
+
}, i = d(() => o?.fields.map((t) => {
|
|
15
|
+
const s = t;
|
|
16
|
+
return "_type" in t && t._type === "include_chat_session" && (s.isRequired = !1, s.inputType = "checkbox", n.id || (s.isHidden = !0)), s;
|
|
17
|
+
}), [o?.fields, n.id]), a = i?.find((t) => "_type" in t && t._type === "include_chat_session"), e = d(() => O(i), [i]), {
|
|
18
18
|
control: C,
|
|
19
19
|
handleSubmit: F,
|
|
20
20
|
formState: { errors: u, isSubmitting: E },
|
|
@@ -26,18 +26,18 @@ function A() {
|
|
|
26
26
|
R(() => {
|
|
27
27
|
e && m(e);
|
|
28
28
|
}, [m, e]);
|
|
29
|
-
const x = F(async (
|
|
30
|
-
const g = n.id && a &&
|
|
29
|
+
const x = F(async (t) => {
|
|
30
|
+
const g = n.id && a && t[a.name] ? n : null;
|
|
31
31
|
try {
|
|
32
|
-
await
|
|
32
|
+
await o?.buttons.submit.onSubmit({ values: t, conversation: g }), c(!0);
|
|
33
33
|
} catch (l) {
|
|
34
|
-
_(
|
|
34
|
+
_(j, {
|
|
35
35
|
message: l instanceof Error ? l.message : "Something went wrong."
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
}), y = u?.root?.serverError;
|
|
39
39
|
return {
|
|
40
|
-
form:
|
|
40
|
+
form: o,
|
|
41
41
|
openForm: b,
|
|
42
42
|
closeForm: v,
|
|
43
43
|
handleSubmit: x,
|
|
@@ -50,17 +50,17 @@ function A() {
|
|
|
50
50
|
defaultValues: e
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
const G = ({ children:
|
|
54
|
-
const r =
|
|
55
|
-
return /* @__PURE__ */ w(p.Provider, { value: r, children:
|
|
53
|
+
const G = ({ children: o }) => {
|
|
54
|
+
const r = q();
|
|
55
|
+
return /* @__PURE__ */ w(p.Provider, { value: r, children: o });
|
|
56
56
|
}, J = () => {
|
|
57
|
-
const
|
|
58
|
-
if (!
|
|
57
|
+
const o = P(p);
|
|
58
|
+
if (!o)
|
|
59
59
|
throw new Error("useChatForm must be used within a ChatFormProvider");
|
|
60
|
-
return
|
|
60
|
+
return o;
|
|
61
61
|
};
|
|
62
62
|
export {
|
|
63
63
|
G as ChatFormProvider,
|
|
64
64
|
J as useChatForm,
|
|
65
|
-
|
|
65
|
+
q as useChatFormState
|
|
66
66
|
};
|