@searchcraft/react-sdk 0.1.1 → 0.1.2
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/index.js +128 -128
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx as n, jsxs as u, Fragment as k } from "react/jsx-runtime";
|
|
2
2
|
import Q, { useState as g, useContext as Z, useEffect as K } from "react";
|
|
3
|
-
var U = Object.defineProperty, H = (t,
|
|
3
|
+
var U = Object.defineProperty, H = (t, a, o) => a in t ? U(t, a, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[a] = o, N = (t, a, o) => H(t, typeof a != "symbol" ? a + "" : a, o);
|
|
4
4
|
class Jn {
|
|
5
|
-
constructor(
|
|
6
|
-
if (N(this, "config"), N(this, "search", async (
|
|
5
|
+
constructor(a) {
|
|
6
|
+
if (N(this, "config"), N(this, "search", async (o) => {
|
|
7
7
|
try {
|
|
8
|
-
const
|
|
9
|
-
query:
|
|
10
|
-
mode:
|
|
11
|
-
app:
|
|
12
|
-
},
|
|
8
|
+
const s = this.config.index.join(","), i = `${this.config.endpointURL}/search`, r = {
|
|
9
|
+
query: o.query,
|
|
10
|
+
mode: o.mode,
|
|
11
|
+
app: s
|
|
12
|
+
}, e = {
|
|
13
13
|
method: "POST",
|
|
14
14
|
headers: {
|
|
15
15
|
"Content-Type": "application/json",
|
|
@@ -18,13 +18,13 @@ class Jn {
|
|
|
18
18
|
},
|
|
19
19
|
body: JSON.stringify(r)
|
|
20
20
|
};
|
|
21
|
-
return await (await fetch(
|
|
22
|
-
} catch (
|
|
23
|
-
return
|
|
21
|
+
return await (await fetch(i, e)).json();
|
|
22
|
+
} catch (s) {
|
|
23
|
+
return s;
|
|
24
24
|
}
|
|
25
|
-
}), !
|
|
25
|
+
}), !a.endpointURL || !a.index)
|
|
26
26
|
throw new Error("Endpoint URL and Index value(s) must be provided");
|
|
27
|
-
this.config =
|
|
27
|
+
this.config = a;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
const J = {
|
|
@@ -37,21 +37,21 @@ const J = {
|
|
|
37
37
|
search: async () => null
|
|
38
38
|
}, F = Q.createContext(J), Gn = ({
|
|
39
39
|
children: t,
|
|
40
|
-
searchcraft:
|
|
40
|
+
searchcraft: a
|
|
41
41
|
}) => {
|
|
42
|
-
const [
|
|
42
|
+
const [o, s] = g(""), [i, r] = g(!1), [e, l] = g(null), c = async () => {
|
|
43
43
|
r(!0);
|
|
44
|
-
const _ = await
|
|
44
|
+
const _ = await a.search({ query: o, mode: "fuzzy" });
|
|
45
45
|
l(_), r(!1);
|
|
46
46
|
}, h = {
|
|
47
47
|
error: null,
|
|
48
|
-
index:
|
|
49
|
-
isRequesting:
|
|
48
|
+
index: a.config.index,
|
|
49
|
+
isRequesting: i,
|
|
50
50
|
mode: "fuzzy",
|
|
51
|
-
query:
|
|
51
|
+
query: o,
|
|
52
52
|
search: c,
|
|
53
|
-
searchResults:
|
|
54
|
-
setQuery:
|
|
53
|
+
searchResults: e,
|
|
54
|
+
setQuery: s
|
|
55
55
|
};
|
|
56
56
|
return /* @__PURE__ */ n(F.Provider, { value: h, children: t });
|
|
57
57
|
}, v = () => Z(F), G = "_formLTR_dvuqa_5", V = "_formRTL_dvuqa_9", X = "_searchContainer_dvuqa_13", L = {
|
|
@@ -70,57 +70,57 @@ var D = { exports: {} };
|
|
|
70
70
|
*/
|
|
71
71
|
(function(t) {
|
|
72
72
|
(function() {
|
|
73
|
-
var
|
|
74
|
-
function
|
|
75
|
-
for (var r = "",
|
|
76
|
-
var l = arguments[
|
|
77
|
-
l && (r =
|
|
73
|
+
var a = {}.hasOwnProperty;
|
|
74
|
+
function o() {
|
|
75
|
+
for (var r = "", e = 0; e < arguments.length; e++) {
|
|
76
|
+
var l = arguments[e];
|
|
77
|
+
l && (r = i(r, s(l)));
|
|
78
78
|
}
|
|
79
79
|
return r;
|
|
80
80
|
}
|
|
81
|
-
function
|
|
81
|
+
function s(r) {
|
|
82
82
|
if (typeof r == "string" || typeof r == "number")
|
|
83
83
|
return r;
|
|
84
84
|
if (typeof r != "object")
|
|
85
85
|
return "";
|
|
86
86
|
if (Array.isArray(r))
|
|
87
|
-
return
|
|
87
|
+
return o.apply(null, r);
|
|
88
88
|
if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
|
|
89
89
|
return r.toString();
|
|
90
|
-
var
|
|
90
|
+
var e = "";
|
|
91
91
|
for (var l in r)
|
|
92
|
-
|
|
93
|
-
return
|
|
92
|
+
a.call(r, l) && r[l] && (e = i(e, l));
|
|
93
|
+
return e;
|
|
94
94
|
}
|
|
95
|
-
function
|
|
96
|
-
return
|
|
95
|
+
function i(r, e) {
|
|
96
|
+
return e ? r ? r + " " + e : r + e : r;
|
|
97
97
|
}
|
|
98
|
-
t.exports ? (
|
|
98
|
+
t.exports ? (o.default = o, t.exports = o) : window.classNames = o;
|
|
99
99
|
})();
|
|
100
100
|
})(D);
|
|
101
101
|
var O = D.exports;
|
|
102
|
-
const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRight_8jqm2_26", en = "_spinnerMarginLeft_8jqm2_32", rn = "_buttonLabel_8jqm2_38",
|
|
102
|
+
const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRight_8jqm2_26", en = "_spinnerMarginLeft_8jqm2_32", rn = "_buttonLabel_8jqm2_38", an = "_rightandback_8jqm2_1", b = {
|
|
103
103
|
button: nn,
|
|
104
104
|
spinnerMarginRight: tn,
|
|
105
105
|
spinnerMarginLeft: en,
|
|
106
106
|
buttonLabel: rn,
|
|
107
|
-
rightandback:
|
|
108
|
-
},
|
|
109
|
-
spinnerContainer:
|
|
110
|
-
spinnerDark:
|
|
107
|
+
rightandback: an
|
|
108
|
+
}, on = "_spinnerContainer_1noam_1", sn = "_spinnerDark_1noam_7", cn = "_spinning_1noam_1", ln = "_spinnerLight_1noam_16", S = {
|
|
109
|
+
spinnerContainer: on,
|
|
110
|
+
spinnerDark: sn,
|
|
111
111
|
spinning: cn,
|
|
112
112
|
spinnerLight: ln
|
|
113
113
|
}, x = () => /* @__PURE__ */ n("div", { className: S.spinnerContainer, children: /* @__PURE__ */ n("div", { className: S.spinnerLight }) }), I = () => /* @__PURE__ */ n("div", { className: S.spinnerContainer, children: /* @__PURE__ */ n("div", { className: S.spinnerDark }) }), w = ({
|
|
114
114
|
className: t,
|
|
115
|
-
iconElement:
|
|
116
|
-
iconOnly:
|
|
117
|
-
iconPosition:
|
|
118
|
-
label:
|
|
115
|
+
iconElement: a,
|
|
116
|
+
iconOnly: o = !1,
|
|
117
|
+
iconPosition: s = "left",
|
|
118
|
+
label: i = "Search",
|
|
119
119
|
onClick: r
|
|
120
120
|
}) => {
|
|
121
|
-
const { isRequesting:
|
|
121
|
+
const { isRequesting: e } = v();
|
|
122
122
|
return /* @__PURE__ */ u(k, { children: [
|
|
123
|
-
|
|
123
|
+
o && /* @__PURE__ */ n(
|
|
124
124
|
"button",
|
|
125
125
|
{
|
|
126
126
|
className: p(
|
|
@@ -130,10 +130,10 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
130
130
|
),
|
|
131
131
|
onClick: r,
|
|
132
132
|
type: "submit",
|
|
133
|
-
children:
|
|
133
|
+
children: e ? /* @__PURE__ */ n(I, {}) : a
|
|
134
134
|
}
|
|
135
135
|
),
|
|
136
|
-
!
|
|
136
|
+
!o && /* @__PURE__ */ u(
|
|
137
137
|
"button",
|
|
138
138
|
{
|
|
139
139
|
className: p(
|
|
@@ -144,26 +144,26 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
144
144
|
onClick: r,
|
|
145
145
|
type: "submit",
|
|
146
146
|
children: [
|
|
147
|
-
|
|
147
|
+
s === "left" && e ? /* @__PURE__ */ n("div", { className: b.spinnerMarginRight, children: /* @__PURE__ */ n(I, {}) }) : a,
|
|
148
148
|
/* @__PURE__ */ n(
|
|
149
149
|
"span",
|
|
150
150
|
{
|
|
151
151
|
className: p(
|
|
152
|
-
|
|
152
|
+
e && b.buttonLabel,
|
|
153
153
|
t,
|
|
154
154
|
".searchcraft-button-label"
|
|
155
155
|
),
|
|
156
|
-
children:
|
|
156
|
+
children: i
|
|
157
157
|
}
|
|
158
158
|
),
|
|
159
|
-
|
|
159
|
+
s === "right" && e ? /* @__PURE__ */ n("div", { className: b.spinnerMarginLeft, children: /* @__PURE__ */ n(I, {}) }) : a
|
|
160
160
|
]
|
|
161
161
|
}
|
|
162
162
|
)
|
|
163
163
|
] });
|
|
164
164
|
}, un = "_errorMessage_12dc9_5", pn = {
|
|
165
165
|
errorMessage: un
|
|
166
|
-
}, hn = ({ className: t, errorMessage:
|
|
166
|
+
}, hn = ({ className: t, errorMessage: a }) => /* @__PURE__ */ n("p", { className: p(pn.errorMessage, t), children: a || "Search term is required." }), dn = "_inputContainerLTR_s1rq8_5", _n = "_inputContainerRTL_s1rq8_9", Cn = "_inputLTR_s1rq8_14", fn = "_inputRTL_s1rq8_35", mn = "_inputErrorLTR_s1rq8_57", Ln = "_inputErrorRTL_s1rq8_82", m = {
|
|
167
167
|
inputContainerLTR: dn,
|
|
168
168
|
inputContainerRTL: _n,
|
|
169
169
|
inputLTR: Cn,
|
|
@@ -199,10 +199,10 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
199
199
|
)
|
|
200
200
|
] }), B = ({
|
|
201
201
|
onClearInput: t,
|
|
202
|
-
rightToLeftOrientation:
|
|
202
|
+
rightToLeftOrientation: a = !1
|
|
203
203
|
}) => {
|
|
204
|
-
const { isRequesting:
|
|
205
|
-
return
|
|
204
|
+
const { isRequesting: o } = v();
|
|
205
|
+
return a ? /* @__PURE__ */ n(
|
|
206
206
|
"button",
|
|
207
207
|
{
|
|
208
208
|
className: p(
|
|
@@ -211,7 +211,7 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
211
211
|
),
|
|
212
212
|
onClick: t,
|
|
213
213
|
type: "button",
|
|
214
|
-
children:
|
|
214
|
+
children: o ? /* @__PURE__ */ n(x, {}) : /* @__PURE__ */ n(M, {})
|
|
215
215
|
}
|
|
216
216
|
) : /* @__PURE__ */ n(
|
|
217
217
|
"button",
|
|
@@ -222,7 +222,7 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
222
222
|
),
|
|
223
223
|
onClick: t,
|
|
224
224
|
type: "button",
|
|
225
|
-
children:
|
|
225
|
+
children: o ? /* @__PURE__ */ n(x, {}) : /* @__PURE__ */ n(M, {})
|
|
226
226
|
}
|
|
227
227
|
);
|
|
228
228
|
}, gn = "_inputCaptionLTR_xoy9r_5", vn = "_inputCaptionErrorLTR_xoy9r_14", Tn = "_inputCaptionRTL_xoy9r_24", yn = "_inputCaptionErrorRTL_xoy9r_34", T = {
|
|
@@ -232,26 +232,26 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
232
232
|
inputCaptionErrorRTL: yn
|
|
233
233
|
}, j = ({
|
|
234
234
|
error: t = !1,
|
|
235
|
-
inputCaptionClassName:
|
|
236
|
-
inputCaptionValue:
|
|
237
|
-
rightToLeftOrientation:
|
|
238
|
-
}) =>
|
|
235
|
+
inputCaptionClassName: a,
|
|
236
|
+
inputCaptionValue: o = "Enter Search",
|
|
237
|
+
rightToLeftOrientation: s = !1
|
|
238
|
+
}) => s ? /* @__PURE__ */ n(
|
|
239
239
|
"p",
|
|
240
240
|
{
|
|
241
241
|
className: p(
|
|
242
242
|
t ? T.inputCaptionErrorRTL : T.inputCaptionRTL,
|
|
243
|
-
|
|
243
|
+
a
|
|
244
244
|
),
|
|
245
|
-
children:
|
|
245
|
+
children: o
|
|
246
246
|
}
|
|
247
247
|
) : /* @__PURE__ */ n(
|
|
248
248
|
"p",
|
|
249
249
|
{
|
|
250
250
|
className: p(
|
|
251
251
|
t ? T.inputCaptionErrorLTR : T.inputCaptionLTR,
|
|
252
|
-
|
|
252
|
+
a
|
|
253
253
|
),
|
|
254
|
-
children:
|
|
254
|
+
children: o
|
|
255
255
|
}
|
|
256
256
|
), Sn = "_inputIconLTR_cusap_5", In = "_inputIconRTL_cusap_13", y = {
|
|
257
257
|
inputIconLTR: Sn,
|
|
@@ -282,27 +282,27 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
282
282
|
)
|
|
283
283
|
] }), $ = ({
|
|
284
284
|
error: t = !1,
|
|
285
|
-
rightToLeftOrientation:
|
|
285
|
+
rightToLeftOrientation: a = !1
|
|
286
286
|
}) => t ? /* @__PURE__ */ n(
|
|
287
287
|
"div",
|
|
288
288
|
{
|
|
289
|
-
className:
|
|
289
|
+
className: a ? y.inputIconRTL : y.inputIconLTR,
|
|
290
290
|
children: /* @__PURE__ */ n(Nn, {})
|
|
291
291
|
}
|
|
292
292
|
) : /* @__PURE__ */ n(
|
|
293
293
|
"div",
|
|
294
294
|
{
|
|
295
|
-
className:
|
|
295
|
+
className: a ? y.inputIconRTL : y.inputIconLTR,
|
|
296
296
|
children: /* @__PURE__ */ n(kn, {})
|
|
297
297
|
}
|
|
298
298
|
), A = ({
|
|
299
299
|
error: t = !1,
|
|
300
|
-
formClassName:
|
|
301
|
-
inputCaptionClassName:
|
|
302
|
-
inputClassName:
|
|
303
|
-
inputCaptionValue:
|
|
300
|
+
formClassName: a = "",
|
|
301
|
+
inputCaptionClassName: o = "",
|
|
302
|
+
inputClassName: s = "",
|
|
303
|
+
inputCaptionValue: i = "",
|
|
304
304
|
onClearInput: r,
|
|
305
|
-
onSearchInputChange:
|
|
305
|
+
onSearchInputChange: e,
|
|
306
306
|
placeholderValue: l = "Enter Search",
|
|
307
307
|
rightToLeftOrientation: c = !1,
|
|
308
308
|
query: h = ""
|
|
@@ -313,7 +313,7 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
313
313
|
{
|
|
314
314
|
className: p(
|
|
315
315
|
_,
|
|
316
|
-
|
|
316
|
+
a,
|
|
317
317
|
"searchcraft-input-form"
|
|
318
318
|
),
|
|
319
319
|
children: c ? /* @__PURE__ */ u(k, { children: [
|
|
@@ -322,21 +322,21 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
322
322
|
{
|
|
323
323
|
className: p(
|
|
324
324
|
t ? m.inputErrorRTL : m.inputRTL,
|
|
325
|
-
|
|
325
|
+
s,
|
|
326
326
|
"searchcraft-input"
|
|
327
327
|
),
|
|
328
328
|
id: "searchcraft-input-id",
|
|
329
|
-
onChange:
|
|
329
|
+
onChange: e,
|
|
330
330
|
placeholder: l,
|
|
331
331
|
type: "text",
|
|
332
332
|
value: h
|
|
333
333
|
}
|
|
334
334
|
),
|
|
335
|
-
|
|
335
|
+
i && /* @__PURE__ */ n(
|
|
336
336
|
j,
|
|
337
337
|
{
|
|
338
|
-
inputCaptionClassName:
|
|
339
|
-
inputCaptionValue:
|
|
338
|
+
inputCaptionClassName: o,
|
|
339
|
+
inputCaptionValue: i,
|
|
340
340
|
rightToLeftOrientation: c
|
|
341
341
|
}
|
|
342
342
|
),
|
|
@@ -360,21 +360,21 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
360
360
|
{
|
|
361
361
|
className: p(
|
|
362
362
|
t ? m.inputErrorLTR : m.inputLTR,
|
|
363
|
-
|
|
363
|
+
s,
|
|
364
364
|
"searchcraft-input"
|
|
365
365
|
),
|
|
366
366
|
id: "searchcraft-input-id",
|
|
367
|
-
onChange:
|
|
367
|
+
onChange: e,
|
|
368
368
|
placeholder: l,
|
|
369
369
|
type: "text",
|
|
370
370
|
value: h
|
|
371
371
|
}
|
|
372
372
|
),
|
|
373
|
-
|
|
373
|
+
i && /* @__PURE__ */ n(
|
|
374
374
|
j,
|
|
375
375
|
{
|
|
376
|
-
inputCaptionClassName:
|
|
377
|
-
inputCaptionValue:
|
|
376
|
+
inputCaptionClassName: o,
|
|
377
|
+
inputCaptionValue: i,
|
|
378
378
|
rightToLeftOrientation: c
|
|
379
379
|
}
|
|
380
380
|
),
|
|
@@ -393,45 +393,45 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
393
393
|
label: xn
|
|
394
394
|
}, z = ({
|
|
395
395
|
className: t,
|
|
396
|
-
label:
|
|
396
|
+
label: a = "Enter Search"
|
|
397
397
|
}) => /* @__PURE__ */ n(
|
|
398
398
|
"label",
|
|
399
399
|
{
|
|
400
400
|
className: p(wn.label, t),
|
|
401
401
|
htmlFor: "searchcraft-input-id",
|
|
402
|
-
children:
|
|
402
|
+
children: a
|
|
403
403
|
}
|
|
404
404
|
), Vn = ({
|
|
405
405
|
errorMessage: t,
|
|
406
|
-
handleSubmit:
|
|
407
|
-
labelForInput:
|
|
408
|
-
placeholderValue:
|
|
409
|
-
rightToLeftOrientation:
|
|
406
|
+
handleSubmit: a,
|
|
407
|
+
labelForInput: o = "Search",
|
|
408
|
+
placeholderValue: s = "Enter Search Term",
|
|
409
|
+
rightToLeftOrientation: i = !1
|
|
410
410
|
}) => {
|
|
411
|
-
const { query: r, setQuery:
|
|
412
|
-
C.preventDefault(), r.trim() === "" ? c(!0) : (c(!1),
|
|
413
|
-
}, _ = (C) =>
|
|
411
|
+
const { query: r, setQuery: e } = v(), [l, c] = g(!1), h = (C) => {
|
|
412
|
+
C.preventDefault(), r.trim() === "" ? c(!0) : (c(!1), a(r));
|
|
413
|
+
}, _ = (C) => e(C.target.value), f = () => e("");
|
|
414
414
|
return /* @__PURE__ */ u(
|
|
415
415
|
"form",
|
|
416
416
|
{
|
|
417
|
-
className:
|
|
417
|
+
className: i ? L.formRTL : L.formLTR,
|
|
418
418
|
onSubmit: h,
|
|
419
419
|
children: [
|
|
420
|
-
/* @__PURE__ */ n(z, { label:
|
|
420
|
+
/* @__PURE__ */ n(z, { label: o }),
|
|
421
421
|
/* @__PURE__ */ u("div", { className: L.searchContainer, children: [
|
|
422
|
-
|
|
422
|
+
i && /* @__PURE__ */ n(w, {}),
|
|
423
423
|
/* @__PURE__ */ n(
|
|
424
424
|
A,
|
|
425
425
|
{
|
|
426
426
|
error: l,
|
|
427
427
|
onClearInput: f,
|
|
428
428
|
onSearchInputChange: _,
|
|
429
|
-
placeholderValue:
|
|
429
|
+
placeholderValue: s,
|
|
430
430
|
query: r,
|
|
431
|
-
rightToLeftOrientation:
|
|
431
|
+
rightToLeftOrientation: i
|
|
432
432
|
}
|
|
433
433
|
),
|
|
434
|
-
!
|
|
434
|
+
!i && /* @__PURE__ */ n(w, {})
|
|
435
435
|
] }),
|
|
436
436
|
l && /* @__PURE__ */ n(hn, { errorMessage: t })
|
|
437
437
|
]
|
|
@@ -439,27 +439,27 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
439
439
|
);
|
|
440
440
|
}, Xn = ({
|
|
441
441
|
autoSearchFormClass: t = "",
|
|
442
|
-
handleSubmit:
|
|
443
|
-
inputCaptionValue:
|
|
444
|
-
labelForInput:
|
|
445
|
-
onClearedInput:
|
|
442
|
+
handleSubmit: a,
|
|
443
|
+
inputCaptionValue: o = "",
|
|
444
|
+
labelForInput: s = "Search",
|
|
445
|
+
onClearedInput: i = () => {
|
|
446
446
|
},
|
|
447
447
|
placeholderValue: r = "Search here",
|
|
448
|
-
rightToLeftOrientation:
|
|
448
|
+
rightToLeftOrientation: e = !1,
|
|
449
449
|
searchContainerClass: l = ""
|
|
450
450
|
}) => {
|
|
451
451
|
const { query: c, setQuery: h } = v(), [_, f] = g(!1), C = (R) => {
|
|
452
452
|
R.preventDefault(), h(R.currentTarget.value), c !== R.currentTarget.value && f(!0);
|
|
453
453
|
}, P = () => {
|
|
454
|
-
h(""),
|
|
454
|
+
h(""), i();
|
|
455
455
|
};
|
|
456
456
|
K(() => {
|
|
457
457
|
if (_)
|
|
458
|
-
|
|
458
|
+
a(c), f(!1);
|
|
459
459
|
else
|
|
460
460
|
return;
|
|
461
|
-
}, [_,
|
|
462
|
-
const W =
|
|
461
|
+
}, [_, a, c]);
|
|
462
|
+
const W = e ? L.formRTL : L.formLTR;
|
|
463
463
|
return /* @__PURE__ */ u(
|
|
464
464
|
"form",
|
|
465
465
|
{
|
|
@@ -472,7 +472,7 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
472
472
|
R.preventDefault();
|
|
473
473
|
},
|
|
474
474
|
children: [
|
|
475
|
-
/* @__PURE__ */ n(z, { label:
|
|
475
|
+
/* @__PURE__ */ n(z, { label: s }),
|
|
476
476
|
/* @__PURE__ */ n(
|
|
477
477
|
"div",
|
|
478
478
|
{
|
|
@@ -484,12 +484,12 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
484
484
|
children: /* @__PURE__ */ n(
|
|
485
485
|
A,
|
|
486
486
|
{
|
|
487
|
-
inputCaptionValue:
|
|
487
|
+
inputCaptionValue: o,
|
|
488
488
|
onClearInput: P,
|
|
489
489
|
onSearchInputChange: C,
|
|
490
490
|
placeholderValue: r,
|
|
491
491
|
query: c,
|
|
492
|
-
rightToLeftOrientation:
|
|
492
|
+
rightToLeftOrientation: e
|
|
493
493
|
}
|
|
494
494
|
)
|
|
495
495
|
}
|
|
@@ -524,14 +524,14 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
524
524
|
}, Qn = ({
|
|
525
525
|
buttonCallbackFn: t = () => {
|
|
526
526
|
},
|
|
527
|
-
buttonLabel:
|
|
528
|
-
callbackFn:
|
|
527
|
+
buttonLabel: a = "",
|
|
528
|
+
callbackFn: o = () => {
|
|
529
529
|
},
|
|
530
|
-
keyDownCallbackFn:
|
|
530
|
+
keyDownCallbackFn: s = () => {
|
|
531
531
|
},
|
|
532
|
-
imageAltText:
|
|
532
|
+
imageAltText: i = "",
|
|
533
533
|
interactiveResult: r = !1,
|
|
534
|
-
imageSrc:
|
|
534
|
+
imageSrc: e = "",
|
|
535
535
|
resultBodyContent: l = "",
|
|
536
536
|
resultHeading: c = "",
|
|
537
537
|
resultSubheading: h = ""
|
|
@@ -540,7 +540,7 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
540
540
|
C.stopPropagation(), t();
|
|
541
541
|
}, f = () => {
|
|
542
542
|
if (r)
|
|
543
|
-
|
|
543
|
+
o();
|
|
544
544
|
else
|
|
545
545
|
return;
|
|
546
546
|
};
|
|
@@ -550,10 +550,10 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
550
550
|
className: r ? d.interactiveResultContainer : d.resultContainer,
|
|
551
551
|
id: "searchcraft-item",
|
|
552
552
|
onClick: f,
|
|
553
|
-
onKeyDown:
|
|
553
|
+
onKeyDown: s,
|
|
554
554
|
children: [
|
|
555
555
|
r && /* @__PURE__ */ n("div", { className: d.interactiveIconLarge, children: /* @__PURE__ */ n(q, {}) }),
|
|
556
|
-
/* @__PURE__ */ n("div", { className: d.imageContainer, children: /* @__PURE__ */ n("img", { alt:
|
|
556
|
+
/* @__PURE__ */ n("div", { className: d.imageContainer, children: /* @__PURE__ */ n("img", { alt: i, className: d.image, src: e }) }),
|
|
557
557
|
/* @__PURE__ */ u("div", { className: d.contentContainer, children: [
|
|
558
558
|
/* @__PURE__ */ u("h2", { className: d.heading, children: [
|
|
559
559
|
c,
|
|
@@ -564,7 +564,7 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
564
564
|
/* @__PURE__ */ n("p", { className: d.bodyContent, children: l }),
|
|
565
565
|
/* @__PURE__ */ u("button", { className: d.button, onClick: _, type: "button", children: [
|
|
566
566
|
/* @__PURE__ */ n(En, {}),
|
|
567
|
-
/* @__PURE__ */ n("span", { children:
|
|
567
|
+
/* @__PURE__ */ n("span", { children: a })
|
|
568
568
|
] })
|
|
569
569
|
] })
|
|
570
570
|
]
|
|
@@ -573,10 +573,10 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
573
573
|
}, Zn = "_resultsContainer_pfxt4_5", Kn = {
|
|
574
574
|
resultsContainer: Zn
|
|
575
575
|
}, Yn = () => {
|
|
576
|
-
var
|
|
576
|
+
var a, o, s;
|
|
577
577
|
const { searchResults: t } = v();
|
|
578
|
-
return /* @__PURE__ */ n("div", { className: Kn.resultsContainer, children: t != null &&
|
|
579
|
-
const { doc:
|
|
578
|
+
return /* @__PURE__ */ n("div", { className: Kn.resultsContainer, children: (a = t == null ? void 0 : t.data) != null && a.hits ? (s = (o = t == null ? void 0 : t.data) == null ? void 0 : o.hits) == null ? void 0 : s.map((i, r) => {
|
|
579
|
+
const { doc: e } = i;
|
|
580
580
|
return /* @__PURE__ */ n(
|
|
581
581
|
Qn,
|
|
582
582
|
{
|
|
@@ -588,12 +588,12 @@ const p = /* @__PURE__ */ Y(O), nn = "_button_8jqm2_5", tn = "_spinnerMarginRigh
|
|
|
588
588
|
console.log("interactive");
|
|
589
589
|
},
|
|
590
590
|
interactiveResult: !0,
|
|
591
|
-
imageSrc:
|
|
592
|
-
resultBodyContent:
|
|
593
|
-
resultHeading:
|
|
594
|
-
resultSubheading:
|
|
591
|
+
imageSrc: e == null ? void 0 : e.poster,
|
|
592
|
+
resultBodyContent: e == null ? void 0 : e.overview,
|
|
593
|
+
resultHeading: e == null ? void 0 : e.title,
|
|
594
|
+
resultSubheading: e == null ? void 0 : e.release_date
|
|
595
595
|
},
|
|
596
|
-
`${
|
|
596
|
+
`${e == null ? void 0 : e.id}-${r}`
|
|
597
597
|
);
|
|
598
598
|
}) : /* @__PURE__ */ n("div", { children: "no results found" }) });
|
|
599
599
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../core-sdk/dist/index.js","../src/components/providers/SearchcraftContext.tsx","../src/components/providers/SearchcraftProvider.tsx","../../../node_modules/classnames/index.js","../src/components/ui/components/Spinner/index.tsx","../src/components/ui/components/Button/index.tsx","../src/components/ui/components/ErrorMessage/index.tsx","../src/components/ui/assets/ClearInputIcon.jsx","../src/components/ui/components/ClearInputButton/index.tsx","../src/components/ui/components/InputCaption/index.tsx","../src/components/ui/assets/SearchIcons.jsx","../src/components/ui/components/InputIcon/index.tsx","../src/components/ui/components/Input/index.tsx","../src/components/ui/components/InputLabel/index.tsx","../src/components/ui/BaseSearchForm/index.tsx","../src/components/ui/AutoSearchForm/index.tsx","../src/components/ui/assets/ButtonIcons.jsx","../src/components/ui/BaseSearchResult/index.tsx","../src/components/ui/BaseSearchResults/index.tsx"],"sourcesContent":["var c = Object.defineProperty;\nvar d = (n, e, t) => e in n ? c(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar o = (n, e, t) => d(n, typeof e != \"symbol\" ? e + \"\" : e, t);\nclass p {\n constructor(e) {\n o(this, \"config\");\n /**\n * @param {string} query - User provided value Searchcraft will use to search against\n * @param {string} mode - Can be either 'fuzzy' or 'normal'\n * @returns {SearchResult} - Returns a `SearchResponse` object with the results from the search or throws an error\n */\n o(this, \"search\", async (e) => {\n try {\n const t = this.config.index.join(\",\"), i = `${this.config.endpointURL}/index/${t}/search`, r = {\n query: e.query,\n mode: e.mode,\n app: this.config.index\n }, s = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: this.config.apiKey ? `${this.config.apiKey}` : \"\"\n },\n body: JSON.stringify(r)\n };\n return await (await fetch(i, s)).json();\n } catch (t) {\n return t;\n }\n });\n if (!e.endpointURL || !e.index)\n throw new Error(\"Endpoint URL and Index value(s) must be provided\");\n this.config = e;\n }\n}\nexport {\n p as CoreSDK\n};\n//# sourceMappingURL=index.js.map\n","import React from 'react';\n\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst defaultContext: SearchcraftProviderContext = {\n error: null,\n index: [''],\n isRequesting: false,\n mode: 'fuzzy',\n query: '',\n setQuery: (query) => query,\n search: async () => null,\n};\n\nexport const SearchcraftContext =\n React.createContext<SearchcraftProviderContext>(defaultContext);\n","import { type PropsWithChildren, useContext, useState } from 'react';\nimport type {\n SearchcraftInstance,\n SearchError,\n SearchResult,\n} from '@searchcraft/core';\nimport { CoreSDK as Searchcraft } from '@searchcraft/core';\n\nimport { SearchcraftContext } from './SearchcraftContext';\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst SearchcraftProvider = ({\n children,\n searchcraft,\n}: PropsWithChildren & SearchcraftInstance) => {\n const [query, setQuery] = useState<string>('');\n const [isRequesting, setIsRequesting] = useState<boolean>(false);\n const [searchResults, setSearchResults] = useState<\n SearchResult | SearchError | null\n >(null);\n\n const search = async () => {\n setIsRequesting(true);\n const results = await searchcraft.search({ query, mode: 'fuzzy' });\n setSearchResults(results);\n setIsRequesting(false);\n };\n\n const providerContext: SearchcraftProviderContext = {\n error: null,\n index: searchcraft.config.index,\n isRequesting,\n mode: 'fuzzy',\n query,\n search,\n searchResults,\n setQuery,\n };\n\n return (\n <SearchcraftContext.Provider value={providerContext}>\n {children}\n </SearchcraftContext.Provider>\n );\n};\n\nconst useSearchcraft = () =>\n useContext<SearchcraftProviderContext>(SearchcraftContext);\n\nexport { SearchcraftProvider, useSearchcraft, Searchcraft };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import styles from '@styles/sc-spinner.module.scss';\n\nexport const SpinnerLight = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerLight} />\n </div>\n);\n\nexport const SpinnerDark = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerDark} />\n </div>\n);\n","import type { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-button.module.scss';\n\nimport { SpinnerDark } from '../Spinner';\n\nexport type ButtonProps = {\n className?: string;\n iconElement?: ReactNode;\n iconOnly?: boolean;\n iconPosition?: string;\n label?: string;\n onClick?: () => void;\n};\n\nconst Button: FC<ButtonProps> = ({\n className,\n iconElement,\n iconOnly = false,\n iconPosition = 'left',\n label = 'Search',\n onClick,\n}) => {\n const { isRequesting } = useSearchcraft();\n return (\n <>\n {iconOnly && (\n <button\n className={classNames(\n styles.button,\n className,\n '.searchcraft-button',\n )}\n onClick={onClick}\n type='submit'\n >\n {isRequesting ? <SpinnerDark /> : iconElement}\n </button>\n )}\n {!iconOnly && (\n <button\n className={classNames(\n styles.button,\n className,\n '.searchcraft-button',\n )}\n onClick={onClick}\n type='submit'\n >\n {iconPosition === 'left' && isRequesting ? (\n <div className={styles.spinnerMarginRight}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n <span\n className={classNames(\n isRequesting && styles.buttonLabel,\n className,\n '.searchcraft-button-label',\n )}\n >\n {label}\n </span>\n {iconPosition === 'right' && isRequesting ? (\n <div className={styles.spinnerMarginLeft}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n </button>\n )}\n </>\n );\n};\n\nexport default Button;\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-error-message.module.scss';\n\nexport type ErrorMessageProps = {\n className?: string;\n errorMessage?: string;\n};\n\nconst ErrorMessage: FC<ErrorMessageProps> = ({ className, errorMessage }) => {\n return (\n <p className={classNames(styles.errorMessage, className)}>\n {errorMessage || 'Search term is required.'}\n </p>\n );\n};\n\nexport default ErrorMessage;\n","export const ClearInputIcon = () => (\n <svg width='22' height='22' viewBox='0 0 22 22' fill='none'>\n <title>Searchcraft Clear Input Icon</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='black'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const ArrowRightIcon = () => (\n <svg width='20' height='21' viewBox='0 0 20 21' fill='none'>\n <title>Searchcraft Arrow Right Icon</title>\n <path\n d='M7.5 15.0444L12.5 10.0444L7.5 5.04443'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-clear-input-button.module.scss';\n\nimport { ClearInputIcon } from '../../assets/ClearInputIcon';\nimport { SpinnerLight } from '../Spinner';\n\nexport type ClearInputButtonProps = {\n onClearInput?: () => void;\n rightToLeftOrientation?: boolean;\n};\n\nexport const ClearInputButton: FC<ClearInputButtonProps> = ({\n onClearInput,\n rightToLeftOrientation = false,\n}) => {\n const { isRequesting } = useSearchcraft();\n return rightToLeftOrientation ? (\n <button\n className={classNames(\n styles.inputClearButtonRTL,\n '.sc-clear-input-button-rtl',\n )}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n ) : (\n <button\n className={classNames(\n styles.inputClearButtonLTR,\n '.sc-clear-input-button-ltr',\n )}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n );\n};\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-caption.module.scss';\n\nexport type InputCaptionProps = {\n error?: boolean;\n inputCaptionClassName?: string;\n inputCaptionValue: string;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputCaption: FC<InputCaptionProps> = ({\n error = false,\n inputCaptionClassName,\n inputCaptionValue = 'Enter Search',\n rightToLeftOrientation = false,\n}) => {\n return rightToLeftOrientation ? (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorRTL : styles.inputCaptionRTL,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n ) : (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorLTR : styles.inputCaptionLTR,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n );\n};\n","export const SearchIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#404040'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const SearchIconError = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Error Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-input-icon.module.scss';\nimport { SearchIcon, SearchIconError } from '../../assets/SearchIcons';\n\nexport type InputIconProps = {\n error?: boolean;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputIcon: FC<InputIconProps> = ({\n error = false,\n rightToLeftOrientation = false,\n}) => {\n return error ? (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIconLTR\n }\n >\n <SearchIconError />\n </div>\n ) : (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIconLTR\n }\n >\n <SearchIcon />\n </div>\n );\n};\n","import type { ChangeEventHandler, FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input.module.scss';\n\nimport { ClearInputButton } from '../ClearInputButton';\nimport { InputCaption } from '../InputCaption';\nimport { InputIcon } from '../InputIcon';\n\nexport type InputProps = {\n error?: boolean;\n formClassName?: string;\n inputCaptionClassName?: string;\n inputCaptionValue?: string;\n inputClassName?: string;\n onClearInput?: () => void;\n onSearchInputChange: ChangeEventHandler<HTMLInputElement>;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n query: string;\n};\n\nconst Input: FC<InputProps> = ({\n error = false,\n formClassName = '',\n inputCaptionClassName = '',\n inputClassName = '',\n inputCaptionValue = '',\n onClearInput,\n onSearchInputChange,\n placeholderValue = 'Enter Search',\n rightToLeftOrientation = false,\n query = '',\n}) => {\n const containerClassName = rightToLeftOrientation\n ? styles.inputContainerRTL\n : styles.inputContainerLTR;\n return (\n <div\n className={classNames(\n containerClassName,\n formClassName,\n 'searchcraft-input-form',\n )}\n >\n {rightToLeftOrientation ? (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorRTL : styles.inputRTL,\n inputClassName,\n 'searchcraft-input',\n )}\n id='searchcraft-input-id'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon\n error={error}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </>\n ) : (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorLTR : styles.inputLTR,\n inputClassName,\n 'searchcraft-input',\n )}\n id='searchcraft-input-id'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon error={error} />\n </>\n )}\n </div>\n );\n};\n\nexport default Input;\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-label.module.scss';\n\nexport type InputLabelProps = {\n className?: string;\n label: string;\n};\n\nconst InputLabel: FC<InputLabelProps> = ({\n className,\n label = 'Enter Search',\n}) => {\n return (\n <label\n className={classNames(styles.label, className)}\n htmlFor='searchcraft-input-id'\n >\n {label}\n </label>\n );\n};\n\nexport default InputLabel;\n","import { useState, type FC } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport Button from '../components/Button';\nimport ErrorMessage from '../components/ErrorMessage';\nimport Input from '../components/Input';\nimport InputLabel from '../components/InputLabel';\n\nexport interface BaseSearchFormProps {\n errorMessage?: string;\n handleSubmit: (query: string) => void;\n labelForInput?: string;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n}\n\n/**\n * * Form used to submit the search query using a provided search function.\n */\nconst BaseSearchForm: FC<BaseSearchFormProps> = ({\n errorMessage,\n handleSubmit,\n labelForInput = 'Search',\n placeholderValue = 'Enter Search Term',\n rightToLeftOrientation = false,\n}) => {\n const { query, setQuery } = useSearchcraft();\n const [error, setError] = useState<boolean>(false);\n\n const handleFormSubmit = (e: { preventDefault: () => void }) => {\n e.preventDefault();\n if (query.trim() === '') {\n setError(true);\n } else {\n setError(false);\n handleSubmit(query);\n }\n };\n\n const handleSearchInputChange = (event: { target: { value: string } }) =>\n setQuery(event.target.value);\n\n const handleClearInput = () => setQuery('');\n\n return (\n <form\n className={rightToLeftOrientation ? styles.formRTL : styles.formLTR}\n onSubmit={handleFormSubmit}\n >\n <InputLabel label={labelForInput} />\n <div className={styles.searchContainer}>\n {rightToLeftOrientation && <Button />}\n <Input\n error={error}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n {!rightToLeftOrientation && <Button />}\n </div>\n {error && <ErrorMessage errorMessage={errorMessage} />}\n </form>\n );\n};\n\nexport default BaseSearchForm;\n","import { useState, type FC, useEffect, type ChangeEventHandler } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport Input from '../components/Input';\nimport InputLabel from '../components/InputLabel';\nimport classNames from 'classnames';\n\nexport interface AutoSearchFormProps {\n autoSearchFormClass?: string;\n handleSubmit: (query: string) => void;\n inputCaptionValue?: string;\n labelForInput?: string;\n onClearedInput?: () => void;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n searchContainerClass?: string;\n}\n\n/**\n * * Button-less form used to submit the search query with a timing configurable debounced function.\n */\nconst AutoSearchForm: FC<AutoSearchFormProps> = ({\n autoSearchFormClass = '',\n handleSubmit,\n inputCaptionValue = '',\n labelForInput = 'Search',\n onClearedInput = () => {},\n placeholderValue = 'Search here',\n rightToLeftOrientation = false,\n searchContainerClass = '',\n}) => {\n const { query, setQuery } = useSearchcraft();\n const [canSearch, setCanSearch] = useState<boolean>(false);\n\n const handleSearchInputChange: ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n event.preventDefault();\n setQuery(event.currentTarget.value);\n if (query !== event.currentTarget.value) {\n setCanSearch(true);\n }\n };\n\n /**\n * * Exposes a callback for convenience when the input's value is cleared by the user\n */\n const handleClearInput = () => {\n setQuery('');\n onClearedInput();\n };\n\n /**\n * * Delay the submit function until the user is done typing to throttle API usage.\n */\n useEffect(() => {\n if (canSearch) {\n handleSubmit(query);\n setCanSearch(false);\n } else {\n return;\n }\n }, [canSearch, handleSubmit, query]);\n const autoSearchFormClassname = rightToLeftOrientation\n ? styles.formRTL\n : styles.formLTR;\n return (\n <form\n className={classNames(\n autoSearchFormClassname,\n autoSearchFormClass,\n 'searchcraft-auto-search-form',\n )}\n onSubmit={(event) => {\n event.preventDefault();\n }}\n >\n <InputLabel label={labelForInput} />\n <div\n className={classNames(\n styles.searchContainer,\n searchContainerClass,\n 'searchcraft-input-container',\n )}\n >\n <Input\n inputCaptionValue={inputCaptionValue}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </div>\n </form>\n );\n};\n\nexport default AutoSearchForm;\n","export const ButtonIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Button Icon</title>\n <path\n d='M2.725 5.79959L10 10.0079L17.275 5.79959M10 18.3996V9.99959M17.5 13.3329V6.66626C17.4997 6.37399 17.4225 6.08693 17.2763 5.8339C17.13 5.58086 16.9198 5.37073 16.6667 5.22459L10.8333 1.89126C10.58 1.74498 10.2926 1.66797 10 1.66797C9.70744 1.66797 9.42003 1.74498 9.16667 1.89126L3.33333 5.22459C3.08022 5.37073 2.86998 5.58086 2.72372 5.8339C2.57745 6.08693 2.5003 6.37399 2.5 6.66626V13.3329C2.5003 13.6252 2.57745 13.9123 2.72372 14.1653C2.86998 14.4183 3.08022 14.6285 3.33333 14.7746L9.16667 18.1079C9.42003 18.2542 9.70744 18.3312 10 18.3312C10.2926 18.3312 10.58 18.2542 10.8333 18.1079L16.6667 14.7746C16.9198 14.6285 17.13 14.4183 17.2763 14.1653C17.4225 13.9123 17.4997 13.6252 17.5 13.3329Z'\n stroke='white'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport { ButtonIcon } from '../assets/ButtonIcons';\n\nimport styles from '@styles/sc-search-result.module.scss';\nimport { ArrowRightIcon } from '../assets/ClearInputIcon';\n\ninterface BaseSearchResultProps {\n buttonCallbackFn?: () => void;\n buttonLabel?: string;\n imageAltText?: string;\n imageSrc?: string;\n interactiveResult?: boolean;\n callbackFn?: () => void;\n keyDownCallbackFn?: () => void;\n resultBodyContent?: string;\n resultHeading?: string;\n resultSubheading?: string;\n}\n\nconst BaseSearchResult: FC<BaseSearchResultProps> = ({\n buttonCallbackFn = () => {},\n buttonLabel = '',\n callbackFn = () => {},\n keyDownCallbackFn = () => {},\n imageAltText = '',\n interactiveResult = false,\n imageSrc = '',\n resultBodyContent = '',\n resultHeading = '',\n resultSubheading = '',\n}) => {\n const buttonFn = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n buttonCallbackFn();\n };\n\n const callbackFunc = () => {\n if (interactiveResult) {\n callbackFn();\n } else {\n return;\n }\n };\n\n return (\n <div\n className={\n interactiveResult\n ? styles.interactiveResultContainer\n : styles.resultContainer\n }\n id='searchcraft-item'\n onClick={callbackFunc}\n onKeyDown={keyDownCallbackFn}\n >\n {interactiveResult && (\n <div className={styles.interactiveIconLarge}>\n <ArrowRightIcon />\n </div>\n )}\n <div className={styles.imageContainer}>\n <img alt={imageAltText} className={styles.image} src={imageSrc} />\n </div>\n <div className={styles.contentContainer}>\n <h2 className={styles.heading}>\n {resultHeading}{' '}\n {interactiveResult && (\n <div className={styles.interactiveIconSmall}>\n <ArrowRightIcon />\n </div>\n )}\n </h2>\n <h3 className={styles.subheading}>{resultSubheading}</h3>\n <p className={styles.bodyContent}>{resultBodyContent}</p>\n <button className={styles.button} onClick={buttonFn} type='button'>\n <ButtonIcon />\n <span>{buttonLabel}</span>\n </button>\n </div>\n </div>\n );\n};\n\nexport default BaseSearchResult;\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-search-results.module.scss';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport BaseSearchResult from '@components/ui/BaseSearchResult';\n\nconst BaseSearchResults: FC = () => {\n const { searchResults } = useSearchcraft();\n return (\n <div className={styles.resultsContainer}>\n {searchResults?.hits ? (\n searchResults?.hits?.map((document, index) => {\n const { doc: result } = document;\n const callback = () => {\n console.log('interactive');\n };\n const buttonCallback = () => {\n console.log('button callback');\n };\n return (\n <BaseSearchResult\n key={`${result?.id}-${index}`}\n buttonLabel='View More'\n buttonCallbackFn={buttonCallback}\n callbackFn={callback}\n interactiveResult\n imageSrc={result?.poster}\n resultBodyContent={result?.overview}\n resultHeading={result?.title}\n resultSubheading={result?.release_date}\n />\n );\n })\n ) : (\n <div>no results found</div>\n )}\n </div>\n );\n};\n\nexport default BaseSearchResults;\n"],"names":["c","d","n","t","o","p","e","i","s","defaultContext","query","SearchcraftContext","React","SearchcraftProvider","children","searchcraft","setQuery","useState","isRequesting","setIsRequesting","searchResults","setSearchResults","search","results","providerContext","useSearchcraft","useContext","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","SpinnerLight","jsx","styles","SpinnerDark","Button","className","iconElement","iconOnly","iconPosition","label","onClick","jsxs","Fragment","ErrorMessage","errorMessage","ClearInputIcon","ArrowRightIcon","ClearInputButton","onClearInput","rightToLeftOrientation","InputCaption","error","inputCaptionClassName","inputCaptionValue","SearchIcon","SearchIconError","InputIcon","Input","formClassName","inputClassName","onSearchInputChange","placeholderValue","containerClassName","InputLabel","BaseSearchForm","handleSubmit","labelForInput","setError","handleFormSubmit","handleSearchInputChange","event","handleClearInput","AutoSearchForm","autoSearchFormClass","onClearedInput","searchContainerClass","canSearch","setCanSearch","useEffect","autoSearchFormClassname","ButtonIcon","BaseSearchResult","buttonCallbackFn","buttonLabel","callbackFn","keyDownCallbackFn","imageAltText","interactiveResult","imageSrc","resultBodyContent","resultHeading","resultSubheading","buttonFn","callbackFunc","BaseSearchResults","_a","document","index","result"],"mappings":"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","x_google_ignoreList":[3]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/@searchcraft/core/dist/index.js","../src/components/providers/SearchcraftContext.tsx","../src/components/providers/SearchcraftProvider.tsx","../../../node_modules/classnames/index.js","../src/components/ui/components/Spinner/index.tsx","../src/components/ui/components/Button/index.tsx","../src/components/ui/components/ErrorMessage/index.tsx","../src/components/ui/assets/ClearInputIcon.jsx","../src/components/ui/components/ClearInputButton/index.tsx","../src/components/ui/components/InputCaption/index.tsx","../src/components/ui/assets/SearchIcons.jsx","../src/components/ui/components/InputIcon/index.tsx","../src/components/ui/components/Input/index.tsx","../src/components/ui/components/InputLabel/index.tsx","../src/components/ui/BaseSearchForm/index.tsx","../src/components/ui/AutoSearchForm/index.tsx","../src/components/ui/assets/ButtonIcons.jsx","../src/components/ui/BaseSearchResult/index.tsx","../src/components/ui/BaseSearchResults/index.tsx"],"sourcesContent":["var c = Object.defineProperty;\nvar a = (o, e, t) => e in o ? c(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;\nvar n = (o, e, t) => a(o, typeof e != \"symbol\" ? e + \"\" : e, t);\nclass h {\n constructor(e) {\n n(this, \"config\");\n /**\n * @param {string} query - User provided value Searchcraft will use to search against\n * @param {string} mode - Can be either 'fuzzy' or 'normal'\n * @returns {SearchResult} - Returns a `SearchResponse` object with the results from the search or throws an error\n */\n n(this, \"search\", async (e) => {\n try {\n const t = this.config.index.join(\",\"), i = `${this.config.endpointURL}/search`, r = {\n query: e.query,\n mode: e.mode,\n app: t\n }, s = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: this.config.apiKey ? `${this.config.apiKey}` : \"\"\n },\n body: JSON.stringify(r)\n };\n return await (await fetch(i, s)).json();\n } catch (t) {\n return t;\n }\n });\n if (!e.endpointURL || !e.index)\n throw new Error(\"Endpoint URL and Index value(s) must be provided\");\n this.config = e;\n }\n}\nexport {\n h as CoreSDK\n};\n//# sourceMappingURL=index.js.map\n","import React from 'react';\n\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst defaultContext: SearchcraftProviderContext = {\n error: null,\n index: [''],\n isRequesting: false,\n mode: 'fuzzy',\n query: '',\n setQuery: (query) => query,\n search: async () => null,\n};\n\nexport const SearchcraftContext =\n React.createContext<SearchcraftProviderContext>(defaultContext);\n","import { type PropsWithChildren, useContext, useState } from 'react';\nimport type {\n SearchcraftInstance,\n SearchError,\n SearchResult,\n} from '@searchcraft/core';\nimport { CoreSDK as Searchcraft } from '@searchcraft/core';\n\nimport { SearchcraftContext } from './SearchcraftContext';\nimport type { SearchcraftProviderContext } from './SearchcraftProviderContext';\n\nconst SearchcraftProvider = ({\n children,\n searchcraft,\n}: PropsWithChildren & SearchcraftInstance) => {\n const [query, setQuery] = useState<string>('');\n const [isRequesting, setIsRequesting] = useState<boolean>(false);\n const [searchResults, setSearchResults] = useState<\n SearchResult | SearchError | null\n >(null);\n\n const search = async () => {\n setIsRequesting(true);\n const results = await searchcraft.search({ query, mode: 'fuzzy' });\n setSearchResults(results);\n setIsRequesting(false);\n };\n\n const providerContext: SearchcraftProviderContext = {\n error: null,\n index: searchcraft.config.index,\n isRequesting,\n mode: 'fuzzy',\n query,\n search,\n searchResults,\n setQuery,\n };\n\n return (\n <SearchcraftContext.Provider value={providerContext}>\n {children}\n </SearchcraftContext.Provider>\n );\n};\n\nconst useSearchcraft = () =>\n useContext<SearchcraftProviderContext>(SearchcraftContext);\n\nexport { SearchcraftProvider, useSearchcraft, Searchcraft };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import styles from '@styles/sc-spinner.module.scss';\n\nexport const SpinnerLight = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerLight} />\n </div>\n);\n\nexport const SpinnerDark = () => (\n <div className={styles.spinnerContainer}>\n <div className={styles.spinnerDark} />\n </div>\n);\n","import type { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-button.module.scss';\n\nimport { SpinnerDark } from '../Spinner';\n\nexport type ButtonProps = {\n className?: string;\n iconElement?: ReactNode;\n iconOnly?: boolean;\n iconPosition?: string;\n label?: string;\n onClick?: () => void;\n};\n\nconst Button: FC<ButtonProps> = ({\n className,\n iconElement,\n iconOnly = false,\n iconPosition = 'left',\n label = 'Search',\n onClick,\n}) => {\n const { isRequesting } = useSearchcraft();\n return (\n <>\n {iconOnly && (\n <button\n className={classNames(\n styles.button,\n className,\n '.searchcraft-button',\n )}\n onClick={onClick}\n type='submit'\n >\n {isRequesting ? <SpinnerDark /> : iconElement}\n </button>\n )}\n {!iconOnly && (\n <button\n className={classNames(\n styles.button,\n className,\n '.searchcraft-button',\n )}\n onClick={onClick}\n type='submit'\n >\n {iconPosition === 'left' && isRequesting ? (\n <div className={styles.spinnerMarginRight}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n <span\n className={classNames(\n isRequesting && styles.buttonLabel,\n className,\n '.searchcraft-button-label',\n )}\n >\n {label}\n </span>\n {iconPosition === 'right' && isRequesting ? (\n <div className={styles.spinnerMarginLeft}>\n <SpinnerDark />\n </div>\n ) : (\n iconElement\n )}\n </button>\n )}\n </>\n );\n};\n\nexport default Button;\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-error-message.module.scss';\n\nexport type ErrorMessageProps = {\n className?: string;\n errorMessage?: string;\n};\n\nconst ErrorMessage: FC<ErrorMessageProps> = ({ className, errorMessage }) => {\n return (\n <p className={classNames(styles.errorMessage, className)}>\n {errorMessage || 'Search term is required.'}\n </p>\n );\n};\n\nexport default ErrorMessage;\n","export const ClearInputIcon = () => (\n <svg width='22' height='22' viewBox='0 0 22 22' fill='none'>\n <title>Searchcraft Clear Input Icon</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='black'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const ArrowRightIcon = () => (\n <svg width='20' height='21' viewBox='0 0 20 21' fill='none'>\n <title>Searchcraft Arrow Right Icon</title>\n <path\n d='M7.5 15.0444L12.5 10.0444L7.5 5.04443'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-clear-input-button.module.scss';\n\nimport { ClearInputIcon } from '../../assets/ClearInputIcon';\nimport { SpinnerLight } from '../Spinner';\n\nexport type ClearInputButtonProps = {\n onClearInput?: () => void;\n rightToLeftOrientation?: boolean;\n};\n\nexport const ClearInputButton: FC<ClearInputButtonProps> = ({\n onClearInput,\n rightToLeftOrientation = false,\n}) => {\n const { isRequesting } = useSearchcraft();\n return rightToLeftOrientation ? (\n <button\n className={classNames(\n styles.inputClearButtonRTL,\n '.sc-clear-input-button-rtl',\n )}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n ) : (\n <button\n className={classNames(\n styles.inputClearButtonLTR,\n '.sc-clear-input-button-ltr',\n )}\n onClick={onClearInput}\n type='button'\n >\n {isRequesting ? <SpinnerLight /> : <ClearInputIcon />}\n </button>\n );\n};\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-caption.module.scss';\n\nexport type InputCaptionProps = {\n error?: boolean;\n inputCaptionClassName?: string;\n inputCaptionValue: string;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputCaption: FC<InputCaptionProps> = ({\n error = false,\n inputCaptionClassName,\n inputCaptionValue = 'Enter Search',\n rightToLeftOrientation = false,\n}) => {\n return rightToLeftOrientation ? (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorRTL : styles.inputCaptionRTL,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n ) : (\n <p\n className={classNames(\n error ? styles.inputCaptionErrorLTR : styles.inputCaptionLTR,\n inputCaptionClassName,\n )}\n >\n {inputCaptionValue}\n </p>\n );\n};\n","export const SearchIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#404040'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n\nexport const SearchIconError = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Error Search Icon</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#737373'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-input-icon.module.scss';\nimport { SearchIcon, SearchIconError } from '../../assets/SearchIcons';\n\nexport type InputIconProps = {\n error?: boolean;\n rightToLeftOrientation?: boolean;\n};\n\nexport const InputIcon: FC<InputIconProps> = ({\n error = false,\n rightToLeftOrientation = false,\n}) => {\n return error ? (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIconLTR\n }\n >\n <SearchIconError />\n </div>\n ) : (\n <div\n className={\n rightToLeftOrientation ? styles.inputIconRTL : styles.inputIconLTR\n }\n >\n <SearchIcon />\n </div>\n );\n};\n","import type { ChangeEventHandler, FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input.module.scss';\n\nimport { ClearInputButton } from '../ClearInputButton';\nimport { InputCaption } from '../InputCaption';\nimport { InputIcon } from '../InputIcon';\n\nexport type InputProps = {\n error?: boolean;\n formClassName?: string;\n inputCaptionClassName?: string;\n inputCaptionValue?: string;\n inputClassName?: string;\n onClearInput?: () => void;\n onSearchInputChange: ChangeEventHandler<HTMLInputElement>;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n query: string;\n};\n\nconst Input: FC<InputProps> = ({\n error = false,\n formClassName = '',\n inputCaptionClassName = '',\n inputClassName = '',\n inputCaptionValue = '',\n onClearInput,\n onSearchInputChange,\n placeholderValue = 'Enter Search',\n rightToLeftOrientation = false,\n query = '',\n}) => {\n const containerClassName = rightToLeftOrientation\n ? styles.inputContainerRTL\n : styles.inputContainerLTR;\n return (\n <div\n className={classNames(\n containerClassName,\n formClassName,\n 'searchcraft-input-form',\n )}\n >\n {rightToLeftOrientation ? (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorRTL : styles.inputRTL,\n inputClassName,\n 'searchcraft-input',\n )}\n id='searchcraft-input-id'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon\n error={error}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </>\n ) : (\n <>\n <input\n className={classNames(\n error ? styles.inputErrorLTR : styles.inputLTR,\n inputClassName,\n 'searchcraft-input',\n )}\n id='searchcraft-input-id'\n onChange={onSearchInputChange}\n placeholder={placeholderValue}\n type='text'\n value={query}\n />\n {inputCaptionValue && (\n <InputCaption\n inputCaptionClassName={inputCaptionClassName}\n inputCaptionValue={inputCaptionValue}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n {query.length > 0 && (\n <ClearInputButton\n onClearInput={onClearInput}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n )}\n <InputIcon error={error} />\n </>\n )}\n </div>\n );\n};\n\nexport default Input;\n","import type { FC } from 'react';\nimport classNames from 'classnames';\n\nimport styles from '@styles/sc-input-label.module.scss';\n\nexport type InputLabelProps = {\n className?: string;\n label: string;\n};\n\nconst InputLabel: FC<InputLabelProps> = ({\n className,\n label = 'Enter Search',\n}) => {\n return (\n <label\n className={classNames(styles.label, className)}\n htmlFor='searchcraft-input-id'\n >\n {label}\n </label>\n );\n};\n\nexport default InputLabel;\n","import { useState, type FC } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport Button from '../components/Button';\nimport ErrorMessage from '../components/ErrorMessage';\nimport Input from '../components/Input';\nimport InputLabel from '../components/InputLabel';\n\nexport interface BaseSearchFormProps {\n errorMessage?: string;\n handleSubmit: (query: string) => void;\n labelForInput?: string;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n}\n\n/**\n * * Form used to submit the search query using a provided search function.\n */\nconst BaseSearchForm: FC<BaseSearchFormProps> = ({\n errorMessage,\n handleSubmit,\n labelForInput = 'Search',\n placeholderValue = 'Enter Search Term',\n rightToLeftOrientation = false,\n}) => {\n const { query, setQuery } = useSearchcraft();\n const [error, setError] = useState<boolean>(false);\n\n const handleFormSubmit = (e: { preventDefault: () => void }) => {\n e.preventDefault();\n if (query.trim() === '') {\n setError(true);\n } else {\n setError(false);\n handleSubmit(query);\n }\n };\n\n const handleSearchInputChange = (event: { target: { value: string } }) =>\n setQuery(event.target.value);\n\n const handleClearInput = () => setQuery('');\n\n return (\n <form\n className={rightToLeftOrientation ? styles.formRTL : styles.formLTR}\n onSubmit={handleFormSubmit}\n >\n <InputLabel label={labelForInput} />\n <div className={styles.searchContainer}>\n {rightToLeftOrientation && <Button />}\n <Input\n error={error}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n {!rightToLeftOrientation && <Button />}\n </div>\n {error && <ErrorMessage errorMessage={errorMessage} />}\n </form>\n );\n};\n\nexport default BaseSearchForm;\n","import { useState, type FC, useEffect, type ChangeEventHandler } from 'react';\n\nimport { useSearchcraft } from '@components/providers/SearchcraftProvider';\nimport styles from '@styles/sc-search-form.module.scss';\n\nimport Input from '../components/Input';\nimport InputLabel from '../components/InputLabel';\nimport classNames from 'classnames';\n\nexport interface AutoSearchFormProps {\n autoSearchFormClass?: string;\n handleSubmit: (query: string) => void;\n inputCaptionValue?: string;\n labelForInput?: string;\n onClearedInput?: () => void;\n placeholderValue?: string;\n rightToLeftOrientation?: boolean;\n searchContainerClass?: string;\n}\n\n/**\n * * Button-less form used to submit the search query with a timing configurable debounced function.\n */\nconst AutoSearchForm: FC<AutoSearchFormProps> = ({\n autoSearchFormClass = '',\n handleSubmit,\n inputCaptionValue = '',\n labelForInput = 'Search',\n onClearedInput = () => {},\n placeholderValue = 'Search here',\n rightToLeftOrientation = false,\n searchContainerClass = '',\n}) => {\n const { query, setQuery } = useSearchcraft();\n const [canSearch, setCanSearch] = useState<boolean>(false);\n\n const handleSearchInputChange: ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n event.preventDefault();\n setQuery(event.currentTarget.value);\n if (query !== event.currentTarget.value) {\n setCanSearch(true);\n }\n };\n\n /**\n * * Exposes a callback for convenience when the input's value is cleared by the user\n */\n const handleClearInput = () => {\n setQuery('');\n onClearedInput();\n };\n\n /**\n * * Delay the submit function until the user is done typing to throttle API usage.\n */\n useEffect(() => {\n if (canSearch) {\n handleSubmit(query);\n setCanSearch(false);\n } else {\n return;\n }\n }, [canSearch, handleSubmit, query]);\n const autoSearchFormClassname = rightToLeftOrientation\n ? styles.formRTL\n : styles.formLTR;\n return (\n <form\n className={classNames(\n autoSearchFormClassname,\n autoSearchFormClass,\n 'searchcraft-auto-search-form',\n )}\n onSubmit={(event) => {\n event.preventDefault();\n }}\n >\n <InputLabel label={labelForInput} />\n <div\n className={classNames(\n styles.searchContainer,\n searchContainerClass,\n 'searchcraft-input-container',\n )}\n >\n <Input\n inputCaptionValue={inputCaptionValue}\n onClearInput={handleClearInput}\n onSearchInputChange={handleSearchInputChange}\n placeholderValue={placeholderValue}\n query={query}\n rightToLeftOrientation={rightToLeftOrientation}\n />\n </div>\n </form>\n );\n};\n\nexport default AutoSearchForm;\n","export const ButtonIcon = () => (\n <svg width='20' height='20' viewBox='0 0 20 20' fill='none'>\n <title>Searchcraft Button Icon</title>\n <path\n d='M2.725 5.79959L10 10.0079L17.275 5.79959M10 18.3996V9.99959M17.5 13.3329V6.66626C17.4997 6.37399 17.4225 6.08693 17.2763 5.8339C17.13 5.58086 16.9198 5.37073 16.6667 5.22459L10.8333 1.89126C10.58 1.74498 10.2926 1.66797 10 1.66797C9.70744 1.66797 9.42003 1.74498 9.16667 1.89126L3.33333 5.22459C3.08022 5.37073 2.86998 5.58086 2.72372 5.8339C2.57745 6.08693 2.5003 6.37399 2.5 6.66626V13.3329C2.5003 13.6252 2.57745 13.9123 2.72372 14.1653C2.86998 14.4183 3.08022 14.6285 3.33333 14.7746L9.16667 18.1079C9.42003 18.2542 9.70744 18.3312 10 18.3312C10.2926 18.3312 10.58 18.2542 10.8333 18.1079L16.6667 14.7746C16.9198 14.6285 17.13 14.4183 17.2763 14.1653C17.4225 13.9123 17.4997 13.6252 17.5 13.3329Z'\n stroke='white'\n strokeWidth='1.5'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n);\n","import type { FC } from 'react';\n\nimport { ButtonIcon } from '../assets/ButtonIcons';\n\nimport styles from '@styles/sc-search-result.module.scss';\nimport { ArrowRightIcon } from '../assets/ClearInputIcon';\n\ninterface BaseSearchResultProps {\n buttonCallbackFn?: () => void;\n buttonLabel?: string;\n imageAltText?: string;\n imageSrc?: string;\n interactiveResult?: boolean;\n callbackFn?: () => void;\n keyDownCallbackFn?: () => void;\n resultBodyContent?: string;\n resultHeading?: string;\n resultSubheading?: string;\n}\n\nconst BaseSearchResult: FC<BaseSearchResultProps> = ({\n buttonCallbackFn = () => {},\n buttonLabel = '',\n callbackFn = () => {},\n keyDownCallbackFn = () => {},\n imageAltText = '',\n interactiveResult = false,\n imageSrc = '',\n resultBodyContent = '',\n resultHeading = '',\n resultSubheading = '',\n}) => {\n const buttonFn = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n buttonCallbackFn();\n };\n\n const callbackFunc = () => {\n if (interactiveResult) {\n callbackFn();\n } else {\n return;\n }\n };\n\n return (\n <div\n className={\n interactiveResult\n ? styles.interactiveResultContainer\n : styles.resultContainer\n }\n id='searchcraft-item'\n onClick={callbackFunc}\n onKeyDown={keyDownCallbackFn}\n >\n {interactiveResult && (\n <div className={styles.interactiveIconLarge}>\n <ArrowRightIcon />\n </div>\n )}\n <div className={styles.imageContainer}>\n <img alt={imageAltText} className={styles.image} src={imageSrc} />\n </div>\n <div className={styles.contentContainer}>\n <h2 className={styles.heading}>\n {resultHeading}{' '}\n {interactiveResult && (\n <div className={styles.interactiveIconSmall}>\n <ArrowRightIcon />\n </div>\n )}\n </h2>\n <h3 className={styles.subheading}>{resultSubheading}</h3>\n <p className={styles.bodyContent}>{resultBodyContent}</p>\n <button className={styles.button} onClick={buttonFn} type='button'>\n <ButtonIcon />\n <span>{buttonLabel}</span>\n </button>\n </div>\n </div>\n );\n};\n\nexport default BaseSearchResult;\n","import type { FC } from 'react';\n\nimport styles from '@styles/sc-search-results.module.scss';\n\nimport { useSearchcraft } from '@/components/providers/SearchcraftProvider';\nimport BaseSearchResult from '@components/ui/BaseSearchResult';\n\nconst BaseSearchResults: FC = () => {\n const { searchResults } = useSearchcraft();\n\n return (\n <div className={styles.resultsContainer}>\n {searchResults?.data?.hits ? (\n searchResults?.data?.hits?.map((document, index) => {\n const { doc: result } = document;\n const callback = () => {\n console.log('interactive');\n };\n const buttonCallback = () => {\n console.log('button callback');\n };\n return (\n <BaseSearchResult\n key={`${result?.id}-${index}`}\n buttonLabel='View More'\n buttonCallbackFn={buttonCallback}\n callbackFn={callback}\n interactiveResult\n imageSrc={result?.poster}\n resultBodyContent={result?.overview}\n resultHeading={result?.title}\n resultSubheading={result?.release_date}\n />\n );\n })\n ) : (\n <div>no results found</div>\n )}\n </div>\n );\n};\n\nexport default BaseSearchResults;\n"],"names":["c","a","o","e","t","n","h","s","defaultContext","query","SearchcraftContext","React","SearchcraftProvider","children","searchcraft","setQuery","useState","isRequesting","setIsRequesting","searchResults","setSearchResults","search","results","providerContext","useSearchcraft","useContext","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","SpinnerLight","jsx","styles","SpinnerDark","Button","className","iconElement","iconOnly","iconPosition","label","onClick","jsxs","Fragment","ErrorMessage","errorMessage","ClearInputIcon","ArrowRightIcon","ClearInputButton","onClearInput","rightToLeftOrientation","InputCaption","error","inputCaptionClassName","inputCaptionValue","SearchIcon","SearchIconError","InputIcon","Input","formClassName","inputClassName","onSearchInputChange","placeholderValue","containerClassName","InputLabel","BaseSearchForm","handleSubmit","labelForInput","setError","handleFormSubmit","handleSearchInputChange","event","handleClearInput","AutoSearchForm","autoSearchFormClass","onClearedInput","searchContainerClass","canSearch","setCanSearch","useEffect","autoSearchFormClassname","ButtonIcon","BaseSearchResult","buttonCallbackFn","buttonLabel","callbackFn","keyDownCallbackFn","imageAltText","interactiveResult","imageSrc","resultBodyContent","resultHeading","resultSubheading","buttonFn","callbackFunc","BaseSearchResults","_a","_c","_b","document","index","result"],"mappings":"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","x_google_ignoreList":[0,3]}
|