@searchcraft/javascript-sdk 0.7.1 → 0.8.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 (306) hide show
  1. package/dist/cjs/{store-f6ba3dfb.js → SearchcraftStore-75fac5e0.js} +576 -443
  2. package/dist/cjs/SearchcraftStore-75fac5e0.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -3
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js +152 -0
  7. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js.map +1 -0
  8. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +30 -80
  9. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -1
  10. package/dist/cjs/searchcraft-button_3.cjs.entry.js +22 -7
  11. package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +19 -18
  13. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +6 -6
  15. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -1
  16. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +20 -33
  17. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +1 -1
  19. package/dist/cjs/searchcraft-pagination.cjs.entry.js +106 -0
  20. package/dist/cjs/searchcraft-pagination.cjs.entry.js.map +1 -0
  21. package/dist/cjs/searchcraft-popover-button.cjs.entry.js +3 -3
  22. package/dist/cjs/searchcraft-popover-button.cjs.entry.js.map +1 -1
  23. package/dist/cjs/searchcraft-popover-form.cjs.entry.js +27 -25
  24. package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +1 -1
  25. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js +101 -0
  26. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js.map +1 -0
  27. package/dist/cjs/searchcraft-results-info.cjs.entry.js +51 -13
  28. package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -1
  29. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js +75 -0
  30. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js.map +1 -0
  31. package/dist/cjs/searchcraft-select.cjs.entry.js +70 -0
  32. package/dist/cjs/searchcraft-select.cjs.entry.js.map +1 -0
  33. package/dist/cjs/searchcraft-theme.cjs.entry.js +29 -11
  34. package/dist/cjs/searchcraft-theme.cjs.entry.js.map +1 -1
  35. package/dist/cjs/units-fe4d8083.js.map +1 -1
  36. package/dist/collection/collection-manifest.json +5 -0
  37. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +86 -208
  38. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
  39. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js +73 -0
  40. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js.map +1 -0
  41. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +37 -144
  42. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
  43. package/dist/collection/components/searchcraft-button/searchcraft-button.js +87 -17
  44. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
  45. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +1 -1
  46. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +8 -8
  47. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -1
  48. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +7 -7
  49. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -1
  50. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +10 -14
  51. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +1 -1
  52. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +1 -1
  53. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js +141 -0
  54. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js.map +1 -0
  55. package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js +1 -1
  56. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +26 -21
  57. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +1 -1
  58. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +59 -92
  59. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +1 -1
  60. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js +73 -0
  61. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js.map +1 -0
  62. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +77 -24
  63. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js.map +1 -1
  64. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +105 -17
  65. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
  66. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js +129 -0
  67. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js.map +1 -0
  68. package/dist/collection/components/searchcraft-select/searchcraft-select.js +261 -0
  69. package/dist/collection/components/searchcraft-select/searchcraft-select.js.map +1 -0
  70. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +2 -2
  71. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js +81 -11
  72. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js.map +1 -1
  73. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +7 -6
  74. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
  75. package/dist/collection/index.js +1 -2
  76. package/dist/collection/index.js.map +1 -1
  77. package/dist/collection/provider/SearchcraftStore.js +160 -0
  78. package/dist/collection/provider/SearchcraftStore.js.map +1 -0
  79. package/dist/collection/provider/SearchcraftStore.types.js +2 -0
  80. package/dist/collection/provider/SearchcraftStore.types.js.map +1 -0
  81. package/dist/collection/provider/store.js +2 -136
  82. package/dist/collection/provider/store.js.map +1 -1
  83. package/dist/collection/utils/units.js.map +1 -1
  84. package/dist/components/index.js +11 -1
  85. package/dist/components/index.js.map +1 -1
  86. package/dist/components/{p-a75ef832.js → p-0e393fe1.js} +2 -2
  87. package/dist/components/{p-a75ef832.js.map → p-0e393fe1.js.map} +1 -1
  88. package/dist/components/p-25ee7496.js +58 -0
  89. package/dist/components/p-25ee7496.js.map +1 -0
  90. package/dist/components/{p-936e2ed4.js → p-38419178.js} +576 -442
  91. package/dist/components/p-38419178.js.map +1 -0
  92. package/dist/components/{p-d95bc2a0.js → p-3df3ff8b.js} +17 -21
  93. package/dist/components/p-3df3ff8b.js.map +1 -0
  94. package/dist/components/{p-1234974c.js → p-433f974c.js} +9 -8
  95. package/dist/components/p-433f974c.js.map +1 -0
  96. package/dist/components/{p-4b92ae26.js → p-4e9cd62e.js} +4 -4
  97. package/dist/components/{p-4b92ae26.js.map → p-4e9cd62e.js.map} +1 -1
  98. package/dist/components/{p-755f491b.js → p-6104fe5d.js} +2 -2
  99. package/dist/components/p-6104fe5d.js.map +1 -0
  100. package/dist/components/{p-b4a8fcbe.js → p-97332d3e.js} +51 -59
  101. package/dist/components/p-97332d3e.js.map +1 -0
  102. package/dist/components/p-bf6a086a.js +92 -0
  103. package/dist/components/p-bf6a086a.js.map +1 -0
  104. package/dist/components/p-bff4d3fc.js +65 -0
  105. package/dist/components/p-bff4d3fc.js.map +1 -0
  106. package/dist/components/{p-521fe971.js → p-d19bf6ff.js} +25 -8
  107. package/dist/components/p-d19bf6ff.js.map +1 -0
  108. package/dist/components/p-de4a48b1.js +65 -0
  109. package/dist/components/p-de4a48b1.js.map +1 -0
  110. package/dist/components/{p-ca881e5c.js → p-e55a7970.js} +2 -2
  111. package/dist/components/{p-ca881e5c.js.map → p-e55a7970.js.map} +1 -1
  112. package/dist/components/p-ec0d230e.js +75 -0
  113. package/dist/components/p-ec0d230e.js.map +1 -0
  114. package/dist/components/{p-54998882.js → p-fc7cda96.js} +10 -10
  115. package/dist/components/p-fc7cda96.js.map +1 -0
  116. package/dist/components/searchcraft-base-search-result-ad.d.ts +11 -0
  117. package/dist/components/searchcraft-base-search-result-ad.js +8 -0
  118. package/dist/components/searchcraft-base-search-result-ad.js.map +1 -0
  119. package/dist/components/searchcraft-base-search-result.js +1 -1
  120. package/dist/components/searchcraft-base-search-results.js +44 -89
  121. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  122. package/dist/components/searchcraft-button.js +1 -1
  123. package/dist/components/searchcraft-error-message.js +1 -1
  124. package/dist/components/searchcraft-facet-list.js +1 -1
  125. package/dist/components/searchcraft-filter-panel.js +9 -9
  126. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  127. package/dist/components/searchcraft-input-form.js +1 -1
  128. package/dist/components/searchcraft-input-label.js +1 -1
  129. package/dist/components/searchcraft-pagination.d.ts +11 -0
  130. package/dist/components/searchcraft-pagination.js +135 -0
  131. package/dist/components/searchcraft-pagination.js.map +1 -0
  132. package/dist/components/searchcraft-popover-button.js +2 -2
  133. package/dist/components/searchcraft-popover-form.js +41 -30
  134. package/dist/components/searchcraft-popover-form.js.map +1 -1
  135. package/dist/components/searchcraft-popover-list-item-ad.d.ts +11 -0
  136. package/dist/components/searchcraft-popover-list-item-ad.js +8 -0
  137. package/dist/components/searchcraft-popover-list-item-ad.js.map +1 -0
  138. package/dist/components/searchcraft-popover-list-item.js +1 -1
  139. package/dist/components/searchcraft-popover-list-view.js +1 -1
  140. package/dist/components/searchcraft-results-info.js +60 -17
  141. package/dist/components/searchcraft-results-info.js.map +1 -1
  142. package/dist/components/searchcraft-search-results-per-page.d.ts +11 -0
  143. package/dist/components/searchcraft-search-results-per-page.js +105 -0
  144. package/dist/components/searchcraft-search-results-per-page.js.map +1 -0
  145. package/dist/components/searchcraft-select.d.ts +11 -0
  146. package/dist/components/searchcraft-select.js +8 -0
  147. package/dist/components/searchcraft-select.js.map +1 -0
  148. package/dist/components/searchcraft-slider.js +1 -1
  149. package/dist/components/searchcraft-theme.js +34 -13
  150. package/dist/components/searchcraft-theme.js.map +1 -1
  151. package/dist/components/searchcraft-toggle-button.js +1 -1
  152. package/dist/esm/{store-aa071d9c.js → SearchcraftStore-3cfd565a.js} +576 -442
  153. package/dist/esm/SearchcraftStore-3cfd565a.js.map +1 -0
  154. package/dist/esm/index.js +1 -1
  155. package/dist/esm/loader.js +1 -1
  156. package/dist/esm/searchcraft-base-search-result_2.entry.js +147 -0
  157. package/dist/esm/searchcraft-base-search-result_2.entry.js.map +1 -0
  158. package/dist/esm/searchcraft-base-search-results.entry.js +30 -80
  159. package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -1
  160. package/dist/esm/searchcraft-button_3.entry.js +22 -7
  161. package/dist/esm/searchcraft-button_3.entry.js.map +1 -1
  162. package/dist/esm/searchcraft-facet-list_3.entry.js +17 -16
  163. package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -1
  164. package/dist/esm/searchcraft-filter-panel.entry.js +5 -5
  165. package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -1
  166. package/dist/esm/searchcraft-input-form_2.entry.js +19 -32
  167. package/dist/esm/searchcraft-input-form_2.entry.js.map +1 -1
  168. package/dist/esm/searchcraft-javascript-sdk.js +1 -1
  169. package/dist/esm/searchcraft-pagination.entry.js +102 -0
  170. package/dist/esm/searchcraft-pagination.entry.js.map +1 -0
  171. package/dist/esm/searchcraft-popover-button.entry.js +2 -2
  172. package/dist/esm/searchcraft-popover-form.entry.js +20 -18
  173. package/dist/esm/searchcraft-popover-form.entry.js.map +1 -1
  174. package/dist/esm/searchcraft-popover-list-item_2.entry.js +96 -0
  175. package/dist/esm/searchcraft-popover-list-item_2.entry.js.map +1 -0
  176. package/dist/esm/searchcraft-results-info.entry.js +51 -13
  177. package/dist/esm/searchcraft-results-info.entry.js.map +1 -1
  178. package/dist/esm/searchcraft-search-results-per-page.entry.js +71 -0
  179. package/dist/esm/searchcraft-search-results-per-page.entry.js.map +1 -0
  180. package/dist/esm/searchcraft-select.entry.js +66 -0
  181. package/dist/esm/searchcraft-select.entry.js.map +1 -0
  182. package/dist/esm/searchcraft-theme.entry.js +29 -11
  183. package/dist/esm/searchcraft-theme.entry.js.map +1 -1
  184. package/dist/esm/{units-b6eba560.js → units-daaf96f5.js} +2 -2
  185. package/dist/esm/units-daaf96f5.js.map +1 -0
  186. package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
  187. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js +2 -0
  188. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js.map +1 -0
  189. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js +2 -0
  190. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js.map +1 -0
  191. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js +2 -0
  192. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js.map +1 -0
  193. package/dist/searchcraft-javascript-sdk/p-38419178.js +11 -0
  194. package/dist/searchcraft-javascript-sdk/p-38419178.js.map +1 -0
  195. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js +2 -0
  196. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js.map +1 -0
  197. package/dist/searchcraft-javascript-sdk/{p-755f491b.js → p-6104fe5d.js} +2 -2
  198. package/dist/searchcraft-javascript-sdk/p-6104fe5d.js.map +1 -0
  199. package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js +2 -0
  200. package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js.map +1 -0
  201. package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js +2 -0
  202. package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js.map +1 -0
  203. package/dist/searchcraft-javascript-sdk/p-7f4dd50c.entry.js +2 -0
  204. package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js +2 -0
  205. package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js.map +1 -0
  206. package/dist/searchcraft-javascript-sdk/p-a3074a6d.entry.js +2 -0
  207. package/dist/searchcraft-javascript-sdk/p-a3074a6d.entry.js.map +1 -0
  208. package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js +2 -0
  209. package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js.map +1 -0
  210. package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js +2 -0
  211. package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js.map +1 -0
  212. package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js +2 -0
  213. package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js.map +1 -0
  214. package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js +2 -0
  215. package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js.map +1 -0
  216. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js +2 -0
  217. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js.map +1 -0
  218. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
  219. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
  220. package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +20 -41
  221. package/dist/types/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.d.ts +14 -0
  222. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +9 -18
  223. package/dist/types/components/searchcraft-button/searchcraft-button.d.ts +17 -6
  224. package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +1 -1
  225. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +2 -2
  226. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +1 -1
  227. package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +33 -0
  228. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +9 -7
  229. package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +9 -12
  230. package/dist/types/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.d.ts +14 -0
  231. package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +7 -4
  232. package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +26 -4
  233. package/dist/types/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.d.ts +33 -0
  234. package/dist/types/components/searchcraft-select/searchcraft-select.d.ts +64 -0
  235. package/dist/types/components/searchcraft-theme/searchcraft-theme.d.ts +20 -1
  236. package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +1 -1
  237. package/dist/types/components.d.ts +476 -166
  238. package/dist/types/index.d.ts +1 -2
  239. package/dist/types/provider/SearchcraftStore.d.ts +4 -0
  240. package/dist/types/provider/SearchcraftStore.types.d.ts +44 -0
  241. package/dist/types/provider/store.d.ts +2 -34
  242. package/dist/types/utils/units.d.ts +1 -1
  243. package/package.json +3 -3
  244. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +0 -117
  245. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +0 -1
  246. package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js +0 -49
  247. package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js.map +0 -1
  248. package/dist/cjs/store-f6ba3dfb.js.map +0 -1
  249. package/dist/collection/types/_shared.types.js +0 -2
  250. package/dist/collection/types/_shared.types.js.map +0 -1
  251. package/dist/collection/types/index.js +0 -5
  252. package/dist/collection/types/index.js.map +0 -1
  253. package/dist/collection/types/searchcraft-base-search-results.types.js +0 -2
  254. package/dist/collection/types/searchcraft-base-search-results.types.js.map +0 -1
  255. package/dist/collection/types/searchcraft-filter-panel.types.js +0 -2
  256. package/dist/collection/types/searchcraft-filter-panel.types.js.map +0 -1
  257. package/dist/collection/types/searchcraft-popover-form.types.js +0 -2
  258. package/dist/collection/types/searchcraft-popover-form.types.js.map +0 -1
  259. package/dist/components/p-0ef4ab33.js +0 -66
  260. package/dist/components/p-0ef4ab33.js.map +0 -1
  261. package/dist/components/p-1234974c.js.map +0 -1
  262. package/dist/components/p-506cdac1.js +0 -58
  263. package/dist/components/p-506cdac1.js.map +0 -1
  264. package/dist/components/p-521fe971.js.map +0 -1
  265. package/dist/components/p-54998882.js.map +0 -1
  266. package/dist/components/p-755f491b.js.map +0 -1
  267. package/dist/components/p-936e2ed4.js.map +0 -1
  268. package/dist/components/p-b4a8fcbe.js.map +0 -1
  269. package/dist/components/p-d95bc2a0.js.map +0 -1
  270. package/dist/esm/searchcraft-base-search-result.entry.js +0 -113
  271. package/dist/esm/searchcraft-base-search-result.entry.js.map +0 -1
  272. package/dist/esm/searchcraft-popover-list-item.entry.js +0 -45
  273. package/dist/esm/searchcraft-popover-list-item.entry.js.map +0 -1
  274. package/dist/esm/store-aa071d9c.js.map +0 -1
  275. package/dist/esm/units-b6eba560.js.map +0 -1
  276. package/dist/searchcraft-javascript-sdk/p-26f5263d.entry.js +0 -2
  277. package/dist/searchcraft-javascript-sdk/p-26f5263d.entry.js.map +0 -1
  278. package/dist/searchcraft-javascript-sdk/p-2ff7eb35.entry.js +0 -2
  279. package/dist/searchcraft-javascript-sdk/p-2ff7eb35.entry.js.map +0 -1
  280. package/dist/searchcraft-javascript-sdk/p-36f0532e.entry.js +0 -2
  281. package/dist/searchcraft-javascript-sdk/p-36f0532e.entry.js.map +0 -1
  282. package/dist/searchcraft-javascript-sdk/p-41b6bc5d.entry.js +0 -2
  283. package/dist/searchcraft-javascript-sdk/p-41b6bc5d.entry.js.map +0 -1
  284. package/dist/searchcraft-javascript-sdk/p-57eddb07.entry.js +0 -2
  285. package/dist/searchcraft-javascript-sdk/p-57eddb07.entry.js.map +0 -1
  286. package/dist/searchcraft-javascript-sdk/p-5d6fbee0.entry.js +0 -2
  287. package/dist/searchcraft-javascript-sdk/p-5d6fbee0.entry.js.map +0 -1
  288. package/dist/searchcraft-javascript-sdk/p-64c5a1d2.entry.js +0 -2
  289. package/dist/searchcraft-javascript-sdk/p-64c5a1d2.entry.js.map +0 -1
  290. package/dist/searchcraft-javascript-sdk/p-755f491b.js.map +0 -1
  291. package/dist/searchcraft-javascript-sdk/p-8b0a60b3.entry.js +0 -2
  292. package/dist/searchcraft-javascript-sdk/p-8b0a60b3.entry.js.map +0 -1
  293. package/dist/searchcraft-javascript-sdk/p-936e2ed4.js +0 -11
  294. package/dist/searchcraft-javascript-sdk/p-936e2ed4.js.map +0 -1
  295. package/dist/searchcraft-javascript-sdk/p-c7df8be6.entry.js +0 -2
  296. package/dist/searchcraft-javascript-sdk/p-c7df8be6.entry.js.map +0 -1
  297. package/dist/searchcraft-javascript-sdk/p-eb6058e8.entry.js +0 -2
  298. package/dist/searchcraft-javascript-sdk/p-eb6058e8.entry.js.map +0 -1
  299. package/dist/searchcraft-javascript-sdk/p-faaa4394.entry.js +0 -2
  300. package/dist/types/types/_shared.types.d.ts +0 -46
  301. package/dist/types/types/index.d.ts +0 -5
  302. package/dist/types/types/searchcraft-base-search-results.types.d.ts +0 -11
  303. package/dist/types/types/searchcraft-filter-panel.types.d.ts +0 -43
  304. package/dist/types/types/searchcraft-popover-form.types.d.ts +0 -9
  305. /package/dist/searchcraft-javascript-sdk/{p-faaa4394.entry.js.map → p-7f4dd50c.entry.js.map} +0 -0
  306. /package/dist/types/{types → themes}/raw.d.ts +0 -0
@@ -1 +1 @@
1
- {"file":"p-4b92ae26.js","mappings":"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","names":[],"sources":["src/components/searchcraft-slider/searchcraft-slider.tsx"],"sourcesContent":["import {\n Component,\n Event,\n type EventEmitter,\n h,\n State,\n Prop,\n} from '@stencil/core';\nimport { getMillis } from '@utils';\nimport classNames from 'classnames';\n\n/**\n * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value.\n * The component renders a slider interface, which can be used to visually choose a value between two boundaries.\n * It is consumed by the `searchcraft-filter-panel` component.\n */\n@Component({\n tag: 'searchcraft-slider',\n shadow: false,\n})\nexport class SearchcraftSlider {\n /**\n * The maximum value allowed.\n */\n @Prop() max = 100;\n /**\n * The minimum value allowed.\n */\n @Prop() min = 0;\n /**\n * The granularity that the value must adhere to.\n */\n @Prop() granularity: number = getMillis('month');\n /** The type of data allowed. */\n @Prop() dataType: 'number' | 'date' = 'number';\n\n @State() endValue = this.max;\n @State() startValue = this.min;\n @State() lastFocusedHandle: 'min' | 'max' = 'max';\n\n /**\n * When the range has changed.\n * */\n @Event() rangeChanged:\n | EventEmitter<{ startValue: number; endValue: number }>\n | undefined;\n\n componentDidLoad() {\n this.startValue = this.min;\n this.endValue = this.max;\n }\n\n private emitUpdate = async () => {\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n };\n\n private handleStartValueChange = (event: InputEvent) => {\n const inputElement = event.target as HTMLInputElement;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n if (value <= this.endValue) {\n this.startValue = value;\n this.emitUpdate();\n } else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n\n private handleEndValueChange = (event: InputEvent) => {\n const inputElement = event.target as HTMLInputElement;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n if (value >= this.startValue) {\n this.endValue = value;\n this.emitUpdate();\n } else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n\n render() {\n const rangeMin = this.min;\n const rangeMax = this.max;\n const startPercent =\n ((this.startValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n const endPercent =\n ((this.endValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n\n const startLabel =\n this.dataType === 'number'\n ? this.startValue\n : new Date(this.startValue).getFullYear();\n\n const endLabel =\n this.dataType === 'number'\n ? this.endValue\n : new Date(this.endValue).getFullYear();\n\n return (\n <div class='searchcraft-slider-container'>\n <div class='searchcraft-slider-range-container'>\n <div\n class='searchcraft-slider-active-range'\n style={{\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n }}\n />\n <input\n class={classNames(\n 'searchcraft-slider-input',\n 'searchcraft-slider-input-min-handle',\n )}\n max={this.max}\n min={this.min}\n onInput={this.handleStartValueChange.bind(this)}\n step={this.granularity}\n style={{ zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }}\n type='range'\n value={this.startValue}\n />\n <input\n class={classNames(\n 'searchcraft-slider-input',\n 'searchcraft-slider-input-max-handle',\n )}\n max={this.max}\n min={this.min}\n onInput={this.handleEndValueChange.bind(this)}\n step={this.granularity}\n style={{ zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }}\n type='range'\n value={this.endValue}\n />\n </div>\n <div class='searchcraft-slider-label-container'>\n <span class='searchcraft-slider-label'>{startLabel}</span>\n <span class='searchcraft-slider-label'>{endLabel}</span>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-4e9cd62e.js","mappings":"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","names":[],"sources":["src/components/searchcraft-slider/searchcraft-slider.tsx"],"sourcesContent":["import {\n Component,\n Event,\n type EventEmitter,\n h,\n State,\n Prop,\n} from '@stencil/core';\nimport { getMillis } from '@utils';\nimport classNames from 'classnames';\n\n/**\n * This web component is designed to allow users to select a value from a range defined by a minimum and maximum value.\n * The component renders a slider interface, which can be used to visually choose a value between two boundaries.\n * It is consumed by the `searchcraft-filter-panel` component.\n */\n@Component({\n tag: 'searchcraft-slider',\n shadow: false,\n})\nexport class SearchcraftSlider {\n /**\n * The maximum value allowed.\n */\n @Prop() max = 100;\n /**\n * The minimum value allowed.\n */\n @Prop() min = 0;\n /**\n * The granularity that the value must adhere to.\n */\n @Prop() granularity: number = getMillis('month');\n /** The type of data allowed. */\n @Prop() dataType: 'number' | 'date' = 'number';\n\n @State() endValue = this.max;\n @State() startValue = this.min;\n @State() lastFocusedHandle: 'min' | 'max' = 'max';\n\n /**\n * When the range has changed.\n * */\n @Event() rangeChanged:\n | EventEmitter<{ startValue: number; endValue: number }>\n | undefined;\n\n componentDidLoad() {\n this.startValue = this.min;\n this.endValue = this.max;\n }\n\n private emitUpdate = async () => {\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n };\n\n private handleStartValueChange = (event: InputEvent) => {\n const inputElement = event.target as HTMLInputElement;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n if (value <= this.endValue) {\n this.startValue = value;\n this.emitUpdate();\n } else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n\n private handleEndValueChange = (event: InputEvent) => {\n const inputElement = event.target as HTMLInputElement;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n if (value >= this.startValue) {\n this.endValue = value;\n this.emitUpdate();\n } else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n\n render() {\n const rangeMin = this.min;\n const rangeMax = this.max;\n const startPercent =\n ((this.startValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n const endPercent =\n ((this.endValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n\n const startLabel =\n this.dataType === 'number'\n ? this.startValue\n : new Date(this.startValue).getFullYear();\n\n const endLabel =\n this.dataType === 'number'\n ? this.endValue\n : new Date(this.endValue).getFullYear();\n\n return (\n <div class='searchcraft-slider-container'>\n <div class='searchcraft-slider-range-container'>\n <div\n class='searchcraft-slider-active-range'\n style={{\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n }}\n />\n <input\n class={classNames(\n 'searchcraft-slider-input',\n 'searchcraft-slider-input-min-handle',\n )}\n max={this.max}\n min={this.min}\n onInput={this.handleStartValueChange.bind(this)}\n step={this.granularity}\n style={{ zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }}\n type='range'\n value={this.startValue}\n />\n <input\n class={classNames(\n 'searchcraft-slider-input',\n 'searchcraft-slider-input-max-handle',\n )}\n max={this.max}\n min={this.min}\n onInput={this.handleEndValueChange.bind(this)}\n step={this.granularity}\n style={{ zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }}\n type='range'\n value={this.endValue}\n />\n </div>\n <div class='searchcraft-slider-label-container'>\n <span class='searchcraft-slider-label'>{startLabel}</span>\n <span class='searchcraft-slider-label'>{endLabel}</span>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -79,6 +79,6 @@ function getFormattedTimeFromNow(timestamp) {
79
79
  return `${years}y ago`;
80
80
  }
81
81
 
82
- export { getMillis as a, formatNumberWithCommas as f, getDocumentValueFromSearchResultMapping as g };
82
+ export { getDocumentValueFromSearchResultMapping as a, formatNumberWithCommas as f, getMillis as g };
83
83
 
84
- //# sourceMappingURL=p-755f491b.js.map
84
+ //# sourceMappingURL=p-6104fe5d.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-6104fe5d.js","mappings":"AAEA;;;;;;;;;SASgB,uCAAuC,CACrD,QAA6C,EAC7C,OAAwC;IAExC,IAAI,QAAQ,IAAI,OAAO,EAAE;QACvB,OAAO,OAAO,CAAC,UAAU;aACtB,GAAG,CAAC,CAAC,gBAAgB;YACpB,IAAI,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEtD,IAAI,UAAU,EAAE;gBACd,QAAQ,gBAAgB,CAAC,QAAQ;oBAC/B,KAAK,MAAM,EAAE;;wBAEX,UAAU,GAAG,uBAAuB,CAAC,UAAoB,CAAC,CAAC;wBAC3D,MAAM;qBACP;oBACD,KAAK,QAAQ,EAAE;wBACb,UAAU,GAAG,IAAI,CAAC,YAAY,CAC5B,gBAAgB,CAAC,kBAAkB,EACnC,gBAAgB,CAAC,mBAAmB,CACrC,CAAC,MAAM,CACL,UAAqB,IAAI,gBAAgB,CAAC,WAAW,IAAI,CAAC,CAAC,CAC7D,CAAC;wBACF,MAAM;qBACP;iBAGF;aACF;YAED,OAAO,UAAU,CAAC;SACnB,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;aAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;KACnC;AACH,CAAC;SAEe,SAAS,CAAC,IAAuC;IAC/D,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,CAAC;IACtC,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,CAAC;IACvC,MAAM,YAAY,GAAG,GAAG,GAAG,WAAW,CAAC;IAEvC,QAAQ,IAAI;QACV,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB;YACE,OAAO,OAAO,CAAC;KAClB;AACH,CAAC;SAEe,sBAAsB,CAAC,MAAM;IAC3C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;SAOgB,uBAAuB,CAAC,SAAiB;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAC7C,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAErC,IAAI,OAAO,GAAG,EAAE,EAAE;QAChB,OAAO,GAAG,OAAO,OAAO,CAAC;KAC1B;IACD,IAAI,KAAK,GAAG,EAAE,EAAE;QACd,OAAO,GAAG,KAAK,OAAO,CAAC;KACxB;IACD,IAAI,IAAI,GAAG,GAAG,EAAE;QACd,OAAO,GAAG,IAAI,OAAO,CAAC;KACvB;IACD,OAAO,GAAG,KAAK,OAAO,CAAC;AACzB;;;;","names":[],"sources":["src/utils/units.ts"],"sourcesContent":["import type { SearchResultMapping } from '@searchcraft/core';\n\n/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n *\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nexport function getDocumentValueFromSearchResultMapping(\n document: Record<string, unknown> | undefined,\n mapping: SearchResultMapping | undefined,\n): string | undefined {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n // TODO: Use fieldNameDetails.DateFormatOptions to format the date\n valueFound = getFormattedTimeFromNow(valueFound as string);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(\n fieldNameDetails.numberFormatLocale,\n fieldNameDetails.numberFormatOptions,\n ).format(\n (valueFound as number) * (fieldNameDetails.numberScale || 1),\n );\n break;\n }\n default:\n break;\n }\n }\n\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\n\nexport function getMillis(unit: 'year' | 'month' | 'day' | 'hour'): number {\n const millisInHour = 60 * 60 * 1000;\n const millisInDay = 24 * millisInHour;\n const millisInMonth = 30 * millisInDay;\n const millisInYear = 365 * millisInDay;\n\n switch (unit) {\n case 'hour':\n return millisInHour;\n case 'day':\n return millisInDay;\n case 'month':\n return millisInMonth;\n case 'year':\n return millisInYear;\n default:\n return 3600000;\n }\n}\n\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\n/**\n * Given a timestamp value, returns a formatted time string for the time\n * since now.\n *\n * @param timestamp\n * @returns {string} Formatted string value\n */\nexport function getFormattedTimeFromNow(timestamp: string): string {\n const now = new Date();\n const inputTime = new Date(timestamp);\n const diffInSeconds = Math.floor(\n (now.getTime() - inputTime.getTime()) / 1000,\n );\n\n const minutes = Math.floor(diffInSeconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const years = Math.floor(days / 365);\n\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n if (hours < 24) {\n return `${hours}h ago`;\n }\n if (days < 365) {\n return `${days}d ago`;\n }\n return `${years}y ago`;\n}\n"],"version":3}
@@ -1,47 +1,14 @@
1
1
  import { p as proxyCustomElement, H, h, F as Fragment } from './p-5365011f.js';
2
- import { u as useSearchcraftStore } from './p-936e2ed4.js';
2
+ import { u as useSearchcraftStore } from './p-38419178.js';
3
+ import { a as getDocumentValueFromSearchResultMapping } from './p-6104fe5d.js';
3
4
 
4
5
  const SearchcraftBaseSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftBaseSearchResult extends H {
5
6
  constructor() {
6
7
  super();
7
8
  this.__registerHost();
8
9
  }
9
- /**
10
- * The title content.
11
- */
12
- titleContent;
13
- /**
14
- * The subtitle content.
15
- */
16
- subtitleContent;
17
- /**
18
- * The body content.
19
- */
20
- bodyContent;
21
- /**
22
- * The footer content.
23
- */
24
- footerContent;
25
- /**
26
- * The label for the button rendered when containerHref is not present.
27
- */
28
- buttonLabel;
29
- /**
30
- * The link for the button rendered when containerHref is not present.
31
- */
32
- buttonHref;
33
- /**
34
- * Where to open the link for the button rendered when containerHref is not present.
35
- */
36
- buttonTarget = '_blank';
37
- /**
38
- * The relationship between the current document and the link for the button rendered when containerHref is not present.
39
- */
40
- buttonRel;
41
- /**
42
- * The link for the containing element.
43
- */
44
- containerHref;
10
+ item;
11
+ searchResultMappings;
45
12
  /**
46
13
  * Where to open the link for the containing element.
47
14
  */
@@ -51,13 +18,13 @@ const SearchcraftBaseSearchResult = /*@__PURE__*/ proxyCustomElement(class Searc
51
18
  */
52
19
  containerRel;
53
20
  /**
54
- * The image source.
21
+ * Where to open the link for the button rendered when containerHref is not present.
55
22
  */
56
- imageSrc;
23
+ buttonTarget = '_blank';
57
24
  /**
58
- * The image alternative text.
25
+ * The relationship between the current document and the link for the button rendered when containerHref is not present.
59
26
  */
60
- imageAlt;
27
+ buttonRel;
61
28
  /**
62
29
  * The placement of the image.
63
30
  */
@@ -70,14 +37,37 @@ const SearchcraftBaseSearchResult = /*@__PURE__*/ proxyCustomElement(class Searc
70
37
  * The position in the document. Used with the "document_clicked" measure event.
71
38
  */
72
39
  documentPosition = 0;
40
+ titleContent;
41
+ subtitleContent;
42
+ bodyContent;
43
+ footerContent;
44
+ buttonLabel;
45
+ buttonHref;
46
+ containerHref;
47
+ imageSrc;
48
+ imageAlt;
73
49
  searchcraftStore = useSearchcraftStore.getState();
74
- recordMeasureEvent = () => {
50
+ connectedCallback() {
51
+ if (this.item) {
52
+ this.mapValuesFromDocument(this.item.document);
53
+ }
54
+ }
55
+ mapValuesFromDocument(document) {
56
+ this.titleContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.title);
57
+ this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.subtitle);
58
+ this.bodyContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.body);
59
+ this.containerHref = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.containerHref);
60
+ this.buttonHref = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.buttonHref);
61
+ this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.imageSource);
62
+ this.footerContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.footer);
63
+ }
64
+ handleLinkClick = () => {
75
65
  const searchcraft = this.searchcraftStore.getSearchcraftInstance();
76
66
  if (searchcraft) {
77
67
  const document_position = this.documentPosition;
78
- const search_term = this.searchcraftStore.query;
79
- const number_of_documents = this.searchcraftStore.searchResults?.data?.hits?.length || 0;
80
- searchcraft.sendMeasureEvent('document_clicked', {
68
+ const search_term = this.searchcraftStore.searchTerm;
69
+ const number_of_documents = this.searchcraftStore.searchClientResponseItems.length;
70
+ searchcraft.measureClient?.sendMeasureEvent('document_clicked', {
81
71
  document_position,
82
72
  number_of_documents,
83
73
  search_term,
@@ -102,28 +92,30 @@ const SearchcraftBaseSearchResult = /*@__PURE__*/ proxyCustomElement(class Searc
102
92
  const contentContainer = (h(Fragment, null, this.imageSrc && this.imagePlacement === 'left' && imageContainer, h("div", { class: 'searchcraft-base-search-result-content-container' }, this.titleContent && (h("h2", { class: 'searchcraft-base-search-result-title', style: styles.title || {} }, this.titleContent)), this.subtitleContent && (h("h3", { class: 'searchcraft-base-search-result-subtitle', style: styles.subtitle || {} }, this.subtitleContent)), this.bodyContent && (h("p", { class: 'searchcraft-base-search-result-body-content', style: styles.primaryContent || {} }, this.bodyContent)), this.footerContent && (h("p", { class: 'searchcraft-base-search-result-footer-content', style: styles.secondaryContent || {} }, this.footerContent)), this.buttonHref && !this.containerHref && this.buttonLabel && (h("a", { class: 'searchcraft-search-result-button', href: this.buttonHref, style: styles.button || {}, target: this.buttonTarget, rel: this.buttonRel }, this.buttonLabel))), this.imageSrc && this.imagePlacement === 'right' && imageContainer));
103
93
  /** Render as an anchor tag if the containerHref prop is present. */
104
94
  if (this.containerHref) {
105
- return (h("a", { class: 'searchcraft-search-result-container', onClick: this.recordMeasureEvent, href: this.containerHref, rel: this.containerRel, style: styles.container || {}, tabindex: '0', target: this.containerTarget }, contentContainer));
95
+ return (h("a", { class: 'searchcraft-search-result-container', onClick: this.handleLinkClick, href: this.containerHref, rel: this.containerRel, style: styles.container || {}, tabindex: '0', target: this.containerTarget }, contentContainer));
106
96
  }
107
97
  /** Render as a div if no href prop. */
108
98
  return (h("div", { class: 'searchcraft-search-result-container', style: styles.container || {} }, contentContainer));
109
99
  }
110
100
  }, [0, "searchcraft-base-search-result", {
111
- "titleContent": [1, "title-content"],
112
- "subtitleContent": [1, "subtitle-content"],
113
- "bodyContent": [1, "body-content"],
114
- "footerContent": [1, "footer-content"],
115
- "buttonLabel": [1, "button-label"],
116
- "buttonHref": [1, "button-href"],
117
- "buttonTarget": [1, "button-target"],
118
- "buttonRel": [1, "button-rel"],
119
- "containerHref": [1, "container-href"],
101
+ "item": [16],
102
+ "searchResultMappings": [16],
120
103
  "containerTarget": [1, "container-target"],
121
104
  "containerRel": [1, "container-rel"],
122
- "imageSrc": [1, "image-src"],
123
- "imageAlt": [1, "image-alt"],
105
+ "buttonTarget": [1, "button-target"],
106
+ "buttonRel": [1, "button-rel"],
124
107
  "imagePlacement": [1, "image-placement"],
125
108
  "customStyles": [1, "custom-styles"],
126
- "documentPosition": [2, "document-position"]
109
+ "documentPosition": [2, "document-position"],
110
+ "titleContent": [32],
111
+ "subtitleContent": [32],
112
+ "bodyContent": [32],
113
+ "footerContent": [32],
114
+ "buttonLabel": [32],
115
+ "buttonHref": [32],
116
+ "containerHref": [32],
117
+ "imageSrc": [32],
118
+ "imageAlt": [32]
127
119
  }]);
128
120
  function defineCustomElement() {
129
121
  if (typeof customElements === "undefined") {
@@ -141,4 +133,4 @@ function defineCustomElement() {
141
133
 
142
134
  export { SearchcraftBaseSearchResult as S, defineCustomElement as d };
143
135
 
144
- //# sourceMappingURL=p-b4a8fcbe.js.map
136
+ //# sourceMappingURL=p-97332d3e.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-97332d3e.js","mappings":"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","names":[],"sources":["src/components/searchcraft-base-search-result/searchcraft-base-search-result.tsx"],"sourcesContent":["import { useSearchcraftStore } from '@provider/store';\nimport type {\n SearchClientResponseItem,\n SearchDocument,\n} from '@searchcraft/core';\nimport { Component, Fragment, h, Prop, State } from '@stencil/core';\nimport { getDocumentValueFromSearchResultMapping } from '@utils';\nimport type { SearchResultMappings } from '@searchcraft/core';\n\n/**\n * This web component is designed to display detailed information for a single search result.\n * Once a query is submitted, the component formats and presents the result.\n * It is consumed within the `searchcraft-base-search-results` component.\n */\n@Component({\n tag: 'searchcraft-base-search-result',\n shadow: false,\n})\nexport class SearchcraftBaseSearchResult {\n @Prop() item: SearchClientResponseItem | undefined;\n @Prop() searchResultMappings: SearchResultMappings | undefined;\n /**\n * Where to open the link for the containing element.\n */\n @Prop() containerTarget: '_blank' | '_self' | '_top' | '_parent' = '_blank';\n /**\n * The relationship between the current document and the link for the containing element.\n */\n @Prop() containerRel: 'noreferrer' | 'noopener' | 'nofollow' | undefined;\n /**\n * Where to open the link for the button rendered when containerHref is not present.\n */\n @Prop() buttonTarget: '_blank' | '_self' | '_top' | '_parent' = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present.\n */\n @Prop() buttonRel: 'noreferrer' | 'noopener' | 'nofollow' | undefined;\n /**\n * The placement of the image.\n */\n @Prop() imagePlacement: 'left' | 'right' = 'right';\n /**\n * A custom styles object.\n */\n @Prop() customStyles: string | undefined;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n @Prop() documentPosition = 0;\n\n @State() titleContent: string | undefined;\n @State() subtitleContent: string | undefined;\n @State() bodyContent: string | undefined;\n @State() footerContent: string | undefined;\n @State() buttonLabel: string | undefined;\n @State() buttonHref: string | undefined;\n @State() containerHref: string | undefined;\n @State() imageSrc: string | undefined;\n @State() imageAlt: string | undefined;\n\n private searchcraftStore = useSearchcraftStore.getState();\n\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n }\n\n mapValuesFromDocument(document: SearchDocument) {\n this.titleContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.title,\n );\n this.subtitleContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.subtitle,\n );\n this.bodyContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.body,\n );\n this.containerHref = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.containerHref,\n );\n this.buttonHref = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.buttonHref,\n );\n this.imageSrc = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.imageSource,\n );\n this.footerContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.footer,\n );\n }\n\n private handleLinkClick = () => {\n const searchcraft = this.searchcraftStore.getSearchcraftInstance();\n\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = this.searchcraftStore.searchTerm;\n const number_of_documents =\n this.searchcraftStore.searchClientResponseItems.length;\n\n searchcraft.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n\n private parseStyles = (): Record<string, { [key: string]: string }> => {\n if (this.customStyles) {\n try {\n return JSON.parse(this.customStyles);\n } catch (error) {\n console.error('Error parsing custom styles:', error);\n return {};\n }\n }\n return {};\n };\n\n render() {\n const styles = this.parseStyles();\n const imageContainer = this.imageSrc && (\n <img\n alt={this.imageAlt}\n class='searchcraft-search-result-image'\n src={this.imageSrc}\n style={styles.image || {}}\n />\n );\n\n const contentContainer = (\n <Fragment>\n {this.imageSrc && this.imagePlacement === 'left' && imageContainer}\n <div class='searchcraft-base-search-result-content-container'>\n {this.titleContent && (\n <h2\n class='searchcraft-base-search-result-title'\n style={styles.title || {}}\n >\n {this.titleContent}\n </h2>\n )}\n {this.subtitleContent && (\n <h3\n class='searchcraft-base-search-result-subtitle'\n style={styles.subtitle || {}}\n >\n {this.subtitleContent}\n </h3>\n )}\n {this.bodyContent && (\n <p\n class='searchcraft-base-search-result-body-content'\n style={styles.primaryContent || {}}\n >\n {this.bodyContent}\n </p>\n )}\n\n {this.footerContent && (\n <p\n class='searchcraft-base-search-result-footer-content'\n style={styles.secondaryContent || {}}\n >\n {this.footerContent}\n </p>\n )}\n {this.buttonHref && !this.containerHref && this.buttonLabel && (\n <a\n class='searchcraft-search-result-button'\n href={this.buttonHref}\n style={styles.button || {}}\n target={this.buttonTarget}\n rel={this.buttonRel}\n >\n {this.buttonLabel}\n </a>\n )}\n </div>\n {this.imageSrc && this.imagePlacement === 'right' && imageContainer}\n </Fragment>\n );\n\n /** Render as an anchor tag if the containerHref prop is present. */\n if (this.containerHref) {\n return (\n <a\n class='searchcraft-search-result-container'\n onClick={this.handleLinkClick}\n href={this.containerHref}\n rel={this.containerRel}\n style={styles.container || {}}\n tabindex='0'\n target={this.containerTarget}\n >\n {contentContainer}\n </a>\n );\n }\n\n /** Render as a div if no href prop. */\n return (\n <div\n class='searchcraft-search-result-container'\n style={styles.container || {}}\n >\n {contentContainer}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,92 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';
2
+ import { c as classNames } from './p-5cdc6210.js';
3
+ import { p as parseCustomStyles } from './p-d9551738.js';
4
+
5
+ const SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.selectChange = createEvent(this, "selectChange", 7);
10
+ }
11
+ /**
12
+ * The caption displayed below the select input.
13
+ */
14
+ caption;
15
+ /**
16
+ * Whether the select input is disabled.
17
+ */
18
+ disabled = false;
19
+ /**
20
+ * The ID for the select input.
21
+ */
22
+ inputId;
23
+ /**
24
+ * The label of the select input.
25
+ */
26
+ label;
27
+ /**
28
+ * The ID for the label of the select input.
29
+ */
30
+ labelId;
31
+ /**
32
+ * The name of the select input.
33
+ */
34
+ name;
35
+ /**
36
+ * The options for the select input.
37
+ */
38
+ options = [];
39
+ /**
40
+ * A custom styles object.
41
+ */
42
+ customStyles;
43
+ /**
44
+ * The event fired when the select is changed.
45
+ */
46
+ selectChange;
47
+ searchResultsPerPage;
48
+ setSearchResultsPage = () => { };
49
+ setSearchResultsPerPage = () => { };
50
+ handleSelectChange = (event) => {
51
+ this.selectChange.emit(event.target.value);
52
+ };
53
+ handleGoToPage(page) {
54
+ this.setSearchResultsPage(page);
55
+ }
56
+ render() {
57
+ return (h("div", { key: '5024d49d89a3649a5de591d37ded304a9dfb36d9', class: classNames('searchcraft-select', parseCustomStyles(this.customStyles || {})) }, this.label && (h("label", { key: '005aea9b190e5a6c041721e20395be23f76faab6', class: 'searchcraft-select-label', id: this.labelId || `${this.inputId}-label`, htmlFor: this.inputId }, this.label)), h("div", { key: '209d56844c0bcd241e73bafcad24fac927fe7ffa', class: 'searchcraft-select-input-wrapper' }, h("select", { key: '010c9e596ef45a303f84c0ac0fa54ab67556d7b6', "aria-labelledby": this.label ? this.labelId || `${this.inputId}-label` : undefined, class: 'searchcraft-select-input', disabled: this.disabled, id: this.inputId, name: this.name, onChange: this.handleSelectChange }, (typeof this.options === 'string'
58
+ ? JSON.parse(this.options)
59
+ : this.options).map(({ label, value, selected }) => {
60
+ return (h("option", { key: value, value: value, selected: selected }, label));
61
+ })), h("svg", { key: '51d9fb79381468ee0992475ba376df5a5961116c', class: 'searchcraft-select-input-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h("title", { key: '59186138953557764915d41708d4bcc23a9bb97f' }, "Select dropdown icon"), h("path", { key: 'ec2c962df16cb68bdaf3e2c32e57d875a63957a9', d: 'M5 7.5L10 12.5L15 7.5', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))), this.caption && (h("p", { key: '742bc2dbd8371938894d49bb37d429d1b7a07d7a', class: 'searchcraft-select-caption' }, this.caption))));
62
+ }
63
+ }, [0, "searchcraft-select", {
64
+ "caption": [1],
65
+ "disabled": [4],
66
+ "inputId": [1, "input-id"],
67
+ "label": [1],
68
+ "labelId": [1, "label-id"],
69
+ "name": [1],
70
+ "options": [1],
71
+ "customStyles": [1, "custom-styles"],
72
+ "searchResultsPerPage": [32],
73
+ "setSearchResultsPage": [32],
74
+ "setSearchResultsPerPage": [32]
75
+ }]);
76
+ function defineCustomElement() {
77
+ if (typeof customElements === "undefined") {
78
+ return;
79
+ }
80
+ const components = ["searchcraft-select"];
81
+ components.forEach(tagName => { switch (tagName) {
82
+ case "searchcraft-select":
83
+ if (!customElements.get(tagName)) {
84
+ customElements.define(tagName, SearchcraftSelect);
85
+ }
86
+ break;
87
+ } });
88
+ }
89
+
90
+ export { SearchcraftSelect as S, defineCustomElement as d };
91
+
92
+ //# sourceMappingURL=p-bf6a086a.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-bf6a086a.js","mappings":";;;;MAmCa,iBAAiB;;;;;;;;;IAIpB,OAAO,CAAU;;;;IAIjB,QAAQ,GAAa,KAAK,CAAC;;;;IAI3B,OAAO,CAAU;;;;IAIjB,KAAK,CAAU;;;;IAIf,OAAO,CAAU;;;;IAIjB,IAAI,CAAU;;;;IAId,OAAO,GAAuC,EAAE,CAAC;;;;IAIjD,YAAY,CAAU;;;;IAIrB,YAAY,CAAwB;IAEpC,oBAAoB,CAAC;IAErB,oBAAoB,GAA2B,SAAQ,CAAC;IACxD,uBAAuB,GAA8B,SAAQ,CAAC;IAE/D,kBAAkB,GAAG,CAAC,KAAK;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC5C,CAAC;IAEF,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACjC;IAED,MAAM;QACJ,QACE,4DACE,KAAK,EAAE,UAAU,CACf,oBAAoB,EACpB,iBAAiB,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAC3C,IAEA,IAAI,CAAC,KAAK,KACT,8DACE,KAAK,EAAC,0BAA0B,EAChC,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,OAAO,QAAQ,EAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,IAEpB,IAAI,CAAC,KAAK,CACL,CACT,EACD,4DAAK,KAAK,EAAC,kCAAkC,IAC3C,kFAEI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,OAAO,QAAQ,GAAG,SAAS,EAElE,KAAK,EAAC,0BAA0B,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,OAAO,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,kBAAkB,IAEhC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;cAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;cACxB,IAAI,CAAC,OAAO,EACd,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC/B,QACE,cAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,IACjD,KAAK,CACC,EACT;SACH,CAAC,CACK,EACT,4DACE,KAAK,EAAC,+BAA+B,EACrC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,IAElC,uFAAmC,EACnC,6DACE,CAAC,EAAC,uBAAuB,EACzB,MAAM,EAAC,cAAc,kBACR,KAAK,oBACH,OAAO,qBACN,OAAO,GACvB,CACE,CACF,EACL,IAAI,CAAC,OAAO,KACX,0DAAG,KAAK,EAAC,4BAA4B,IAAE,IAAI,CAAC,OAAO,CAAK,CACzD,CACG,EACN;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-select/searchcraft-select.tsx"],"sourcesContent":["import {\n Component,\n h,\n State,\n Prop,\n type EventEmitter,\n Event,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\nimport { parseCustomStyles } from '@utils';\n\nexport type SearchcraftSelectOption = {\n label: string;\n value: string | number;\n selected?: boolean;\n};\n\n/**\n * This web component is designed to allow users to select between a group of options.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-select\n * inputId=\"searchcraft-select\"\n * name=\"searchcraft-select\"\n * options=\"[{ label: 'label', value: 'value' }]\"\n * />\n * ```\n */\n@Component({\n tag: 'searchcraft-select',\n shadow: false,\n})\nexport class SearchcraftSelect {\n /**\n * The caption displayed below the select input.\n */\n @Prop() caption?: string;\n /**\n * Whether the select input is disabled.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The ID for the select input.\n */\n @Prop() inputId!: string;\n /**\n * The label of the select input.\n */\n @Prop() label?: string;\n /**\n * The ID for the label of the select input.\n */\n @Prop() labelId?: string;\n /**\n * The name of the select input.\n */\n @Prop() name!: string;\n /**\n * The options for the select input.\n */\n @Prop() options: SearchcraftSelectOption[] | string = [];\n /**\n * A custom styles object.\n */\n @Prop() customStyles?: string;\n /**\n * The event fired when the select is changed.\n */\n @Event() selectChange!: EventEmitter<string>;\n\n @State() searchResultsPerPage;\n\n @State() setSearchResultsPage: (page: number) => void = () => {};\n @State() setSearchResultsPerPage: (perPage: number) => void = () => {};\n\n private handleSelectChange = (event) => {\n this.selectChange.emit(event.target.value);\n };\n\n handleGoToPage(page: number) {\n this.setSearchResultsPage(page);\n }\n\n render() {\n return (\n <div\n class={classNames(\n 'searchcraft-select',\n parseCustomStyles(this.customStyles || {}),\n )}\n >\n {this.label && (\n <label\n class='searchcraft-select-label'\n id={this.labelId || `${this.inputId}-label`}\n htmlFor={this.inputId}\n >\n {this.label}\n </label>\n )}\n <div class='searchcraft-select-input-wrapper'>\n <select\n aria-labelledby={\n this.label ? this.labelId || `${this.inputId}-label` : undefined\n }\n class='searchcraft-select-input'\n disabled={this.disabled}\n id={this.inputId}\n name={this.name}\n onChange={this.handleSelectChange}\n >\n {(typeof this.options === 'string'\n ? JSON.parse(this.options)\n : this.options\n ).map(({ label, value, selected }) => {\n return (\n <option key={value} value={value} selected={selected}>\n {label}\n </option>\n );\n })}\n </select>\n <svg\n class='searchcraft-select-input-icon'\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <title>Select dropdown icon</title>\n <path\n d='M5 7.5L10 12.5L15 7.5'\n stroke='currentColor'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n </div>\n {this.caption && (\n <p class='searchcraft-select-caption'>{this.caption}</p>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,65 @@
1
+ import { p as proxyCustomElement, H, h } from './p-5365011f.js';
2
+
3
+ const SearchcraftPopoverListItemAd = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItemAd extends H {
4
+ constructor() {
5
+ super();
6
+ this.__registerHost();
7
+ }
8
+ adClientResponseItem;
9
+ connectedCallback() {
10
+ if (this.adClientResponseItem?.admAd?.impression_url) {
11
+ fetch(this.adClientResponseItem?.admAd?.impression_url);
12
+ }
13
+ }
14
+ renderADMProductAd() {
15
+ const ad = this.adClientResponseItem?.admAd;
16
+ if (!ad) {
17
+ return;
18
+ }
19
+ return (h("a", { class: 'searchcraft-popover-list-item-ad', href: ad.click_url }, ad.image_url && (h("div", { class: 'searchcraft-popover-list-item-ad-image-wrapper' }, h("img", { alt: ad.term, src: ad.image_url, class: 'searchcraft-popover-list-item-ad-image' }))), h("div", { class: 'searchcraft-popover-list-item-ad-info-wrapper' }, h("p", { class: 'searchcraft-popover-list-item-ad-title' }, ad.term), h("p", { class: 'searchcraft-popover-list-item-ad-subtitle' }, ad.price))));
20
+ }
21
+ renderADMTextAd() {
22
+ const ad = this.adClientResponseItem?.admAd;
23
+ if (!ad) {
24
+ return;
25
+ }
26
+ return (h("a", { class: 'searchcraft-popover-list-item-ad', href: ad.click_url }, ad.image_url && (h("div", { class: 'searchcraft-popover-list-item-ad-image-wrapper' }, h("img", { alt: ad.term, src: ad.image_url, class: 'searchcraft-popover-list-item-ad-image' }))), h("div", { class: 'searchcraft-popover-list-item-ad-info-wrapper' }, h("p", { class: 'searchcraft-popover-list-item-ad-title' }, ad.term))));
27
+ }
28
+ renderNativoAd() { }
29
+ renderAdPlaceholder() {
30
+ return h("p", null, "Ad placeholder");
31
+ // return;
32
+ }
33
+ render() {
34
+ if (!this.adClientResponseItem) {
35
+ return this.renderAdPlaceholder();
36
+ }
37
+ switch (this.adClientResponseItem.type) {
38
+ case 'adm-product-ad':
39
+ return this.renderADMProductAd();
40
+ case 'adm-text-ad':
41
+ return this.renderADMTextAd();
42
+ case 'nativo-ad':
43
+ return this.renderNativoAd();
44
+ }
45
+ }
46
+ }, [0, "searchcraft-popover-list-item-ad", {
47
+ "adClientResponseItem": [16]
48
+ }]);
49
+ function defineCustomElement() {
50
+ if (typeof customElements === "undefined") {
51
+ return;
52
+ }
53
+ const components = ["searchcraft-popover-list-item-ad"];
54
+ components.forEach(tagName => { switch (tagName) {
55
+ case "searchcraft-popover-list-item-ad":
56
+ if (!customElements.get(tagName)) {
57
+ customElements.define(tagName, SearchcraftPopoverListItemAd);
58
+ }
59
+ break;
60
+ } });
61
+ }
62
+
63
+ export { SearchcraftPopoverListItemAd as S, defineCustomElement as d };
64
+
65
+ //# sourceMappingURL=p-bff4d3fc.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-bff4d3fc.js","mappings":";;MAca,4BAA4B;;;;;IAC/B,oBAAoB,CAAwB;IAEpD,iBAAiB;QACf,IAAI,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE;YACpD,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;SACzD;KACF;IAED,kBAAkB;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,KAAqB,CAAC;QAC5D,IAAI,CAAC,EAAE,EAAE;YACP,OAAO;SACR;QAED,QACE,SAAG,KAAK,EAAC,kCAAkC,EAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAC3D,EAAE,CAAC,SAAS,KACX,WAAK,KAAK,EAAC,gDAAgD,IACzD,WACE,GAAG,EAAE,EAAE,CAAC,IAAI,EACZ,GAAG,EAAE,EAAE,CAAC,SAAS,EACjB,KAAK,EAAC,wCAAwC,GAC9C,CACE,CACP,EACD,WAAK,KAAK,EAAC,+CAA+C,IACxD,SAAG,KAAK,EAAC,wCAAwC,IAAE,EAAE,CAAC,IAAI,CAAK,EAC/D,SAAG,KAAK,EAAC,2CAA2C,IAAE,EAAE,CAAC,KAAK,CAAK,CAC/D,CACJ,EACJ;KACH;IAED,eAAe;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,KAAkB,CAAC;QACzD,IAAI,CAAC,EAAE,EAAE;YACP,OAAO;SACR;QAED,QACE,SAAG,KAAK,EAAC,kCAAkC,EAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAC3D,EAAE,CAAC,SAAS,KACX,WAAK,KAAK,EAAC,gDAAgD,IACzD,WACE,GAAG,EAAE,EAAE,CAAC,IAAI,EACZ,GAAG,EAAE,EAAE,CAAC,SAAS,EACjB,KAAK,EAAC,wCAAwC,GAC9C,CACE,CACP,EACD,WAAK,KAAK,EAAC,+CAA+C,IACxD,SAAG,KAAK,EAAC,wCAAwC,IAAE,EAAE,CAAC,IAAI,CAAK,CAC3D,CACJ,EACJ;KACH;IAED,cAAc,MAAK;IAEnB,mBAAmB;QACjB,OAAO,8BAAqB,CAAC;;KAE9B;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;SACnC;QAED,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI;YACpC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAChC;KACF;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.tsx"],"sourcesContent":["import type {\n AdClientResponseItem,\n ADMProductAd,\n ADMTextAd,\n} from '@searchcraft/core';\nimport { Component, h, Prop } from '@stencil/core';\n\n/**\n * A single list item rendered in a searchcraft-popover-list-view.\n */\n@Component({\n tag: 'searchcraft-popover-list-item-ad',\n shadow: false,\n})\nexport class SearchcraftPopoverListItemAd {\n @Prop() adClientResponseItem?: AdClientResponseItem;\n\n connectedCallback() {\n if (this.adClientResponseItem?.admAd?.impression_url) {\n fetch(this.adClientResponseItem?.admAd?.impression_url);\n }\n }\n\n renderADMProductAd() {\n const ad = this.adClientResponseItem?.admAd as ADMProductAd;\n if (!ad) {\n return;\n }\n\n return (\n <a class='searchcraft-popover-list-item-ad' href={ad.click_url}>\n {ad.image_url && (\n <div class='searchcraft-popover-list-item-ad-image-wrapper'>\n <img\n alt={ad.term}\n src={ad.image_url}\n class='searchcraft-popover-list-item-ad-image'\n />\n </div>\n )}\n <div class='searchcraft-popover-list-item-ad-info-wrapper'>\n <p class='searchcraft-popover-list-item-ad-title'>{ad.term}</p>\n <p class='searchcraft-popover-list-item-ad-subtitle'>{ad.price}</p>\n </div>\n </a>\n );\n }\n\n renderADMTextAd() {\n const ad = this.adClientResponseItem?.admAd as ADMTextAd;\n if (!ad) {\n return;\n }\n\n return (\n <a class='searchcraft-popover-list-item-ad' href={ad.click_url}>\n {ad.image_url && (\n <div class='searchcraft-popover-list-item-ad-image-wrapper'>\n <img\n alt={ad.term}\n src={ad.image_url}\n class='searchcraft-popover-list-item-ad-image'\n />\n </div>\n )}\n <div class='searchcraft-popover-list-item-ad-info-wrapper'>\n <p class='searchcraft-popover-list-item-ad-title'>{ad.term}</p>\n </div>\n </a>\n );\n }\n\n renderNativoAd() {}\n\n renderAdPlaceholder() {\n return <p>Ad placeholder</p>;\n // return;\n }\n\n render() {\n if (!this.adClientResponseItem) {\n return this.renderAdPlaceholder();\n }\n\n switch (this.adClientResponseItem.type) {\n case 'adm-product-ad':\n return this.renderADMProductAd();\n case 'adm-text-ad':\n return this.renderADMTextAd();\n case 'nativo-ad':\n return this.renderNativoAd();\n }\n }\n}\n"],"version":3}
@@ -7,10 +7,18 @@ const SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButt
7
7
  this.__registerHost();
8
8
  this.buttonClick = createEvent(this, "buttonClick", 7);
9
9
  }
10
+ /**
11
+ * Controls the visual representation of the button.
12
+ */
13
+ hierarchy = 'primary';
14
+ /**
15
+ * Whether the button is disabled.
16
+ */
17
+ disabled = false;
10
18
  /**
11
19
  * The icon element.
12
20
  */
13
- iconElement;
21
+ icon;
14
22
  /**
15
23
  * Should the button only display an icon.
16
24
  */
@@ -24,22 +32,31 @@ const SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButt
24
32
  */
25
33
  label = 'Search';
26
34
  /**
27
- * When the button is clicked.
35
+ * The type of the button.
36
+ */
37
+ type = 'button';
38
+ /**
39
+ * The event fired when the button is clicked.
28
40
  */
29
41
  buttonClick;
30
- isRequesting = false;
31
- handleClick = () => {
42
+ handleButtonClick = () => {
32
43
  this.buttonClick.emit();
33
44
  };
34
45
  render() {
35
- return (h(Fragment, { key: 'af99927e7c05f06ec9a63123c7f740a0e96e734b' }, this.iconOnly ? (h("button", { class: classNames('searchcraft-button'), onClick: this.handleClick, type: 'submit' }, this.isRequesting ? (h("searchcraft-spinner-dark", null)) : (this.iconElement))) : (h("button", { class: classNames('searchcraft-button'), onClick: this.handleClick, type: 'submit' }, this.iconPosition === 'left' && this.iconElement, h("span", { class: classNames('buttonLabel', 'searchcraft-button-label') }, this.label)))));
46
+ return (h("button", { key: 'fc258e1c7aab54611c781789eef7facc074f02c3', class: classNames('searchcraft-button', {
47
+ 'searchcraft-button-primary': this.hierarchy === 'primary',
48
+ 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',
49
+ 'searchcraft-button-disabled': this.disabled,
50
+ }), disabled: this.disabled, onClick: this.handleButtonClick, type: this.type }, this.iconOnly ? (this.icon) : (h(Fragment, null, this.iconPosition === 'left' && this.icon, h("span", null, this.label), this.iconPosition === 'right' && this.icon))));
36
51
  }
37
52
  }, [0, "searchcraft-button", {
38
- "iconElement": [16],
53
+ "hierarchy": [1],
54
+ "disabled": [4],
55
+ "icon": [16],
39
56
  "iconOnly": [4, "icon-only"],
40
57
  "iconPosition": [1, "icon-position"],
41
58
  "label": [1],
42
- "isRequesting": [32]
59
+ "type": [1]
43
60
  }]);
44
61
  function defineCustomElement() {
45
62
  if (typeof customElements === "undefined") {
@@ -57,4 +74,4 @@ function defineCustomElement() {
57
74
 
58
75
  export { SearchcraftButton as S, defineCustomElement as d };
59
76
 
60
- //# sourceMappingURL=p-521fe971.js.map
77
+ //# sourceMappingURL=p-d19bf6ff.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-d19bf6ff.js","mappings":";;;MAmBa,iBAAiB;;;;;;;;;IAIpB,SAAS,GAA4B,SAAS,CAAC;;;;IAI/C,QAAQ,GAAa,KAAK,CAAC;;;;IAI3B,IAAI,CAAW;;;;IAIf,QAAQ,GAAa,KAAK,CAAC;;;;IAI3B,YAAY,GAAsB,MAAM,CAAC;;;;IAIzC,KAAK,GAAG,QAAQ,CAAC;;;;IAIjB,IAAI,GAAmC,QAAQ,CAAC;;;;IAI/C,WAAW,CAAsB;IAElC,iBAAiB,GAAG;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB,CAAC;IAEF,MAAM;QACJ,QACE,+DACE,KAAK,EAAE,UAAU,CAAC,oBAAoB,EAAE;gBACtC,4BAA4B,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS;gBAC1D,6BAA6B,EAAE,IAAI,CAAC,SAAS,KAAK,UAAU;gBAC5D,6BAA6B,EAAE,IAAI,CAAC,QAAQ;aAC7C,CAAC,EACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,IAEd,IAAI,CAAC,QAAQ,IACZ,IAAI,CAAC,IAAI,KAET,EAAC,QAAQ,QACN,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAC1C,gBAAO,IAAI,CAAC,KAAK,CAAQ,EACxB,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,CAClC,CACZ,CACM,EACT;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-button/searchcraft-button.tsx"],"sourcesContent":["import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n Fragment,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * This web component represents a button to be consumed within the `search-input-form` component.\n * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.\n * It is consumed within the `searchcraft-input-form` component.\n */\n@Component({\n tag: 'searchcraft-button',\n shadow: false,\n})\nexport class SearchcraftButton {\n /**\n * Controls the visual representation of the button.\n */\n @Prop() hierarchy?: 'primary' | 'tertiary' = 'primary';\n /**\n * Whether the button is disabled.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The icon element.\n */\n @Prop() icon?: Element;\n /**\n * Should the button only display an icon.\n */\n @Prop() iconOnly?: boolean = false;\n /**\n * The position of the icon.\n */\n @Prop() iconPosition?: 'left' | 'right' = 'left';\n /**\n * The label for the button.\n */\n @Prop() label = 'Search';\n /**\n * The type of the button.\n */\n @Prop() type?: 'submit' | 'reset' | 'button' = 'button';\n /**\n * The event fired when the button is clicked.\n */\n @Event() buttonClick!: EventEmitter<void>;\n\n private handleButtonClick = () => {\n this.buttonClick.emit();\n };\n\n render() {\n return (\n <button\n class={classNames('searchcraft-button', {\n 'searchcraft-button-primary': this.hierarchy === 'primary',\n 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',\n 'searchcraft-button-disabled': this.disabled,\n })}\n disabled={this.disabled}\n onClick={this.handleButtonClick}\n type={this.type}\n >\n {this.iconOnly ? (\n this.icon\n ) : (\n <Fragment>\n {this.iconPosition === 'left' && this.icon}\n <span>{this.label}</span>\n {this.iconPosition === 'right' && this.icon}\n </Fragment>\n )}\n </button>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,65 @@
1
+ import { p as proxyCustomElement, H, h } from './p-5365011f.js';
2
+
3
+ const SearchcraftBaseSearchResultAd = /*@__PURE__*/ proxyCustomElement(class SearchcraftBaseSearchResultAd extends H {
4
+ constructor() {
5
+ super();
6
+ this.__registerHost();
7
+ }
8
+ adClientResponseItem;
9
+ connectedCallback() {
10
+ if (this.adClientResponseItem?.admAd?.impression_url) {
11
+ fetch(this.adClientResponseItem?.admAd?.impression_url);
12
+ }
13
+ }
14
+ renderADMProductAd() {
15
+ const ad = this.adClientResponseItem?.admAd;
16
+ if (!ad) {
17
+ return;
18
+ }
19
+ return (h("a", { class: 'searchcraft-base-ad', href: ad.click_url }, ad.image_url && (h("div", { class: 'searchcraft-base-ad-image-wrapper' }, h("img", { alt: ad.term, src: ad.image_url, class: 'searchcraft-base-ad-image' }))), h("div", { class: 'searchcraft-base-ad-info-wrapper' }, h("p", { class: 'searchcraft-base-ad-title' }, ad.term), h("p", { class: 'searchcraft-base-ad-subtitle' }, ad.price))));
20
+ }
21
+ renderADMTextAd() {
22
+ const ad = this.adClientResponseItem?.admAd;
23
+ if (!ad) {
24
+ return;
25
+ }
26
+ return (h("a", { class: 'searchcraft-base-ad', href: ad.click_url }, ad.image_url && (h("div", { class: 'searchcraft-base-ad-image-wrapper' }, h("img", { alt: ad.term, src: ad.image_url, class: 'searchcraft-base-ad-image' }))), h("div", { class: 'searchcraft-base-ad-info-wrapper' }, h("p", { class: 'searchcraft-base-ad-title' }, ad.term))));
27
+ }
28
+ renderNativoAd() { }
29
+ renderAdPlaceholder() {
30
+ return h("p", null, "Ad placeholder");
31
+ // return;
32
+ }
33
+ render() {
34
+ if (!this.adClientResponseItem) {
35
+ return this.renderAdPlaceholder();
36
+ }
37
+ switch (this.adClientResponseItem.type) {
38
+ case 'adm-product-ad':
39
+ return this.renderADMProductAd();
40
+ case 'adm-text-ad':
41
+ return this.renderADMTextAd();
42
+ case 'nativo-ad':
43
+ return this.renderNativoAd();
44
+ }
45
+ }
46
+ }, [0, "searchcraft-base-search-result-ad", {
47
+ "adClientResponseItem": [16]
48
+ }]);
49
+ function defineCustomElement() {
50
+ if (typeof customElements === "undefined") {
51
+ return;
52
+ }
53
+ const components = ["searchcraft-base-search-result-ad"];
54
+ components.forEach(tagName => { switch (tagName) {
55
+ case "searchcraft-base-search-result-ad":
56
+ if (!customElements.get(tagName)) {
57
+ customElements.define(tagName, SearchcraftBaseSearchResultAd);
58
+ }
59
+ break;
60
+ } });
61
+ }
62
+
63
+ export { SearchcraftBaseSearchResultAd as S, defineCustomElement as d };
64
+
65
+ //# sourceMappingURL=p-de4a48b1.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-de4a48b1.js","mappings":";;MAca,6BAA6B;;;;;IAChC,oBAAoB,CAAwB;IAEpD,iBAAiB;QACf,IAAI,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE;YACpD,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;SACzD;KACF;IAED,kBAAkB;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,KAAqB,CAAC;QAC5D,IAAI,CAAC,EAAE,EAAE;YACP,OAAO;SACR;QAED,QACE,SAAG,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAC9C,EAAE,CAAC,SAAS,KACX,WAAK,KAAK,EAAC,mCAAmC,IAC5C,WACE,GAAG,EAAE,EAAE,CAAC,IAAI,EACZ,GAAG,EAAE,EAAE,CAAC,SAAS,EACjB,KAAK,EAAC,2BAA2B,GACjC,CACE,CACP,EACD,WAAK,KAAK,EAAC,kCAAkC,IAC3C,SAAG,KAAK,EAAC,2BAA2B,IAAE,EAAE,CAAC,IAAI,CAAK,EAClD,SAAG,KAAK,EAAC,8BAA8B,IAAE,EAAE,CAAC,KAAK,CAAK,CAClD,CACJ,EACJ;KACH;IAED,eAAe;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,KAAkB,CAAC;QACzD,IAAI,CAAC,EAAE,EAAE;YACP,OAAO;SACR;QAED,QACE,SAAG,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAC9C,EAAE,CAAC,SAAS,KACX,WAAK,KAAK,EAAC,mCAAmC,IAC5C,WACE,GAAG,EAAE,EAAE,CAAC,IAAI,EACZ,GAAG,EAAE,EAAE,CAAC,SAAS,EACjB,KAAK,EAAC,2BAA2B,GACjC,CACE,CACP,EACD,WAAK,KAAK,EAAC,kCAAkC,IAC3C,SAAG,KAAK,EAAC,2BAA2B,IAAE,EAAE,CAAC,IAAI,CAAK,CAC9C,CACJ,EACJ;KACH;IAED,cAAc,MAAK;IAEnB,mBAAmB;QACjB,OAAO,8BAAqB,CAAC;;KAE9B;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;SACnC;QAED,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI;YACpC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAChC;KACF;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.tsx"],"sourcesContent":["import type {\n AdClientResponseItem,\n ADMProductAd,\n ADMTextAd,\n} from '@searchcraft/core';\nimport { Component, h, Prop } from '@stencil/core';\n\n/**\n * A single list item rendered in a searchcraft-popover-list-view.\n */\n@Component({\n tag: 'searchcraft-base-search-result-ad',\n shadow: false,\n})\nexport class SearchcraftBaseSearchResultAd {\n @Prop() adClientResponseItem?: AdClientResponseItem;\n\n connectedCallback() {\n if (this.adClientResponseItem?.admAd?.impression_url) {\n fetch(this.adClientResponseItem?.admAd?.impression_url);\n }\n }\n\n renderADMProductAd() {\n const ad = this.adClientResponseItem?.admAd as ADMProductAd;\n if (!ad) {\n return;\n }\n\n return (\n <a class='searchcraft-base-ad' href={ad.click_url}>\n {ad.image_url && (\n <div class='searchcraft-base-ad-image-wrapper'>\n <img\n alt={ad.term}\n src={ad.image_url}\n class='searchcraft-base-ad-image'\n />\n </div>\n )}\n <div class='searchcraft-base-ad-info-wrapper'>\n <p class='searchcraft-base-ad-title'>{ad.term}</p>\n <p class='searchcraft-base-ad-subtitle'>{ad.price}</p>\n </div>\n </a>\n );\n }\n\n renderADMTextAd() {\n const ad = this.adClientResponseItem?.admAd as ADMTextAd;\n if (!ad) {\n return;\n }\n\n return (\n <a class='searchcraft-base-ad' href={ad.click_url}>\n {ad.image_url && (\n <div class='searchcraft-base-ad-image-wrapper'>\n <img\n alt={ad.term}\n src={ad.image_url}\n class='searchcraft-base-ad-image'\n />\n </div>\n )}\n <div class='searchcraft-base-ad-info-wrapper'>\n <p class='searchcraft-base-ad-title'>{ad.term}</p>\n </div>\n </a>\n );\n }\n\n renderNativoAd() {}\n\n renderAdPlaceholder() {\n return <p>Ad placeholder</p>;\n // return;\n }\n\n render() {\n if (!this.adClientResponseItem) {\n return this.renderAdPlaceholder();\n }\n\n switch (this.adClientResponseItem.type) {\n case 'adm-product-ad':\n return this.renderADMProductAd();\n case 'adm-text-ad':\n return this.renderADMTextAd();\n case 'nativo-ad':\n return this.renderNativoAd();\n }\n }\n}\n"],"version":3}
@@ -12,7 +12,7 @@ const SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class Searchcraft
12
12
  inputLabelClassName = '';
13
13
  label = '';
14
14
  render() {
15
- return (h("label", { key: '9c71dc7429d7289ed59e7effacb91e040a9ac6a1', class: classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));
15
+ return (h("label", { key: '528396d4be9f22ff0c02d95d8bcea056576aed41', class: classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));
16
16
  }
17
17
  }, [0, "searchcraft-input-label", {
18
18
  "inputLabelClassName": [1, "input-label-class-name"],
@@ -34,4 +34,4 @@ function defineCustomElement() {
34
34
 
35
35
  export { SearchcraftInputLabel as S, defineCustomElement as d };
36
36
 
37
- //# sourceMappingURL=p-ca881e5c.js.map
37
+ //# sourceMappingURL=p-e55a7970.js.map
@@ -1 +1 @@
1
- {"file":"p-ca881e5c.js","mappings":";;;MAgBa,qBAAqB;;;;;;;;IAIxB,mBAAmB,GAAI,EAAE,CAAC;IAC1B,KAAK,GAAG,EAAE,CAAC;IAEnB,MAAM;QACJ,QACE,8DACE,KAAK,EAAE,UAAU,CAAC,yBAAyB,EAAE,IAAI,CAAC,mBAAmB,CAAC,EACtE,OAAO,EAAC,sBAAsB,IAE7B,IAAI,CAAC,KAAK,CACL,EACR;KACH;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-input-label/searchcraft-input-label.tsx"],"sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * This web component serves as the input label for the searchcraft-input-form component.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-input-label label=\"Search\" />\n * ```\n */\n@Component({\n tag: 'searchcraft-input-label',\n shadow: false,\n})\nexport class SearchcraftInputLabel {\n /**\n * The classname applied to the label element.\n */\n @Prop() inputLabelClassName? = '';\n @Prop() label = '';\n\n render() {\n return (\n <label\n class={classNames('searchcraft-input-label', this.inputLabelClassName)}\n htmlFor='searchcraft-input-id'\n >\n {this.label}\n </label>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-e55a7970.js","mappings":";;;MAgBa,qBAAqB;;;;;;;;IAIxB,mBAAmB,GAAI,EAAE,CAAC;IAC1B,KAAK,GAAG,EAAE,CAAC;IAEnB,MAAM;QACJ,QACE,8DACE,KAAK,EAAE,UAAU,CAAC,yBAAyB,EAAE,IAAI,CAAC,mBAAmB,CAAC,EACtE,OAAO,EAAC,sBAAsB,IAE7B,IAAI,CAAC,KAAK,CACL,EACR;KACH;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-input-label/searchcraft-input-label.tsx"],"sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * This web component serves as the input label for the searchcraft-input-form component.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-input-label label=\"Search\" />\n * ```\n */\n@Component({\n tag: 'searchcraft-input-label',\n shadow: false,\n})\nexport class SearchcraftInputLabel {\n /**\n * The classname applied to the label element.\n */\n @Prop() inputLabelClassName? = '';\n @Prop() label = '';\n\n render() {\n return (\n <label\n class={classNames('searchcraft-input-label', this.inputLabelClassName)}\n htmlFor='searchcraft-input-id'\n >\n {this.label}\n </label>\n );\n }\n}\n"],"version":3}