@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
@@ -3176,18 +3176,18 @@ Object.keys(react).forEach(function (k) {
3176
3176
  });
3177
3177
  }(zustand));
3178
3178
 
3179
- var B = Object.defineProperty;
3180
- var q = (r, e, n) => e in r ? B(r, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[e] = n;
3181
- var h = (r, e, n) => q(r, typeof e != "symbol" ? e + "" : e, n);
3182
- 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 || {});
3183
- class ge {
3179
+ var q = Object.defineProperty;
3180
+ var B = (a, e, n) => e in a ? q(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
3181
+ var h = (a, e, n) => B(a, typeof e != "symbol" ? e + "" : e, n);
3182
+ 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 || {});
3183
+ class pe {
3184
3184
  constructor(e) {
3185
3185
  h(this, "logLevel");
3186
3186
  h(this, "logFormatter");
3187
3187
  this.logLevel = e.logLevel || 1, this.logFormatter = e.logFormatter || this.defaultFormatter;
3188
3188
  }
3189
3189
  defaultFormatter(e, n) {
3190
- return `[${P[e]}] ${( new Date()).toISOString()}: ${n}`;
3190
+ return `[${F[e]}] ${( new Date()).toISOString()}: ${n}`;
3191
3191
  }
3192
3192
  debug(e) {
3193
3193
  this.logLevel <= 0 && console.log(this.logFormatter(0, e));
@@ -3218,190 +3218,190 @@ class ge {
3218
3218
  }
3219
3219
  }
3220
3220
  }
3221
- function w(r, e, n, o) {
3222
- return new (n || (n = Promise))(function(a, i) {
3223
- function t(c) {
3221
+ function y(a, e, n, r) {
3222
+ return new (n || (n = Promise))(function(i, o) {
3223
+ function t(s) {
3224
3224
  try {
3225
- l(o.next(c));
3226
- } catch (s) {
3227
- i(s);
3225
+ l(r.next(s));
3226
+ } catch (c) {
3227
+ o(c);
3228
3228
  }
3229
3229
  }
3230
- function u(c) {
3230
+ function u(s) {
3231
3231
  try {
3232
- l(o.throw(c));
3233
- } catch (s) {
3234
- i(s);
3232
+ l(r.throw(s));
3233
+ } catch (c) {
3234
+ o(c);
3235
3235
  }
3236
3236
  }
3237
- function l(c) {
3238
- var s;
3239
- c.done ? a(c.value) : (s = c.value, s instanceof n ? s : new n(function(f) {
3240
- f(s);
3237
+ function l(s) {
3238
+ var c;
3239
+ s.done ? i(s.value) : (c = s.value, c instanceof n ? c : new n(function(p) {
3240
+ p(c);
3241
3241
  })).then(t, u);
3242
3242
  }
3243
- l((o = o.apply(r, [])).next());
3243
+ l((r = r.apply(a, [])).next());
3244
3244
  });
3245
3245
  }
3246
- function y(r, e) {
3247
- var n, o, a, i, t = { label: 0, sent: function() {
3248
- if (1 & a[0]) throw a[1];
3249
- return a[1];
3246
+ function w(a, e) {
3247
+ var n, r, i, o, t = { label: 0, sent: function() {
3248
+ if (1 & i[0]) throw i[1];
3249
+ return i[1];
3250
3250
  }, trys: [], ops: [] };
3251
- return i = { next: u(0), throw: u(1), return: u(2) }, typeof Symbol == "function" && (i[Symbol.iterator] = function() {
3251
+ return o = { next: u(0), throw: u(1), return: u(2) }, typeof Symbol == "function" && (o[Symbol.iterator] = function() {
3252
3252
  return this;
3253
- }), i;
3253
+ }), o;
3254
3254
  function u(l) {
3255
- return function(c) {
3256
- return function(s) {
3255
+ return function(s) {
3256
+ return function(c) {
3257
3257
  if (n) throw new TypeError("Generator is already executing.");
3258
- for (; i && (i = 0, s[0] && (t = 0)), t; ) try {
3259
- 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;
3260
- switch (o = 0, a && (s = [2 & s[0], a.value]), s[0]) {
3258
+ for (; o && (o = 0, c[0] && (t = 0)), t; ) try {
3259
+ 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;
3260
+ switch (r = 0, i && (c = [2 & c[0], i.value]), c[0]) {
3261
3261
  case 0:
3262
3262
  case 1:
3263
- a = s;
3263
+ i = c;
3264
3264
  break;
3265
3265
  case 4:
3266
- return t.label++, { value: s[1], done: !1 };
3266
+ return t.label++, { value: c[1], done: !1 };
3267
3267
  case 5:
3268
- t.label++, o = s[1], s = [0];
3268
+ t.label++, r = c[1], c = [0];
3269
3269
  continue;
3270
3270
  case 7:
3271
- s = t.ops.pop(), t.trys.pop();
3271
+ c = t.ops.pop(), t.trys.pop();
3272
3272
  continue;
3273
3273
  default:
3274
- if (a = t.trys, !((a = a.length > 0 && a[a.length - 1]) || s[0] !== 6 && s[0] !== 2)) {
3274
+ if (i = t.trys, !((i = i.length > 0 && i[i.length - 1]) || c[0] !== 6 && c[0] !== 2)) {
3275
3275
  t = 0;
3276
3276
  continue;
3277
3277
  }
3278
- if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) {
3279
- t.label = s[1];
3278
+ if (c[0] === 3 && (!i || c[1] > i[0] && c[1] < i[3])) {
3279
+ t.label = c[1];
3280
3280
  break;
3281
3281
  }
3282
- if (s[0] === 6 && t.label < a[1]) {
3283
- t.label = a[1], a = s;
3282
+ if (c[0] === 6 && t.label < i[1]) {
3283
+ t.label = i[1], i = c;
3284
3284
  break;
3285
3285
  }
3286
- if (a && t.label < a[2]) {
3287
- t.label = a[2], t.ops.push(s);
3286
+ if (i && t.label < i[2]) {
3287
+ t.label = i[2], t.ops.push(c);
3288
3288
  break;
3289
3289
  }
3290
- a[2] && t.ops.pop(), t.trys.pop();
3290
+ i[2] && t.ops.pop(), t.trys.pop();
3291
3291
  continue;
3292
3292
  }
3293
- s = e.call(r, t);
3294
- } catch (f) {
3295
- s = [6, f], o = 0;
3293
+ c = e.call(a, t);
3294
+ } catch (p) {
3295
+ c = [6, p], r = 0;
3296
3296
  } finally {
3297
- n = a = 0;
3297
+ n = i = 0;
3298
3298
  }
3299
- if (5 & s[0]) throw s[1];
3300
- return { value: s[0] ? s[1] : void 0, done: !0 };
3301
- }([l, c]);
3299
+ if (5 & c[0]) throw c[1];
3300
+ return { value: c[0] ? c[1] : void 0, done: !0 };
3301
+ }([l, s]);
3302
3302
  };
3303
3303
  }
3304
3304
  }
3305
- var b = { exclude: [] }, D = {}, v = function(r, e) {
3306
- typeof window < "u" && (D[r] = e);
3305
+ var S = { exclude: [] }, O = {}, v = function(a, e) {
3306
+ typeof window < "u" && (O[a] = e);
3307
3307
  };
3308
- function C(r) {
3309
- return r ^= r >>> 16, r = Math.imul(r, 2246822507), r ^= r >>> 13, r = Math.imul(r, 3266489909), (r ^= r >>> 16) >>> 0;
3308
+ function C(a) {
3309
+ return a ^= a >>> 16, a = Math.imul(a, 2246822507), a ^= a >>> 13, a = Math.imul(a, 3266489909), (a ^= a >>> 16) >>> 0;
3310
3310
  }
3311
3311
  var m = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);
3312
- function g(r, e) {
3313
- return r << e | r >>> 32 - e;
3312
+ function g(a, e) {
3313
+ return a << e | a >>> 32 - e;
3314
3314
  }
3315
- function M(r, e) {
3315
+ function _(a, e) {
3316
3316
  var n;
3317
- 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");
3318
- var o = new Uint32Array([e, e, e, e]);
3319
- (((function(i, t) {
3320
- for (var u = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * u), c = 0; c < u; c++) {
3321
- var s = l.subarray(4 * c, 4 * (c + 1));
3322
- 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;
3323
- }
3324
- })))(r, o), function(i, t) {
3325
- var u = i.byteLength / 16 | 0, l = i.byteLength % 16, c = new Uint32Array(4), s = new Uint8Array(i, 16 * u, l);
3317
+ if (e === void 0 && (e = 0), e = e ? 0 | e : 0, typeof a == "string" && (n = a, a = new TextEncoder().encode(n).buffer), !(a instanceof ArrayBuffer)) throw new TypeError("Expected key to be ArrayBuffer or string");
3318
+ var r = new Uint32Array([e, e, e, e]);
3319
+ (((function(o, t) {
3320
+ for (var u = o.byteLength / 16 | 0, l = new Uint32Array(o, 0, 4 * u), s = 0; s < u; s++) {
3321
+ var c = l.subarray(4 * s, 4 * (s + 1));
3322
+ c[0] = Math.imul(c[0], m[0]), c[0] = 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;
3323
+ }
3324
+ })))(a, r), function(o, t) {
3325
+ var u = o.byteLength / 16 | 0, l = o.byteLength % 16, s = new Uint32Array(4), c = new Uint8Array(o, 16 * u, l);
3326
3326
  switch (l) {
3327
3327
  case 15:
3328
- c[3] = c[3] ^ s[14] << 16;
3328
+ s[3] = s[3] ^ c[14] << 16;
3329
3329
  case 14:
3330
- c[3] = c[3] ^ s[13] << 8;
3330
+ s[3] = s[3] ^ c[13] << 8;
3331
3331
  case 13:
3332
- 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];
3332
+ 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];
3333
3333
  case 12:
3334
- c[2] = c[2] ^ s[11] << 24;
3334
+ s[2] = s[2] ^ c[11] << 24;
3335
3335
  case 11:
3336
- c[2] = c[2] ^ s[10] << 16;
3336
+ s[2] = s[2] ^ c[10] << 16;
3337
3337
  case 10:
3338
- c[2] = c[2] ^ s[9] << 8;
3338
+ s[2] = s[2] ^ c[9] << 8;
3339
3339
  case 9:
3340
- 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];
3340
+ 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];
3341
3341
  case 8:
3342
- c[1] = c[1] ^ s[7] << 24;
3342
+ s[1] = s[1] ^ c[7] << 24;
3343
3343
  case 7:
3344
- c[1] = c[1] ^ s[6] << 16;
3344
+ s[1] = s[1] ^ c[6] << 16;
3345
3345
  case 6:
3346
- c[1] = c[1] ^ s[5] << 8;
3346
+ s[1] = s[1] ^ c[5] << 8;
3347
3347
  case 5:
3348
- 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];
3348
+ 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];
3349
3349
  case 4:
3350
- c[0] = c[0] ^ s[3] << 24;
3350
+ s[0] = s[0] ^ c[3] << 24;
3351
3351
  case 3:
3352
- c[0] = c[0] ^ s[2] << 16;
3352
+ s[0] = s[0] ^ c[2] << 16;
3353
3353
  case 2:
3354
- c[0] = c[0] ^ s[1] << 8;
3354
+ s[0] = s[0] ^ c[1] << 8;
3355
3355
  case 1:
3356
- 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];
3357
- }
3358
- }(r, o), function(i, t) {
3359
- t[0] = t[0] ^ i.byteLength, t[1] = t[1] ^ i.byteLength, t[2] = t[2] ^ i.byteLength, t[3] = t[3] ^ i.byteLength, t[0] = t[0] + t[1] | 0, t[0] = t[0] + t[2] | 0, t[0] = t[0] + t[3] | 0, t[1] = t[1] + t[0] | 0, t[2] = t[2] + t[0] | 0, t[3] = t[3] + t[0] | 0, t[0] = 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;
3360
- }(r, o);
3361
- var a = new Uint8Array(o.buffer);
3362
- return Array.from(a).map(function(i) {
3363
- return i.toString(16).padStart(2, "0");
3356
+ 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];
3357
+ }
3358
+ }(a, r), function(o, t) {
3359
+ 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;
3360
+ }(a, r);
3361
+ var i = new Uint8Array(r.buffer);
3362
+ return Array.from(i).map(function(o) {
3363
+ return o.toString(16).padStart(2, "0");
3364
3364
  }).join("");
3365
3365
  }
3366
- function H(r) {
3367
- for (var e = 0, n = 0; n < r.length; ++n) e += Math.abs(r[n]);
3366
+ function z(a) {
3367
+ for (var e = 0, n = 0; n < a.length; ++n) e += Math.abs(a[n]);
3368
3368
  return e;
3369
3369
  }
3370
- function U(r, e, n) {
3371
- for (var o = [], a = 0; a < r[0].data.length; a++) {
3372
- for (var i = [], t = 0; t < r.length; t++) i.push(r[t].data[a]);
3373
- o.push(Q(i));
3370
+ function U(a, e, n) {
3371
+ for (var r = [], i = 0; i < a[0].data.length; i++) {
3372
+ for (var o = [], t = 0; t < a.length; t++) o.push(a[t].data[i]);
3373
+ r.push(H(o));
3374
3374
  }
3375
- var u = new Uint8ClampedArray(o);
3375
+ var u = new Uint8ClampedArray(r);
3376
3376
  return new ImageData(u, e, n);
3377
3377
  }
3378
- function Q(r) {
3379
- if (r.length === 0) return 0;
3380
- for (var e = {}, n = 0, o = r; n < o.length; n++)
3381
- e[i = o[n]] = (e[i] || 0) + 1;
3382
- var a = r[0];
3383
- for (var i in e) e[i] > e[a] && (a = parseInt(i, 10));
3384
- return a;
3378
+ function H(a) {
3379
+ if (a.length === 0) return 0;
3380
+ for (var e = {}, n = 0, r = a; n < r.length; n++)
3381
+ e[o = r[n]] = (e[o] || 0) + 1;
3382
+ var i = a[0];
3383
+ for (var o in e) e[o] > e[i] && (i = parseInt(o, 10));
3384
+ return i;
3385
3385
  }
3386
3386
  function E() {
3387
3387
  if (typeof navigator > "u") return { name: "unknown", version: "unknown" };
3388
- 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++) {
3389
- var a = o[n], i = r.match(a);
3390
- if (i && i.groups) return { name: e[i.groups.name] || i.groups.name, version: i.groups.version };
3388
+ for (var a = navigator.userAgent, e = { Edg: "Edge", OPR: "Opera" }, n = 0, r = [/(?<name>Edge|Edg)\/(?<version>\d+(?:\.\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/, /(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/, /(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/, /(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/]; n < r.length; n++) {
3389
+ var i = r[n], o = a.match(i);
3390
+ if (o && o.groups) return { name: e[o.groups.name] || o.groups.name, version: o.groups.version };
3391
3391
  }
3392
3392
  return { name: "unknown", version: "unknown" };
3393
3393
  }
3394
3394
  v("audio", function() {
3395
- return w(this, void 0, void 0, function() {
3396
- return y(this, function(r) {
3395
+ return y(this, void 0, void 0, function() {
3396
+ return w(this, function(a) {
3397
3397
  return [2, new Promise(function(e, n) {
3398
3398
  try {
3399
- var o = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), a = o.createBufferSource(), i = o.createOscillator();
3400
- i.frequency.value = 1e3;
3401
- var t, u = o.createDynamicsCompressor();
3402
- u.threshold.value = -50, u.knee.value = 40, u.ratio.value = 12, u.attack.value = 0, u.release.value = 0.2, i.connect(u), u.connect(o.destination), i.start(), o.oncomplete = function(l) {
3403
- t = l.renderedBuffer.getChannelData(0), e({ sampleHash: H(t), oscillator: i.type, maxChannels: o.destination.maxChannelCount, channelCountMode: a.channelCountMode });
3404
- }, o.startRendering();
3399
+ var r = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), i = r.createBufferSource(), o = r.createOscillator();
3400
+ o.frequency.value = 1e3;
3401
+ var t, u = r.createDynamicsCompressor();
3402
+ u.threshold.value = -50, u.knee.value = 40, u.ratio.value = 12, u.attack.value = 0, u.release.value = 0.2, o.connect(u), u.connect(r.destination), o.start(), r.oncomplete = function(l) {
3403
+ t = l.renderedBuffer.getChannelData(0), e({ sampleHash: z(t), oscillator: o.type, maxChannels: r.destination.maxChannelCount, channelCountMode: i.channelCountMode });
3404
+ }, r.startRendering();
3405
3405
  } catch (l) {
3406
3406
  console.error("Error creating audio fingerprint:", l), n(l);
3407
3407
  }
@@ -3409,123 +3409,123 @@ v("audio", function() {
3409
3409
  });
3410
3410
  });
3411
3411
  });
3412
- var z = E().name !== "SamsungBrowser" ? 1 : 3, x = 280, F = 20;
3412
+ var Q = E().name !== "SamsungBrowser" ? 1 : 3, P = 280, x = 20;
3413
3413
  E().name != "Firefox" && v("canvas", function() {
3414
- return document.createElement("canvas").getContext("2d"), new Promise(function(r) {
3415
- var e = Array.from({ length: z }, function() {
3414
+ return document.createElement("canvas").getContext("2d"), new Promise(function(a) {
3415
+ var e = Array.from({ length: Q }, function() {
3416
3416
  return function() {
3417
- var n = document.createElement("canvas"), o = n.getContext("2d");
3418
- if (!o) return new ImageData(1, 1);
3419
- n.width = x, n.height = F;
3420
- var a = o.createLinearGradient(0, 0, n.width, n.height);
3421
- 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);
3422
- var i = "Random Text WMwmil10Oo";
3423
- 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();
3424
- var t = o.getImageData(0, 0, n.width, n.height);
3417
+ var n = document.createElement("canvas"), r = n.getContext("2d");
3418
+ if (!r) return new ImageData(1, 1);
3419
+ n.width = P, n.height = x;
3420
+ var i = r.createLinearGradient(0, 0, n.width, n.height);
3421
+ 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);
3422
+ var o = "Random Text WMwmil10Oo";
3423
+ 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();
3424
+ var t = r.getImageData(0, 0, n.width, n.height);
3425
3425
  return t;
3426
3426
  }();
3427
3427
  });
3428
- r({ commonImageDataHash: M(U(e, x, F).data.toString()).toString() });
3428
+ a({ commonImageDataHash: _(U(e, P, x).data.toString()).toString() });
3429
3429
  });
3430
3430
  });
3431
- 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"];
3432
- function k(r, e) {
3433
- if (!r) throw new Error("Canvas context not supported");
3434
- return r.font = "72px ".concat(e), r.measureText("WwMmLli0Oo").width;
3431
+ 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"];
3432
+ function k(a, e) {
3433
+ if (!a) throw new Error("Canvas context not supported");
3434
+ return a.font = "72px ".concat(e), a.measureText("WwMmLli0Oo").width;
3435
3435
  }
3436
- function J() {
3437
- var r, e = document.createElement("canvas"), n = (r = e.getContext("webgl")) !== null && r !== void 0 ? r : e.getContext("experimental-webgl");
3436
+ function X() {
3437
+ var a, e = document.createElement("canvas"), n = (a = e.getContext("webgl")) !== null && a !== void 0 ? a : e.getContext("experimental-webgl");
3438
3438
  if (n && "getParameter" in n) try {
3439
- var 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() };
3440
- if (!a.length || !o.length) {
3439
+ 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() };
3440
+ if (!i.length || !r.length) {
3441
3441
  var t = n.getExtension("WEBGL_debug_renderer_info");
3442
3442
  if (t) {
3443
3443
  var u = (n.getParameter(t.UNMASKED_VENDOR_WEBGL) || "").toString(), l = (n.getParameter(t.UNMASKED_RENDERER_WEBGL) || "").toString();
3444
- u && (i.vendorUnmasked = u), l && (i.rendererUnmasked = l);
3444
+ u && (o.vendorUnmasked = u), l && (o.rendererUnmasked = l);
3445
3445
  }
3446
3446
  }
3447
- return i;
3447
+ return o;
3448
3448
  } catch {
3449
3449
  }
3450
3450
  return "undefined";
3451
3451
  }
3452
- function X() {
3453
- var r = new Float32Array(1), e = new Uint8Array(r.buffer);
3454
- return r[0] = 1 / 0, r[0] = r[0] - r[0], e[3];
3452
+ function Y() {
3453
+ var a = new Float32Array(1), e = new Uint8Array(a.buffer);
3454
+ return a[0] = 1 / 0, a[0] = a[0] - a[0], e[3];
3455
3455
  }
3456
- function Z(r, e) {
3456
+ function Z(a, e) {
3457
3457
  var n = {};
3458
- return e.forEach(function(o) {
3459
- var a = function(i) {
3460
- if (i.length === 0) return null;
3458
+ return e.forEach(function(r) {
3459
+ var i = function(o) {
3460
+ if (o.length === 0) return null;
3461
3461
  var t = {};
3462
- i.forEach(function(c) {
3463
- var s = String(c);
3464
- t[s] = (t[s] || 0) + 1;
3462
+ o.forEach(function(s) {
3463
+ var c = String(s);
3464
+ t[c] = (t[c] || 0) + 1;
3465
3465
  });
3466
- var u = i[0], l = 1;
3467
- return Object.keys(t).forEach(function(c) {
3468
- t[c] > l && (u = c, l = t[c]);
3466
+ var u = o[0], l = 1;
3467
+ return Object.keys(t).forEach(function(s) {
3468
+ t[s] > l && (u = s, l = t[s]);
3469
3469
  }), u;
3470
- }(r.map(function(i) {
3471
- return o in i ? i[o] : void 0;
3472
- }).filter(function(i) {
3473
- return i !== void 0;
3470
+ }(a.map(function(o) {
3471
+ return r in o ? o[r] : void 0;
3472
+ }).filter(function(o) {
3473
+ return o !== void 0;
3474
3474
  }));
3475
- a && (n[o] = a);
3475
+ i && (n[r] = i);
3476
3476
  }), n;
3477
3477
  }
3478
3478
  function ee() {
3479
- 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"] };
3479
+ 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"] };
3480
3480
  return Object.keys(e).forEach(function(n) {
3481
- e[n].forEach(function(o) {
3482
- matchMedia("(".concat(n, ": ").concat(o, ")")).matches && r.push("".concat(n, ": ").concat(o));
3481
+ e[n].forEach(function(r) {
3482
+ matchMedia("(".concat(n, ": ").concat(r, ")")).matches && a.push("".concat(n, ": ").concat(r));
3483
3483
  });
3484
- }), r;
3484
+ }), a;
3485
3485
  }
3486
3486
  function te() {
3487
3487
  if (window.location.protocol === "https:" && typeof window.ApplePaySession == "function") try {
3488
- for (var r = window.ApplePaySession.supportsVersion, e = 15; e > 0; e--) if (r(e)) return e;
3488
+ for (var a = window.ApplePaySession.supportsVersion, e = 15; e > 0; e--) if (a(e)) return e;
3489
3489
  } catch {
3490
3490
  return 0;
3491
3491
  }
3492
3492
  return 0;
3493
3493
  }
3494
3494
  E().name != "Firefox" && v("fonts", function() {
3495
- var r = this;
3495
+ var a = this;
3496
3496
  return new Promise(function(e, n) {
3497
3497
  try {
3498
- (function(o) {
3499
- var a;
3500
- w(this, void 0, void 0, function() {
3501
- var i, t, u;
3502
- return y(this, function(l) {
3498
+ (function(r) {
3499
+ var i;
3500
+ y(this, void 0, void 0, function() {
3501
+ var o, t, u;
3502
+ return w(this, function(l) {
3503
3503
  switch (l.label) {
3504
3504
  case 0:
3505
- return document.body ? [3, 2] : [4, (c = 50, new Promise(function(f) {
3506
- return setTimeout(f, c, s);
3505
+ return document.body ? [3, 2] : [4, (s = 50, new Promise(function(p) {
3506
+ return setTimeout(p, s, c);
3507
3507
  }))];
3508
3508
  case 1:
3509
3509
  return l.sent(), [3, 0];
3510
3510
  case 2:
3511
- if ((i = document.createElement("iframe")).setAttribute("frameBorder", "0"), (t = i.style).setProperty("position", "fixed"), t.setProperty("display", "block", "important"), t.setProperty("visibility", "visible"), t.setProperty("border", "0"), t.setProperty("opacity", "0"), i.src = "about:blank", document.body.appendChild(i), !(u = i.contentDocument || ((a = i.contentWindow) === null || a === void 0 ? void 0 : a.document))) throw new Error("Iframe document is not accessible");
3512
- return o({ iframe: u }), setTimeout(function() {
3513
- document.body.removeChild(i);
3511
+ 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");
3512
+ return r({ iframe: u }), setTimeout(function() {
3513
+ document.body.removeChild(o);
3514
3514
  }, 0), [2];
3515
3515
  }
3516
- var c, s;
3516
+ var s, c;
3517
3517
  });
3518
3518
  });
3519
- })(function(o) {
3520
- var a = o.iframe;
3521
- return w(r, void 0, void 0, function() {
3522
- var i, t, u, l;
3523
- return y(this, function(c) {
3524
- return i = a.createElement("canvas"), t = i.getContext("2d"), u = Y.map(function(s) {
3525
- return k(t, s);
3526
- }), l = {}, K.forEach(function(s) {
3527
- var f = k(t, s);
3528
- u.includes(f) || (l[s] = f);
3519
+ })(function(r) {
3520
+ var i = r.iframe;
3521
+ return y(a, void 0, void 0, function() {
3522
+ var o, t, u, l;
3523
+ return w(this, function(s) {
3524
+ return o = i.createElement("canvas"), t = o.getContext("2d"), u = J.map(function(c) {
3525
+ return k(t, c);
3526
+ }), l = {}, K.forEach(function(c) {
3527
+ var p = k(t, c);
3528
+ u.includes(p) || (l[c] = p);
3529
3529
  }), e(l), [2];
3530
3530
  });
3531
3531
  });
@@ -3535,76 +3535,76 @@ E().name != "Firefox" && v("fonts", function() {
3535
3535
  }
3536
3536
  });
3537
3537
  }), v("hardware", function() {
3538
- return new Promise(function(r, e) {
3539
- var n = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, o = window.performance && window.performance.memory ? window.performance.memory : 0;
3540
- r({ videocard: J(), architecture: X(), deviceMemory: n.toString() || "undefined", jsHeapSizeLimit: o.jsHeapSizeLimit || 0 });
3538
+ return new Promise(function(a, e) {
3539
+ var n = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, r = window.performance && window.performance.memory ? window.performance.memory : 0;
3540
+ a({ videocard: X(), architecture: Y(), deviceMemory: n.toString() || "undefined", jsHeapSizeLimit: r.jsHeapSizeLimit || 0 });
3541
3541
  });
3542
3542
  }), v("locales", function() {
3543
- return new Promise(function(r) {
3544
- r({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });
3543
+ return new Promise(function(a) {
3544
+ a({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });
3545
3545
  });
3546
3546
  }), v("permissions", function() {
3547
- return w(this, void 0, void 0, function() {
3548
- var r;
3549
- return y(this, function(e) {
3550
- 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() {
3547
+ return y(this, void 0, void 0, function() {
3548
+ var a;
3549
+ return w(this, function(e) {
3550
+ 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() {
3551
3551
  return function() {
3552
- return w(this, void 0, void 0, function() {
3553
- var n, o, a, i, t;
3554
- return y(this, function(u) {
3552
+ return y(this, void 0, void 0, function() {
3553
+ var n, r, i, o, t;
3554
+ return w(this, function(u) {
3555
3555
  switch (u.label) {
3556
3556
  case 0:
3557
- n = {}, o = 0, a = T, u.label = 1;
3557
+ n = {}, r = 0, i = A, u.label = 1;
3558
3558
  case 1:
3559
- if (!(o < a.length)) return [3, 6];
3560
- i = a[o], u.label = 2;
3559
+ if (!(r < i.length)) return [3, 6];
3560
+ o = i[r], u.label = 2;
3561
3561
  case 2:
3562
- return u.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];
3562
+ return u.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: o })];
3563
3563
  case 3:
3564
- return t = u.sent(), n[i] = t.state.toString(), [3, 5];
3564
+ return t = u.sent(), n[o] = t.state.toString(), [3, 5];
3565
3565
  case 4:
3566
3566
  return u.sent(), [3, 5];
3567
3567
  case 5:
3568
- return o++, [3, 1];
3568
+ return r++, [3, 1];
3569
3569
  case 6:
3570
3570
  return [2, n];
3571
3571
  }
3572
3572
  });
3573
3573
  });
3574
3574
  }();
3575
- }), [2, Promise.all(r).then(function(n) {
3576
- return Z(n, T);
3575
+ }), [2, Promise.all(a).then(function(n) {
3576
+ return Z(n, A);
3577
3577
  })];
3578
3578
  });
3579
3579
  });
3580
3580
  }), v("plugins", function() {
3581
- var r = [];
3581
+ var a = [];
3582
3582
  if (navigator.plugins) for (var e = 0; e < navigator.plugins.length; e++) {
3583
3583
  var n = navigator.plugins[e];
3584
- r.push([n.name, n.filename, n.description].join("|"));
3584
+ a.push([n.name, n.filename, n.description].join("|"));
3585
3585
  }
3586
- return new Promise(function(o) {
3587
- o({ plugins: r });
3586
+ return new Promise(function(r) {
3587
+ r({ plugins: a });
3588
3588
  });
3589
3589
  }), v("screen", function() {
3590
- return new Promise(function(r) {
3591
- r({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });
3590
+ return new Promise(function(a) {
3591
+ a({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });
3592
3592
  });
3593
3593
  }), v("system", function() {
3594
- return new Promise(function(r) {
3594
+ return new Promise(function(a) {
3595
3595
  var e = E();
3596
- 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() });
3596
+ a({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: e.name, version: e.version }, applePayVersion: te() });
3597
3597
  });
3598
3598
  });
3599
- var p, ne = E().name !== "SamsungBrowser" ? 1 : 3, d = null;
3599
+ var f, ne = E().name !== "SamsungBrowser" ? 1 : 3, d = null;
3600
3600
  v("webgl", function() {
3601
- return w(this, void 0, void 0, function() {
3602
- var r;
3603
- return y(this, function(e) {
3604
- typeof document < "u" && ((p = document.createElement("canvas")).width = 200, p.height = 100, d = p.getContext("webgl"));
3601
+ return y(this, void 0, void 0, function() {
3602
+ var a;
3603
+ return w(this, function(e) {
3604
+ typeof document < "u" && ((f = document.createElement("canvas")).width = 200, f.height = 100, d = f.getContext("webgl"));
3605
3605
  try {
3606
3606
  if (!d) throw new Error("WebGL not supported");
3607
- return r = Array.from({ length: ne }, function() {
3607
+ return a = Array.from({ length: ne }, function() {
3608
3608
  return function() {
3609
3609
  try {
3610
3610
  if (!d) throw new Error("WebGL not supported");
@@ -3613,36 +3613,36 @@ v("webgl", function() {
3613
3613
  void main() {
3614
3614
  gl_Position = vec4(position, 0.0, 1.0);
3615
3615
  }
3616
- `, o = `
3616
+ `, r = `
3617
3617
  precision mediump float;
3618
3618
  void main() {
3619
3619
  gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
3620
3620
  }
3621
- `, a = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);
3622
- if (!a || !i) throw new Error("Failed to create shaders");
3623
- 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));
3624
- if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error("Fragment shader compilation failed: " + d.getShaderInfoLog(i));
3621
+ `, i = d.createShader(d.VERTEX_SHADER), o = d.createShader(d.FRAGMENT_SHADER);
3622
+ if (!i || !o) throw new Error("Failed to create shaders");
3623
+ 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));
3624
+ if (d.compileShader(o), !d.getShaderParameter(o, d.COMPILE_STATUS)) throw new Error("Fragment shader compilation failed: " + d.getShaderInfoLog(o));
3625
3625
  var t = d.createProgram();
3626
3626
  if (!t) throw new Error("Failed to create shader program");
3627
- 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));
3627
+ 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));
3628
3628
  d.useProgram(t);
3629
- for (var u = 137, l = new Float32Array(4 * u), c = 2 * Math.PI / u, s = 0; s < u; s++) {
3630
- var f = s * c;
3631
- 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);
3629
+ for (var u = 137, l = new Float32Array(4 * u), s = 2 * Math.PI / u, c = 0; c < u; c++) {
3630
+ var p = c * s;
3631
+ 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);
3632
3632
  }
3633
3633
  var L = d.createBuffer();
3634
3634
  d.bindBuffer(d.ARRAY_BUFFER, L), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);
3635
3635
  var I = d.getAttribLocation(t, "position");
3636
- 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);
3637
- var R = new Uint8ClampedArray(p.width * p.height * 4);
3638
- return d.readPixels(0, 0, p.width, p.height, d.RGBA, d.UNSIGNED_BYTE, R), new ImageData(R, p.width, p.height);
3636
+ 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);
3637
+ var R = new Uint8ClampedArray(f.width * f.height * 4);
3638
+ return d.readPixels(0, 0, f.width, f.height, d.RGBA, d.UNSIGNED_BYTE, R), new ImageData(R, f.width, f.height);
3639
3639
  } catch {
3640
3640
  return new ImageData(1, 1);
3641
3641
  } finally {
3642
3642
  d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));
3643
3643
  }
3644
3644
  }();
3645
- }), [2, { commonImageHash: M(U(r, p.width, p.height).data.toString()).toString() }];
3645
+ }), [2, { commonImageHash: _(U(a, f.width, f.height).data.toString()).toString() }];
3646
3646
  } catch {
3647
3647
  return [2, { webgl: "unsupported" }];
3648
3648
  }
@@ -3650,15 +3650,15 @@ v("webgl", function() {
3650
3650
  });
3651
3651
  });
3652
3652
  });
3653
- var S = function(r, e, n, o) {
3654
- for (var a = (n - e) / o, i = 0, t = 0; t < o; t++)
3655
- i += r(e + (t + 0.5) * a);
3656
- return i * a;
3653
+ var b = function(a, e, n, r) {
3654
+ for (var i = (n - e) / r, o = 0, t = 0; t < r; t++)
3655
+ o += a(e + (t + 0.5) * i);
3656
+ return o * i;
3657
3657
  };
3658
3658
  v("math", function() {
3659
- return w(void 0, void 0, void 0, function() {
3660
- return y(this, function(r) {
3661
- 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) }];
3659
+ return y(void 0, void 0, void 0, function() {
3660
+ return w(this, function(a) {
3661
+ return [2, { acos: Math.acos(0.5), asin: b(Math.asin, -1, 1, 97), atan: b(Math.atan, -1, 1, 97), cos: b(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: b(Math.sin, -Math.PI, Math.PI, 97), sinh: b(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: b(Math.tan, 0, 2 * Math.PI, 97), tanh: b(Math.tanh, -9 / 7, 7 / 9, 97) }];
3662
3662
  });
3663
3663
  });
3664
3664
  });
@@ -3666,12 +3666,16 @@ v("math", function() {
3666
3666
  const initialSearchcraftStateValues = {
3667
3667
  adClientResponseItems: [],
3668
3668
  core: undefined,
3669
+ hotkey: 'k',
3670
+ hotkeyModifier: 'meta',
3669
3671
  logger: undefined,
3670
3672
  facetPathsForIndexFields: {},
3673
+ initialQuery: '',
3674
+ initialSearchClientResponseItems: [],
3671
3675
  isPopoverVisible: false,
3672
3676
  isSearchInProgress: false,
3673
- searchTerm: '',
3674
3677
  rangeValueForIndexFields: {},
3678
+ searchTerm: '',
3675
3679
  searchMode: 'fuzzy',
3676
3680
  searchClientResponseItems: [],
3677
3681
  searchResponseTimeTaken: undefined,
@@ -3680,37 +3684,47 @@ const initialSearchcraftStateValues = {
3680
3684
  searchResultsPerPage: 20,
3681
3685
  searchResultsPage: 1,
3682
3686
  sortType: 'asc',
3687
+ // Callbacks
3688
+ afterInit: () => { },
3683
3689
  };
3684
- const searchcraftStore = zustand.createStore((set, get) => {
3690
+ const searchcraftStore = zustand.createStore((_set, get) => {
3685
3691
  const functions = {
3686
- addFacetPathsForIndexField: (data) => set((state) => ({
3692
+ set: (state) => {
3693
+ _set(state);
3694
+ return get();
3695
+ },
3696
+ addFacetPathsForIndexField: (facetPaths) => functions.set((state) => ({
3687
3697
  facetPathsForIndexFields: {
3688
3698
  ...state.facetPathsForIndexFields,
3689
- [data.fieldName]: data,
3699
+ [facetPaths.fieldName]: facetPaths,
3690
3700
  },
3691
3701
  })),
3692
- addRangeValueForIndexField: (data) => set((state) => ({
3702
+ addRangeValueForIndexField: (rangeValue) => functions.set((state) => ({
3693
3703
  rangeValueForIndexFields: {
3694
3704
  ...state.rangeValueForIndexFields,
3695
- [data.fieldName]: data,
3705
+ [rangeValue.fieldName]: rangeValue,
3696
3706
  },
3697
3707
  })),
3698
- getSearchcraftInstance: () => {
3708
+ getSearchcraftCore: () => {
3699
3709
  const { core } = get();
3700
3710
  return core;
3701
3711
  },
3702
- initialize: (searchcraftInstance, debug = false) => {
3703
- const core = searchcraftInstance;
3712
+ init: (core, debug = false) => {
3704
3713
  const logger = debug
3705
- ? new ge({ logLevel: P.DEBUG })
3714
+ ? new pe({ logLevel: F.DEBUG })
3706
3715
  : undefined;
3707
- set({
3716
+ const state = functions.set({
3708
3717
  core,
3709
3718
  logger,
3710
- searchResultsPerPage: core.config.searchResultsPerPage || 20,
3719
+ searchResultsPerPage: core?.config.searchResultsPerPage || 20,
3720
+ });
3721
+ core?.subscribe('initialized', () => {
3722
+ if (state.afterInit) {
3723
+ state.afterInit(state);
3724
+ }
3711
3725
  });
3712
3726
  },
3713
- removeFacetPathsForIndexField: (fieldName) => set((state) => {
3727
+ removeFacetPathsForIndexField: (fieldName) => functions.set((state) => {
3714
3728
  const currentPaths = state.facetPathsForIndexFields;
3715
3729
  delete currentPaths[fieldName];
3716
3730
  return {
@@ -3719,7 +3733,7 @@ const searchcraftStore = zustand.createStore((set, get) => {
3719
3733
  },
3720
3734
  };
3721
3735
  }),
3722
- removeRangeValueForIndexField: (fieldName) => set((state) => {
3736
+ removeRangeValueForIndexField: (fieldName) => functions.set((state) => {
3723
3737
  const currentValues = state.rangeValueForIndexFields;
3724
3738
  delete currentValues[fieldName];
3725
3739
  return {
@@ -3729,19 +3743,19 @@ const searchcraftStore = zustand.createStore((set, get) => {
3729
3743
  };
3730
3744
  }),
3731
3745
  resetFacetPaths: () => {
3732
- set({
3746
+ functions.set({
3733
3747
  facetPathsForIndexFields: {},
3734
3748
  });
3735
3749
  },
3736
3750
  search: async () => {
3737
3751
  const state = get();
3738
- state.logger?.log(P.INFO, `Starting search with search term: "${state.searchTerm}"`);
3752
+ state.logger?.log(F.INFO, `Starting search with search term: "${state.searchTerm}"`);
3739
3753
  if (!state.core) {
3740
3754
  throw new Error('Searchcraft instance is not initialized.');
3741
3755
  }
3742
3756
  if (!state.searchTerm.trim()) {
3743
- state.logger?.log(P.INFO, 'No search request was made: search term was empty.');
3744
- set({
3757
+ state.logger?.log(F.INFO, 'No search request was made: search term was empty.');
3758
+ functions.set({
3745
3759
  searchClientResponseItems: [],
3746
3760
  searchResultsCount: 0,
3747
3761
  searchResultsPage: 1,
@@ -3749,32 +3763,8 @@ const searchcraftStore = zustand.createStore((set, get) => {
3749
3763
  });
3750
3764
  return;
3751
3765
  }
3752
- set({ isSearchInProgress: true });
3753
- const handleSearchcraftResponse = (response, items) => {
3754
- const facetsFromResponse = response.data.facets;
3755
- set((state) => {
3756
- return {
3757
- isSearchInProgress: false,
3758
- searchClientResponseItems: items,
3759
- searchResponseTimeTaken: response.data.time_taken || 0,
3760
- searchResultsPage:
3761
- // reset to first page when response count changes
3762
- response.data.count === state.searchResultsCount
3763
- ? state.searchResultsPage
3764
- : 1,
3765
- searchResultsCount: response.data.count || 0,
3766
- };
3767
- });
3768
- if (facetsFromResponse) {
3769
- set({ searchResponseFacetPrime: facetsFromResponse });
3770
- }
3771
- state.logger?.log(P.DEBUG, `Search results: ${JSON.stringify(items)}`);
3772
- state.logger?.log(P.DEBUG, `Facets from response: ${JSON.stringify(facetsFromResponse)}`);
3773
- };
3774
- const handleAdResponse = (adClientResponseItems) => {
3775
- set({ adClientResponseItems });
3776
- };
3777
- state.core.getItems({
3766
+ functions.set({ isSearchInProgress: true });
3767
+ state.core.getResponseItems({
3778
3768
  searchTerm: state.searchTerm,
3779
3769
  mode: state.searchMode,
3780
3770
  sort: state.sortType,
@@ -3784,15 +3774,55 @@ const searchcraftStore = zustand.createStore((set, get) => {
3784
3774
  ? state.searchResultsPerPage * (state.searchResultsPage - 1)
3785
3775
  : 0,
3786
3776
  limit: state.searchResultsPerPage,
3787
- }, handleSearchcraftResponse, handleAdResponse);
3777
+ }, functions.setSearchClientResponseItemsFromResponse, functions.setAdClientResponseItems);
3788
3778
  },
3789
- setPopoverVisibility: (isVisible) => {
3790
- set({
3791
- isPopoverVisible: isVisible,
3779
+ setAdClientResponseItems: (items) => functions.set({ adClientResponseItems: items }),
3780
+ setSearchClientResponseItemsFromResponse: (response, items) => {
3781
+ const { facets, count = 0, time_taken = 0 } = response.data;
3782
+ const state = functions.set((state) => {
3783
+ return {
3784
+ isSearchInProgress: false,
3785
+ searchClientResponseItems: items,
3786
+ searchResponseTimeTaken: time_taken,
3787
+ searchResultsPage:
3788
+ // Reset to first page when response count changes
3789
+ count === state.searchResultsCount ? state.searchResultsPage : 1,
3790
+ searchResultsCount: count,
3791
+ ...(facets && { searchResponseFacetPrime: facets }),
3792
+ };
3792
3793
  });
3794
+ state.logger?.log(F.DEBUG, `Search results: ${JSON.stringify(items)}`);
3795
+ state.logger?.log(F.DEBUG, `Facets from response: ${JSON.stringify(facets)}`);
3796
+ },
3797
+ setInitialSearchClientResponseItemsFromResponse: (response, items) => {
3798
+ const state = get();
3799
+ const { count = 0, time_taken = 0 } = response.data;
3800
+ functions.set((state) => {
3801
+ return {
3802
+ isSearchInProgress: false,
3803
+ initialSearchClientResponseItems: items,
3804
+ searchResponseTimeTaken: time_taken,
3805
+ searchResultsPage:
3806
+ // Reset to first page when response count changes
3807
+ count === state.searchResultsCount ? state.searchResultsPage : 1,
3808
+ searchResultsCount: count,
3809
+ };
3810
+ });
3811
+ state.logger?.log(F.DEBUG, `Search results: ${JSON.stringify(items)}`);
3812
+ },
3813
+ setInitialQuery: async (query) => {
3814
+ const state = functions.set({ initialQuery: query });
3815
+ state.logger?.log(F.INFO, `Starting search with query: "${state.initialQuery}"`);
3816
+ if (!state.core) {
3817
+ throw new Error('Searchcraft instance is not initialized.');
3818
+ }
3819
+ await state.core.getResponseItems(query, functions.setInitialSearchClientResponseItemsFromResponse, functions.setAdClientResponseItems);
3793
3820
  },
3794
- setSearchMode: (mode) => set({ searchMode: mode }),
3795
- setSortType: (type) => set({ sortType: type }),
3821
+ setPopoverVisibility: (isVisible) => functions.set({
3822
+ isPopoverVisible: isVisible,
3823
+ }),
3824
+ setSearchMode: (mode) => functions.set({ searchMode: mode }),
3825
+ setSortType: (type) => functions.set({ sortType: type }),
3796
3826
  setSearchTerm: (searchTerm) => {
3797
3827
  const { core } = get();
3798
3828
  if (searchTerm.length === 0) {
@@ -3801,7 +3831,7 @@ const searchcraftStore = zustand.createStore((set, get) => {
3801
3831
  /**
3802
3832
  * When a new searchTerm is set, also reset the sort type, search mode, and facet paths.
3803
3833
  */
3804
- set({
3834
+ functions.set({
3805
3835
  searchTerm,
3806
3836
  facetPathsForIndexFields: {},
3807
3837
  ...(searchTerm.trim().length === 0 && {
@@ -3810,15 +3840,23 @@ const searchcraftStore = zustand.createStore((set, get) => {
3810
3840
  }),
3811
3841
  });
3812
3842
  },
3813
- setSearchClientResponseItems: (items) => set({ searchClientResponseItems: items }),
3843
+ setSearchClientResponseItems: (items) => functions.set({ searchClientResponseItems: items }),
3844
+ setSearchResultsCount: (count) => functions.set({ searchResultsCount: count }),
3814
3845
  setSearchResultsPage: async (page) => {
3815
- set({ searchResultsPage: page });
3846
+ functions.set({ searchResultsPage: page });
3816
3847
  await functions.search();
3817
3848
  },
3818
3849
  setSearchResultsPerPage: async (perPage) => {
3819
- set({ searchResultsPerPage: perPage });
3850
+ functions.set({ searchResultsPerPage: perPage });
3820
3851
  await functions.search();
3821
3852
  },
3853
+ setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {
3854
+ const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } = initialSearchcraftStateValues;
3855
+ functions.set({
3856
+ hotkey: hotkey || initialHotkey,
3857
+ hotkeyModifier: hotkeyModifier || initialHotkeyModifier,
3858
+ });
3859
+ },
3822
3860
  };
3823
3861
  const stateObject = {
3824
3862
  ...initialSearchcraftStateValues,
@@ -3957,7 +3995,6 @@ function mergeFacetRoots(fieldName, currentRoot, incomingRoot) {
3957
3995
 
3958
3996
  /**
3959
3997
  * Given a document and a SearchResultMapping, return a mapped value from the document.
3960
- *
3961
3998
  * Applies formatting based on the values specified in the `SearchResultFieldName` values.
3962
3999
  *
3963
4000
  * @param document
@@ -3972,8 +4009,7 @@ function getDocumentValueFromSearchResultMapping(document, mapping) {
3972
4009
  if (valueFound) {
3973
4010
  switch (fieldNameDetails.dataType) {
3974
4011
  case 'date': {
3975
- // TODO: Use fieldNameDetails.DateFormatOptions to format the date
3976
- valueFound = getFormattedTimeFromNow(valueFound);
4012
+ valueFound = formatRelativeDate(valueFound, fieldNameDetails.dateFormatLocale, fieldNameDetails.dateFormatOptions);
3977
4013
  break;
3978
4014
  }
3979
4015
  case 'number': {
@@ -3988,6 +4024,12 @@ function getDocumentValueFromSearchResultMapping(document, mapping) {
3988
4024
  .join(mapping.delimiter || ' ');
3989
4025
  }
3990
4026
  }
4027
+ /**
4028
+ * Convert different units of time to milliseconds.
4029
+ *
4030
+ * @param unit - The unit of time
4031
+ * @returns {number}
4032
+ */
3991
4033
  function getMillis(unit) {
3992
4034
  const millisInHour = 60 * 60 * 1000;
3993
4035
  const millisInDay = 24 * millisInHour;
@@ -4006,34 +4048,51 @@ function getMillis(unit) {
4006
4048
  return 3600000;
4007
4049
  }
4008
4050
  }
4051
+ /**
4052
+ * Format a number with commas as thousands separators.
4053
+ *
4054
+ * @param number - The number to be formatted.
4055
+ * @returns {string} - The formatted number as a string.
4056
+ */
4009
4057
  function formatNumberWithCommas(number) {
4010
4058
  return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
4011
4059
  }
4012
4060
  /**
4013
- * Given a timestamp value, returns a formatted time string for the time
4014
- * since now.
4061
+ * Format a date or date string. The string is formatted relative to today's date
4062
+ * (e.g. 2 days ago) until the date range is greater than a month.
4015
4063
  *
4016
- * @param timestamp
4017
- * @returns {string} Formatted string value
4064
+ * @param dateInput - The date to be formatted.
4065
+ * @param locale - The language used for formatting the date.
4066
+ * @param options - The non-default options used for formatting the date.
4067
+ * @returns {string} - The formatted date as a string.
4018
4068
  */
4019
- function getFormattedTimeFromNow(timestamp) {
4069
+ function formatRelativeDate(dateInput, locale = 'en-US', options = {
4070
+ day: 'numeric',
4071
+ month: 'long',
4072
+ year: 'numeric',
4073
+ }) {
4074
+ const date = new Date(dateInput);
4020
4075
  const now = new Date();
4021
- const inputTime = new Date(timestamp);
4022
- const diffInSeconds = Math.floor((now.getTime() - inputTime.getTime()) / 1000);
4023
- const minutes = Math.floor(diffInSeconds / 60);
4024
- const hours = Math.floor(minutes / 60);
4025
- const days = Math.floor(hours / 24);
4026
- const years = Math.floor(days / 365);
4027
- if (minutes < 60) {
4028
- return `${minutes}m ago`;
4029
- }
4030
- if (hours < 24) {
4031
- return `${hours}h ago`;
4032
- }
4033
- if (days < 365) {
4034
- return `${days}d ago`;
4076
+ const diffMillis = now.getTime() - date.getTime();
4077
+ const oneMonthInMillis = 30 * 24 * 60 * 60 * 1000; // Approx. 1 month in ms
4078
+ if (diffMillis < oneMonthInMillis) {
4079
+ const diffSeconds = Math.trunc(diffMillis / 1000);
4080
+ const diffMinutes = Math.trunc(diffSeconds / 60);
4081
+ const diffHours = Math.trunc(diffMinutes / 60);
4082
+ const diffDays = Math.trunc(diffHours / 24);
4083
+ const relativeTimeFormat = new Intl.RelativeTimeFormat(locale, options);
4084
+ if (diffDays >= 1) {
4085
+ return relativeTimeFormat.format(-diffDays, 'day');
4086
+ }
4087
+ if (diffHours >= 1) {
4088
+ return relativeTimeFormat.format(-diffHours, 'hour');
4089
+ }
4090
+ if (diffMinutes >= 1) {
4091
+ return relativeTimeFormat.format(-diffMinutes, 'minute');
4092
+ }
4093
+ return relativeTimeFormat.format(0, 'second');
4035
4094
  }
4036
- return `${years}y ago`;
4095
+ return new Intl.DateTimeFormat(locale, options).format(date);
4037
4096
  }
4038
4097
 
4039
4098
  var purify = {exports: {}};
@@ -5533,13 +5592,13 @@ class SearchcraftFacetList {
5533
5592
  const isChildSelected = facetChild.children
5534
5593
  ? facetChild.children?.some((child) => this.selectedPaths[child.path])
5535
5594
  : false;
5536
- 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: {
5595
+ 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: {
5537
5596
  display: this.selectedPaths[facetChild.path]
5538
5597
  ? 'flex'
5539
5598
  : 'none',
5540
- } }, hAsync("input", { class: 'searchcraft-facet-list-checkbox-input searchcraft-facet-list-child-checkbox-input', checked: this.selectedPaths[grandchild.path], onChange: (_event) => {
5599
+ } }, 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) => {
5541
5600
  this.handleCheckboxChange(grandchild.path);
5542
- }, 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))))))));
5601
+ }, 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))))))));
5543
5602
  })));
5544
5603
  }
5545
5604
  static get cmpMeta() { return {
@@ -5550,12 +5609,7 @@ class SearchcraftFacetList {
5550
5609
  "baseFacetRoot": [32],
5551
5610
  "facetRoot": [32],
5552
5611
  "selectedPaths": [32],
5553
- "lastTimeTaken": [32],
5554
- "hasNewSearchTerm": [32],
5555
- "lastSearchTerm": [32],
5556
- "lastSearchMode": [32],
5557
- "lastSortType": [32],
5558
- "unsubscribe": [32]
5612
+ "lastTimeTaken": [32]
5559
5613
  },
5560
5614
  "$listeners$": undefined,
5561
5615
  "$lazyBundleId$": "-",
@@ -5566,12 +5620,13 @@ class SearchcraftFacetList {
5566
5620
  /**
5567
5621
  * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
5568
5622
  *
5569
- * @import
5623
+ * @react-import
5570
5624
  * ```jsx
5571
- * // react
5572
5625
  * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
5626
+ * ```
5573
5627
  *
5574
- * // vue
5628
+ * @vue-import
5629
+ * ```jsx
5575
5630
  * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
5576
5631
  * ```
5577
5632
  *
@@ -5659,7 +5714,7 @@ class SearchcraftFilterPanel {
5659
5714
  * Iterate through `items` and render them based on `type`
5660
5715
  */
5661
5716
  render() {
5662
- return (hAsync("div", { key: '6d3779476496055a83529c39cd9908a46f404e02', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {
5717
+ return (hAsync("div", { key: '22344fe9d0554894bff8c2c6afe12661bf7f20d0', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {
5663
5718
  switch (filterItem.type) {
5664
5719
  case 'dateRange': {
5665
5720
  const item = filterItem;
@@ -5718,12 +5773,13 @@ class SearchcraftFilterPanel {
5718
5773
  * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
5719
5774
  * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
5720
5775
  *
5721
- * @import
5776
+ * @react-import
5722
5777
  * ```jsx
5723
- * // react
5724
5778
  * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
5779
+ * ```
5725
5780
  *
5726
- * // vue
5781
+ * @vue-import
5782
+ * ```jsx
5727
5783
  * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
5728
5784
  * ```
5729
5785
  *
@@ -5785,20 +5841,31 @@ class SearchcraftInputForm {
5785
5841
  searchTerm = '';
5786
5842
  error = false;
5787
5843
  core;
5788
- searchStore = searchcraftStore.getState();
5844
+ searchcraftStore = searchcraftStore.getState();
5845
+ unsubscribe = () => { };
5789
5846
  init() {
5790
5847
  if (this.core) {
5791
- this.searchStore.initialize(this.core);
5848
+ this.searchcraftStore.init(this.core);
5792
5849
  this.inputInit?.emit();
5793
5850
  }
5794
5851
  }
5795
- connectedCallback() {
5852
+ onCoreChange() {
5796
5853
  this.init();
5797
5854
  }
5798
- onCoreChange() {
5855
+ connectedCallback() {
5799
5856
  this.init();
5800
5857
  }
5801
- handleOnInput = (event) => {
5858
+ componentDidLoad() {
5859
+ this.unsubscribe = searchcraftStore.subscribe((state) => {
5860
+ this.searchTerm = state.searchTerm;
5861
+ this.inputValue = state.searchTerm;
5862
+ });
5863
+ }
5864
+ disconnectedCallback() {
5865
+ this.handleReset();
5866
+ this.unsubscribe?.();
5867
+ }
5868
+ handleInput = (event) => {
5802
5869
  const input = event.target;
5803
5870
  this.inputValue = input.value;
5804
5871
  if (!this.autoSearch) {
@@ -5806,31 +5873,32 @@ class SearchcraftInputForm {
5806
5873
  }
5807
5874
  this.performSearch(input.value);
5808
5875
  };
5809
- performSearch = async (value) => {
5810
- if (value === searchcraftStore.getState().searchTerm) {
5876
+ performSearch = async (searchTerm) => {
5877
+ if (searchTerm === this.searchTerm) {
5811
5878
  return;
5812
5879
  }
5813
- this.searchTerm = value.trim();
5880
+ this.searchcraftStore.setSearchTerm(searchTerm.trim());
5814
5881
  this.error = false;
5815
- this.searchStore.setSearchTerm(this.searchTerm);
5816
5882
  try {
5817
- await this.searchStore.search();
5883
+ await this.searchcraftStore.search();
5818
5884
  }
5819
5885
  catch (error) {
5820
- console.log(error);
5886
+ console.error(`Search for ${searchTerm} failed:`, error);
5821
5887
  this.error = true;
5822
5888
  }
5823
5889
  };
5824
- handleClearInput = () => {
5825
- this.inputValue = '';
5826
- this.searchTerm = '';
5827
- this.searchStore.setSearchTerm('');
5828
- this.searchStore.setSearchClientResponseItems([]);
5890
+ handleReset = () => {
5891
+ this.searchcraftStore.setSearchResultsCount(0);
5892
+ this.searchcraftStore.setSearchTerm('');
5893
+ this.searchcraftStore.setSearchClientResponseItems([]);
5829
5894
  this.error = false;
5830
5895
  };
5896
+ handleClearInput = () => {
5897
+ this.handleReset();
5898
+ };
5831
5899
  handleFormSubmit = async (event) => {
5832
5900
  event.preventDefault();
5833
- await this.performSearch(this.searchTerm);
5901
+ await this.performSearch(this.inputValue);
5834
5902
  };
5835
5903
  render() {
5836
5904
  const isShowingClearButton = this.inputValue.length > 0;
@@ -5843,9 +5911,9 @@ class SearchcraftInputForm {
5843
5911
  const inputGridStyles = {
5844
5912
  gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',
5845
5913
  };
5846
- 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) => {
5847
- this.handleOnInput(event);
5848
- }, 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' }))))))));
5914
+ 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) => {
5915
+ this.handleInput(event);
5916
+ }, 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' }))))))));
5849
5917
  }
5850
5918
  static get watchers() { return {
5851
5919
  "core": ["onCoreChange"]
@@ -5908,12 +5976,13 @@ class SearchcraftInputLabel {
5908
5976
  /**
5909
5977
  * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
5910
5978
  *
5911
- * @import
5979
+ * @react-import
5912
5980
  * ```jsx
5913
- * // react
5914
5981
  * import { SearchcraftPagination } from "@searchcraft/react-sdk";
5982
+ * ```
5915
5983
  *
5916
- * // vue
5984
+ * @vue-import
5985
+ * ```jsx
5917
5986
  * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
5918
5987
  * ```
5919
5988
  *
@@ -6042,32 +6111,51 @@ class SearchcraftPagination {
6042
6111
  /**
6043
6112
  * Renders a button which, when clicked, turns on popover visibility.
6044
6113
  *
6045
- * @import
6114
+ * @react-import
6046
6115
  * ```jsx
6047
- * // react
6048
6116
  * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
6117
+ * ````
6049
6118
  *
6050
- * // vue
6119
+ * @vue-import
6120
+ * ```jsx
6051
6121
  * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
6052
6122
  * ```
6053
6123
  *
6054
6124
  * @js-example
6055
6125
  * ```html
6126
+ * <!-- index.html -->
6056
6127
  * <searchcraft-popover-button>
6057
6128
  * Open popover
6058
6129
  * </searchcraft-popover-button>
6059
6130
  * ```
6060
6131
  *
6132
+ * ```js
6133
+ * // index.js
6134
+ * const popoverButton = document.querySelector('searchcraft-popover-button');
6135
+ *
6136
+ * popoverButton.template = ({ isPopoverVisible }, { html }) => html`
6137
+ * <span>Click me</span>
6138
+ * `;
6139
+ * ```
6140
+ *
6061
6141
  * @react-example
6062
6142
  * ```jsx
6063
- * <SearchcraftPopoverButton>
6143
+ * <SearchcraftPopoverButton
6144
+ * template={({ isPopoverVisible }, { html }) => html`
6145
+ * <span>Click me</span>
6146
+ * `}
6147
+ * >
6064
6148
  * Open popover
6065
6149
  * </SearchcraftPopoverButton>
6066
6150
  * ```
6067
6151
  *
6068
6152
  * @vue-example
6069
6153
  * ```jsx
6070
- * <SearchcraftPopoverButton>
6154
+ * <SearchcraftPopoverButton
6155
+ * :template={({ isPopoverVisible }, { html }) => html`
6156
+ * <span>Click me</span>
6157
+ * `}
6158
+ * >
6071
6159
  * Open popover
6072
6160
  * </SearchcraftPopoverButton>
6073
6161
  * ```
@@ -6076,16 +6164,146 @@ class SearchcraftPopoverButton {
6076
6164
  constructor(hostRef) {
6077
6165
  registerInstance(this, hostRef);
6078
6166
  }
6167
+ /**
6168
+ * A callback function responsible for rendering the button contents.
6169
+ */
6170
+ template;
6171
+ /**
6172
+ * The type of popover button to render.
6173
+ */
6174
+ type;
6175
+ hotkey;
6176
+ hotkeyModifier;
6177
+ hotkeyModifierSymbol;
6178
+ isPopoverVisible;
6179
+ userAgent;
6180
+ unsubscribe = () => { };
6079
6181
  handleOnClick() {
6080
6182
  searchcraftStore.getState().setPopoverVisibility(true);
6081
6183
  }
6184
+ componentDidLoad() {
6185
+ const state = searchcraftStore.getState();
6186
+ this.hotkey = state.hotkey.toUpperCase();
6187
+ this.hotkeyModifier = state.hotkeyModifier;
6188
+ this.isPopoverVisible = state.isPopoverVisible;
6189
+ this.userAgent = this.setUserAgent();
6190
+ this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();
6191
+ this.unsubscribe = searchcraftStore.subscribe((state) => {
6192
+ this.hotkey = state.hotkey.toUpperCase();
6193
+ this.hotkeyModifier = state.hotkeyModifier;
6194
+ this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();
6195
+ });
6196
+ }
6197
+ disconnectedCallback() {
6198
+ this.unsubscribe?.();
6199
+ }
6200
+ setUserAgent() {
6201
+ const userAgent = navigator.userAgent.toLowerCase();
6202
+ switch (true) {
6203
+ case userAgent.includes('windows'):
6204
+ return 'window';
6205
+ case userAgent.includes('mac'):
6206
+ return 'mac';
6207
+ default:
6208
+ return 'other';
6209
+ }
6210
+ }
6211
+ renderOptionSymbol = () => {
6212
+ 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' })));
6213
+ };
6214
+ renderCtrlSymbol = () => {
6215
+ 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' })));
6216
+ };
6217
+ renderWindowsMetaSymbol = () => {
6218
+ 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' })));
6219
+ };
6220
+ renderMacMetaSymbol = () => {
6221
+ 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' })));
6222
+ };
6223
+ setHotkeyModifierSymbol() {
6224
+ switch (this.hotkeyModifier) {
6225
+ case 'ctrl':
6226
+ return this.userAgent === 'windows'
6227
+ ? this.renderCtrlSymbol()
6228
+ : this.renderMacMetaSymbol();
6229
+ case 'alt':
6230
+ case 'option':
6231
+ return this.renderOptionSymbol();
6232
+ default:
6233
+ return this.userAgent === 'windows'
6234
+ ? this.renderWindowsMetaSymbol()
6235
+ : this.renderMacMetaSymbol();
6236
+ }
6237
+ }
6238
+ renderSkeuomorphicSlot() {
6239
+ 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)))));
6240
+ }
6241
+ renderSlot() {
6242
+ switch (this.type) {
6243
+ case 'skeuomorphic':
6244
+ return this.renderSkeuomorphicSlot();
6245
+ default:
6246
+ return (hAsync("div", null, hAsync("slot", null)));
6247
+ }
6248
+ }
6082
6249
  render() {
6083
- return (hAsync("button", { key: '878f61ad9c93a3900e97f459f33cf526e647e583', class: 'searchcraft-popover-button', onClick: this.handleOnClick.bind(this), type: 'button' }, hAsync("slot", { key: 'c248779f08b940fca9800375b8814d6fc49f3715' })));
6250
+ return (hAsync("button", { key: '74e36b0593ba2cbb03f5ecff1434bc7056bf0db0', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined'
6251
+ ? this.template({ isPopoverVisible: this.isPopoverVisible }, { html })
6252
+ : undefined, onClick: this.handleOnClick.bind(this), type: 'button' }, typeof this.template !== 'undefined'
6253
+ ? undefined
6254
+ : this.type
6255
+ ? this.renderSlot()
6256
+ : 'Open Popover'));
6084
6257
  }
6085
6258
  static get cmpMeta() { return {
6086
6259
  "$flags$": 4,
6087
6260
  "$tagName$": "searchcraft-popover-button",
6088
- "$members$": undefined,
6261
+ "$members$": {
6262
+ "template": [16],
6263
+ "type": [1],
6264
+ "hotkey": [32],
6265
+ "hotkeyModifier": [32],
6266
+ "hotkeyModifierSymbol": [32],
6267
+ "isPopoverVisible": [32],
6268
+ "userAgent": [32]
6269
+ },
6270
+ "$listeners$": undefined,
6271
+ "$lazyBundleId$": "-",
6272
+ "$attrsToReflect$": []
6273
+ }; }
6274
+ }
6275
+
6276
+ /**
6277
+ * Renders the footer for the searchcraft-popover-form.
6278
+ *
6279
+ * @internal
6280
+ */
6281
+ class SearchcraftPopoverFooter {
6282
+ constructor(hostRef) {
6283
+ registerInstance(this, hostRef);
6284
+ }
6285
+ searchResultsCount;
6286
+ unsubscribe = () => { };
6287
+ componentDidLoad() {
6288
+ this.searchResultsCount = searchcraftStore.getState().searchResultsCount;
6289
+ this.unsubscribe = searchcraftStore.subscribe((state) => {
6290
+ this.searchResultsCount = state.searchResultsCount;
6291
+ });
6292
+ }
6293
+ disconnectedCallback() {
6294
+ this.unsubscribe?.();
6295
+ }
6296
+ render() {
6297
+ return (hAsync("footer", { key: 'e1344ae185ef1b8a83bb69ba88e2952ab1c75e70', class: 'searchcraft-popover-footer' }, hAsync("p", { key: '51874f4ce490e4f164b999e8c6f89710702e73bd', class: 'searchcraft-popover-footer-results-info' }, this.searchResultsCount
6298
+ ? `${formatNumberWithCommas(this.searchResultsCount)} Results Found`
6299
+ : ' '), 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' })))));
6300
+ }
6301
+ static get cmpMeta() { return {
6302
+ "$flags$": 0,
6303
+ "$tagName$": "searchcraft-popover-footer",
6304
+ "$members$": {
6305
+ "searchResultsCount": [32]
6306
+ },
6089
6307
  "$listeners$": undefined,
6090
6308
  "$lazyBundleId$": "-",
6091
6309
  "$attrsToReflect$": []
@@ -6095,12 +6313,13 @@ class SearchcraftPopoverButton {
6095
6313
  /**
6096
6314
  * 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.
6097
6315
  *
6098
- * @import
6316
+ * @react-import
6099
6317
  * ```jsx
6100
- * // react
6101
6318
  * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
6319
+ * ```
6102
6320
  *
6103
- * // vue
6321
+ * @vue-import
6322
+ * ```jsx
6104
6323
  * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
6105
6324
  * ```
6106
6325
  *
@@ -6186,6 +6405,10 @@ class SearchcraftPopoverForm {
6186
6405
  this.searchResultsPage = state.searchResultsPage;
6187
6406
  this.searchResultsPerPage = state.searchResultsPerPage;
6188
6407
  });
6408
+ // Set hotkey and hotkeyModifier in state.
6409
+ searchcraftStore
6410
+ .getState()
6411
+ .setHotKeyAndHotKeyModifier(this.hotkey, this.hotkeyModifier);
6189
6412
  }
6190
6413
  disconnectedCallback() {
6191
6414
  this.unsubscribe?.();
@@ -6231,7 +6454,7 @@ class SearchcraftPopoverForm {
6231
6454
  }
6232
6455
  };
6233
6456
  handleInputInit = () => {
6234
- const input = this.hostElement.querySelector('.searchcraft-input');
6457
+ const input = this.hostElement.querySelector('.searchcraft-input-form-input');
6235
6458
  input?.focus();
6236
6459
  };
6237
6460
  /**
@@ -6286,7 +6509,7 @@ class SearchcraftPopoverForm {
6286
6509
  * @param direction
6287
6510
  */
6288
6511
  focusOnNextListItem(direction) {
6289
- const listItems = Array.from(document.querySelectorAll('a.searchcraft-popover-form-list-item')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);
6512
+ const listItems = Array.from(document.querySelectorAll('.searchcraft-popover-list-item-link')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);
6290
6513
  const currentIndex = listItems.indexOf(document.activeElement);
6291
6514
  if (direction === 'ArrowDown') {
6292
6515
  listItems[(currentIndex + 1) % listItems.length]?.focus();
@@ -6314,22 +6537,22 @@ class SearchcraftPopoverForm {
6314
6537
  }
6315
6538
  renderInlinePopover() {
6316
6539
  const isListViewVisible = this.hasResultsToShow && this.isFocused;
6317
- const popoverFormClassNames = classNames('searchcraft-popover-form searchcraft-popover-form-inline', {
6318
- 'searchcraft-popover-form-active': isListViewVisible,
6319
- });
6320
- 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 }))))));
6540
+ return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-inline', {
6541
+ 'searchcraft-popover-form-active': isListViewVisible,
6542
+ }) }, 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)))));
6321
6543
  }
6322
6544
  renderModalPopover() {
6323
6545
  if (this.isPopoverVisibleInState) {
6324
- const popoverFormClassNames = classNames('searchcraft-popover-form', {
6325
- 'searchcraft-popover-form-active': this.hasResultsToShow,
6326
- });
6327
- 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 }))))));
6546
+ return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-modal', {
6547
+ 'searchcraft-popover-form-active': this.hasResultsToShow,
6548
+ }) }, 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))));
6328
6549
  }
6329
6550
  }
6330
6551
  renderFullscreenPopover() {
6331
6552
  if (this.isPopoverVisibleInState) {
6332
- 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 })))));
6553
+ return (hAsync("div", { class: classNames('searchcraft-popover-form searchcraft-popover-form-fullscreen', {
6554
+ 'searchcraft-popover-form-active': this.hasResultsToShow,
6555
+ }) }, 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)));
6333
6556
  }
6334
6557
  }
6335
6558
  render() {
@@ -6382,16 +6605,16 @@ class SearchcraftPopoverListItem {
6382
6605
  popoverResultMappings;
6383
6606
  /** The document position relative to the search results (For Measure) */
6384
6607
  documentPosition = 0;
6608
+ title;
6609
+ subtitle;
6385
6610
  href;
6386
- imageSrc;
6611
+ imageSource;
6387
6612
  imageAlt;
6388
- titleContent;
6389
- subtitleContent;
6390
6613
  mapValuesFromDocument(document) {
6391
- this.titleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);
6392
- this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);
6614
+ this.title = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);
6615
+ this.subtitle = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);
6393
6616
  this.href = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.href);
6394
- this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);
6617
+ this.imageSource = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);
6395
6618
  this.imageAlt = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageAlt);
6396
6619
  }
6397
6620
  connectedCallback() {
@@ -6402,12 +6625,12 @@ class SearchcraftPopoverListItem {
6402
6625
  disconnectedCallback() { }
6403
6626
  handleLinkClick = () => {
6404
6627
  const state = searchcraftStore.getState();
6405
- const searchcraft = state.getSearchcraftInstance();
6406
- if (searchcraft) {
6628
+ const core = state.getSearchcraftCore();
6629
+ if (core) {
6407
6630
  const document_position = this.documentPosition;
6408
6631
  const search_term = state.searchTerm;
6409
6632
  const number_of_documents = state.searchClientResponseItems.length || 0;
6410
- searchcraft.measureClient?.sendMeasureEvent('document_clicked', {
6633
+ core.measureClient?.sendMeasureEvent('document_clicked', {
6411
6634
  document_position,
6412
6635
  number_of_documents,
6413
6636
  search_term,
@@ -6415,7 +6638,7 @@ class SearchcraftPopoverListItem {
6415
6638
  }
6416
6639
  };
6417
6640
  render() {
6418
- 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))));
6641
+ 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))))));
6419
6642
  }
6420
6643
  static get cmpMeta() { return {
6421
6644
  "$flags$": 0,
@@ -6424,11 +6647,11 @@ class SearchcraftPopoverListItem {
6424
6647
  "item": [16],
6425
6648
  "popoverResultMappings": [16],
6426
6649
  "documentPosition": [2, "document-position"],
6650
+ "title": [32],
6651
+ "subtitle": [32],
6427
6652
  "href": [32],
6428
- "imageSrc": [32],
6429
- "imageAlt": [32],
6430
- "titleContent": [32],
6431
- "subtitleContent": [32]
6653
+ "imageSource": [32],
6654
+ "imageAlt": [32]
6432
6655
  },
6433
6656
  "$listeners$": undefined,
6434
6657
  "$lazyBundleId$": "-",
@@ -6509,7 +6732,7 @@ class SearchcraftPopoverListItemAd {
6509
6732
  if (!item.admAd) {
6510
6733
  return;
6511
6734
  }
6512
- 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)))));
6735
+ 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))))));
6513
6736
  }
6514
6737
  renderCustomAd() {
6515
6738
  const templateRenderFunction = this.core?.config?.customAdTemplate;
@@ -6699,12 +6922,13 @@ class SearchcraftPopoverListView {
6699
6922
  /**
6700
6923
  * This web component is designed to display the number of results returned from a search query.
6701
6924
  *
6702
- * @import
6925
+ * @react-import
6703
6926
  * ```jsx
6704
- * // react
6705
6927
  * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
6928
+ * ```
6706
6929
  *
6707
- * // vue
6930
+ * @vue-import
6931
+ * ```jsx
6708
6932
  * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
6709
6933
  * ```
6710
6934
  *
@@ -6730,6 +6954,7 @@ class SearchcraftPopoverListView {
6730
6954
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
6731
6955
  * `}
6732
6956
  * />
6957
+ * ```
6733
6958
  *
6734
6959
  * @vue-example
6735
6960
  * ```jsx
@@ -6738,6 +6963,7 @@ class SearchcraftPopoverListView {
6738
6963
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
6739
6964
  * `}
6740
6965
  * />
6966
+ * ```
6741
6967
  */
6742
6968
  class SearchcraftResultsInfo {
6743
6969
  constructor(hostRef) {
@@ -6745,13 +6971,6 @@ class SearchcraftResultsInfo {
6745
6971
  }
6746
6972
  /**
6747
6973
  * A callback function responsible for rendering the results info.
6748
- *
6749
- * @example
6750
- * ```ts
6751
- * resultsInfo.template = html`
6752
- * ${range[0]}-${range[1]} of ${count} results in ${responseTime}ms
6753
- * `;
6754
- * ```
6755
6974
  */
6756
6975
  template;
6757
6976
  // store vars
@@ -6844,6 +7063,7 @@ class SearchcraftSearchResult {
6844
7063
  */
6845
7064
  template;
6846
7065
  templateHtml;
7066
+ get hostElement() { return getElement(this); }
6847
7067
  connectedCallback() {
6848
7068
  if (this.item) {
6849
7069
  try {
@@ -6852,18 +7072,42 @@ class SearchcraftSearchResult {
6852
7072
  });
6853
7073
  }
6854
7074
  catch (error) {
6855
- console.error(`Invalid search result template: ${error}`);
7075
+ console.error('Invalid search result template:', error);
6856
7076
  }
6857
7077
  }
6858
7078
  }
7079
+ handleResultContainerClick = (event) => {
7080
+ const state = searchcraftStore.getState();
7081
+ const core = state.getSearchcraftCore();
7082
+ if (!event.target) {
7083
+ return;
7084
+ }
7085
+ const target = event.target;
7086
+ const link = target.closest('a');
7087
+ if (!link ||
7088
+ !this.hostElement?.contains(link) ||
7089
+ !core ||
7090
+ !core.measureClient) {
7091
+ return;
7092
+ }
7093
+ const document_position = this.documentPosition;
7094
+ const search_term = state.searchTerm;
7095
+ const number_of_documents = state.searchClientResponseItems.length || 0;
7096
+ core.measureClient.sendMeasureEvent('document_clicked', {
7097
+ document_position,
7098
+ number_of_documents,
7099
+ search_term,
7100
+ });
7101
+ };
7102
+ handleKeyDown = () => { };
6859
7103
  render() {
6860
7104
  if (!this.item) {
6861
7105
  return;
6862
7106
  }
6863
7107
  if (typeof this.template === 'undefined') {
6864
- 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)))));
7108
+ 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)))));
6865
7109
  }
6866
- return (hAsync("div", { class: 'searchcraft-search-result', innerHTML: this.templateHtml }));
7110
+ return (hAsync("div", { class: 'searchcraft-search-result', innerHTML: this.templateHtml, onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }));
6867
7111
  }
6868
7112
  static get cmpMeta() { return {
6869
7113
  "$flags$": 0,
@@ -6885,12 +7129,13 @@ class SearchcraftSearchResult {
6885
7129
  * 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.
6886
7130
  *
6887
7131
  *
6888
- * @import
7132
+ * @react-import
6889
7133
  * ```jsx
6890
- * // react
6891
7134
  * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
7135
+ * ```
6892
7136
  *
6893
- * // vue
7137
+ * @vue-import
7138
+ * ```jsx
6894
7139
  * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
6895
7140
  * ```
6896
7141
  *
@@ -6923,7 +7168,7 @@ class SearchcraftSearchResult {
6923
7168
  * />
6924
7169
  * ```
6925
7170
  *
6926
- * @vue-example
7171
+ * @vue-example
6927
7172
  * ```jsx
6928
7173
  * <SearchcraftSearchResults
6929
7174
  * adInterval={4}
@@ -6938,37 +7183,50 @@ class SearchcraftSearchResults {
6938
7183
  constructor(hostRef) {
6939
7184
  registerInstance(this, hostRef);
6940
7185
  }
7186
+ /**
7187
+ * A query that will appears when the component initializes or the search term is ''..
7188
+ */
7189
+ initialQuery;
6941
7190
  /**
6942
7191
  * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.
6943
7192
  */
6944
7193
  template;
6945
- searchTerm = '';
6946
- searchClientResponseItems;
6947
7194
  adClientResponseItems = [];
6948
- searchResultsPerPage;
6949
- searchResultsPage;
6950
- isSearchInProgress = true;
6951
7195
  config;
7196
+ initialSearchClientResponseItems;
7197
+ isSearchInProgress = true;
7198
+ searchClientResponseItems;
7199
+ searchResultsPage;
7200
+ searchResultsPerPage;
7201
+ searchTerm = '';
6952
7202
  unsubscribe = () => { };
6953
7203
  componentDidLoad() {
7204
+ const state = searchcraftStore.getState();
7205
+ this.handleStateChange(state);
7206
+ this.searchClientResponseItems = state.searchClientResponseItems;
7207
+ this.searchTerm = state.searchTerm;
7208
+ this.config = state.core?.config;
7209
+ state.afterInit = (state) => {
7210
+ if (this.initialQuery) {
7211
+ state.setInitialQuery(this.initialQuery);
7212
+ }
7213
+ };
6954
7214
  this.unsubscribe = searchcraftStore.subscribe((state) => this.handleStateChange(state));
6955
- const currentState = searchcraftStore.getState();
6956
- this.handleStateChange(currentState);
6957
- this.searchClientResponseItems = currentState.searchClientResponseItems;
6958
- this.searchTerm = currentState.searchTerm;
6959
- this.config = currentState.core?.config;
6960
7215
  }
6961
7216
  disconnectedCallback() {
6962
7217
  this.unsubscribe?.();
6963
7218
  }
6964
7219
  handleStateChange(state) {
6965
- this.searchClientResponseItems = [...state.searchClientResponseItems];
6966
7220
  this.adClientResponseItems = [...state.adClientResponseItems];
6967
- this.searchTerm = state.searchTerm;
6968
- this.searchResultsPage = state.searchResultsPage;
6969
- this.searchResultsPerPage = state.searchResultsPerPage;
6970
7221
  this.config = state.core?.config;
7222
+ this.initialSearchClientResponseItems = [
7223
+ ...state.initialSearchClientResponseItems,
7224
+ ];
6971
7225
  this.isSearchInProgress = state.isSearchInProgress;
7226
+ this.searchClientResponseItems = [...state.searchClientResponseItems];
7227
+ this.searchResultsPage = state.searchResultsPage;
7228
+ this.searchResultsPerPage = state.searchResultsPerPage;
7229
+ this.searchTerm = state.searchTerm;
6972
7230
  }
6973
7231
  renderEmptyState() {
6974
7232
  return (hAsync("div", { class: 'searchcraft-search-results-empty-state' }, hAsync("slot", { name: 'empty-search' })));
@@ -6977,7 +7235,12 @@ class SearchcraftSearchResults {
6977
7235
  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."))));
6978
7236
  }
6979
7237
  renderWithADMAds() {
6980
- 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 })))));
7238
+ const items = this.searchClientResponseItems?.length
7239
+ ? this.searchClientResponseItems
7240
+ : this.initialSearchClientResponseItems?.length
7241
+ ? this.initialSearchClientResponseItems
7242
+ : [];
7243
+ 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 })))));
6981
7244
  }
6982
7245
  renderWithCustomAds() {
6983
7246
  const itemsToRender = [];
@@ -6985,16 +7248,20 @@ class SearchcraftSearchResults {
6985
7248
  const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;
6986
7249
  const adStartQuantity = this.config?.customAdStartQuantity || 0;
6987
7250
  const adEndQuantity = this.config?.customAdEndQuantity || 0;
6988
- const searchItems = this.searchClientResponseItems || [];
7251
+ const items = this.searchClientResponseItems?.length
7252
+ ? this.searchClientResponseItems
7253
+ : this.initialSearchClientResponseItems?.length
7254
+ ? this.initialSearchClientResponseItems
7255
+ : [];
6989
7256
  // Renders ads at beginning
6990
7257
  for (let n = 0; n < adStartQuantity; n++) {
6991
7258
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Custom', adContainerId: nanoid(), key: `${n}-ad` }));
6992
7259
  }
6993
7260
  // Renders search results + interstitial ads
6994
- searchItems.forEach((item, index) => {
7261
+ items.forEach((item, index) => {
6995
7262
  if (interstitialInterval &&
6996
7263
  index % interstitialInterval === 0 &&
6997
- index + interstitialInterval < searchItems.length &&
7264
+ index + interstitialInterval < items.length &&
6998
7265
  index >= interstitialInterval) {
6999
7266
  for (let n = 0; n < interstitialQuantity; n++) {
7000
7267
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Custom', adContainerId: nanoid(), key: `${item.id}-ad-${n}` }));
@@ -7015,16 +7282,20 @@ class SearchcraftSearchResults {
7015
7282
  const interstitialQuantity = this.config?.nativoAdInterstitialQuantity || 1;
7016
7283
  const adStartQuantity = this.config?.nativoAdStartQuantity || 0;
7017
7284
  const adEndQuantity = this.config?.nativoAdEndQuantity || 0;
7018
- const searchItems = this.searchClientResponseItems || [];
7285
+ const items = this.searchClientResponseItems?.length
7286
+ ? this.searchClientResponseItems
7287
+ : this.initialSearchClientResponseItems?.length
7288
+ ? this.initialSearchClientResponseItems
7289
+ : [];
7019
7290
  // Renders ads at beginning
7020
7291
  for (let n = 0; n < adStartQuantity; n++) {
7021
7292
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Nativo', adContainerId: nanoid(), key: `${n}-ad` }));
7022
7293
  }
7023
7294
  // Renders search results + interstitial ads
7024
- searchItems.forEach((item, index) => {
7295
+ items.forEach((item, index) => {
7025
7296
  if (interstitialInterval &&
7026
7297
  (index + interstitialStartIndex) % interstitialInterval === 0 &&
7027
- index + interstitialInterval < searchItems.length &&
7298
+ index + interstitialInterval < items.length &&
7028
7299
  index >= interstitialInterval) {
7029
7300
  for (let n = 0; n < interstitialQuantity; n++) {
7030
7301
  itemsToRender.push(hAsync("searchcraft-ad", { adSource: 'Nativo', adContainerId: nanoid(), key: `${item.id}-ad-${n}` }));
@@ -7039,14 +7310,23 @@ class SearchcraftSearchResults {
7039
7310
  return hAsync("div", { class: 'searchcraft-search-results' }, itemsToRender);
7040
7311
  }
7041
7312
  renderWithNoAds() {
7042
- 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 })))));
7313
+ const items = this.searchClientResponseItems?.length
7314
+ ? this.searchClientResponseItems
7315
+ : this.initialSearchClientResponseItems?.length
7316
+ ? this.initialSearchClientResponseItems
7317
+ : [];
7318
+ 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 })))));
7043
7319
  }
7044
7320
  render() {
7045
- if (this.searchTerm.trim() === '') {
7321
+ const searchClientResponseItems = this.searchClientResponseItems || [];
7322
+ const initialSearchClientResponseItems = this.initialSearchClientResponseItems || [];
7323
+ if (this.searchTerm === '' &&
7324
+ initialSearchClientResponseItems.length === 0 &&
7325
+ !this.isSearchInProgress) {
7046
7326
  return this.renderEmptyState();
7047
7327
  }
7048
7328
  if (this.searchTerm.length > 0 &&
7049
- (this.searchClientResponseItems || []).length === 0 &&
7329
+ searchClientResponseItems.length === 0 &&
7050
7330
  !this.isSearchInProgress) {
7051
7331
  return this.renderNoResultsFoundState();
7052
7332
  }
@@ -7065,14 +7345,16 @@ class SearchcraftSearchResults {
7065
7345
  "$flags$": 4,
7066
7346
  "$tagName$": "searchcraft-search-results",
7067
7347
  "$members$": {
7348
+ "initialQuery": [1, "initial-query"],
7068
7349
  "template": [16],
7069
- "searchTerm": [32],
7070
- "searchClientResponseItems": [32],
7071
7350
  "adClientResponseItems": [32],
7072
- "searchResultsPerPage": [32],
7073
- "searchResultsPage": [32],
7351
+ "config": [32],
7352
+ "initialSearchClientResponseItems": [32],
7074
7353
  "isSearchInProgress": [32],
7075
- "config": [32]
7354
+ "searchClientResponseItems": [32],
7355
+ "searchResultsPage": [32],
7356
+ "searchResultsPerPage": [32],
7357
+ "searchTerm": [32]
7076
7358
  },
7077
7359
  "$listeners$": undefined,
7078
7360
  "$lazyBundleId$": "-",
@@ -7083,12 +7365,13 @@ class SearchcraftSearchResults {
7083
7365
  /**
7084
7366
  * This web component is designed to choose the number of search results displayed.
7085
7367
  *
7086
- * @import
7368
+ * @react-import
7087
7369
  * ```jsx
7088
- * // react
7089
7370
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
7371
+ * ```
7090
7372
  *
7091
- * // vue
7373
+ * @vue-import
7374
+ * ```jsx
7092
7375
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
7093
7376
  * ```
7094
7377
  *
@@ -7352,10 +7635,10 @@ class SearchcraftSlider {
7352
7635
  const endLabel = this.dataType === 'number'
7353
7636
  ? this.endValue
7354
7637
  : new Date(this.endValue).getFullYear();
7355
- 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: {
7638
+ 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: {
7356
7639
  left: `${startPercent}%`,
7357
7640
  width: `${endPercent - startPercent}%`,
7358
- } }), 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))));
7641
+ } }), 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))));
7359
7642
  }
7360
7643
  static get cmpMeta() { return {
7361
7644
  "$flags$": 0,
@@ -7375,18 +7658,19 @@ class SearchcraftSlider {
7375
7658
  }; }
7376
7659
  }
7377
7660
 
7378
- 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 */
7661
+ 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 */
7379
7662
  `;
7380
7663
 
7381
7664
  /**
7382
7665
  * 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.'
7383
7666
  *
7384
- * @import
7667
+ * @react-import
7385
7668
  * ```jsx
7386
- * // react
7387
7669
  * import { SearchcraftTheme } from "@searchcraft/react-sdk";
7670
+ * ```
7388
7671
  *
7389
- * // vue
7672
+ * @vue-import
7673
+ * ```jsx
7390
7674
  * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
7391
7675
  * ```
7392
7676
  *
@@ -7410,7 +7694,7 @@ class SearchcraftTheme {
7410
7694
  registerInstance(this, hostRef);
7411
7695
  }
7412
7696
  render() {
7413
- return hAsync("style", { key: '59491f4345817c2917f7158ae92f199281fb511b' }, styles);
7697
+ return hAsync("style", { key: '912dbad4e0aa5be21ed638cd20c276b530991454' }, styles);
7414
7698
  }
7415
7699
  static get cmpMeta() { return {
7416
7700
  "$flags$": 0,
@@ -7465,9 +7749,9 @@ class SearchcraftToggleButton {
7465
7749
  this.unsubscribe?.();
7466
7750
  }
7467
7751
  render() {
7468
- return (hAsync("div", { key: 'dd0367c381eaedcf675977c181fbdac6499f32e9', class: classNames('searchcraft-toggle-button', {
7752
+ return (hAsync("div", { key: 'f8a751315daf6bcdc0d47bc4fc802bc4615e565f', class: classNames('searchcraft-toggle-button', {
7469
7753
  'searchcraft-toggle-button-active': this.isActive,
7470
- }) }, 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' }))));
7754
+ }) }, 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' }))));
7471
7755
  }
7472
7756
  static get cmpMeta() { return {
7473
7757
  "$flags$": 0,
@@ -7494,6 +7778,7 @@ registerComponents([
7494
7778
  SearchcraftInputLabel,
7495
7779
  SearchcraftPagination,
7496
7780
  SearchcraftPopoverButton,
7781
+ SearchcraftPopoverFooter,
7497
7782
  SearchcraftPopoverForm,
7498
7783
  SearchcraftPopoverListItem,
7499
7784
  SearchcraftPopoverListItemAd,