@searchcraft/javascript-sdk 0.10.0 → 0.10.1

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 (76) hide show
  1. package/dist/components/defineCustomElements.js +2 -0
  2. package/dist/components/index.d.ts +238 -120
  3. package/dist/components/index.js +10 -5
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/components/{p-3f63fa14.js → p-0077f677.js} +4 -4
  6. package/dist/components/p-0077f677.js.map +1 -0
  7. package/dist/components/{p-e72d0167.js → p-13e81b5d.js} +3 -3
  8. package/dist/components/p-13e81b5d.js.map +1 -0
  9. package/dist/components/{p-39e70a00.js → p-172a848d.js} +29 -3
  10. package/dist/components/p-172a848d.js.map +1 -0
  11. package/dist/components/{p-f8df3d49.js → p-17c646e2.js} +101 -65
  12. package/dist/components/p-17c646e2.js.map +1 -0
  13. package/dist/components/{p-d361b781.js → p-2be1a382.js} +4 -4
  14. package/dist/components/{p-d361b781.js.map → p-2be1a382.js.map} +1 -1
  15. package/dist/components/{p-c317a36a.js → p-3e65aa91.js} +6 -6
  16. package/dist/components/p-3e65aa91.js.map +1 -0
  17. package/dist/components/{p-8aa0fff5.js → p-5d17ace0.js} +13 -13
  18. package/dist/components/p-5d17ace0.js.map +1 -0
  19. package/dist/components/p-84e2cbd6.js +46 -0
  20. package/dist/components/p-84e2cbd6.js.map +1 -0
  21. package/dist/components/{p-bc9e0e40.js → p-868803f9.js} +3 -3
  22. package/dist/components/{p-bc9e0e40.js.map → p-868803f9.js.map} +1 -1
  23. package/dist/components/{p-34a32648.js → p-a62a2e74.js} +4 -4
  24. package/dist/components/{p-34a32648.js.map → p-a62a2e74.js.map} +1 -1
  25. package/dist/components/searchcraft-ad.js +1 -1
  26. package/dist/components/searchcraft-facet-list.js +1 -1
  27. package/dist/components/searchcraft-filter-panel.js +5 -5
  28. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  29. package/dist/components/searchcraft-input-form.js +1 -1
  30. package/dist/components/searchcraft-pagination.js +1 -1
  31. package/dist/components/searchcraft-pagination.js.map +1 -1
  32. package/dist/components/searchcraft-popover-button.js +95 -3
  33. package/dist/components/searchcraft-popover-button.js.map +1 -1
  34. package/dist/components/searchcraft-popover-footer.d.ts +11 -0
  35. package/dist/components/searchcraft-popover-footer.js +8 -0
  36. package/dist/components/searchcraft-popover-footer.js.map +1 -0
  37. package/dist/components/searchcraft-popover-form.js +34 -24
  38. package/dist/components/searchcraft-popover-form.js.map +1 -1
  39. package/dist/components/searchcraft-popover-list-item.js +1 -1
  40. package/dist/components/searchcraft-popover-list-view.js +1 -1
  41. package/dist/components/searchcraft-results-info.js +1 -8
  42. package/dist/components/searchcraft-results-info.js.map +1 -1
  43. package/dist/components/searchcraft-search-result.js +1 -1
  44. package/dist/components/searchcraft-search-results-per-page.js +1 -1
  45. package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
  46. package/dist/components/searchcraft-search-results.js +3 -3
  47. package/dist/components/searchcraft-search-results.js.map +1 -1
  48. package/dist/components/searchcraft-slider.js +1 -1
  49. package/dist/components/searchcraft-theme.js +2 -2
  50. package/dist/components/searchcraft-theme.js.map +1 -1
  51. package/dist/components/searchcraft-toggle-button.js +1 -1
  52. package/dist/hydrate/index.js +298 -109
  53. package/dist/hydrate/index.mjs +298 -109
  54. package/dist/themes/hologram.css +1 -0
  55. package/dist/themes/hologram.css.map +1 -0
  56. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +4 -3
  57. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +4 -3
  58. package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +4 -3
  59. package/dist/types/components/searchcraft-popover-button/searchcraft-popover-button.d.ts +49 -5
  60. package/dist/types/components/searchcraft-popover-footer/searchcraft-popover-footer.d.ts +13 -0
  61. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +4 -3
  62. package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +3 -3
  63. package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +6 -10
  64. package/dist/types/components/searchcraft-search-result/searchcraft-search-result.d.ts +3 -0
  65. package/dist/types/components/searchcraft-search-results/searchcraft-search-results.d.ts +5 -4
  66. package/dist/types/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.d.ts +4 -3
  67. package/dist/types/components/searchcraft-theme/searchcraft-theme.d.ts +4 -3
  68. package/dist/types/components.d.ts +231 -120
  69. package/dist/types/store/SearchcraftStore.types.d.ts +3 -0
  70. package/package.json +7 -3
  71. package/dist/components/p-39e70a00.js.map +0 -1
  72. package/dist/components/p-3f63fa14.js.map +0 -1
  73. package/dist/components/p-8aa0fff5.js.map +0 -1
  74. package/dist/components/p-c317a36a.js.map +0 -1
  75. package/dist/components/p-e72d0167.js.map +0 -1
  76. package/dist/components/p-f8df3d49.js.map +0 -1
@@ -138,6 +138,9 @@ export type CustomAdTemplate = (data: {
138
138
  }, utils: {
139
139
  html: TemplateHtml;
140
140
  }) => string;
141
+ export type PopoverButtonTemplate = (data: boolean, utils: {
142
+ html: TemplateHtml;
143
+ }) => string;
141
144
  /**
142
145
  * The SearchcraftConfig object is used to initialize Searchcraft in your application.
143
146
  */
@@ -265,7 +268,7 @@ export interface FacetChild {
265
268
  /**
266
269
  * Types of measure requests that can be sent to the /measure/event endpoint.
267
270
  */
268
- export type MeasureEventName = "sdk_initialized" | "search_requested" | "search_response_received" | "document_clicked";
271
+ export type MeasureEventName = "sdk_initialized" | "search_requested" | "search_response_received" | "search_completed" | "document_clicked";
269
272
  /**
270
273
  * Properties attached to a measure request.
271
274
  */
@@ -480,12 +483,13 @@ declare class MeasureClient {
480
483
  * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.
481
484
  * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.
482
485
  */
483
- sendMeasureEvent: (eventName: MeasureEventName, properties?: Partial<MeasureRequestProperties>, user?: Partial<MeasureRequestUser>) => void;
486
+ sendMeasureEvent: (eventName: MeasureEventName, properties?: Partial<MeasureRequestProperties>, user?: Partial<MeasureRequestUser>) => Promise<void>;
484
487
  }
485
488
  declare class SearchClient {
486
489
  private config;
487
490
  private userId;
488
491
  private parent;
492
+ private searchCompletedEventTimeout;
489
493
  constructor(parent: SearchcraftCore, config: SearchcraftConfig, userId: string);
490
494
  /**
491
495
  * Getter for the base url used by the /search endpoint.
@@ -563,6 +567,7 @@ export interface SearchcraftStateFunctions {
563
567
  setSearchTerm: (searchTerm: string) => void;
564
568
  setSearchMode: (mode: "fuzzy" | "exact") => void;
565
569
  setSortType: (type: "asc" | "desc") => void;
570
+ setHotKeyAndHotKeyModifier: (hotkey?: string, hotkeyModifier?: "ctrl" | "meta" | "alt" | "option") => void;
566
571
  }
567
572
  /**
568
573
  * Values stored in SearchcraftStore.
@@ -570,6 +575,8 @@ export interface SearchcraftStateFunctions {
570
575
  export interface SearchcraftStateValues {
571
576
  adClientResponseItems: AdClientResponseItem[];
572
577
  core: SearchcraftCore | undefined;
578
+ hotkey: string;
579
+ hotkeyModifier: "ctrl" | "meta" | "alt" | "option";
573
580
  logger: Logger | undefined;
574
581
  facetPathsForIndexFields: Record<string, FacetPathsForIndexField>;
575
582
  isPopoverVisible: boolean;
@@ -671,10 +678,10 @@ export namespace Components {
671
678
  }
672
679
  /**
673
680
  * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
674
- * @import ```jsx
675
- * // react
681
+ * @react-import ```jsx
676
682
  * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
677
- * // vue
683
+ * ```
684
+ * @vue-import ```jsx
678
685
  * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
679
686
  * ```
680
687
  * @js-example ```html
@@ -704,10 +711,10 @@ export namespace Components {
704
711
  /**
705
712
  * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
706
713
  * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
707
- * @import ```jsx
708
- * // react
714
+ * @react-import ```jsx
709
715
  * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
710
- * // vue
716
+ * ```
717
+ * @vue-import ```jsx
711
718
  * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
712
719
  * ```
713
720
  * @js-example ```html
@@ -758,10 +765,10 @@ export namespace Components {
758
765
  }
759
766
  /**
760
767
  * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
761
- * @import ```jsx
762
- * // react
768
+ * @react-import ```jsx
763
769
  * import { SearchcraftPagination } from "@searchcraft/react-sdk";
764
- * // vue
770
+ * ```
771
+ * @vue-import ```jsx
765
772
  * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
766
773
  * ```
767
774
  * @js-example ```html
@@ -778,36 +785,65 @@ export namespace Components {
778
785
  }
779
786
  /**
780
787
  * Renders a button which, when clicked, turns on popover visibility.
781
- * @import ```jsx
782
- * // react
788
+ * @react-import ```jsx
783
789
  * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
784
- * // vue
790
+ * ````
791
+ * @vue-import ```jsx
785
792
  * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
786
793
  * ```
787
794
  * @js-example ```html
795
+ * <!-- index.html -->
788
796
  * <searchcraft-popover-button>
789
797
  * Open popover
790
798
  * </searchcraft-popover-button>
791
799
  * ```
800
+ * ```js
801
+ * // index.js
802
+ * const popoverButton = document.querySelector('searchcraft-popover-button');
803
+ * popoverButton.template = (isPopoverVisible, { html }) => html`
804
+ * <span>Click me</span>
805
+ * `;
806
+ * ```
792
807
  * @react-example ```jsx
793
- * <SearchcraftPopoverButton>
808
+ * <SearchcraftPopoverButton
809
+ * template={(isPopoverVisible, { html }) => html`
810
+ * <span>Click me</span>
811
+ * `}
812
+ * >
794
813
  * Open popover
795
814
  * </SearchcraftPopoverButton>
796
815
  * ```
797
816
  * @vue-example ```jsx
798
- * <SearchcraftPopoverButton>
817
+ * <SearchcraftPopoverButton
818
+ * :template={(isPopoverVisible, { html }) => html`
819
+ * <span>Click me</span>
820
+ * `}
821
+ * >
799
822
  * Open popover
800
823
  * </SearchcraftPopoverButton>
801
824
  * ```
802
825
  */
803
826
  interface SearchcraftPopoverButton {
827
+ /**
828
+ * A callback function responsible for rendering the button contents.
829
+ */
830
+ "template"?: PopoverButtonTemplate;
831
+ /**
832
+ * The type of popover button to render.
833
+ */
834
+ "type"?: "skeuomorphic";
835
+ }
836
+ /**
837
+ * Renders the footer for the searchcraft-popover-form.
838
+ */
839
+ interface SearchcraftPopoverFooter {
804
840
  }
805
841
  /**
806
842
  * 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.
807
- * @import ```jsx
808
- * // react
843
+ * @react-import ```jsx
809
844
  * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
810
- * // vue
845
+ * ```
846
+ * @vue-import ```jsx
811
847
  * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
812
848
  * ```
813
849
  * @js-example ```html
@@ -877,10 +913,10 @@ export namespace Components {
877
913
  }
878
914
  /**
879
915
  * This web component is designed to display the number of results returned from a search query.
880
- * @import ```jsx
881
- * // react
916
+ * @react-import ```jsx
882
917
  * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
883
- * // vue
918
+ * ```
919
+ * @vue-import ```jsx
884
920
  * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
885
921
  * ```
886
922
  * @js-example ```html
@@ -900,17 +936,18 @@ export namespace Components {
900
936
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
901
937
  * `}
902
938
  * />
939
+ * ```
903
940
  * @vue-example ```jsx
904
941
  * <SearchcraftResultsInfo
905
942
  * :template={(info, { html }) => html`
906
943
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
907
944
  * `}
908
945
  * />
946
+ * ```
909
947
  */
910
948
  interface SearchcraftResultsInfo {
911
949
  /**
912
950
  * A callback function responsible for rendering the results info.
913
- * @example ```ts resultsInfo.template = html` ${range[0]}-${range[1]} of ${count} results in ${responseTime}ms `; ```
914
951
  */
915
952
  "template"?: ResultsInfoTemplate;
916
953
  }
@@ -934,10 +971,10 @@ export namespace Components {
934
971
  }
935
972
  /**
936
973
  * 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.
937
- * @import ```jsx
938
- * // react
974
+ * @react-import ```jsx
939
975
  * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
940
- * // vue
976
+ * ```
977
+ * @vue-import ```jsx
941
978
  * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
942
979
  * ```
943
980
  * @js-example ```html
@@ -981,10 +1018,10 @@ export namespace Components {
981
1018
  }
982
1019
  /**
983
1020
  * This web component is designed to choose the number of search results displayed.
984
- * @import ```jsx
985
- * // react
1021
+ * @react-import ```jsx
986
1022
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
987
- * // vue
1023
+ * ```
1024
+ * @vue-import ```jsx
988
1025
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
989
1026
  * ```
990
1027
  * @js-example ```html
@@ -1068,10 +1105,10 @@ export namespace Components {
1068
1105
  }
1069
1106
  /**
1070
1107
  * 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.'
1071
- * @import ```jsx
1072
- * // react
1108
+ * @react-import ```jsx
1073
1109
  * import { SearchcraftTheme } from "@searchcraft/react-sdk";
1074
- * // vue
1110
+ * ```
1111
+ * @vue-import ```jsx
1075
1112
  * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
1076
1113
  * ```
1077
1114
  * @js-example ```html
@@ -1205,10 +1242,10 @@ declare global {
1205
1242
  };
1206
1243
  /**
1207
1244
  * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
1208
- * @import ```jsx
1209
- * // react
1245
+ * @react-import ```jsx
1210
1246
  * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
1211
- * // vue
1247
+ * ```
1248
+ * @vue-import ```jsx
1212
1249
  * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
1213
1250
  * ```
1214
1251
  * @js-example ```html
@@ -1243,10 +1280,10 @@ declare global {
1243
1280
  /**
1244
1281
  * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
1245
1282
  * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
1246
- * @import ```jsx
1247
- * // react
1283
+ * @react-import ```jsx
1248
1284
  * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
1249
- * // vue
1285
+ * ```
1286
+ * @vue-import ```jsx
1250
1287
  * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
1251
1288
  * ```
1252
1289
  * @js-example ```html
@@ -1287,10 +1324,10 @@ declare global {
1287
1324
  };
1288
1325
  /**
1289
1326
  * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
1290
- * @import ```jsx
1291
- * // react
1327
+ * @react-import ```jsx
1292
1328
  * import { SearchcraftPagination } from "@searchcraft/react-sdk";
1293
- * // vue
1329
+ * ```
1330
+ * @vue-import ```jsx
1294
1331
  * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
1295
1332
  * ```
1296
1333
  * @js-example ```html
@@ -1311,24 +1348,40 @@ declare global {
1311
1348
  };
1312
1349
  /**
1313
1350
  * Renders a button which, when clicked, turns on popover visibility.
1314
- * @import ```jsx
1315
- * // react
1351
+ * @react-import ```jsx
1316
1352
  * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
1317
- * // vue
1353
+ * ````
1354
+ * @vue-import ```jsx
1318
1355
  * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
1319
1356
  * ```
1320
1357
  * @js-example ```html
1358
+ * <!-- index.html -->
1321
1359
  * <searchcraft-popover-button>
1322
1360
  * Open popover
1323
1361
  * </searchcraft-popover-button>
1324
1362
  * ```
1363
+ * ```js
1364
+ * // index.js
1365
+ * const popoverButton = document.querySelector('searchcraft-popover-button');
1366
+ * popoverButton.template = (isPopoverVisible, { html }) => html`
1367
+ * <span>Click me</span>
1368
+ * `;
1369
+ * ```
1325
1370
  * @react-example ```jsx
1326
- * <SearchcraftPopoverButton>
1371
+ * <SearchcraftPopoverButton
1372
+ * template={(isPopoverVisible, { html }) => html`
1373
+ * <span>Click me</span>
1374
+ * `}
1375
+ * >
1327
1376
  * Open popover
1328
1377
  * </SearchcraftPopoverButton>
1329
1378
  * ```
1330
1379
  * @vue-example ```jsx
1331
- * <SearchcraftPopoverButton>
1380
+ * <SearchcraftPopoverButton
1381
+ * :template={(isPopoverVisible, { html }) => html`
1382
+ * <span>Click me</span>
1383
+ * `}
1384
+ * >
1332
1385
  * Open popover
1333
1386
  * </SearchcraftPopoverButton>
1334
1387
  * ```
@@ -1339,12 +1392,21 @@ declare global {
1339
1392
  prototype: HTMLSearchcraftPopoverButtonElement;
1340
1393
  new (): HTMLSearchcraftPopoverButtonElement;
1341
1394
  };
1395
+ /**
1396
+ * Renders the footer for the searchcraft-popover-form.
1397
+ */
1398
+ interface HTMLSearchcraftPopoverFooterElement extends Components.SearchcraftPopoverFooter, HTMLStencilElement {
1399
+ }
1400
+ var HTMLSearchcraftPopoverFooterElement: {
1401
+ prototype: HTMLSearchcraftPopoverFooterElement;
1402
+ new (): HTMLSearchcraftPopoverFooterElement;
1403
+ };
1342
1404
  /**
1343
1405
  * 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.
1344
- * @import ```jsx
1345
- * // react
1406
+ * @react-import ```jsx
1346
1407
  * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
1347
- * // vue
1408
+ * ```
1409
+ * @vue-import ```jsx
1348
1410
  * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
1349
1411
  * ```
1350
1412
  * @js-example ```html
@@ -1393,10 +1455,10 @@ declare global {
1393
1455
  };
1394
1456
  /**
1395
1457
  * This web component is designed to display the number of results returned from a search query.
1396
- * @import ```jsx
1397
- * // react
1458
+ * @react-import ```jsx
1398
1459
  * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
1399
- * // vue
1460
+ * ```
1461
+ * @vue-import ```jsx
1400
1462
  * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
1401
1463
  * ```
1402
1464
  * @js-example ```html
@@ -1416,12 +1478,14 @@ declare global {
1416
1478
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1417
1479
  * `}
1418
1480
  * />
1481
+ * ```
1419
1482
  * @vue-example ```jsx
1420
1483
  * <SearchcraftResultsInfo
1421
1484
  * :template={(info, { html }) => html`
1422
1485
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1423
1486
  * `}
1424
1487
  * />
1488
+ * ```
1425
1489
  */
1426
1490
  interface HTMLSearchcraftResultsInfoElement extends Components.SearchcraftResultsInfo, HTMLStencilElement {
1427
1491
  }
@@ -1440,10 +1504,10 @@ declare global {
1440
1504
  };
1441
1505
  /**
1442
1506
  * 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.
1443
- * @import ```jsx
1444
- * // react
1507
+ * @react-import ```jsx
1445
1508
  * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
1446
- * // vue
1509
+ * ```
1510
+ * @vue-import ```jsx
1447
1511
  * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
1448
1512
  * ```
1449
1513
  * @js-example ```html
@@ -1487,10 +1551,10 @@ declare global {
1487
1551
  };
1488
1552
  /**
1489
1553
  * This web component is designed to choose the number of search results displayed.
1490
- * @import ```jsx
1491
- * // react
1554
+ * @react-import ```jsx
1492
1555
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
1493
- * // vue
1556
+ * ```
1557
+ * @vue-import ```jsx
1494
1558
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
1495
1559
  * ```
1496
1560
  * @js-example ```html
@@ -1560,10 +1624,10 @@ declare global {
1560
1624
  };
1561
1625
  /**
1562
1626
  * 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.'
1563
- * @import ```jsx
1564
- * // react
1627
+ * @react-import ```jsx
1565
1628
  * import { SearchcraftTheme } from "@searchcraft/react-sdk";
1566
- * // vue
1629
+ * ```
1630
+ * @vue-import ```jsx
1567
1631
  * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
1568
1632
  * ```
1569
1633
  * @js-example ```html
@@ -1612,6 +1676,7 @@ declare global {
1612
1676
  "searchcraft-input-label": HTMLSearchcraftInputLabelElement;
1613
1677
  "searchcraft-pagination": HTMLSearchcraftPaginationElement;
1614
1678
  "searchcraft-popover-button": HTMLSearchcraftPopoverButtonElement;
1679
+ "searchcraft-popover-footer": HTMLSearchcraftPopoverFooterElement;
1615
1680
  "searchcraft-popover-form": HTMLSearchcraftPopoverFormElement;
1616
1681
  "searchcraft-popover-list-item": HTMLSearchcraftPopoverListItemElement;
1617
1682
  "searchcraft-popover-list-view": HTMLSearchcraftPopoverListViewElement;
@@ -1711,10 +1776,10 @@ declare namespace LocalJSX {
1711
1776
  }
1712
1777
  /**
1713
1778
  * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
1714
- * @import ```jsx
1715
- * // react
1779
+ * @react-import ```jsx
1716
1780
  * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
1717
- * // vue
1781
+ * ```
1782
+ * @vue-import ```jsx
1718
1783
  * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
1719
1784
  * ```
1720
1785
  * @js-example ```html
@@ -1744,10 +1809,10 @@ declare namespace LocalJSX {
1744
1809
  /**
1745
1810
  * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
1746
1811
  * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
1747
- * @import ```jsx
1748
- * // react
1812
+ * @react-import ```jsx
1749
1813
  * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
1750
- * // vue
1814
+ * ```
1815
+ * @vue-import ```jsx
1751
1816
  * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
1752
1817
  * ```
1753
1818
  * @js-example ```html
@@ -1810,10 +1875,10 @@ declare namespace LocalJSX {
1810
1875
  }
1811
1876
  /**
1812
1877
  * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
1813
- * @import ```jsx
1814
- * // react
1878
+ * @react-import ```jsx
1815
1879
  * import { SearchcraftPagination } from "@searchcraft/react-sdk";
1816
- * // vue
1880
+ * ```
1881
+ * @vue-import ```jsx
1817
1882
  * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
1818
1883
  * ```
1819
1884
  * @js-example ```html
@@ -1830,36 +1895,65 @@ declare namespace LocalJSX {
1830
1895
  }
1831
1896
  /**
1832
1897
  * Renders a button which, when clicked, turns on popover visibility.
1833
- * @import ```jsx
1834
- * // react
1898
+ * @react-import ```jsx
1835
1899
  * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
1836
- * // vue
1900
+ * ````
1901
+ * @vue-import ```jsx
1837
1902
  * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
1838
1903
  * ```
1839
1904
  * @js-example ```html
1905
+ * <!-- index.html -->
1840
1906
  * <searchcraft-popover-button>
1841
1907
  * Open popover
1842
1908
  * </searchcraft-popover-button>
1843
1909
  * ```
1910
+ * ```js
1911
+ * // index.js
1912
+ * const popoverButton = document.querySelector('searchcraft-popover-button');
1913
+ * popoverButton.template = (isPopoverVisible, { html }) => html`
1914
+ * <span>Click me</span>
1915
+ * `;
1916
+ * ```
1844
1917
  * @react-example ```jsx
1845
- * <SearchcraftPopoverButton>
1918
+ * <SearchcraftPopoverButton
1919
+ * template={(isPopoverVisible, { html }) => html`
1920
+ * <span>Click me</span>
1921
+ * `}
1922
+ * >
1846
1923
  * Open popover
1847
1924
  * </SearchcraftPopoverButton>
1848
1925
  * ```
1849
1926
  * @vue-example ```jsx
1850
- * <SearchcraftPopoverButton>
1927
+ * <SearchcraftPopoverButton
1928
+ * :template={(isPopoverVisible, { html }) => html`
1929
+ * <span>Click me</span>
1930
+ * `}
1931
+ * >
1851
1932
  * Open popover
1852
1933
  * </SearchcraftPopoverButton>
1853
1934
  * ```
1854
1935
  */
1855
1936
  interface SearchcraftPopoverButton {
1937
+ /**
1938
+ * A callback function responsible for rendering the button contents.
1939
+ */
1940
+ "template"?: PopoverButtonTemplate;
1941
+ /**
1942
+ * The type of popover button to render.
1943
+ */
1944
+ "type"?: "skeuomorphic";
1945
+ }
1946
+ /**
1947
+ * Renders the footer for the searchcraft-popover-form.
1948
+ */
1949
+ interface SearchcraftPopoverFooter {
1856
1950
  }
1857
1951
  /**
1858
1952
  * 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.
1859
- * @import ```jsx
1860
- * // react
1953
+ * @react-import ```jsx
1861
1954
  * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
1862
- * // vue
1955
+ * ```
1956
+ * @vue-import ```jsx
1863
1957
  * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
1864
1958
  * ```
1865
1959
  * @js-example ```html
@@ -1929,10 +2023,10 @@ declare namespace LocalJSX {
1929
2023
  }
1930
2024
  /**
1931
2025
  * This web component is designed to display the number of results returned from a search query.
1932
- * @import ```jsx
1933
- * // react
2026
+ * @react-import ```jsx
1934
2027
  * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
1935
- * // vue
2028
+ * ```
2029
+ * @vue-import ```jsx
1936
2030
  * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
1937
2031
  * ```
1938
2032
  * @js-example ```html
@@ -1952,17 +2046,18 @@ declare namespace LocalJSX {
1952
2046
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1953
2047
  * `}
1954
2048
  * />
2049
+ * ```
1955
2050
  * @vue-example ```jsx
1956
2051
  * <SearchcraftResultsInfo
1957
2052
  * :template={(info, { html }) => html`
1958
2053
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
1959
2054
  * `}
1960
2055
  * />
2056
+ * ```
1961
2057
  */
1962
2058
  interface SearchcraftResultsInfo {
1963
2059
  /**
1964
2060
  * A callback function responsible for rendering the results info.
1965
- * @example ```ts resultsInfo.template = html` ${range[0]}-${range[1]} of ${count} results in ${responseTime}ms `; ```
1966
2061
  */
1967
2062
  "template"?: ResultsInfoTemplate;
1968
2063
  }
@@ -1986,10 +2081,10 @@ declare namespace LocalJSX {
1986
2081
  }
1987
2082
  /**
1988
2083
  * 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.
1989
- * @import ```jsx
1990
- * // react
2084
+ * @react-import ```jsx
1991
2085
  * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
1992
- * // vue
2086
+ * ```
2087
+ * @vue-import ```jsx
1993
2088
  * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
1994
2089
  * ```
1995
2090
  * @js-example ```html
@@ -2033,10 +2128,10 @@ declare namespace LocalJSX {
2033
2128
  }
2034
2129
  /**
2035
2130
  * This web component is designed to choose the number of search results displayed.
2036
- * @import ```jsx
2037
- * // react
2131
+ * @react-import ```jsx
2038
2132
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
2039
- * // vue
2133
+ * ```
2134
+ * @vue-import ```jsx
2040
2135
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
2041
2136
  * ```
2042
2137
  * @js-example ```html
@@ -2128,10 +2223,10 @@ declare namespace LocalJSX {
2128
2223
  }
2129
2224
  /**
2130
2225
  * 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.'
2131
- * @import ```jsx
2132
- * // react
2226
+ * @react-import ```jsx
2133
2227
  * import { SearchcraftTheme } from "@searchcraft/react-sdk";
2134
- * // vue
2228
+ * ```
2229
+ * @vue-import ```jsx
2135
2230
  * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
2136
2231
  * ```
2137
2232
  * @js-example ```html
@@ -2173,6 +2268,7 @@ declare namespace LocalJSX {
2173
2268
  "searchcraft-input-label": SearchcraftInputLabel;
2174
2269
  "searchcraft-pagination": SearchcraftPagination;
2175
2270
  "searchcraft-popover-button": SearchcraftPopoverButton;
2271
+ "searchcraft-popover-footer": SearchcraftPopoverFooter;
2176
2272
  "searchcraft-popover-form": SearchcraftPopoverForm;
2177
2273
  "searchcraft-popover-list-item": SearchcraftPopoverListItem;
2178
2274
  "searchcraft-popover-list-view": SearchcraftPopoverListView;
@@ -2225,10 +2321,10 @@ declare module "@stencil/core" {
2225
2321
  "searchcraft-facet-list": LocalJSX.SearchcraftFacetList & JSXBase.HTMLAttributes<HTMLSearchcraftFacetListElement>;
2226
2322
  /**
2227
2323
  * This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
2228
- * @import ```jsx
2229
- * // react
2324
+ * @react-import ```jsx
2230
2325
  * import { SearchcraftFilterPanel } from "@searchcraft/react-sdk";
2231
- * // vue
2326
+ * ```
2327
+ * @vue-import ```jsx
2232
2328
  * import { SearchcraftFilterPanel } from "@searchcraft/vue-sdk";
2233
2329
  * ```
2234
2330
  * @js-example ```html
@@ -2253,10 +2349,10 @@ declare module "@stencil/core" {
2253
2349
  /**
2254
2350
  * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.
2255
2351
  * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.
2256
- * @import ```jsx
2257
- * // react
2352
+ * @react-import ```jsx
2258
2353
  * import { SearchcraftInputForm } from "@searchcraft/react-sdk";
2259
- * // vue
2354
+ * ```
2355
+ * @vue-import ```jsx
2260
2356
  * import { SearchcraftInputForm } from "@searchcraft/vue-sdk";
2261
2357
  * ```
2262
2358
  * @js-example ```html
@@ -2279,10 +2375,10 @@ declare module "@stencil/core" {
2279
2375
  "searchcraft-input-label": LocalJSX.SearchcraftInputLabel & JSXBase.HTMLAttributes<HTMLSearchcraftInputLabelElement>;
2280
2376
  /**
2281
2377
  * This web component is designed to facilitate pagination of search results. Once a query is submitted, calculates the number for pages.
2282
- * @import ```jsx
2283
- * // react
2378
+ * @react-import ```jsx
2284
2379
  * import { SearchcraftPagination } from "@searchcraft/react-sdk";
2285
- * // vue
2380
+ * ```
2381
+ * @vue-import ```jsx
2286
2382
  * import { SearchcraftPagination } from "@searchcraft/vue-sdk";
2287
2383
  * ```
2288
2384
  * @js-example ```html
@@ -2298,35 +2394,55 @@ declare module "@stencil/core" {
2298
2394
  "searchcraft-pagination": LocalJSX.SearchcraftPagination & JSXBase.HTMLAttributes<HTMLSearchcraftPaginationElement>;
2299
2395
  /**
2300
2396
  * Renders a button which, when clicked, turns on popover visibility.
2301
- * @import ```jsx
2302
- * // react
2397
+ * @react-import ```jsx
2303
2398
  * import { SearchcraftPopoverButton } from "@searchcraft/react-sdk";
2304
- * // vue
2399
+ * ````
2400
+ * @vue-import ```jsx
2305
2401
  * import { SearchcraftPopoverButton } from "@searchcraft/vue-sdk";
2306
2402
  * ```
2307
2403
  * @js-example ```html
2404
+ * <!-- index.html -->
2308
2405
  * <searchcraft-popover-button>
2309
2406
  * Open popover
2310
2407
  * </searchcraft-popover-button>
2311
2408
  * ```
2409
+ * ```js
2410
+ * // index.js
2411
+ * const popoverButton = document.querySelector('searchcraft-popover-button');
2412
+ * popoverButton.template = (isPopoverVisible, { html }) => html`
2413
+ * <span>Click me</span>
2414
+ * `;
2415
+ * ```
2312
2416
  * @react-example ```jsx
2313
- * <SearchcraftPopoverButton>
2417
+ * <SearchcraftPopoverButton
2418
+ * template={(isPopoverVisible, { html }) => html`
2419
+ * <span>Click me</span>
2420
+ * `}
2421
+ * >
2314
2422
  * Open popover
2315
2423
  * </SearchcraftPopoverButton>
2316
2424
  * ```
2317
2425
  * @vue-example ```jsx
2318
- * <SearchcraftPopoverButton>
2426
+ * <SearchcraftPopoverButton
2427
+ * :template={(isPopoverVisible, { html }) => html`
2428
+ * <span>Click me</span>
2429
+ * `}
2430
+ * >
2319
2431
  * Open popover
2320
2432
  * </SearchcraftPopoverButton>
2321
2433
  * ```
2322
2434
  */
2323
2435
  "searchcraft-popover-button": LocalJSX.SearchcraftPopoverButton & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverButtonElement>;
2436
+ /**
2437
+ * Renders the footer for the searchcraft-popover-form.
2438
+ */
2439
+ "searchcraft-popover-footer": LocalJSX.SearchcraftPopoverFooter & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverFooterElement>;
2324
2440
  /**
2325
2441
  * 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.
2326
- * @import ```jsx
2327
- * // react
2442
+ * @react-import ```jsx
2328
2443
  * import { SearchcraftPopoverForm } from "@searchcraft/react-sdk";
2329
- * // vue
2444
+ * ```
2445
+ * @vue-import ```jsx
2330
2446
  * import { SearchcraftPopoverForm } from "@searchcraft/vue-sdk";
2331
2447
  * ```
2332
2448
  * @js-example ```html
@@ -2360,10 +2476,10 @@ declare module "@stencil/core" {
2360
2476
  "searchcraft-popover-list-view": LocalJSX.SearchcraftPopoverListView & JSXBase.HTMLAttributes<HTMLSearchcraftPopoverListViewElement>;
2361
2477
  /**
2362
2478
  * This web component is designed to display the number of results returned from a search query.
2363
- * @import ```jsx
2364
- * // react
2479
+ * @react-import ```jsx
2365
2480
  * import { SearchcraftResultsInfo } from "@searchcraft/react-sdk";
2366
- * // vue
2481
+ * ```
2482
+ * @vue-import ```jsx
2367
2483
  * import { SearchcraftResultsInfo } from "@searchcraft/vue-sdk";
2368
2484
  * ```
2369
2485
  * @js-example ```html
@@ -2383,12 +2499,14 @@ declare module "@stencil/core" {
2383
2499
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
2384
2500
  * `}
2385
2501
  * />
2502
+ * ```
2386
2503
  * @vue-example ```jsx
2387
2504
  * <SearchcraftResultsInfo
2388
2505
  * :template={(info, { html }) => html`
2389
2506
  * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms
2390
2507
  * `}
2391
2508
  * />
2509
+ * ```
2392
2510
  */
2393
2511
  "searchcraft-results-info": LocalJSX.SearchcraftResultsInfo & JSXBase.HTMLAttributes<HTMLSearchcraftResultsInfoElement>;
2394
2512
  /**
@@ -2397,10 +2515,10 @@ declare module "@stencil/core" {
2397
2515
  "searchcraft-search-result": LocalJSX.SearchcraftSearchResult & JSXBase.HTMLAttributes<HTMLSearchcraftSearchResultElement>;
2398
2516
  /**
2399
2517
  * 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.
2400
- * @import ```jsx
2401
- * // react
2518
+ * @react-import ```jsx
2402
2519
  * import { SearchcraftSearchResults } from "@searchcraft/react-sdk";
2403
- * // vue
2520
+ * ```
2521
+ * @vue-import ```jsx
2404
2522
  * import { SearchcraftSearchResults } from "@searchcraft/vue-sdk";
2405
2523
  * ```
2406
2524
  * @js-example ```html
@@ -2439,10 +2557,10 @@ declare module "@stencil/core" {
2439
2557
  "searchcraft-search-results": LocalJSX.SearchcraftSearchResults & JSXBase.HTMLAttributes<HTMLSearchcraftSearchResultsElement>;
2440
2558
  /**
2441
2559
  * This web component is designed to choose the number of search results displayed.
2442
- * @import ```jsx
2443
- * // react
2560
+ * @react-import ```jsx
2444
2561
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/react-sdk";
2445
- * // vue
2562
+ * ```
2563
+ * @vue-import ```jsx
2446
2564
  * import { SearchcraftSearchResultsPerPage } from "@searchcraft/vue-sdk";
2447
2565
  * ```
2448
2566
  * @js-example ```html
@@ -2475,10 +2593,10 @@ declare module "@stencil/core" {
2475
2593
  "searchcraft-slider": LocalJSX.SearchcraftSlider & JSXBase.HTMLAttributes<HTMLSearchcraftSliderElement>;
2476
2594
  /**
2477
2595
  * 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.'
2478
- * @import ```jsx
2479
- * // react
2596
+ * @react-import ```jsx
2480
2597
  * import { SearchcraftTheme } from "@searchcraft/react-sdk";
2481
- * // vue
2598
+ * ```
2599
+ * @vue-import ```jsx
2482
2600
  * import { SearchcraftTheme } from "@searchcraft/vue-sdk";
2483
2601
  * ```
2484
2602
  * @js-example ```html