@searchcraft/javascript-sdk 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/components/defineCustomElements.js +2 -0
  2. package/dist/components/index.d.ts +348 -187
  3. package/dist/components/index.js +8 -29
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/components/p-01589c0b.js +46 -0
  6. package/dist/components/p-01589c0b.js.map +1 -0
  7. package/dist/components/{p-8aa0fff5.js → p-0f5b47be.js} +17 -17
  8. package/dist/components/p-0f5b47be.js.map +1 -0
  9. package/dist/components/{p-3f63fa14.js → p-2999498a.js} +34 -22
  10. package/dist/components/p-2999498a.js.map +1 -0
  11. package/dist/components/{p-f8df3d49.js → p-3465cbc7.js} +578 -468
  12. package/dist/components/p-3465cbc7.js.map +1 -0
  13. package/dist/components/{p-e72d0167.js → p-435bec83.js} +3 -3
  14. package/dist/components/p-435bec83.js.map +1 -0
  15. package/dist/components/{p-39e70a00.js → p-48fa555e.js} +30 -4
  16. package/dist/components/p-48fa555e.js.map +1 -0
  17. package/dist/components/p-4d37616e.js +105 -0
  18. package/dist/components/p-4d37616e.js.map +1 -0
  19. package/dist/components/{p-c317a36a.js → p-66109c31.js} +7 -12
  20. package/dist/components/p-66109c31.js.map +1 -0
  21. package/dist/components/{p-d361b781.js → p-760c6845.js} +4 -4
  22. package/dist/components/{p-d361b781.js.map → p-760c6845.js.map} +1 -1
  23. package/dist/components/{p-bc9e0e40.js → p-7c650118.js} +4 -4
  24. package/dist/components/{p-bc9e0e40.js.map → p-7c650118.js.map} +1 -1
  25. package/dist/components/{p-34a32648.js → p-c1f43fe1.js} +4 -4
  26. package/dist/components/{p-34a32648.js.map → p-c1f43fe1.js.map} +1 -1
  27. package/dist/components/searchcraft-ad.js +1 -1
  28. package/dist/components/searchcraft-facet-list.js +1 -1
  29. package/dist/components/searchcraft-filter-panel.js +6 -6
  30. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  31. package/dist/components/searchcraft-input-form.js +1 -1
  32. package/dist/components/searchcraft-pagination.js +1 -1
  33. package/dist/components/searchcraft-pagination.js.map +1 -1
  34. package/dist/components/searchcraft-popover-button.js +97 -3
  35. package/dist/components/searchcraft-popover-button.js.map +1 -1
  36. package/dist/components/searchcraft-popover-footer.d.ts +11 -0
  37. package/dist/components/searchcraft-popover-footer.js +8 -0
  38. package/dist/components/searchcraft-popover-footer.js.map +1 -0
  39. package/dist/components/searchcraft-popover-form.js +34 -24
  40. package/dist/components/searchcraft-popover-form.js.map +1 -1
  41. package/dist/components/searchcraft-popover-list-item.js +1 -1
  42. package/dist/components/searchcraft-popover-list-view.js +1 -1
  43. package/dist/components/searchcraft-results-info.js +2 -9
  44. package/dist/components/searchcraft-results-info.js.map +1 -1
  45. package/dist/components/searchcraft-search-result.js +1 -1
  46. package/dist/components/searchcraft-search-results-per-page.js +1 -1
  47. package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
  48. package/dist/components/searchcraft-search-results.js +69 -32
  49. package/dist/components/searchcraft-search-results.js.map +1 -1
  50. package/dist/components/searchcraft-slider.js +1 -1
  51. package/dist/components/searchcraft-theme.js +2 -2
  52. package/dist/components/searchcraft-theme.js.map +1 -1
  53. package/dist/components/searchcraft-toggle-button.js +1 -1
  54. package/dist/hydrate/index.js +730 -445
  55. package/dist/hydrate/index.mjs +730 -445
  56. package/dist/themes/hologram.css +1 -0
  57. package/dist/themes/hologram.css.map +1 -0
  58. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +4 -3
  59. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +11 -6
  60. package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +4 -3
  61. package/dist/types/components/searchcraft-popover-button/searchcraft-popover-button.d.ts +49 -5
  62. package/dist/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts +13 -0
  63. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +4 -3
  64. package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +3 -3
  65. package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +6 -10
  66. package/dist/types/components/searchcraft-search-result/searchcraft-search-result.d.ts +3 -0
  67. package/dist/types/components/searchcraft-search-results/searchcraft-search-results.d.ts +15 -9
  68. package/dist/types/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.d.ts +4 -3
  69. package/dist/types/components/searchcraft-theme/searchcraft-theme.d.ts +4 -3
  70. package/dist/types/components.d.ts +239 -120
  71. package/dist/types/index.d.ts +0 -1
  72. package/dist/types/store/SearchcraftStore.types.d.ts +18 -6
  73. package/dist/types/utils/index.d.ts +0 -1
  74. package/dist/types/utils/units.d.ts +19 -6
  75. package/package.json +5 -4
  76. package/dist/components/p-39e70a00.js.map +0 -1
  77. package/dist/components/p-3f63fa14.js.map +0 -1
  78. package/dist/components/p-6104fe5d.js +0 -84
  79. package/dist/components/p-6104fe5d.js.map +0 -1
  80. package/dist/components/p-8aa0fff5.js.map +0 -1
  81. package/dist/components/p-c317a36a.js.map +0 -1
  82. package/dist/components/p-e72d0167.js.map +0 -1
  83. package/dist/components/p-f8df3d49.js.map +0 -1
  84. package/dist/types/utils/styles.d.ts +0 -3
@@ -3180,18 +3180,18 @@ Object.keys(react).forEach(function (k) {
3180
3180
  });
3181
3181
  }(zustand));
3182
3182
 
3183
- var B = Object.defineProperty;
3184
- var q = (r, e, n) => e in r ? B(r, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[e] = n;
3185
- var h = (r, e, n) => q(r, typeof e != "symbol" ? e + "" : e, n);
3186
- var P = /* @__PURE__ */ ((r) => (r[r.DEBUG = 0] = "DEBUG", r[r.INFO = 1] = "INFO", r[r.WARN = 2] = "WARN", r[r.ERROR = 3] = "ERROR", r))(P || {});
3187
- class ge {
3183
+ var q = Object.defineProperty;
3184
+ var B = (a, e, n) => e in a ? q(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
3185
+ var h = (a, e, n) => B(a, typeof e != "symbol" ? e + "" : e, n);
3186
+ var F = /* @__PURE__ */ ((a) => (a[a.DEBUG = 0] = "DEBUG", a[a.INFO = 1] = "INFO", a[a.WARN = 2] = "WARN", a[a.ERROR = 3] = "ERROR", a))(F || {});
3187
+ class pe {
3188
3188
  constructor(e) {
3189
3189
  h(this, "logLevel");
3190
3190
  h(this, "logFormatter");
3191
3191
  this.logLevel = e.logLevel || 1, this.logFormatter = e.logFormatter || this.defaultFormatter;
3192
3192
  }
3193
3193
  defaultFormatter(e, n) {
3194
- return `[${P[e]}] ${( new Date()).toISOString()}: ${n}`;
3194
+ return `[${F[e]}] ${( new Date()).toISOString()}: ${n}`;
3195
3195
  }
3196
3196
  debug(e) {
3197
3197
  this.logLevel <= 0 && console.log(this.logFormatter(0, e));
@@ -3222,190 +3222,190 @@ class ge {
3222
3222
  }
3223
3223
  }
3224
3224
  }
3225
- function w(r, e, n, o) {
3226
- return new (n || (n = Promise))(function(a, i) {
3227
- function t(c) {
3225
+ function y(a, e, n, r) {
3226
+ return new (n || (n = Promise))(function(i, o) {
3227
+ function t(s) {
3228
3228
  try {
3229
- l(o.next(c));
3230
- } catch (s) {
3231
- i(s);
3229
+ l(r.next(s));
3230
+ } catch (c) {
3231
+ o(c);
3232
3232
  }
3233
3233
  }
3234
- function u(c) {
3234
+ function u(s) {
3235
3235
  try {
3236
- l(o.throw(c));
3237
- } catch (s) {
3238
- i(s);
3236
+ l(r.throw(s));
3237
+ } catch (c) {
3238
+ o(c);
3239
3239
  }
3240
3240
  }
3241
- function l(c) {
3242
- var s;
3243
- c.done ? a(c.value) : (s = c.value, s instanceof n ? s : new n(function(f) {
3244
- f(s);
3241
+ function l(s) {
3242
+ var c;
3243
+ s.done ? i(s.value) : (c = s.value, c instanceof n ? c : new n(function(p) {
3244
+ p(c);
3245
3245
  })).then(t, u);
3246
3246
  }
3247
- l((o = o.apply(r, [])).next());
3247
+ l((r = r.apply(a, [])).next());
3248
3248
  });
3249
3249
  }
3250
- function y(r, e) {
3251
- var n, o, a, i, t = { label: 0, sent: function() {
3252
- if (1 & a[0]) throw a[1];
3253
- return a[1];
3250
+ function w(a, e) {
3251
+ var n, r, i, o, t = { label: 0, sent: function() {
3252
+ if (1 & i[0]) throw i[1];
3253
+ return i[1];
3254
3254
  }, trys: [], ops: [] };
3255
- return i = { next: u(0), throw: u(1), return: u(2) }, typeof Symbol == "function" && (i[Symbol.iterator] = function() {
3255
+ return o = { next: u(0), throw: u(1), return: u(2) }, typeof Symbol == "function" && (o[Symbol.iterator] = function() {
3256
3256
  return this;
3257
- }), i;
3257
+ }), o;
3258
3258
  function u(l) {
3259
- return function(c) {
3260
- return function(s) {
3259
+ return function(s) {
3260
+ return function(c) {
3261
3261
  if (n) throw new TypeError("Generator is already executing.");
3262
- for (; i && (i = 0, s[0] && (t = 0)), t; ) try {
3263
- if (n = 1, o && (a = 2 & s[0] ? o.return : s[0] ? o.throw || ((a = o.return) && a.call(o), 0) : o.next) && !(a = a.call(o, s[1])).done) return a;
3264
- switch (o = 0, a && (s = [2 & s[0], a.value]), s[0]) {
3262
+ for (; o && (o = 0, c[0] && (t = 0)), t; ) try {
3263
+ if (n = 1, r && (i = 2 & c[0] ? r.return : c[0] ? r.throw || ((i = r.return) && i.call(r), 0) : r.next) && !(i = i.call(r, c[1])).done) return i;
3264
+ switch (r = 0, i && (c = [2 & c[0], i.value]), c[0]) {
3265
3265
  case 0:
3266
3266
  case 1:
3267
- a = s;
3267
+ i = c;
3268
3268
  break;
3269
3269
  case 4:
3270
- return t.label++, { value: s[1], done: !1 };
3270
+ return t.label++, { value: c[1], done: !1 };
3271
3271
  case 5:
3272
- t.label++, o = s[1], s = [0];
3272
+ t.label++, r = c[1], c = [0];
3273
3273
  continue;
3274
3274
  case 7:
3275
- s = t.ops.pop(), t.trys.pop();
3275
+ c = t.ops.pop(), t.trys.pop();
3276
3276
  continue;
3277
3277
  default:
3278
- if (a = t.trys, !((a = a.length > 0 && a[a.length - 1]) || s[0] !== 6 && s[0] !== 2)) {
3278
+ if (i = t.trys, !((i = i.length > 0 && i[i.length - 1]) || c[0] !== 6 && c[0] !== 2)) {
3279
3279
  t = 0;
3280
3280
  continue;
3281
3281
  }
3282
- if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) {
3283
- t.label = s[1];
3282
+ if (c[0] === 3 && (!i || c[1] > i[0] && c[1] < i[3])) {
3283
+ t.label = c[1];
3284
3284
  break;
3285
3285
  }
3286
- if (s[0] === 6 && t.label < a[1]) {
3287
- t.label = a[1], a = s;
3286
+ if (c[0] === 6 && t.label < i[1]) {
3287
+ t.label = i[1], i = c;
3288
3288
  break;
3289
3289
  }
3290
- if (a && t.label < a[2]) {
3291
- t.label = a[2], t.ops.push(s);
3290
+ if (i && t.label < i[2]) {
3291
+ t.label = i[2], t.ops.push(c);
3292
3292
  break;
3293
3293
  }
3294
- a[2] && t.ops.pop(), t.trys.pop();
3294
+ i[2] && t.ops.pop(), t.trys.pop();
3295
3295
  continue;
3296
3296
  }
3297
- s = e.call(r, t);
3298
- } catch (f) {
3299
- s = [6, f], o = 0;
3297
+ c = e.call(a, t);
3298
+ } catch (p) {
3299
+ c = [6, p], r = 0;
3300
3300
  } finally {
3301
- n = a = 0;
3301
+ n = i = 0;
3302
3302
  }
3303
- if (5 & s[0]) throw s[1];
3304
- return { value: s[0] ? s[1] : void 0, done: !0 };
3305
- }([l, c]);
3303
+ if (5 & c[0]) throw c[1];
3304
+ return { value: c[0] ? c[1] : void 0, done: !0 };
3305
+ }([l, s]);
3306
3306
  };
3307
3307
  }
3308
3308
  }
3309
- var b = { exclude: [] }, D = {}, v = function(r, e) {
3310
- typeof window < "u" && (D[r] = e);
3309
+ var S = { exclude: [] }, O = {}, v = function(a, e) {
3310
+ typeof window < "u" && (O[a] = e);
3311
3311
  };
3312
- function C(r) {
3313
- return r ^= r >>> 16, r = Math.imul(r, 2246822507), r ^= r >>> 13, r = Math.imul(r, 3266489909), (r ^= r >>> 16) >>> 0;
3312
+ function C(a) {
3313
+ return a ^= a >>> 16, a = Math.imul(a, 2246822507), a ^= a >>> 13, a = Math.imul(a, 3266489909), (a ^= a >>> 16) >>> 0;
3314
3314
  }
3315
3315
  var m = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);
3316
- function g(r, e) {
3317
- return r << e | r >>> 32 - e;
3316
+ function g(a, e) {
3317
+ return a << e | a >>> 32 - e;
3318
3318
  }
3319
- function M(r, e) {
3319
+ function _(a, e) {
3320
3320
  var n;
3321
- if (e === void 0 && (e = 0), e = e ? 0 | e : 0, typeof r == "string" && (n = r, r = new TextEncoder().encode(n).buffer), !(r instanceof ArrayBuffer)) throw new TypeError("Expected key to be ArrayBuffer or string");
3322
- var o = new Uint32Array([e, e, e, e]);
3323
- (((function(i, t) {
3324
- for (var u = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * u), c = 0; c < u; c++) {
3325
- var s = l.subarray(4 * c, 4 * (c + 1));
3326
- s[0] = Math.imul(s[0], m[0]), s[0] = g(s[0], 15), s[0] = Math.imul(s[0], m[1]), t[0] = t[0] ^ s[0], t[0] = g(t[0], 19), t[0] = t[0] + t[1], t[0] = Math.imul(t[0], 5) + 1444728091, s[1] = Math.imul(s[1], m[1]), s[1] = g(s[1], 16), s[1] = Math.imul(s[1], m[2]), t[1] = t[1] ^ s[1], t[1] = g(t[1], 17), t[1] = t[1] + t[2], t[1] = Math.imul(t[1], 5) + 197830471, s[2] = Math.imul(s[2], m[2]), s[2] = g(s[2], 17), s[2] = Math.imul(s[2], m[3]), t[2] = t[2] ^ s[2], t[2] = g(t[2], 15), t[2] = t[2] + t[3], t[2] = Math.imul(t[2], 5) + 2530024501, s[3] = Math.imul(s[3], m[3]), s[3] = g(s[3], 18), s[3] = Math.imul(s[3], m[0]), t[3] = t[3] ^ s[3], t[3] = g(t[3], 13), t[3] = t[3] + t[0], t[3] = Math.imul(t[3], 5) + 850148119;
3327
- }
3328
- })))(r, o), function(i, t) {
3329
- var u = i.byteLength / 16 | 0, l = i.byteLength % 16, c = new Uint32Array(4), s = new Uint8Array(i, 16 * u, l);
3321
+ 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");
3322
+ var r = new Uint32Array([e, e, e, e]);
3323
+ (((function(o, t) {
3324
+ for (var u = o.byteLength / 16 | 0, l = new Uint32Array(o, 0, 4 * u), s = 0; s < u; s++) {
3325
+ var c = l.subarray(4 * s, 4 * (s + 1));
3326
+ c[0] = Math.imul(c[0], m[0]), c[0] = g(c[0], 15), c[0] = Math.imul(c[0], m[1]), t[0] = t[0] ^ c[0], t[0] = g(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] = g(c[1], 16), c[1] = Math.imul(c[1], m[2]), t[1] = t[1] ^ c[1], t[1] = g(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] = g(c[2], 17), c[2] = Math.imul(c[2], m[3]), t[2] = t[2] ^ c[2], t[2] = g(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] = g(c[3], 18), c[3] = Math.imul(c[3], m[0]), t[3] = t[3] ^ c[3], t[3] = g(t[3], 13), t[3] = t[3] + t[0], t[3] = Math.imul(t[3], 5) + 850148119;
3327
+ }
3328
+ })))(a, r), function(o, t) {
3329
+ var u = o.byteLength / 16 | 0, l = o.byteLength % 16, s = new Uint32Array(4), c = new Uint8Array(o, 16 * u, l);
3330
3330
  switch (l) {
3331
3331
  case 15:
3332
- c[3] = c[3] ^ s[14] << 16;
3332
+ s[3] = s[3] ^ c[14] << 16;
3333
3333
  case 14:
3334
- c[3] = c[3] ^ s[13] << 8;
3334
+ s[3] = s[3] ^ c[13] << 8;
3335
3335
  case 13:
3336
- c[3] = c[3] ^ s[12] << 0, c[3] = Math.imul(c[3], m[3]), c[3] = g(c[3], 18), c[3] = Math.imul(c[3], m[0]), t[3] = t[3] ^ c[3];
3336
+ s[3] = s[3] ^ c[12] << 0, s[3] = Math.imul(s[3], m[3]), s[3] = g(s[3], 18), s[3] = Math.imul(s[3], m[0]), t[3] = t[3] ^ s[3];
3337
3337
  case 12:
3338
- c[2] = c[2] ^ s[11] << 24;
3338
+ s[2] = s[2] ^ c[11] << 24;
3339
3339
  case 11:
3340
- c[2] = c[2] ^ s[10] << 16;
3340
+ s[2] = s[2] ^ c[10] << 16;
3341
3341
  case 10:
3342
- c[2] = c[2] ^ s[9] << 8;
3342
+ s[2] = s[2] ^ c[9] << 8;
3343
3343
  case 9:
3344
- c[2] = c[2] ^ s[8] << 0, c[2] = Math.imul(c[2], m[2]), c[2] = g(c[2], 17), c[2] = Math.imul(c[2], m[3]), t[2] = t[2] ^ c[2];
3344
+ s[2] = s[2] ^ c[8] << 0, s[2] = Math.imul(s[2], m[2]), s[2] = g(s[2], 17), s[2] = Math.imul(s[2], m[3]), t[2] = t[2] ^ s[2];
3345
3345
  case 8:
3346
- c[1] = c[1] ^ s[7] << 24;
3346
+ s[1] = s[1] ^ c[7] << 24;
3347
3347
  case 7:
3348
- c[1] = c[1] ^ s[6] << 16;
3348
+ s[1] = s[1] ^ c[6] << 16;
3349
3349
  case 6:
3350
- c[1] = c[1] ^ s[5] << 8;
3350
+ s[1] = s[1] ^ c[5] << 8;
3351
3351
  case 5:
3352
- c[1] = c[1] ^ s[4] << 0, c[1] = Math.imul(c[1], m[1]), c[1] = g(c[1], 16), c[1] = Math.imul(c[1], m[2]), t[1] = t[1] ^ c[1];
3352
+ s[1] = s[1] ^ c[4] << 0, s[1] = Math.imul(s[1], m[1]), s[1] = g(s[1], 16), s[1] = Math.imul(s[1], m[2]), t[1] = t[1] ^ s[1];
3353
3353
  case 4:
3354
- c[0] = c[0] ^ s[3] << 24;
3354
+ s[0] = s[0] ^ c[3] << 24;
3355
3355
  case 3:
3356
- c[0] = c[0] ^ s[2] << 16;
3356
+ s[0] = s[0] ^ c[2] << 16;
3357
3357
  case 2:
3358
- c[0] = c[0] ^ s[1] << 8;
3358
+ s[0] = s[0] ^ c[1] << 8;
3359
3359
  case 1:
3360
- c[0] = c[0] ^ s[0] << 0, c[0] = Math.imul(c[0], m[0]), c[0] = g(c[0], 15), c[0] = Math.imul(c[0], m[1]), t[0] = t[0] ^ c[0];
3361
- }
3362
- }(r, o), function(i, t) {
3363
- 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] = C(t[0]), t[1] = C(t[1]), t[2] = C(t[2]), t[3] = C(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;
3364
- }(r, o);
3365
- var a = new Uint8Array(o.buffer);
3366
- return Array.from(a).map(function(i) {
3367
- return i.toString(16).padStart(2, "0");
3360
+ s[0] = s[0] ^ c[0] << 0, s[0] = Math.imul(s[0], m[0]), s[0] = g(s[0], 15), s[0] = Math.imul(s[0], m[1]), t[0] = t[0] ^ s[0];
3361
+ }
3362
+ }(a, r), function(o, t) {
3363
+ t[0] = t[0] ^ o.byteLength, t[1] = t[1] ^ o.byteLength, t[2] = t[2] ^ o.byteLength, t[3] = t[3] ^ o.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] = C(t[0]), t[1] = C(t[1]), t[2] = C(t[2]), t[3] = C(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;
3364
+ }(a, r);
3365
+ var i = new Uint8Array(r.buffer);
3366
+ return Array.from(i).map(function(o) {
3367
+ return o.toString(16).padStart(2, "0");
3368
3368
  }).join("");
3369
3369
  }
3370
- function H(r) {
3371
- for (var e = 0, n = 0; n < r.length; ++n) e += Math.abs(r[n]);
3370
+ function z(a) {
3371
+ for (var e = 0, n = 0; n < a.length; ++n) e += Math.abs(a[n]);
3372
3372
  return e;
3373
3373
  }
3374
- function U(r, e, n) {
3375
- for (var o = [], a = 0; a < r[0].data.length; a++) {
3376
- for (var i = [], t = 0; t < r.length; t++) i.push(r[t].data[a]);
3377
- o.push(Q(i));
3374
+ function U(a, e, n) {
3375
+ for (var r = [], i = 0; i < a[0].data.length; i++) {
3376
+ for (var o = [], t = 0; t < a.length; t++) o.push(a[t].data[i]);
3377
+ r.push(H(o));
3378
3378
  }
3379
- var u = new Uint8ClampedArray(o);
3379
+ var u = new Uint8ClampedArray(r);
3380
3380
  return new ImageData(u, e, n);
3381
3381
  }
3382
- function Q(r) {
3383
- if (r.length === 0) return 0;
3384
- for (var e = {}, n = 0, o = r; n < o.length; n++)
3385
- e[i = o[n]] = (e[i] || 0) + 1;
3386
- var a = r[0];
3387
- for (var i in e) e[i] > e[a] && (a = parseInt(i, 10));
3388
- return a;
3382
+ function H(a) {
3383
+ if (a.length === 0) return 0;
3384
+ for (var e = {}, n = 0, r = a; n < r.length; n++)
3385
+ e[o = r[n]] = (e[o] || 0) + 1;
3386
+ var i = a[0];
3387
+ for (var o in e) e[o] > e[i] && (i = parseInt(o, 10));
3388
+ return i;
3389
3389
  }
3390
3390
  function E() {
3391
3391
  if (typeof navigator > "u") return { name: "unknown", version: "unknown" };
3392
- for (var r = navigator.userAgent, e = { Edg: "Edge", OPR: "Opera" }, n = 0, o = [/(?<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 < o.length; n++) {
3393
- var a = o[n], i = r.match(a);
3394
- if (i && i.groups) return { name: e[i.groups.name] || i.groups.name, version: i.groups.version };
3392
+ 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++) {
3393
+ var i = r[n], o = a.match(i);
3394
+ if (o && o.groups) return { name: e[o.groups.name] || o.groups.name, version: o.groups.version };
3395
3395
  }
3396
3396
  return { name: "unknown", version: "unknown" };
3397
3397
  }
3398
3398
  v("audio", function() {
3399
- return w(this, void 0, void 0, function() {
3400
- return y(this, function(r) {
3399
+ return y(this, void 0, void 0, function() {
3400
+ return w(this, function(a) {
3401
3401
  return [2, new Promise(function(e, n) {
3402
3402
  try {
3403
- var o = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), a = o.createBufferSource(), i = o.createOscillator();
3404
- i.frequency.value = 1e3;
3405
- var t, u = o.createDynamicsCompressor();
3406
- 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(o.destination), i.start(), o.oncomplete = function(l) {
3407
- t = l.renderedBuffer.getChannelData(0), e({ sampleHash: H(t), oscillator: i.type, maxChannels: o.destination.maxChannelCount, channelCountMode: a.channelCountMode });
3408
- }, o.startRendering();
3403
+ var r = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), i = r.createBufferSource(), o = r.createOscillator();
3404
+ o.frequency.value = 1e3;
3405
+ var t, u = r.createDynamicsCompressor();
3406
+ u.threshold.value = -50, u.knee.value = 40, u.ratio.value = 12, u.attack.value = 0, u.release.value = 0.2, o.connect(u), u.connect(r.destination), o.start(), r.oncomplete = function(l) {
3407
+ t = l.renderedBuffer.getChannelData(0), e({ sampleHash: z(t), oscillator: o.type, maxChannels: r.destination.maxChannelCount, channelCountMode: i.channelCountMode });
3408
+ }, r.startRendering();
3409
3409
  } catch (l) {
3410
3410
  console.error("Error creating audio fingerprint:", l), n(l);
3411
3411
  }
@@ -3413,123 +3413,123 @@ v("audio", function() {
3413
3413
  });
3414
3414
  });
3415
3415
  });
3416
- var z = E().name !== "SamsungBrowser" ? 1 : 3, x = 280, F = 20;
3416
+ var Q = E().name !== "SamsungBrowser" ? 1 : 3, P = 280, x = 20;
3417
3417
  E().name != "Firefox" && v("canvas", function() {
3418
- return document.createElement("canvas").getContext("2d"), new Promise(function(r) {
3419
- var e = Array.from({ length: z }, function() {
3418
+ return document.createElement("canvas").getContext("2d"), new Promise(function(a) {
3419
+ var e = Array.from({ length: Q }, function() {
3420
3420
  return function() {
3421
- var n = document.createElement("canvas"), o = n.getContext("2d");
3422
- if (!o) return new ImageData(1, 1);
3423
- n.width = x, n.height = F;
3424
- var a = o.createLinearGradient(0, 0, n.width, n.height);
3425
- a.addColorStop(0, "red"), a.addColorStop(0.16666666666666666, "orange"), a.addColorStop(0.3333333333333333, "yellow"), a.addColorStop(0.5, "green"), a.addColorStop(0.6666666666666666, "blue"), a.addColorStop(0.8333333333333334, "indigo"), a.addColorStop(1, "violet"), o.fillStyle = a, o.fillRect(0, 0, n.width, n.height);
3426
- var i = "Random Text WMwmil10Oo";
3427
- o.font = "23.123px Arial", o.fillStyle = "black", o.fillText(i, -5, 15), o.fillStyle = "rgba(0, 0, 255, 0.5)", o.fillText(i, -3.3, 17.7), o.beginPath(), o.moveTo(0, 0), o.lineTo(2 * n.width / 7, n.height), o.strokeStyle = "white", o.lineWidth = 2, o.stroke();
3428
- var t = o.getImageData(0, 0, n.width, n.height);
3421
+ var n = document.createElement("canvas"), r = n.getContext("2d");
3422
+ if (!r) return new ImageData(1, 1);
3423
+ n.width = P, n.height = x;
3424
+ var i = r.createLinearGradient(0, 0, n.width, n.height);
3425
+ i.addColorStop(0, "red"), i.addColorStop(0.16666666666666666, "orange"), i.addColorStop(0.3333333333333333, "yellow"), i.addColorStop(0.5, "green"), i.addColorStop(0.6666666666666666, "blue"), i.addColorStop(0.8333333333333334, "indigo"), i.addColorStop(1, "violet"), r.fillStyle = i, r.fillRect(0, 0, n.width, n.height);
3426
+ var o = "Random Text WMwmil10Oo";
3427
+ r.font = "23.123px Arial", r.fillStyle = "black", r.fillText(o, -5, 15), r.fillStyle = "rgba(0, 0, 255, 0.5)", r.fillText(o, -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();
3428
+ var t = r.getImageData(0, 0, n.width, n.height);
3429
3429
  return t;
3430
3430
  }();
3431
3431
  });
3432
- r({ commonImageDataHash: M(U(e, x, F).data.toString()).toString() });
3432
+ a({ commonImageDataHash: _(U(e, P, x).data.toString()).toString() });
3433
3433
  });
3434
3434
  });
3435
- var T, K = ["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"], Y = ["monospace", "sans-serif", "serif"];
3436
- function k(r, e) {
3437
- if (!r) throw new Error("Canvas context not supported");
3438
- return r.font = "72px ".concat(e), r.measureText("WwMmLli0Oo").width;
3435
+ var A, K = ["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"];
3436
+ function k(a, e) {
3437
+ if (!a) throw new Error("Canvas context not supported");
3438
+ return a.font = "72px ".concat(e), a.measureText("WwMmLli0Oo").width;
3439
3439
  }
3440
- function J() {
3441
- var r, e = document.createElement("canvas"), n = (r = e.getContext("webgl")) !== null && r !== void 0 ? r : e.getContext("experimental-webgl");
3440
+ function X() {
3441
+ var a, e = document.createElement("canvas"), n = (a = e.getContext("webgl")) !== null && a !== void 0 ? a : e.getContext("experimental-webgl");
3442
3442
  if (n && "getParameter" in n) try {
3443
- var o = (n.getParameter(n.VENDOR) || "").toString(), a = (n.getParameter(n.RENDERER) || "").toString(), i = { vendor: o, renderer: a, version: (n.getParameter(n.VERSION) || "").toString(), shadingLanguageVersion: (n.getParameter(n.SHADING_LANGUAGE_VERSION) || "").toString() };
3444
- if (!a.length || !o.length) {
3443
+ var r = (n.getParameter(n.VENDOR) || "").toString(), i = (n.getParameter(n.RENDERER) || "").toString(), o = { vendor: r, renderer: i, version: (n.getParameter(n.VERSION) || "").toString(), shadingLanguageVersion: (n.getParameter(n.SHADING_LANGUAGE_VERSION) || "").toString() };
3444
+ if (!i.length || !r.length) {
3445
3445
  var t = n.getExtension("WEBGL_debug_renderer_info");
3446
3446
  if (t) {
3447
3447
  var u = (n.getParameter(t.UNMASKED_VENDOR_WEBGL) || "").toString(), l = (n.getParameter(t.UNMASKED_RENDERER_WEBGL) || "").toString();
3448
- u && (i.vendorUnmasked = u), l && (i.rendererUnmasked = l);
3448
+ u && (o.vendorUnmasked = u), l && (o.rendererUnmasked = l);
3449
3449
  }
3450
3450
  }
3451
- return i;
3451
+ return o;
3452
3452
  } catch {
3453
3453
  }
3454
3454
  return "undefined";
3455
3455
  }
3456
- function X() {
3457
- var r = new Float32Array(1), e = new Uint8Array(r.buffer);
3458
- return r[0] = 1 / 0, r[0] = r[0] - r[0], e[3];
3456
+ function Y() {
3457
+ var a = new Float32Array(1), e = new Uint8Array(a.buffer);
3458
+ return a[0] = 1 / 0, a[0] = a[0] - a[0], e[3];
3459
3459
  }
3460
- function Z(r, e) {
3460
+ function Z(a, e) {
3461
3461
  var n = {};
3462
- return e.forEach(function(o) {
3463
- var a = function(i) {
3464
- if (i.length === 0) return null;
3462
+ return e.forEach(function(r) {
3463
+ var i = function(o) {
3464
+ if (o.length === 0) return null;
3465
3465
  var t = {};
3466
- i.forEach(function(c) {
3467
- var s = String(c);
3468
- t[s] = (t[s] || 0) + 1;
3466
+ o.forEach(function(s) {
3467
+ var c = String(s);
3468
+ t[c] = (t[c] || 0) + 1;
3469
3469
  });
3470
- var u = i[0], l = 1;
3471
- return Object.keys(t).forEach(function(c) {
3472
- t[c] > l && (u = c, l = t[c]);
3470
+ var u = o[0], l = 1;
3471
+ return Object.keys(t).forEach(function(s) {
3472
+ t[s] > l && (u = s, l = t[s]);
3473
3473
  }), u;
3474
- }(r.map(function(i) {
3475
- return o in i ? i[o] : void 0;
3476
- }).filter(function(i) {
3477
- return i !== void 0;
3474
+ }(a.map(function(o) {
3475
+ return r in o ? o[r] : void 0;
3476
+ }).filter(function(o) {
3477
+ return o !== void 0;
3478
3478
  }));
3479
- a && (n[o] = a);
3479
+ i && (n[r] = i);
3480
3480
  }), n;
3481
3481
  }
3482
3482
  function ee() {
3483
- var r = [], e = { "prefers-contrast": ["high", "more", "low", "less", "forced", "no-preference"], "any-hover": ["hover", "none"], "any-pointer": ["none", "coarse", "fine"], pointer: ["none", "coarse", "fine"], hover: ["hover", "none"], update: ["fast", "slow"], "inverted-colors": ["inverted", "none"], "prefers-reduced-motion": ["reduce", "no-preference"], "prefers-reduced-transparency": ["reduce", "no-preference"], scripting: ["none", "initial-only", "enabled"], "forced-colors": ["active", "none"] };
3483
+ var a = [], e = { "prefers-contrast": ["high", "more", "low", "less", "forced", "no-preference"], "any-hover": ["hover", "none"], "any-pointer": ["none", "coarse", "fine"], pointer: ["none", "coarse", "fine"], hover: ["hover", "none"], update: ["fast", "slow"], "inverted-colors": ["inverted", "none"], "prefers-reduced-motion": ["reduce", "no-preference"], "prefers-reduced-transparency": ["reduce", "no-preference"], scripting: ["none", "initial-only", "enabled"], "forced-colors": ["active", "none"] };
3484
3484
  return Object.keys(e).forEach(function(n) {
3485
- e[n].forEach(function(o) {
3486
- matchMedia("(".concat(n, ": ").concat(o, ")")).matches && r.push("".concat(n, ": ").concat(o));
3485
+ e[n].forEach(function(r) {
3486
+ matchMedia("(".concat(n, ": ").concat(r, ")")).matches && a.push("".concat(n, ": ").concat(r));
3487
3487
  });
3488
- }), r;
3488
+ }), a;
3489
3489
  }
3490
3490
  function te() {
3491
3491
  if (window.location.protocol === "https:" && typeof window.ApplePaySession == "function") try {
3492
- for (var r = window.ApplePaySession.supportsVersion, e = 15; e > 0; e--) if (r(e)) return e;
3492
+ for (var a = window.ApplePaySession.supportsVersion, e = 15; e > 0; e--) if (a(e)) return e;
3493
3493
  } catch {
3494
3494
  return 0;
3495
3495
  }
3496
3496
  return 0;
3497
3497
  }
3498
3498
  E().name != "Firefox" && v("fonts", function() {
3499
- var r = this;
3499
+ var a = this;
3500
3500
  return new Promise(function(e, n) {
3501
3501
  try {
3502
- (function(o) {
3503
- var a;
3504
- w(this, void 0, void 0, function() {
3505
- var i, t, u;
3506
- return y(this, function(l) {
3502
+ (function(r) {
3503
+ var i;
3504
+ y(this, void 0, void 0, function() {
3505
+ var o, t, u;
3506
+ return w(this, function(l) {
3507
3507
  switch (l.label) {
3508
3508
  case 0:
3509
- return document.body ? [3, 2] : [4, (c = 50, new Promise(function(f) {
3510
- return setTimeout(f, c, s);
3509
+ return document.body ? [3, 2] : [4, (s = 50, new Promise(function(p) {
3510
+ return setTimeout(p, s, c);
3511
3511
  }))];
3512
3512
  case 1:
3513
3513
  return l.sent(), [3, 0];
3514
3514
  case 2:
3515
- 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 || ((a = i.contentWindow) === null || a === void 0 ? void 0 : a.document))) throw new Error("Iframe document is not accessible");
3516
- return o({ iframe: u }), setTimeout(function() {
3517
- document.body.removeChild(i);
3515
+ if ((o = document.createElement("iframe")).setAttribute("frameBorder", "0"), (t = o.style).setProperty("position", "fixed"), t.setProperty("display", "block", "important"), t.setProperty("visibility", "visible"), t.setProperty("border", "0"), t.setProperty("opacity", "0"), o.src = "about:blank", document.body.appendChild(o), !(u = o.contentDocument || ((i = o.contentWindow) === null || i === void 0 ? void 0 : i.document))) throw new Error("Iframe document is not accessible");
3516
+ return r({ iframe: u }), setTimeout(function() {
3517
+ document.body.removeChild(o);
3518
3518
  }, 0), [2];
3519
3519
  }
3520
- var c, s;
3520
+ var s, c;
3521
3521
  });
3522
3522
  });
3523
- })(function(o) {
3524
- var a = o.iframe;
3525
- return w(r, void 0, void 0, function() {
3526
- var i, t, u, l;
3527
- return y(this, function(c) {
3528
- return i = a.createElement("canvas"), t = i.getContext("2d"), u = Y.map(function(s) {
3529
- return k(t, s);
3530
- }), l = {}, K.forEach(function(s) {
3531
- var f = k(t, s);
3532
- u.includes(f) || (l[s] = f);
3523
+ })(function(r) {
3524
+ var i = r.iframe;
3525
+ return y(a, void 0, void 0, function() {
3526
+ var o, t, u, l;
3527
+ return w(this, function(s) {
3528
+ return o = i.createElement("canvas"), t = o.getContext("2d"), u = J.map(function(c) {
3529
+ return k(t, c);
3530
+ }), l = {}, K.forEach(function(c) {
3531
+ var p = k(t, c);
3532
+ u.includes(p) || (l[c] = p);
3533
3533
  }), e(l), [2];
3534
3534
  });
3535
3535
  });
@@ -3539,76 +3539,76 @@ E().name != "Firefox" && v("fonts", function() {
3539
3539
  }
3540
3540
  });
3541
3541
  }), v("hardware", function() {
3542
- return new Promise(function(r, e) {
3543
- var n = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, o = window.performance && window.performance.memory ? window.performance.memory : 0;
3544
- r({ videocard: J(), architecture: X(), deviceMemory: n.toString() || "undefined", jsHeapSizeLimit: o.jsHeapSizeLimit || 0 });
3542
+ return new Promise(function(a, e) {
3543
+ var n = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, r = window.performance && window.performance.memory ? window.performance.memory : 0;
3544
+ a({ videocard: X(), architecture: Y(), deviceMemory: n.toString() || "undefined", jsHeapSizeLimit: r.jsHeapSizeLimit || 0 });
3545
3545
  });
3546
3546
  }), v("locales", function() {
3547
- return new Promise(function(r) {
3548
- r({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });
3547
+ return new Promise(function(a) {
3548
+ a({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });
3549
3549
  });
3550
3550
  }), v("permissions", function() {
3551
- return w(this, void 0, void 0, function() {
3552
- var r;
3553
- return y(this, function(e) {
3554
- return T = (b == null ? void 0 : b.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"], r = Array.from({ length: (b == null ? void 0 : b.retries) || 3 }, function() {
3551
+ return y(this, void 0, void 0, function() {
3552
+ var a;
3553
+ return w(this, function(e) {
3554
+ return A = (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() {
3555
3555
  return function() {
3556
- return w(this, void 0, void 0, function() {
3557
- var n, o, a, i, t;
3558
- return y(this, function(u) {
3556
+ return y(this, void 0, void 0, function() {
3557
+ var n, r, i, o, t;
3558
+ return w(this, function(u) {
3559
3559
  switch (u.label) {
3560
3560
  case 0:
3561
- n = {}, o = 0, a = T, u.label = 1;
3561
+ n = {}, r = 0, i = A, u.label = 1;
3562
3562
  case 1:
3563
- if (!(o < a.length)) return [3, 6];
3564
- i = a[o], u.label = 2;
3563
+ if (!(r < i.length)) return [3, 6];
3564
+ o = i[r], u.label = 2;
3565
3565
  case 2:
3566
- return u.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];
3566
+ return u.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: o })];
3567
3567
  case 3:
3568
- return t = u.sent(), n[i] = t.state.toString(), [3, 5];
3568
+ return t = u.sent(), n[o] = t.state.toString(), [3, 5];
3569
3569
  case 4:
3570
3570
  return u.sent(), [3, 5];
3571
3571
  case 5:
3572
- return o++, [3, 1];
3572
+ return r++, [3, 1];
3573
3573
  case 6:
3574
3574
  return [2, n];
3575
3575
  }
3576
3576
  });
3577
3577
  });
3578
3578
  }();
3579
- }), [2, Promise.all(r).then(function(n) {
3580
- return Z(n, T);
3579
+ }), [2, Promise.all(a).then(function(n) {
3580
+ return Z(n, A);
3581
3581
  })];
3582
3582
  });
3583
3583
  });
3584
3584
  }), v("plugins", function() {
3585
- var r = [];
3585
+ var a = [];
3586
3586
  if (navigator.plugins) for (var e = 0; e < navigator.plugins.length; e++) {
3587
3587
  var n = navigator.plugins[e];
3588
- r.push([n.name, n.filename, n.description].join("|"));
3588
+ a.push([n.name, n.filename, n.description].join("|"));
3589
3589
  }
3590
- return new Promise(function(o) {
3591
- o({ plugins: r });
3590
+ return new Promise(function(r) {
3591
+ r({ plugins: a });
3592
3592
  });
3593
3593
  }), v("screen", function() {
3594
- return new Promise(function(r) {
3595
- r({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });
3594
+ return new Promise(function(a) {
3595
+ a({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });
3596
3596
  });
3597
3597
  }), v("system", function() {
3598
- return new Promise(function(r) {
3598
+ return new Promise(function(a) {
3599
3599
  var e = E();
3600
- r({ 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: te() });
3600
+ 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: te() });
3601
3601
  });
3602
3602
  });
3603
- var p, ne = E().name !== "SamsungBrowser" ? 1 : 3, d = null;
3603
+ var f, ne = E().name !== "SamsungBrowser" ? 1 : 3, d = null;
3604
3604
  v("webgl", function() {
3605
- return w(this, void 0, void 0, function() {
3606
- var r;
3607
- return y(this, function(e) {
3608
- typeof document < "u" && ((p = document.createElement("canvas")).width = 200, p.height = 100, d = p.getContext("webgl"));
3605
+ return y(this, void 0, void 0, function() {
3606
+ var a;
3607
+ return w(this, function(e) {
3608
+ typeof document < "u" && ((f = document.createElement("canvas")).width = 200, f.height = 100, d = f.getContext("webgl"));
3609
3609
  try {
3610
3610
  if (!d) throw new Error("WebGL not supported");
3611
- return r = Array.from({ length: ne }, function() {
3611
+ return a = Array.from({ length: ne }, function() {
3612
3612
  return function() {
3613
3613
  try {
3614
3614
  if (!d) throw new Error("WebGL not supported");
@@ -3617,36 +3617,36 @@ v("webgl", function() {
3617
3617
  void main() {
3618
3618
  gl_Position = vec4(position, 0.0, 1.0);
3619
3619
  }
3620
- `, o = `
3620
+ `, r = `
3621
3621
  precision mediump float;
3622
3622
  void main() {
3623
3623
  gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
3624
3624
  }
3625
- `, a = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);
3626
- if (!a || !i) throw new Error("Failed to create shaders");
3627
- if (d.shaderSource(a, n), d.shaderSource(i, o), d.compileShader(a), !d.getShaderParameter(a, d.COMPILE_STATUS)) throw new Error("Vertex shader compilation failed: " + d.getShaderInfoLog(a));
3628
- if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error("Fragment shader compilation failed: " + d.getShaderInfoLog(i));
3625
+ `, i = d.createShader(d.VERTEX_SHADER), o = d.createShader(d.FRAGMENT_SHADER);
3626
+ if (!i || !o) throw new Error("Failed to create shaders");
3627
+ if (d.shaderSource(i, n), d.shaderSource(o, r), d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error("Vertex shader compilation failed: " + d.getShaderInfoLog(i));
3628
+ if (d.compileShader(o), !d.getShaderParameter(o, d.COMPILE_STATUS)) throw new Error("Fragment shader compilation failed: " + d.getShaderInfoLog(o));
3629
3629
  var t = d.createProgram();
3630
3630
  if (!t) throw new Error("Failed to create shader program");
3631
- if (d.attachShader(t, a), d.attachShader(t, i), d.linkProgram(t), !d.getProgramParameter(t, d.LINK_STATUS)) throw new Error("Shader program linking failed: " + d.getProgramInfoLog(t));
3631
+ if (d.attachShader(t, i), d.attachShader(t, o), d.linkProgram(t), !d.getProgramParameter(t, d.LINK_STATUS)) throw new Error("Shader program linking failed: " + d.getProgramInfoLog(t));
3632
3632
  d.useProgram(t);
3633
- for (var u = 137, l = new Float32Array(4 * u), c = 2 * Math.PI / u, s = 0; s < u; s++) {
3634
- var f = s * c;
3635
- l[4 * s] = 0, l[4 * s + 1] = 0, l[4 * s + 2] = Math.cos(f) * (p.width / 2), l[4 * s + 3] = Math.sin(f) * (p.height / 2);
3633
+ for (var u = 137, l = new Float32Array(4 * u), s = 2 * Math.PI / u, c = 0; c < u; c++) {
3634
+ var p = c * s;
3635
+ l[4 * c] = 0, l[4 * c + 1] = 0, l[4 * c + 2] = Math.cos(p) * (f.width / 2), l[4 * c + 3] = Math.sin(p) * (f.height / 2);
3636
3636
  }
3637
3637
  var L = d.createBuffer();
3638
3638
  d.bindBuffer(d.ARRAY_BUFFER, L), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);
3639
3639
  var I = d.getAttribLocation(t, "position");
3640
- d.enableVertexAttribArray(I), d.vertexAttribPointer(I, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, p.width, p.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * u);
3641
- var R = new Uint8ClampedArray(p.width * p.height * 4);
3642
- return d.readPixels(0, 0, p.width, p.height, d.RGBA, d.UNSIGNED_BYTE, R), new ImageData(R, p.width, p.height);
3640
+ d.enableVertexAttribArray(I), d.vertexAttribPointer(I, 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);
3641
+ var R = new Uint8ClampedArray(f.width * f.height * 4);
3642
+ return d.readPixels(0, 0, f.width, f.height, d.RGBA, d.UNSIGNED_BYTE, R), new ImageData(R, f.width, f.height);
3643
3643
  } catch {
3644
3644
  return new ImageData(1, 1);
3645
3645
  } finally {
3646
3646
  d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));
3647
3647
  }
3648
3648
  }();
3649
- }), [2, { commonImageHash: M(U(r, p.width, p.height).data.toString()).toString() }];
3649
+ }), [2, { commonImageHash: _(U(a, f.width, f.height).data.toString()).toString() }];
3650
3650
  } catch {
3651
3651
  return [2, { webgl: "unsupported" }];
3652
3652
  }
@@ -3654,15 +3654,15 @@ v("webgl", function() {
3654
3654
  });
3655
3655
  });
3656
3656
  });
3657
- var S = function(r, e, n, o) {
3658
- for (var a = (n - e) / o, i = 0, t = 0; t < o; t++)
3659
- i += r(e + (t + 0.5) * a);
3660
- return i * a;
3657
+ var b = function(a, e, n, r) {
3658
+ for (var i = (n - e) / r, o = 0, t = 0; t < r; t++)
3659
+ o += a(e + (t + 0.5) * i);
3660
+ return o * i;
3661
3661
  };
3662
3662
  v("math", function() {
3663
- return w(void 0, void 0, void 0, function() {
3664
- return y(this, function(r) {
3665
- return [2, { acos: Math.acos(0.5), asin: S(Math.asin, -1, 1, 97), atan: S(Math.atan, -1, 1, 97), cos: S(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: S(Math.sin, -Math.PI, Math.PI, 97), sinh: S(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: S(Math.tan, 0, 2 * Math.PI, 97), tanh: S(Math.tanh, -9 / 7, 7 / 9, 97) }];
3663
+ return y(void 0, void 0, void 0, function() {
3664
+ return w(this, function(a) {
3665
+ 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) }];
3666
3666
  });
3667
3667
  });
3668
3668
  });
@@ -3670,12 +3670,16 @@ v("math", function() {
3670
3670
  const initialSearchcraftStateValues = {
3671
3671
  adClientResponseItems: [],
3672
3672
  core: undefined,
3673
+ hotkey: 'k',
3674
+ hotkeyModifier: 'meta',
3673
3675
  logger: undefined,
3674
3676
  facetPathsForIndexFields: {},
3677
+ initialQuery: '',
3678
+ initialSearchClientResponseItems: [],
3675
3679
  isPopoverVisible: false,
3676
3680
  isSearchInProgress: false,
3677
- searchTerm: '',
3678
3681
  rangeValueForIndexFields: {},
3682
+ searchTerm: '',
3679
3683
  searchMode: 'fuzzy',
3680
3684
  searchClientResponseItems: [],
3681
3685
  searchResponseTimeTaken: undefined,
@@ -3684,37 +3688,47 @@ const initialSearchcraftStateValues = {
3684
3688
  searchResultsPerPage: 20,
3685
3689
  searchResultsPage: 1,
3686
3690
  sortType: 'asc',
3691
+ // Callbacks
3692
+ afterInit: () => { },
3687
3693
  };
3688
- const searchcraftStore = zustand.createStore((set, get) => {
3694
+ const searchcraftStore = zustand.createStore((_set, get) => {
3689
3695
  const functions = {
3690
- addFacetPathsForIndexField: (data) => set((state) => ({
3696
+ set: (state) => {
3697
+ _set(state);
3698
+ return get();
3699
+ },
3700
+ addFacetPathsForIndexField: (facetPaths) => functions.set((state) => ({
3691
3701
  facetPathsForIndexFields: {
3692
3702
  ...state.facetPathsForIndexFields,
3693
- [data.fieldName]: data,
3703
+ [facetPaths.fieldName]: facetPaths,
3694
3704
  },
3695
3705
  })),
3696
- addRangeValueForIndexField: (data) => set((state) => ({
3706
+ addRangeValueForIndexField: (rangeValue) => functions.set((state) => ({
3697
3707
  rangeValueForIndexFields: {
3698
3708
  ...state.rangeValueForIndexFields,
3699
- [data.fieldName]: data,
3709
+ [rangeValue.fieldName]: rangeValue,
3700
3710
  },
3701
3711
  })),
3702
- getSearchcraftInstance: () => {
3712
+ getSearchcraftCore: () => {
3703
3713
  const { core } = get();
3704
3714
  return core;
3705
3715
  },
3706
- initialize: (searchcraftInstance, debug = false) => {
3707
- const core = searchcraftInstance;
3716
+ init: (core, debug = false) => {
3708
3717
  const logger = debug
3709
- ? new ge({ logLevel: P.DEBUG })
3718
+ ? new pe({ logLevel: F.DEBUG })
3710
3719
  : undefined;
3711
- set({
3720
+ const state = functions.set({
3712
3721
  core,
3713
3722
  logger,
3714
- searchResultsPerPage: core.config.searchResultsPerPage || 20,
3723
+ searchResultsPerPage: core?.config.searchResultsPerPage || 20,
3724
+ });
3725
+ core?.subscribe('initialized', () => {
3726
+ if (state.afterInit) {
3727
+ state.afterInit(state);
3728
+ }
3715
3729
  });
3716
3730
  },
3717
- removeFacetPathsForIndexField: (fieldName) => set((state) => {
3731
+ removeFacetPathsForIndexField: (fieldName) => functions.set((state) => {
3718
3732
  const currentPaths = state.facetPathsForIndexFields;
3719
3733
  delete currentPaths[fieldName];
3720
3734
  return {
@@ -3723,7 +3737,7 @@ const searchcraftStore = zustand.createStore((set, get) => {
3723
3737
  },
3724
3738
  };
3725
3739
  }),
3726
- removeRangeValueForIndexField: (fieldName) => set((state) => {
3740
+ removeRangeValueForIndexField: (fieldName) => functions.set((state) => {
3727
3741
  const currentValues = state.rangeValueForIndexFields;
3728
3742
  delete currentValues[fieldName];
3729
3743
  return {
@@ -3733,19 +3747,19 @@ const searchcraftStore = zustand.createStore((set, get) => {
3733
3747
  };
3734
3748
  }),
3735
3749
  resetFacetPaths: () => {
3736
- set({
3750
+ functions.set({
3737
3751
  facetPathsForIndexFields: {},
3738
3752
  });
3739
3753
  },
3740
3754
  search: async () => {
3741
3755
  const state = get();
3742
- state.logger?.log(P.INFO, `Starting search with search term: "${state.searchTerm}"`);
3756
+ state.logger?.log(F.INFO, `Starting search with search term: "${state.searchTerm}"`);
3743
3757
  if (!state.core) {
3744
3758
  throw new Error('Searchcraft instance is not initialized.');
3745
3759
  }
3746
3760
  if (!state.searchTerm.trim()) {
3747
- state.logger?.log(P.INFO, 'No search request was made: search term was empty.');
3748
- set({
3761
+ state.logger?.log(F.INFO, 'No search request was made: search term was empty.');
3762
+ functions.set({
3749
3763
  searchClientResponseItems: [],
3750
3764
  searchResultsCount: 0,
3751
3765
  searchResultsPage: 1,
@@ -3753,32 +3767,8 @@ const searchcraftStore = zustand.createStore((set, get) => {
3753
3767
  });
3754
3768
  return;
3755
3769
  }
3756
- set({ isSearchInProgress: true });
3757
- const handleSearchcraftResponse = (response, items) => {
3758
- const facetsFromResponse = response.data.facets;
3759
- set((state) => {
3760
- return {
3761
- isSearchInProgress: false,
3762
- searchClientResponseItems: items,
3763
- searchResponseTimeTaken: response.data.time_taken || 0,
3764
- searchResultsPage:
3765
- // reset to first page when response count changes
3766
- response.data.count === state.searchResultsCount
3767
- ? state.searchResultsPage
3768
- : 1,
3769
- searchResultsCount: response.data.count || 0,
3770
- };
3771
- });
3772
- if (facetsFromResponse) {
3773
- set({ searchResponseFacetPrime: facetsFromResponse });
3774
- }
3775
- state.logger?.log(P.DEBUG, `Search results: ${JSON.stringify(items)}`);
3776
- state.logger?.log(P.DEBUG, `Facets from response: ${JSON.stringify(facetsFromResponse)}`);
3777
- };
3778
- const handleAdResponse = (adClientResponseItems) => {
3779
- set({ adClientResponseItems });
3780
- };
3781
- state.core.getItems({
3770
+ functions.set({ isSearchInProgress: true });
3771
+ state.core.getResponseItems({
3782
3772
  searchTerm: state.searchTerm,
3783
3773
  mode: state.searchMode,
3784
3774
  sort: state.sortType,
@@ -3788,15 +3778,55 @@ const searchcraftStore = zustand.createStore((set, get) => {
3788
3778
  ? state.searchResultsPerPage * (state.searchResultsPage - 1)
3789
3779
  : 0,
3790
3780
  limit: state.searchResultsPerPage,
3791
- }, handleSearchcraftResponse, handleAdResponse);
3781
+ }, functions.setSearchClientResponseItemsFromResponse, functions.setAdClientResponseItems);
3792
3782
  },
3793
- setPopoverVisibility: (isVisible) => {
3794
- set({
3795
- isPopoverVisible: isVisible,
3783
+ setAdClientResponseItems: (items) => functions.set({ adClientResponseItems: items }),
3784
+ setSearchClientResponseItemsFromResponse: (response, items) => {
3785
+ const { facets, count = 0, time_taken = 0 } = response.data;
3786
+ const state = functions.set((state) => {
3787
+ return {
3788
+ isSearchInProgress: false,
3789
+ searchClientResponseItems: items,
3790
+ searchResponseTimeTaken: time_taken,
3791
+ searchResultsPage:
3792
+ // Reset to first page when response count changes
3793
+ count === state.searchResultsCount ? state.searchResultsPage : 1,
3794
+ searchResultsCount: count,
3795
+ ...(facets && { searchResponseFacetPrime: facets }),
3796
+ };
3796
3797
  });
3798
+ state.logger?.log(F.DEBUG, `Search results: ${JSON.stringify(items)}`);
3799
+ state.logger?.log(F.DEBUG, `Facets from response: ${JSON.stringify(facets)}`);
3800
+ },
3801
+ setInitialSearchClientResponseItemsFromResponse: (response, items) => {
3802
+ const state = get();
3803
+ const { count = 0, time_taken = 0 } = response.data;
3804
+ functions.set((state) => {
3805
+ return {
3806
+ isSearchInProgress: false,
3807
+ initialSearchClientResponseItems: items,
3808
+ searchResponseTimeTaken: time_taken,
3809
+ searchResultsPage:
3810
+ // Reset to first page when response count changes
3811
+ count === state.searchResultsCount ? state.searchResultsPage : 1,
3812
+ searchResultsCount: count,
3813
+ };
3814
+ });
3815
+ state.logger?.log(F.DEBUG, `Search results: ${JSON.stringify(items)}`);
3816
+ },
3817
+ setInitialQuery: async (query) => {
3818
+ const state = functions.set({ initialQuery: query });
3819
+ state.logger?.log(F.INFO, `Starting search with query: "${state.initialQuery}"`);
3820
+ if (!state.core) {
3821
+ throw new Error('Searchcraft instance is not initialized.');
3822
+ }
3823
+ await state.core.getResponseItems(query, functions.setInitialSearchClientResponseItemsFromResponse, functions.setAdClientResponseItems);
3797
3824
  },
3798
- setSearchMode: (mode) => set({ searchMode: mode }),
3799
- setSortType: (type) => set({ sortType: type }),
3825
+ setPopoverVisibility: (isVisible) => functions.set({
3826
+ isPopoverVisible: isVisible,
3827
+ }),
3828
+ setSearchMode: (mode) => functions.set({ searchMode: mode }),
3829
+ setSortType: (type) => functions.set({ sortType: type }),
3800
3830
  setSearchTerm: (searchTerm) => {
3801
3831
  const { core } = get();
3802
3832
  if (searchTerm.length === 0) {
@@ -3805,7 +3835,7 @@ const searchcraftStore = zustand.createStore((set, get) => {
3805
3835
  /**
3806
3836
  * When a new searchTerm is set, also reset the sort type, search mode, and facet paths.
3807
3837
  */
3808
- set({
3838
+ functions.set({
3809
3839
  searchTerm,
3810
3840
  facetPathsForIndexFields: {},
3811
3841
  ...(searchTerm.trim().length === 0 && {
@@ -3814,15 +3844,23 @@ const searchcraftStore = zustand.createStore((set, get) => {
3814
3844
  }),
3815
3845
  });
3816
3846
  },
3817
- setSearchClientResponseItems: (items) => set({ searchClientResponseItems: items }),
3847
+ setSearchClientResponseItems: (items) => functions.set({ searchClientResponseItems: items }),
3848
+ setSearchResultsCount: (count) => functions.set({ searchResultsCount: count }),
3818
3849
  setSearchResultsPage: async (page) => {
3819
- set({ searchResultsPage: page });
3850
+ functions.set({ searchResultsPage: page });
3820
3851
  await functions.search();
3821
3852
  },
3822
3853
  setSearchResultsPerPage: async (perPage) => {
3823
- set({ searchResultsPerPage: perPage });
3854
+ functions.set({ searchResultsPerPage: perPage });
3824
3855
  await functions.search();
3825
3856
  },
3857
+ setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {
3858
+ const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } = initialSearchcraftStateValues;
3859
+ functions.set({
3860
+ hotkey: hotkey || initialHotkey,
3861
+ hotkeyModifier: hotkeyModifier || initialHotkeyModifier,
3862
+ });
3863
+ },
3826
3864
  };
3827
3865
  const stateObject = {
3828
3866
  ...initialSearchcraftStateValues,
@@ -3961,7 +3999,6 @@ function mergeFacetRoots(fieldName, currentRoot, incomingRoot) {
3961
3999
 
3962
4000
  /**
3963
4001
  * Given a document and a SearchResultMapping, return a mapped value from the document.
3964
- *
3965
4002
  * Applies formatting based on the values specified in the `SearchResultFieldName` values.
3966
4003
  *
3967
4004
  * @param document
@@ -3976,8 +4013,7 @@ function getDocumentValueFromSearchResultMapping(document, mapping) {
3976
4013
  if (valueFound) {
3977
4014
  switch (fieldNameDetails.dataType) {
3978
4015
  case 'date': {
3979
- // TODO: Use fieldNameDetails.DateFormatOptions to format the date
3980
- valueFound = getFormattedTimeFromNow(valueFound);
4016
+ valueFound = formatRelativeDate(valueFound, fieldNameDetails.dateFormatLocale, fieldNameDetails.dateFormatOptions);
3981
4017
  break;
3982
4018
  }
3983
4019
  case 'number': {
@@ -3992,6 +4028,12 @@ function getDocumentValueFromSearchResultMapping(document, mapping) {
3992
4028
  .join(mapping.delimiter || ' ');
3993
4029
  }
3994
4030
  }
4031
+ /**
4032
+ * Convert different units of time to milliseconds.
4033
+ *
4034
+ * @param unit - The unit of time
4035
+ * @returns {number}
4036
+ */
3995
4037
  function getMillis(unit) {
3996
4038
  const millisInHour = 60 * 60 * 1000;
3997
4039
  const millisInDay = 24 * millisInHour;
@@ -4010,34 +4052,51 @@ function getMillis(unit) {
4010
4052
  return 3600000;
4011
4053
  }
4012
4054
  }
4055
+ /**
4056
+ * Format a number with commas as thousands separators.
4057
+ *
4058
+ * @param number - The number to be formatted.
4059
+ * @returns {string} - The formatted number as a string.
4060
+ */
4013
4061
  function formatNumberWithCommas(number) {
4014
4062
  return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
4015
4063
  }
4016
4064
  /**
4017
- * Given a timestamp value, returns a formatted time string for the time
4018
- * since now.
4065
+ * Format a date or date string. The string is formatted relative to today's date
4066
+ * (e.g. 2 days ago) until the date range is greater than a month.
4019
4067
  *
4020
- * @param timestamp
4021
- * @returns {string} Formatted string value
4068
+ * @param dateInput - The date to be formatted.
4069
+ * @param locale - The language used for formatting the date.
4070
+ * @param options - The non-default options used for formatting the date.
4071
+ * @returns {string} - The formatted date as a string.
4022
4072
  */
4023
- function getFormattedTimeFromNow(timestamp) {
4073
+ function formatRelativeDate(dateInput, locale = 'en-US', options = {
4074
+ day: 'numeric',
4075
+ month: 'long',
4076
+ year: 'numeric',
4077
+ }) {
4078
+ const date = new Date(dateInput);
4024
4079
  const now = new Date();
4025
- const inputTime = new Date(timestamp);
4026
- const diffInSeconds = Math.floor((now.getTime() - inputTime.getTime()) / 1000);
4027
- const minutes = Math.floor(diffInSeconds / 60);
4028
- const hours = Math.floor(minutes / 60);
4029
- const days = Math.floor(hours / 24);
4030
- const years = Math.floor(days / 365);
4031
- if (minutes < 60) {
4032
- return `${minutes}m ago`;
4033
- }
4034
- if (hours < 24) {
4035
- return `${hours}h ago`;
4036
- }
4037
- if (days < 365) {
4038
- return `${days}d ago`;
4080
+ const diffMillis = now.getTime() - date.getTime();
4081
+ const oneMonthInMillis = 30 * 24 * 60 * 60 * 1000; // Approx. 1 month in ms
4082
+ if (diffMillis < oneMonthInMillis) {
4083
+ const diffSeconds = Math.trunc(diffMillis / 1000);
4084
+ const diffMinutes = Math.trunc(diffSeconds / 60);
4085
+ const diffHours = Math.trunc(diffMinutes / 60);
4086
+ const diffDays = Math.trunc(diffHours / 24);
4087
+ const relativeTimeFormat = new Intl.RelativeTimeFormat(locale, options);
4088
+ if (diffDays >= 1) {
4089
+ return relativeTimeFormat.format(-diffDays, 'day');
4090
+ }
4091
+ if (diffHours >= 1) {
4092
+ return relativeTimeFormat.format(-diffHours, 'hour');
4093
+ }
4094
+ if (diffMinutes >= 1) {
4095
+ return relativeTimeFormat.format(-diffMinutes, 'minute');
4096
+ }
4097
+ return relativeTimeFormat.format(0, 'second');
4039
4098
  }
4040
- return `${years}y ago`;
4099
+ return new Intl.DateTimeFormat(locale, options).format(date);
4041
4100
  }
4042
4101
 
4043
4102
  var purify = {exports: {}};
@@ -5537,13 +5596,13 @@ class SearchcraftFacetList {
5537
5596
  const isChildSelected = facetChild.children
5538
5597
  ? facetChild.children?.some((child) => this.selectedPaths[child.path])
5539
5598
  : false;
5540
- return (hAsync("div", { key: facetChild.path, class: 'searchcraft-facet-list-item' }, hAsync("label", { class: 'searchcraft-facet-list-checkbox-label' }, hAsync("input", { class: 'searchcraft-facet-list-checkbox-input', checked: this.selectedPaths[facetChild.path], onChange: (_event) => this.handleCheckboxChange(facetChild.path), type: 'checkbox' }), isChildSelected ? (hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-dash-icon' }, hAsync("svg", { width: '14', height: '3', 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' })))), this.formatLabel(facetChild)), facetChild.children && facetChild.children.length > 0 && (hAsync(Fragment, null, facetChild.children.map((grandchild) => (hAsync("label", { key: grandchild.path, class: 'searchcraft-facet-list-checkbox-label searchcraft-facet-list-child-checkbox-label', style: {
5599
+ return (hAsync("div", { key: facetChild.path, class: 'searchcraft-facet-list-item' }, 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[facetChild.path], onChange: (_event) => this.handleCheckboxChange(facetChild.path), type: 'checkbox' }), isChildSelected ? (hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-dash-icon' }, hAsync("svg", { width: '14', height: '3', 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' }))))), this.formatLabel(facetChild)), facetChild.children && facetChild.children.length > 0 && (hAsync("div", { class: 'searchcraft-facet-child-list' }, facetChild.children.map((grandchild) => (hAsync("label", { key: grandchild.path, class: 'searchcraft-facet-list-checkbox-label searchcraft-facet-child-list-checkbox-label', style: {
5541
5600
  display: this.selectedPaths[facetChild.path]
5542
5601
  ? 'flex'
5543
5602
  : 'none',
5544
- } }, hAsync("input", { class: 'searchcraft-facet-list-checkbox-input searchcraft-facet-list-child-checkbox-input', checked: this.selectedPaths[grandchild.path], onChange: (_event) => {
5603
+ } }, hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-wrapper searchcraft-facet-child-list-checkbox-input-wrapper' }, hAsync("input", { class: 'searchcraft-facet-list-checkbox-input searchcraft-facet-child-list-checkbox-input', checked: this.selectedPaths[grandchild.path], onChange: (_event) => {
5545
5604
  this.handleCheckboxChange(grandchild.path);
5546
- }, type: 'checkbox' }), hAsync("div", { class: 'searchcraft-facet-list-checkbox-input-check-icon searchcraft-facet-list-child-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))))))));
5605
+ }, 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))))))));
5547
5606
  })));
5548
5607
  }
5549
5608
  static get cmpMeta() { return {
@@ -5554,12 +5613,7 @@ class SearchcraftFacetList {
5554
5613
  "baseFacetRoot": [32],
5555
5614
  "facetRoot": [32],
5556
5615
  "selectedPaths": [32],
5557
- "lastTimeTaken": [32],
5558
- "hasNewSearchTerm": [32],
5559
- "lastSearchTerm": [32],
5560
- "lastSearchMode": [32],
5561
- "lastSortType": [32],
5562
- "unsubscribe": [32]
5616
+ "lastTimeTaken": [32]
5563
5617
  },
5564
5618
  "$listeners$": undefined,
5565
5619
  "$lazyBundleId$": "-",
@@ -5570,12 +5624,13 @@ class SearchcraftFacetList {
5570
5624
  /**
5571
5625
  * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
5572
5626
  *
5573
- * @import
5627
+ * @react-import
5574
5628
  * ```jsx
5575
- * // react
5576
5629
  * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
5630
+ * ```
5577
5631
  *
5578
- * // vue
5632
+ * @vue-import
5633
+ * ```jsx
5579
5634
  * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
5580
5635
  * ```
5581
5636
  *
@@ -5663,7 +5718,7 @@ class SearchcraftFilterPanel {
5663
5718
  * Iterate through `items` and render them based on `type`
5664
5719
  */
5665
5720
  render() {
5666
- return (hAsync("div", { key: '6d3779476496055a83529c39cd9908a46f404e02', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {
5721
+ return (hAsync("div", { key: '22344fe9d0554894bff8c2c6afe12661bf7f20d0', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {
5667
5722
  switch (filterItem.type) {
5668
5723
  case 'dateRange': {
5669
5724
  const item = filterItem;
@@ -5722,12 +5777,13 @@ class SearchcraftFilterPanel {
5722
5777
  * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
5723
5778
  * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
5724
5779
  *
5725
- * @import
5780
+ * @react-import
5726
5781
  * ```jsx
5727
- * // react
5728
5782
  * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
5783
+ * ```
5729
5784
  *
5730
- * // vue
5785
+ * @vue-import
5786
+ * ```jsx
5731
5787
  * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
5732
5788
  * ```
5733
5789
  *
@@ -5789,20 +5845,31 @@ class SearchcraftInputForm {
5789
5845
  searchTerm = '';
5790
5846
  error = false;
5791
5847
  core;
5792
- searchStore = searchcraftStore.getState();
5848
+ searchcraftStore = searchcraftStore.getState();
5849
+ unsubscribe = () => { };
5793
5850
  init() {
5794
5851
  if (this.core) {
5795
- this.searchStore.initialize(this.core);
5852
+ this.searchcraftStore.init(this.core);
5796
5853
  this.inputInit?.emit();
5797
5854
  }
5798
5855
  }
5799
- connectedCallback() {
5856
+ onCoreChange() {
5800
5857
  this.init();
5801
5858
  }
5802
- onCoreChange() {
5859
+ connectedCallback() {
5803
5860
  this.init();
5804
5861
  }
5805
- handleOnInput = (event) => {
5862
+ componentDidLoad() {
5863
+ this.unsubscribe = searchcraftStore.subscribe((state) => {
5864
+ this.searchTerm = state.searchTerm;
5865
+ this.inputValue = state.searchTerm;
5866
+ });
5867
+ }
5868
+ disconnectedCallback() {
5869
+ this.handleReset();
5870
+ this.unsubscribe?.();
5871
+ }
5872
+ handleInput = (event) => {
5806
5873
  const input = event.target;
5807
5874
  this.inputValue = input.value;
5808
5875
  if (!this.autoSearch) {
@@ -5810,31 +5877,32 @@ class SearchcraftInputForm {
5810
5877
  }
5811
5878
  this.performSearch(input.value);
5812
5879
  };
5813
- performSearch = async (value) => {
5814
- if (value === searchcraftStore.getState().searchTerm) {
5880
+ performSearch = async (searchTerm) => {
5881
+ if (searchTerm === this.searchTerm) {
5815
5882
  return;
5816
5883
  }
5817
- this.searchTerm = value.trim();
5884
+ this.searchcraftStore.setSearchTerm(searchTerm.trim());
5818
5885
  this.error = false;
5819
- this.searchStore.setSearchTerm(this.searchTerm);
5820
5886
  try {
5821
- await this.searchStore.search();
5887
+ await this.searchcraftStore.search();
5822
5888
  }
5823
5889
  catch (error) {
5824
- console.log(error);
5890
+ console.error(`Search for ${searchTerm} failed:`, error);
5825
5891
  this.error = true;
5826
5892
  }
5827
5893
  };
5828
- handleClearInput = () => {
5829
- this.inputValue = '';
5830
- this.searchTerm = '';
5831
- this.searchStore.setSearchTerm('');
5832
- this.searchStore.setSearchClientResponseItems([]);
5894
+ handleReset = () => {
5895
+ this.searchcraftStore.setSearchResultsCount(0);
5896
+ this.searchcraftStore.setSearchTerm('');
5897
+ this.searchcraftStore.setSearchClientResponseItems([]);
5833
5898
  this.error = false;
5834
5899
  };
5900
+ handleClearInput = () => {
5901
+ this.handleReset();
5902
+ };
5835
5903
  handleFormSubmit = async (event) => {
5836
5904
  event.preventDefault();
5837
- await this.performSearch(this.searchTerm);
5905
+ await this.performSearch(this.inputValue);
5838
5906
  };
5839
5907
  render() {
5840
5908
  const isShowingClearButton = this.inputValue.length > 0;
@@ -5847,9 +5915,9 @@ class SearchcraftInputForm {
5847
5915
  const inputGridStyles = {
5848
5916
  gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',
5849
5917
  };
5850
- return (hAsync("form", { key: '862f8059b6eaae8d7ac9bd3c9de8109dd60fab8f', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, hAsync("div", { key: '34ff1c3cff4011c9a5f0af0ff690e3a12ad80907', class: inputGridClassNames, style: inputGridStyles }, hAsync("div", { key: '820506482aeea17534c4113e601f3ba2254e7fe6', class: 'searchcraft-input-form-button' }, hAsync("searchcraft-button", { key: '377a6d8e9835c40379dbd0842a2f0f53638845e1', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (hAsync("div", { key: '84d100df3793599fd3f6773d26028e43e41d1ab7', class: 'searchcraft-input-form-label' }, hAsync("searchcraft-input-label", { key: 'cfa7eca0b2ab3b82dd6c0a5104c19c88881f52b5', label: this.inputLabel }))), this.error && (hAsync("div", { key: '62d0e29e46ac922469e48aa822239cd645ea9c8d', class: 'searchcraft-input-form-error-message' }, hAsync("searchcraft-error-message", { key: '8a989b4a2e1196b01de9082433a69d86f55910fb' }, "Something went wrong."))), hAsync("div", { key: 'a3c4cd8ef20f909eec2d9e2f9515a65525fe612e', class: 'searchcraft-input-form-input-wrapper' }, hAsync("input", { key: 'af23902c7f7a79ced427da3aadaa30736b68c8a7', autoComplete: 'off', class: 'searchcraft-input-form-input', onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {
5851
- this.handleOnInput(event);
5852
- }, placeholder: this.placeholderValue, type: 'text', value: this.inputValue }), hAsync("div", { key: '66176081ef8da6bd3065ad0eeb61a397ab0fadfc', class: 'searchcraft-input-form-input-icon' }, hAsync("svg", { key: 'baac2f051f04a411acba0d5683255e9a37a27833', 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: '24230d00bd0b9466fb414246836c2477630ec254' }, "Search icon"), hAsync("path", { key: '9f1446fd1885cc63c26fa5acfcdbdb775547c5ee', 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: 'b9a42b46f7d470f6f1bbba5b95fd4031db9a1ebd', type: 'button', class: 'searchcraft-input-form-clear-button', onClick: this.handleClearInput }, hAsync("svg", { key: 'cda07c19eb77c2d2d343ce8d1cf8c55c484107f2', class: 'searchcraft-input-form-clear-button-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', "aria-labelledby": 'icon-title' }, hAsync("title", { key: '43ba26388dc06b6ff3c5441387db9ba621bcc08e' }, "Clear icon"), hAsync("path", { key: '5f33de1e306548f1cf504e4e6c6548d51eba93d3', 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' }))))))));
5918
+ return (hAsync("form", { key: '6af89b2ab634e0f3e0ef575f98f33d091602f95a', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, hAsync("div", { key: '93fea8e2b80468afeb6014122d5b749d74bfaf35', class: inputGridClassNames, style: inputGridStyles }, hAsync("div", { key: '1e5a416843b99aec68c4672a9c78f607347dc9d1', class: 'searchcraft-input-form-button' }, hAsync("searchcraft-button", { key: 'c38c1df0ce20f914ed76fbc0acad5a22b40e6fff', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (hAsync("div", { key: '2169a4466b0fdc8075c0dc74da442aef28a84d65', class: 'searchcraft-input-form-label' }, hAsync("searchcraft-input-label", { key: 'a263b5aa2a4d50d297f06c1fe9e6afb64763f097', label: this.inputLabel }))), this.error && (hAsync("div", { key: '49be2ac0f2d01916e5ea533e6406ee9d4d932178', class: 'searchcraft-input-form-error-message' }, hAsync("searchcraft-error-message", { key: '310c9aebcf580d4abe92d288c6b70a5adf083f8e' }, "Something went wrong."))), hAsync("div", { key: 'f4702e368815e049586e97cf59541b2dc5460fc0', class: 'searchcraft-input-form-input-wrapper' }, hAsync("input", { key: 'a8cddd5e937eee1d30fb98eaaa3dbffe96c192ce', autoComplete: 'off', class: 'searchcraft-input-form-input', onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {
5919
+ this.handleInput(event);
5920
+ }, placeholder: this.placeholderValue, type: 'text', value: this.inputValue }), hAsync("div", { key: '616b4dde1ba016cf6a2fba8594a99a3a3f584ef5', class: 'searchcraft-input-form-input-icon' }, hAsync("svg", { key: 'daaef561677a06a76813375e429be7e053b8b122', 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: 'e6d82ca64dd9bfc663813c239d11e5652aa0b9a1' }, "Search icon"), hAsync("path", { key: '1df856c98c2063c1d0c80027255935f73b513939', 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: '8dd6dfefe0ba909657bd436b559ce35b5004f9ae', type: 'button', class: 'searchcraft-input-form-clear-button', onClick: this.handleClearInput }, hAsync("svg", { key: 'bcdba04d5c0949cacc8e1962d2b3cd40ad995de6', 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: 'e01e7fb9b23daf9434520c4c68c0d7539b37d1f8' }, "Clear icon"), hAsync("path", { key: 'ce526d332b6e352cd9cf6008ee2f7497c6769782', 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' }))))))));
5853
5921
  }
5854
5922
  static get watchers() { return {
5855
5923
  "core": ["onCoreChange"]
@@ -5912,12 +5980,13 @@ class SearchcraftInputLabel {
5912
5980
  /**
5913
5981
  * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
5914
5982
  *
5915
- * @import
5983
+ * @react-import
5916
5984
  * ```jsx
5917
- * // react
5918
5985
  * import { SearchcraftPagination } from "@searchcraft/react-sdk";
5986
+ * ```
5919
5987
  *
5920
- * // vue
5988
+ * @vue-import
5989
+ * ```jsx
5921
5990
  * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
5922
5991
  * ```
5923
5992
  *
@@ -6046,32 +6115,51 @@ class SearchcraftPagination {
6046
6115
  /**
6047
6116
  * Renders a button which, when clicked, turns on popover visibility.
6048
6117
  *
6049
- * @import
6118
+ * @react-import
6050
6119
  * ```jsx
6051
- * // react
6052
6120
  * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
6121
+ * ````
6053
6122
  *
6054
- * // vue
6123
+ * @vue-import
6124
+ * ```jsx
6055
6125
  * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
6056
6126
  * ```
6057
6127
  *
6058
6128
  * @js-example
6059
6129
  * ```html
6130
+ * <!-- index.html -->
6060
6131
  * <searchcraft-popover-button>
6061
6132
  * Open popover
6062
6133
  * </searchcraft-popover-button>
6063
6134
  * ```
6064
6135
  *
6136
+ * ```js
6137
+ * // index.js
6138
+ * const popoverButton = document.querySelector('searchcraft-popover-button');
6139
+ *
6140
+ * popoverButton.template = ({ isPopoverVisible }, { html }) => html`
6141
+ * <span>Click me</span>
6142
+ * `;
6143
+ * ```
6144
+ *
6065
6145
  * @react-example
6066
6146
  * ```jsx
6067
- * <SearchcraftPopoverButton>
6147
+ * <SearchcraftPopoverButton
6148
+ * template={({ isPopoverVisible }, { html }) => html`
6149
+ * <span>Click me</span>
6150
+ * `}
6151
+ * >
6068
6152
  * Open popover
6069
6153
  * </SearchcraftPopoverButton>
6070
6154
  * ```
6071
6155
  *
6072
6156
  * @vue-example
6073
6157
  * ```jsx
6074
- * <SearchcraftPopoverButton>
6158
+ * <SearchcraftPopoverButton
6159
+ * :template={({ isPopoverVisible }, { html }) => html`
6160
+ * <span>Click me</span>
6161
+ * `}
6162
+ * >
6075
6163
  * Open popover
6076
6164
  * </SearchcraftPopoverButton>
6077
6165
  * ```
@@ -6080,16 +6168,146 @@ class SearchcraftPopoverButton {
6080
6168
  constructor(hostRef) {
6081
6169
  registerInstance(this, hostRef);
6082
6170
  }
6171
+ /**
6172
+ * A callback function responsible for rendering the button contents.
6173
+ */
6174
+ template;
6175
+ /**
6176
+ * The type of popover button to render.
6177
+ */
6178
+ type;
6179
+ hotkey;
6180
+ hotkeyModifier;
6181
+ hotkeyModifierSymbol;
6182
+ isPopoverVisible;
6183
+ userAgent;
6184
+ unsubscribe = () => { };
6083
6185
  handleOnClick() {
6084
6186
  searchcraftStore.getState().setPopoverVisibility(true);
6085
6187
  }
6188
+ componentDidLoad() {
6189
+ const state = searchcraftStore.getState();
6190
+ this.hotkey = state.hotkey.toUpperCase();
6191
+ this.hotkeyModifier = state.hotkeyModifier;
6192
+ this.isPopoverVisible = state.isPopoverVisible;
6193
+ this.userAgent = this.setUserAgent();
6194
+ this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();
6195
+ this.unsubscribe = searchcraftStore.subscribe((state) => {
6196
+ this.hotkey = state.hotkey.toUpperCase();
6197
+ this.hotkeyModifier = state.hotkeyModifier;
6198
+ this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();
6199
+ });
6200
+ }
6201
+ disconnectedCallback() {
6202
+ this.unsubscribe?.();
6203
+ }
6204
+ setUserAgent() {
6205
+ const userAgent = navigator.userAgent.toLowerCase();
6206
+ switch (true) {
6207
+ case userAgent.includes('windows'):
6208
+ return 'window';
6209
+ case userAgent.includes('mac'):
6210
+ return 'mac';
6211
+ default:
6212
+ return 'other';
6213
+ }
6214
+ }
6215
+ renderOptionSymbol = () => {
6216
+ return (hAsync("svg", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, hAsync("title", null, "Option key"), hAsync("path", { d: 'M283,112c0-11.58,9.42-21,21-21h160c11.58,0,21,9.42,21,21s-9.42,21-21,21h-160c-11.58,0-21-9.42-21-21Z', fill: 'currentColor' }), hAsync("path", { d: 'M485,400c0,11.58-9.42,21-21,21h-128c-8.29,0-15.82-4.9-19.19-12.47l-122.46-275.53H48c-11.58,0-21-9.42-21-21s9.42-21,21-21h160c8.29,0,15.82,4.9,19.19,12.47l122.46,275.53h114.35c11.58,0,21,9.42,21,21Z', fill: 'currentColor' })));
6217
+ };
6218
+ renderCtrlSymbol = () => {
6219
+ return (hAsync("svg", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, hAsync("title", null, "Ctrl key"), hAsync("path", { d: 'M388.95,209.4c-.37,5.59-2.9,10.71-7.12,14.4-3.83,3.35-8.74,5.2-13.82,5.2-6.06,0-11.83-2.61-15.81-7.17l-96.2-109.94-96.2,109.94c-3.98,4.56-9.75,7.17-15.81,7.17-5.08,0-9.99-1.84-13.82-5.2-4.22-3.69-6.75-8.81-7.12-14.4-.38-5.6,1.45-11.01,5.15-15.23l112-128c3.98-4.56,9.74-7.17,15.8-7.17s11.82,2.61,15.8,7.17l112,128c3.7,4.22,5.53,9.63,5.15,15.23Z', fill: 'currentColor' })));
6220
+ };
6221
+ renderWindowsMetaSymbol = () => {
6222
+ return (hAsync("svg", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, hAsync("title", null, "Windows meta key"), hAsync("path", { d: 'M206.115 255.957c-23.854-12.259-47.043-18.479-68.94-18.479-2.978 0-5.976 0.090-8.974 0.354-27.94 2.312-53.461 9.684-69.875 15.414-4.354 1.599-8.817 3.288-13.415 5.153l-44.911 155.697c30.851-11.416 58.146-16.969 83.135-16.969 40.423 0 69.764 15.104 93.996 30.652 11.481-38.959 39.022-133.045 47.241-161.162-5.975-3.642-12.038-7.285-18.257-10.66zM264.174 295.535l-45.223 157.074c13.416 7.686 58.549 32.025 93.106 32.025 27.896 0 59.126-7.148 95.417-21.896l43.178-150.988c-29.316 9.461-57.438 14.26-83.732 14.26-47.975 0-81.557-15.549-102.746-30.475zM146.411 184.395c38.559 0.399 67.076 15.104 90.708 30.251l46.376-158.672c-9.773-5.598-35.403-19.547-53.929-24.3-12.193-2.842-25.010-4.308-38.602-4.308-25.898 0.488-54.194 6.973-86.444 19.9l-44.22 155.298c32.404-12.218 60.322-18.17 86.043-18.17 0.023 0.001 0.068 0.001 0.068 0.001zM512 99.062c-29.407 11.416-58.104 17.233-85.514 17.233-45.843 0-79.646-15.901-101.547-31.183l-45.975 159.118c30.873 19.854 64.145 29.939 99.061 29.939 28.474 0 57.97-6.84 87.731-20.344l-0.091-1.111 1.867-0.443 44.468-153.209z', fill: 'currentColor' })));
6223
+ };
6224
+ renderMacMetaSymbol = () => {
6225
+ return (hAsync("svg", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, hAsync("title", null, "Mac meta key"), hAsync("path", { d: 'M368,283h-43v-54h43c46.87,0,85-38.13,85-85s-38.13-85-85-85-85,38.13-85,85v43h-54v-43c0-46.87-38.13-85-85-85s-85,38.13-85,85,38.13,85,85,85h43v54h-43c-46.87,0-85,38.13-85,85s38.13,85,85,85,85-38.13,85-85v-43h54v43c0,46.87,38.13,85,85,85s85-38.13,85-85-38.13-85-85-85ZM325,144c0-23.71,19.29-43,43-43s43,19.29,43,43-19.29,43-43,43h-43v-43ZM144,187c-23.71,0-43-19.29-43-43s19.29-43,43-43,43,19.29,43,43v43h-43ZM187,368c0,23.71-19.29,43-43,43s-43-19.29-43-43,19.29-43,43-43h43v43ZM283,283h-54v-54h54v54ZM368,411c-23.71,0-43-19.29-43-43v-43h43c23.71,0,43,19.29,43,43s-19.29,43-43,43Z', fill: 'currentColor' })));
6226
+ };
6227
+ setHotkeyModifierSymbol() {
6228
+ switch (this.hotkeyModifier) {
6229
+ case 'ctrl':
6230
+ return this.userAgent === 'windows'
6231
+ ? this.renderCtrlSymbol()
6232
+ : this.renderMacMetaSymbol();
6233
+ case 'alt':
6234
+ case 'option':
6235
+ return this.renderOptionSymbol();
6236
+ default:
6237
+ return this.userAgent === 'windows'
6238
+ ? this.renderWindowsMetaSymbol()
6239
+ : this.renderMacMetaSymbol();
6240
+ }
6241
+ }
6242
+ renderSkeuomorphicSlot() {
6243
+ return (hAsync("div", { class: 'searchcraft-popover-button-wrapper' }, hAsync("div", { class: 'searchcraft-popover-button-input' }, hAsync("svg", { class: 'searchcraft-popover-button-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', version: '1.1' }, hAsync("title", null, "Search icon"), hAsync("path", { 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' })), hAsync("span", null, "Search")), hAsync("div", { class: 'searchcraft-popover-button-keycaps' }, hAsync("div", { class: 'searchcraft-popover-button-keycaps-keycap searchcraft-popover-button-keycaps-keycap-modifier' }, hAsync("span", null, this.hotkeyModifierSymbol)), hAsync("div", { class: 'searchcraft-popover-button-keycaps-keycap searchcraft-popover-button-keycaps-keycap-key' }, hAsync("span", null, this.hotkey)))));
6244
+ }
6245
+ renderSlot() {
6246
+ switch (this.type) {
6247
+ case 'skeuomorphic':
6248
+ return this.renderSkeuomorphicSlot();
6249
+ default:
6250
+ return (hAsync("div", null, hAsync("slot", null)));
6251
+ }
6252
+ }
6086
6253
  render() {
6087
- return (hAsync("button", { key: '878f61ad9c93a3900e97f459f33cf526e647e583', class: 'searchcraft-popover-button', onClick: this.handleOnClick.bind(this), type: 'button' }, hAsync("slot", { key: 'c248779f08b940fca9800375b8814d6fc49f3715' })));
6254
+ return (hAsync("button", { key: '74e36b0593ba2cbb03f5ecff1434bc7056bf0db0', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined'
6255
+ ? this.template({ isPopoverVisible: this.isPopoverVisible }, { html })
6256
+ : undefined, onClick: this.handleOnClick.bind(this), type: 'button' }, typeof this.template !== 'undefined'
6257
+ ? undefined
6258
+ : this.type
6259
+ ? this.renderSlot()
6260
+ : 'Open Popover'));
6088
6261
  }
6089
6262
  static get cmpMeta() { return {
6090
6263
  "$flags$": 4,
6091
6264
  "$tagName$": "searchcraft-popover-button",
6092
- "$members$": undefined,
6265
+ "$members$": {
6266
+ "template": [16],
6267
+ "type": [1],
6268
+ "hotkey": [32],
6269
+ "hotkeyModifier": [32],
6270
+ "hotkeyModifierSymbol": [32],
6271
+ "isPopoverVisible": [32],
6272
+ "userAgent": [32]
6273
+ },
6274
+ "$listeners$": undefined,
6275
+ "$lazyBundleId$": "-",
6276
+ "$attrsToReflect$": []
6277
+ }; }
6278
+ }
6279
+
6280
+ /**
6281
+ * Renders the footer for the searchcraft-popover-form.
6282
+ *
6283
+ * @internal
6284
+ */
6285
+ class SearchcraftPopoverFooter {
6286
+ constructor(hostRef) {
6287
+ registerInstance(this, hostRef);
6288
+ }
6289
+ searchResultsCount;
6290
+ unsubscribe = () => { };
6291
+ componentDidLoad() {
6292
+ this.searchResultsCount = searchcraftStore.getState().searchResultsCount;
6293
+ this.unsubscribe = searchcraftStore.subscribe((state) => {
6294
+ this.searchResultsCount = state.searchResultsCount;
6295
+ });
6296
+ }
6297
+ disconnectedCallback() {
6298
+ this.unsubscribe?.();
6299
+ }
6300
+ render() {
6301
+ return (hAsync("footer", { key: 'e1344ae185ef1b8a83bb69ba88e2952ab1c75e70', class: 'searchcraft-popover-footer' }, hAsync("p", { key: '51874f4ce490e4f164b999e8c6f89710702e73bd', class: 'searchcraft-popover-footer-results-info' }, this.searchResultsCount
6302
+ ? `${formatNumberWithCommas(this.searchResultsCount)} Results Found`
6303
+ : ' '), hAsync("a", { key: '5476e24cc3fa7fa265bd2b5cba43c8a70d8609ca', class: 'searchcraft-popover-footer-link', href: 'https://searchcraft.io/', target: '_blank', rel: 'noreferrer' }, hAsync("svg", { key: '0a4edf94e9e40a96a93a4e7ba1ffbd081e51b585', class: 'searchcraft-popover-footer-link-image', width: '169', height: '16', viewBox: '0 0 169 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, hAsync("title", { key: '67813a626922d709a4409028cb0f3f1ce3e2cfe8' }, "Powered by Searchcraft"), hAsync("path", { key: 'bf9e46a5f9783edd7167c1c5c1256d0200053969', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' })))));
6304
+ }
6305
+ static get cmpMeta() { return {
6306
+ "$flags$": 0,
6307
+ "$tagName$": "searchcraft-popover-footer",
6308
+ "$members$": {
6309
+ "searchResultsCount": [32]
6310
+ },
6093
6311
  "$listeners$": undefined,
6094
6312
  "$lazyBundleId$": "-",
6095
6313
  "$attrsToReflect$": []
@@ -6099,12 +6317,13 @@ class SearchcraftPopoverButton {
6099
6317
  /**
6100
6318
  * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field, or when a popover-button is pressed.
6101
6319
  *
6102
- * @import
6320
+ * @react-import
6103
6321
  * ```jsx
6104
- * // react
6105
6322
  * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
6323
+ * ```
6106
6324
  *
6107
- * // vue
6325
+ * @vue-import
6326
+ * ```jsx
6108
6327
  * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
6109
6328
  * ```
6110
6329
  *
@@ -6190,6 +6409,10 @@ class SearchcraftPopoverForm {
6190
6409
  this.searchResultsPage = state.searchResultsPage;
6191
6410
  this.searchResultsPerPage = state.searchResultsPerPage;
6192
6411
  });
6412
+ // Set hotkey and hotkeyModifier in state.
6413
+ searchcraftStore
6414
+ .getState()
6415
+ .setHotKeyAndHotKeyModifier(this.hotkey, this.hotkeyModifier);
6193
6416
  }
6194
6417
  disconnectedCallback() {
6195
6418
  this.unsubscribe?.();
@@ -6235,7 +6458,7 @@ class SearchcraftPopoverForm {
6235
6458
  }
6236
6459
  };
6237
6460
  handleInputInit = () => {
6238
- const input = this.hostElement.querySelector('.searchcraft-input');
6461
+ const input = this.hostElement.querySelector('.searchcraft-input-form-input');
6239
6462
  input?.focus();
6240
6463
  };
6241
6464
  /**
@@ -6290,7 +6513,7 @@ class SearchcraftPopoverForm {
6290
6513
  * @param direction
6291
6514
  */
6292
6515
  focusOnNextListItem(direction) {
6293
- const listItems = Array.from(document.querySelectorAll('a.searchcraft-popover-form-list-item')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);
6516
+ const listItems = Array.from(document.querySelectorAll('.searchcraft-popover-list-item-link')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);
6294
6517
  const currentIndex = listItems.indexOf(document.activeElement);
6295
6518
  if (direction === 'ArrowDown') {
6296
6519
  listItems[(currentIndex + 1) % listItems.length]?.focus();
@@ -6318,22 +6541,22 @@ class SearchcraftPopoverForm {
6318
6541
  }
6319
6542
  renderInlinePopover() {
6320
6543
  const isListViewVisible = this.hasResultsToShow && this.isFocused;
6321
- const popoverFormClassNames = classNames('searchcraft-popover-form searchcraft-popover-form-inline', {
6322
- 'searchcraft-popover-form-active': isListViewVisible,
6323
- });
6324
- return (hAsync("div", { class: popoverFormClassNames }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this) }), isListViewVisible && (hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper-outer' }, hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper-inner' }, hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))))));
6544
+ return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-inline', {
6545
+ 'searchcraft-popover-form-active': isListViewVisible,
6546
+ }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this) })), isListViewVisible && (hAsync("div", { class: 'searchcraft-popover-form-inline-wrapper' }, hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }), hAsync("searchcraft-popover-footer", null)))));
6325
6547
  }
6326
6548
  renderModalPopover() {
6327
6549
  if (this.isPopoverVisibleInState) {
6328
- const popoverFormClassNames = classNames('searchcraft-popover-form', {
6329
- 'searchcraft-popover-form-active': this.hasResultsToShow,
6330
- });
6331
- return (hAsync("div", { class: 'searchcraft-popover-form-modal' }, hAsync("div", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), hAsync("div", { class: 'searchcraft-popover-form-modal-inner' }, hAsync("div", { class: popoverFormClassNames }, hAsync("div", { class: 'searchcraft-popover-form-input-wrapper searchcraft-popover-form-modal-input-wrapper' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-button searchcraft-popover-form-modal-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))))));
6550
+ return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-modal', {
6551
+ 'searchcraft-popover-form-active': this.hasResultsToShow,
6552
+ }) }, hAsync("div", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), hAsync("div", { class: 'searchcraft-popover-form-modal-wrapper' }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))), hAsync("searchcraft-popover-footer", null))));
6332
6553
  }
6333
6554
  }
6334
6555
  renderFullscreenPopover() {
6335
6556
  if (this.isPopoverVisibleInState) {
6336
- return (hAsync("div", { class: 'searchcraft-popover-form-fullscreen' }, hAsync("div", { class: 'searchcraft-popover-form' }, hAsync("div", { class: 'searchcraft-popover-form-input-wrapper searchcraft-popover-form-fullscreen-input-wrapper' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-button searchcraft-popover-form-fullscreen-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage })))));
6557
+ return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-fullscreen', {
6558
+ 'searchcraft-popover-form-active': this.hasResultsToShow,
6559
+ }) }, hAsync("div", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, hAsync("searchcraft-input-form", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), hAsync("button", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, "Cancel")), hAsync("div", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.hasResultsToShow && (hAsync("searchcraft-popover-list-view", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))), hAsync("searchcraft-popover-footer", null)));
6337
6560
  }
6338
6561
  }
6339
6562
  render() {
@@ -6386,16 +6609,16 @@ class SearchcraftPopoverListItem {
6386
6609
  popoverResultMappings;
6387
6610
  /** The document position relative to the search results (For Measure) */
6388
6611
  documentPosition = 0;
6612
+ title;
6613
+ subtitle;
6389
6614
  href;
6390
- imageSrc;
6615
+ imageSource;
6391
6616
  imageAlt;
6392
- titleContent;
6393
- subtitleContent;
6394
6617
  mapValuesFromDocument(document) {
6395
- this.titleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);
6396
- this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);
6618
+ this.title = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);
6619
+ this.subtitle = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);
6397
6620
  this.href = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.href);
6398
- this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);
6621
+ this.imageSource = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);
6399
6622
  this.imageAlt = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageAlt);
6400
6623
  }
6401
6624
  connectedCallback() {
@@ -6406,12 +6629,12 @@ class SearchcraftPopoverListItem {
6406
6629
  disconnectedCallback() { }
6407
6630
  handleLinkClick = () => {
6408
6631
  const state = searchcraftStore.getState();
6409
- const searchcraft = state.getSearchcraftInstance();
6410
- if (searchcraft) {
6632
+ const core = state.getSearchcraftCore();
6633
+ if (core) {
6411
6634
  const document_position = this.documentPosition;
6412
6635
  const search_term = state.searchTerm;
6413
6636
  const number_of_documents = state.searchClientResponseItems.length || 0;
6414
- searchcraft.measureClient?.sendMeasureEvent('document_clicked', {
6637
+ core.measureClient?.sendMeasureEvent('document_clicked', {
6415
6638
  document_position,
6416
6639
  number_of_documents,
6417
6640
  search_term,
@@ -6419,7 +6642,7 @@ class SearchcraftPopoverListItem {
6419
6642
  }
6420
6643
  };
6421
6644
  render() {
6422
- return (hAsync("a", { key: 'c4a142be2b9993b8ad83eaaa59bdd9a047e4275e', class: 'searchcraft-popover-list-item', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSrc && (hAsync("div", { key: '6a620203f4918b051835f557a00eb82c2397c56f', class: 'searchcraft-popover-list-item-image-wrapper' }, hAsync("img", { key: '1a07c169119146f4f22e704098c493d67927ce82', alt: this.imageAlt, src: this.imageSrc, class: 'searchcraft-popover-list-item-image' }))), hAsync("div", { key: 'd0b2faa1359c004cb5c38fd615e969a7614706cc', class: 'searchcraft-popover-list-item-info-wrapper' }, hAsync("p", { key: '9b8c8ba1d5c62a5251db893f3604803f83f687d2', class: 'searchcraft-popover-list-item-title' }, this.titleContent), hAsync("p", { key: '930699a84405d0ea2476eb91bf9ce77fed016bb8', class: 'searchcraft-popover-list-item-subtitle' }, this.subtitleContent))));
6645
+ return (hAsync("div", { key: '63a2f070ce71cd1330105c03985e32cd1f228b29', class: 'searchcraft-popover-list-item' }, hAsync("a", { key: 'd9bb09248be9be235147acdfeed1a9f29cd123a2', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (hAsync("div", { key: '6af7c3e754885730d8651a593f13b7b5b704a26d', class: 'searchcraft-popover-list-item-image-wrapper' }, hAsync("img", { key: '74c7e53467efd83ae95439a7065c1de2748113f5', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), hAsync("div", { key: '25a12e5cf582b248773005f5fb58f7a15304d2d1', class: 'searchcraft-popover-list-item-content' }, this.title && (hAsync("p", { key: '8169f7730feb832178adbc9bdb14a089e955a2ad', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (hAsync("p", { key: '96812df1bab635e3865bdfdb31f133ca629d800e', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle))))));
6423
6646
  }
6424
6647
  static get cmpMeta() { return {
6425
6648
  "$flags$": 0,
@@ -6428,11 +6651,11 @@ class SearchcraftPopoverListItem {
6428
6651
  "item": [16],
6429
6652
  "popoverResultMappings": [16],
6430
6653
  "documentPosition": [2, "document-position"],
6654
+ "title": [32],
6655
+ "subtitle": [32],
6431
6656
  "href": [32],
6432
- "imageSrc": [32],
6433
- "imageAlt": [32],
6434
- "titleContent": [32],
6435
- "subtitleContent": [32]
6657
+ "imageSource": [32],
6658
+ "imageAlt": [32]
6436
6659
  },
6437
6660
  "$listeners$": undefined,
6438
6661
  "$lazyBundleId$": "-",
@@ -6513,7 +6736,7 @@ class SearchcraftPopoverListItemAd {
6513
6736
  if (!item.admAd) {
6514
6737
  return;
6515
6738
  }
6516
- return (hAsync("a", { class: 'searchcraft-adm-ad', href: item.admAd.click_url }, item.admAd.image_url && (hAsync("div", { class: 'searchcraft-adm-ad-image-wrapper' }, hAsync("img", { alt: item.admAd.term || 'image', src: item.admAd.image_url, class: 'searchcraft-adm-ad-image' }))), hAsync("div", { class: 'searchcraft-adm-ad-info-wrapper' }, hAsync("p", { class: 'searchcraft-adm-ad-title' }, item.admAd.term), item.admAd.price && (hAsync("p", { class: 'searchcraft-adm-ad-subtitle' }, item.admAd.price)))));
6739
+ return (hAsync("div", { class: 'searchcraft-adm-ad' }, hAsync("a", { class: 'searchcraft-adm-ad-link', href: item.admAd.click_url }, item.admAd.image_url && (hAsync("div", { class: 'searchcraft-adm-ad-image-wrapper' }, hAsync("img", { alt: item.admAd.term || 'image', src: item.admAd.image_url, class: 'searchcraft-adm-ad-image' }))), hAsync("div", { class: 'searchcraft-adm-ad-content' }, hAsync("p", { class: 'searchcraft-adm-ad-content-title' }, item.admAd.term), item.admAd.price && (hAsync("p", { class: 'searchcraft-adm-ad-content-subtitle' }, item.admAd.price))))));
6517
6740
  }
6518
6741
  renderCustomAd() {
6519
6742
  const templateRenderFunction = this.core?.config?.customAdTemplate;
@@ -6703,12 +6926,13 @@ class SearchcraftPopoverListView {
6703
6926
  /**
6704
6927
  * This web component is designed to display the number of results returned from a search query.
6705
6928
  *
6706
- * @import
6929
+ * @react-import
6707
6930
  * ```jsx
6708
- * // react
6709
6931
  * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
6932
+ * ```
6710
6933
  *
6711
- * // vue
6934
+ * @vue-import
6935
+ * ```jsx
6712
6936
  * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
6713
6937
  * ```
6714
6938
  *
@@ -6734,6 +6958,7 @@ class SearchcraftPopoverListView {
6734
6958
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
6735
6959
  * `}
6736
6960
  * />
6961
+ * ```
6737
6962
  *
6738
6963
  * @vue-example
6739
6964
  * ```jsx
@@ -6742,6 +6967,7 @@ class SearchcraftPopoverListView {
6742
6967
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
6743
6968
  * `}
6744
6969
  * />
6970
+ * ```
6745
6971
  */
6746
6972
  class SearchcraftResultsInfo {
6747
6973
  constructor(hostRef) {
@@ -6749,13 +6975,6 @@ class SearchcraftResultsInfo {
6749
6975
  }
6750
6976
  /**
6751
6977
  * A callback function responsible for rendering the results info.
6752
- *
6753
- * @example
6754
- * ```ts
6755
- * resultsInfo.template = html`
6756
- * ${range[0]}-${range[1]} of ${count} results in ${responseTime}ms
6757
- * `;
6758
- * ```
6759
6978
  */
6760
6979
  template;
6761
6980
  // store vars
@@ -6848,6 +7067,7 @@ class SearchcraftSearchResult {
6848
7067
  */
6849
7068
  template;
6850
7069
  templateHtml;
7070
+ get hostElement() { return getElement(this); }
6851
7071
  connectedCallback() {
6852
7072
  if (this.item) {
6853
7073
  try {
@@ -6856,18 +7076,42 @@ class SearchcraftSearchResult {
6856
7076
  });
6857
7077
  }
6858
7078
  catch (error) {
6859
- console.error(`Invalid search result template: ${error}`);
7079
+ console.error('Invalid search result template:', error);
6860
7080
  }
6861
7081
  }
6862
7082
  }
7083
+ handleResultContainerClick = (event) => {
7084
+ const state = searchcraftStore.getState();
7085
+ const core = state.getSearchcraftCore();
7086
+ if (!event.target) {
7087
+ return;
7088
+ }
7089
+ const target = event.target;
7090
+ const link = target.closest('a');
7091
+ if (!link ||
7092
+ !this.hostElement?.contains(link) ||
7093
+ !core ||
7094
+ !core.measureClient) {
7095
+ return;
7096
+ }
7097
+ const document_position = this.documentPosition;
7098
+ const search_term = state.searchTerm;
7099
+ const number_of_documents = state.searchClientResponseItems.length || 0;
7100
+ core.measureClient.sendMeasureEvent('document_clicked', {
7101
+ document_position,
7102
+ number_of_documents,
7103
+ search_term,
7104
+ });
7105
+ };
7106
+ handleKeyDown = () => { };
6863
7107
  render() {
6864
7108
  if (!this.item) {
6865
7109
  return;
6866
7110
  }
6867
7111
  if (typeof this.template === 'undefined') {
6868
- return (hAsync("div", { class: 'searchcraft-search-result searchcraft-search-result-no-template' }, Object.entries(this.item.document).map(([key, value]) => (hAsync("p", { key: key }, hAsync("strong", null, key), ": ", value)))));
7112
+ return (hAsync("div", { class: 'searchcraft-search-result searchcraft-search-result-no-template', onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }, Object.entries(this.item.document).map(([key, value]) => (hAsync("p", { key: key }, hAsync("strong", null, key), ": ", value)))));
6869
7113
  }
6870
- return (hAsync("div", { class: 'searchcraft-search-result', innerHTML: this.templateHtml }));
7114
+ return (hAsync("div", { class: 'searchcraft-search-result', innerHTML: this.templateHtml, onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }));
6871
7115
  }
6872
7116
  static get cmpMeta() { return {
6873
7117
  "$flags$": 0,
@@ -6889,12 +7133,13 @@ class SearchcraftSearchResult {
6889
7133
  * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.
6890
7134
  *
6891
7135
  *
6892
- * @import
7136
+ * @react-import
6893
7137
  * ```jsx
6894
- * // react
6895
7138
  * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
7139
+ * ```
6896
7140
  *
6897
- * // vue
7141
+ * @vue-import
7142
+ * ```jsx
6898
7143
  * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
6899
7144
  * ```
6900
7145
  *
@@ -6927,7 +7172,7 @@ class SearchcraftSearchResult {
6927
7172
  * />
6928
7173
  * ```
6929
7174
  *
6930
- * @vue-example
7175
+ * @vue-example
6931
7176
  * ```jsx
6932
7177
  * <SearchcraftSearchResults
6933
7178
  * adInterval={4}
@@ -6942,37 +7187,50 @@ class SearchcraftSearchResults {
6942
7187
  constructor(hostRef) {
6943
7188
  registerInstance(this, hostRef);
6944
7189
  }
7190
+ /**
7191
+ * A query that will appears when the component initializes or the search term is ''..
7192
+ */
7193
+ initialQuery;
6945
7194
  /**
6946
7195
  * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.
6947
7196
  */
6948
7197
  template;
6949
- searchTerm = '';
6950
- searchClientResponseItems;
6951
7198
  adClientResponseItems = [];
6952
- searchResultsPerPage;
6953
- searchResultsPage;
6954
- isSearchInProgress = true;
6955
7199
  config;
7200
+ initialSearchClientResponseItems;
7201
+ isSearchInProgress = true;
7202
+ searchClientResponseItems;
7203
+ searchResultsPage;
7204
+ searchResultsPerPage;
7205
+ searchTerm = '';
6956
7206
  unsubscribe = () => { };
6957
7207
  componentDidLoad() {
7208
+ const state = searchcraftStore.getState();
7209
+ this.handleStateChange(state);
7210
+ this.searchClientResponseItems = state.searchClientResponseItems;
7211
+ this.searchTerm = state.searchTerm;
7212
+ this.config = state.core?.config;
7213
+ state.afterInit = (state) => {
7214
+ if (this.initialQuery) {
7215
+ state.setInitialQuery(this.initialQuery);
7216
+ }
7217
+ };
6958
7218
  this.unsubscribe = searchcraftStore.subscribe((state) => this.handleStateChange(state));
6959
- const currentState = searchcraftStore.getState();
6960
- this.handleStateChange(currentState);
6961
- this.searchClientResponseItems = currentState.searchClientResponseItems;
6962
- this.searchTerm = currentState.searchTerm;
6963
- this.config = currentState.core?.config;
6964
7219
  }
6965
7220
  disconnectedCallback() {
6966
7221
  this.unsubscribe?.();
6967
7222
  }
6968
7223
  handleStateChange(state) {
6969
- this.searchClientResponseItems = [...state.searchClientResponseItems];
6970
7224
  this.adClientResponseItems = [...state.adClientResponseItems];
6971
- this.searchTerm = state.searchTerm;
6972
- this.searchResultsPage = state.searchResultsPage;
6973
- this.searchResultsPerPage = state.searchResultsPerPage;
6974
7225
  this.config = state.core?.config;
7226
+ this.initialSearchClientResponseItems = [
7227
+ ...state.initialSearchClientResponseItems,
7228
+ ];
6975
7229
  this.isSearchInProgress = state.isSearchInProgress;
7230
+ this.searchClientResponseItems = [...state.searchClientResponseItems];
7231
+ this.searchResultsPage = state.searchResultsPage;
7232
+ this.searchResultsPerPage = state.searchResultsPerPage;
7233
+ this.searchTerm = state.searchTerm;
6976
7234
  }
6977
7235
  renderEmptyState() {
6978
7236
  return (hAsync("div", { class: 'searchcraft-search-results-empty-state' }, hAsync("slot", { name: 'empty-search' })));
@@ -6981,7 +7239,12 @@ class SearchcraftSearchResults {
6981
7239
  return (hAsync("div", { class: 'searchcraft-search-results' }, hAsync("div", { class: 'searchcraft-search-results-error-message' }, hAsync("searchcraft-error-message", null, "No search results found for \"", this.searchTerm, "\" query."))));
6982
7240
  }
6983
7241
  renderWithADMAds() {
6984
- return (hAsync("div", { class: 'searchcraft-search-results' }, this.adClientResponseItems?.map((item) => (hAsync("searchcraft-ad", { adSource: 'adMarketplace', adClientResponseItem: item, adContainerId: nanoid(), key: item.id }))), this.searchClientResponseItems?.map((item, index) => (hAsync("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));
7242
+ const items = this.searchClientResponseItems?.length
7243
+ ? this.searchClientResponseItems
7244
+ : this.initialSearchClientResponseItems?.length
7245
+ ? this.initialSearchClientResponseItems
7246
+ : [];
7247
+ return (hAsync("div", { class: 'searchcraft-search-results' }, this.adClientResponseItems?.map((item) => (hAsync("searchcraft-ad", { adSource: 'adMarketplace', adClientResponseItem: item, adContainerId: nanoid(), key: item.id }))), items.map((item, index) => (hAsync("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));
6985
7248
  }
6986
7249
  renderWithCustomAds() {
6987
7250
  const itemsToRender = [];
@@ -6989,16 +7252,20 @@ class SearchcraftSearchResults {
6989
7252
  const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;
6990
7253
  const adStartQuantity = this.config?.customAdStartQuantity || 0;
6991
7254
  const adEndQuantity = this.config?.customAdEndQuantity || 0;
6992
- const searchItems = this.searchClientResponseItems || [];
7255
+ const items = this.searchClientResponseItems?.length
7256
+ ? this.searchClientResponseItems
7257
+ : this.initialSearchClientResponseItems?.length
7258
+ ? this.initialSearchClientResponseItems
7259
+ : [];
6993
7260
  // Renders ads at beginning
6994
7261
  for (let n = 0; n < adStartQuantity; n++) {
6995
7262
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Custom', adContainerId: nanoid(), key: `${n}-ad` }));
6996
7263
  }
6997
7264
  // Renders search results + interstitial ads
6998
- searchItems.forEach((item, index) => {
7265
+ items.forEach((item, index) => {
6999
7266
  if (interstitialInterval &&
7000
7267
  index % interstitialInterval === 0 &&
7001
- index + interstitialInterval < searchItems.length &&
7268
+ index + interstitialInterval < items.length &&
7002
7269
  index >= interstitialInterval) {
7003
7270
  for (let n = 0; n < interstitialQuantity; n++) {
7004
7271
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Custom', adContainerId: nanoid(), key: `${item.id}-ad-${n}` }));
@@ -7019,16 +7286,20 @@ class SearchcraftSearchResults {
7019
7286
  const interstitialQuantity = this.config?.nativoAdInterstitialQuantity || 1;
7020
7287
  const adStartQuantity = this.config?.nativoAdStartQuantity || 0;
7021
7288
  const adEndQuantity = this.config?.nativoAdEndQuantity || 0;
7022
- const searchItems = this.searchClientResponseItems || [];
7289
+ const items = this.searchClientResponseItems?.length
7290
+ ? this.searchClientResponseItems
7291
+ : this.initialSearchClientResponseItems?.length
7292
+ ? this.initialSearchClientResponseItems
7293
+ : [];
7023
7294
  // Renders ads at beginning
7024
7295
  for (let n = 0; n < adStartQuantity; n++) {
7025
7296
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Nativo', adContainerId: nanoid(), key: `${n}-ad` }));
7026
7297
  }
7027
7298
  // Renders search results + interstitial ads
7028
- searchItems.forEach((item, index) => {
7299
+ items.forEach((item, index) => {
7029
7300
  if (interstitialInterval &&
7030
7301
  (index + interstitialStartIndex) % interstitialInterval === 0 &&
7031
- index + interstitialInterval < searchItems.length &&
7302
+ index + interstitialInterval < items.length &&
7032
7303
  index >= interstitialInterval) {
7033
7304
  for (let n = 0; n < interstitialQuantity; n++) {
7034
7305
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Nativo', adContainerId: nanoid(), key: `${item.id}-ad-${n}` }));
@@ -7043,14 +7314,23 @@ class SearchcraftSearchResults {
7043
7314
  return hAsync("div", { class: 'searchcraft-search-results' }, itemsToRender);
7044
7315
  }
7045
7316
  renderWithNoAds() {
7046
- return (hAsync("div", { class: 'searchcraft-search-results' }, this.searchClientResponseItems?.map((item, index) => (hAsync("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));
7317
+ const items = this.searchClientResponseItems?.length
7318
+ ? this.searchClientResponseItems
7319
+ : this.initialSearchClientResponseItems?.length
7320
+ ? this.initialSearchClientResponseItems
7321
+ : [];
7322
+ return (hAsync("div", { class: 'searchcraft-search-results' }, items.map((item, index) => (hAsync("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));
7047
7323
  }
7048
7324
  render() {
7049
- if (this.searchTerm.trim() === '') {
7325
+ const searchClientResponseItems = this.searchClientResponseItems || [];
7326
+ const initialSearchClientResponseItems = this.initialSearchClientResponseItems || [];
7327
+ if (this.searchTerm === '' &&
7328
+ initialSearchClientResponseItems.length === 0 &&
7329
+ !this.isSearchInProgress) {
7050
7330
  return this.renderEmptyState();
7051
7331
  }
7052
7332
  if (this.searchTerm.length > 0 &&
7053
- (this.searchClientResponseItems || []).length === 0 &&
7333
+ searchClientResponseItems.length === 0 &&
7054
7334
  !this.isSearchInProgress) {
7055
7335
  return this.renderNoResultsFoundState();
7056
7336
  }
@@ -7069,14 +7349,16 @@ class SearchcraftSearchResults {
7069
7349
  "$flags$": 4,
7070
7350
  "$tagName$": "searchcraft-search-results",
7071
7351
  "$members$": {
7352
+ "initialQuery": [1, "initial-query"],
7072
7353
  "template": [16],
7073
- "searchTerm": [32],
7074
- "searchClientResponseItems": [32],
7075
7354
  "adClientResponseItems": [32],
7076
- "searchResultsPerPage": [32],
7077
- "searchResultsPage": [32],
7355
+ "config": [32],
7356
+ "initialSearchClientResponseItems": [32],
7078
7357
  "isSearchInProgress": [32],
7079
- "config": [32]
7358
+ "searchClientResponseItems": [32],
7359
+ "searchResultsPage": [32],
7360
+ "searchResultsPerPage": [32],
7361
+ "searchTerm": [32]
7080
7362
  },
7081
7363
  "$listeners$": undefined,
7082
7364
  "$lazyBundleId$": "-",
@@ -7087,12 +7369,13 @@ class SearchcraftSearchResults {
7087
7369
  /**
7088
7370
  * This web component is designed to choose the number of search results displayed.
7089
7371
  *
7090
- * @import
7372
+ * @react-import
7091
7373
  * ```jsx
7092
- * // react
7093
7374
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
7375
+ * ```
7094
7376
  *
7095
- * // vue
7377
+ * @vue-import
7378
+ * ```jsx
7096
7379
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
7097
7380
  * ```
7098
7381
  *
@@ -7356,10 +7639,10 @@ class SearchcraftSlider {
7356
7639
  const endLabel = this.dataType === 'number'
7357
7640
  ? this.endValue
7358
7641
  : new Date(this.endValue).getFullYear();
7359
- return (hAsync("div", { key: 'ad6c2b473230863408f48eee11527bc088ae4ef7', class: 'searchcraft-slider' }, hAsync("div", { key: '9c89eae611cfa3aed547e18fe242e58878e20252', class: 'searchcraft-slider-range' }, hAsync("div", { key: '9dfa61b66d26cc257bf878bd233b7ac02a94d7cf', class: 'searchcraft-slider-active-range', style: {
7642
+ 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: {
7360
7643
  left: `${startPercent}%`,
7361
7644
  width: `${endPercent - startPercent}%`,
7362
- } }), hAsync("input", { key: '20ba4345d47a4c553d14cf70abfc1272f3423c41', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.max, min: this.min, onInput: this.handleStartValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: 'e142cd75420882136d85f076678903ce4f8ef0f7', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.max, min: this.min, onInput: this.handleEndValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: '5b370071b7804fd896f87398ef8bc4e9603446d8', class: 'searchcraft-slider-label' }, hAsync("span", { key: 'e22e25c99fc150590e19c9b939dc9687f14f49dc', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: 'a81fa0d45acdfcbaceb69fe94721fb25cac038a2', class: 'searchcraft-slider-end-label' }, endLabel))));
7645
+ } }), hAsync("input", { key: 'f07a91d441d277b8e9eba34e39093393a44bbf53', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.max, min: this.min, onInput: this.handleStartValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), hAsync("input", { key: '0637ea5fe123abe1d77c540b347c78fc8ad3d281', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.max, min: this.min, onInput: this.handleEndValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), hAsync("div", { key: 'b62f8d8485915dddefb7ca29f62b4a96d70470c5', class: 'searchcraft-slider-label' }, hAsync("span", { key: 'fd5d32172ce53d93b858ca54c17b12b80fcdde1d', class: 'searchcraft-slider-start-label' }, startLabel), hAsync("span", { key: '8f4d230b78fb8d896a469f17ade3a3fd3162b427', class: 'searchcraft-slider-end-label' }, endLabel))));
7363
7646
  }
7364
7647
  static get cmpMeta() { return {
7365
7648
  "$flags$": 0,
@@ -7379,18 +7662,19 @@ class SearchcraftSlider {
7379
7662
  }; }
7380
7663
  }
7381
7664
 
7382
- var styles = `: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-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: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var(--sc-color-background-hover, #fafafa);--sc-color-background-active: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, #f7f7f7 );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-secondary-hover, var(--sc-color-background-hover, #e6e6e6) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var(--sc-color-foreground-secondary, #404040);--sc-border-neutral: rgba(0, 0, 0, 0.1);--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var(--sc-color-brand-hover, #2e2e2e);--sc-color-brand-active: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var(--sc-color-brand-active, #292929);--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-surface-brand-secondary-hover: var( --sc-color-brand-secondary-hover, var(--sc-color-brand-hover, #ebebeb) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active, #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: hsl(from var(--sc-color-success) h s 30);--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, #009900 );--sc-color-success-primary-active: hsl(from var(--sc-color-success) h s 20);--sc-surface-success-primary-active: var( --sc-color-success-primary-active, #006600 );--sc-color-success-secondary: hsl(from var(--sc-color-success) h s 90);--sc-surface-success-secondary: var(--sc-color-success-secondary, #ccffcc);--sc-color-success-secondary-hover: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, #e6ffe6 );--sc-color-success-secondary-active: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, #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: hsl(from var(--sc-color-caution) h s 30);--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, #e57300 );--sc-color-caution-primary-active: hsl(from var(--sc-color-caution) h s 20);--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, #b25a00 );--sc-color-caution-secondary: hsl(from var(--sc-color-caution) h s 90);--sc-surface-caution-secondary: var(--sc-color-caution-secondary, #ffd9b3);--sc-color-caution-secondary-hover: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, #ffe5cc );--sc-color-caution-secondary-active: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, #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: hsl(from var(--sc-color-danger) h s 30);--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, #e50000 );--sc-color-danger-primary-active: hsl(from var(--sc-color-danger) h s 20);--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, #b30000 );--sc-color-danger-secondary: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var(--sc-color-danger-secondary, #ffcccc);--sc-color-danger-secondary-hover: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, #ffe7e7 );--sc-color-danger-secondary-active: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, #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: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover: hsl(from var(--sc-color-success) h s 30%);--sc-color-success-primary-active: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary: hsl(from var(--sc-color-success) h s 90%);--sc-color-success-secondary-hover: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active: 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: hsl(from var(--sc-color-caution) h s 30%);--sc-color-caution-primary-active: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary: hsl(from var(--sc-color-caution) h s 90%);--sc-color-caution-secondary-hover: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active: 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: hsl(from var(--sc-color-danger) h s 30%);--sc-color-danger-primary-active: hsl(from var(--sc-color-danger) h s 20%);--sc-color-danger-secondary: hsl(from var(--sc-color-danger) h s 90%);--sc-color-danger-secondary-hover: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active: 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-custom-ad{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.searchcraft-adm-ad{all:unset;border:2px solid blue;border-radius:var(--sc-border-radius);cursor:pointer;display:flex;flex-direction:row;gap:8px;padding:var(--sc-popover-list-item-padding-vertical) var(--sc-popover-list-item-padding-horizontal)}.searchcraft-adm-ad:focus{background-color:var(--sc-surface-neutral-secondary-active);color:var(--sc-content-neutral-secondary)}.searchcraft-adm-ad:hover{background-color:var(--sc-surface-neutral-secondary-hover);color:var(--sc-content-neutral-secondary)}.searchcraft-adm-ad-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:inherit;margin:0}.searchcraft-adm-ad-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:inherit;margin:0}.searchcraft-adm-ad-image-wrapper{align-items:center;display:flex;flex-shrink:0;height:var(--sc-popover-list-item-image-size);justify-content:center;width:var(--sc-popover-list-item-image-size)}.searchcraft-adm-ad-image{max-height:var(--sc-popover-list-item-image-size);max-width:var(--sc-popover-list-item-image-size)}.searchcraft-adm-ad-info-wrapper{display:flex;flex-direction:column;gap:8px;justify-content:center}.searchcraft-search-result{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-brand);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{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}.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-list-child-checkbox-label{margin-left:24px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:8px;position:absolute;top:9px;width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:9px;position:absolute;top:3px;width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);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;--sc-input-form-padding-left: 44px;--sc-input-form-padding-right: 44px}.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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);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 var(--sc-input-form-padding-left)}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px}.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:var(--sc-input-form-padding-left)}.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:var(--sc-input-form-padding-right)}.searchcraft-input-form-clear-button-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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-form-border-radius: var(--sc-border-radius);--sc-popover-list-view-height: 400px;--sc-popover-list-item-image-size: 60px;--sc-popover-list-item-padding-horizontal: 8px;--sc-popover-list-item-padding-vertical: 8px;--sc-popover-modal-max-width: 570px}.searchcraft-popover-form{display:flex;flex:1;flex-direction:column}.searchcraft-popover-form-input-wrapper{background-color:var(--sc-surface-neutral-secondary);display:flex;flex-direction:row;gap:4px;padding:12px}.searchcraft-popover-form-input-wrapper>searchcraft-input-form{flex:1}.searchcraft-popover-form-button{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);border:0;border-radius:var(--sc-popover-form-border-radius);background:none;cursor:pointer;flex-shrink:0;outline:0;padding:0 12px}.searchcraft-popover-form-button:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-popover-form-button:focus{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-popover-form-inline .searchcraft-input-form-input{border-top-left-radius:var(--sc-popover-form-border-radius);border-bottom-left-radius:var(--sc-popover-form-border-radius);border-bottom-right-radius:var(--sc-popover-form-border-radius);border-top-right-radius:var(--sc-popover-form-border-radius);border:none;outline:none}.searchcraft-popover-form-inline.searchcraft-popover-form-active .searchcraft-input-form-input{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--sc-popover-form-border-radius);border-top-right-radius:var(--sc-popover-form-border-radius)}.searchcraft-popover-form-inline-wrapper-outer{position:relative}.searchcraft-popover-form-inline-wrapper-inner{height:var(--sc-popover-list-view-height);position:absolute;width:100%;z-index:1000}.searchcraft-popover-form-inline .searchcraft-popover-list-view{background-color:var(--sc-surface-neutral-secondary);border-bottom-left-radius:var(--sc-popover-form-border-radius);border-bottom-right-radius:var(--sc-popover-form-border-radius);display:flex;flex-direction:column;max-height:var(--sc-popover-list-view-height);overflow:auto}.searchcraft-popover-form-modal{--sc-popover0-form-border-radius: var(--sc-border-radius-lg);align-items:flex-start;background-color:var(--sc-surface-neutral-secondary);display:flex;inset:0;justify-content:center;padding:0;position:fixed;z-index:1000}@media(min-width: 576px){.searchcraft-popover-form-modal{background-color:rgba(0,0,0,0);padding:16px}}.searchcraft-popover-form-modal .searchcraft-popover-list-view{background-color:var(--sc-surface-neutral-secondary);border-bottom-left-radius:0;border-bottom-right-radius:0;display:flex;flex-direction:column;overflow:auto}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-list-view{max-height:var(--sc-popover-list-view-height)}}.searchcraft-popover-form-modal .searchcraft-popover-list-view{overflow:scroll}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-list-view{overflow:auto}}.searchcraft-popover-form-modal{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);outline-width:1px;outline-color:var(--sc-border-neutral)}.searchcraft-popover-form-modal-backdrop{background-color:rgba(0,0,0,.5);display:none;inset:0;position:absolute}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-inner{border-radius:var(--sc-popover-form-border-radius);display:flex;inset:0;margin-top:0px;overflow:hidden;position:absolute;z-index:1002}@media(min-width: 576px){.searchcraft-popover-form-modal-inner{inset:auto;margin-top:100px;max-width:var(--sc-popover-modal-max-width);position:relative;width:100%}}.searchcraft-popover-form-modal-input-wrapper .searchcraft-input-form-input{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);border:1px solid var(--sc-border-neutral)}.searchcraft-popover-form-modal-button{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px)}.searchcraft-popover-form-fullscreen{position:fixed;inset:0;z-index:1000;background-color:var(--sc-surface-neutral-secondary)}.searchcraft-popover-form-fullscreen .searchcraft-popover-form{position:absolute;inset:0}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-view{overflow:scroll}.searchcraft-popover-form-fullscreen-input-wrapper .searchcraft-input-form-input{border-radius:var(--sc-popover-form-border-radius);outline-width:1px;outline-color:var(--sc-border-neutral)}.searchcraft-popover-form-fullscreen-button{border-radius:var(--sc-popover-form-border-radius)}.searchcraft-popover-list-item{all:unset;color:var(--sc-content-neutral-secondary);display:flex;flex-direction:row;cursor:pointer;gap:8px;padding-right:var(--sc-popover-list-item-padding-horizontal);padding-left:var(--sc-popover-list-item-padding-horizontal);padding-top:var(--sc-popover-list-item-padding-vertical);padding-bottom:var(--sc-popover-list-item-padding-vertical)}.searchcraft-popover-list-item:focus{background-color:var(--sc-surface-neutral-secondary-active);color:var(--sc-content-neutral-secondary)}.searchcraft-popover-list-item:hover{background-color:var(--sc-surface-neutral-secondary-hover);color:var(--sc-content-neutral-secondary)}.searchcraft-popover-list-item-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:inherit}.searchcraft-popover-list-item-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:inherit}.searchcraft-popover-list-item-image-wrapper{width:var(--sc-popover-list-item-image-size);height:var(--sc-popover-list-item-image-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}.searchcraft-popover-list-item-image{max-width:var(--sc-popover-list-item-image-size);max-height:var(--sc-popover-list-item-image-size)}.searchcraft-popover-list-item-info-wrapper{display:flex;flex-direction:column;gap:8px;justify-content:center}.searchcraft-results-info{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size)}.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);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.searchcraft-search-results-per-page-select-input{min-width:120px}/*# sourceMappingURL=hologram.css.map */
7665
+ 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-adm-ad{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-ad:last-child .searchcraft-adm-ad{border-bottom:none}.searchcraft-adm-ad-link{align-items:flex-start;background-color:rgb(from blue r g b/5%);color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-adm-ad-link:focus,.searchcraft-adm-ad-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-adm-ad-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-adm-ad-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-adm-ad-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-adm-ad-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-adm-ad-content-title,.searchcraft-adm-ad-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-adm-ad-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-adm-ad-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-search-result{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-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 */
7383
7666
  `;
7384
7667
 
7385
7668
  /**
7386
7669
  * This web component adds Searchcraft's built-in css theme to your page. It does not render anything visible, its only function is to manage the css styles on the page.'
7387
7670
  *
7388
- * @import
7671
+ * @react-import
7389
7672
  * ```jsx
7390
- * // react
7391
7673
  * import { SearchcraftTheme } from "@searchcraft/react-sdk";
7674
+ * ```
7392
7675
  *
7393
- * // vue
7676
+ * @vue-import
7677
+ * ```jsx
7394
7678
  * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
7395
7679
  * ```
7396
7680
  *
@@ -7414,7 +7698,7 @@ class SearchcraftTheme {
7414
7698
  registerInstance(this, hostRef);
7415
7699
  }
7416
7700
  render() {
7417
- return hAsync("style", { key: '59491f4345817c2917f7158ae92f199281fb511b' }, styles);
7701
+ return hAsync("style", { key: '912dbad4e0aa5be21ed638cd20c276b530991454' }, styles);
7418
7702
  }
7419
7703
  static get cmpMeta() { return {
7420
7704
  "$flags$": 0,
@@ -7469,9 +7753,9 @@ class SearchcraftToggleButton {
7469
7753
  this.unsubscribe?.();
7470
7754
  }
7471
7755
  render() {
7472
- return (hAsync("div", { key: 'dd0367c381eaedcf675977c181fbdac6499f32e9', class: classNames('searchcraft-toggle-button', {
7756
+ return (hAsync("div", { key: 'f8a751315daf6bcdc0d47bc4fc802bc4615e565f', class: classNames('searchcraft-toggle-button', {
7473
7757
  'searchcraft-toggle-button-active': this.isActive,
7474
- }) }, hAsync("div", { key: '43b5920cad7c1d44dda3d541481a2eea1f0182b7' }, hAsync("p", { key: '1ac87d2f68ba9e8b84e9e5e4157a4108275d064c', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (hAsync("p", { key: 'e06f9a06088bede5546d8d47e84ece9cae5dfc54', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), hAsync("button", { key: '96999c99ef38996f871ac9260f4a048561cd7003', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, hAsync("div", { key: 'f93c71f1e06531f06709140033d56aa2fa378d47', class: 'searchcraft-toggle-button-handle' }))));
7758
+ }) }, hAsync("div", { key: 'aaa92d7c1aebe241a163a1fba7cd1f8d3804286d' }, hAsync("p", { key: '068b82b17a99bf55ad17818d0dd4c7e95858317b', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (hAsync("p", { key: '39e43e3fad6a2ab09d20f37c6d6865cede3701d9', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), hAsync("button", { key: '5ae352870d4a01c430389e75b967b2eb9d3fa5f7', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, hAsync("div", { key: '0574ade4e1681ce8e122039c40e761cb68555621', class: 'searchcraft-toggle-button-handle' }))));
7475
7759
  }
7476
7760
  static get cmpMeta() { return {
7477
7761
  "$flags$": 0,
@@ -7498,6 +7782,7 @@ registerComponents([
7498
7782
  SearchcraftInputLabel,
7499
7783
  SearchcraftPagination,
7500
7784
  SearchcraftPopoverButton,
7785
+ SearchcraftPopoverFooter,
7501
7786
  SearchcraftPopoverForm,
7502
7787
  SearchcraftPopoverListItem,
7503
7788
  SearchcraftPopoverListItemAd,