@docsearch/react 4.6.3 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/esm/AskAiScreenState-D0IZsCMJ.d.ts +106 -0
- package/dist/esm/DocSearch-Dq5Utfyb.d.ts +295 -0
- package/dist/esm/DocSearchAskAiModal-BwbMrrHv.d.ts +48 -0
- package/dist/esm/DocSearchAskAiModal-CCrk6YLb.js +954 -0
- package/dist/esm/DocSearchAskAiModal-CCrk6YLb.js.map +1 -0
- package/dist/esm/DocSearchButton-CRlNPf5k.d.ts +18 -0
- package/dist/esm/DocSearchButton-CaxxOzQU.js +71 -0
- package/dist/esm/DocSearchButton-CaxxOzQU.js.map +1 -0
- package/dist/esm/DocSearchModal-CpvDjo1O.js +250 -0
- package/dist/esm/DocSearchModal-CpvDjo1O.js.map +1 -0
- package/dist/esm/DocSearchTheme-DvL4mf0D.d.ts +5 -0
- package/dist/esm/askaiModal.d.ts +2 -0
- package/dist/esm/askaiModal.js +3 -0
- package/dist/esm/button.d.ts +2 -0
- package/dist/esm/button.js +3 -0
- package/dist/esm/docsearchAi.d.ts +220 -0
- package/dist/esm/docsearchAi.js +34 -0
- package/dist/esm/docsearchAi.js.map +1 -0
- package/dist/esm/index-Dl8FMlR5.d.ts +223 -0
- package/dist/esm/index.d.ts +9 -655
- package/dist/esm/index.js +35 -3
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/keyboard-BkSdCzTU.js +9 -0
- package/dist/esm/keyboard-BkSdCzTU.js.map +1 -0
- package/dist/esm/keyboardShortcuts-C-lx6Xt7.js +25 -0
- package/dist/esm/keyboardShortcuts-C-lx6Xt7.js.map +1 -0
- package/dist/esm/modal.d.ts +2 -0
- package/dist/esm/modal.js +3 -0
- package/dist/esm/normalizeDocSearchIndexes-DAzlMybx.js +1240 -0
- package/dist/esm/normalizeDocSearchIndexes-DAzlMybx.js.map +1 -0
- package/dist/esm/objectSpread2-BNmiQYyW.js +67 -0
- package/dist/esm/objectWithoutProperties-phqYxDS0.js +53 -0
- package/dist/esm/objectWithoutProperties-phqYxDS0.js.map +1 -0
- package/dist/esm/sidepanel.d.ts +395 -0
- package/dist/esm/sidepanel.js +773 -0
- package/dist/esm/sidepanel.js.map +1 -0
- package/dist/esm/useDocSearchKeyboardEvents-68G8dw6c.d.ts +43 -0
- package/dist/esm/useDocSearchKeyboardEvents.d.ts +2 -41
- package/dist/esm/useDocSearchKeyboardEvents.js +43 -1
- package/dist/esm/useDocSearchKeyboardEvents.js.map +1 -0
- package/dist/esm/useSearchClient-mIHVB6ga.js +433 -0
- package/dist/esm/useSearchClient-mIHVB6ga.js.map +1 -0
- package/dist/esm/useSuggestedQuestions-D2TGVPsI.js +1112 -0
- package/dist/esm/useSuggestedQuestions-D2TGVPsI.js.map +1 -0
- package/dist/esm/useTheme.d.ts +7 -6
- package/dist/esm/useTheme.js +21 -1
- package/dist/esm/useTheme.js.map +1 -0
- package/dist/esm/version.d.ts +4 -2
- package/dist/esm/version.js +6 -1
- package/dist/esm/version.js.map +1 -0
- package/dist/umd/index.js +175 -5
- package/dist/umd/index.js.map +1 -1
- package/package.json +31 -34
- package/style/askai.js +1 -0
- package/button.js +0 -1
- package/dist/esm/DocSearchButton.d.ts +0 -18
- package/dist/esm/DocSearchButton.js +0 -1
- package/dist/esm/DocSearchModal.d.ts +0 -444
- package/dist/esm/DocSearchModal.js +0 -3
- package/dist/esm/Sidepanel.d.ts +0 -371
- package/dist/esm/Sidepanel.js +0 -3
- package/dist/umd/DocSearchModal.js +0 -5
- package/dist/umd/DocSearchModal.js.map +0 -1
- package/dist/umd/DocsearchButton.js +0 -3
- package/dist/umd/DocsearchButton.js.map +0 -1
- package/dist/umd/Sidepanel.js +0 -5
- package/dist/umd/Sidepanel.js.map +0 -1
- package/dist/umd/useDocSearchKeyboardEvents.js +0 -3
- package/dist/umd/useDocSearchKeyboardEvents.js.map +0 -1
- package/dist/umd/useTheme.js +0 -3
- package/dist/umd/useTheme.js.map +0 -1
- package/dist/umd/version.js +0 -3
- package/dist/umd/version.js.map +0 -1
- package/modal.js +0 -1
- package/sidepanel.js +0 -1
- package/useDocSearchKeyboardEvents.js +0 -1
- package/useTheme.js +0 -1
- package/version.js +0 -1
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import { t as _objectSpread2 } from "./objectSpread2-BNmiQYyW.js";
|
|
2
|
+
import { t as _objectWithoutProperties } from "./objectWithoutProperties-phqYxDS0.js";
|
|
3
|
+
import { version } from "./version.js";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { liteClient } from "algoliasearch/lite";
|
|
6
|
+
|
|
7
|
+
//#region src/icons/LoadingIcon.tsx
|
|
8
|
+
function LoadingIcon({ className }) {
|
|
9
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
10
|
+
viewBox: "0 0 38 38",
|
|
11
|
+
className,
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
strokeOpacity: ".5"
|
|
14
|
+
}, /* @__PURE__ */ React.createElement("g", {
|
|
15
|
+
fill: "none",
|
|
16
|
+
fillRule: "evenodd"
|
|
17
|
+
}, /* @__PURE__ */ React.createElement("g", {
|
|
18
|
+
transform: "translate(1 1)",
|
|
19
|
+
strokeWidth: "2"
|
|
20
|
+
}, /* @__PURE__ */ React.createElement("circle", {
|
|
21
|
+
strokeOpacity: ".3",
|
|
22
|
+
cx: "18",
|
|
23
|
+
cy: "18",
|
|
24
|
+
r: "18"
|
|
25
|
+
}), /* @__PURE__ */ React.createElement("path", { d: "M36 18c0-9.94-8.06-18-18-18" }, /* @__PURE__ */ React.createElement("animateTransform", {
|
|
26
|
+
attributeName: "transform",
|
|
27
|
+
type: "rotate",
|
|
28
|
+
from: "0 18 18",
|
|
29
|
+
to: "360 18 18",
|
|
30
|
+
dur: "1s",
|
|
31
|
+
repeatCount: "indefinite"
|
|
32
|
+
})))));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/icons/SparklesIcon.tsx
|
|
37
|
+
function SparklesIcon({ className = "" }) {
|
|
38
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
39
|
+
width: "20",
|
|
40
|
+
height: "20",
|
|
41
|
+
viewBox: "0 0 24 24",
|
|
42
|
+
fill: "none",
|
|
43
|
+
stroke: "currentColor",
|
|
44
|
+
strokeWidth: "1.3",
|
|
45
|
+
strokeLinecap: "round",
|
|
46
|
+
strokeLinejoin: "round",
|
|
47
|
+
className: `DocSearch-Hit-icon-sparkles ${className}`,
|
|
48
|
+
"aria-hidden": "true"
|
|
49
|
+
}, /* @__PURE__ */ React.createElement("path", { d: "M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" }), /* @__PURE__ */ React.createElement("path", { d: "M20 3v4" }), /* @__PURE__ */ React.createElement("path", { d: "M22 5h-4" }), /* @__PURE__ */ React.createElement("path", { d: "M4 17v2" }), /* @__PURE__ */ React.createElement("path", { d: "M5 18H3" }));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/icons/RecentIcon.tsx
|
|
54
|
+
function RecentIcon() {
|
|
55
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
56
|
+
width: "20",
|
|
57
|
+
height: "20",
|
|
58
|
+
viewBox: "0 0 20 20"
|
|
59
|
+
}, /* @__PURE__ */ React.createElement("g", {
|
|
60
|
+
stroke: "currentColor",
|
|
61
|
+
fill: "none",
|
|
62
|
+
fillRule: "evenodd",
|
|
63
|
+
strokeLinecap: "round",
|
|
64
|
+
strokeLinejoin: "round"
|
|
65
|
+
}, /* @__PURE__ */ React.createElement("path", { d: "M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0" }), /* @__PURE__ */ React.createElement("path", { d: "M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13" })));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/objectDestructuringEmpty.js
|
|
70
|
+
function _objectDestructuringEmpty(t) {
|
|
71
|
+
if (null == t) throw new TypeError("Cannot destructure " + t);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/extends.js
|
|
76
|
+
function _extends() {
|
|
77
|
+
return _extends = Object.assign ? Object.assign.bind() : function(n) {
|
|
78
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
79
|
+
var t = arguments[e];
|
|
80
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
81
|
+
}
|
|
82
|
+
return n;
|
|
83
|
+
}, _extends.apply(null, arguments);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region src/icons/CloseIcon.tsx
|
|
88
|
+
function CloseIcon(_ref) {
|
|
89
|
+
let props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
90
|
+
return /* @__PURE__ */ React.createElement("svg", _objectSpread2({
|
|
91
|
+
width: "20",
|
|
92
|
+
height: "20",
|
|
93
|
+
viewBox: "0 0 20 20"
|
|
94
|
+
}, props), /* @__PURE__ */ React.createElement("path", {
|
|
95
|
+
d: "M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",
|
|
96
|
+
stroke: "currentColor",
|
|
97
|
+
fill: "none",
|
|
98
|
+
fillRule: "evenodd",
|
|
99
|
+
strokeLinecap: "round",
|
|
100
|
+
strokeLinejoin: "round"
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/icons/SourceIcon.tsx
|
|
106
|
+
const LvlIcon = () => {
|
|
107
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
108
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
109
|
+
width: "20",
|
|
110
|
+
height: "20",
|
|
111
|
+
viewBox: "0 0 24 24",
|
|
112
|
+
fill: "none",
|
|
113
|
+
stroke: "currentColor",
|
|
114
|
+
strokeWidth: "1.5",
|
|
115
|
+
strokeLinecap: "round",
|
|
116
|
+
strokeLinejoin: "round"
|
|
117
|
+
}, /* @__PURE__ */ React.createElement("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }), /* @__PURE__ */ React.createElement("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" }), /* @__PURE__ */ React.createElement("path", { d: "M10 9H8" }), /* @__PURE__ */ React.createElement("path", { d: "M16 13H8" }), /* @__PURE__ */ React.createElement("path", { d: "M16 17H8" }));
|
|
118
|
+
};
|
|
119
|
+
function SourceIcon(props) {
|
|
120
|
+
switch (props.type) {
|
|
121
|
+
case "lvl1": return /* @__PURE__ */ React.createElement(LvlIcon, null);
|
|
122
|
+
case "content": return /* @__PURE__ */ React.createElement(ContentIcon, null);
|
|
123
|
+
default: return /* @__PURE__ */ React.createElement(AnchorIcon, null);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function AnchorIcon() {
|
|
127
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
128
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
129
|
+
width: "20",
|
|
130
|
+
height: "20",
|
|
131
|
+
viewBox: "0 0 24 24",
|
|
132
|
+
fill: "none",
|
|
133
|
+
stroke: "currentColor",
|
|
134
|
+
strokeLinecap: "round",
|
|
135
|
+
strokeLinejoin: "round"
|
|
136
|
+
}, /* @__PURE__ */ React.createElement("line", {
|
|
137
|
+
x1: "4",
|
|
138
|
+
x2: "20",
|
|
139
|
+
y1: "9",
|
|
140
|
+
y2: "9"
|
|
141
|
+
}), /* @__PURE__ */ React.createElement("line", {
|
|
142
|
+
x1: "4",
|
|
143
|
+
x2: "20",
|
|
144
|
+
y1: "15",
|
|
145
|
+
y2: "15"
|
|
146
|
+
}), /* @__PURE__ */ React.createElement("line", {
|
|
147
|
+
x1: "10",
|
|
148
|
+
x2: "8",
|
|
149
|
+
y1: "3",
|
|
150
|
+
y2: "21"
|
|
151
|
+
}), /* @__PURE__ */ React.createElement("line", {
|
|
152
|
+
x1: "16",
|
|
153
|
+
x2: "14",
|
|
154
|
+
y1: "3",
|
|
155
|
+
y2: "21"
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
function ContentIcon() {
|
|
159
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
160
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
161
|
+
width: "24",
|
|
162
|
+
height: "24",
|
|
163
|
+
viewBox: "0 0 24 24",
|
|
164
|
+
fill: "none",
|
|
165
|
+
stroke: "currentColor",
|
|
166
|
+
strokeLinecap: "round",
|
|
167
|
+
strokeLinejoin: "round"
|
|
168
|
+
}, /* @__PURE__ */ React.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React.createElement("line", {
|
|
169
|
+
x1: "16",
|
|
170
|
+
y1: "13",
|
|
171
|
+
x2: "8",
|
|
172
|
+
y2: "13"
|
|
173
|
+
}), /* @__PURE__ */ React.createElement("line", {
|
|
174
|
+
x1: "16",
|
|
175
|
+
y1: "17",
|
|
176
|
+
x2: "8",
|
|
177
|
+
y2: "17"
|
|
178
|
+
}), /* @__PURE__ */ React.createElement("polyline", { points: "10 9 9 9 8 9" }));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
//#endregion
|
|
182
|
+
//#region src/constants.ts
|
|
183
|
+
const SUGGESTED_QUETIONS_INDEX_NAME = "algolia_ask_ai_suggested_questions";
|
|
184
|
+
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/AlgoliaLogo.tsx
|
|
187
|
+
function AlgoliaLogo({ translations = {} }) {
|
|
188
|
+
const { poweredByText = "Powered by" } = translations;
|
|
189
|
+
return /* @__PURE__ */ React.createElement("a", {
|
|
190
|
+
href: `https://www.algolia.com/ref/docsearch/?utm_source=${window.location.hostname}&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch`,
|
|
191
|
+
target: "_blank",
|
|
192
|
+
rel: "noopener noreferrer"
|
|
193
|
+
}, /* @__PURE__ */ React.createElement("span", { className: "DocSearch-Label" }, poweredByText), /* @__PURE__ */ React.createElement("svg", {
|
|
194
|
+
width: "80",
|
|
195
|
+
height: "24",
|
|
196
|
+
"aria-label": "Algolia",
|
|
197
|
+
role: "img",
|
|
198
|
+
id: "Layer_1",
|
|
199
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
200
|
+
viewBox: "0 0 2196.2 500"
|
|
201
|
+
}, /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("style", null, ".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")), /* @__PURE__ */ React.createElement("path", {
|
|
202
|
+
className: "cls-2",
|
|
203
|
+
d: "M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"
|
|
204
|
+
}), /* @__PURE__ */ React.createElement("rect", {
|
|
205
|
+
className: "cls-1",
|
|
206
|
+
x: "1845.88",
|
|
207
|
+
y: "104.73",
|
|
208
|
+
width: "62.58",
|
|
209
|
+
height: "277.9",
|
|
210
|
+
rx: "5.9",
|
|
211
|
+
ry: "5.9"
|
|
212
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
213
|
+
className: "cls-2",
|
|
214
|
+
d: "M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"
|
|
215
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
216
|
+
className: "cls-2",
|
|
217
|
+
d: "M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"
|
|
218
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
219
|
+
className: "cls-2",
|
|
220
|
+
d: "M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"
|
|
221
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
222
|
+
className: "cls-2",
|
|
223
|
+
d: "M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"
|
|
224
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
225
|
+
className: "cls-2",
|
|
226
|
+
d: "M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"
|
|
227
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
228
|
+
className: "cls-2",
|
|
229
|
+
d: "M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"
|
|
230
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
231
|
+
className: "cls-1",
|
|
232
|
+
d: "M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"
|
|
233
|
+
})));
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
//#endregion
|
|
237
|
+
//#region src/utils/storage.ts
|
|
238
|
+
/** Estimates the size of localStorage usage in bytes. */
|
|
239
|
+
function getLocalStorageSize() {
|
|
240
|
+
if (typeof window === "undefined" || !window.localStorage) return 0;
|
|
241
|
+
let total = 0;
|
|
242
|
+
for (const key in window.localStorage) if (window.localStorage.hasOwnProperty(key)) total += window.localStorage[key].length + key.length;
|
|
243
|
+
return total;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Attempts to free up localStorage space by removing DocSearch-related items
|
|
247
|
+
* starting with the oldest/largest ones.
|
|
248
|
+
*/
|
|
249
|
+
function cleanupDocSearchStorage() {
|
|
250
|
+
if (typeof window === "undefined" || !window.localStorage) return;
|
|
251
|
+
const docSearchKeys = [];
|
|
252
|
+
for (const key in window.localStorage) if (key.includes("__DOCSEARCH_")) {
|
|
253
|
+
const value = window.localStorage[key];
|
|
254
|
+
docSearchKeys.push({
|
|
255
|
+
key,
|
|
256
|
+
size: value.length + key.length
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
docSearchKeys.sort((a, b) => b.size - a.size);
|
|
260
|
+
const itemsToRemove = Math.ceil(docSearchKeys.length / 2);
|
|
261
|
+
for (let i = 0; i < itemsToRemove && i < docSearchKeys.length; i++) try {
|
|
262
|
+
window.localStorage.removeItem(docSearchKeys[i].key);
|
|
263
|
+
} catch (_unused) {}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Safely sets an item in localStorage with quota exceeded error handling.
|
|
267
|
+
*
|
|
268
|
+
* @param key - The localStorage key.
|
|
269
|
+
* @param value - The value to store (will be JSON.stringified).
|
|
270
|
+
*/
|
|
271
|
+
function safeSetLocalStorageItem(key, value) {
|
|
272
|
+
try {
|
|
273
|
+
window.localStorage.setItem(key, JSON.stringify(value));
|
|
274
|
+
} catch (error) {
|
|
275
|
+
if (error instanceof DOMException && error.name === "QuotaExceededError") try {
|
|
276
|
+
cleanupDocSearchStorage();
|
|
277
|
+
window.localStorage.setItem(key, JSON.stringify(value));
|
|
278
|
+
} catch (_unused2) {}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Proactively manages localStorage quota by cleaning up when usage is high
|
|
283
|
+
* Should be called periodically to prevent quota exceeded errors.
|
|
284
|
+
*/
|
|
285
|
+
function manageLocalStorageQuota() {
|
|
286
|
+
if (typeof window === "undefined" || !window.localStorage) return;
|
|
287
|
+
if (getLocalStorageSize() > 4 * 1024 * 1024) cleanupDocSearchStorage();
|
|
288
|
+
}
|
|
289
|
+
/** Checks if local storage is available and usable. */
|
|
290
|
+
function isLocalStorageSupported() {
|
|
291
|
+
if (typeof window === "undefined" || !("localStorage" in window)) return false;
|
|
292
|
+
const key = "__TEST_KEY__";
|
|
293
|
+
try {
|
|
294
|
+
window.localStorage.setItem(key, "");
|
|
295
|
+
window.localStorage.removeItem(key);
|
|
296
|
+
return true;
|
|
297
|
+
} catch (_unused3) {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Creates a simple storage interface for arrays using localstorage. Provides
|
|
303
|
+
* basic getitem and setitem functionality. Falls back to a no-op implementation
|
|
304
|
+
* if localstorage is not supported..
|
|
305
|
+
*
|
|
306
|
+
* @template titem The type of items to store.
|
|
307
|
+
* @param key - The localstorage key to use.
|
|
308
|
+
* @returns An object with setitem and getitem methods.
|
|
309
|
+
*/
|
|
310
|
+
function createStorage(key) {
|
|
311
|
+
if (isLocalStorageSupported() === false) return {
|
|
312
|
+
setItem() {},
|
|
313
|
+
getItem() {
|
|
314
|
+
return [];
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
return {
|
|
318
|
+
setItem(item) {
|
|
319
|
+
safeSetLocalStorageItem(key, item);
|
|
320
|
+
},
|
|
321
|
+
getItem() {
|
|
322
|
+
const item = window.localStorage.getItem(key);
|
|
323
|
+
if (item === null) return [];
|
|
324
|
+
try {
|
|
325
|
+
const parsed = JSON.parse(item);
|
|
326
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
327
|
+
} catch (_unused4) {
|
|
328
|
+
window.localStorage.removeItem(key);
|
|
329
|
+
return [];
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
//#endregion
|
|
336
|
+
//#region src/stored-searches.ts
|
|
337
|
+
const _excluded = ["_highlightResult", "_snippetResult"];
|
|
338
|
+
function createStoredSearches({ key, limit = 5 }) {
|
|
339
|
+
const storage = createStorage(key);
|
|
340
|
+
let items = storage.getItem().slice(0, limit);
|
|
341
|
+
return {
|
|
342
|
+
add(item) {
|
|
343
|
+
const _ref = item, { _highlightResult, _snippetResult } = _ref, hit = _objectWithoutProperties(_ref, _excluded);
|
|
344
|
+
const isQueryAlreadySaved = items.findIndex((x) => x.objectID === hit.objectID);
|
|
345
|
+
if (isQueryAlreadySaved > -1) items.splice(isQueryAlreadySaved, 1);
|
|
346
|
+
items.unshift(hit);
|
|
347
|
+
items = items.slice(0, limit);
|
|
348
|
+
storage.setItem(items);
|
|
349
|
+
},
|
|
350
|
+
remove(item) {
|
|
351
|
+
items = items.filter((x) => x.objectID !== item.objectID);
|
|
352
|
+
storage.setItem(items);
|
|
353
|
+
},
|
|
354
|
+
getAll() {
|
|
355
|
+
return items;
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
function createStoredConversations({ key, limit = 5 }) {
|
|
360
|
+
const storage = createStorage(key);
|
|
361
|
+
let items = storage.getItem().slice(0, limit);
|
|
362
|
+
return {
|
|
363
|
+
add(item) {
|
|
364
|
+
const { objectID, query } = item;
|
|
365
|
+
const isQueryAlreadySaved = items.findIndex((x) => x.objectID === objectID || x.query === query);
|
|
366
|
+
if (isQueryAlreadySaved > -1) items[isQueryAlreadySaved] = item;
|
|
367
|
+
else {
|
|
368
|
+
items.unshift(item);
|
|
369
|
+
items = items.slice(0, limit);
|
|
370
|
+
}
|
|
371
|
+
storage.setItem(items);
|
|
372
|
+
},
|
|
373
|
+
/**
|
|
374
|
+
* Record feedback (like/dislike) for a given message id within stored
|
|
375
|
+
* conversations.
|
|
376
|
+
*/
|
|
377
|
+
addFeedback(messageId, feedback, details) {
|
|
378
|
+
const conv = items.find((c) => {
|
|
379
|
+
var _c$messages;
|
|
380
|
+
return (_c$messages = c.messages) === null || _c$messages === void 0 ? void 0 : _c$messages.some((m) => m.id === messageId);
|
|
381
|
+
});
|
|
382
|
+
if (!conv || !conv.messages) return;
|
|
383
|
+
const msg = conv.messages.find((m) => m.id === messageId);
|
|
384
|
+
if (!msg) return;
|
|
385
|
+
msg.feedback = feedback;
|
|
386
|
+
msg.feedbackTags = details === null || details === void 0 ? void 0 : details.tags;
|
|
387
|
+
msg.feedbackNotes = details === null || details === void 0 ? void 0 : details.notes;
|
|
388
|
+
storage.setItem(items);
|
|
389
|
+
},
|
|
390
|
+
getOne(messageId) {
|
|
391
|
+
var _conv$messages;
|
|
392
|
+
const conv = items.find((c) => {
|
|
393
|
+
var _c$messages2;
|
|
394
|
+
return (_c$messages2 = c.messages) === null || _c$messages2 === void 0 ? void 0 : _c$messages2.some((m) => m.id === messageId);
|
|
395
|
+
});
|
|
396
|
+
return conv === null || conv === void 0 || (_conv$messages = conv.messages) === null || _conv$messages === void 0 ? void 0 : _conv$messages.find((m) => m.id === messageId);
|
|
397
|
+
},
|
|
398
|
+
getAll() {
|
|
399
|
+
return items;
|
|
400
|
+
},
|
|
401
|
+
remove(item) {
|
|
402
|
+
items = items.filter((x) => x.objectID !== item.objectID);
|
|
403
|
+
storage.setItem(items);
|
|
404
|
+
},
|
|
405
|
+
getConversation(messageId) {
|
|
406
|
+
const conv = items.find((c) => {
|
|
407
|
+
var _c$messages3;
|
|
408
|
+
return (_c$messages3 = c.messages) === null || _c$messages3 === void 0 ? void 0 : _c$messages3.some((m) => m.id === messageId);
|
|
409
|
+
});
|
|
410
|
+
if (!conv || !conv.messages) return void 0;
|
|
411
|
+
return conv;
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
//#endregion
|
|
417
|
+
//#region src/useSearchClient.ts
|
|
418
|
+
function useSearchClient(appId, apiKey, transformSearchClient) {
|
|
419
|
+
return React.useMemo(() => {
|
|
420
|
+
const client = liteClient(appId, apiKey);
|
|
421
|
+
client.addAlgoliaAgent("docsearch", version);
|
|
422
|
+
if (/docsearch.js \(.*\)/.test(client.transporter.algoliaAgent.value) === false) client.addAlgoliaAgent("docsearch-react", version);
|
|
423
|
+
return transformSearchClient(client);
|
|
424
|
+
}, [
|
|
425
|
+
appId,
|
|
426
|
+
apiKey,
|
|
427
|
+
transformSearchClient
|
|
428
|
+
]);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
//#endregion
|
|
432
|
+
export { AlgoliaLogo as a, SourceIcon as c, _objectDestructuringEmpty as d, RecentIcon as f, manageLocalStorageQuota as i, CloseIcon as l, LoadingIcon as m, createStoredConversations as n, SUGGESTED_QUETIONS_INDEX_NAME as o, SparklesIcon as p, createStoredSearches as r, ContentIcon as s, useSearchClient as t, _extends as u };
|
|
433
|
+
//# sourceMappingURL=useSearchClient-mIHVB6ga.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearchClient-mIHVB6ga.js","names":[],"sources":["../../src/icons/LoadingIcon.tsx","../../src/icons/SparklesIcon.tsx","../../src/icons/RecentIcon.tsx","../../src/icons/CloseIcon.tsx","../../src/icons/SourceIcon.tsx","../../src/constants.ts","../../src/AlgoliaLogo.tsx","../../src/utils/storage.ts","../../src/stored-searches.ts","../../src/useSearchClient.ts"],"sourcesContent":["import React, { type JSX } from 'react';\n\nexport function LoadingIcon({\n className,\n}: {\n className?: string;\n}): JSX.Element {\n return (\n <svg\n viewBox=\"0 0 38 38\"\n className={className}\n stroke=\"currentColor\"\n strokeOpacity=\".5\"\n >\n <g fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(1 1)\" strokeWidth=\"2\">\n <circle strokeOpacity=\".3\" cx=\"18\" cy=\"18\" r=\"18\" />\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </g>\n </g>\n </svg>\n );\n}\n","import React, { type JSX } from 'react';\n\ntype Props = {\n className?: string;\n};\n\nexport function SparklesIcon({ className = '' }: Props): JSX.Element {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`DocSearch-Hit-icon-sparkles ${className}`}\n aria-hidden=\"true\"\n >\n <path d=\"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\" />\n <path d=\"M20 3v4\" />\n <path d=\"M22 5h-4\" />\n <path d=\"M4 17v2\" />\n <path d=\"M5 18H3\" />\n </svg>\n );\n}\n","import React, { type JSX } from 'react';\n\nexport function RecentIcon(): JSX.Element {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n <g\n stroke=\"currentColor\"\n fill=\"none\"\n fillRule=\"evenodd\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0\" />\n <path d=\"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13\" />\n </g>\n </svg>\n );\n}\n","import React, { type JSX } from 'react';\n\nexport function CloseIcon({\n ...props\n}: React.ComponentProps<'svg'>): JSX.Element {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...props}>\n <path\n d=\"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z\"\n stroke=\"currentColor\"\n fill=\"none\"\n fillRule=\"evenodd\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n","import React, { type JSX } from 'react';\n\nconst LvlIcon: React.FC = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n <path d=\"M10 9H8\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </svg>\n );\n};\n\nexport function SourceIcon(props: { type: string }): JSX.Element {\n switch (props.type) {\n case 'lvl1':\n return <LvlIcon />;\n case 'content':\n return <ContentIcon />;\n default:\n return <AnchorIcon />;\n }\n}\n\nfunction AnchorIcon(): JSX.Element {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"4\" x2=\"20\" y1=\"9\" y2=\"9\" />\n <line x1=\"4\" x2=\"20\" y1=\"15\" y2=\"15\" />\n <line x1=\"10\" x2=\"8\" y1=\"3\" y2=\"21\" />\n <line x1=\"16\" x2=\"14\" y1=\"3\" y2=\"21\" />\n </svg>\n );\n}\n\nexport function ContentIcon(): JSX.Element {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10 9 9 9 8 9\" />\n </svg>\n );\n}\n","export const MAX_QUERY_SIZE = 512;\nexport const SUGGESTED_QUETIONS_INDEX_NAME =\n 'algolia_ask_ai_suggested_questions';\n","import React, { type JSX } from 'react';\n\nexport type AlgoliaLogoTranslations = Partial<{\n poweredByText: string;\n}>;\n\ntype AlgoliaLogoProps = {\n translations?: AlgoliaLogoTranslations;\n};\n\nexport function AlgoliaLogo({\n translations = {},\n}: AlgoliaLogoProps): JSX.Element {\n const { poweredByText = 'Powered by' } = translations;\n\n return (\n <a\n href={`https://www.algolia.com/ref/docsearch/?utm_source=${window.location.hostname}&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span className=\"DocSearch-Label\">{poweredByText}</span>\n <svg\n width=\"80\"\n height=\"24\"\n aria-label=\"Algolia\"\n role=\"img\"\n id=\"Layer_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 2196.2 500\"\n >\n <defs>\n <style>\n {'.cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}'}\n </style>\n </defs>\n <path\n className=\"cls-2\"\n d=\"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n />\n <rect\n className=\"cls-1\"\n x=\"1845.88\"\n y=\"104.73\"\n width=\"62.58\"\n height=\"277.9\"\n rx=\"5.9\"\n ry=\"5.9\"\n />\n <path\n className=\"cls-2\"\n d=\"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z\"\n />\n <path\n className=\"cls-2\"\n d=\"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n />\n <path\n className=\"cls-2\"\n d=\"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z\"\n />\n <path\n className=\"cls-2\"\n d=\"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n />\n <path\n className=\"cls-2\"\n d=\"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n />\n <path\n className=\"cls-2\"\n d=\"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z\"\n />\n <path\n className=\"cls-1\"\n d=\"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z\"\n />\n </svg>\n </a>\n );\n}\n","/** Estimates the size of localStorage usage in bytes. */\nexport function getLocalStorageSize(): number {\n if (typeof window === 'undefined' || !window.localStorage) {\n return 0;\n }\n\n let total = 0;\n for (const key in window.localStorage) {\n if (window.localStorage.hasOwnProperty(key)) {\n total += window.localStorage[key].length + key.length;\n }\n }\n return total;\n}\n\n/**\n * Attempts to free up localStorage space by removing DocSearch-related items\n * starting with the oldest/largest ones.\n */\nfunction cleanupDocSearchStorage(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return;\n }\n\n const docSearchKeys: Array<{ key: string; size: number }> = [];\n\n // Find all DocSearch-related keys and their sizes\n for (const key in window.localStorage) {\n if (key.includes('__DOCSEARCH_')) {\n const value = window.localStorage[key];\n docSearchKeys.push({ key, size: value.length + key.length });\n }\n }\n\n // Sort by size (largest first) to remove the most impactful items\n docSearchKeys.sort((a, b) => b.size - a.size);\n\n // Remove up to half of the DocSearch items, starting with the largest\n const itemsToRemove = Math.ceil(docSearchKeys.length / 2);\n for (let i = 0; i < itemsToRemove && i < docSearchKeys.length; i++) {\n try {\n window.localStorage.removeItem(docSearchKeys[i].key);\n } catch {\n // Silently ignore cleanup errors to prevent crashes\n }\n }\n}\n\n/**\n * Safely sets an item in localStorage with quota exceeded error handling.\n *\n * @param key - The localStorage key.\n * @param value - The value to store (will be JSON.stringified).\n */\nfunction safeSetLocalStorageItem(key: string, value: any): void {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n // Handle quota exceeded error by clearing old data and retrying\n if (error instanceof DOMException && error.name === 'QuotaExceededError') {\n try {\n // First, try comprehensive cleanup of DocSearch storage\n cleanupDocSearchStorage();\n // Retry with original data\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // If still failing, silently fail to prevent crashes\n }\n } else {\n // For other localStorage errors, silently fail to prevent crashes\n }\n }\n}\n\n/**\n * Proactively manages localStorage quota by cleaning up when usage is high\n * Should be called periodically to prevent quota exceeded errors.\n */\nexport function manageLocalStorageQuota(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return;\n }\n\n const currentSize = getLocalStorageSize();\n // Typical localStorage limit is 5-10MB, start cleanup at 4MB to be safe\n const CLEANUP_THRESHOLD = 4 * 1024 * 1024; // 4MB\n\n if (currentSize > CLEANUP_THRESHOLD) {\n cleanupDocSearchStorage();\n }\n}\n\n/** Checks if local storage is available and usable. */\nexport function isLocalStorageSupported(): boolean {\n // guard against ssr and browsers where localstorage is disabled\n if (typeof window === 'undefined' || !('localStorage' in window)) {\n return false;\n }\n\n const key = '__TEST_KEY__';\n try {\n window.localStorage.setItem(key, '');\n window.localStorage.removeItem(key);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Creates a simple storage interface for arrays using localstorage. Provides\n * basic getitem and setitem functionality. Falls back to a no-op implementation\n * if localstorage is not supported..\n *\n * @template titem The type of items to store.\n * @param key - The localstorage key to use.\n * @returns An object with setitem and getitem methods.\n */\nexport function createStorage<TItem>(key: string) {\n if (isLocalStorageSupported() === false) {\n return {\n setItem(): void {},\n getItem(): TItem[] {\n return [];\n },\n };\n }\n\n return {\n setItem(item: TItem[]): void {\n safeSetLocalStorageItem(key, item);\n },\n getItem(): TItem[] {\n const item = window.localStorage.getItem(key);\n if (item === null) return [];\n try {\n const parsed = JSON.parse(item);\n return Array.isArray(parsed) ? (parsed as TItem[]) : [];\n } catch {\n // clear corrupted data and return empty list\n window.localStorage.removeItem(key);\n return [];\n }\n },\n };\n}\n\n/**\n * Creates a simple storage interface for a single object using localstorage.\n * Provides basic getitem, setitem, and removeitem functionality. Falls back to\n * a no-op implementation if localstorage is not supported.\n *\n * @template titem The type of the object to store.\n * @param key - The localstorage key to use.\n * @returns An object with setitem, getitem, and removeitem methods.\n */\nexport function createObjectStorage<TItem>(key: string) {\n if (isLocalStorageSupported() === false) {\n return {\n setItem(_item: TItem | null): void {},\n getItem(): TItem | null {\n return null;\n },\n removeItem(): void {},\n };\n }\n\n return {\n setItem(item: TItem | null): void {\n if (item === null) {\n window.localStorage.removeItem(key);\n } else {\n safeSetLocalStorageItem(key, item);\n }\n },\n getItem(): TItem | null {\n const item = window.localStorage.getItem(key);\n try {\n return item ? (JSON.parse(item) as TItem) : null;\n } catch {\n // handle potential JSON parsing errors, e.g., corrupted data\n window.localStorage.removeItem(key); // clear corrupted data\n return null;\n }\n },\n removeItem(): void {\n window.localStorage.removeItem(key);\n },\n };\n}\n","import type {\n AskAiFeedbackReason,\n DocSearchHit,\n StoredAskAiState,\n StoredDocSearchHit,\n StoredAskAiMessage,\n} from './types';\nimport { createStorage } from './utils/storage';\n\nexport type StoredFeedbackDetails = {\n tags?: AskAiFeedbackReason[];\n notes?: string;\n};\n\ntype CreateStoredSearchesOptions = {\n key: string;\n limit?: number;\n};\n\nexport type StoredSearchPlugin<TItem> = {\n add: (item: TItem) => void;\n remove: (item: TItem) => void;\n getAll: () => TItem[];\n addFeedback?: (\n messageId: string,\n feedback: 'dislike' | 'like',\n details?: StoredFeedbackDetails\n ) => void;\n getOne?: (messageId: string) => StoredAskAiMessage | undefined;\n getConversation?: (messageId: string) => TItem | undefined;\n};\n\nexport function createStoredSearches<TItem extends StoredDocSearchHit>({\n key,\n limit = 5,\n}: CreateStoredSearchesOptions): StoredSearchPlugin<TItem> {\n const storage = createStorage<TItem>(key);\n let items = storage.getItem().slice(0, limit);\n\n return {\n add(item: TItem): void {\n const { _highlightResult, _snippetResult, ...hit } =\n item as unknown as DocSearchHit;\n\n const isQueryAlreadySaved = items.findIndex(\n (x) => x.objectID === hit.objectID\n );\n\n if (isQueryAlreadySaved > -1) {\n items.splice(isQueryAlreadySaved, 1);\n }\n\n items.unshift(hit as TItem);\n items = items.slice(0, limit);\n\n storage.setItem(items);\n },\n remove(item: TItem): void {\n items = items.filter((x) => x.objectID !== item.objectID);\n\n storage.setItem(items);\n },\n getAll(): TItem[] {\n return items;\n },\n };\n}\n\nexport function createStoredConversations<TItem extends StoredAskAiState>({\n key,\n limit = 5,\n}: CreateStoredSearchesOptions): StoredSearchPlugin<TItem> {\n const storage = createStorage<TItem>(key);\n let items = storage.getItem().slice(0, limit);\n\n return {\n add(item: TItem): void {\n const { objectID, query } = item;\n\n // check if this query is already saved\n const isQueryAlreadySaved = items.findIndex(\n (x) => x.objectID === objectID || x.query === query\n );\n\n if (isQueryAlreadySaved > -1) {\n items[isQueryAlreadySaved] = item;\n } else {\n items.unshift(item);\n items = items.slice(0, limit);\n }\n\n storage.setItem(items);\n },\n /**\n * Record feedback (like/dislike) for a given message id within stored\n * conversations.\n */\n addFeedback(\n messageId: string,\n feedback: 'dislike' | 'like',\n details?: StoredFeedbackDetails\n ): void {\n const conv = items.find((c) =>\n c.messages?.some((m) => m.id === messageId)\n );\n if (!conv || !conv.messages) return;\n\n const msg = conv.messages.find((m) => m.id === messageId) as\n | StoredAskAiMessage\n | undefined;\n if (!msg) return;\n\n msg.feedback = feedback;\n msg.feedbackTags = details?.tags;\n msg.feedbackNotes = details?.notes;\n\n storage.setItem(items);\n },\n getOne(messageId: string): StoredAskAiMessage | undefined {\n const conv = items.find((c) =>\n c.messages?.some((m) => m.id === messageId)\n );\n return conv?.messages?.find((m) => m.id === messageId);\n },\n getAll(): TItem[] {\n return items;\n },\n remove(item: TItem): void {\n items = items.filter((x) => x.objectID !== item.objectID);\n\n storage.setItem(items);\n },\n getConversation(messageId: string): TItem | undefined {\n const conv = items.find((c) =>\n c.messages?.some((m) => m.id === messageId)\n );\n\n if (!conv || !conv.messages) return undefined;\n\n return conv;\n },\n };\n}\n","import { liteClient } from 'algoliasearch/lite';\nimport React from 'react';\n\nimport type { DocSearchTransformClient } from './DocSearch';\nimport { version } from './version';\n\nexport function useSearchClient(\n appId: string,\n apiKey: string,\n transformSearchClient: (\n searchClient: DocSearchTransformClient\n ) => DocSearchTransformClient\n): DocSearchTransformClient {\n const searchClient = React.useMemo(() => {\n const client = liteClient(appId, apiKey);\n client.addAlgoliaAgent('docsearch', version);\n\n // Since DocSearch.js relies on DocSearch React with an alias to Preact,\n // we cannot add the `docsearch-react` user agent by default, otherwise\n // it would also be sent on a DocSearch.js integration.\n // We therefore only add the `docsearch-react` user agent if `docsearch.js`\n // is not present.\n if (\n /docsearch.js \\(.*\\)/.test(client.transporter.algoliaAgent.value) ===\n false\n ) {\n client.addAlgoliaAgent('docsearch-react', version);\n }\n\n return transformSearchClient(client);\n }, [appId, apiKey, transformSearchClient]);\n\n return searchClient;\n}\n"],"mappings":"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"}
|