@searchcraft/javascript-sdk 0.10.4 → 0.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.d.ts +52 -20
- package/dist/components/index.js +4 -4
- package/dist/components/{p-9d2e55a7.js → p-2735dceb.js} +3 -3
- package/dist/components/{p-9d2e55a7.js.map → p-2735dceb.js.map} +1 -1
- package/dist/components/p-4dd1995c.js +193 -0
- package/dist/components/p-4dd1995c.js.map +1 -0
- package/dist/components/{p-35ee16e2.js → p-6e5ed641.js} +2 -2
- package/dist/components/{p-35ee16e2.js.map → p-6e5ed641.js.map} +1 -1
- package/dist/components/{p-4c610bc4.js → p-75134ca7.js} +2 -2
- package/dist/components/{p-4c610bc4.js.map → p-75134ca7.js.map} +1 -1
- package/dist/components/{p-eb633481.js → p-9f4c50ed.js} +3 -3
- package/dist/components/{p-eb633481.js.map → p-9f4c50ed.js.map} +1 -1
- package/dist/components/{p-6065aee1.js → p-a7d611cd.js} +17 -12
- package/dist/components/p-a7d611cd.js.map +1 -0
- package/dist/components/{p-6ed5cca1.js → p-aba24c85.js} +4 -4
- package/dist/components/{p-6ed5cca1.js.map → p-aba24c85.js.map} +1 -1
- package/dist/components/p-b194d081.js +406 -0
- package/dist/components/p-b194d081.js.map +1 -0
- package/dist/components/{p-60fd824d.js → p-b54873ff.js} +371 -348
- package/dist/components/p-b54873ff.js.map +1 -0
- package/dist/components/p-d54771ef.js +182 -0
- package/dist/components/p-d54771ef.js.map +1 -0
- package/dist/components/{p-2d975f19.js → p-f2976b33.js} +2 -2
- package/dist/components/{p-2d975f19.js.map → p-f2976b33.js.map} +1 -1
- package/dist/components/searchcraft-ad.js +1 -1
- package/dist/components/searchcraft-facet-list.js +1 -1
- package/dist/components/searchcraft-filter-panel.js +13 -18
- package/dist/components/searchcraft-filter-panel.js.map +1 -1
- package/dist/components/searchcraft-input-form.js +1 -1
- package/dist/components/searchcraft-pagination.js +1 -1
- package/dist/components/searchcraft-popover-button.js +1 -1
- package/dist/components/searchcraft-popover-footer.js +1 -1
- package/dist/components/searchcraft-popover-form.js +6 -6
- package/dist/components/searchcraft-popover-list-item.js +1 -1
- package/dist/components/searchcraft-popover-list-view.js +1 -1
- package/dist/components/searchcraft-results-info.js +2 -2
- package/dist/components/searchcraft-search-result.js +1 -1
- package/dist/components/searchcraft-search-results-per-page.js +1 -1
- package/dist/components/searchcraft-search-results.js +3 -3
- package/dist/components/searchcraft-slider.js +1 -1
- package/dist/components/searchcraft-theme.js +1 -1
- package/dist/components/searchcraft-theme.js.map +1 -1
- package/dist/components/searchcraft-toggle-button.js +1 -1
- package/dist/hydrate/index.js +710 -434
- package/dist/hydrate/index.mjs +710 -434
- package/dist/themes/hologram.css +1 -1
- package/dist/themes/hologram.css.map +1 -1
- package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +33 -14
- package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +2 -2
- package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +6 -0
- package/dist/types/components/searchcraft-slider/searchcraft-slider.d.ts +10 -4
- package/dist/types/components.d.ts +23 -7
- package/dist/types/store/SearchcraftStore.types.d.ts +5 -3
- package/dist/types/utils/facets.d.ts +30 -3
- package/dist/types/utils/throttle.d.ts +14 -0
- package/dist/types/utils/units.d.ts +33 -0
- package/package.json +3 -3
- package/dist/components/p-163402fb.js +0 -291
- package/dist/components/p-163402fb.js.map +0 -1
- package/dist/components/p-4d37616e.js +0 -105
- package/dist/components/p-4d37616e.js.map +0 -1
- package/dist/components/p-6065aee1.js.map +0 -1
- package/dist/components/p-60fd824d.js.map +0 -1
- package/dist/components/p-7c650118.js +0 -110
- package/dist/components/p-7c650118.js.map +0 -1
package/dist/hydrate/index.mjs
CHANGED
|
@@ -3178,12 +3178,12 @@ Object.keys(react).forEach(function (k) {
|
|
|
3178
3178
|
|
|
3179
3179
|
var B = Object.defineProperty;
|
|
3180
3180
|
var N = (a, e, n) => e in a ? B(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
|
|
3181
|
-
var
|
|
3181
|
+
var h = (a, e, n) => N(a, typeof e != "symbol" ? e + "" : e, n);
|
|
3182
3182
|
var O = /* @__PURE__ */ ((a) => (a[a.DEBUG = 0] = "DEBUG", a[a.INFO = 1] = "INFO", a[a.WARN = 2] = "WARN", a[a.ERROR = 3] = "ERROR", a))(O || {});
|
|
3183
3183
|
class pe {
|
|
3184
3184
|
constructor(e) {
|
|
3185
|
-
|
|
3186
|
-
|
|
3185
|
+
h(this, "logLevel");
|
|
3186
|
+
h(this, "logFormatter");
|
|
3187
3187
|
this.logLevel = e.logLevel || 1, this.logFormatter = e.logFormatter || this.defaultFormatter;
|
|
3188
3188
|
}
|
|
3189
3189
|
defaultFormatter(e, n) {
|
|
@@ -3218,87 +3218,87 @@ class pe {
|
|
|
3218
3218
|
}
|
|
3219
3219
|
}
|
|
3220
3220
|
}
|
|
3221
|
-
function
|
|
3222
|
-
return new (n || (n = Promise))(function(
|
|
3223
|
-
function t(
|
|
3221
|
+
function y(a, e, n, r) {
|
|
3222
|
+
return new (n || (n = Promise))(function(o, i) {
|
|
3223
|
+
function t(s) {
|
|
3224
3224
|
try {
|
|
3225
|
-
|
|
3226
|
-
} catch (
|
|
3227
|
-
|
|
3225
|
+
l(r.next(s));
|
|
3226
|
+
} catch (c) {
|
|
3227
|
+
i(c);
|
|
3228
3228
|
}
|
|
3229
3229
|
}
|
|
3230
|
-
function u(
|
|
3230
|
+
function u(s) {
|
|
3231
3231
|
try {
|
|
3232
|
-
|
|
3233
|
-
} catch (
|
|
3234
|
-
|
|
3232
|
+
l(r.throw(s));
|
|
3233
|
+
} catch (c) {
|
|
3234
|
+
i(c);
|
|
3235
3235
|
}
|
|
3236
3236
|
}
|
|
3237
|
-
function
|
|
3238
|
-
var
|
|
3239
|
-
|
|
3240
|
-
|
|
3237
|
+
function l(s) {
|
|
3238
|
+
var c;
|
|
3239
|
+
s.done ? o(s.value) : (c = s.value, c instanceof n ? c : new n(function(g) {
|
|
3240
|
+
g(c);
|
|
3241
3241
|
})).then(t, u);
|
|
3242
3242
|
}
|
|
3243
|
-
|
|
3243
|
+
l((r = r.apply(a, [])).next());
|
|
3244
3244
|
});
|
|
3245
3245
|
}
|
|
3246
|
-
function
|
|
3247
|
-
var n, r,
|
|
3248
|
-
if (1 &
|
|
3249
|
-
return
|
|
3246
|
+
function w(a, e) {
|
|
3247
|
+
var n, r, o, i, t = { label: 0, sent: function() {
|
|
3248
|
+
if (1 & o[0]) throw o[1];
|
|
3249
|
+
return o[1];
|
|
3250
3250
|
}, trys: [], ops: [] };
|
|
3251
|
-
return
|
|
3251
|
+
return i = { next: u(0), throw: u(1), return: u(2) }, typeof Symbol == "function" && (i[Symbol.iterator] = function() {
|
|
3252
3252
|
return this;
|
|
3253
|
-
}),
|
|
3254
|
-
function u(
|
|
3255
|
-
return function(
|
|
3256
|
-
return function(
|
|
3253
|
+
}), i;
|
|
3254
|
+
function u(l) {
|
|
3255
|
+
return function(s) {
|
|
3256
|
+
return function(c) {
|
|
3257
3257
|
if (n) throw new TypeError("Generator is already executing.");
|
|
3258
|
-
for (;
|
|
3259
|
-
if (n = 1, r && (
|
|
3260
|
-
switch (r = 0,
|
|
3258
|
+
for (; i && (i = 0, c[0] && (t = 0)), t; ) try {
|
|
3259
|
+
if (n = 1, r && (o = 2 & c[0] ? r.return : c[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, c[1])).done) return o;
|
|
3260
|
+
switch (r = 0, o && (c = [2 & c[0], o.value]), c[0]) {
|
|
3261
3261
|
case 0:
|
|
3262
3262
|
case 1:
|
|
3263
|
-
|
|
3263
|
+
o = c;
|
|
3264
3264
|
break;
|
|
3265
3265
|
case 4:
|
|
3266
|
-
return t.label++, { value:
|
|
3266
|
+
return t.label++, { value: c[1], done: !1 };
|
|
3267
3267
|
case 5:
|
|
3268
|
-
t.label++, r =
|
|
3268
|
+
t.label++, r = c[1], c = [0];
|
|
3269
3269
|
continue;
|
|
3270
3270
|
case 7:
|
|
3271
|
-
|
|
3271
|
+
c = t.ops.pop(), t.trys.pop();
|
|
3272
3272
|
continue;
|
|
3273
3273
|
default:
|
|
3274
|
-
if (
|
|
3274
|
+
if (o = t.trys, !((o = o.length > 0 && o[o.length - 1]) || c[0] !== 6 && c[0] !== 2)) {
|
|
3275
3275
|
t = 0;
|
|
3276
3276
|
continue;
|
|
3277
3277
|
}
|
|
3278
|
-
if (
|
|
3279
|
-
t.label =
|
|
3278
|
+
if (c[0] === 3 && (!o || c[1] > o[0] && c[1] < o[3])) {
|
|
3279
|
+
t.label = c[1];
|
|
3280
3280
|
break;
|
|
3281
3281
|
}
|
|
3282
|
-
if (
|
|
3283
|
-
t.label =
|
|
3282
|
+
if (c[0] === 6 && t.label < o[1]) {
|
|
3283
|
+
t.label = o[1], o = c;
|
|
3284
3284
|
break;
|
|
3285
3285
|
}
|
|
3286
|
-
if (
|
|
3287
|
-
t.label =
|
|
3286
|
+
if (o && t.label < o[2]) {
|
|
3287
|
+
t.label = o[2], t.ops.push(c);
|
|
3288
3288
|
break;
|
|
3289
3289
|
}
|
|
3290
|
-
|
|
3290
|
+
o[2] && t.ops.pop(), t.trys.pop();
|
|
3291
3291
|
continue;
|
|
3292
3292
|
}
|
|
3293
|
-
|
|
3294
|
-
} catch (
|
|
3295
|
-
|
|
3293
|
+
c = e.call(a, t);
|
|
3294
|
+
} catch (g) {
|
|
3295
|
+
c = [6, g], r = 0;
|
|
3296
3296
|
} finally {
|
|
3297
|
-
n =
|
|
3297
|
+
n = o = 0;
|
|
3298
3298
|
}
|
|
3299
|
-
if (5 &
|
|
3300
|
-
return { value:
|
|
3301
|
-
}([
|
|
3299
|
+
if (5 & c[0]) throw c[1];
|
|
3300
|
+
return { value: c[0] ? c[1] : void 0, done: !0 };
|
|
3301
|
+
}([l, s]);
|
|
3302
3302
|
};
|
|
3303
3303
|
}
|
|
3304
3304
|
}
|
|
@@ -3309,68 +3309,68 @@ function T(a) {
|
|
|
3309
3309
|
return a ^= a >>> 16, a = Math.imul(a, 2246822507), a ^= a >>> 13, a = Math.imul(a, 3266489909), (a ^= a >>> 16) >>> 0;
|
|
3310
3310
|
}
|
|
3311
3311
|
var m = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);
|
|
3312
|
-
function
|
|
3312
|
+
function p(a, e) {
|
|
3313
3313
|
return a << e | a >>> 32 - e;
|
|
3314
3314
|
}
|
|
3315
|
-
function
|
|
3315
|
+
function _(a, e) {
|
|
3316
3316
|
var n;
|
|
3317
3317
|
if (e === void 0 && (e = 0), e = e ? 0 | e : 0, typeof a == "string" && (n = a, a = new TextEncoder().encode(n).buffer), !(a instanceof ArrayBuffer)) throw new TypeError("Expected key to be ArrayBuffer or string");
|
|
3318
3318
|
var r = new Uint32Array([e, e, e, e]);
|
|
3319
|
-
(((function(
|
|
3320
|
-
for (var u =
|
|
3321
|
-
var
|
|
3322
|
-
|
|
3323
|
-
}
|
|
3324
|
-
})))(a, r), function(
|
|
3325
|
-
var u =
|
|
3326
|
-
switch (
|
|
3319
|
+
(((function(i, t) {
|
|
3320
|
+
for (var u = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * u), s = 0; s < u; s++) {
|
|
3321
|
+
var c = l.subarray(4 * s, 4 * (s + 1));
|
|
3322
|
+
c[0] = Math.imul(c[0], m[0]), c[0] = p(c[0], 15), c[0] = Math.imul(c[0], m[1]), t[0] = t[0] ^ c[0], t[0] = p(t[0], 19), t[0] = t[0] + t[1], t[0] = Math.imul(t[0], 5) + 1444728091, c[1] = Math.imul(c[1], m[1]), c[1] = p(c[1], 16), c[1] = Math.imul(c[1], m[2]), t[1] = t[1] ^ c[1], t[1] = p(t[1], 17), t[1] = t[1] + t[2], t[1] = Math.imul(t[1], 5) + 197830471, c[2] = Math.imul(c[2], m[2]), c[2] = p(c[2], 17), c[2] = Math.imul(c[2], m[3]), t[2] = t[2] ^ c[2], t[2] = p(t[2], 15), t[2] = t[2] + t[3], t[2] = Math.imul(t[2], 5) + 2530024501, c[3] = Math.imul(c[3], m[3]), c[3] = p(c[3], 18), c[3] = Math.imul(c[3], m[0]), t[3] = t[3] ^ c[3], t[3] = p(t[3], 13), t[3] = t[3] + t[0], t[3] = Math.imul(t[3], 5) + 850148119;
|
|
3323
|
+
}
|
|
3324
|
+
})))(a, r), function(i, t) {
|
|
3325
|
+
var u = i.byteLength / 16 | 0, l = i.byteLength % 16, s = new Uint32Array(4), c = new Uint8Array(i, 16 * u, l);
|
|
3326
|
+
switch (l) {
|
|
3327
3327
|
case 15:
|
|
3328
|
-
|
|
3328
|
+
s[3] = s[3] ^ c[14] << 16;
|
|
3329
3329
|
case 14:
|
|
3330
|
-
|
|
3330
|
+
s[3] = s[3] ^ c[13] << 8;
|
|
3331
3331
|
case 13:
|
|
3332
|
-
|
|
3332
|
+
s[3] = s[3] ^ c[12] << 0, s[3] = Math.imul(s[3], m[3]), s[3] = p(s[3], 18), s[3] = Math.imul(s[3], m[0]), t[3] = t[3] ^ s[3];
|
|
3333
3333
|
case 12:
|
|
3334
|
-
|
|
3334
|
+
s[2] = s[2] ^ c[11] << 24;
|
|
3335
3335
|
case 11:
|
|
3336
|
-
|
|
3336
|
+
s[2] = s[2] ^ c[10] << 16;
|
|
3337
3337
|
case 10:
|
|
3338
|
-
|
|
3338
|
+
s[2] = s[2] ^ c[9] << 8;
|
|
3339
3339
|
case 9:
|
|
3340
|
-
|
|
3340
|
+
s[2] = s[2] ^ c[8] << 0, s[2] = Math.imul(s[2], m[2]), s[2] = p(s[2], 17), s[2] = Math.imul(s[2], m[3]), t[2] = t[2] ^ s[2];
|
|
3341
3341
|
case 8:
|
|
3342
|
-
|
|
3342
|
+
s[1] = s[1] ^ c[7] << 24;
|
|
3343
3343
|
case 7:
|
|
3344
|
-
|
|
3344
|
+
s[1] = s[1] ^ c[6] << 16;
|
|
3345
3345
|
case 6:
|
|
3346
|
-
|
|
3346
|
+
s[1] = s[1] ^ c[5] << 8;
|
|
3347
3347
|
case 5:
|
|
3348
|
-
|
|
3348
|
+
s[1] = s[1] ^ c[4] << 0, s[1] = Math.imul(s[1], m[1]), s[1] = p(s[1], 16), s[1] = Math.imul(s[1], m[2]), t[1] = t[1] ^ s[1];
|
|
3349
3349
|
case 4:
|
|
3350
|
-
|
|
3350
|
+
s[0] = s[0] ^ c[3] << 24;
|
|
3351
3351
|
case 3:
|
|
3352
|
-
|
|
3352
|
+
s[0] = s[0] ^ c[2] << 16;
|
|
3353
3353
|
case 2:
|
|
3354
|
-
|
|
3354
|
+
s[0] = s[0] ^ c[1] << 8;
|
|
3355
3355
|
case 1:
|
|
3356
|
-
|
|
3356
|
+
s[0] = s[0] ^ c[0] << 0, s[0] = Math.imul(s[0], m[0]), s[0] = p(s[0], 15), s[0] = Math.imul(s[0], m[1]), t[0] = t[0] ^ s[0];
|
|
3357
3357
|
}
|
|
3358
|
-
}(a, r), function(
|
|
3359
|
-
t[0] = t[0] ^
|
|
3358
|
+
}(a, r), function(i, t) {
|
|
3359
|
+
t[0] = t[0] ^ i.byteLength, t[1] = t[1] ^ i.byteLength, t[2] = t[2] ^ i.byteLength, t[3] = t[3] ^ i.byteLength, t[0] = t[0] + t[1] | 0, t[0] = t[0] + t[2] | 0, t[0] = t[0] + t[3] | 0, t[1] = t[1] + t[0] | 0, t[2] = t[2] + t[0] | 0, t[3] = t[3] + t[0] | 0, t[0] = T(t[0]), t[1] = T(t[1]), t[2] = T(t[2]), t[3] = T(t[3]), t[0] = t[0] + t[1] | 0, t[0] = t[0] + t[2] | 0, t[0] = t[0] + t[3] | 0, t[1] = t[1] + t[0] | 0, t[2] = t[2] + t[0] | 0, t[3] = t[3] + t[0] | 0;
|
|
3360
3360
|
}(a, r);
|
|
3361
|
-
var
|
|
3362
|
-
return Array.from(
|
|
3363
|
-
return
|
|
3361
|
+
var o = new Uint8Array(r.buffer);
|
|
3362
|
+
return Array.from(o).map(function(i) {
|
|
3363
|
+
return i.toString(16).padStart(2, "0");
|
|
3364
3364
|
}).join("");
|
|
3365
3365
|
}
|
|
3366
3366
|
function H(a) {
|
|
3367
3367
|
for (var e = 0, n = 0; n < a.length; ++n) e += Math.abs(a[n]);
|
|
3368
3368
|
return e;
|
|
3369
3369
|
}
|
|
3370
|
-
function
|
|
3371
|
-
for (var r = [],
|
|
3372
|
-
for (var
|
|
3373
|
-
r.push(Q(
|
|
3370
|
+
function q(a, e, n) {
|
|
3371
|
+
for (var r = [], o = 0; o < a[0].data.length; o++) {
|
|
3372
|
+
for (var i = [], t = 0; t < a.length; t++) i.push(a[t].data[o]);
|
|
3373
|
+
r.push(Q(i));
|
|
3374
3374
|
}
|
|
3375
3375
|
var u = new Uint8ClampedArray(r);
|
|
3376
3376
|
return new ImageData(u, e, n);
|
|
@@ -3378,32 +3378,32 @@ function L(a, e, n) {
|
|
|
3378
3378
|
function Q(a) {
|
|
3379
3379
|
if (a.length === 0) return 0;
|
|
3380
3380
|
for (var e = {}, n = 0, r = a; n < r.length; n++)
|
|
3381
|
-
e[
|
|
3382
|
-
var
|
|
3383
|
-
for (var
|
|
3384
|
-
return
|
|
3381
|
+
e[i = r[n]] = (e[i] || 0) + 1;
|
|
3382
|
+
var o = a[0];
|
|
3383
|
+
for (var i in e) e[i] > e[o] && (o = parseInt(i, 10));
|
|
3384
|
+
return o;
|
|
3385
3385
|
}
|
|
3386
3386
|
function C() {
|
|
3387
3387
|
if (typeof navigator > "u") return { name: "unknown", version: "unknown" };
|
|
3388
3388
|
for (var a = navigator.userAgent, e = { Edg: "Edge", OPR: "Opera" }, n = 0, r = [/(?<name>Edge|Edg)\/(?<version>\d+(?:\.\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/, /(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/, /(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/, /(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/]; n < r.length; n++) {
|
|
3389
|
-
var
|
|
3390
|
-
if (
|
|
3389
|
+
var o = r[n], i = a.match(o);
|
|
3390
|
+
if (i && i.groups) return { name: e[i.groups.name] || i.groups.name, version: i.groups.version };
|
|
3391
3391
|
}
|
|
3392
3392
|
return { name: "unknown", version: "unknown" };
|
|
3393
3393
|
}
|
|
3394
3394
|
v("audio", function() {
|
|
3395
|
-
return
|
|
3396
|
-
return
|
|
3395
|
+
return y(this, void 0, void 0, function() {
|
|
3396
|
+
return w(this, function(a) {
|
|
3397
3397
|
return [2, new Promise(function(e, n) {
|
|
3398
3398
|
try {
|
|
3399
|
-
var r = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100),
|
|
3400
|
-
|
|
3399
|
+
var r = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), o = r.createBufferSource(), i = r.createOscillator();
|
|
3400
|
+
i.frequency.value = 1e3;
|
|
3401
3401
|
var t, u = r.createDynamicsCompressor();
|
|
3402
|
-
u.threshold.value = -50, u.knee.value = 40, u.ratio.value = 12, u.attack.value = 0, u.release.value = 0.2,
|
|
3403
|
-
t =
|
|
3402
|
+
u.threshold.value = -50, u.knee.value = 40, u.ratio.value = 12, u.attack.value = 0, u.release.value = 0.2, i.connect(u), u.connect(r.destination), i.start(), r.oncomplete = function(l) {
|
|
3403
|
+
t = l.renderedBuffer.getChannelData(0), e({ sampleHash: H(t), oscillator: i.type, maxChannels: r.destination.maxChannelCount, channelCountMode: o.channelCountMode });
|
|
3404
3404
|
}, r.startRendering();
|
|
3405
|
-
} catch (
|
|
3406
|
-
console.error("Error creating audio fingerprint:",
|
|
3405
|
+
} catch (l) {
|
|
3406
|
+
console.error("Error creating audio fingerprint:", l), n(l);
|
|
3407
3407
|
}
|
|
3408
3408
|
})];
|
|
3409
3409
|
});
|
|
@@ -3417,18 +3417,18 @@ C().name != "Firefox" && v("canvas", function() {
|
|
|
3417
3417
|
var n = document.createElement("canvas"), r = n.getContext("2d");
|
|
3418
3418
|
if (!r) return new ImageData(1, 1);
|
|
3419
3419
|
n.width = P, n.height = k;
|
|
3420
|
-
var
|
|
3421
|
-
|
|
3422
|
-
var
|
|
3423
|
-
r.font = "23.123px Arial", r.fillStyle = "black", r.fillText(
|
|
3420
|
+
var o = r.createLinearGradient(0, 0, n.width, n.height);
|
|
3421
|
+
o.addColorStop(0, "red"), o.addColorStop(0.16666666666666666, "orange"), o.addColorStop(0.3333333333333333, "yellow"), o.addColorStop(0.5, "green"), o.addColorStop(0.6666666666666666, "blue"), o.addColorStop(0.8333333333333334, "indigo"), o.addColorStop(1, "violet"), r.fillStyle = o, r.fillRect(0, 0, n.width, n.height);
|
|
3422
|
+
var i = "Random Text WMwmil10Oo";
|
|
3423
|
+
r.font = "23.123px Arial", r.fillStyle = "black", r.fillText(i, -5, 15), r.fillStyle = "rgba(0, 0, 255, 0.5)", r.fillText(i, -3.3, 17.7), r.beginPath(), r.moveTo(0, 0), r.lineTo(2 * n.width / 7, n.height), r.strokeStyle = "white", r.lineWidth = 2, r.stroke();
|
|
3424
3424
|
var t = r.getImageData(0, 0, n.width, n.height);
|
|
3425
3425
|
return t;
|
|
3426
3426
|
}();
|
|
3427
3427
|
});
|
|
3428
|
-
a({ commonImageDataHash:
|
|
3428
|
+
a({ commonImageDataHash: _(q(e, P, k).data.toString()).toString() });
|
|
3429
3429
|
});
|
|
3430
3430
|
});
|
|
3431
|
-
var
|
|
3431
|
+
var I, X = ["Arial", "Arial Black", "Arial Narrow", "Arial Rounded MT", "Arimo", "Archivo", "Barlow", "Bebas Neue", "Bitter", "Bookman", "Calibri", "Cabin", "Candara", "Century", "Century Gothic", "Comic Sans MS", "Constantia", "Courier", "Courier New", "Crimson Text", "DM Mono", "DM Sans", "DM Serif Display", "DM Serif Text", "Dosis", "Droid Sans", "Exo", "Fira Code", "Fira Sans", "Franklin Gothic Medium", "Garamond", "Geneva", "Georgia", "Gill Sans", "Helvetica", "Impact", "Inconsolata", "Indie Flower", "Inter", "Josefin Sans", "Karla", "Lato", "Lexend", "Lucida Bright", "Lucida Console", "Lucida Sans Unicode", "Manrope", "Merriweather", "Merriweather Sans", "Montserrat", "Myriad", "Noto Sans", "Nunito", "Nunito Sans", "Open Sans", "Optima", "Orbitron", "Oswald", "Pacifico", "Palatino", "Perpetua", "PT Sans", "PT Serif", "Poppins", "Prompt", "Public Sans", "Quicksand", "Rajdhani", "Recursive", "Roboto", "Roboto Condensed", "Rockwell", "Rubik", "Segoe Print", "Segoe Script", "Segoe UI", "Sora", "Source Sans Pro", "Space Mono", "Tahoma", "Taviraj", "Times", "Times New Roman", "Titillium Web", "Trebuchet MS", "Ubuntu", "Varela Round", "Verdana", "Work Sans"], J = ["monospace", "sans-serif", "serif"];
|
|
3432
3432
|
function F(a, e) {
|
|
3433
3433
|
if (!a) throw new Error("Canvas context not supported");
|
|
3434
3434
|
return a.font = "72px ".concat(e), a.measureText("WwMmLli0Oo").width;
|
|
@@ -3436,15 +3436,15 @@ function F(a, e) {
|
|
|
3436
3436
|
function Y() {
|
|
3437
3437
|
var a, e = document.createElement("canvas"), n = (a = e.getContext("webgl")) !== null && a !== void 0 ? a : e.getContext("experimental-webgl");
|
|
3438
3438
|
if (n && "getParameter" in n) try {
|
|
3439
|
-
var r = (n.getParameter(n.VENDOR) || "").toString(),
|
|
3440
|
-
if (!
|
|
3439
|
+
var r = (n.getParameter(n.VENDOR) || "").toString(), o = (n.getParameter(n.RENDERER) || "").toString(), i = { vendor: r, renderer: o, version: (n.getParameter(n.VERSION) || "").toString(), shadingLanguageVersion: (n.getParameter(n.SHADING_LANGUAGE_VERSION) || "").toString() };
|
|
3440
|
+
if (!o.length || !r.length) {
|
|
3441
3441
|
var t = n.getExtension("WEBGL_debug_renderer_info");
|
|
3442
3442
|
if (t) {
|
|
3443
|
-
var u = (n.getParameter(t.UNMASKED_VENDOR_WEBGL) || "").toString(),
|
|
3444
|
-
u && (
|
|
3443
|
+
var u = (n.getParameter(t.UNMASKED_VENDOR_WEBGL) || "").toString(), l = (n.getParameter(t.UNMASKED_RENDERER_WEBGL) || "").toString();
|
|
3444
|
+
u && (i.vendorUnmasked = u), l && (i.rendererUnmasked = l);
|
|
3445
3445
|
}
|
|
3446
3446
|
}
|
|
3447
|
-
return
|
|
3447
|
+
return i;
|
|
3448
3448
|
} catch {
|
|
3449
3449
|
}
|
|
3450
3450
|
return "undefined";
|
|
@@ -3456,23 +3456,23 @@ function Z() {
|
|
|
3456
3456
|
function ee(a, e) {
|
|
3457
3457
|
var n = {};
|
|
3458
3458
|
return e.forEach(function(r) {
|
|
3459
|
-
var
|
|
3460
|
-
if (
|
|
3459
|
+
var o = function(i) {
|
|
3460
|
+
if (i.length === 0) return null;
|
|
3461
3461
|
var t = {};
|
|
3462
|
-
|
|
3463
|
-
var
|
|
3464
|
-
t[
|
|
3462
|
+
i.forEach(function(s) {
|
|
3463
|
+
var c = String(s);
|
|
3464
|
+
t[c] = (t[c] || 0) + 1;
|
|
3465
3465
|
});
|
|
3466
|
-
var u =
|
|
3467
|
-
return Object.keys(t).forEach(function(
|
|
3468
|
-
t[
|
|
3466
|
+
var u = i[0], l = 1;
|
|
3467
|
+
return Object.keys(t).forEach(function(s) {
|
|
3468
|
+
t[s] > l && (u = s, l = t[s]);
|
|
3469
3469
|
}), u;
|
|
3470
|
-
}(a.map(function(
|
|
3471
|
-
return r in
|
|
3472
|
-
}).filter(function(
|
|
3473
|
-
return
|
|
3470
|
+
}(a.map(function(i) {
|
|
3471
|
+
return r in i ? i[r] : void 0;
|
|
3472
|
+
}).filter(function(i) {
|
|
3473
|
+
return i !== void 0;
|
|
3474
3474
|
}));
|
|
3475
|
-
|
|
3475
|
+
o && (n[r] = o);
|
|
3476
3476
|
}), n;
|
|
3477
3477
|
}
|
|
3478
3478
|
function te() {
|
|
@@ -3496,37 +3496,37 @@ C().name != "Firefox" && v("fonts", function() {
|
|
|
3496
3496
|
return new Promise(function(e, n) {
|
|
3497
3497
|
try {
|
|
3498
3498
|
(function(r) {
|
|
3499
|
-
var
|
|
3500
|
-
|
|
3501
|
-
var
|
|
3502
|
-
return
|
|
3503
|
-
switch (
|
|
3499
|
+
var o;
|
|
3500
|
+
y(this, void 0, void 0, function() {
|
|
3501
|
+
var i, t, u;
|
|
3502
|
+
return w(this, function(l) {
|
|
3503
|
+
switch (l.label) {
|
|
3504
3504
|
case 0:
|
|
3505
|
-
return document.body ? [3, 2] : [4, (
|
|
3506
|
-
return setTimeout(
|
|
3505
|
+
return document.body ? [3, 2] : [4, (s = 50, new Promise(function(g) {
|
|
3506
|
+
return setTimeout(g, s, c);
|
|
3507
3507
|
}))];
|
|
3508
3508
|
case 1:
|
|
3509
|
-
return
|
|
3509
|
+
return l.sent(), [3, 0];
|
|
3510
3510
|
case 2:
|
|
3511
|
-
if ((
|
|
3511
|
+
if ((i = document.createElement("iframe")).setAttribute("frameBorder", "0"), (t = i.style).setProperty("position", "fixed"), t.setProperty("display", "block", "important"), t.setProperty("visibility", "visible"), t.setProperty("border", "0"), t.setProperty("opacity", "0"), i.src = "about:blank", document.body.appendChild(i), !(u = i.contentDocument || ((o = i.contentWindow) === null || o === void 0 ? void 0 : o.document))) throw new Error("Iframe document is not accessible");
|
|
3512
3512
|
return r({ iframe: u }), setTimeout(function() {
|
|
3513
|
-
document.body.removeChild(
|
|
3513
|
+
document.body.removeChild(i);
|
|
3514
3514
|
}, 0), [2];
|
|
3515
3515
|
}
|
|
3516
|
-
var
|
|
3516
|
+
var s, c;
|
|
3517
3517
|
});
|
|
3518
3518
|
});
|
|
3519
3519
|
})(function(r) {
|
|
3520
|
-
var
|
|
3521
|
-
return
|
|
3522
|
-
var
|
|
3523
|
-
return
|
|
3524
|
-
return
|
|
3525
|
-
return F(t,
|
|
3526
|
-
}),
|
|
3527
|
-
var
|
|
3528
|
-
u.includes(
|
|
3529
|
-
}), e(
|
|
3520
|
+
var o = r.iframe;
|
|
3521
|
+
return y(a, void 0, void 0, function() {
|
|
3522
|
+
var i, t, u, l;
|
|
3523
|
+
return w(this, function(s) {
|
|
3524
|
+
return i = o.createElement("canvas"), t = i.getContext("2d"), u = J.map(function(c) {
|
|
3525
|
+
return F(t, c);
|
|
3526
|
+
}), l = {}, X.forEach(function(c) {
|
|
3527
|
+
var g = F(t, c);
|
|
3528
|
+
u.includes(g) || (l[c] = g);
|
|
3529
|
+
}), e(l), [2];
|
|
3530
3530
|
});
|
|
3531
3531
|
});
|
|
3532
3532
|
});
|
|
@@ -3544,24 +3544,24 @@ C().name != "Firefox" && v("fonts", function() {
|
|
|
3544
3544
|
a({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });
|
|
3545
3545
|
});
|
|
3546
3546
|
}), v("permissions", function() {
|
|
3547
|
-
return
|
|
3547
|
+
return y(this, void 0, void 0, function() {
|
|
3548
3548
|
var a;
|
|
3549
|
-
return
|
|
3550
|
-
return
|
|
3549
|
+
return w(this, function(e) {
|
|
3550
|
+
return I = (S == null ? void 0 : S.permissions_to_check) || ["accelerometer", "accessibility", "accessibility-events", "ambient-light-sensor", "background-fetch", "background-sync", "bluetooth", "camera", "clipboard-read", "clipboard-write", "device-info", "display-capture", "gyroscope", "geolocation", "local-fonts", "magnetometer", "microphone", "midi", "nfc", "notifications", "payment-handler", "persistent-storage", "push", "speaker", "storage-access", "top-level-storage-access", "window-management", "query"], a = Array.from({ length: (S == null ? void 0 : S.retries) || 3 }, function() {
|
|
3551
3551
|
return function() {
|
|
3552
|
-
return
|
|
3553
|
-
var n, r,
|
|
3554
|
-
return
|
|
3552
|
+
return y(this, void 0, void 0, function() {
|
|
3553
|
+
var n, r, o, i, t;
|
|
3554
|
+
return w(this, function(u) {
|
|
3555
3555
|
switch (u.label) {
|
|
3556
3556
|
case 0:
|
|
3557
|
-
n = {}, r = 0,
|
|
3557
|
+
n = {}, r = 0, o = I, u.label = 1;
|
|
3558
3558
|
case 1:
|
|
3559
|
-
if (!(r <
|
|
3560
|
-
|
|
3559
|
+
if (!(r < o.length)) return [3, 6];
|
|
3560
|
+
i = o[r], u.label = 2;
|
|
3561
3561
|
case 2:
|
|
3562
|
-
return u.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name:
|
|
3562
|
+
return u.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];
|
|
3563
3563
|
case 3:
|
|
3564
|
-
return t = u.sent(), n[
|
|
3564
|
+
return t = u.sent(), n[i] = t.state.toString(), [3, 5];
|
|
3565
3565
|
case 4:
|
|
3566
3566
|
return u.sent(), [3, 5];
|
|
3567
3567
|
case 5:
|
|
@@ -3573,7 +3573,7 @@ C().name != "Firefox" && v("fonts", function() {
|
|
|
3573
3573
|
});
|
|
3574
3574
|
}();
|
|
3575
3575
|
}), [2, Promise.all(a).then(function(n) {
|
|
3576
|
-
return ee(n,
|
|
3576
|
+
return ee(n, I);
|
|
3577
3577
|
})];
|
|
3578
3578
|
});
|
|
3579
3579
|
});
|
|
@@ -3596,18 +3596,18 @@ C().name != "Firefox" && v("fonts", function() {
|
|
|
3596
3596
|
a({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: e.name, version: e.version }, applePayVersion: ne() });
|
|
3597
3597
|
});
|
|
3598
3598
|
});
|
|
3599
|
-
var f, re = C().name !== "SamsungBrowser" ? 1 : 3,
|
|
3599
|
+
var f, re = C().name !== "SamsungBrowser" ? 1 : 3, d = null;
|
|
3600
3600
|
v("webgl", function() {
|
|
3601
|
-
return
|
|
3601
|
+
return y(this, void 0, void 0, function() {
|
|
3602
3602
|
var a;
|
|
3603
|
-
return
|
|
3604
|
-
typeof document < "u" && ((f = document.createElement("canvas")).width = 200, f.height = 100,
|
|
3603
|
+
return w(this, function(e) {
|
|
3604
|
+
typeof document < "u" && ((f = document.createElement("canvas")).width = 200, f.height = 100, d = f.getContext("webgl"));
|
|
3605
3605
|
try {
|
|
3606
|
-
if (!
|
|
3606
|
+
if (!d) throw new Error("WebGL not supported");
|
|
3607
3607
|
return a = Array.from({ length: re }, function() {
|
|
3608
3608
|
return function() {
|
|
3609
3609
|
try {
|
|
3610
|
-
if (!
|
|
3610
|
+
if (!d) throw new Error("WebGL not supported");
|
|
3611
3611
|
var n = `
|
|
3612
3612
|
attribute vec2 position;
|
|
3613
3613
|
void main() {
|
|
@@ -3618,31 +3618,31 @@ v("webgl", function() {
|
|
|
3618
3618
|
void main() {
|
|
3619
3619
|
gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
|
|
3620
3620
|
}
|
|
3621
|
-
`,
|
|
3622
|
-
if (!
|
|
3623
|
-
if (
|
|
3624
|
-
if (
|
|
3625
|
-
var t =
|
|
3621
|
+
`, o = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);
|
|
3622
|
+
if (!o || !i) throw new Error("Failed to create shaders");
|
|
3623
|
+
if (d.shaderSource(o, n), d.shaderSource(i, r), d.compileShader(o), !d.getShaderParameter(o, d.COMPILE_STATUS)) throw new Error("Vertex shader compilation failed: " + d.getShaderInfoLog(o));
|
|
3624
|
+
if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error("Fragment shader compilation failed: " + d.getShaderInfoLog(i));
|
|
3625
|
+
var t = d.createProgram();
|
|
3626
3626
|
if (!t) throw new Error("Failed to create shader program");
|
|
3627
|
-
if (
|
|
3628
|
-
|
|
3629
|
-
for (var u = 137,
|
|
3630
|
-
var
|
|
3631
|
-
|
|
3627
|
+
if (d.attachShader(t, o), d.attachShader(t, i), d.linkProgram(t), !d.getProgramParameter(t, d.LINK_STATUS)) throw new Error("Shader program linking failed: " + d.getProgramInfoLog(t));
|
|
3628
|
+
d.useProgram(t);
|
|
3629
|
+
for (var u = 137, l = new Float32Array(4 * u), s = 2 * Math.PI / u, c = 0; c < u; c++) {
|
|
3630
|
+
var g = c * s;
|
|
3631
|
+
l[4 * c] = 0, l[4 * c + 1] = 0, l[4 * c + 2] = Math.cos(g) * (f.width / 2), l[4 * c + 3] = Math.sin(g) * (f.height / 2);
|
|
3632
3632
|
}
|
|
3633
|
-
var
|
|
3634
|
-
|
|
3635
|
-
var R =
|
|
3636
|
-
|
|
3633
|
+
var L = d.createBuffer();
|
|
3634
|
+
d.bindBuffer(d.ARRAY_BUFFER, L), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);
|
|
3635
|
+
var R = d.getAttribLocation(t, "position");
|
|
3636
|
+
d.enableVertexAttribArray(R), d.vertexAttribPointer(R, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, f.width, f.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * u);
|
|
3637
3637
|
var x = new Uint8ClampedArray(f.width * f.height * 4);
|
|
3638
|
-
return
|
|
3638
|
+
return d.readPixels(0, 0, f.width, f.height, d.RGBA, d.UNSIGNED_BYTE, x), new ImageData(x, f.width, f.height);
|
|
3639
3639
|
} catch {
|
|
3640
3640
|
return new ImageData(1, 1);
|
|
3641
3641
|
} finally {
|
|
3642
|
-
|
|
3642
|
+
d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));
|
|
3643
3643
|
}
|
|
3644
3644
|
}();
|
|
3645
|
-
}), [2, { commonImageHash:
|
|
3645
|
+
}), [2, { commonImageHash: _(q(a, f.width, f.height).data.toString()).toString() }];
|
|
3646
3646
|
} catch {
|
|
3647
3647
|
return [2, { webgl: "unsupported" }];
|
|
3648
3648
|
}
|
|
@@ -3651,13 +3651,13 @@ v("webgl", function() {
|
|
|
3651
3651
|
});
|
|
3652
3652
|
});
|
|
3653
3653
|
var b = function(a, e, n, r) {
|
|
3654
|
-
for (var
|
|
3655
|
-
|
|
3656
|
-
return
|
|
3654
|
+
for (var o = (n - e) / r, i = 0, t = 0; t < r; t++)
|
|
3655
|
+
i += a(e + (t + 0.5) * o);
|
|
3656
|
+
return i * o;
|
|
3657
3657
|
};
|
|
3658
3658
|
v("math", function() {
|
|
3659
|
-
return
|
|
3660
|
-
return
|
|
3659
|
+
return y(void 0, void 0, void 0, function() {
|
|
3660
|
+
return w(this, function(a) {
|
|
3661
3661
|
return [2, { acos: Math.acos(0.5), asin: b(Math.asin, -1, 1, 97), atan: b(Math.atan, -1, 1, 97), cos: b(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: b(Math.sin, -Math.PI, Math.PI, 97), sinh: b(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: b(Math.tan, 0, 2 * Math.PI, 97), tanh: b(Math.tanh, -9 / 7, 7 / 9, 97) }];
|
|
3662
3662
|
});
|
|
3663
3663
|
});
|
|
@@ -3677,9 +3677,11 @@ const initialSearchcraftStateValues = {
|
|
|
3677
3677
|
rangeValueForIndexFields: {},
|
|
3678
3678
|
searchTerm: '',
|
|
3679
3679
|
searchMode: 'fuzzy',
|
|
3680
|
+
searchClientRequest: undefined,
|
|
3680
3681
|
searchClientResponseItems: [],
|
|
3681
3682
|
searchResponseTimeTaken: undefined,
|
|
3682
3683
|
searchResponseFacetPrime: undefined,
|
|
3684
|
+
supplementalFacetPrime: undefined,
|
|
3683
3685
|
searchResultsCount: 0,
|
|
3684
3686
|
searchResultsPerPage: 20,
|
|
3685
3687
|
searchResultsPage: 1,
|
|
@@ -3779,7 +3781,7 @@ const searchcraftStore = zustand.createStore((_set, get) => {
|
|
|
3779
3781
|
}, functions.setSearchClientResponseItemsFromResponse, functions.setAdClientResponseItems);
|
|
3780
3782
|
},
|
|
3781
3783
|
setAdClientResponseItems: (items) => functions.set({ adClientResponseItems: items }),
|
|
3782
|
-
setSearchClientResponseItemsFromResponse: (response, items) => {
|
|
3784
|
+
setSearchClientResponseItemsFromResponse: (request, response, items, supplementalResponse) => {
|
|
3783
3785
|
const { facets, count = 0, time_taken = 0 } = response.data;
|
|
3784
3786
|
const state = functions.set((state) => {
|
|
3785
3787
|
return {
|
|
@@ -3791,12 +3793,14 @@ const searchcraftStore = zustand.createStore((_set, get) => {
|
|
|
3791
3793
|
count === state.searchResultsCount ? state.searchResultsPage : 1,
|
|
3792
3794
|
searchResultsCount: count,
|
|
3793
3795
|
searchResponseFacetPrime: facets,
|
|
3796
|
+
supplementalFacetPrime: supplementalResponse?.data.facets,
|
|
3797
|
+
searchClientRequest: request,
|
|
3794
3798
|
};
|
|
3795
3799
|
});
|
|
3796
3800
|
state.logger?.log(O.DEBUG, `Search results: ${JSON.stringify(items)}`);
|
|
3797
3801
|
state.logger?.log(O.DEBUG, `Facets from response: ${JSON.stringify(facets)}`);
|
|
3798
3802
|
},
|
|
3799
|
-
setInitialSearchClientResponseItemsFromResponse: (response, items) => {
|
|
3803
|
+
setInitialSearchClientResponseItemsFromResponse: (request, response, items) => {
|
|
3800
3804
|
const state = get();
|
|
3801
3805
|
const { count = 0, time_taken = 0 } = response.data;
|
|
3802
3806
|
functions.set((state) => {
|
|
@@ -3808,6 +3812,7 @@ const searchcraftStore = zustand.createStore((_set, get) => {
|
|
|
3808
3812
|
// Reset to first page when response count changes
|
|
3809
3813
|
count === state.searchResultsCount ? state.searchResultsPage : 1,
|
|
3810
3814
|
searchResultsCount: count,
|
|
3815
|
+
searchClientRequest: request,
|
|
3811
3816
|
};
|
|
3812
3817
|
});
|
|
3813
3818
|
state.logger?.log(O.DEBUG, `Search results: ${JSON.stringify(items)}`);
|
|
@@ -3835,12 +3840,6 @@ const searchcraftStore = zustand.createStore((_set, get) => {
|
|
|
3835
3840
|
*/
|
|
3836
3841
|
functions.set({
|
|
3837
3842
|
searchTerm,
|
|
3838
|
-
facetPathsForIndexFields: {},
|
|
3839
|
-
...(searchTerm.trim().length === 0 && {
|
|
3840
|
-
searchMode: 'fuzzy',
|
|
3841
|
-
sortType: null,
|
|
3842
|
-
orderByField: null,
|
|
3843
|
-
}),
|
|
3844
3843
|
});
|
|
3845
3844
|
},
|
|
3846
3845
|
setSearchClientResponseItems: (items) => functions.set({ searchClientResponseItems: items }),
|
|
@@ -3868,7 +3867,22 @@ const searchcraftStore = zustand.createStore((_set, get) => {
|
|
|
3868
3867
|
return stateObject;
|
|
3869
3868
|
});
|
|
3870
3869
|
|
|
3871
|
-
|
|
3870
|
+
/**
|
|
3871
|
+
* Helper function for getting a Node (FacetWithChildrenObject)
|
|
3872
|
+
* at a given path. Traverses the node tree to get the node.
|
|
3873
|
+
*/
|
|
3874
|
+
const getFacetTreeNodeAtPath = (tree, nodePaths) => {
|
|
3875
|
+
let cursor = tree;
|
|
3876
|
+
for (const nodePath of nodePaths) {
|
|
3877
|
+
cursor = cursor?.children[nodePath];
|
|
3878
|
+
}
|
|
3879
|
+
return cursor;
|
|
3880
|
+
};
|
|
3881
|
+
/**
|
|
3882
|
+
* Helper function to perform a deep merge.
|
|
3883
|
+
* Used for merging two branches of a facet tree together.
|
|
3884
|
+
*/
|
|
3885
|
+
const deepMergeWithSpread = (obj1, obj2) => {
|
|
3872
3886
|
const result = { ...obj1 };
|
|
3873
3887
|
for (const key in obj2) {
|
|
3874
3888
|
// biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>
|
|
@@ -3882,119 +3896,95 @@ function deepMergeWithSpread(obj1, obj2) {
|
|
|
3882
3896
|
}
|
|
3883
3897
|
}
|
|
3884
3898
|
return result;
|
|
3885
|
-
}
|
|
3899
|
+
};
|
|
3886
3900
|
/**
|
|
3887
|
-
* Given an array of facet paths, removes parent facet paths
|
|
3901
|
+
* Given an array of facet paths, removes parent facet paths so that only the
|
|
3902
|
+
* Leaf facets are sent with the search request.
|
|
3888
3903
|
*/
|
|
3889
3904
|
function removeSubstringMatches(arr) {
|
|
3890
3905
|
return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));
|
|
3891
3906
|
}
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
const fragment = record[key];
|
|
3914
|
-
if (!fragment) {
|
|
3915
|
-
return;
|
|
3916
|
-
}
|
|
3917
|
-
if (fragment.path === '/') {
|
|
3918
|
-
return;
|
|
3919
|
-
}
|
|
3920
|
-
const pathParts = fragment.path.substring(1).split('/');
|
|
3921
|
-
let currentRoot = root;
|
|
3922
|
-
let currentPath = '';
|
|
3923
|
-
pathParts.forEach((part, index) => {
|
|
3924
|
-
const nextPath = `${currentPath}/${part}`;
|
|
3925
|
-
if (!currentRoot.children[nextPath]) {
|
|
3926
|
-
currentRoot.children[nextPath] = {
|
|
3927
|
-
count: 0,
|
|
3928
|
-
path: nextPath,
|
|
3929
|
-
children: {},
|
|
3907
|
+
/**
|
|
3908
|
+
* Merges a current facet tree with an incoming facet tree.
|
|
3909
|
+
*
|
|
3910
|
+
* At each branch, the incoming facet tree's facets override current facet tree
|
|
3911
|
+
*
|
|
3912
|
+
* @param currentTree
|
|
3913
|
+
* @param incomingTree
|
|
3914
|
+
*/
|
|
3915
|
+
const mergeFacetTrees = (currentTree, incomingTree) => {
|
|
3916
|
+
const mergedTree = structuredClone(currentTree);
|
|
3917
|
+
const merge = (currentBranch, nodePath) => {
|
|
3918
|
+
const mergedBranch = structuredClone(currentBranch);
|
|
3919
|
+
const incomingBranch = getFacetTreeNodeAtPath(incomingTree, nodePath);
|
|
3920
|
+
if (!incomingBranch) {
|
|
3921
|
+
return mergedBranch;
|
|
3922
|
+
}
|
|
3923
|
+
for (const nodeName of Object.keys(currentBranch.children)) {
|
|
3924
|
+
if (incomingBranch.children[nodeName]) {
|
|
3925
|
+
mergedBranch.children[nodeName] = {
|
|
3926
|
+
...deepMergeWithSpread(currentBranch.children[nodeName], incomingBranch.children[nodeName]),
|
|
3927
|
+
count: mergedBranch.children[nodeName]?.count || 0,
|
|
3930
3928
|
};
|
|
3931
3929
|
}
|
|
3932
|
-
if (
|
|
3933
|
-
|
|
3930
|
+
else if (mergedBranch.children[nodeName]) {
|
|
3931
|
+
mergedBranch.children[nodeName] = merge(mergedBranch.children[nodeName], [...nodePath, nodeName]);
|
|
3934
3932
|
}
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
});
|
|
3938
|
-
});
|
|
3939
|
-
return root;
|
|
3940
|
-
}
|
|
3941
|
-
function objectToFacet(childObject) {
|
|
3942
|
-
const transformed = {
|
|
3943
|
-
count: childObject.count,
|
|
3944
|
-
path: childObject.path,
|
|
3945
|
-
children: [],
|
|
3933
|
+
}
|
|
3934
|
+
return mergedBranch;
|
|
3946
3935
|
};
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
}
|
|
3950
|
-
return transformed;
|
|
3951
|
-
}
|
|
3936
|
+
return merge(mergedTree, []);
|
|
3937
|
+
};
|
|
3952
3938
|
/**
|
|
3953
|
-
*
|
|
3939
|
+
* A function that converts a FacetWithChidrenArray to a complete FacetTree object.
|
|
3940
|
+
*
|
|
3941
|
+
* It uses the `path` of each Facet to build the tree.
|
|
3942
|
+
*
|
|
3943
|
+
* @param facetWithChildArray
|
|
3954
3944
|
*/
|
|
3955
|
-
|
|
3956
|
-
//
|
|
3957
|
-
const
|
|
3958
|
-
const paths2 = Object.keys(record2);
|
|
3959
|
-
// Find all parent paths in record2
|
|
3960
|
-
const parentPaths = new Set(paths2
|
|
3961
|
-
.filter((path) => path.split('/').length > 2) // Only consider paths with more than one level
|
|
3962
|
-
.map((path) => path.substring(0, path.lastIndexOf('/'))));
|
|
3963
|
-
// Filter out keys in record1 that share a parent path with any of the identified parent paths
|
|
3964
|
-
const filteredRecord = Object.fromEntries(paths1
|
|
3965
|
-
.filter((path) => !parentPaths.has(path.substring(0, path.lastIndexOf('/'))))
|
|
3966
|
-
.map((path) => [path, record1[path]]));
|
|
3967
|
-
return filteredRecord;
|
|
3968
|
-
}
|
|
3969
|
-
function mergeFacetRoots(fieldName, currentRoot, incomingRoot) {
|
|
3970
|
-
const currentArray = currentRoot[fieldName];
|
|
3971
|
-
const incomingArray = incomingRoot[fieldName];
|
|
3972
|
-
const currentRootFacetChild = {
|
|
3973
|
-
count: 0,
|
|
3945
|
+
const facetWithChildrenArrayToCompleteFacetTree = (rootArray) => {
|
|
3946
|
+
// 1) Start with an empty tree at root "/"
|
|
3947
|
+
const tree = {
|
|
3974
3948
|
path: '/',
|
|
3975
|
-
children: currentArray,
|
|
3976
|
-
};
|
|
3977
|
-
const incomingRootFacetChild = {
|
|
3978
3949
|
count: 0,
|
|
3979
|
-
|
|
3980
|
-
children: incomingArray,
|
|
3950
|
+
children: {},
|
|
3981
3951
|
};
|
|
3982
|
-
//
|
|
3983
|
-
const
|
|
3984
|
-
const
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
const mergedFacetChild = objectToFacet(mergedObject);
|
|
3994
|
-
return {
|
|
3995
|
-
[fieldName]: mergedFacetChild.children,
|
|
3952
|
+
// 2) Recursively collect all nodes except the implicit "/" itself
|
|
3953
|
+
const allFacets = [];
|
|
3954
|
+
const collect = (node) => {
|
|
3955
|
+
if (node.path !== '/') {
|
|
3956
|
+
allFacets.push({ path: node.path, count: node.count });
|
|
3957
|
+
}
|
|
3958
|
+
if (node.children) {
|
|
3959
|
+
for (const child of node.children) {
|
|
3960
|
+
collect(child);
|
|
3961
|
+
}
|
|
3962
|
+
}
|
|
3996
3963
|
};
|
|
3997
|
-
|
|
3964
|
+
collect(rootArray);
|
|
3965
|
+
// 3) Insert each flat node into our tree, creating missing ancestors
|
|
3966
|
+
for (const { path, count } of allFacets) {
|
|
3967
|
+
const segments = path.split('/').filter(Boolean); // "/sports/outdoors" -> ["sports","outdoors"]
|
|
3968
|
+
let cursor = tree; // start at the root
|
|
3969
|
+
for (const segment of segments) {
|
|
3970
|
+
// Build the full path of this level
|
|
3971
|
+
const prefixPath = cursor.path === '/' ? `/${segment}` : `${cursor.path}/${segment}`;
|
|
3972
|
+
// If this segment doesn't exist yet, create it
|
|
3973
|
+
if (!cursor.children[segment]) {
|
|
3974
|
+
cursor.children[segment] = {
|
|
3975
|
+
path: prefixPath,
|
|
3976
|
+
count: count,
|
|
3977
|
+
children: {},
|
|
3978
|
+
};
|
|
3979
|
+
}
|
|
3980
|
+
// Descend to the next level deeper
|
|
3981
|
+
cursor = cursor.children[segment];
|
|
3982
|
+
}
|
|
3983
|
+
// 4) now `cursor` is the node matching `path` — assign its real count
|
|
3984
|
+
cursor.count = count;
|
|
3985
|
+
}
|
|
3986
|
+
return tree;
|
|
3987
|
+
};
|
|
3998
3988
|
|
|
3999
3989
|
/**
|
|
4000
3990
|
* Given a document and a SearchResultMapping, return a mapped value from the document.
|
|
@@ -4027,30 +4017,6 @@ function getDocumentValueFromSearchResultMapping(document, mapping) {
|
|
|
4027
4017
|
.join(mapping.delimiter || ' ');
|
|
4028
4018
|
}
|
|
4029
4019
|
}
|
|
4030
|
-
/**
|
|
4031
|
-
* Convert different units of time to milliseconds.
|
|
4032
|
-
*
|
|
4033
|
-
* @param unit - The unit of time
|
|
4034
|
-
* @returns {number}
|
|
4035
|
-
*/
|
|
4036
|
-
function getMillis(unit) {
|
|
4037
|
-
const millisInHour = 60 * 60 * 1000;
|
|
4038
|
-
const millisInDay = 24 * millisInHour;
|
|
4039
|
-
const millisInMonth = 30 * millisInDay;
|
|
4040
|
-
const millisInYear = 365 * millisInDay;
|
|
4041
|
-
switch (unit) {
|
|
4042
|
-
case 'hour':
|
|
4043
|
-
return millisInHour;
|
|
4044
|
-
case 'day':
|
|
4045
|
-
return millisInDay;
|
|
4046
|
-
case 'month':
|
|
4047
|
-
return millisInMonth;
|
|
4048
|
-
case 'year':
|
|
4049
|
-
return millisInYear;
|
|
4050
|
-
default:
|
|
4051
|
-
return 3600000;
|
|
4052
|
-
}
|
|
4053
|
-
}
|
|
4054
4020
|
/**
|
|
4055
4021
|
* Format a number with commas as thousands separators.
|
|
4056
4022
|
*
|
|
@@ -4097,6 +4063,107 @@ function formatRelativeDate(dateInput, locale = 'en-US', options = {
|
|
|
4097
4063
|
}
|
|
4098
4064
|
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
4099
4065
|
}
|
|
4066
|
+
/**
|
|
4067
|
+
* Given a date, returns the timestamp (in ms) for the start of the specified unit.
|
|
4068
|
+
*
|
|
4069
|
+
* @param unit - The unit to calculate the start of ('year' | 'month' | 'day' | 'hour').
|
|
4070
|
+
* @param timestamp - The date to evaluate.
|
|
4071
|
+
* @param offset - The number of units to offset by.
|
|
4072
|
+
* @returns The timestamp (in ms) for the start of the specified unit.
|
|
4073
|
+
*/
|
|
4074
|
+
function getStartOf(timestamp, unit, offset = 0) {
|
|
4075
|
+
const d = new Date(timestamp);
|
|
4076
|
+
switch (unit) {
|
|
4077
|
+
case 'year':
|
|
4078
|
+
return new Date(d.getFullYear() + offset, 0, 1, 0, 0, 0, 0).getTime();
|
|
4079
|
+
case 'month':
|
|
4080
|
+
return new Date(d.getFullYear(), d.getMonth() + offset, 1, 0, 0, 0, 0).getTime();
|
|
4081
|
+
case 'day':
|
|
4082
|
+
return new Date(d.getFullYear(), d.getMonth(), d.getDate() + offset, 0, 0, 0, 0).getTime();
|
|
4083
|
+
case 'hour':
|
|
4084
|
+
return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + offset, 0, 0, 0).getTime();
|
|
4085
|
+
default:
|
|
4086
|
+
throw new Error(`Unsupported unit: ${unit}`);
|
|
4087
|
+
}
|
|
4088
|
+
}
|
|
4089
|
+
/**
|
|
4090
|
+
* Given a start and end date, returns the difference in the number of the specified units.
|
|
4091
|
+
*
|
|
4092
|
+
* @param units - The unit to measure ('year' | 'month' | 'day' | 'hour').
|
|
4093
|
+
* @param startDate - The start date.
|
|
4094
|
+
* @param endDate - The end date.
|
|
4095
|
+
* @returns The difference in the given unit.
|
|
4096
|
+
*/
|
|
4097
|
+
function getDifferenceInUnits(unit, startTime, endTime) {
|
|
4098
|
+
const start = new Date(startTime);
|
|
4099
|
+
const end = new Date(endTime);
|
|
4100
|
+
switch (unit) {
|
|
4101
|
+
case 'year':
|
|
4102
|
+
return Math.abs(end.getFullYear() - start.getFullYear());
|
|
4103
|
+
case 'month':
|
|
4104
|
+
return Math.abs(end.getFullYear() * 12 +
|
|
4105
|
+
end.getMonth() -
|
|
4106
|
+
(start.getFullYear() * 12 + start.getMonth()));
|
|
4107
|
+
case 'day':
|
|
4108
|
+
return Math.floor(Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
|
|
4109
|
+
case 'hour':
|
|
4110
|
+
return Math.floor(Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60));
|
|
4111
|
+
default:
|
|
4112
|
+
throw new Error(`Unsupported unit: ${unit}`);
|
|
4113
|
+
}
|
|
4114
|
+
}
|
|
4115
|
+
/**
|
|
4116
|
+
* Returns the ordinal representation of a day of the month.
|
|
4117
|
+
*/
|
|
4118
|
+
const getOrdinal = (n) => {
|
|
4119
|
+
if (n >= 11 && n <= 13)
|
|
4120
|
+
return `${n}th`;
|
|
4121
|
+
switch (n % 10) {
|
|
4122
|
+
case 1:
|
|
4123
|
+
return `${n}st`;
|
|
4124
|
+
case 2:
|
|
4125
|
+
return `${n}nd`;
|
|
4126
|
+
case 3:
|
|
4127
|
+
return `${n}rd`;
|
|
4128
|
+
default:
|
|
4129
|
+
return `${n}th`;
|
|
4130
|
+
}
|
|
4131
|
+
};
|
|
4132
|
+
/**
|
|
4133
|
+
* Given a granularity level, returns a formatted, human-readable, date string.
|
|
4134
|
+
*
|
|
4135
|
+
* @param granularity - The granularity level to display. The granularity level dictates how the date is formatted.
|
|
4136
|
+
* @param date - The date to format.
|
|
4137
|
+
*
|
|
4138
|
+
* @returns A formatted string representing the date at the specified granularity.
|
|
4139
|
+
*
|
|
4140
|
+
* @example
|
|
4141
|
+
* getFormattedDateString('year', new Date('2023-01-01')) // "2023"
|
|
4142
|
+
* getFormattedDateString('month', new Date('2023-01-01')) // "Jan 2023"
|
|
4143
|
+
* getFormattedDateString('day', new Date('2023-01-31')) // "Jan 31st, 2023"
|
|
4144
|
+
* getFormattedDateString('hour', new Date('2023-01-31T12:00:00')) // "Jan 31st, 12:00 PM"
|
|
4145
|
+
*/
|
|
4146
|
+
function getFormattedDateString(granularity, date) {
|
|
4147
|
+
const monthFormatter = new Intl.DateTimeFormat('en-US', { month: 'short' });
|
|
4148
|
+
switch (granularity) {
|
|
4149
|
+
case 'year':
|
|
4150
|
+
return date.getFullYear().toString();
|
|
4151
|
+
case 'month':
|
|
4152
|
+
return `${monthFormatter.format(date)} ${date.getFullYear()}`;
|
|
4153
|
+
case 'day':
|
|
4154
|
+
return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${date.getFullYear()}`;
|
|
4155
|
+
case 'hour': {
|
|
4156
|
+
const timeFormatter = new Intl.DateTimeFormat('en-US', {
|
|
4157
|
+
hour: 'numeric',
|
|
4158
|
+
minute: '2-digit',
|
|
4159
|
+
hour12: true,
|
|
4160
|
+
});
|
|
4161
|
+
return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${timeFormatter.format(date)}`;
|
|
4162
|
+
}
|
|
4163
|
+
default:
|
|
4164
|
+
throw new Error(`Unsupported granularity: ${granularity}`);
|
|
4165
|
+
}
|
|
4166
|
+
}
|
|
4100
4167
|
|
|
4101
4168
|
var purify = {exports: {}};
|
|
4102
4169
|
|
|
@@ -5491,65 +5558,175 @@ class SearchcraftFacetList {
|
|
|
5491
5558
|
*/
|
|
5492
5559
|
fieldName = '';
|
|
5493
5560
|
/**
|
|
5494
|
-
*
|
|
5561
|
+
* Emitted when the facets are updated.
|
|
5495
5562
|
*/
|
|
5496
5563
|
facetSelectionUpdated;
|
|
5497
|
-
|
|
5498
|
-
|
|
5564
|
+
/**
|
|
5565
|
+
* The currently selected facet paths.
|
|
5566
|
+
*/
|
|
5499
5567
|
selectedPaths = {};
|
|
5568
|
+
/**
|
|
5569
|
+
* A Tree representing all of the facets collected from search responses.
|
|
5570
|
+
*/
|
|
5571
|
+
facetTreeCollectedFromSearchResponse = {
|
|
5572
|
+
path: '/',
|
|
5573
|
+
count: 0,
|
|
5574
|
+
children: {},
|
|
5575
|
+
};
|
|
5576
|
+
/**
|
|
5577
|
+
* A Tree representing the facet paths that are selected, but were not included
|
|
5578
|
+
* in any search response.
|
|
5579
|
+
*/
|
|
5580
|
+
facetTreeFromFacetPathsNotInSearchResponse = {
|
|
5581
|
+
path: '/',
|
|
5582
|
+
count: 0,
|
|
5583
|
+
children: {},
|
|
5584
|
+
};
|
|
5585
|
+
/**
|
|
5586
|
+
* The facet tree that ultimately gets rendered.
|
|
5587
|
+
* This is a mergin of the facetTreeCollectedFromSearchResponse and the facetTreeFromFacetPathsNotInSearchResponse tree
|
|
5588
|
+
*/
|
|
5589
|
+
renderedFacetTree = {
|
|
5590
|
+
path: '/',
|
|
5591
|
+
count: 0,
|
|
5592
|
+
children: {},
|
|
5593
|
+
};
|
|
5594
|
+
// Internal vars used to track when to perform various facet actions.
|
|
5500
5595
|
lastTimeTaken;
|
|
5501
|
-
hasNewSearchTerm = false;
|
|
5502
5596
|
lastSearchTerm;
|
|
5503
5597
|
lastSearchMode;
|
|
5504
5598
|
lastSortType;
|
|
5599
|
+
lastRangeValues;
|
|
5600
|
+
lastFacetValues;
|
|
5505
5601
|
unsubscribe;
|
|
5506
|
-
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5512
|
-
|
|
5513
|
-
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
this.
|
|
5530
|
-
|
|
5531
|
-
|
|
5602
|
+
get areAnyFacetPathsSelected() {
|
|
5603
|
+
return Object.keys(this.selectedPaths).some((key) => this.selectedPaths[key]);
|
|
5604
|
+
}
|
|
5605
|
+
handleIncomingSearchResponse(state, actionType) {
|
|
5606
|
+
// Look at the incoming facet root from the search response, and convert it to a FacetTree
|
|
5607
|
+
const incomingFacetRoot = state.searchResponseFacetPrime?.find((facet) => this.fieldName === Object.keys(facet)[0]);
|
|
5608
|
+
const incomingFacetsWithChildrenArray = incomingFacetRoot?.[this.fieldName];
|
|
5609
|
+
const incomingFacetTree = facetWithChildrenArrayToCompleteFacetTree({
|
|
5610
|
+
path: '/',
|
|
5611
|
+
count: 0,
|
|
5612
|
+
children: incomingFacetsWithChildrenArray || [],
|
|
5613
|
+
});
|
|
5614
|
+
// Determine what action to take to accumulate items into the `facetTreeCollectedFromSearchResponse`.
|
|
5615
|
+
// This facet tree gets accumulated in different ways depending on what action type occured.
|
|
5616
|
+
switch (actionType) {
|
|
5617
|
+
case 'SEARCH_TERM_EMPTY':
|
|
5618
|
+
this.facetTreeCollectedFromSearchResponse = {
|
|
5619
|
+
path: '/',
|
|
5620
|
+
count: 0,
|
|
5621
|
+
children: {},
|
|
5622
|
+
};
|
|
5623
|
+
break;
|
|
5624
|
+
case 'NEW_SEARCH_TERM':
|
|
5625
|
+
this.facetTreeCollectedFromSearchResponse = incomingFacetTree;
|
|
5626
|
+
break;
|
|
5627
|
+
case 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE':
|
|
5628
|
+
case 'EXACT_MATCH_UPDATE':
|
|
5629
|
+
case 'RANGE_VALUE_UPDATE': {
|
|
5630
|
+
if (state.supplementalFacetPrime) {
|
|
5631
|
+
const supplementalFacetRoot = state.supplementalFacetPrime?.find((facet) => this.fieldName === Object.keys(facet)[0]);
|
|
5632
|
+
const supplementalFacetsWithChildrenArray = supplementalFacetRoot?.[this.fieldName];
|
|
5633
|
+
const supplementalFacetTree = facetWithChildrenArrayToCompleteFacetTree({
|
|
5634
|
+
path: '/',
|
|
5635
|
+
count: 0,
|
|
5636
|
+
children: supplementalFacetsWithChildrenArray || [],
|
|
5637
|
+
});
|
|
5638
|
+
this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(supplementalFacetTree, incomingFacetTree);
|
|
5639
|
+
}
|
|
5640
|
+
else {
|
|
5641
|
+
this.facetTreeCollectedFromSearchResponse = incomingFacetTree;
|
|
5642
|
+
}
|
|
5643
|
+
break;
|
|
5532
5644
|
}
|
|
5533
|
-
|
|
5534
|
-
|
|
5535
|
-
this.
|
|
5645
|
+
case 'FACET_UPDATE':
|
|
5646
|
+
case 'SORT_ORDER_UPDATE':
|
|
5647
|
+
this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(this.facetTreeCollectedFromSearchResponse, incomingFacetTree);
|
|
5648
|
+
break;
|
|
5649
|
+
default:
|
|
5650
|
+
return;
|
|
5651
|
+
}
|
|
5652
|
+
// Determine if there are any selected facet paths not in the current tree.
|
|
5653
|
+
// If there are, we add them to "facetTreeFromFacetPathsNotInSearchResponse"
|
|
5654
|
+
this.facetTreeFromFacetPathsNotInSearchResponse = {
|
|
5655
|
+
path: '/',
|
|
5656
|
+
count: 0,
|
|
5657
|
+
children: {},
|
|
5658
|
+
};
|
|
5659
|
+
const collectedFacetArray = {
|
|
5660
|
+
path: '/',
|
|
5661
|
+
count: 0,
|
|
5662
|
+
children: [],
|
|
5663
|
+
};
|
|
5664
|
+
for (const pathName of Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path])) {
|
|
5665
|
+
const nodePaths = pathName.startsWith('/')
|
|
5666
|
+
? pathName.substring(1).split('/')
|
|
5667
|
+
: pathName.split('/');
|
|
5668
|
+
const wasFoundInFacetTree = !!getFacetTreeNodeAtPath(this.facetTreeCollectedFromSearchResponse, nodePaths);
|
|
5669
|
+
const pathKeyName = nodePaths.at(-1);
|
|
5670
|
+
if (!wasFoundInFacetTree && pathKeyName) {
|
|
5671
|
+
collectedFacetArray.children?.push({
|
|
5672
|
+
children: [],
|
|
5673
|
+
count: 0,
|
|
5674
|
+
path: pathName,
|
|
5675
|
+
});
|
|
5536
5676
|
}
|
|
5537
5677
|
}
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5678
|
+
this.facetTreeFromFacetPathsNotInSearchResponse =
|
|
5679
|
+
facetWithChildrenArrayToCompleteFacetTree(collectedFacetArray);
|
|
5680
|
+
// Merges facetTreeCollectedFromSearchResponse with selectedFacetPathsNotInCurrentFacetTree.
|
|
5681
|
+
// This results in a single, final facet tree that gets rendered in as Checkboxes
|
|
5682
|
+
this.renderedFacetTree = deepMergeWithSpread(this.facetTreeFromFacetPathsNotInSearchResponse, this.facetTreeCollectedFromSearchResponse);
|
|
5683
|
+
}
|
|
5684
|
+
handleStateUpdate(_state) {
|
|
5685
|
+
const state = { ..._state };
|
|
5686
|
+
// Determine what action to take based on the current State
|
|
5687
|
+
if (state.searchTerm.trim() === '') {
|
|
5688
|
+
this.handleIncomingSearchResponse(state, 'SEARCH_TERM_EMPTY');
|
|
5689
|
+
this.lastSearchTerm = '';
|
|
5690
|
+
}
|
|
5691
|
+
else if (this.lastTimeTaken !== state.searchResponseTimeTaken &&
|
|
5692
|
+
state.searchClientRequest &&
|
|
5693
|
+
typeof state.searchClientRequest === 'object') {
|
|
5694
|
+
const request = state.searchClientRequest;
|
|
5695
|
+
let actionType = 'UNKNOWN';
|
|
5696
|
+
if (this.lastSearchTerm !== request.searchTerm) {
|
|
5697
|
+
if (this.areAnyFacetPathsSelected) {
|
|
5698
|
+
actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';
|
|
5699
|
+
}
|
|
5700
|
+
else {
|
|
5701
|
+
actionType = 'NEW_SEARCH_TERM';
|
|
5702
|
+
}
|
|
5703
|
+
}
|
|
5704
|
+
else if (this.lastRangeValues !==
|
|
5705
|
+
JSON.stringify(request.rangeValueForIndexFields)) {
|
|
5706
|
+
actionType = 'RANGE_VALUE_UPDATE';
|
|
5707
|
+
}
|
|
5708
|
+
else if (this.lastFacetValues !==
|
|
5709
|
+
JSON.stringify(request.facetPathsForIndexFields)) {
|
|
5710
|
+
actionType = 'FACET_UPDATE';
|
|
5711
|
+
}
|
|
5712
|
+
else if (this.lastSortType !== request.order_by) {
|
|
5713
|
+
actionType = 'SORT_ORDER_UPDATE';
|
|
5714
|
+
}
|
|
5715
|
+
else if (this.lastSearchMode !== request.mode) {
|
|
5716
|
+
actionType = 'EXACT_MATCH_UPDATE';
|
|
5717
|
+
}
|
|
5718
|
+
this.lastRangeValues = JSON.stringify(request.rangeValueForIndexFields);
|
|
5719
|
+
this.lastFacetValues = JSON.stringify(request.facetPathsForIndexFields);
|
|
5720
|
+
this.lastSortType = request.order_by;
|
|
5721
|
+
this.lastSearchMode = request.mode;
|
|
5722
|
+
this.lastSearchTerm = request.searchTerm;
|
|
5723
|
+
this.lastTimeTaken = state.searchResponseTimeTaken;
|
|
5724
|
+
// Handle the incoming response, using the action we have determined.
|
|
5725
|
+
this.handleIncomingSearchResponse(state, actionType);
|
|
5545
5726
|
}
|
|
5546
|
-
this.lastSearchTerm = state.searchTerm;
|
|
5547
|
-
this.lastSearchMode = state.searchMode;
|
|
5548
|
-
this.lastSortType = state.sortType;
|
|
5549
|
-
this.lastTimeTaken = timeTaken;
|
|
5550
5727
|
}
|
|
5551
5728
|
connectedCallback() {
|
|
5552
|
-
this.handleStateUpdate(
|
|
5729
|
+
this.handleStateUpdate(searchcraftStore.getState());
|
|
5553
5730
|
this.unsubscribe = searchcraftStore.subscribe((state) => {
|
|
5554
5731
|
this.handleStateUpdate(state);
|
|
5555
5732
|
});
|
|
@@ -5586,44 +5763,58 @@ class SearchcraftFacetList {
|
|
|
5586
5763
|
const pathsWithParentPathsRemoved = removeSubstringMatches(paths);
|
|
5587
5764
|
this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });
|
|
5588
5765
|
}
|
|
5589
|
-
|
|
5590
|
-
const label =
|
|
5591
|
-
|
|
5592
|
-
return `${label.replace(/-/g, ' ').replace(/\b\w/g, (char) => char.toUpperCase())} (${count})`;
|
|
5593
|
-
};
|
|
5594
|
-
formatSubLabel = (facetChild, facetChildAncestor) => {
|
|
5595
|
-
const facetChildPath = facetChild.path.substring(facetChildAncestor.path.length);
|
|
5596
|
-
const label = facetChildPath.replace(/^\//, '');
|
|
5597
|
-
const count = facetChild.count;
|
|
5598
|
-
return `${label.replace(/-/g, ' ').replace(/\b\w/g, (char) => char.toUpperCase())} (${count})`;
|
|
5766
|
+
formatFacetName = (name) => {
|
|
5767
|
+
const label = name.replace(/^\//, '');
|
|
5768
|
+
return `${label.replace(/-/g, ' ').replace(/\b\w/g, (char) => char.toUpperCase())}`;
|
|
5599
5769
|
};
|
|
5770
|
+
renderFacet(keyName, facet) {
|
|
5771
|
+
let isChildSelected = false;
|
|
5772
|
+
for (const path of Object.keys(this.selectedPaths)) {
|
|
5773
|
+
if (this.selectedPaths[path] &&
|
|
5774
|
+
path.startsWith(facet.path) &&
|
|
5775
|
+
path.length > facet.path.length) {
|
|
5776
|
+
isChildSelected = true;
|
|
5777
|
+
}
|
|
5778
|
+
}
|
|
5779
|
+
const isSelected = Object.keys(this.selectedPaths).includes(facet.path);
|
|
5780
|
+
const shouldRenderChildren = (Object.keys(facet.children).length > 0 &&
|
|
5781
|
+
(isSelected || isChildSelected)) ||
|
|
5782
|
+
keyName === '@@root';
|
|
5783
|
+
return (hAsync("div", { class: 'searchcraft-facet-list-item' }, keyName !== '@@root' && (hAsync("label", { class: 'searchcraft-facet-list-checkbox-label' }, hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-wrapper' }, hAsync("input", { class: 'searchcraft-facet-list-checkbox-input', checked: this.selectedPaths[facet.path], onChange: (_event) => {
|
|
5784
|
+
this.handleCheckboxChange(facet.path);
|
|
5785
|
+
}, type: 'checkbox' }), isChildSelected ? (hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-dash-icon' }, hAsync("svg", { viewBox: '0 0 14 3', fill: 'none' }, hAsync("title", null, "Checkbox dash"), hAsync("line", { x1: '1.5', y1: '1.5', x2: '12.5', y2: '1.5', stroke: 'white', "stroke-width": '3', "stroke-linecap": 'round' })))) : (hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-check-icon' }, hAsync("svg", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, hAsync("title", null, "Checkbox check"), hAsync("path", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', "stroke-width": '3', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))))), hAsync("span", null, this.formatFacetName(keyName), " (", facet.count, ")"))), shouldRenderChildren && (hAsync("div", { class: 'searchcraft-facet-list', style: {
|
|
5786
|
+
paddingLeft: keyName !== '@@root' ? '24px' : '0px',
|
|
5787
|
+
paddingTop: keyName !== '@@root' ? '6px' : '0px',
|
|
5788
|
+
} }, Object.keys(facet.children).map((key) => {
|
|
5789
|
+
if (facet.children[key]) {
|
|
5790
|
+
return this.renderFacet(key, facet.children[key]);
|
|
5791
|
+
}
|
|
5792
|
+
})))));
|
|
5793
|
+
}
|
|
5600
5794
|
render() {
|
|
5601
5795
|
if (!this.fieldName) {
|
|
5602
5796
|
return;
|
|
5603
5797
|
}
|
|
5604
|
-
|
|
5605
|
-
|
|
5606
|
-
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
|
|
5610
|
-
|
|
5611
|
-
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
}, type: 'checkbox' }), hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-check-icon searchcraft-facet-child-list-checkbox-input-check-icon' }, hAsync("svg", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, hAsync("title", null, "Checkbox check"), hAsync("path", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', "stroke-width": '3', "stroke-linecap": 'round', "stroke-linejoin": 'round' })))), this.formatSubLabel(grandchild, facetChild))))))));
|
|
5616
|
-
})));
|
|
5798
|
+
if (Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===
|
|
5799
|
+
0 &&
|
|
5800
|
+
(this.lastSearchTerm || '').trim().length === 0) {
|
|
5801
|
+
return;
|
|
5802
|
+
}
|
|
5803
|
+
if (Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===
|
|
5804
|
+
0 &&
|
|
5805
|
+
(this.lastSearchTerm || '').trim().length > 0) {
|
|
5806
|
+
return (hAsync("p", { class: 'searchcraft-facet-list-message' }, "No facets are available for this search query."));
|
|
5807
|
+
}
|
|
5808
|
+
return (hAsync("div", { class: 'searchcraft-facet-list' }, this.renderFacet('@@root', this.renderedFacetTree)));
|
|
5617
5809
|
}
|
|
5618
5810
|
static get cmpMeta() { return {
|
|
5619
5811
|
"$flags$": 0,
|
|
5620
5812
|
"$tagName$": "searchcraft-facet-list",
|
|
5621
5813
|
"$members$": {
|
|
5622
5814
|
"fieldName": [1, "field-name"],
|
|
5623
|
-
"baseFacetRoot": [32],
|
|
5624
|
-
"facetRoot": [32],
|
|
5625
5815
|
"selectedPaths": [32],
|
|
5626
|
-
"
|
|
5816
|
+
"facetTreeCollectedFromSearchResponse": [32],
|
|
5817
|
+
"renderedFacetTree": [32]
|
|
5627
5818
|
},
|
|
5628
5819
|
"$listeners$": undefined,
|
|
5629
5820
|
"$lazyBundleId$": "-",
|
|
@@ -5688,12 +5879,12 @@ class SearchcraftFilterPanel {
|
|
|
5688
5879
|
disconnectedCallback() {
|
|
5689
5880
|
this.unsubscribe?.();
|
|
5690
5881
|
}
|
|
5691
|
-
handleDateRangeChanged(
|
|
5692
|
-
const start = new Date(
|
|
5693
|
-
const end = new Date(
|
|
5882
|
+
handleDateRangeChanged(item, min, max) {
|
|
5883
|
+
const start = new Date(min);
|
|
5884
|
+
const end = new Date(max);
|
|
5694
5885
|
this.searchStore.addRangeValueForIndexField({
|
|
5695
|
-
fieldName,
|
|
5696
|
-
value: `${fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,
|
|
5886
|
+
fieldName: item.fieldName,
|
|
5887
|
+
value: `${item.fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,
|
|
5697
5888
|
});
|
|
5698
5889
|
this.searchStore.search();
|
|
5699
5890
|
}
|
|
@@ -5739,22 +5930,19 @@ class SearchcraftFilterPanel {
|
|
|
5739
5930
|
* Iterate through `items` and render them based on `type`
|
|
5740
5931
|
*/
|
|
5741
5932
|
render() {
|
|
5742
|
-
return (hAsync("div", { key: '
|
|
5933
|
+
return (hAsync("div", { key: 'fb5fce357783f39b0a2846a0bd99994faa5e742d', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {
|
|
5743
5934
|
switch (filterItem.type) {
|
|
5744
5935
|
case 'dateRange': {
|
|
5745
5936
|
const item = filterItem;
|
|
5746
|
-
const min = new Date(item.options.minDate).getTime();
|
|
5747
|
-
const max = new Date(item.options.maxDate).getTime();
|
|
5748
|
-
const granularityValue = getMillis(item.options.granularity);
|
|
5749
5937
|
// return date range slider
|
|
5750
|
-
return (hAsync("div", { class: 'searchcraft-filter-panel-section' }, hAsync("p", { class: 'searchcraft-filter-panel-label' }, filterItem.label), hAsync("searchcraft-slider", { min:
|
|
5751
|
-
this.handleDateRangeChanged(item
|
|
5938
|
+
return (hAsync("div", { class: 'searchcraft-filter-panel-section' }, hAsync("p", { class: 'searchcraft-filter-panel-label' }, filterItem.label), hAsync("searchcraft-slider", { min: item.options.minDate.getTime(), max: item.options.maxDate.getTime(), dataType: 'date', step: 1, dateGranularity: item.options.granularity, onRangeChanged: (event) => {
|
|
5939
|
+
this.handleDateRangeChanged(item, event.detail.startValue, event.detail.endValue);
|
|
5752
5940
|
} })));
|
|
5753
5941
|
}
|
|
5754
5942
|
case 'numericRange': {
|
|
5755
5943
|
const item = filterItem;
|
|
5756
5944
|
// return date range slider
|
|
5757
|
-
return (hAsync("div", { class: 'searchcraft-filter-panel-section' }, hAsync("p", { class: 'searchcraft-filter-panel-label' }, filterItem.label), hAsync("searchcraft-slider", { min: item.options.min, max: item.options.max,
|
|
5945
|
+
return (hAsync("div", { class: 'searchcraft-filter-panel-section' }, hAsync("p", { class: 'searchcraft-filter-panel-label' }, filterItem.label), hAsync("searchcraft-slider", { min: item.options.min, max: item.options.max, step: item.options.granularity, onRangeChanged: (event) => {
|
|
5758
5946
|
this.handleNumericRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);
|
|
5759
5947
|
} })));
|
|
5760
5948
|
}
|
|
@@ -5850,6 +6038,12 @@ class SearchcraftInputForm {
|
|
|
5850
6038
|
* The input element's placeholder value.
|
|
5851
6039
|
*/
|
|
5852
6040
|
placeholderValue = 'Enter Search';
|
|
6041
|
+
/**
|
|
6042
|
+
* The placeholder's render behavior.
|
|
6043
|
+
* 'hide-on-focus' - Hide the placeholder text immediately when the input form gains focus.
|
|
6044
|
+
* 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it.
|
|
6045
|
+
*/
|
|
6046
|
+
placeholderBehavior;
|
|
5853
6047
|
/**
|
|
5854
6048
|
* When the input becomes focused.
|
|
5855
6049
|
*/
|
|
@@ -5893,22 +6087,18 @@ class SearchcraftInputForm {
|
|
|
5893
6087
|
handleInput = (event) => {
|
|
5894
6088
|
const input = event.target;
|
|
5895
6089
|
this.inputValue = input.value;
|
|
6090
|
+
this.searchcraftStore.setSearchTerm(input.value);
|
|
5896
6091
|
if (!this.autoSearch) {
|
|
5897
6092
|
return;
|
|
5898
6093
|
}
|
|
5899
|
-
this.performSearch(
|
|
6094
|
+
this.performSearch();
|
|
5900
6095
|
};
|
|
5901
|
-
performSearch = async (
|
|
5902
|
-
if (searchTerm === this.searchTerm) {
|
|
5903
|
-
return;
|
|
5904
|
-
}
|
|
5905
|
-
this.searchcraftStore.setSearchTerm(searchTerm.trim());
|
|
6096
|
+
performSearch = async () => {
|
|
5906
6097
|
this.error = false;
|
|
5907
6098
|
try {
|
|
5908
6099
|
await this.searchcraftStore.search();
|
|
5909
6100
|
}
|
|
5910
6101
|
catch (error) {
|
|
5911
|
-
console.error(`Search for ${searchTerm} failed:`, error);
|
|
5912
6102
|
this.error = true;
|
|
5913
6103
|
}
|
|
5914
6104
|
};
|
|
@@ -5923,7 +6113,7 @@ class SearchcraftInputForm {
|
|
|
5923
6113
|
};
|
|
5924
6114
|
handleFormSubmit = async (event) => {
|
|
5925
6115
|
event.preventDefault();
|
|
5926
|
-
await this.performSearch(
|
|
6116
|
+
await this.performSearch();
|
|
5927
6117
|
};
|
|
5928
6118
|
render() {
|
|
5929
6119
|
const isShowingClearButton = this.inputValue.length > 0;
|
|
@@ -5936,9 +6126,11 @@ class SearchcraftInputForm {
|
|
|
5936
6126
|
const inputGridStyles = {
|
|
5937
6127
|
gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',
|
|
5938
6128
|
};
|
|
5939
|
-
return (hAsync("form", { key: '
|
|
6129
|
+
return (hAsync("form", { key: 'd0654def009278279b7edeeccc6044d999c0d5b0', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, hAsync("div", { key: '27978b08e46e0f8ecdf6dc95a74c962d85f5e9ff', class: inputGridClassNames, style: inputGridStyles }, hAsync("div", { key: '1f7cecc80a84bfc46c994971cd751d2b65af6d83', class: 'searchcraft-input-form-button' }, hAsync("searchcraft-button", { key: 'b3f2078604c380eef895be103b2bdf5cef6bca84', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (hAsync("div", { key: 'b33c0d3cbb3512964c3a47a2c354a610fa6faa09', class: 'searchcraft-input-form-label' }, hAsync("searchcraft-input-label", { key: 'e620088318c82e2e70d885bd3ee2c88ef8118e7c', label: this.inputLabel }))), this.error && (hAsync("div", { key: 'c3a20576917aaa33cc12df5ee5b479f87d628de7', class: 'searchcraft-input-form-error-message' }, hAsync("searchcraft-error-message", { key: 'f48e54a236b7a33fa55bab7f29d3b321be0bbb77' }, "Something went wrong."))), hAsync("div", { key: 'ebda089a3b8698892fd6cebcbaf89582a1bb21a2', class: 'searchcraft-input-form-input-wrapper' }, hAsync("input", { key: 'd7ea7b49f7d65067924168fc281033841a71d419', autoComplete: 'off', class: classNames('searchcraft-input-form-input', {
|
|
6130
|
+
'searchcraft-placeholder-hide-on-focus': this.placeholderBehavior === 'hide-on-focus',
|
|
6131
|
+
}), onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {
|
|
5940
6132
|
this.handleInput(event);
|
|
5941
|
-
}, placeholder: this.placeholderValue, type: 'text', value: this.inputValue }), hAsync("div", { key: '
|
|
6133
|
+
}, placeholder: this.placeholderValue, type: 'text', value: this.inputValue }), hAsync("div", { key: '6dd4a02322072467a104938a47626592658eaa1e', class: 'searchcraft-input-form-input-icon' }, hAsync("svg", { key: '26a4deabe9149db6db219e49fcccbbe7688e9f0a', class: 'searchcraft-input-form-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', "aria-labelledby": 'searchcraft-title' }, hAsync("title", { key: 'eff07788d2edaead45a60d8ac20e5d1d694c5165' }, "Search icon"), hAsync("path", { key: '9083cf32c8f749210232b51b1f5934a3c32b109f', 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', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))), isShowingClearButton && (hAsync("button", { key: '0b2117ae2510fe743b11d8e638e981ee0f7e4760', type: 'button', class: 'searchcraft-input-form-clear-button', onClick: this.handleClearInput }, hAsync("svg", { key: '3fbb57c1b6486638286e1010639751a83a75f489', class: 'searchcraft-input-form-clear-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', "aria-labelledby": 'icon-title' }, hAsync("title", { key: '84ce771c55c072b4339babb136639469b68a1f9b' }, "Clear icon"), hAsync("path", { key: '811f5fc9cc708f80004f1cf50ddcd85de05f3b6b', 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', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))))))));
|
|
5942
6134
|
}
|
|
5943
6135
|
static get watchers() { return {
|
|
5944
6136
|
"core": ["onCoreChange"]
|
|
@@ -5952,6 +6144,7 @@ class SearchcraftInputForm {
|
|
|
5952
6144
|
"buttonLabel": [1, "button-label"],
|
|
5953
6145
|
"inputLabel": [1, "input-label"],
|
|
5954
6146
|
"placeholderValue": [1, "placeholder-value"],
|
|
6147
|
+
"placeholderBehavior": [1, "placeholder-behavior"],
|
|
5955
6148
|
"core": [16],
|
|
5956
6149
|
"inputValue": [32],
|
|
5957
6150
|
"searchTerm": [32],
|
|
@@ -7587,6 +7780,43 @@ class SearchcraftSelect {
|
|
|
7587
7780
|
}; }
|
|
7588
7781
|
}
|
|
7589
7782
|
|
|
7783
|
+
/**
|
|
7784
|
+
* Creates a throttled version of the given function that only invokes
|
|
7785
|
+
* the original function at most once every specified number of milliseconds.
|
|
7786
|
+
*
|
|
7787
|
+
* The logic is written in a way that the last invocation is always called, after the
|
|
7788
|
+
* throttle cooldown period has ended.
|
|
7789
|
+
*
|
|
7790
|
+
* @template Arguments - The argument types for the function to throttle
|
|
7791
|
+
* @param callback - The function to throttle
|
|
7792
|
+
* @param delayInMilliseconds - The number of milliseconds to wait before allowing the next invocation
|
|
7793
|
+
* @returns A throttled version of the original function
|
|
7794
|
+
*/
|
|
7795
|
+
function throttle(callback, delayInMilliseconds) {
|
|
7796
|
+
let isThrottleOnCooldown = false;
|
|
7797
|
+
let trailingCallArgs = null;
|
|
7798
|
+
const invokeAction = (args) => {
|
|
7799
|
+
callback(...args);
|
|
7800
|
+
isThrottleOnCooldown = true;
|
|
7801
|
+
setTimeout(() => {
|
|
7802
|
+
isThrottleOnCooldown = false;
|
|
7803
|
+
if (trailingCallArgs) {
|
|
7804
|
+
const nextArgs = trailingCallArgs;
|
|
7805
|
+
trailingCallArgs = null;
|
|
7806
|
+
invokeAction(nextArgs);
|
|
7807
|
+
}
|
|
7808
|
+
}, delayInMilliseconds);
|
|
7809
|
+
};
|
|
7810
|
+
return (...args) => {
|
|
7811
|
+
if (!isThrottleOnCooldown) {
|
|
7812
|
+
invokeAction(args);
|
|
7813
|
+
}
|
|
7814
|
+
else {
|
|
7815
|
+
trailingCallArgs = args;
|
|
7816
|
+
}
|
|
7817
|
+
};
|
|
7818
|
+
}
|
|
7819
|
+
|
|
7590
7820
|
/**
|
|
7591
7821
|
* This web component is designed to allow users to select a value from a range defined by a minimum and maximum value. The component renders a slider interface, which can be used to visually choose a value between two boundaries.
|
|
7592
7822
|
*
|
|
@@ -7606,27 +7836,60 @@ class SearchcraftSlider {
|
|
|
7606
7836
|
*/
|
|
7607
7837
|
min = 0;
|
|
7608
7838
|
/**
|
|
7609
|
-
* The
|
|
7839
|
+
* The step amount for the slider inputs.
|
|
7610
7840
|
*/
|
|
7611
|
-
|
|
7612
|
-
/** The type of data
|
|
7841
|
+
step = 1;
|
|
7842
|
+
/** The type of data the sliders are using. */
|
|
7613
7843
|
dataType = 'number';
|
|
7614
|
-
|
|
7615
|
-
|
|
7844
|
+
/** The date granularity to use. Used to format date labels. */
|
|
7845
|
+
dateGranularity;
|
|
7846
|
+
lowerBound = 0;
|
|
7847
|
+
upperBound = 1;
|
|
7848
|
+
endValue = 0;
|
|
7849
|
+
startValue = 0;
|
|
7616
7850
|
lastFocusedHandle = 'max';
|
|
7851
|
+
throttledEmitUpdate = () => { };
|
|
7617
7852
|
/**
|
|
7618
7853
|
* When the range has changed.
|
|
7619
7854
|
* */
|
|
7620
7855
|
rangeChanged;
|
|
7621
|
-
|
|
7622
|
-
this.
|
|
7623
|
-
|
|
7856
|
+
connectedCallback() {
|
|
7857
|
+
switch (this.dataType) {
|
|
7858
|
+
case 'number':
|
|
7859
|
+
this.startValue = this.min;
|
|
7860
|
+
this.endValue = this.max;
|
|
7861
|
+
this.lowerBound = this.min;
|
|
7862
|
+
this.upperBound = this.max;
|
|
7863
|
+
break;
|
|
7864
|
+
case 'date': {
|
|
7865
|
+
this.startValue = 0;
|
|
7866
|
+
this.endValue = getDifferenceInUnits(this.dateGranularity || 'year', this.min, this.max);
|
|
7867
|
+
this.lowerBound = 0;
|
|
7868
|
+
this.upperBound = this.endValue;
|
|
7869
|
+
break;
|
|
7870
|
+
}
|
|
7871
|
+
}
|
|
7872
|
+
this.throttledEmitUpdate = throttle(this.emitUpdate, 120);
|
|
7624
7873
|
}
|
|
7625
7874
|
emitUpdate = async () => {
|
|
7626
|
-
this.
|
|
7627
|
-
|
|
7628
|
-
|
|
7629
|
-
|
|
7875
|
+
switch (this.dataType) {
|
|
7876
|
+
case 'number':
|
|
7877
|
+
this.rangeChanged?.emit({
|
|
7878
|
+
startValue: this.startValue,
|
|
7879
|
+
endValue: this.endValue,
|
|
7880
|
+
});
|
|
7881
|
+
break;
|
|
7882
|
+
case 'date': {
|
|
7883
|
+
const granularity = this.dateGranularity || 'year';
|
|
7884
|
+
const startTimestamp = getStartOf(this.min, granularity, this.lowerBound + this.startValue);
|
|
7885
|
+
const endTimestamp = getStartOf(this.min, granularity, this.lowerBound + this.endValue + 1);
|
|
7886
|
+
this.rangeChanged?.emit({
|
|
7887
|
+
startValue: startTimestamp,
|
|
7888
|
+
endValue: endTimestamp,
|
|
7889
|
+
});
|
|
7890
|
+
break;
|
|
7891
|
+
}
|
|
7892
|
+
}
|
|
7630
7893
|
};
|
|
7631
7894
|
handleStartValueChange = (event) => {
|
|
7632
7895
|
const inputElement = event.target;
|
|
@@ -7634,7 +7897,7 @@ class SearchcraftSlider {
|
|
|
7634
7897
|
this.lastFocusedHandle = 'min';
|
|
7635
7898
|
if (value <= this.endValue) {
|
|
7636
7899
|
this.startValue = value;
|
|
7637
|
-
this.
|
|
7900
|
+
this.throttledEmitUpdate();
|
|
7638
7901
|
}
|
|
7639
7902
|
else {
|
|
7640
7903
|
this.startValue = this.endValue;
|
|
@@ -7647,28 +7910,38 @@ class SearchcraftSlider {
|
|
|
7647
7910
|
this.lastFocusedHandle = 'max';
|
|
7648
7911
|
if (value >= this.startValue) {
|
|
7649
7912
|
this.endValue = value;
|
|
7650
|
-
this.
|
|
7913
|
+
this.throttledEmitUpdate();
|
|
7651
7914
|
}
|
|
7652
7915
|
else {
|
|
7653
7916
|
this.endValue = this.startValue;
|
|
7654
7917
|
inputElement.value = `${this.startValue}`;
|
|
7655
7918
|
}
|
|
7656
7919
|
};
|
|
7920
|
+
getLabel = (value) => {
|
|
7921
|
+
switch (this.dataType) {
|
|
7922
|
+
case 'number':
|
|
7923
|
+
return `${this.startValue}`;
|
|
7924
|
+
case 'date': {
|
|
7925
|
+
const granularity = this.dateGranularity || 'year';
|
|
7926
|
+
const dateOffset = this.lowerBound + value;
|
|
7927
|
+
const timestamp = getStartOf(this.min, granularity, dateOffset);
|
|
7928
|
+
return getFormattedDateString(this.dateGranularity || 'year', new Date(timestamp));
|
|
7929
|
+
}
|
|
7930
|
+
}
|
|
7931
|
+
};
|
|
7657
7932
|
render() {
|
|
7658
|
-
const
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
const endPercent = ((this.endValue -
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
const endLabel = this.
|
|
7666
|
-
|
|
7667
|
-
: new Date(this.endValue).getFullYear();
|
|
7668
|
-
return (hAsync("div", { key: '9225b18ce2f40246837d183fcefdd0be7cc22383', class: 'searchcraft-slider' }, hAsync("div", { key: '8078c1eda2ceb781282f59216915896fdbe2a8d3', class: 'searchcraft-slider-range' }, hAsync("div", { key: '6a6bafa9f7abf41ab24f020cd291a4a08c618afb', class: 'searchcraft-slider-active-range', style: {
|
|
7933
|
+
const startPercent = ((this.startValue - this.lowerBound) /
|
|
7934
|
+
(this.upperBound - this.lowerBound)) *
|
|
7935
|
+
100;
|
|
7936
|
+
const endPercent = ((this.endValue - this.lowerBound) /
|
|
7937
|
+
(this.upperBound - this.lowerBound)) *
|
|
7938
|
+
100;
|
|
7939
|
+
const startLabel = this.getLabel(this.startValue);
|
|
7940
|
+
const endLabel = this.getLabel(this.endValue);
|
|
7941
|
+
return (hAsync("div", { key: '3b2e8576d64826f123d40deff3b0df9316649a03', class: 'searchcraft-slider' }, hAsync("div", { key: 'ecaa546b96855aad4e839c5e34e995da0925e0b6', class: 'searchcraft-slider-range' }, hAsync("div", { key: 'f37fc0329249857a29f77d9e3739d10f05f6bf62', class: 'searchcraft-slider-active-range', style: {
|
|
7669
7942
|
left: `${startPercent}%`,
|
|
7670
7943
|
width: `${endPercent - startPercent}%`,
|
|
7671
|
-
} }), hAsync("input", { key: '
|
|
7944
|
+
} }), hAsync("input", { key: '7b5e6f3983b7c109ea0a3f2b248c35d0e225400b', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: 'b5bb628b73c8b582a31453e73cb3ef38579eeea5', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: 'ecb379babd244e3205f30d45628506566fbeff3c', class: 'searchcraft-slider-label' }, hAsync("span", { key: '2be886d05c323f7da1059be88c0cb8ede2e1e98b', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: 'bf66fcab3fae565980a4637cb13b14589ffcb5ba', class: 'searchcraft-slider-end-label' }, endLabel))));
|
|
7672
7945
|
}
|
|
7673
7946
|
static get cmpMeta() { return {
|
|
7674
7947
|
"$flags$": 0,
|
|
@@ -7676,8 +7949,11 @@ class SearchcraftSlider {
|
|
|
7676
7949
|
"$members$": {
|
|
7677
7950
|
"max": [2],
|
|
7678
7951
|
"min": [2],
|
|
7679
|
-
"
|
|
7952
|
+
"step": [2],
|
|
7680
7953
|
"dataType": [1, "data-type"],
|
|
7954
|
+
"dateGranularity": [1, "date-granularity"],
|
|
7955
|
+
"lowerBound": [32],
|
|
7956
|
+
"upperBound": [32],
|
|
7681
7957
|
"endValue": [32],
|
|
7682
7958
|
"startValue": [32],
|
|
7683
7959
|
"lastFocusedHandle": [32]
|
|
@@ -7688,7 +7964,7 @@ class SearchcraftSlider {
|
|
|
7688
7964
|
}; }
|
|
7689
7965
|
}
|
|
7690
7966
|
|
|
7691
|
-
var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:6px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);font-size:14px;font-weight:600;gap:14px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius-sm);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:block}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:block}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:2px solid var(--sc-border-neutral);cursor:pointer;height:20px;pointer-events:all;width:20px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:2px solid var(--sc-border-neutral);cursor:pointer;height:20px;pointer-events:all;width:20px}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:"Source Sans Pro",sans-serif;font-size:15px;font-weight:600;justify-content:space-between;margin-top:10px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}/*# sourceMappingURL=hologram.css.map */
|
|
7967
|
+
var styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:"";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}/*# sourceMappingURL=hologram.css.map */
|
|
7692
7968
|
`;
|
|
7693
7969
|
|
|
7694
7970
|
/**
|