@searchcraft/javascript-sdk 0.1.8 → 0.2.0

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 (173) hide show
  1. package/dist/cjs/{index-7b49313c.js → index-6c5282a0.js} +11 -5
  2. package/dist/cjs/index-6c5282a0.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/{searchcraft-auto-search-form_13.cjs.entry.js → searchcraft-auto-search-form_17.cjs.entry.js} +307 -30
  6. package/dist/cjs/searchcraft-auto-search-form_17.cjs.entry.js.map +1 -0
  7. package/dist/cjs/searchcraft-base-search-form.cjs.entry.js +3 -3
  8. package/dist/cjs/searchcraft-button-icon.cjs.entry.js +1 -1
  9. package/dist/cjs/searchcraft-button.cjs.entry.js +2 -2
  10. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +2 -2
  11. package/dist/cjs/{store-3d577aac.js → store-ccdd30e6.js} +102 -39
  12. package/dist/cjs/store-ccdd30e6.js.map +1 -0
  13. package/dist/cjs/{utils-39791159.js → utils-bd99e8b0.js} +3 -3
  14. package/dist/cjs/utils-bd99e8b0.js.map +1 -0
  15. package/dist/collection/collection-manifest.json +5 -1
  16. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js +35 -9
  17. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js.map +1 -1
  18. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.module.css +0 -6
  19. package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js +1 -1
  20. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +2 -2
  21. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
  22. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.module.css +13 -6
  23. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +43 -9
  24. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
  25. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.module.css +8 -1
  26. package/dist/collection/components/searchcraft-button/searchcraft-button.js +1 -1
  27. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.css +2 -2
  28. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +1 -1
  29. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js +155 -0
  30. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js.map +1 -0
  31. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.module.css +70 -0
  32. package/dist/collection/components/searchcraft-input/searchcraft-input.js +21 -2
  33. package/dist/collection/components/searchcraft-input/searchcraft-input.js.map +1 -1
  34. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +51 -0
  35. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -0
  36. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.module.css +16 -0
  37. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +121 -0
  38. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +1 -0
  39. package/dist/collection/components/searchcraft-slider/searchcraft-slider.module.css +77 -0
  40. package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.js +1 -1
  41. package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.js +1 -1
  42. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +92 -0
  43. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -0
  44. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.module.css +31 -0
  45. package/dist/collection/provider/store.js +31 -2
  46. package/dist/collection/provider/store.js.map +1 -1
  47. package/dist/collection/utils/utils.js +2 -2
  48. package/dist/collection/utils/utils.js.map +1 -1
  49. package/dist/components/index.js +3 -3
  50. package/dist/components/{p-85d96d9b.js → p-01c5864b.js} +2 -2
  51. package/dist/components/{p-85d96d9b.js.map → p-01c5864b.js.map} +1 -1
  52. package/dist/components/{p-6b1d0cba.js → p-0ef8f141.js} +3 -3
  53. package/dist/components/{p-6b1d0cba.js.map → p-0ef8f141.js.map} +1 -1
  54. package/dist/components/{p-c14731ca.js → p-162887a4.js} +3 -3
  55. package/dist/components/{p-c14731ca.js.map → p-162887a4.js.map} +1 -1
  56. package/dist/components/{p-3ea9ba3a.js → p-2bff6d1e.js} +4 -4
  57. package/dist/components/{p-3ea9ba3a.js.map → p-2bff6d1e.js.map} +1 -1
  58. package/dist/components/{p-04bad430.js → p-2f5acc0e.js} +3 -3
  59. package/dist/components/{p-04bad430.js.map → p-2f5acc0e.js.map} +1 -1
  60. package/dist/components/{p-781a9a8c.js → p-42f8a605.js} +3 -3
  61. package/dist/components/{p-781a9a8c.js.map → p-42f8a605.js.map} +1 -1
  62. package/dist/components/p-544b2de1.js +86 -0
  63. package/dist/components/p-544b2de1.js.map +1 -0
  64. package/dist/components/{p-d73bc01d.js → p-68ad42b5.js} +2 -2
  65. package/dist/components/{p-d73bc01d.js.map → p-68ad42b5.js.map} +1 -1
  66. package/dist/components/{p-af65953e.js → p-7498e493.js} +7 -3
  67. package/dist/components/p-7498e493.js.map +1 -0
  68. package/dist/components/{p-9c617862.js → p-80ea9602.js} +102 -39
  69. package/dist/components/p-80ea9602.js.map +1 -0
  70. package/dist/components/{p-17c94ac1.js → p-aff5cd24.js} +3 -3
  71. package/dist/components/p-aff5cd24.js.map +1 -0
  72. package/dist/components/{p-62f37242.js → p-d11d9b1f.js} +17 -12
  73. package/dist/components/p-d11d9b1f.js.map +1 -0
  74. package/dist/components/{p-d33fdd81.js → p-ee5e7a8c.js} +2 -2
  75. package/dist/components/{p-d33fdd81.js.map → p-ee5e7a8c.js.map} +1 -1
  76. package/dist/components/{p-a3ea7edc.js → p-fc0540e5.js} +2 -2
  77. package/dist/components/{p-a3ea7edc.js.map → p-fc0540e5.js.map} +1 -1
  78. package/dist/components/{p-07fba086.js → p-fd1f6c2f.js} +6 -6
  79. package/dist/components/p-fd1f6c2f.js.map +1 -0
  80. package/dist/components/searchcraft-auto-search-form.js +35 -23
  81. package/dist/components/searchcraft-auto-search-form.js.map +1 -1
  82. package/dist/components/searchcraft-base-search-form.js +14 -14
  83. package/dist/components/searchcraft-base-search-result.js +1 -1
  84. package/dist/components/searchcraft-base-search-results.js +28 -14
  85. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  86. package/dist/components/searchcraft-button-icon.js +1 -1
  87. package/dist/components/searchcraft-button.js +1 -1
  88. package/dist/components/searchcraft-clear-icon-set.js +1 -1
  89. package/dist/components/searchcraft-clear-input-button.js +1 -1
  90. package/dist/components/searchcraft-error-message.js +1 -1
  91. package/dist/components/searchcraft-filters-list.d.ts +11 -0
  92. package/dist/components/searchcraft-filters-list.js +127 -0
  93. package/dist/components/searchcraft-filters-list.js.map +1 -0
  94. package/dist/components/searchcraft-input-caption.js +1 -1
  95. package/dist/components/searchcraft-input-icon.js +1 -1
  96. package/dist/components/searchcraft-input-label.js +1 -1
  97. package/dist/components/searchcraft-input.js +1 -1
  98. package/dist/components/searchcraft-results-info.d.ts +11 -0
  99. package/dist/components/searchcraft-results-info.js +64 -0
  100. package/dist/components/searchcraft-results-info.js.map +1 -0
  101. package/dist/components/searchcraft-search-icon-set.js +1 -1
  102. package/dist/components/searchcraft-slider.d.ts +11 -0
  103. package/dist/components/searchcraft-slider.js +96 -0
  104. package/dist/components/searchcraft-slider.js.map +1 -0
  105. package/dist/components/searchcraft-spinner-dark.js +1 -1
  106. package/dist/components/searchcraft-spinner-light.js +1 -1
  107. package/dist/components/searchcraft-toggle-button.d.ts +11 -0
  108. package/dist/components/searchcraft-toggle-button.js +84 -0
  109. package/dist/components/searchcraft-toggle-button.js.map +1 -0
  110. package/dist/esm/{index-e4a4f86d.js → index-0ac5bb53.js} +11 -5
  111. package/dist/esm/index-0ac5bb53.js.map +1 -0
  112. package/dist/esm/index.js +2 -2
  113. package/dist/esm/loader.js +3 -3
  114. package/dist/esm/{searchcraft-auto-search-form_13.entry.js → searchcraft-auto-search-form_17.entry.js} +304 -31
  115. package/dist/esm/searchcraft-auto-search-form_17.entry.js.map +1 -0
  116. package/dist/esm/searchcraft-base-search-form.entry.js +3 -3
  117. package/dist/esm/searchcraft-button-icon.entry.js +1 -1
  118. package/dist/esm/searchcraft-button.entry.js +2 -2
  119. package/dist/esm/searchcraft-javascript-sdk.js +3 -3
  120. package/dist/esm/{store-03dc618f.js → store-311de204.js} +102 -39
  121. package/dist/esm/store-311de204.js.map +1 -0
  122. package/dist/esm/{utils-7bff0c78.js → utils-e2076797.js} +3 -3
  123. package/dist/esm/utils-e2076797.js.map +1 -0
  124. package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
  125. package/dist/searchcraft-javascript-sdk/p-0880cfbb.js +3 -0
  126. package/dist/searchcraft-javascript-sdk/p-0880cfbb.js.map +1 -0
  127. package/dist/searchcraft-javascript-sdk/{p-98eab6f9.entry.js → p-5ec960bd.entry.js} +2 -2
  128. package/dist/searchcraft-javascript-sdk/p-6108dd80.entry.js +2 -0
  129. package/dist/searchcraft-javascript-sdk/p-6108dd80.entry.js.map +1 -0
  130. package/dist/searchcraft-javascript-sdk/p-80ea9602.js +11 -0
  131. package/dist/searchcraft-javascript-sdk/p-80ea9602.js.map +1 -0
  132. package/dist/searchcraft-javascript-sdk/{p-6c825f8c.entry.js → p-a9bac3ca.entry.js} +2 -2
  133. package/dist/searchcraft-javascript-sdk/{p-17c94ac1.js → p-aff5cd24.js} +1 -1
  134. package/dist/searchcraft-javascript-sdk/p-aff5cd24.js.map +1 -0
  135. package/dist/searchcraft-javascript-sdk/{p-6a17384e.entry.js → p-cc454542.entry.js} +2 -2
  136. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
  137. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
  138. package/dist/types/components/searchcraft-auto-search-form/searchcraft-auto-search-form.d.ts +4 -2
  139. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +3 -1
  140. package/dist/types/components/searchcraft-filters-list/searchcraft-filters-list.d.ts +30 -0
  141. package/dist/types/components/searchcraft-input/searchcraft-input.d.ts +2 -0
  142. package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +10 -0
  143. package/dist/types/components/searchcraft-slider/searchcraft-slider.d.ts +17 -0
  144. package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +17 -0
  145. package/dist/types/components.d.ts +90 -2
  146. package/dist/types/provider/store.d.ts +17 -5
  147. package/dist/types/utils/utils.d.ts +1 -1
  148. package/package.json +1 -1
  149. package/dist/cjs/index-7b49313c.js.map +0 -1
  150. package/dist/cjs/searchcraft-auto-search-form_13.cjs.entry.js.map +0 -1
  151. package/dist/cjs/store-3d577aac.js.map +0 -1
  152. package/dist/cjs/utils-39791159.js.map +0 -1
  153. package/dist/components/p-07fba086.js.map +0 -1
  154. package/dist/components/p-17c94ac1.js.map +0 -1
  155. package/dist/components/p-62f37242.js.map +0 -1
  156. package/dist/components/p-9c617862.js.map +0 -1
  157. package/dist/components/p-af65953e.js.map +0 -1
  158. package/dist/components/p-f3af2b04.js +0 -86
  159. package/dist/components/p-f3af2b04.js.map +0 -1
  160. package/dist/esm/index-e4a4f86d.js.map +0 -1
  161. package/dist/esm/searchcraft-auto-search-form_13.entry.js.map +0 -1
  162. package/dist/esm/store-03dc618f.js.map +0 -1
  163. package/dist/esm/utils-7bff0c78.js.map +0 -1
  164. package/dist/searchcraft-javascript-sdk/p-17c94ac1.js.map +0 -1
  165. package/dist/searchcraft-javascript-sdk/p-9c617862.js +0 -11
  166. package/dist/searchcraft-javascript-sdk/p-9c617862.js.map +0 -1
  167. package/dist/searchcraft-javascript-sdk/p-bc3c001e.entry.js +0 -2
  168. package/dist/searchcraft-javascript-sdk/p-bc3c001e.entry.js.map +0 -1
  169. package/dist/searchcraft-javascript-sdk/p-e6f6972c.js +0 -3
  170. package/dist/searchcraft-javascript-sdk/p-e6f6972c.js.map +0 -1
  171. /package/dist/searchcraft-javascript-sdk/{p-98eab6f9.entry.js.map → p-5ec960bd.entry.js.map} +0 -0
  172. /package/dist/searchcraft-javascript-sdk/{p-6c825f8c.entry.js.map → p-a9bac3ca.entry.js.map} +0 -0
  173. /package/dist/searchcraft-javascript-sdk/{p-6a17384e.entry.js.map → p-cc454542.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { type EventEmitter } from '../../stencil-public-runtime';
2
- import { type CoreConfigSDK } from '@searchcraft/core';
2
+ import { type CoreConfigSDK, type SearchcraftResponse } from '@searchcraft/core';
3
3
  import type { ScInputCustomEvent } from "../searchcraft-input/searchcraft-input";
4
4
  export declare class SearchcraftAutoSearchForm {
5
5
  autoSearchFormClass: string;
@@ -14,10 +14,11 @@ export declare class SearchcraftAutoSearchForm {
14
14
  rightToLeftOrientation: boolean;
15
15
  searchContainerClass: string;
16
16
  querySubmit: EventEmitter<string>;
17
+ inputClearedOrNoResults: EventEmitter<void>;
17
18
  error: boolean;
18
19
  isRequesting: boolean;
19
20
  query: string;
20
- searchResults: string;
21
+ searchResults: SearchcraftResponse | null;
21
22
  private debounceTimeout;
22
23
  private debounceDelay;
23
24
  private searchStore;
@@ -25,6 +26,7 @@ export declare class SearchcraftAutoSearchForm {
25
26
  componentDidLoad(): void;
26
27
  disconnectedCallback(): void;
27
28
  handleInputChange: (event: ScInputCustomEvent<string>) => void;
29
+ handleInputKeyUp: (event: ScInputCustomEvent<string>) => void;
28
30
  handleClearInput: () => void;
29
31
  private runSearch;
30
32
  handleFormSubmit: (event: Event) => Promise<void>;
@@ -2,12 +2,14 @@ import type { SearchcraftResponse } from '@searchcraft/core';
2
2
  export declare class SearchcraftBaseSearchResults {
3
3
  query: string;
4
4
  searchResults: SearchcraftResponse | null;
5
- searchKeys: string;
5
+ hasSearched: boolean;
6
+ documentAttributesForDisplay: string;
6
7
  customStylesForResults: string | Record<string, Record<string, string>>;
7
8
  placeAdAtStart: boolean;
8
9
  placeAdAtEnd: boolean;
9
10
  adInterval: number;
10
11
  formatTime: boolean;
12
+ fallbackElement: HTMLElement | null;
11
13
  private unsubscribe;
12
14
  componentDidLoad(): void;
13
15
  disconnectedCallback(): void;
@@ -0,0 +1,30 @@
1
+ import { type EventEmitter } from '../../stencil-public-runtime';
2
+ import type { Facets } from '@searchcraft/core';
3
+ export declare class SearchcraftFiltersList {
4
+ filters: Array<{
5
+ label: string;
6
+ value: string;
7
+ }>;
8
+ filtersUpdated: EventEmitter<string[]>;
9
+ dynamicFilters: Array<{
10
+ label: string;
11
+ value: string;
12
+ }>;
13
+ initialFilters: Array<{
14
+ label: string;
15
+ value: string;
16
+ }>;
17
+ isRequesting: boolean;
18
+ selectedFilters: Set<string>;
19
+ originalFilterCounts: Record<string, string>;
20
+ query: string;
21
+ resultsCount: number;
22
+ private searchStore;
23
+ unsubscribe: () => void;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ populateFiltersFromFacets(facets: Facets): void;
27
+ handleFilterChange: (value: string, checked: boolean) => void;
28
+ formatLabel(label: string): string;
29
+ render(): any;
30
+ }
@@ -18,9 +18,11 @@ export declare class SearchcraftInput {
18
18
  query: string;
19
19
  clearInput: EventEmitter<void>;
20
20
  searchInputChange: EventEmitter<string>;
21
+ inputKeyUp: EventEmitter<string>;
21
22
  theme: string;
22
23
  private get isLightTheme();
23
24
  handleInputChange(event: Event): void;
25
+ handleInputKeyUp(event: KeyboardEvent): void;
24
26
  handleClearInput(): void;
25
27
  render(): any;
26
28
  }
@@ -0,0 +1,10 @@
1
+ export declare class SearchcraftResultsInfo {
2
+ isRequesting: boolean;
3
+ resultsCount: number;
4
+ responseTime: string;
5
+ query: string;
6
+ unsubscribe: () => void;
7
+ connectedCallback(): void;
8
+ disconnectedCallback(): void;
9
+ render(): any;
10
+ }
@@ -0,0 +1,17 @@
1
+ export declare class SearchcraftSlider {
2
+ minYear: number;
3
+ maxYear: number;
4
+ endYear: number;
5
+ query: string;
6
+ startYear: number;
7
+ hasSearched: boolean;
8
+ unsubscribe: () => void;
9
+ private searchStore;
10
+ resultsCount: number;
11
+ componentDidLoad(): void;
12
+ disconnectedCallback(): void;
13
+ private updateYears;
14
+ private handleStartYearChange;
15
+ private handleEndYearChange;
16
+ render(): any;
17
+ }
@@ -0,0 +1,17 @@
1
+ export declare class SearchcraftToggleButton {
2
+ /**
3
+ * Type of the toggle - determines what it controls
4
+ * 'mode': toggles between 'fuzzy' and 'normal'
5
+ * 'sort': toggles between 'asc' and 'desc'
6
+ */
7
+ type: 'mode' | 'sort';
8
+ isActive: boolean;
9
+ query: string;
10
+ resultsCount: number;
11
+ private unsubscribe;
12
+ private searchStore;
13
+ componentDidLoad(): void;
14
+ disconnectedCallback(): void;
15
+ private handleToggle;
16
+ render(): any;
17
+ }
@@ -44,10 +44,11 @@ export namespace Components {
44
44
  "adInterval": number;
45
45
  "customStylesForResults": | string
46
46
  | Record<string, Record<string, string>>;
47
+ "documentAttributesForDisplay": string;
48
+ "fallbackElement": HTMLElement | null;
47
49
  "formatTime": boolean;
48
50
  "placeAdAtEnd": boolean;
49
51
  "placeAdAtStart": boolean;
50
- "searchKeys": string;
51
52
  }
52
53
  interface SearchcraftButton {
53
54
  "iconElement"?: Element;
@@ -77,6 +78,9 @@ export namespace Components {
77
78
  */
78
79
  "theme": 'light' | 'dark';
79
80
  }
81
+ interface SearchcraftFiltersList {
82
+ "filters": Array<{ label: string; value: string }>;
83
+ }
80
84
  interface SearchcraftInput {
81
85
  "customStyles": string | Record<string, string>;
82
86
  "error": boolean;
@@ -113,6 +117,8 @@ export namespace Components {
113
117
  "inputLabelClassName"?: string;
114
118
  "label"?: string;
115
119
  }
120
+ interface SearchcraftResultsInfo {
121
+ }
116
122
  interface SearchcraftSearchIconSet {
117
123
  "height": number;
118
124
  /**
@@ -121,10 +127,20 @@ export namespace Components {
121
127
  "type": 'search-light' | 'search-dark' | 'error-light' | 'error-dark';
122
128
  "width": number;
123
129
  }
130
+ interface SearchcraftSlider {
131
+ "maxYear": number;
132
+ "minYear": number;
133
+ }
124
134
  interface SearchcraftSpinnerDark {
125
135
  }
126
136
  interface SearchcraftSpinnerLight {
127
137
  }
138
+ interface SearchcraftToggleButton {
139
+ /**
140
+ * Type of the toggle - determines what it controls 'mode': toggles between 'fuzzy' and 'normal' 'sort': toggles between 'asc' and 'desc'
141
+ */
142
+ "type": 'mode' | 'sort';
143
+ }
128
144
  }
129
145
  export interface SearchcraftAutoSearchFormCustomEvent<T> extends CustomEvent<T> {
130
146
  detail: T;
@@ -146,6 +162,10 @@ export interface SearchcraftClearInputButtonCustomEvent<T> extends CustomEvent<T
146
162
  detail: T;
147
163
  target: HTMLSearchcraftClearInputButtonElement;
148
164
  }
165
+ export interface SearchcraftFiltersListCustomEvent<T> extends CustomEvent<T> {
166
+ detail: T;
167
+ target: HTMLSearchcraftFiltersListElement;
168
+ }
149
169
  export interface SearchcraftInputCustomEvent<T> extends CustomEvent<T> {
150
170
  detail: T;
151
171
  target: HTMLSearchcraftInputElement;
@@ -153,6 +173,7 @@ export interface SearchcraftInputCustomEvent<T> extends CustomEvent<T> {
153
173
  declare global {
154
174
  interface HTMLSearchcraftAutoSearchFormElementEventMap {
155
175
  "querySubmit": string;
176
+ "inputClearedOrNoResults": void;
156
177
  }
157
178
  interface HTMLSearchcraftAutoSearchFormElement extends Components.SearchcraftAutoSearchForm, HTMLStencilElement {
158
179
  addEventListener<K extends keyof HTMLSearchcraftAutoSearchFormElementEventMap>(type: K, listener: (this: HTMLSearchcraftAutoSearchFormElement, ev: SearchcraftAutoSearchFormCustomEvent<HTMLSearchcraftAutoSearchFormElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -262,9 +283,27 @@ declare global {
262
283
  prototype: HTMLSearchcraftErrorMessageElement;
263
284
  new (): HTMLSearchcraftErrorMessageElement;
264
285
  };
286
+ interface HTMLSearchcraftFiltersListElementEventMap {
287
+ "filtersUpdated": string[];
288
+ }
289
+ interface HTMLSearchcraftFiltersListElement extends Components.SearchcraftFiltersList, HTMLStencilElement {
290
+ addEventListener<K extends keyof HTMLSearchcraftFiltersListElementEventMap>(type: K, listener: (this: HTMLSearchcraftFiltersListElement, ev: SearchcraftFiltersListCustomEvent<HTMLSearchcraftFiltersListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
291
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
292
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
293
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
294
+ removeEventListener<K extends keyof HTMLSearchcraftFiltersListElementEventMap>(type: K, listener: (this: HTMLSearchcraftFiltersListElement, ev: SearchcraftFiltersListCustomEvent<HTMLSearchcraftFiltersListElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
295
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
296
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
297
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
298
+ }
299
+ var HTMLSearchcraftFiltersListElement: {
300
+ prototype: HTMLSearchcraftFiltersListElement;
301
+ new (): HTMLSearchcraftFiltersListElement;
302
+ };
265
303
  interface HTMLSearchcraftInputElementEventMap {
266
304
  "clearInput": void;
267
305
  "searchInputChange": string;
306
+ "inputKeyUp": string;
268
307
  }
269
308
  interface HTMLSearchcraftInputElement extends Components.SearchcraftInput, HTMLStencilElement {
270
309
  addEventListener<K extends keyof HTMLSearchcraftInputElementEventMap>(type: K, listener: (this: HTMLSearchcraftInputElement, ev: SearchcraftInputCustomEvent<HTMLSearchcraftInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -298,12 +337,24 @@ declare global {
298
337
  prototype: HTMLSearchcraftInputLabelElement;
299
338
  new (): HTMLSearchcraftInputLabelElement;
300
339
  };
340
+ interface HTMLSearchcraftResultsInfoElement extends Components.SearchcraftResultsInfo, HTMLStencilElement {
341
+ }
342
+ var HTMLSearchcraftResultsInfoElement: {
343
+ prototype: HTMLSearchcraftResultsInfoElement;
344
+ new (): HTMLSearchcraftResultsInfoElement;
345
+ };
301
346
  interface HTMLSearchcraftSearchIconSetElement extends Components.SearchcraftSearchIconSet, HTMLStencilElement {
302
347
  }
303
348
  var HTMLSearchcraftSearchIconSetElement: {
304
349
  prototype: HTMLSearchcraftSearchIconSetElement;
305
350
  new (): HTMLSearchcraftSearchIconSetElement;
306
351
  };
352
+ interface HTMLSearchcraftSliderElement extends Components.SearchcraftSlider, HTMLStencilElement {
353
+ }
354
+ var HTMLSearchcraftSliderElement: {
355
+ prototype: HTMLSearchcraftSliderElement;
356
+ new (): HTMLSearchcraftSliderElement;
357
+ };
307
358
  interface HTMLSearchcraftSpinnerDarkElement extends Components.SearchcraftSpinnerDark, HTMLStencilElement {
308
359
  }
309
360
  var HTMLSearchcraftSpinnerDarkElement: {
@@ -316,6 +367,12 @@ declare global {
316
367
  prototype: HTMLSearchcraftSpinnerLightElement;
317
368
  new (): HTMLSearchcraftSpinnerLightElement;
318
369
  };
370
+ interface HTMLSearchcraftToggleButtonElement extends Components.SearchcraftToggleButton, HTMLStencilElement {
371
+ }
372
+ var HTMLSearchcraftToggleButtonElement: {
373
+ prototype: HTMLSearchcraftToggleButtonElement;
374
+ new (): HTMLSearchcraftToggleButtonElement;
375
+ };
319
376
  interface HTMLElementTagNameMap {
320
377
  "searchcraft-auto-search-form": HTMLSearchcraftAutoSearchFormElement;
321
378
  "searchcraft-base-search-form": HTMLSearchcraftBaseSearchFormElement;
@@ -326,13 +383,17 @@ declare global {
326
383
  "searchcraft-clear-icon-set": HTMLSearchcraftClearIconSetElement;
327
384
  "searchcraft-clear-input-button": HTMLSearchcraftClearInputButtonElement;
328
385
  "searchcraft-error-message": HTMLSearchcraftErrorMessageElement;
386
+ "searchcraft-filters-list": HTMLSearchcraftFiltersListElement;
329
387
  "searchcraft-input": HTMLSearchcraftInputElement;
330
388
  "searchcraft-input-caption": HTMLSearchcraftInputCaptionElement;
331
389
  "searchcraft-input-icon": HTMLSearchcraftInputIconElement;
332
390
  "searchcraft-input-label": HTMLSearchcraftInputLabelElement;
391
+ "searchcraft-results-info": HTMLSearchcraftResultsInfoElement;
333
392
  "searchcraft-search-icon-set": HTMLSearchcraftSearchIconSetElement;
393
+ "searchcraft-slider": HTMLSearchcraftSliderElement;
334
394
  "searchcraft-spinner-dark": HTMLSearchcraftSpinnerDarkElement;
335
395
  "searchcraft-spinner-light": HTMLSearchcraftSpinnerLightElement;
396
+ "searchcraft-toggle-button": HTMLSearchcraftToggleButtonElement;
336
397
  }
337
398
  }
338
399
  declare namespace LocalJSX {
@@ -345,6 +406,7 @@ declare namespace LocalJSX {
345
406
  "inputIconHeight"?: number;
346
407
  "inputIconWidth"?: number;
347
408
  "labelForInput"?: string;
409
+ "onInputClearedOrNoResults"?: (event: SearchcraftAutoSearchFormCustomEvent<void>) => void;
348
410
  "onQuerySubmit"?: (event: SearchcraftAutoSearchFormCustomEvent<string>) => void;
349
411
  "placeholderValue"?: string;
350
412
  "rightToLeftOrientation"?: boolean;
@@ -377,10 +439,11 @@ declare namespace LocalJSX {
377
439
  "adInterval"?: number;
378
440
  "customStylesForResults"?: | string
379
441
  | Record<string, Record<string, string>>;
442
+ "documentAttributesForDisplay"?: string;
443
+ "fallbackElement"?: HTMLElement | null;
380
444
  "formatTime"?: boolean;
381
445
  "placeAdAtEnd"?: boolean;
382
446
  "placeAdAtStart"?: boolean;
383
- "searchKeys"?: string;
384
447
  }
385
448
  interface SearchcraftButton {
386
449
  "iconElement"?: Element;
@@ -412,6 +475,10 @@ declare namespace LocalJSX {
412
475
  */
413
476
  "theme"?: 'light' | 'dark';
414
477
  }
478
+ interface SearchcraftFiltersList {
479
+ "filters"?: Array<{ label: string; value: string }>;
480
+ "onFiltersUpdated"?: (event: SearchcraftFiltersListCustomEvent<string[]>) => void;
481
+ }
415
482
  interface SearchcraftInput {
416
483
  "customStyles"?: string | Record<string, string>;
417
484
  "error"?: boolean;
@@ -423,6 +490,7 @@ declare namespace LocalJSX {
423
490
  "inputIconWidth"?: number;
424
491
  "isRequesting"?: boolean;
425
492
  "onClearInput"?: (event: SearchcraftInputCustomEvent<void>) => void;
493
+ "onInputKeyUp"?: (event: SearchcraftInputCustomEvent<string>) => void;
426
494
  "onSearchInputChange"?: (event: SearchcraftInputCustomEvent<string>) => void;
427
495
  "placeholderValue"?: string;
428
496
  "query"?: string;
@@ -450,6 +518,8 @@ declare namespace LocalJSX {
450
518
  "inputLabelClassName"?: string;
451
519
  "label"?: string;
452
520
  }
521
+ interface SearchcraftResultsInfo {
522
+ }
453
523
  interface SearchcraftSearchIconSet {
454
524
  "height"?: number;
455
525
  /**
@@ -458,10 +528,20 @@ declare namespace LocalJSX {
458
528
  "type"?: 'search-light' | 'search-dark' | 'error-light' | 'error-dark';
459
529
  "width"?: number;
460
530
  }
531
+ interface SearchcraftSlider {
532
+ "maxYear"?: number;
533
+ "minYear"?: number;
534
+ }
461
535
  interface SearchcraftSpinnerDark {
462
536
  }
463
537
  interface SearchcraftSpinnerLight {
464
538
  }
539
+ interface SearchcraftToggleButton {
540
+ /**
541
+ * Type of the toggle - determines what it controls 'mode': toggles between 'fuzzy' and 'normal' 'sort': toggles between 'asc' and 'desc'
542
+ */
543
+ "type"?: 'mode' | 'sort';
544
+ }
465
545
  interface IntrinsicElements {
466
546
  "searchcraft-auto-search-form": SearchcraftAutoSearchForm;
467
547
  "searchcraft-base-search-form": SearchcraftBaseSearchForm;
@@ -472,13 +552,17 @@ declare namespace LocalJSX {
472
552
  "searchcraft-clear-icon-set": SearchcraftClearIconSet;
473
553
  "searchcraft-clear-input-button": SearchcraftClearInputButton;
474
554
  "searchcraft-error-message": SearchcraftErrorMessage;
555
+ "searchcraft-filters-list": SearchcraftFiltersList;
475
556
  "searchcraft-input": SearchcraftInput;
476
557
  "searchcraft-input-caption": SearchcraftInputCaption;
477
558
  "searchcraft-input-icon": SearchcraftInputIcon;
478
559
  "searchcraft-input-label": SearchcraftInputLabel;
560
+ "searchcraft-results-info": SearchcraftResultsInfo;
479
561
  "searchcraft-search-icon-set": SearchcraftSearchIconSet;
562
+ "searchcraft-slider": SearchcraftSlider;
480
563
  "searchcraft-spinner-dark": SearchcraftSpinnerDark;
481
564
  "searchcraft-spinner-light": SearchcraftSpinnerLight;
565
+ "searchcraft-toggle-button": SearchcraftToggleButton;
482
566
  }
483
567
  }
484
568
  export { LocalJSX as JSX };
@@ -494,13 +578,17 @@ declare module "@stencil/core" {
494
578
  "searchcraft-clear-icon-set": LocalJSX.SearchcraftClearIconSet & JSXBase.HTMLAttributes<HTMLSearchcraftClearIconSetElement>;
495
579
  "searchcraft-clear-input-button": LocalJSX.SearchcraftClearInputButton & JSXBase.HTMLAttributes<HTMLSearchcraftClearInputButtonElement>;
496
580
  "searchcraft-error-message": LocalJSX.SearchcraftErrorMessage & JSXBase.HTMLAttributes<HTMLSearchcraftErrorMessageElement>;
581
+ "searchcraft-filters-list": LocalJSX.SearchcraftFiltersList & JSXBase.HTMLAttributes<HTMLSearchcraftFiltersListElement>;
497
582
  "searchcraft-input": LocalJSX.SearchcraftInput & JSXBase.HTMLAttributes<HTMLSearchcraftInputElement>;
498
583
  "searchcraft-input-caption": LocalJSX.SearchcraftInputCaption & JSXBase.HTMLAttributes<HTMLSearchcraftInputCaptionElement>;
499
584
  "searchcraft-input-icon": LocalJSX.SearchcraftInputIcon & JSXBase.HTMLAttributes<HTMLSearchcraftInputIconElement>;
500
585
  "searchcraft-input-label": LocalJSX.SearchcraftInputLabel & JSXBase.HTMLAttributes<HTMLSearchcraftInputLabelElement>;
586
+ "searchcraft-results-info": LocalJSX.SearchcraftResultsInfo & JSXBase.HTMLAttributes<HTMLSearchcraftResultsInfoElement>;
501
587
  "searchcraft-search-icon-set": LocalJSX.SearchcraftSearchIconSet & JSXBase.HTMLAttributes<HTMLSearchcraftSearchIconSetElement>;
588
+ "searchcraft-slider": LocalJSX.SearchcraftSlider & JSXBase.HTMLAttributes<HTMLSearchcraftSliderElement>;
502
589
  "searchcraft-spinner-dark": LocalJSX.SearchcraftSpinnerDark & JSXBase.HTMLAttributes<HTMLSearchcraftSpinnerDarkElement>;
503
590
  "searchcraft-spinner-light": LocalJSX.SearchcraftSpinnerLight & JSXBase.HTMLAttributes<HTMLSearchcraftSpinnerLightElement>;
591
+ "searchcraft-toggle-button": LocalJSX.SearchcraftToggleButton & JSXBase.HTMLAttributes<HTMLSearchcraftToggleButtonElement>;
504
592
  }
505
593
  }
506
594
  }
@@ -1,18 +1,30 @@
1
- import { type CoreSDK as SearchcraftCore, type SearchcraftResponse } from '@searchcraft/core';
1
+ import { type CoreSDK as SearchcraftCore, type SearchcraftResponse, type Facets } from '@searchcraft/core';
2
+ interface ThemeState {
3
+ theme: 'light' | 'dark';
4
+ toggleTheme: () => void;
5
+ }
6
+ interface SearchParams {
7
+ mode: 'fuzzy' | 'normal';
8
+ sort: 'asc' | 'desc';
9
+ yearsRange?: [number, number];
10
+ }
2
11
  interface SearchcraftState {
3
12
  query: string;
4
13
  isRequesting: boolean;
5
14
  searchResults: SearchcraftResponse | null;
15
+ facets: Facets | null;
16
+ selectedFilters: string[];
17
+ searchParams: SearchParams;
6
18
  setQuery: (query: string) => void;
7
19
  setSearchResults: (results: SearchcraftResponse | null) => void;
20
+ setFacets: (facets: Facets) => void;
21
+ setSelectedFilters: (filters: string[]) => void;
8
22
  setIsRequesting: (isRequesting: boolean) => void;
23
+ setSearchParams: (params: Partial<SearchParams>) => void;
24
+ setYearsRange: (yearsRange: [number, number]) => void;
9
25
  search: () => Promise<void>;
10
26
  initialize: (searchcraft: SearchcraftCore, debug?: boolean) => void;
11
27
  }
12
- interface ThemeState {
13
- theme: 'light' | 'dark';
14
- toggleTheme: () => void;
15
- }
16
28
  declare const useSearchcraftStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SearchcraftState>>;
17
29
  declare const useThemeStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ThemeState>>;
18
30
  export { useSearchcraftStore, useThemeStore };
@@ -1,4 +1,4 @@
1
1
  export declare function parseCustomStyles(styles: string | Record<string, string>): Record<string, string>;
2
- export declare function parseSearchKeys(searchKeys: string): string[];
2
+ export declare function parseSearchKeys(documentAttributesForDisplay: string): string[];
3
3
  export declare function extractDynamicProperties(document: Record<string, string | number>, keys: string[]): Record<string, string | number>;
4
4
  export declare function serializeStyles(styles: Record<string, Record<string, string>>): string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@searchcraft/javascript-sdk",
3
3
  "private": false,
4
- "version": "0.1.8",
4
+ "version": "0.2.0",
5
5
  "description": "Searchcraft Javascript SDK",
6
6
  "author": "Searchcraft",
7
7
  "license": "Apache-2.0",