@searchcraft/javascript-sdk 0.3.0 → 0.4.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 (348) hide show
  1. package/README.md +198 -0
  2. package/dist/cjs/{index-6c5282a0.js → index-c8a8e492.js} +317 -10
  3. package/dist/cjs/index-c8a8e492.js.map +1 -0
  4. package/dist/cjs/index.cjs.js +4 -5
  5. package/dist/cjs/index.cjs.js.map +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/package-ccc7e307.js +68 -0
  8. package/dist/cjs/package-ccc7e307.js.map +1 -0
  9. package/dist/cjs/searchcraft-auto-search-form.cjs.entry.js +160 -0
  10. package/dist/cjs/searchcraft-auto-search-form.cjs.entry.js.map +1 -0
  11. package/dist/cjs/searchcraft-base-search-form.cjs.entry.js +13 -8
  12. package/dist/cjs/searchcraft-base-search-form.cjs.entry.js.map +1 -1
  13. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +74 -0
  14. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +1 -0
  15. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +129 -0
  16. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -0
  17. package/dist/cjs/searchcraft-button-icon.cjs.entry.js +1 -1
  18. package/dist/cjs/searchcraft-button.cjs.entry.js +4 -9
  19. package/dist/cjs/searchcraft-button.cjs.entry.js.map +1 -1
  20. package/dist/cjs/searchcraft-check-icon_2.cjs.entry.js +28 -0
  21. package/dist/cjs/searchcraft-check-icon_2.cjs.entry.js.map +1 -0
  22. package/dist/cjs/searchcraft-clear-icon-set.cjs.entry.js +30 -0
  23. package/dist/cjs/searchcraft-clear-icon-set.cjs.entry.js.map +1 -0
  24. package/dist/cjs/searchcraft-error-message_3.cjs.entry.js +95 -0
  25. package/dist/cjs/searchcraft-error-message_3.cjs.entry.js.map +1 -0
  26. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +183 -0
  27. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -0
  28. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +134 -0
  29. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -0
  30. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +2 -2
  31. package/dist/cjs/searchcraft-results-info.cjs.entry.js +46 -0
  32. package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -0
  33. package/dist/cjs/searchcraft-search-icon-set.cjs.entry.js +33 -0
  34. package/dist/cjs/searchcraft-search-icon-set.cjs.entry.js.map +1 -0
  35. package/dist/cjs/searchcraft-spinner-dark.cjs.entry.js +22 -0
  36. package/dist/cjs/searchcraft-spinner-dark.cjs.entry.js.map +1 -0
  37. package/dist/cjs/searchcraft-spinner-light.cjs.entry.js +22 -0
  38. package/dist/cjs/searchcraft-spinner-light.cjs.entry.js.map +1 -0
  39. package/dist/cjs/store-72205332.js +945 -0
  40. package/dist/cjs/store-72205332.js.map +1 -0
  41. package/dist/cjs/utils-4ee2b88d.js +169 -0
  42. package/dist/cjs/utils-4ee2b88d.js.map +1 -0
  43. package/dist/collection/assets/searchcraft-button-icons.js.map +1 -1
  44. package/dist/collection/assets/searchcraft-check-icon.js.map +1 -1
  45. package/dist/collection/assets/searchcraft-clear-icon-set.js.map +1 -1
  46. package/dist/collection/assets/searchcraft-dash-icon.js.map +1 -1
  47. package/dist/collection/assets/searchcraft-search-icon-set.js.map +1 -1
  48. package/dist/collection/collection-manifest.json +2 -4
  49. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js +68 -94
  50. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js.map +1 -1
  51. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.module.css +98 -9
  52. package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js +42 -20
  53. package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js.map +1 -1
  54. package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.module.css +94 -8
  55. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +158 -136
  56. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
  57. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.module.css +142 -189
  58. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +172 -83
  59. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
  60. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.module.css +105 -23
  61. package/dist/collection/components/searchcraft-button/searchcraft-button.js +3 -10
  62. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
  63. package/dist/collection/components/searchcraft-button/searchcraft-button.module.css +107 -65
  64. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +2 -24
  65. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map +1 -1
  66. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.module.css +101 -15
  67. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +140 -0
  68. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -0
  69. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.module.css +216 -0
  70. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +166 -0
  71. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -0
  72. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.module.css +118 -0
  73. package/dist/collection/components/searchcraft-input/searchcraft-input.js +43 -133
  74. package/dist/collection/components/searchcraft-input/searchcraft-input.js.map +1 -1
  75. package/dist/collection/components/searchcraft-input/searchcraft-input.module.css +162 -221
  76. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +1 -13
  77. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js.map +1 -1
  78. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.module.css +102 -14
  79. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +4 -3
  80. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
  81. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.module.css +111 -7
  82. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +101 -58
  83. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +1 -1
  84. package/dist/collection/components/searchcraft-slider/searchcraft-slider.module.css +136 -23
  85. package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.js +1 -1
  86. package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.js.map +1 -1
  87. package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.module.css +103 -4
  88. package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.js +1 -1
  89. package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.js.map +1 -1
  90. package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.module.css +102 -3
  91. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +51 -64
  92. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
  93. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.module.css +135 -9
  94. package/dist/collection/index.js +2 -1
  95. package/dist/collection/index.js.map +1 -1
  96. package/dist/collection/provider/store.js +46 -31
  97. package/dist/collection/provider/store.js.map +1 -1
  98. package/dist/collection/types/index.js +3 -0
  99. package/dist/collection/types/index.js.map +1 -0
  100. package/dist/collection/types/searchcraft-base-search-results.types.js +2 -0
  101. package/dist/collection/types/searchcraft-base-search-results.types.js.map +1 -0
  102. package/dist/collection/types/searchcraft-filter-panel.types.js +2 -0
  103. package/dist/collection/types/searchcraft-filter-panel.types.js.map +1 -0
  104. package/dist/collection/utils/utils.js +117 -35
  105. package/dist/collection/utils/utils.js.map +1 -1
  106. package/dist/components/index.js +7 -11
  107. package/dist/components/index.js.map +1 -1
  108. package/dist/components/{p-d3187f5a.js → p-04d13314.js} +2 -2
  109. package/dist/components/{p-d3187f5a.js.map → p-04d13314.js.map} +1 -1
  110. package/dist/components/p-0deddac7.js +161 -0
  111. package/dist/components/p-0deddac7.js.map +1 -0
  112. package/dist/components/p-37f54c0b.js +54 -0
  113. package/dist/components/p-37f54c0b.js.map +1 -0
  114. package/dist/components/{p-7498e493.js → p-5639be85.js} +311 -10
  115. package/dist/components/p-5639be85.js.map +1 -0
  116. package/dist/components/p-68897c11.js +124 -0
  117. package/dist/components/p-68897c11.js.map +1 -0
  118. package/dist/components/p-69eed21e.js +66 -0
  119. package/dist/components/p-69eed21e.js.map +1 -0
  120. package/dist/components/p-8062f0ea.js +82 -0
  121. package/dist/components/p-8062f0ea.js.map +1 -0
  122. package/dist/components/p-9f2b8375.js +33 -0
  123. package/dist/components/p-9f2b8375.js.map +1 -0
  124. package/dist/components/p-ace4e6a0.js +35 -0
  125. package/dist/components/p-ace4e6a0.js.map +1 -0
  126. package/dist/components/p-b1a59f07.js +101 -0
  127. package/dist/components/p-b1a59f07.js.map +1 -0
  128. package/dist/components/p-be63dcac.js +941 -0
  129. package/dist/components/p-be63dcac.js.map +1 -0
  130. package/dist/components/p-c8bc1e4f.js +40 -0
  131. package/dist/components/p-c8bc1e4f.js.map +1 -0
  132. package/dist/components/{p-e5471fcf.js → p-de50441f.js} +2 -2
  133. package/dist/components/{p-e5471fcf.js.map → p-de50441f.js.map} +1 -1
  134. package/dist/components/p-e3c8b1ef.js +91 -0
  135. package/dist/components/p-e3c8b1ef.js.map +1 -0
  136. package/dist/components/p-ebf021b5.js +49 -0
  137. package/dist/components/p-ebf021b5.js.map +1 -0
  138. package/dist/components/searchcraft-auto-search-form.js +70 -84
  139. package/dist/components/searchcraft-auto-search-form.js.map +1 -1
  140. package/dist/components/searchcraft-base-search-form.js +27 -58
  141. package/dist/components/searchcraft-base-search-form.js.map +1 -1
  142. package/dist/components/searchcraft-base-search-result.js +1 -1
  143. package/dist/components/searchcraft-base-search-results.js +81 -53
  144. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  145. package/dist/components/searchcraft-button-icon.js +1 -1
  146. package/dist/components/searchcraft-button.js +1 -1
  147. package/dist/components/searchcraft-check-icon.js +1 -1
  148. package/dist/components/searchcraft-clear-icon-set.js +39 -1
  149. package/dist/components/searchcraft-clear-icon-set.js.map +1 -1
  150. package/dist/components/searchcraft-dash-icon.js +1 -1
  151. package/dist/components/searchcraft-error-message.js +1 -1
  152. package/dist/components/searchcraft-facet-list.d.ts +11 -0
  153. package/dist/components/searchcraft-facet-list.js +8 -0
  154. package/dist/components/searchcraft-facet-list.js.map +1 -0
  155. package/dist/components/searchcraft-filter-panel.d.ts +11 -0
  156. package/dist/components/searchcraft-filter-panel.js +184 -0
  157. package/dist/components/searchcraft-filter-panel.js.map +1 -0
  158. package/dist/components/searchcraft-input-label.js +1 -1
  159. package/dist/components/searchcraft-input.js +1 -1
  160. package/dist/components/searchcraft-results-info.js +8 -7
  161. package/dist/components/searchcraft-results-info.js.map +1 -1
  162. package/dist/components/searchcraft-search-icon-set.js +44 -1
  163. package/dist/components/searchcraft-search-icon-set.js.map +1 -1
  164. package/dist/components/searchcraft-slider.js +1 -95
  165. package/dist/components/searchcraft-slider.js.map +1 -1
  166. package/dist/components/searchcraft-spinner-dark.js +1 -1
  167. package/dist/components/searchcraft-spinner-light.js +29 -1
  168. package/dist/components/searchcraft-spinner-light.js.map +1 -1
  169. package/dist/components/searchcraft-toggle-button.js +1 -91
  170. package/dist/components/searchcraft-toggle-button.js.map +1 -1
  171. package/dist/esm/{index-0ac5bb53.js → index-88dc5f88.js} +317 -10
  172. package/dist/esm/index-88dc5f88.js.map +1 -0
  173. package/dist/esm/index.js +2 -1
  174. package/dist/esm/index.js.map +1 -1
  175. package/dist/esm/loader.js +3 -3
  176. package/dist/esm/package-ee16f835.js +66 -0
  177. package/dist/esm/package-ee16f835.js.map +1 -0
  178. package/dist/esm/searchcraft-auto-search-form.entry.js +156 -0
  179. package/dist/esm/searchcraft-auto-search-form.entry.js.map +1 -0
  180. package/dist/esm/searchcraft-base-search-form.entry.js +13 -8
  181. package/dist/esm/searchcraft-base-search-form.entry.js.map +1 -1
  182. package/dist/esm/searchcraft-base-search-result.entry.js +70 -0
  183. package/dist/esm/searchcraft-base-search-result.entry.js.map +1 -0
  184. package/dist/esm/searchcraft-base-search-results.entry.js +125 -0
  185. package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -0
  186. package/dist/esm/searchcraft-button-icon.entry.js +1 -1
  187. package/dist/esm/searchcraft-button.entry.js +4 -9
  188. package/dist/esm/searchcraft-button.entry.js.map +1 -1
  189. package/dist/esm/searchcraft-check-icon_2.entry.js +23 -0
  190. package/dist/esm/searchcraft-check-icon_2.entry.js.map +1 -0
  191. package/dist/{components/p-70722ab2.js → esm/searchcraft-clear-icon-set.entry.js} +7 -24
  192. package/dist/esm/searchcraft-clear-icon-set.entry.js.map +1 -0
  193. package/dist/esm/searchcraft-error-message_3.entry.js +89 -0
  194. package/dist/esm/searchcraft-error-message_3.entry.js.map +1 -0
  195. package/dist/esm/searchcraft-facet-list_3.entry.js +177 -0
  196. package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -0
  197. package/dist/esm/searchcraft-filter-panel.entry.js +130 -0
  198. package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -0
  199. package/dist/esm/searchcraft-javascript-sdk.js +3 -3
  200. package/dist/esm/searchcraft-results-info.entry.js +42 -0
  201. package/dist/esm/searchcraft-results-info.entry.js.map +1 -0
  202. package/dist/{components/p-a3bd1bc8.js → esm/searchcraft-search-icon-set.entry.js} +7 -26
  203. package/dist/esm/searchcraft-search-icon-set.entry.js.map +1 -0
  204. package/dist/esm/searchcraft-spinner-dark.entry.js +18 -0
  205. package/dist/esm/searchcraft-spinner-dark.entry.js.map +1 -0
  206. package/dist/esm/searchcraft-spinner-light.entry.js +18 -0
  207. package/dist/esm/searchcraft-spinner-light.entry.js.map +1 -0
  208. package/dist/esm/store-52436995.js +941 -0
  209. package/dist/esm/store-52436995.js.map +1 -0
  210. package/dist/esm/utils-89a02921.js +161 -0
  211. package/dist/esm/utils-89a02921.js.map +1 -0
  212. package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
  213. package/dist/searchcraft-javascript-sdk/p-08bd95f1.entry.js +2 -0
  214. package/dist/searchcraft-javascript-sdk/p-08bd95f1.entry.js.map +1 -0
  215. package/dist/searchcraft-javascript-sdk/p-0deddac7.js +2 -0
  216. package/dist/searchcraft-javascript-sdk/p-0deddac7.js.map +1 -0
  217. package/dist/searchcraft-javascript-sdk/p-15f9891d.entry.js +2 -0
  218. package/dist/searchcraft-javascript-sdk/p-15f9891d.entry.js.map +1 -0
  219. package/dist/searchcraft-javascript-sdk/p-2419a8c5.entry.js +2 -0
  220. package/dist/searchcraft-javascript-sdk/p-2419a8c5.entry.js.map +1 -0
  221. package/dist/searchcraft-javascript-sdk/p-343adbe3.entry.js +2 -0
  222. package/dist/searchcraft-javascript-sdk/p-343adbe3.entry.js.map +1 -0
  223. package/dist/searchcraft-javascript-sdk/p-3a2d9be9.entry.js +2 -0
  224. package/dist/searchcraft-javascript-sdk/p-3a2d9be9.entry.js.map +1 -0
  225. package/dist/searchcraft-javascript-sdk/p-4278ff89.entry.js +2 -0
  226. package/dist/searchcraft-javascript-sdk/p-4278ff89.entry.js.map +1 -0
  227. package/dist/searchcraft-javascript-sdk/p-4c32c87d.js +3 -0
  228. package/dist/searchcraft-javascript-sdk/p-4c32c87d.js.map +1 -0
  229. package/dist/searchcraft-javascript-sdk/p-56413bef.entry.js +2 -0
  230. package/dist/searchcraft-javascript-sdk/p-56413bef.entry.js.map +1 -0
  231. package/dist/searchcraft-javascript-sdk/p-69eed21e.js +2 -0
  232. package/dist/searchcraft-javascript-sdk/p-69eed21e.js.map +1 -0
  233. package/dist/searchcraft-javascript-sdk/{p-5ec960bd.entry.js → p-69f64bdd.entry.js} +2 -2
  234. package/dist/searchcraft-javascript-sdk/p-7c59b3cd.entry.js +2 -0
  235. package/dist/searchcraft-javascript-sdk/p-7c59b3cd.entry.js.map +1 -0
  236. package/dist/searchcraft-javascript-sdk/p-93e9de71.entry.js +2 -0
  237. package/dist/searchcraft-javascript-sdk/p-93e9de71.entry.js.map +1 -0
  238. package/dist/searchcraft-javascript-sdk/p-9647ae41.entry.js +2 -0
  239. package/dist/searchcraft-javascript-sdk/p-9647ae41.entry.js.map +1 -0
  240. package/dist/searchcraft-javascript-sdk/p-a613a6ba.entry.js +2 -0
  241. package/dist/searchcraft-javascript-sdk/p-a613a6ba.entry.js.map +1 -0
  242. package/dist/searchcraft-javascript-sdk/p-acc645c7.entry.js +2 -0
  243. package/dist/searchcraft-javascript-sdk/p-acc645c7.entry.js.map +1 -0
  244. package/dist/searchcraft-javascript-sdk/p-bb03e946.js +11 -0
  245. package/dist/searchcraft-javascript-sdk/p-bb03e946.js.map +1 -0
  246. package/dist/searchcraft-javascript-sdk/p-bf80bbee.entry.js +2 -0
  247. package/dist/searchcraft-javascript-sdk/p-bf80bbee.entry.js.map +1 -0
  248. package/dist/searchcraft-javascript-sdk/p-f4612b94.entry.js +2 -0
  249. package/dist/searchcraft-javascript-sdk/p-f4612b94.entry.js.map +1 -0
  250. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
  251. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
  252. package/dist/types/components/searchcraft-auto-search-form/searchcraft-auto-search-form.d.ts +7 -7
  253. package/dist/types/components/searchcraft-base-search-form/searchcraft-base-search-form.d.ts +5 -4
  254. package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +18 -17
  255. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +17 -5
  256. package/dist/types/components/searchcraft-button/searchcraft-button.d.ts +0 -2
  257. package/dist/types/components/searchcraft-error-message/searchcraft-error-message.d.ts +0 -7
  258. package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +21 -0
  259. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +25 -0
  260. package/dist/types/components/searchcraft-input/searchcraft-input.d.ts +5 -11
  261. package/dist/types/components/searchcraft-input-label/searchcraft-input-label.d.ts +0 -2
  262. package/dist/types/components/searchcraft-slider/searchcraft-slider.d.ts +14 -10
  263. package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +4 -9
  264. package/dist/types/components.d.ts +157 -193
  265. package/dist/types/index.d.ts +2 -1
  266. package/dist/types/provider/store.d.ts +16 -9
  267. package/dist/types/types/index.d.ts +2 -0
  268. package/dist/types/types/searchcraft-base-search-results.types.d.ts +17 -0
  269. package/dist/types/types/searchcraft-filter-panel.types.d.ts +42 -0
  270. package/dist/types/utils/utils.d.ts +24 -15
  271. package/package.json +2 -2
  272. package/dist/cjs/index-6c5282a0.js.map +0 -1
  273. package/dist/cjs/searchcraft-auto-search-form_19.cjs.entry.js +0 -861
  274. package/dist/cjs/searchcraft-auto-search-form_19.cjs.entry.js.map +0 -1
  275. package/dist/cjs/store-f3bec622.js +0 -406
  276. package/dist/cjs/store-f3bec622.js.map +0 -1
  277. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.js +0 -95
  278. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.js.map +0 -1
  279. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.css +0 -33
  280. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js +0 -172
  281. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js.map +0 -1
  282. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.module.css +0 -110
  283. package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.js +0 -122
  284. package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.js.map +0 -1
  285. package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.module.css +0 -79
  286. package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.js +0 -109
  287. package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.js.map +0 -1
  288. package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.module.css +0 -17
  289. package/dist/components/p-07edaa9b.js +0 -67
  290. package/dist/components/p-07edaa9b.js.map +0 -1
  291. package/dist/components/p-27a6ca57.js +0 -149
  292. package/dist/components/p-27a6ca57.js.map +0 -1
  293. package/dist/components/p-4468fba3.js +0 -61
  294. package/dist/components/p-4468fba3.js.map +0 -1
  295. package/dist/components/p-498c7ef9.js +0 -40
  296. package/dist/components/p-498c7ef9.js.map +0 -1
  297. package/dist/components/p-6237f03e.js +0 -60
  298. package/dist/components/p-6237f03e.js.map +0 -1
  299. package/dist/components/p-70722ab2.js.map +0 -1
  300. package/dist/components/p-7498e493.js.map +0 -1
  301. package/dist/components/p-7d1bcd2d.js +0 -88
  302. package/dist/components/p-7d1bcd2d.js.map +0 -1
  303. package/dist/components/p-8c38185e.js +0 -53
  304. package/dist/components/p-8c38185e.js.map +0 -1
  305. package/dist/components/p-a3bd1bc8.js.map +0 -1
  306. package/dist/components/p-ae84b899.js +0 -48
  307. package/dist/components/p-ae84b899.js.map +0 -1
  308. package/dist/components/p-bc3f9025.js +0 -33
  309. package/dist/components/p-bc3f9025.js.map +0 -1
  310. package/dist/components/p-bfb22305.js +0 -33
  311. package/dist/components/p-bfb22305.js.map +0 -1
  312. package/dist/components/p-c31274dd.js +0 -89
  313. package/dist/components/p-c31274dd.js.map +0 -1
  314. package/dist/components/p-ff049f0a.js +0 -313
  315. package/dist/components/p-ff049f0a.js.map +0 -1
  316. package/dist/components/searchcraft-clear-input-button.d.ts +0 -11
  317. package/dist/components/searchcraft-clear-input-button.js +0 -8
  318. package/dist/components/searchcraft-clear-input-button.js.map +0 -1
  319. package/dist/components/searchcraft-filters-list.d.ts +0 -11
  320. package/dist/components/searchcraft-filters-list.js +0 -155
  321. package/dist/components/searchcraft-filters-list.js.map +0 -1
  322. package/dist/components/searchcraft-input-caption.d.ts +0 -11
  323. package/dist/components/searchcraft-input-caption.js +0 -8
  324. package/dist/components/searchcraft-input-caption.js.map +0 -1
  325. package/dist/components/searchcraft-input-icon.d.ts +0 -11
  326. package/dist/components/searchcraft-input-icon.js +0 -8
  327. package/dist/components/searchcraft-input-icon.js.map +0 -1
  328. package/dist/esm/index-0ac5bb53.js.map +0 -1
  329. package/dist/esm/searchcraft-auto-search-form_19.entry.js +0 -839
  330. package/dist/esm/searchcraft-auto-search-form_19.entry.js.map +0 -1
  331. package/dist/esm/store-6af9ea01.js +0 -396
  332. package/dist/esm/store-6af9ea01.js.map +0 -1
  333. package/dist/searchcraft-javascript-sdk/p-05416a3e.entry.js +0 -2
  334. package/dist/searchcraft-javascript-sdk/p-05416a3e.entry.js.map +0 -1
  335. package/dist/searchcraft-javascript-sdk/p-0880cfbb.js +0 -3
  336. package/dist/searchcraft-javascript-sdk/p-0880cfbb.js.map +0 -1
  337. package/dist/searchcraft-javascript-sdk/p-1ab836bf.js +0 -11
  338. package/dist/searchcraft-javascript-sdk/p-1ab836bf.js.map +0 -1
  339. package/dist/searchcraft-javascript-sdk/p-3cb77ee1.entry.js +0 -2
  340. package/dist/searchcraft-javascript-sdk/p-3cb77ee1.entry.js.map +0 -1
  341. package/dist/searchcraft-javascript-sdk/p-72382d90.entry.js +0 -2
  342. package/dist/searchcraft-javascript-sdk/p-72382d90.entry.js.map +0 -1
  343. package/dist/types/components/searchcraft-clear-input-button/searchcraft-clear-input-button.d.ts +0 -10
  344. package/dist/types/components/searchcraft-filters-list/searchcraft-filters-list.d.ts +0 -34
  345. package/dist/types/components/searchcraft-input-caption/searchcraft-input-caption.d.ts +0 -9
  346. package/dist/types/components/searchcraft-input-icon/searchcraft-input-icon.d.ts +0 -9
  347. package/readme.md +0 -11
  348. /package/dist/searchcraft-javascript-sdk/{p-5ec960bd.entry.js.map → p-69f64bdd.entry.js.map} +0 -0
@@ -1,40 +1,56 @@
1
1
  import { h, } from "@stencil/core";
2
- import { CoreSDK as SearchcraftCore, } from "@searchcraft/core";
2
+ import { SearchcraftCore, } from "@searchcraft/core";
3
3
  import { useSearchcraftStore } from "../../provider/store";
4
4
  import { parseCustomStyles } from "../../utils/utils";
5
+ import packageJson from "../../../package.json";
5
6
  export class SearchcraftAutoSearchForm {
6
7
  constructor() {
7
8
  this.debounceTimeout = null;
8
9
  this.debounceDelay = 0;
9
10
  this.searchStore = useSearchcraftStore.getState();
10
- this.handleInputChange = (event) => {
11
- this.query = event.detail;
12
- this.searchStore.setQuery(this.query);
13
- if (this.query.trim() === '') {
14
- this.searchResults = null;
15
- this.searchStore.setSearchResults(null);
11
+ this.setConfigFromString = (configString) => {
12
+ if (configString) {
13
+ try {
14
+ const parsedConfig = JSON.parse(configString);
15
+ this.config = parsedConfig;
16
+ }
17
+ catch (_a) {
18
+ console.error('Error: Invalid config passed to searchcraft-auto-search-form.');
19
+ }
16
20
  }
17
21
  };
18
- this.handleInputKeyUp = (event) => {
22
+ this.handleInputChange = (event) => {
19
23
  const target = event.detail;
20
24
  if (target === this.query) {
21
25
  return;
22
26
  }
23
27
  this.query = target;
24
- if (this.debounceTimeout) {
25
- clearTimeout(this.debounceTimeout);
26
- }
27
- this.debounceTimeout = setTimeout(() => {
28
+ // TODO: When input changes, reset any active filters
29
+ // this.searchStore.resetAllFilters();
30
+ const performSearchActions = () => {
28
31
  if (this.query.trim() === '') {
32
+ this.searchStore.setQuery('');
29
33
  this.searchResults = null;
30
34
  this.searchStore.setSearchResults(null);
35
+ this.inputClearedOrNoResults.emit();
31
36
  }
32
37
  else {
33
38
  this.searchStore.setQuery(this.query);
34
- this.querySubmit.emit(this.query);
39
+ this.querySubmit.emit();
35
40
  this.runSearch();
36
41
  }
37
- }, this.debounceDelay);
42
+ };
43
+ // Only set a timeout if debounceDelay > 0
44
+ if (this.debounceDelay > 0) {
45
+ if (this.debounceTimeout) {
46
+ clearTimeout(this.debounceTimeout);
47
+ }
48
+ this.debounceTimeout = setTimeout(performSearchActions, this.debounceDelay);
49
+ }
50
+ else {
51
+ // Otherwise just call search actions directly
52
+ performSearchActions();
53
+ }
38
54
  };
39
55
  this.handleClearInput = () => {
40
56
  if (this.query === '' && !this.searchResults) {
@@ -61,7 +77,6 @@ export class SearchcraftAutoSearchForm {
61
77
  else {
62
78
  this.error = false;
63
79
  this.searchStore.setQuery(this.query);
64
- this.searchStore.setSelectedFilters([]);
65
80
  try {
66
81
  await this.searchStore.search();
67
82
  }
@@ -77,44 +92,54 @@ export class SearchcraftAutoSearchForm {
77
92
  };
78
93
  this.autoSearchFormClass = '';
79
94
  this.clearInput = () => { };
80
- this.config = {
81
- apiKey: '',
82
- endpointURL: '',
83
- index: [],
84
- };
95
+ this.configString = '';
85
96
  this.customStylesForInput = {};
86
97
  this.inputCaptionValue = '';
87
- this.inputIconHeight = 20;
88
- this.inputIconWidth = 20;
89
98
  this.labelForInput = '';
90
99
  this.placeholderValue = 'Search here';
91
- this.rightToLeftOrientation = false;
92
100
  this.searchContainerClass = '';
101
+ this.config = {
102
+ readKey: '',
103
+ endpointURL: '',
104
+ index: [],
105
+ };
93
106
  this.error = false;
94
107
  this.isRequesting = false;
95
108
  this.query = '';
96
109
  this.searchResults = null;
97
110
  }
98
- componentDidLoad() {
99
- const searchcraft = new SearchcraftCore(this.config);
111
+ init(configString) {
112
+ this.setConfigFromString(configString);
113
+ const searchcraft = new SearchcraftCore(this.config, {
114
+ sdkName: packageJson.name,
115
+ sdkVersion: packageJson.version,
116
+ });
100
117
  this.searchStore.initialize(searchcraft, true);
101
118
  this.unsubscribe = useSearchcraftStore.subscribe((state) => {
102
119
  this.isRequesting = state.isRequesting;
103
120
  this.searchResults = Object.assign({}, state.searchResults);
104
121
  });
105
122
  }
123
+ connectedCallback() {
124
+ if (this.configString) {
125
+ this.init(this.configString);
126
+ }
127
+ }
128
+ onConfigChange(configString) {
129
+ if (configString) {
130
+ this.init(configString);
131
+ }
132
+ }
106
133
  disconnectedCallback() {
107
134
  if (this.unsubscribe) {
108
135
  this.unsubscribe();
109
136
  }
110
137
  }
111
138
  render() {
112
- const formClass = this.rightToLeftOrientation ? 'formRTL' : 'formLTR';
113
139
  const parsedCustomStyles = parseCustomStyles(this.customStylesForInput);
114
- return (h("form", { key: '6f59f4b7d525c62fce6b21712519e3880c6756a2', class: `${formClass}`, onSubmit: this.handleFormSubmit }, h("searchcraft-input-label", { key: 'cbaa772a365131dbfcffec9e2a28438f1c978efe', label: this.labelForInput }), h("searchcraft-input", { key: '70a4933978df3878720e1189a15481123e12eba5', customStyles: parsedCustomStyles, "input-caption-value": this.inputCaptionValue, "input-icon-height": this.inputIconHeight, "input-icon-width": this.inputIconWidth, "is-requesting": this.isRequesting, onClearInput: this.handleClearInput, onInputKeyUp: this.handleInputKeyUp, onSearchInputChange: this.handleInputChange, "placeholder-value": this.placeholderValue, query: this.query, "right-to-left-orientation": this.rightToLeftOrientation }), this.error && (h("searchcraft-error-message", { key: 'd665a04dcc8999a09afa47f1a20156f12db6600c', errorMessage: 'Please enter a search query.' }))));
140
+ return (h("form", { key: 'db78fbc63d2982cc39b54bdecce7d88828540d79', class: 'searchcraft-auto-search-form', onSubmit: this.handleFormSubmit }, h("searchcraft-input-label", { key: 'a7c81bc96652fa062cc99b9743c3db248f17127b', label: this.labelForInput }), h("searchcraft-input", { key: '04b77daaf3e0ae35e38b4f7cf6d1318a349fe7cb', customStyles: parsedCustomStyles, "input-caption-value": this.inputCaptionValue, "is-requesting": this.isRequesting, onClearInput: this.handleClearInput, onInputChange: this.handleInputChange.bind(this), "placeholder-value": this.placeholderValue, query: this.query }), this.error && (h("searchcraft-error-message", { key: '4752c7ea9066e955f3b7dc00fd8cbf99c8113a54', errorMessage: 'Please enter a search query.' }))));
115
141
  }
116
142
  static get is() { return "searchcraft-auto-search-form"; }
117
- static get encapsulation() { return "shadow"; }
118
143
  static get originalStyleUrls() {
119
144
  return {
120
145
  "$": ["searchcraft-auto-search-form.module.scss"]
@@ -161,19 +186,13 @@ export class SearchcraftAutoSearchForm {
161
186
  },
162
187
  "defaultValue": "() => {}"
163
188
  },
164
- "config": {
165
- "type": "unknown",
189
+ "configString": {
190
+ "type": "string",
166
191
  "mutable": false,
167
192
  "complexType": {
168
- "original": "CoreConfigSDK",
169
- "resolved": "CoreConfigSDK",
170
- "references": {
171
- "CoreConfigSDK": {
172
- "location": "import",
173
- "path": "@searchcraft/core",
174
- "id": "../core-sdk/dist/index.d.ts::CoreConfigSDK"
175
- }
176
- }
193
+ "original": "string",
194
+ "resolved": "string",
195
+ "references": {}
177
196
  },
178
197
  "required": false,
179
198
  "optional": false,
@@ -181,7 +200,9 @@ export class SearchcraftAutoSearchForm {
181
200
  "tags": [],
182
201
  "text": ""
183
202
  },
184
- "defaultValue": "{\n apiKey: '',\n endpointURL: '',\n index: [],\n }"
203
+ "attribute": "config-string",
204
+ "reflect": false,
205
+ "defaultValue": "''"
185
206
  },
186
207
  "customStylesForInput": {
187
208
  "type": "string",
@@ -224,42 +245,6 @@ export class SearchcraftAutoSearchForm {
224
245
  "reflect": false,
225
246
  "defaultValue": "''"
226
247
  },
227
- "inputIconHeight": {
228
- "type": "number",
229
- "mutable": false,
230
- "complexType": {
231
- "original": "number",
232
- "resolved": "number",
233
- "references": {}
234
- },
235
- "required": false,
236
- "optional": false,
237
- "docs": {
238
- "tags": [],
239
- "text": ""
240
- },
241
- "attribute": "input-icon-height",
242
- "reflect": false,
243
- "defaultValue": "20"
244
- },
245
- "inputIconWidth": {
246
- "type": "number",
247
- "mutable": false,
248
- "complexType": {
249
- "original": "number",
250
- "resolved": "number",
251
- "references": {}
252
- },
253
- "required": false,
254
- "optional": false,
255
- "docs": {
256
- "tags": [],
257
- "text": ""
258
- },
259
- "attribute": "input-icon-width",
260
- "reflect": false,
261
- "defaultValue": "20"
262
- },
263
248
  "labelForInput": {
264
249
  "type": "string",
265
250
  "mutable": false,
@@ -296,24 +281,6 @@ export class SearchcraftAutoSearchForm {
296
281
  "reflect": false,
297
282
  "defaultValue": "'Search here'"
298
283
  },
299
- "rightToLeftOrientation": {
300
- "type": "boolean",
301
- "mutable": false,
302
- "complexType": {
303
- "original": "boolean",
304
- "resolved": "boolean",
305
- "references": {}
306
- },
307
- "required": false,
308
- "optional": false,
309
- "docs": {
310
- "tags": [],
311
- "text": ""
312
- },
313
- "attribute": "right-to-left-orientation",
314
- "reflect": false,
315
- "defaultValue": "false"
316
- },
317
284
  "searchContainerClass": {
318
285
  "type": "string",
319
286
  "mutable": false,
@@ -336,6 +303,7 @@ export class SearchcraftAutoSearchForm {
336
303
  }
337
304
  static get states() {
338
305
  return {
306
+ "config": {},
339
307
  "error": {},
340
308
  "isRequesting": {},
341
309
  "query": {},
@@ -375,5 +343,11 @@ export class SearchcraftAutoSearchForm {
375
343
  }
376
344
  }];
377
345
  }
346
+ static get watchers() {
347
+ return [{
348
+ "propName": "configString",
349
+ "methodName": "onConfigChange"
350
+ }];
351
+ }
378
352
  }
379
353
  //# sourceMappingURL=searchcraft-auto-search-form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchcraft-auto-search-form.js","sourceRoot":"","sources":["../../../src/components/searchcraft-auto-search-form/searchcraft-auto-search-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n State,\n Event,\n type EventEmitter,\n h,\n} from '@stencil/core';\n\nimport {\n type CoreConfigSDK,\n CoreSDK as SearchcraftCore,\n type SearchcraftResponse,\n} from '@searchcraft/core';\n\nimport { useSearchcraftStore } from '@provider/store';\n\nimport { parseCustomStyles } from '@utils/utils';\n\nimport type { ScInputCustomEvent } from '@components/searchcraft-input/searchcraft-input';\n\n@Component({\n tag: 'searchcraft-auto-search-form',\n styleUrl: 'searchcraft-auto-search-form.module.scss',\n shadow: true,\n})\nexport class SearchcraftAutoSearchForm {\n @Prop() autoSearchFormClass = '';\n @Prop() clearInput: () => void = () => {};\n @Prop() config: CoreConfigSDK = {\n apiKey: '',\n endpointURL: '',\n index: [],\n };\n @Prop() customStylesForInput: string | Record<string, string> = {};\n @Prop() inputCaptionValue = '';\n @Prop() inputIconHeight = 20;\n @Prop() inputIconWidth = 20;\n @Prop() labelForInput = '';\n @Prop() placeholderValue = 'Search here';\n @Prop() rightToLeftOrientation = false;\n @Prop() searchContainerClass = '';\n\n @Event() inputClearedOrNoResults: EventEmitter<void>;\n @Event() querySubmit: EventEmitter<string>;\n\n @State() error = false;\n @State() isRequesting = false;\n @State() query = '';\n @State() searchResults: SearchcraftResponse | null = null;\n\n private debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n private debounceDelay = 0;\n private searchStore = useSearchcraftStore.getState();\n unsubscribe: () => void;\n\n componentDidLoad() {\n const searchcraft = new SearchcraftCore(this.config);\n this.searchStore.initialize(searchcraft, true);\n\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n this.isRequesting = state.isRequesting;\n this.searchResults = { ...state.searchResults };\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n handleInputChange = (event: ScInputCustomEvent<string>) => {\n this.query = event.detail;\n this.searchStore.setQuery(this.query);\n if (this.query.trim() === '') {\n this.searchResults = null;\n this.searchStore.setSearchResults(null);\n }\n };\n\n handleInputKeyUp = (event: ScInputCustomEvent<string>) => {\n const target = event.detail;\n if (target === this.query) {\n return;\n }\n this.query = target;\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.debounceTimeout = setTimeout(() => {\n if (this.query.trim() === '') {\n this.searchResults = null;\n this.searchStore.setSearchResults(null);\n } else {\n this.searchStore.setQuery(this.query);\n this.querySubmit.emit(this.query);\n this.runSearch();\n }\n }, this.debounceDelay);\n };\n\n handleClearInput = () => {\n if (this.query === '' && !this.searchResults) {\n return;\n }\n this.query = '';\n this.searchResults = null;\n this.searchStore.setQuery('');\n this.searchStore.setSearchResults(null);\n\n if (typeof this.clearInput === 'function') {\n this.clearInput();\n }\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.error = false;\n this.inputClearedOrNoResults.emit();\n };\n\n private runSearch = async () => {\n if (this.query.trim() === '') {\n this.error = true;\n this.inputClearedOrNoResults.emit();\n } else {\n this.error = false;\n this.searchStore.setQuery(this.query);\n this.searchStore.setSelectedFilters([]);\n\n try {\n await this.searchStore.search();\n } catch (error) {\n this.error = true;\n this.inputClearedOrNoResults.emit();\n }\n }\n };\n\n handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n await this.runSearch();\n };\n\n render() {\n const formClass = this.rightToLeftOrientation ? 'formRTL' : 'formLTR';\n const parsedCustomStyles = parseCustomStyles(this.customStylesForInput);\n\n return (\n <form class={`${formClass}`} onSubmit={this.handleFormSubmit}>\n <searchcraft-input-label label={this.labelForInput} />\n <searchcraft-input\n customStyles={parsedCustomStyles}\n input-caption-value={this.inputCaptionValue}\n input-icon-height={this.inputIconHeight}\n input-icon-width={this.inputIconWidth}\n is-requesting={this.isRequesting}\n onClearInput={this.handleClearInput}\n onInputKeyUp={this.handleInputKeyUp}\n onSearchInputChange={this.handleInputChange}\n placeholder-value={this.placeholderValue}\n query={this.query}\n right-to-left-orientation={this.rightToLeftOrientation}\n />\n {this.error && (\n <searchcraft-error-message errorMessage='Please enter a search query.' />\n )}\n </form>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"searchcraft-auto-search-form.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-auto-search-form/searchcraft-auto-search-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n State,\n Event,\n type EventEmitter,\n h,\n Watch,\n} from '@stencil/core';\n\nimport {\n type SearchcraftConfig,\n SearchcraftCore,\n type SearchcraftResponse,\n} from '@searchcraft/core';\n\nimport { useSearchcraftStore } from '@provider/store';\nimport { parseCustomStyles } from '@utils/utils';\nimport type { ScInputCustomEvent } from '@components/searchcraft-input/searchcraft-input';\n\nimport packageJson from '../../../package.json';\n\n@Component({\n tag: 'searchcraft-auto-search-form',\n styleUrl: 'searchcraft-auto-search-form.module.scss',\n shadow: false,\n})\nexport class SearchcraftAutoSearchForm {\n @Prop() autoSearchFormClass = '';\n @Prop() clearInput: () => void = () => {};\n @Prop() configString = '';\n @Prop() customStylesForInput: string | Record<string, string> = {};\n @Prop() inputCaptionValue = '';\n @Prop() labelForInput = '';\n @Prop() placeholderValue = 'Search here';\n @Prop() searchContainerClass = '';\n\n @Event() inputClearedOrNoResults: EventEmitter<void>;\n @Event() querySubmit: EventEmitter<string>;\n\n @State() config: SearchcraftConfig = {\n readKey: '',\n endpointURL: '',\n index: [],\n };\n @State() error = false;\n @State() isRequesting = false;\n @State() query = '';\n @State() searchResults: SearchcraftResponse | null = null;\n\n private debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n private debounceDelay = 0;\n private searchStore = useSearchcraftStore.getState();\n unsubscribe: () => void;\n\n private setConfigFromString = (configString: string) => {\n if (configString) {\n try {\n const parsedConfig = JSON.parse(configString) as SearchcraftConfig;\n this.config = parsedConfig;\n } catch {\n console.error(\n 'Error: Invalid config passed to searchcraft-auto-search-form.',\n );\n }\n }\n };\n\n init(configString: string) {\n this.setConfigFromString(configString);\n const searchcraft = new SearchcraftCore(this.config, {\n sdkName: packageJson.name,\n sdkVersion: packageJson.version,\n });\n this.searchStore.initialize(searchcraft, true);\n\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n this.isRequesting = state.isRequesting;\n this.searchResults = { ...state.searchResults };\n });\n }\n\n connectedCallback() {\n if (this.configString) {\n this.init(this.configString);\n }\n }\n\n @Watch('configString')\n onConfigChange(configString: string) {\n if (configString) {\n this.init(configString);\n }\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n handleInputChange = (event: ScInputCustomEvent<string>) => {\n const target = event.detail;\n if (target === this.query) {\n return;\n }\n this.query = target;\n // TODO: When input changes, reset any active filters\n // this.searchStore.resetAllFilters();\n\n const performSearchActions = () => {\n if (this.query.trim() === '') {\n this.searchStore.setQuery('');\n this.searchResults = null;\n this.searchStore.setSearchResults(null);\n this.inputClearedOrNoResults.emit();\n } else {\n this.searchStore.setQuery(this.query);\n this.querySubmit.emit();\n this.runSearch();\n }\n };\n\n // Only set a timeout if debounceDelay > 0\n if (this.debounceDelay > 0) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(\n performSearchActions,\n this.debounceDelay,\n );\n } else {\n // Otherwise just call search actions directly\n performSearchActions();\n }\n };\n\n handleClearInput = () => {\n if (this.query === '' && !this.searchResults) {\n return;\n }\n this.query = '';\n this.searchResults = null;\n this.searchStore.setQuery('');\n this.searchStore.setSearchResults(null);\n\n if (typeof this.clearInput === 'function') {\n this.clearInput();\n }\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.error = false;\n this.inputClearedOrNoResults.emit();\n };\n\n private runSearch = async () => {\n if (this.query.trim() === '') {\n this.error = true;\n this.inputClearedOrNoResults.emit();\n } else {\n this.error = false;\n this.searchStore.setQuery(this.query);\n\n try {\n await this.searchStore.search();\n } catch (error) {\n this.error = true;\n this.inputClearedOrNoResults.emit();\n }\n }\n };\n\n handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n await this.runSearch();\n };\n\n render() {\n const parsedCustomStyles = parseCustomStyles(this.customStylesForInput);\n return (\n <form\n class='searchcraft-auto-search-form'\n onSubmit={this.handleFormSubmit}\n >\n <searchcraft-input-label label={this.labelForInput} />\n <searchcraft-input\n customStyles={parsedCustomStyles}\n input-caption-value={this.inputCaptionValue}\n is-requesting={this.isRequesting}\n onClearInput={this.handleClearInput}\n onInputChange={this.handleInputChange.bind(this)}\n placeholder-value={this.placeholderValue}\n query={this.query}\n />\n {this.error && (\n <searchcraft-error-message errorMessage='Please enter a search query.' />\n )}\n </form>\n );\n }\n}\n"]}
@@ -1,15 +1,104 @@
1
1
  :root {
2
- --font-stack: Helvetica, Arial, sans-serif;
2
+ /** Appearance & Layout */
3
+ --sc-spinner-size: 20px;
4
+ --sc-input-border-radius: 8px;
5
+ --sc-input-search-icon-size: 20px;
6
+ --sc-input-clear-icon-size: 20px;
7
+ --sc-input-padding-left: 44px;
8
+ --sc-input-padding-right: 44px;
9
+ --sc-image-border-radius: 8px;
3
10
  }
4
11
 
5
- .formLTR {
6
- font-family: var(--font-stack);
7
- text-align: left;
8
- width: 100%;
12
+ :root {
13
+ --sc-surface-disabled: #D9D9D9;
14
+ --sc-surface-neutral-primary: #FFFFFF;
15
+ --sc-surface-neutral-secondary: #F3F3F3;
16
+ --sc-surface-neutral-light: #FFFFFF;
17
+ --sc-surface-neutral-primary-hover: #FAFAFA;
18
+ --sc-surface-neutral-primary-active: #F7F7F7;
19
+ --sc-surface-neutral-secondary-hover: #EDEDED;
20
+ --sc-surface-neutral-secondary-active: #E6E6E6;
21
+ --sc-surface-brand-primary: #000000;
22
+ --sc-surface-brand-secondary: #E6E6E6;
23
+ --sc-surface-brand-primary-hover: #2E2E2E;
24
+ --sc-surface-brand-primary-active: #292929;
25
+ --sc-surface-brand-secondary-hover: #EBEBEB;
26
+ --sc-surface-brand-secondary-active: #E0E0E0;
27
+ --sc-surface-success-primary: #008000;
28
+ --sc-surface-success-secondary: #CCFFCC;
29
+ --sc-surface-success-primary-hover: #009900;
30
+ --sc-surface-success-primary-active: #006600;
31
+ --sc-surface-success-secondary-hover: #E6FFE6;
32
+ --sc-surface-success-secondary-active: #E6FFE6;
33
+ --sc-surface-caution-primary: #CC6600;
34
+ --sc-surface-caution-secondary: #FFD9B3;
35
+ --sc-surface-caution-primary-hover: #E57300;
36
+ --sc-surface-caution-primary-active: #B25A00;
37
+ --sc-surface-caution-secondary-hover: #FFE5CC;
38
+ --sc-surface-caution-secondary-active: #FFCC99;
39
+ --sc-surface-danger-primary: #CC0000;
40
+ --sc-surface-danger-secondary: #FFCCCC;
41
+ --sc-surface-danger-primary-hover: #E50000;
42
+ --sc-surface-danger-primary-active: #B30000;
43
+ --sc-surface-danger-secondary-hover: #FFE7E7;
44
+ --sc-surface-danger-secondary-active: #FFB3B3;
45
+ --sc-content-brand: #000000;
46
+ --sc-content-success: #008000;
47
+ --sc-content-caution: #994D00;
48
+ --sc-content-danger: #990000;
49
+ --sc-content-disabled: #737373;
50
+ --sc-content-neutral-primary: #292929;
51
+ --sc-content-neutral-secondary: #404040;
52
+ --sc-content-brand-on-primary: #FFFFFF;
53
+ --sc-content-success-on-primary: #FFFFFF;
54
+ --sc-content-caution-on-primary: #FFFFFF;
55
+ --sc-content-danger-on-primary: #FFFFFF;
56
+ --sc-content-disabled-on-disabled: #737373;
57
+ --sc-border-neutral: rgba(0,0,0, 0.1);
58
+ --sc-border-brand: #000000;
59
+ --sc-border-success: #008000;
60
+ --sc-border-caution: #CC6600;
61
+ --sc-border-danger: #CC0000;
62
+ --sc-border-disabled: #737373;
63
+ }
64
+
65
+ :root {
66
+ /** Typography */
67
+ --sc-font-family: sans-serif;
68
+ --sc-heading-1-font-size: 32px;
69
+ --sc-heading-1-line-height: 36px;
70
+ --sc-heading-1-font-weight: 700;
71
+ --sc-heading-2-font-size: 29px;
72
+ --sc-heading-2-line-height: 32px;
73
+ --sc-heading-2-font-weight: 700;
74
+ --sc-heading-3-font-size: 26px;
75
+ --sc-heading-3-line-height: 28px;
76
+ --sc-heading-3-font-weight: 700;
77
+ --sc-heading-4-font-size: 23px;
78
+ --sc-heading-4-line-height: 24px;
79
+ --sc-heading-4-font-weight: 700;
80
+ --sc-heading-5-font-size: 20px;
81
+ --sc-heading-5-line-height: 24px;
82
+ --sc-heading-5-font-weight: 700;
83
+ --sc-heading-6-font-size: 10px;
84
+ --sc-heading-6-line-height: 12px;
85
+ --sc-heading-6-font-weight: 700;
86
+ --sc-body-bold-font-size: 16px;
87
+ --sc-body-bold-line-height: 20px;
88
+ --sc-body-bold-font-weight: 700;
89
+ --sc-body-font-size: 16px;
90
+ --sc-body-line-height: 20px;
91
+ --sc-body-font-weight:400;
92
+ --sc-body-small-bold-font-size: 12px;
93
+ --sc-body-small-bold-line-height: 16px;
94
+ --sc-body-small-bold-font-weight: 700;
95
+ --sc-body-small-font-size: 12px;
96
+ --sc-body-small-line-height: 16px;
97
+ --sc-body-small-font-weight: 400;
9
98
  }
10
99
 
11
- .formRTL {
12
- font-family: var(--font-stack);
13
- text-align: right;
14
- width: 100%;
100
+ .searchcraft-auto-search-form {
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: 4px;
15
104
  }
@@ -1,13 +1,17 @@
1
1
  import { h } from "@stencil/core";
2
- import { CoreSDK as SearchcraftCore, } from "@searchcraft/core";
2
+ import { SearchcraftCore } from "@searchcraft/core";
3
3
  import { useSearchcraftStore, useThemeStore } from "../../provider/store";
4
+ import packageJson from "../../../package.json";
4
5
  export class SearchcraftBaseSearchForm {
5
6
  constructor() {
6
7
  this.clearInput = () => { };
7
8
  this.searchStore = useSearchcraftStore.getState();
8
9
  this.themeStore = useThemeStore.getState();
9
10
  this.componentDidLoad = () => {
10
- const searchcraft = new SearchcraftCore(this.config);
11
+ const searchcraft = new SearchcraftCore(this.config, {
12
+ sdkName: packageJson.name,
13
+ sdkVersion: packageJson.version,
14
+ });
11
15
  this.searchStore.initialize(searchcraft, true);
12
16
  };
13
17
  this.handleFormSubmit = async (event) => {
@@ -33,22 +37,22 @@ export class SearchcraftBaseSearchForm {
33
37
  this.themeStore.toggleTheme();
34
38
  };
35
39
  this.config = {
36
- apiKey: '',
40
+ readKey: '',
37
41
  endpointURL: '',
38
42
  index: [],
39
43
  };
40
44
  this.errorMessage = 'Search was unsuccessful';
41
- this.labelForInput = 'Search';
42
- this.rightToLeftOrientation = false;
45
+ this.inputLabel = 'Search';
46
+ this.buttonLabel = 'Find';
47
+ this.buttonPlacement = 'right';
43
48
  this.error = false;
44
49
  this.query = '';
45
50
  this.searchResults = null;
46
51
  }
47
52
  render() {
48
- return (h("form", { key: 'f3fa26d678324efddf3bf2bd12b130f24d8f2788', class: this.rightToLeftOrientation ? 'formRTL' : 'formLTR', onSubmit: this.handleFormSubmit }, h("searchcraft-input-label", { key: 'a8011d97796cbd1334e55b18b7e92b85c498e096', label: this.labelForInput }), h("div", { key: '19323cdc3b4d854987710fa45bab9d91d0046c5c', class: 'searchContainer' }, this.rightToLeftOrientation && h("searchcraft-button", { key: '0a8349e990f79ac704a477a615c6072dec5230c2' }), h("searchcraft-input", { key: '3a2a00544c5bcc4ad2e81bc68002a2a8a76bbfda', onClearInput: this.handleClearInput, onSearchInputChange: this.handleSearchInputChange, query: this.query, rightToLeftOrientation: this.rightToLeftOrientation }), !this.rightToLeftOrientation && (h("searchcraft-button", { key: '5094f79b0fccd5c44725176c8f308cc4e0c47eec', onButtonClick: this.handleFormSubmit }))), this.error && (h("searchcraft-error-message", { key: '70fc3e31319e30c9e38a158ee82b8e7c74f88e18', errorMessage: this.errorMessage }))));
53
+ return (h("form", { key: '3200182783a9612326e4350beda3e0facc3abd83', class: 'searchcraft-base-search-form', onSubmit: this.handleFormSubmit }, h("searchcraft-input-label", { key: '51fbd74cab7f82435b21edcee9855fe570199d5a', label: this.inputLabel }), h("div", { key: '245a6e8fd2abf14f379e8dee9a2012a7a0fa7636', class: 'searchcraft-base-search-form-input-container' }, this.buttonPlacement === 'left' && (h("searchcraft-button", { key: '53b09c93f5ebaf548b6954923eaa5eb0e8c6ba18', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), h("searchcraft-input", { key: 'b8154b313b93cbd043bf141bdb505f8fc874428b', onClearInput: this.handleClearInput, onInputChange: this.handleSearchInputChange, query: this.query }), this.buttonPlacement === 'right' && (h("searchcraft-button", { key: '534fbb59f038a670f2a65293fa5dd6a9a3cba92d', onButtonClick: this.handleFormSubmit, label: this.buttonLabel }))), this.error && (h("searchcraft-error-message", { key: '8ed98aa322c4104346ac3dcb578133d8e2758866', errorMessage: this.errorMessage }))));
49
54
  }
50
55
  static get is() { return "searchcraft-base-search-form"; }
51
- static get encapsulation() { return "shadow"; }
52
56
  static get originalStyleUrls() {
53
57
  return {
54
58
  "$": ["searchcraft-base-search-form.module.scss"]
@@ -65,13 +69,13 @@ export class SearchcraftBaseSearchForm {
65
69
  "type": "unknown",
66
70
  "mutable": false,
67
71
  "complexType": {
68
- "original": "CoreConfigSDK",
69
- "resolved": "CoreConfigSDK",
72
+ "original": "SearchcraftConfig",
73
+ "resolved": "SearchcraftConfig",
70
74
  "references": {
71
- "CoreConfigSDK": {
75
+ "SearchcraftConfig": {
72
76
  "location": "import",
73
77
  "path": "@searchcraft/core",
74
- "id": "../core-sdk/dist/index.d.ts::CoreConfigSDK"
78
+ "id": "../core-sdk/dist/index.d.ts::SearchcraftConfig"
75
79
  }
76
80
  }
77
81
  },
@@ -81,7 +85,7 @@ export class SearchcraftBaseSearchForm {
81
85
  "tags": [],
82
86
  "text": ""
83
87
  },
84
- "defaultValue": "{\n apiKey: '',\n endpointURL: '',\n index: [],\n }"
88
+ "defaultValue": "{\n readKey: '',\n endpointURL: '',\n index: [],\n }"
85
89
  },
86
90
  "errorMessage": {
87
91
  "type": "string",
@@ -101,7 +105,7 @@ export class SearchcraftBaseSearchForm {
101
105
  "reflect": false,
102
106
  "defaultValue": "'Search was unsuccessful'"
103
107
  },
104
- "labelForInput": {
108
+ "inputLabel": {
105
109
  "type": "string",
106
110
  "mutable": false,
107
111
  "complexType": {
@@ -115,16 +119,34 @@ export class SearchcraftBaseSearchForm {
115
119
  "tags": [],
116
120
  "text": ""
117
121
  },
118
- "attribute": "label-for-input",
122
+ "attribute": "input-label",
119
123
  "reflect": false,
120
124
  "defaultValue": "'Search'"
121
125
  },
122
- "rightToLeftOrientation": {
123
- "type": "boolean",
126
+ "buttonLabel": {
127
+ "type": "string",
128
+ "mutable": false,
129
+ "complexType": {
130
+ "original": "string",
131
+ "resolved": "string",
132
+ "references": {}
133
+ },
134
+ "required": false,
135
+ "optional": false,
136
+ "docs": {
137
+ "tags": [],
138
+ "text": ""
139
+ },
140
+ "attribute": "button-label",
141
+ "reflect": false,
142
+ "defaultValue": "'Find'"
143
+ },
144
+ "buttonPlacement": {
145
+ "type": "string",
124
146
  "mutable": false,
125
147
  "complexType": {
126
- "original": "boolean",
127
- "resolved": "boolean",
148
+ "original": "'right' | 'left'",
149
+ "resolved": "\"left\" | \"right\"",
128
150
  "references": {}
129
151
  },
130
152
  "required": false,
@@ -133,9 +155,9 @@ export class SearchcraftBaseSearchForm {
133
155
  "tags": [],
134
156
  "text": ""
135
157
  },
136
- "attribute": "right-to-left-orientation",
158
+ "attribute": "button-placement",
137
159
  "reflect": false,
138
- "defaultValue": "false"
160
+ "defaultValue": "'right'"
139
161
  }
140
162
  };
141
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"searchcraft-base-search-form.js","sourceRoot":"","sources":["../../../src/components/searchcraft-base-search-form/searchcraft-base-search-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Event, Prop, State } from '@stencil/core';\n\nimport {\n type CoreConfigSDK,\n CoreSDK as SearchcraftCore,\n} from '@searchcraft/core';\n\nimport { useSearchcraftStore, useThemeStore } from '@provider/store';\n\nimport type { ScInputCustomEvent } from '@components/searchcraft-input/searchcraft-input';\n\n@Component({\n tag: 'searchcraft-base-search-form',\n styleUrl: 'searchcraft-base-search-form.module.scss',\n shadow: true,\n})\nexport class SearchcraftBaseSearchForm {\n @Prop() config: CoreConfigSDK = {\n apiKey: '',\n endpointURL: '',\n index: [],\n };\n @Prop() errorMessage = 'Search was unsuccessful';\n @Prop() labelForInput = 'Search';\n @Prop() rightToLeftOrientation = false;\n\n @Event() clearInput = () => {};\n\n @State() error = false;\n @State() query = '';\n @State() searchResults: string | null = null;\n\n private searchStore = useSearchcraftStore.getState();\n private themeStore = useThemeStore.getState();\n\n componentDidLoad = () => {\n const searchcraft = new SearchcraftCore(this.config);\n this.searchStore.initialize(searchcraft, true);\n };\n\n handleFormSubmit = async (event) => {\n event.preventDefault();\n if (this.query.trim() === '') {\n this.error = true;\n } else {\n this.error = false;\n this.searchStore.setQuery(this.query);\n await this.searchStore.search();\n this.searchResults = JSON.stringify(this.searchStore.searchResults);\n }\n };\n\n handleSearchInputChange = (event: ScInputCustomEvent<string>) => {\n this.query = event.detail;\n };\n\n handleClearInput = () => {\n this.query = '';\n this?.clearInput();\n };\n\n toggleTheme = () => {\n this.themeStore.toggleTheme();\n };\n\n render() {\n return (\n <form\n class={this.rightToLeftOrientation ? 'formRTL' : 'formLTR'}\n onSubmit={this.handleFormSubmit}\n >\n <searchcraft-input-label label={this.labelForInput} />\n <div class='searchContainer'>\n {this.rightToLeftOrientation && <searchcraft-button />}\n <searchcraft-input\n onClearInput={this.handleClearInput}\n onSearchInputChange={this.handleSearchInputChange}\n query={this.query}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n {!this.rightToLeftOrientation && (\n <searchcraft-button onButtonClick={this.handleFormSubmit} />\n )}\n </div>\n {this.error && (\n <searchcraft-error-message errorMessage={this.errorMessage} />\n )}\n </form>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"searchcraft-base-search-form.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-base-search-form/searchcraft-base-search-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Event, Prop, State } from '@stencil/core';\n\nimport { type SearchcraftConfig, SearchcraftCore } from '@searchcraft/core';\n\nimport { useSearchcraftStore, useThemeStore } from '@provider/store';\n\nimport type { ScInputCustomEvent } from '@components/searchcraft-input/searchcraft-input';\n\nimport packageJson from '../../../package.json';\n\n@Component({\n tag: 'searchcraft-base-search-form',\n styleUrl: 'searchcraft-base-search-form.module.scss',\n shadow: false,\n})\nexport class SearchcraftBaseSearchForm {\n @Prop() config: SearchcraftConfig = {\n readKey: '',\n endpointURL: '',\n index: [],\n };\n @Prop() errorMessage = 'Search was unsuccessful';\n @Prop() inputLabel = 'Search';\n @Prop() buttonLabel = 'Find';\n @Prop() buttonPlacement: 'right' | 'left' = 'right';\n\n @Event() clearInput = () => {};\n\n @State() error = false;\n @State() query = '';\n @State() searchResults: string | null = null;\n\n private searchStore = useSearchcraftStore.getState();\n private themeStore = useThemeStore.getState();\n\n componentDidLoad = () => {\n const searchcraft = new SearchcraftCore(this.config, {\n sdkName: packageJson.name,\n sdkVersion: packageJson.version,\n });\n this.searchStore.initialize(searchcraft, true);\n };\n\n handleFormSubmit = async (event) => {\n event.preventDefault();\n if (this.query.trim() === '') {\n this.error = true;\n } else {\n this.error = false;\n this.searchStore.setQuery(this.query);\n await this.searchStore.search();\n this.searchResults = JSON.stringify(this.searchStore.searchResults);\n }\n };\n\n handleSearchInputChange = (event: ScInputCustomEvent<string>) => {\n this.query = event.detail;\n };\n\n handleClearInput = () => {\n this.query = '';\n this?.clearInput();\n };\n\n toggleTheme = () => {\n this.themeStore.toggleTheme();\n };\n\n render() {\n return (\n <form\n class='searchcraft-base-search-form'\n onSubmit={this.handleFormSubmit}\n >\n <searchcraft-input-label label={this.inputLabel} />\n <div class='searchcraft-base-search-form-input-container'>\n {this.buttonPlacement === 'left' && (\n <searchcraft-button\n onButtonClick={this.handleFormSubmit}\n label={this.buttonLabel}\n />\n )}\n <searchcraft-input\n onClearInput={this.handleClearInput}\n onInputChange={this.handleSearchInputChange}\n query={this.query}\n />\n {this.buttonPlacement === 'right' && (\n <searchcraft-button\n onButtonClick={this.handleFormSubmit}\n label={this.buttonLabel}\n />\n )}\n </div>\n {this.error && (\n <searchcraft-error-message errorMessage={this.errorMessage} />\n )}\n </form>\n );\n }\n}\n"]}