@coveo/atomic 3.37.3 → 3.38.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 (984) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/assets/sparkles.svg +1 -0
  3. package/dist/atomic/atomic.esm.js.map +1 -1
  4. package/dist/atomic/components/_index.d.ts +0 -6
  5. package/dist/atomic/components/_index.js +1 -4
  6. package/dist/atomic/components/atomic-breadbox.js.map +1 -1
  7. package/dist/atomic/components/atomic-category-facet.js +3 -3
  8. package/dist/atomic/components/atomic-category-facet.js.map +1 -1
  9. package/dist/atomic/components/atomic-color-facet.js +2 -2
  10. package/dist/atomic/components/atomic-color-facet.js.map +1 -1
  11. package/dist/atomic/components/atomic-field-condition.js.map +1 -1
  12. package/dist/atomic/components/atomic-folded-result-list.js +4 -4
  13. package/dist/atomic/components/atomic-folded-result-list.js.map +1 -1
  14. package/dist/atomic/components/atomic-format-currency.js +1 -1
  15. package/dist/atomic/components/atomic-format-number.js +1 -1
  16. package/dist/atomic/components/atomic-format-unit.js +4 -4
  17. package/dist/atomic/components/atomic-format-unit.js.map +1 -1
  18. package/dist/atomic/components/atomic-generated-answer.js +2 -2
  19. package/dist/atomic/components/atomic-generated-answer.js.map +1 -1
  20. package/dist/atomic/components/atomic-insight-folded-result-list.js +2 -2
  21. package/dist/atomic/components/atomic-insight-folded-result-list.js.map +1 -1
  22. package/dist/atomic/components/atomic-insight-refine-modal2.js +3 -3
  23. package/dist/atomic/components/atomic-insight-refine-modal2.js.map +1 -1
  24. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  25. package/dist/atomic/components/atomic-insight-result-children.js.map +1 -1
  26. package/dist/atomic/components/atomic-insight-result-list.js +2 -2
  27. package/dist/atomic/components/atomic-insight-result-list.js.map +1 -1
  28. package/dist/atomic/components/atomic-insight-user-actions-modal2.js +1 -1
  29. package/dist/atomic/components/atomic-insight-user-actions-modal2.js.map +1 -1
  30. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  31. package/dist/atomic/components/atomic-insight-user-actions-session2.js.map +1 -1
  32. package/dist/atomic/components/atomic-ipx-recs-list.js +2 -2
  33. package/dist/atomic/components/atomic-ipx-recs-list.js.map +1 -1
  34. package/dist/atomic/components/atomic-ipx-refine-modal2.js +2 -2
  35. package/dist/atomic/components/atomic-ipx-refine-modal2.js.map +1 -1
  36. package/dist/atomic/components/atomic-numeric-facet.js +3 -3
  37. package/dist/atomic/components/atomic-numeric-facet.js.map +1 -1
  38. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  39. package/dist/atomic/components/atomic-quickview-modal2.js.map +1 -1
  40. package/dist/atomic/components/atomic-quickview.js +1 -1
  41. package/dist/atomic/components/atomic-quickview.js.map +1 -1
  42. package/dist/atomic/components/atomic-rating-facet.js +2 -2
  43. package/dist/atomic/components/atomic-rating-facet.js.map +1 -1
  44. package/dist/atomic/components/atomic-rating-range-facet.js +2 -2
  45. package/dist/atomic/components/atomic-rating-range-facet.js.map +1 -1
  46. package/dist/atomic/components/atomic-recs-list.js +2 -2
  47. package/dist/atomic/components/atomic-recs-list.js.map +1 -1
  48. package/dist/atomic/components/atomic-refine-modal2.js +3 -3
  49. package/dist/atomic/components/atomic-refine-modal2.js.map +1 -1
  50. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  51. package/dist/atomic/components/atomic-result-badge.js.map +1 -1
  52. package/dist/atomic/components/atomic-result-children.js +1 -1
  53. package/dist/atomic/components/atomic-result-children.js.map +1 -1
  54. package/dist/atomic/components/atomic-result-date.js +41 -13
  55. package/dist/atomic/components/atomic-result-date.js.map +1 -1
  56. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  57. package/dist/atomic/components/atomic-result-image.js +1 -1
  58. package/dist/atomic/components/atomic-result-image.js.map +1 -1
  59. package/dist/atomic/components/atomic-result-link.js +1 -1
  60. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  61. package/dist/atomic/components/atomic-result-table-placeholder2.js.map +1 -1
  62. package/dist/atomic/components/atomic-result-timespan.js +8 -1
  63. package/dist/atomic/components/atomic-result-timespan.js.map +1 -1
  64. package/dist/atomic/components/atomic-search-box.js +6 -6
  65. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  66. package/dist/atomic/components/atomic-segmented-facet-scrollable.js.map +1 -1
  67. package/dist/atomic/components/atomic-segmented-facet.js +2 -2
  68. package/dist/atomic/components/atomic-segmented-facet.js.map +1 -1
  69. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  70. package/dist/atomic/components/atomic-smart-snippet.js +2 -2
  71. package/dist/atomic/components/atomic-smart-snippet.js.map +1 -1
  72. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  73. package/dist/atomic/components/atomic-sort-dropdown.js.map +1 -1
  74. package/dist/atomic/components/atomic-sort-expression.js +3 -3
  75. package/dist/atomic/components/atomic-sort-expression.js.map +1 -1
  76. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  77. package/dist/atomic/components/atomic-timeframe-facet.js +2 -2
  78. package/dist/atomic/components/atomic-timeframe-facet.js.map +1 -1
  79. package/dist/atomic/components/atomic-timeframe.js +1 -1
  80. package/dist/atomic/components/atomic-timeframe.js.map +1 -1
  81. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +1 -1
  82. package/dist/atomic/components/components/commerce/atomic-commerce-facet/atomic-commerce-facet.js +1 -1
  83. package/dist/atomic/components/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.js +0 -1
  84. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +3 -3
  85. package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +1 -1
  86. package/dist/atomic/components/components/commerce/atomic-commerce-product-list/atomic-commerce-product-list.js +1 -1
  87. package/dist/atomic/components/components/commerce/atomic-commerce-query-error/atomic-commerce-query-error.js +9 -9
  88. package/dist/atomic/components/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.js +1 -1
  89. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +3 -3
  90. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js +1 -1
  91. package/dist/atomic/components/components/commerce/atomic-commerce-refine-modal/atomic-commerce-refine-modal.js +1 -1
  92. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +3 -6
  93. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.js +1 -1
  94. package/dist/atomic/components/components/commerce/atomic-product-children/atomic-product-children.js +1 -1
  95. package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +1 -1
  96. package/dist/atomic/components/components/commerce/atomic-product-image/atomic-product-image.js +1 -1
  97. package/dist/atomic/components/components/common/atomic-icon/atomic-icon.js +1 -1
  98. package/dist/atomic/components/components/common/atomic-modal/atomic-modal.js +4 -4
  99. package/dist/atomic/components/components/common/atomic-numeric-range/atomic-numeric-range.js +37 -0
  100. package/dist/atomic/components/components/common/icon-button.js +34 -0
  101. package/dist/atomic/components/components/common/index.js +1 -0
  102. package/dist/atomic/components/components/common/interface/interface-controller.js +1 -1
  103. package/dist/atomic/components/components/common/lazy-index.js +1 -0
  104. package/dist/atomic/components/components/common/refine-modal/body.js +2 -1
  105. package/dist/atomic/components/components/common/validate-props-controller/validate-props-controller.js +4 -0
  106. package/dist/atomic/components/components/insight/atomic-insight-generate-answer-button/atomic-insight-generate-answer-button.js +70 -0
  107. package/dist/atomic/components/components/insight/index.js +1 -0
  108. package/dist/atomic/components/components/insight/lazy-index.js +1 -0
  109. package/dist/atomic/components/components/recommendations/atomic-recs-interface/atomic-recs-interface.js +2 -2
  110. package/dist/atomic/components/components/search/atomic-facet/atomic-facet.js +4 -4
  111. package/dist/atomic/components/components/search/atomic-query-error/atomic-query-error.js +111 -0
  112. package/dist/atomic/components/components/search/atomic-query-summary/atomic-query-summary.js +1 -1
  113. package/dist/atomic/components/components/search/atomic-result-list/atomic-result-list.js +5 -4
  114. package/dist/atomic/components/components/search/atomic-result-number/atomic-result-number.js +114 -0
  115. package/dist/atomic/components/components/search/atomic-results-per-page/atomic-results-per-page.js +1 -1
  116. package/dist/atomic/components/components/search/atomic-search-box-instant-results/atomic-search-box-instant-results.js +1 -1
  117. package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +2 -2
  118. package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +1 -1
  119. package/dist/atomic/components/components/search/index.js +2 -0
  120. package/dist/atomic/components/components/search/lazy-index.js +2 -0
  121. package/dist/atomic/components/date-utils.js +985 -12
  122. package/dist/atomic/components/date-utils.js.map +1 -1
  123. package/dist/atomic/components/directives/multi-class-map.js +1 -1
  124. package/dist/atomic/components/generated/dayjs-locales-data.js +143 -143
  125. package/dist/atomic/components/generated-answer-common.js +2 -2
  126. package/dist/atomic/components/generated-answer-common.js.map +1 -1
  127. package/dist/atomic/components/global/environment.js +1 -1
  128. package/dist/atomic/components/index.js.map +1 -1
  129. package/dist/atomic/components/initialization-utils.js +9 -12
  130. package/dist/atomic/components/initialization-utils.js.map +1 -1
  131. package/dist/atomic/components/show-hide-button.js.map +1 -1
  132. package/dist/atomic/components/smart-snippet-common.js +1 -1
  133. package/dist/atomic/components/smart-snippet-common.js.map +1 -1
  134. package/dist/atomic/components/smart-snippet-suggestions-common.js +1 -1
  135. package/dist/atomic/components/smart-snippet-suggestions-common.js.map +1 -1
  136. package/dist/atomic/components/stencil-suggestion-manager.js.map +1 -1
  137. package/dist/atomic/components/utils/date-utils.js +6 -6
  138. package/dist/atomic/components/utils/dayjs-locales.js +1 -1
  139. package/dist/atomic/components/utils/initialization-lit-stencil-common-utils.js +5 -0
  140. package/dist/atomic/index.esm.js +1 -1
  141. package/dist/atomic/lang/cs.json +1 -1
  142. package/dist/atomic/lang/da.json +1 -1
  143. package/dist/atomic/lang/de.json +1 -1
  144. package/dist/atomic/lang/dev.json +1 -1
  145. package/dist/atomic/lang/el.json +1 -1
  146. package/dist/atomic/lang/en.json +1 -1
  147. package/dist/atomic/lang/es-ES.json +1 -1
  148. package/dist/atomic/lang/es.json +1 -1
  149. package/dist/atomic/lang/fi.json +1 -1
  150. package/dist/atomic/lang/fr.json +1 -1
  151. package/dist/atomic/lang/hu.json +1 -1
  152. package/dist/atomic/lang/id.json +1 -1
  153. package/dist/atomic/lang/it.json +1 -1
  154. package/dist/atomic/lang/ja.json +1 -1
  155. package/dist/atomic/lang/ko.json +1 -1
  156. package/dist/atomic/lang/nl.json +1 -1
  157. package/dist/atomic/lang/no.json +1 -1
  158. package/dist/atomic/lang/pl.json +1 -1
  159. package/dist/atomic/lang/pt-BR.json +1 -1
  160. package/dist/atomic/lang/pt.json +1 -1
  161. package/dist/atomic/lang/ru.json +1 -1
  162. package/dist/atomic/lang/sv.json +1 -1
  163. package/dist/atomic/lang/th.json +1 -1
  164. package/dist/atomic/lang/tr.json +1 -1
  165. package/dist/atomic/lang/zh-CN.json +1 -1
  166. package/dist/atomic/lang/zh-TW.json +1 -1
  167. package/dist/atomic/lang/zh.json +1 -1
  168. package/dist/atomic/p-08ce68cd.entry.js +2 -0
  169. package/dist/atomic/p-08ce68cd.entry.js.map +1 -0
  170. package/dist/atomic/{p-1cd81d8c.entry.js → p-0ace4e44.entry.js} +2 -2
  171. package/dist/atomic/{p-24c9b9f4.entry.js.map → p-0ace4e44.entry.js.map} +1 -1
  172. package/dist/atomic/p-0fded72d.entry.js +2 -0
  173. package/dist/atomic/p-0fded72d.entry.js.map +1 -0
  174. package/dist/atomic/p-151392e0.entry.js +2 -0
  175. package/dist/atomic/{p-691fd9aa.entry.js.map → p-151392e0.entry.js.map} +1 -1
  176. package/dist/atomic/p-169136cc.entry.js +2 -0
  177. package/dist/atomic/{p-7713727b.entry.js.map → p-169136cc.entry.js.map} +1 -1
  178. package/dist/atomic/p-1746e396.entry.js +2 -0
  179. package/dist/atomic/{p-24486958.entry.js.map → p-1746e396.entry.js.map} +1 -1
  180. package/dist/atomic/{p-d6a45f3a.entry.js → p-17c46f6c.entry.js} +2 -2
  181. package/dist/atomic/p-19dfc5d6.entry.js +2 -0
  182. package/dist/atomic/p-19dfc5d6.entry.js.map +1 -0
  183. package/dist/atomic/{p-0957bd04.js → p-1be5a1ac.js} +2 -2
  184. package/dist/atomic/{p-0957bd04.js.map → p-1be5a1ac.js.map} +1 -1
  185. package/dist/atomic/p-1c3c00a1.entry.js +2 -0
  186. package/dist/atomic/{p-4a03407e.entry.js.map → p-1c3c00a1.entry.js.map} +1 -1
  187. package/dist/atomic/p-1f86745f.entry.js +2 -0
  188. package/dist/atomic/{p-15b58744.entry.js.map → p-1f86745f.entry.js.map} +1 -1
  189. package/dist/atomic/{p-80cd8d91.entry.js → p-240b5a52.entry.js} +2 -2
  190. package/dist/atomic/{p-5af7deb6.entry.js.map → p-240b5a52.entry.js.map} +1 -1
  191. package/dist/atomic/p-2545de3a.entry.js +2 -0
  192. package/dist/atomic/p-2545de3a.entry.js.map +1 -0
  193. package/dist/atomic/p-292292b4.entry.js +2 -0
  194. package/dist/atomic/{p-6bf39a54.entry.js.map → p-292292b4.entry.js.map} +1 -1
  195. package/dist/atomic/p-2a3044e3.entry.js +2 -0
  196. package/dist/atomic/{p-1890138e.entry.js.map → p-2a3044e3.entry.js.map} +1 -1
  197. package/dist/atomic/p-2f0edd55.js +2 -0
  198. package/dist/atomic/p-2f0edd55.js.map +1 -0
  199. package/dist/atomic/{p-b140a3ba.entry.js → p-303657e2.entry.js} +2 -2
  200. package/dist/atomic/{p-b140a3ba.entry.js.map → p-303657e2.entry.js.map} +1 -1
  201. package/dist/atomic/p-32275553.entry.js +2 -0
  202. package/dist/atomic/p-32275553.entry.js.map +1 -0
  203. package/dist/atomic/{p-c154e82b.entry.js → p-37dd7d31.entry.js} +2 -2
  204. package/dist/atomic/{p-b9bc88bf.entry.js.map → p-37dd7d31.entry.js.map} +1 -1
  205. package/dist/atomic/{p-d2f17439.js → p-385d4e0d.js} +2 -2
  206. package/dist/atomic/p-3c50b839.entry.js +2 -0
  207. package/dist/atomic/{p-7339a39e.entry.js.map → p-3c50b839.entry.js.map} +1 -1
  208. package/dist/atomic/p-3c5d36b6.entry.js +2 -0
  209. package/dist/atomic/p-3c5d36b6.entry.js.map +1 -0
  210. package/dist/atomic/p-3e6fe20c.js +2 -0
  211. package/dist/atomic/p-3e6fe20c.js.map +1 -0
  212. package/dist/atomic/p-40702c80.entry.js +2 -0
  213. package/dist/atomic/{p-6bf258cd.entry.js.map → p-40702c80.entry.js.map} +1 -1
  214. package/dist/atomic/p-40b4b588.entry.js +2 -0
  215. package/dist/atomic/{p-948f9eb1.entry.js.map → p-40b4b588.entry.js.map} +1 -1
  216. package/dist/atomic/{p-04b33ab5.entry.js → p-416d5f3e.entry.js} +2 -2
  217. package/dist/atomic/p-416d5f3e.entry.js.map +1 -0
  218. package/dist/atomic/p-4243bce0.entry.js +2 -0
  219. package/dist/atomic/p-4243bce0.entry.js.map +1 -0
  220. package/dist/atomic/p-4252b62a.entry.js +2 -0
  221. package/dist/atomic/{p-ccbb3993.entry.js.map → p-4252b62a.entry.js.map} +1 -1
  222. package/dist/atomic/{p-60bcda24.entry.js → p-43a78770.entry.js} +2 -2
  223. package/dist/atomic/p-43a78770.entry.js.map +1 -0
  224. package/dist/atomic/{p-f66d672c.entry.js → p-4835a7b4.entry.js} +2 -2
  225. package/dist/atomic/{p-3591c26e.entry.js.map → p-4835a7b4.entry.js.map} +1 -1
  226. package/dist/atomic/p-4c9eb083.entry.js +2 -0
  227. package/dist/atomic/{p-4caf5609.entry.js.map → p-4c9eb083.entry.js.map} +1 -1
  228. package/dist/atomic/p-4dc45ad2.entry.js +2 -0
  229. package/dist/atomic/{p-208c2ee1.entry.js.map → p-4dc45ad2.entry.js.map} +1 -1
  230. package/dist/atomic/{p-4caf5609.entry.js → p-4e0a485b.entry.js} +2 -2
  231. package/dist/atomic/{p-6a48e989.entry.js.map → p-4e0a485b.entry.js.map} +1 -1
  232. package/dist/atomic/p-4f184c34.entry.js +2 -0
  233. package/dist/atomic/p-4f184c34.entry.js.map +1 -0
  234. package/dist/atomic/p-5061c7d9.entry.js +2 -0
  235. package/dist/atomic/{p-694d388a.entry.js.map → p-5061c7d9.entry.js.map} +1 -1
  236. package/dist/atomic/p-5474f931.entry.js +2 -0
  237. package/dist/atomic/{p-b1a7a7a1.entry.js.map → p-5474f931.entry.js.map} +1 -1
  238. package/dist/atomic/{p-26ca8796.entry.js → p-572811d4.entry.js} +2 -2
  239. package/dist/atomic/p-57aec054.entry.js +2 -0
  240. package/dist/atomic/{p-71c95db0.entry.js.map → p-57aec054.entry.js.map} +1 -1
  241. package/dist/atomic/p-5e0d4f30.entry.js +2 -0
  242. package/dist/atomic/p-5e0d4f30.entry.js.map +1 -0
  243. package/dist/atomic/{p-ad585045.entry.js → p-5ecaedd9.entry.js} +2 -2
  244. package/dist/atomic/{p-4cbaaadb.entry.js.map → p-5ecaedd9.entry.js.map} +1 -1
  245. package/dist/atomic/{p-5af7deb6.entry.js → p-638a624e.entry.js} +2 -2
  246. package/dist/atomic/{p-8c3d9fe6.entry.js.map → p-638a624e.entry.js.map} +1 -1
  247. package/dist/atomic/p-64e38158.entry.js +2 -0
  248. package/dist/atomic/{p-f9aee5d1.entry.js.map → p-64e38158.entry.js.map} +1 -1
  249. package/dist/atomic/p-6885acd3.entry.js +2 -0
  250. package/dist/atomic/p-6885acd3.entry.js.map +1 -0
  251. package/dist/atomic/p-6baaaab1.entry.js +2 -0
  252. package/dist/atomic/{p-9dd630ae.entry.js.map → p-6baaaab1.entry.js.map} +1 -1
  253. package/dist/atomic/p-6bf0d9bf.entry.js +2 -0
  254. package/dist/atomic/{p-81a9c583.entry.js.map → p-6bf0d9bf.entry.js.map} +1 -1
  255. package/dist/atomic/p-6ea6fde1.entry.js +2 -0
  256. package/dist/atomic/{p-4de1c891.entry.js.map → p-6ea6fde1.entry.js.map} +1 -1
  257. package/dist/atomic/p-716136ae.entry.js +2 -0
  258. package/dist/atomic/{p-574eae80.entry.js.map → p-716136ae.entry.js.map} +1 -1
  259. package/dist/atomic/p-74928a89.entry.js +2 -0
  260. package/dist/atomic/{p-f5efebad.entry.js.map → p-74928a89.entry.js.map} +1 -1
  261. package/dist/atomic/p-7f783c5b.js +2 -0
  262. package/dist/atomic/p-7f783c5b.js.map +1 -0
  263. package/dist/atomic/{p-b9bc88bf.entry.js → p-806d2145.entry.js} +2 -2
  264. package/dist/atomic/{p-4f36e119.entry.js.map → p-806d2145.entry.js.map} +1 -1
  265. package/dist/atomic/p-81a2b7f5.entry.js +2 -0
  266. package/dist/atomic/{p-761991ac.entry.js.map → p-81a2b7f5.entry.js.map} +1 -1
  267. package/dist/atomic/p-82608edd.entry.js +2 -0
  268. package/dist/atomic/p-82608edd.entry.js.map +1 -0
  269. package/dist/atomic/p-843e0545.entry.js +2 -0
  270. package/dist/atomic/{p-a3f1ef2e.entry.js.map → p-843e0545.entry.js.map} +1 -1
  271. package/dist/atomic/p-8543f60a.entry.js +2 -0
  272. package/dist/atomic/{p-c154e82b.entry.js.map → p-8543f60a.entry.js.map} +1 -1
  273. package/dist/atomic/{p-81a9c583.entry.js → p-85b7825e.entry.js} +2 -2
  274. package/dist/atomic/{p-04b33ab5.entry.js.map → p-85b7825e.entry.js.map} +1 -1
  275. package/dist/atomic/p-862769b9.entry.js +2 -0
  276. package/dist/atomic/{p-3a43e2d7.entry.js.map → p-862769b9.entry.js.map} +1 -1
  277. package/dist/atomic/p-893c53d3.entry.js +2 -0
  278. package/dist/atomic/{p-7e06946b.entry.js.map → p-893c53d3.entry.js.map} +1 -1
  279. package/dist/atomic/{p-e670ca8e.js → p-920113d1.js} +2 -2
  280. package/dist/atomic/p-969778a1.entry.js +2 -0
  281. package/dist/atomic/{p-c63ff491.entry.js.map → p-969778a1.entry.js.map} +1 -1
  282. package/dist/atomic/{p-cfdd123e.entry.js → p-9a22af0b.entry.js} +2 -2
  283. package/dist/atomic/{p-2cbef6c3.entry.js.map → p-9a22af0b.entry.js.map} +1 -1
  284. package/dist/atomic/p-9bb3269f.entry.js +2 -0
  285. package/dist/atomic/{p-3f99dfcb.entry.js.map → p-9bb3269f.entry.js.map} +1 -1
  286. package/dist/atomic/{p-948f9eb1.entry.js → p-9c71c564.entry.js} +2 -2
  287. package/dist/atomic/p-9c71c564.entry.js.map +1 -0
  288. package/dist/atomic/p-9dc331b3.entry.js +2 -0
  289. package/dist/atomic/p-9dc331b3.entry.js.map +1 -0
  290. package/dist/atomic/p-9ec08fc1.entry.js +2 -0
  291. package/dist/atomic/{p-66f71a38.entry.js.map → p-9ec08fc1.entry.js.map} +1 -1
  292. package/dist/atomic/p-a60ad537.entry.js +2 -0
  293. package/dist/atomic/{p-ce080a18.entry.js.map → p-a60ad537.entry.js.map} +1 -1
  294. package/dist/atomic/{p-1666aabc.entry.js → p-a7064c41.entry.js} +2 -2
  295. package/dist/atomic/p-a810d6ad.entry.js.map +1 -1
  296. package/dist/atomic/p-a9f165e5.entry.js +2 -0
  297. package/dist/atomic/{p-cfdd123e.entry.js.map → p-a9f165e5.entry.js.map} +1 -1
  298. package/dist/atomic/{p-047b8b08.js → p-ab3fafb5.js} +1 -1
  299. package/dist/atomic/p-ab3fafb5.js.map +1 -0
  300. package/dist/atomic/p-b39f31df.entry.js +2 -0
  301. package/dist/atomic/{p-fa6ae44b.entry.js.map → p-b39f31df.entry.js.map} +1 -1
  302. package/dist/atomic/p-b6266855.entry.js.map +1 -1
  303. package/dist/atomic/p-b66057f2.entry.js +2 -0
  304. package/dist/atomic/{p-393714ec.entry.js.map → p-b66057f2.entry.js.map} +1 -1
  305. package/dist/atomic/p-b9984629.entry.js +2 -0
  306. package/dist/atomic/p-b9984629.entry.js.map +1 -0
  307. package/dist/atomic/p-bbe35bc8.entry.js +2 -0
  308. package/dist/atomic/p-bbe35bc8.entry.js.map +1 -0
  309. package/dist/atomic/p-bdec46c1.entry.js +2 -0
  310. package/dist/atomic/p-bdec46c1.entry.js.map +1 -0
  311. package/dist/atomic/p-c3b72efb.entry.js +2 -0
  312. package/dist/atomic/{p-7004d3d7.entry.js.map → p-c3b72efb.entry.js.map} +1 -1
  313. package/dist/atomic/p-c4701592.entry.js +2 -0
  314. package/dist/atomic/{p-b8f98865.entry.js.map → p-c4701592.entry.js.map} +1 -1
  315. package/dist/atomic/p-c8de91c6.entry.js +2 -0
  316. package/dist/atomic/p-c8de91c6.entry.js.map +1 -0
  317. package/dist/atomic/p-ca775fe9.js.map +1 -1
  318. package/dist/atomic/p-cdbfd6d3.js +2 -0
  319. package/dist/atomic/p-cdbfd6d3.js.map +1 -0
  320. package/dist/atomic/{p-e918b5ce.entry.js → p-d02fe58f.entry.js} +2 -2
  321. package/dist/atomic/{p-989d2cc5.entry.js.map → p-d02fe58f.entry.js.map} +1 -1
  322. package/dist/atomic/{p-f5efebad.entry.js → p-d11c4053.entry.js} +2 -2
  323. package/dist/atomic/{p-e918b5ce.entry.js.map → p-d11c4053.entry.js.map} +1 -1
  324. package/dist/atomic/{p-351fda09.js → p-d245416e.js} +2 -2
  325. package/dist/atomic/{p-351fda09.js.map → p-d245416e.js.map} +1 -1
  326. package/dist/atomic/p-d279ff6c.entry.js +2 -0
  327. package/dist/atomic/p-d279ff6c.entry.js.map +1 -0
  328. package/dist/atomic/{p-4cbaaadb.entry.js → p-d573be8c.entry.js} +2 -2
  329. package/dist/atomic/{p-22c73142.entry.js.map → p-d573be8c.entry.js.map} +1 -1
  330. package/dist/atomic/{p-7004d3d7.entry.js → p-db3aa7c0.entry.js} +2 -2
  331. package/dist/atomic/p-db3aa7c0.entry.js.map +1 -0
  332. package/dist/atomic/p-dd3d6b89.entry.js +2 -0
  333. package/dist/atomic/{p-601c4535.entry.js.map → p-dd3d6b89.entry.js.map} +1 -1
  334. package/dist/atomic/p-df18119c.entry.js +2 -0
  335. package/dist/atomic/p-df18119c.entry.js.map +1 -0
  336. package/dist/atomic/p-df4ce223.entry.js +2 -0
  337. package/dist/atomic/{p-f31ee5c2.entry.js.map → p-df4ce223.entry.js.map} +1 -1
  338. package/dist/atomic/p-e22088e4.entry.js +2 -0
  339. package/dist/atomic/p-e22088e4.entry.js.map +1 -0
  340. package/dist/atomic/p-e382b288.entry.js +2 -0
  341. package/dist/atomic/{p-eeac4b29.entry.js.map → p-e382b288.entry.js.map} +1 -1
  342. package/dist/atomic/{p-57206eae.entry.js → p-e3d30753.entry.js} +2 -2
  343. package/dist/atomic/p-e3d30753.entry.js.map +1 -0
  344. package/dist/atomic/p-e5b29430.entry.js.map +1 -1
  345. package/dist/atomic/p-e8e041cb.entry.js +2 -0
  346. package/dist/atomic/{p-63daaf88.entry.js.map → p-e8e041cb.entry.js.map} +1 -1
  347. package/dist/atomic/p-edd94929.entry.js +2 -0
  348. package/dist/atomic/{p-b319966b.entry.js.map → p-edd94929.entry.js.map} +1 -1
  349. package/dist/atomic/{p-59fc3b06.entry.js → p-ee43c7de.entry.js} +2 -2
  350. package/dist/atomic/{p-59fc3b06.entry.js.map → p-ee43c7de.entry.js.map} +1 -1
  351. package/dist/atomic/{p-50d56305.entry.js → p-f07098d4.entry.js} +2 -2
  352. package/dist/atomic/p-f5b94d26.entry.js +2 -0
  353. package/dist/atomic/p-f5b94d26.entry.js.map +1 -0
  354. package/dist/atomic/{p-574eae80.entry.js → p-fa0866da.entry.js} +2 -2
  355. package/dist/atomic/{p-60bcda24.entry.js.map → p-fa0866da.entry.js.map} +1 -1
  356. package/dist/atomic/{p-5ae390a8.entry.js → p-fbbf4344.entry.js} +2 -2
  357. package/dist/atomic/{p-5ae390a8.entry.js.map → p-fbbf4344.entry.js.map} +1 -1
  358. package/dist/atomic/p-ff4eadc8.entry.js +2 -0
  359. package/dist/atomic/{p-a11328ae.entry.js.map → p-ff4eadc8.entry.js.map} +1 -1
  360. package/dist/cjs/_index.cjs.js +3 -3
  361. package/dist/cjs/_loader.cjs.js +1 -1
  362. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +2 -1
  363. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js.map +1 -1
  364. package/dist/cjs/atomic-breadbox.cjs.entry.js +2 -1
  365. package/dist/cjs/atomic-breadbox.cjs.entry.js.map +1 -1
  366. package/dist/cjs/atomic-category-facet.cjs.entry.js +6 -5
  367. package/dist/cjs/atomic-category-facet.cjs.entry.js.map +1 -1
  368. package/dist/cjs/atomic-color-facet.cjs.entry.js +4 -3
  369. package/dist/cjs/atomic-color-facet.cjs.entry.js.map +1 -1
  370. package/dist/cjs/atomic-did-you-mean.cjs.entry.js +2 -1
  371. package/dist/cjs/atomic-did-you-mean.cjs.entry.js.map +1 -1
  372. package/dist/cjs/atomic-facet-manager.cjs.entry.js +2 -1
  373. package/dist/cjs/atomic-facet-manager.cjs.entry.js.map +1 -1
  374. package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
  375. package/dist/cjs/atomic-folded-result-list.cjs.entry.js +6 -5
  376. package/dist/cjs/atomic-folded-result-list.cjs.entry.js.map +1 -1
  377. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  378. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  379. package/dist/cjs/atomic-format-unit.cjs.entry.js +4 -4
  380. package/dist/cjs/atomic-format-unit.cjs.entry.js.map +1 -1
  381. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +2 -1
  382. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +1 -1
  383. package/dist/cjs/atomic-generated-answer.cjs.entry.js +5 -4
  384. package/dist/cjs/atomic-generated-answer.cjs.entry.js.map +1 -1
  385. package/dist/cjs/atomic-insight-facet.cjs.entry.js +3 -2
  386. package/dist/cjs/atomic-insight-facet.cjs.entry.js.map +1 -1
  387. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +4 -3
  388. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js.map +1 -1
  389. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +2 -1
  390. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js.map +1 -1
  391. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +3 -2
  392. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
  393. package/dist/cjs/atomic-insight-layout.cjs.entry.js +2 -1
  394. package/dist/cjs/atomic-insight-layout.cjs.entry.js.map +1 -1
  395. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +2 -1
  396. package/dist/cjs/atomic-insight-no-results.cjs.entry.js.map +1 -1
  397. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +3 -2
  398. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js.map +1 -1
  399. package/dist/cjs/atomic-insight-pager.cjs.entry.js +2 -1
  400. package/dist/cjs/atomic-insight-pager.cjs.entry.js.map +1 -1
  401. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +2 -1
  402. package/dist/cjs/atomic-insight-query-error.cjs.entry.js.map +1 -1
  403. package/dist/cjs/atomic-insight-query-summary.cjs.entry.js +2 -1
  404. package/dist/cjs/atomic-insight-query-summary.cjs.entry.js.map +1 -1
  405. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +5 -4
  406. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js.map +1 -1
  407. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +2 -1
  408. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js.map +1 -1
  409. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +2 -1
  410. package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
  411. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +2 -1
  412. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
  413. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +2 -1
  414. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js.map +1 -1
  415. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +4 -3
  416. package/dist/cjs/atomic-insight-result-children.cjs.entry.js.map +1 -1
  417. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +4 -3
  418. package/dist/cjs/atomic-insight-result-list.cjs.entry.js.map +1 -1
  419. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +2 -1
  420. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js.map +1 -1
  421. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -1
  422. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  423. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -1
  424. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js.map +1 -1
  425. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +3 -2
  426. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js.map +1 -1
  427. package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js +3 -2
  428. package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js.map +1 -1
  429. package/dist/cjs/atomic-insight-tab.cjs.entry.js +2 -1
  430. package/dist/cjs/atomic-insight-tab.cjs.entry.js.map +1 -1
  431. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +2 -1
  432. package/dist/cjs/atomic-insight-tabs.cjs.entry.js.map +1 -1
  433. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +4 -4
  434. package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js +3 -2
  435. package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js.map +1 -1
  436. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +4 -5
  437. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js.map +1 -1
  438. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +2 -1
  439. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
  440. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -1
  441. package/dist/cjs/atomic-ipx-body.cjs.entry.js.map +1 -1
  442. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -1
  443. package/dist/cjs/atomic-ipx-button.cjs.entry.js.map +1 -1
  444. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +2 -1
  445. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js.map +1 -1
  446. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -1
  447. package/dist/cjs/atomic-ipx-modal.cjs.entry.js.map +1 -1
  448. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +4 -3
  449. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js.map +1 -1
  450. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +4 -3
  451. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js.map +1 -1
  452. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +2 -1
  453. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js.map +1 -1
  454. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +2 -1
  455. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
  456. package/dist/cjs/atomic-ipx-tab.cjs.entry.js +2 -1
  457. package/dist/cjs/atomic-ipx-tab.cjs.entry.js.map +1 -1
  458. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +2 -1
  459. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js.map +1 -1
  460. package/dist/cjs/atomic-no-results.cjs.entry.js +2 -1
  461. package/dist/cjs/atomic-no-results.cjs.entry.js.map +1 -1
  462. package/dist/cjs/atomic-notifications.cjs.entry.js +2 -1
  463. package/dist/cjs/atomic-notifications.cjs.entry.js.map +1 -1
  464. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +6 -5
  465. package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
  466. package/dist/cjs/atomic-popover.cjs.entry.js +2 -1
  467. package/dist/cjs/atomic-popover.cjs.entry.js.map +1 -1
  468. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +3 -2
  469. package/dist/cjs/atomic-quickview-modal.cjs.entry.js.map +1 -1
  470. package/dist/cjs/atomic-quickview.cjs.entry.js +3 -2
  471. package/dist/cjs/atomic-quickview.cjs.entry.js.map +1 -1
  472. package/dist/cjs/atomic-rating-facet.cjs.entry.js +4 -3
  473. package/dist/cjs/atomic-rating-facet.cjs.entry.js.map +1 -1
  474. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +4 -3
  475. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js.map +1 -1
  476. package/dist/cjs/atomic-recs-error.cjs.entry.js +2 -1
  477. package/dist/cjs/atomic-recs-error.cjs.entry.js.map +1 -1
  478. package/dist/cjs/atomic-recs-list.cjs.entry.js +4 -3
  479. package/dist/cjs/atomic-recs-list.cjs.entry.js.map +1 -1
  480. package/dist/cjs/atomic-refine-modal.cjs.entry.js +5 -4
  481. package/dist/cjs/atomic-refine-modal.cjs.entry.js.map +1 -1
  482. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +3 -2
  483. package/dist/cjs/atomic-refine-toggle.cjs.entry.js.map +1 -1
  484. package/dist/cjs/atomic-result-badge.cjs.entry.js.map +1 -1
  485. package/dist/cjs/atomic-result-children.cjs.entry.js +4 -3
  486. package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
  487. package/dist/cjs/atomic-result-date.cjs.entry.js +46 -17
  488. package/dist/cjs/atomic-result-date.cjs.entry.js.map +1 -1
  489. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  490. package/dist/cjs/atomic-result-html.cjs.entry.js +2 -1
  491. package/dist/cjs/atomic-result-html.cjs.entry.js.map +1 -1
  492. package/dist/cjs/atomic-result-image.cjs.entry.js +3 -2
  493. package/dist/cjs/atomic-result-image.cjs.entry.js.map +1 -1
  494. package/dist/cjs/atomic-result-link.cjs.entry.js +3 -2
  495. package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
  496. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +2 -1
  497. package/dist/cjs/atomic-result-localized-text.cjs.entry.js.map +1 -1
  498. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +2 -1
  499. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js.map +1 -1
  500. package/dist/cjs/atomic-result-placeholder_2.cjs.entry.js +1 -1
  501. package/dist/cjs/atomic-result-placeholder_2.cjs.entry.js.map +1 -1
  502. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +2 -1
  503. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js.map +1 -1
  504. package/dist/cjs/atomic-result-rating.cjs.entry.js +2 -1
  505. package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
  506. package/dist/cjs/atomic-result-timespan.cjs.entry.js +12 -4
  507. package/dist/cjs/atomic-result-timespan.cjs.entry.js.map +1 -1
  508. package/dist/cjs/atomic-search-box.cjs.entry.js +8 -7
  509. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  510. package/dist/cjs/atomic-segmented-facet-scrollable.cjs.entry.js +2 -1
  511. package/dist/cjs/atomic-segmented-facet-scrollable.cjs.entry.js.map +1 -1
  512. package/dist/cjs/atomic-segmented-facet.cjs.entry.js +4 -3
  513. package/dist/cjs/atomic-segmented-facet.cjs.entry.js.map +1 -1
  514. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -1
  515. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js.map +1 -1
  516. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +2 -1
  517. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js.map +1 -1
  518. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +4 -3
  519. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js.map +1 -1
  520. package/dist/cjs/atomic-smart-snippet-suggestions.cjs.entry.js +3 -2
  521. package/dist/cjs/atomic-smart-snippet-suggestions.cjs.entry.js.map +1 -1
  522. package/dist/cjs/atomic-smart-snippet.cjs.entry.js +5 -4
  523. package/dist/cjs/atomic-smart-snippet.cjs.entry.js.map +1 -1
  524. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +4 -3
  525. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js.map +1 -1
  526. package/dist/cjs/atomic-sort-expression.cjs.entry.js +3 -3
  527. package/dist/cjs/atomic-sort-expression.cjs.entry.js.map +1 -1
  528. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +1 -3
  529. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js.map +1 -1
  530. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +2 -1
  531. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js.map +1 -1
  532. package/dist/cjs/atomic-tab-manager.cjs.entry.js +3 -2
  533. package/dist/cjs/atomic-tab-manager.cjs.entry.js.map +1 -1
  534. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +6 -6
  535. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js.map +1 -1
  536. package/dist/cjs/atomic-timeframe.cjs.entry.js +1 -1
  537. package/dist/cjs/atomic-timeframe.cjs.entry.js.map +1 -1
  538. package/dist/cjs/atomic.cjs.js +1 -1
  539. package/dist/cjs/date-utils-0381ac5f.js +1041 -0
  540. package/dist/cjs/date-utils-0381ac5f.js.map +1 -0
  541. package/dist/cjs/{generated-answer-common-c5248dd8.js → generated-answer-common-927e3ee0.js} +3 -3
  542. package/dist/cjs/generated-answer-common-927e3ee0.js.map +1 -0
  543. package/dist/cjs/index-1df73594.js +0 -12
  544. package/dist/cjs/initialization-lit-stencil-common-utils-f635e407.js +82 -0
  545. package/dist/cjs/initialization-lit-stencil-common-utils-f635e407.js.map +1 -0
  546. package/dist/cjs/{initialization-utils-a7e710aa.js → initialization-utils-ec6c0bfb.js} +6 -80
  547. package/dist/cjs/initialization-utils-ec6c0bfb.js.map +1 -0
  548. package/dist/cjs/{show-hide-button-6af56449.js → show-hide-button-6cda3a22.js} +1 -1
  549. package/dist/cjs/show-hide-button-6cda3a22.js.map +1 -0
  550. package/dist/cjs/{smart-snippet-common-b1a21770.js → smart-snippet-common-bfd586a6.js} +2 -2
  551. package/dist/cjs/smart-snippet-common-bfd586a6.js.map +1 -0
  552. package/dist/cjs/{smart-snippet-suggestions-common-4c88bab9.js → smart-snippet-suggestions-common-0288af37.js} +2 -2
  553. package/dist/cjs/smart-snippet-suggestions-common-0288af37.js.map +1 -0
  554. package/dist/cjs/{stencil-facet-guard-9ed13c4f.js → stencil-facet-guard-436f3e55.js} +2 -2
  555. package/dist/cjs/{stencil-facet-guard-9ed13c4f.js.map → stencil-facet-guard-436f3e55.js.map} +1 -1
  556. package/dist/cjs/stencil-suggestion-manager-c7b54239.js.map +1 -1
  557. package/dist/cjs/{timeframe-facet-common-98ebc695.js → timeframe-facet-common-03f90c44.js} +3 -3
  558. package/dist/cjs/{timeframe-facet-common-98ebc695.js.map → timeframe-facet-common-03f90c44.js.map} +1 -1
  559. package/dist/cjs/version.cjs.js +2 -2
  560. package/dist/esm/_index.js +1 -1
  561. package/dist/esm/_loader.js +1 -1
  562. package/dist/esm/atomic-automatic-facet_2.entry.js +2 -1
  563. package/dist/esm/atomic-automatic-facet_2.entry.js.map +1 -1
  564. package/dist/esm/atomic-breadbox.entry.js +2 -1
  565. package/dist/esm/atomic-breadbox.entry.js.map +1 -1
  566. package/dist/esm/atomic-category-facet.entry.js +6 -5
  567. package/dist/esm/atomic-category-facet.entry.js.map +1 -1
  568. package/dist/esm/atomic-color-facet.entry.js +4 -3
  569. package/dist/esm/atomic-color-facet.entry.js.map +1 -1
  570. package/dist/esm/atomic-did-you-mean.entry.js +2 -1
  571. package/dist/esm/atomic-did-you-mean.entry.js.map +1 -1
  572. package/dist/esm/atomic-facet-manager.entry.js +2 -1
  573. package/dist/esm/atomic-facet-manager.entry.js.map +1 -1
  574. package/dist/esm/atomic-field-condition.entry.js.map +1 -1
  575. package/dist/esm/atomic-folded-result-list.entry.js +6 -5
  576. package/dist/esm/atomic-folded-result-list.entry.js.map +1 -1
  577. package/dist/esm/atomic-format-currency.entry.js +1 -1
  578. package/dist/esm/atomic-format-number.entry.js +1 -1
  579. package/dist/esm/atomic-format-unit.entry.js +4 -4
  580. package/dist/esm/atomic-format-unit.entry.js.map +1 -1
  581. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +2 -1
  582. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +1 -1
  583. package/dist/esm/atomic-generated-answer.entry.js +5 -4
  584. package/dist/esm/atomic-generated-answer.entry.js.map +1 -1
  585. package/dist/esm/atomic-insight-facet.entry.js +3 -2
  586. package/dist/esm/atomic-insight-facet.entry.js.map +1 -1
  587. package/dist/esm/atomic-insight-folded-result-list.entry.js +4 -3
  588. package/dist/esm/atomic-insight-folded-result-list.entry.js.map +1 -1
  589. package/dist/esm/atomic-insight-full-search-button.entry.js +2 -1
  590. package/dist/esm/atomic-insight-full-search-button.entry.js.map +1 -1
  591. package/dist/esm/atomic-insight-generated-answer.entry.js +3 -2
  592. package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
  593. package/dist/esm/atomic-insight-layout.entry.js +2 -1
  594. package/dist/esm/atomic-insight-layout.entry.js.map +1 -1
  595. package/dist/esm/atomic-insight-no-results.entry.js +2 -1
  596. package/dist/esm/atomic-insight-no-results.entry.js.map +1 -1
  597. package/dist/esm/atomic-insight-numeric-facet.entry.js +3 -2
  598. package/dist/esm/atomic-insight-numeric-facet.entry.js.map +1 -1
  599. package/dist/esm/atomic-insight-pager.entry.js +2 -1
  600. package/dist/esm/atomic-insight-pager.entry.js.map +1 -1
  601. package/dist/esm/atomic-insight-query-error.entry.js +2 -1
  602. package/dist/esm/atomic-insight-query-error.entry.js.map +1 -1
  603. package/dist/esm/atomic-insight-query-summary.entry.js +2 -1
  604. package/dist/esm/atomic-insight-query-summary.entry.js.map +1 -1
  605. package/dist/esm/atomic-insight-refine-modal.entry.js +5 -4
  606. package/dist/esm/atomic-insight-refine-modal.entry.js.map +1 -1
  607. package/dist/esm/atomic-insight-refine-toggle.entry.js +2 -1
  608. package/dist/esm/atomic-insight-refine-toggle.entry.js.map +1 -1
  609. package/dist/esm/atomic-insight-result-action.entry.js +2 -1
  610. package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
  611. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +2 -1
  612. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
  613. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +2 -1
  614. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js.map +1 -1
  615. package/dist/esm/atomic-insight-result-children.entry.js +4 -3
  616. package/dist/esm/atomic-insight-result-children.entry.js.map +1 -1
  617. package/dist/esm/atomic-insight-result-list.entry.js +4 -3
  618. package/dist/esm/atomic-insight-result-list.entry.js.map +1 -1
  619. package/dist/esm/atomic-insight-result-quickview-action.entry.js +2 -1
  620. package/dist/esm/atomic-insight-result-quickview-action.entry.js.map +1 -1
  621. package/dist/esm/atomic-insight-search-box.entry.js +2 -1
  622. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  623. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -1
  624. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js.map +1 -1
  625. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +3 -2
  626. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js.map +1 -1
  627. package/dist/esm/atomic-insight-smart-snippet.entry.js +3 -2
  628. package/dist/esm/atomic-insight-smart-snippet.entry.js.map +1 -1
  629. package/dist/esm/atomic-insight-tab.entry.js +2 -1
  630. package/dist/esm/atomic-insight-tab.entry.js.map +1 -1
  631. package/dist/esm/atomic-insight-tabs.entry.js +2 -1
  632. package/dist/esm/atomic-insight-tabs.entry.js.map +1 -1
  633. package/dist/esm/atomic-insight-timeframe-facet.entry.js +4 -4
  634. package/dist/esm/atomic-insight-user-actions-modal.entry.js +3 -2
  635. package/dist/esm/atomic-insight-user-actions-modal.entry.js.map +1 -1
  636. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +4 -5
  637. package/dist/esm/atomic-insight-user-actions-session_2.entry.js.map +1 -1
  638. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +2 -1
  639. package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
  640. package/dist/esm/atomic-ipx-body.entry.js +2 -1
  641. package/dist/esm/atomic-ipx-body.entry.js.map +1 -1
  642. package/dist/esm/atomic-ipx-button.entry.js +2 -1
  643. package/dist/esm/atomic-ipx-button.entry.js.map +1 -1
  644. package/dist/esm/atomic-ipx-embedded.entry.js +2 -1
  645. package/dist/esm/atomic-ipx-embedded.entry.js.map +1 -1
  646. package/dist/esm/atomic-ipx-modal.entry.js +2 -1
  647. package/dist/esm/atomic-ipx-modal.entry.js.map +1 -1
  648. package/dist/esm/atomic-ipx-recs-list.entry.js +4 -3
  649. package/dist/esm/atomic-ipx-recs-list.entry.js.map +1 -1
  650. package/dist/esm/atomic-ipx-refine-modal.entry.js +4 -3
  651. package/dist/esm/atomic-ipx-refine-modal.entry.js.map +1 -1
  652. package/dist/esm/atomic-ipx-refine-toggle.entry.js +2 -1
  653. package/dist/esm/atomic-ipx-refine-toggle.entry.js.map +1 -1
  654. package/dist/esm/atomic-ipx-result-link.entry.js +2 -1
  655. package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
  656. package/dist/esm/atomic-ipx-tab.entry.js +2 -1
  657. package/dist/esm/atomic-ipx-tab.entry.js.map +1 -1
  658. package/dist/esm/atomic-ipx-tabs.entry.js +2 -1
  659. package/dist/esm/atomic-ipx-tabs.entry.js.map +1 -1
  660. package/dist/esm/atomic-no-results.entry.js +2 -1
  661. package/dist/esm/atomic-no-results.entry.js.map +1 -1
  662. package/dist/esm/atomic-notifications.entry.js +2 -1
  663. package/dist/esm/atomic-notifications.entry.js.map +1 -1
  664. package/dist/esm/atomic-numeric-facet.entry.js +6 -5
  665. package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
  666. package/dist/esm/atomic-popover.entry.js +2 -1
  667. package/dist/esm/atomic-popover.entry.js.map +1 -1
  668. package/dist/esm/atomic-quickview-modal.entry.js +3 -2
  669. package/dist/esm/atomic-quickview-modal.entry.js.map +1 -1
  670. package/dist/esm/atomic-quickview.entry.js +3 -2
  671. package/dist/esm/atomic-quickview.entry.js.map +1 -1
  672. package/dist/esm/atomic-rating-facet.entry.js +4 -3
  673. package/dist/esm/atomic-rating-facet.entry.js.map +1 -1
  674. package/dist/esm/atomic-rating-range-facet.entry.js +4 -3
  675. package/dist/esm/atomic-rating-range-facet.entry.js.map +1 -1
  676. package/dist/esm/atomic-recs-error.entry.js +2 -1
  677. package/dist/esm/atomic-recs-error.entry.js.map +1 -1
  678. package/dist/esm/atomic-recs-list.entry.js +4 -3
  679. package/dist/esm/atomic-recs-list.entry.js.map +1 -1
  680. package/dist/esm/atomic-refine-modal.entry.js +5 -4
  681. package/dist/esm/atomic-refine-modal.entry.js.map +1 -1
  682. package/dist/esm/atomic-refine-toggle.entry.js +3 -2
  683. package/dist/esm/atomic-refine-toggle.entry.js.map +1 -1
  684. package/dist/esm/atomic-result-badge.entry.js.map +1 -1
  685. package/dist/esm/atomic-result-children.entry.js +4 -3
  686. package/dist/esm/atomic-result-children.entry.js.map +1 -1
  687. package/dist/esm/atomic-result-date.entry.js +43 -14
  688. package/dist/esm/atomic-result-date.entry.js.map +1 -1
  689. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  690. package/dist/esm/atomic-result-html.entry.js +2 -1
  691. package/dist/esm/atomic-result-html.entry.js.map +1 -1
  692. package/dist/esm/atomic-result-image.entry.js +3 -2
  693. package/dist/esm/atomic-result-image.entry.js.map +1 -1
  694. package/dist/esm/atomic-result-link.entry.js +3 -2
  695. package/dist/esm/atomic-result-link.entry.js.map +1 -1
  696. package/dist/esm/atomic-result-localized-text.entry.js +2 -1
  697. package/dist/esm/atomic-result-localized-text.entry.js.map +1 -1
  698. package/dist/esm/atomic-result-multi-value-text.entry.js +2 -1
  699. package/dist/esm/atomic-result-multi-value-text.entry.js.map +1 -1
  700. package/dist/esm/atomic-result-placeholder_2.entry.js +1 -1
  701. package/dist/esm/atomic-result-placeholder_2.entry.js.map +1 -1
  702. package/dist/esm/atomic-result-printable-uri.entry.js +2 -1
  703. package/dist/esm/atomic-result-printable-uri.entry.js.map +1 -1
  704. package/dist/esm/atomic-result-rating.entry.js +2 -1
  705. package/dist/esm/atomic-result-rating.entry.js.map +1 -1
  706. package/dist/esm/atomic-result-timespan.entry.js +10 -2
  707. package/dist/esm/atomic-result-timespan.entry.js.map +1 -1
  708. package/dist/esm/atomic-search-box.entry.js +8 -7
  709. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  710. package/dist/esm/atomic-segmented-facet-scrollable.entry.js +2 -1
  711. package/dist/esm/atomic-segmented-facet-scrollable.entry.js.map +1 -1
  712. package/dist/esm/atomic-segmented-facet.entry.js +4 -3
  713. package/dist/esm/atomic-segmented-facet.entry.js.map +1 -1
  714. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -1
  715. package/dist/esm/atomic-smart-snippet-answer_2.entry.js.map +1 -1
  716. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +2 -1
  717. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js.map +1 -1
  718. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +4 -3
  719. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js.map +1 -1
  720. package/dist/esm/atomic-smart-snippet-suggestions.entry.js +3 -2
  721. package/dist/esm/atomic-smart-snippet-suggestions.entry.js.map +1 -1
  722. package/dist/esm/atomic-smart-snippet.entry.js +5 -4
  723. package/dist/esm/atomic-smart-snippet.entry.js.map +1 -1
  724. package/dist/esm/atomic-sort-dropdown.entry.js +4 -3
  725. package/dist/esm/atomic-sort-dropdown.entry.js.map +1 -1
  726. package/dist/esm/atomic-sort-expression.entry.js +3 -3
  727. package/dist/esm/atomic-sort-expression.entry.js.map +1 -1
  728. package/dist/esm/atomic-stencil-facet-date-input.entry.js +1 -3
  729. package/dist/esm/atomic-stencil-facet-date-input.entry.js.map +1 -1
  730. package/dist/esm/atomic-tab-bar_2.entry.js +2 -1
  731. package/dist/esm/atomic-tab-bar_2.entry.js.map +1 -1
  732. package/dist/esm/atomic-tab-manager.entry.js +3 -2
  733. package/dist/esm/atomic-tab-manager.entry.js.map +1 -1
  734. package/dist/esm/atomic-timeframe-facet.entry.js +6 -6
  735. package/dist/esm/atomic-timeframe-facet.entry.js.map +1 -1
  736. package/dist/esm/atomic-timeframe.entry.js +1 -1
  737. package/dist/esm/atomic-timeframe.entry.js.map +1 -1
  738. package/dist/esm/atomic.js +1 -1
  739. package/dist/esm/date-utils-c96893e8.js +1037 -0
  740. package/dist/esm/date-utils-c96893e8.js.map +1 -0
  741. package/dist/esm/{generated-answer-common-ea4c7577.js → generated-answer-common-88cdefec.js} +3 -3
  742. package/dist/esm/generated-answer-common-88cdefec.js.map +1 -0
  743. package/dist/esm/index-a59c51bd.js +0 -12
  744. package/dist/esm/initialization-lit-stencil-common-utils-8f9c9a87.js +76 -0
  745. package/dist/esm/initialization-lit-stencil-common-utils-8f9c9a87.js.map +1 -0
  746. package/dist/esm/{initialization-utils-1ac142ee.js → initialization-utils-fff1cf59.js} +3 -75
  747. package/dist/esm/initialization-utils-fff1cf59.js.map +1 -0
  748. package/dist/esm/{show-hide-button-0e446376.js → show-hide-button-d9230b9e.js} +1 -1
  749. package/dist/esm/show-hide-button-d9230b9e.js.map +1 -0
  750. package/dist/esm/{smart-snippet-common-fa8817ae.js → smart-snippet-common-a49d332d.js} +2 -2
  751. package/dist/esm/smart-snippet-common-a49d332d.js.map +1 -0
  752. package/dist/esm/{smart-snippet-suggestions-common-e6dc7014.js → smart-snippet-suggestions-common-cec2c1d8.js} +2 -2
  753. package/dist/esm/smart-snippet-suggestions-common-cec2c1d8.js.map +1 -0
  754. package/dist/esm/{stencil-facet-guard-577ea728.js → stencil-facet-guard-23f22272.js} +2 -2
  755. package/dist/esm/{stencil-facet-guard-577ea728.js.map → stencil-facet-guard-23f22272.js.map} +1 -1
  756. package/dist/esm/stencil-suggestion-manager-0f37f08b.js.map +1 -1
  757. package/dist/esm/{timeframe-facet-common-0bf63f86.js → timeframe-facet-common-57a927da.js} +3 -3
  758. package/dist/esm/{timeframe-facet-common-0bf63f86.js.map → timeframe-facet-common-57a927da.js.map} +1 -1
  759. package/dist/esm/version.js +2 -2
  760. package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +1 -1
  761. package/dist/types/components/commerce/atomic-commerce-facet/atomic-commerce-facet.d.ts +1 -1
  762. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +3 -3
  763. package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +1 -1
  764. package/dist/types/components/commerce/atomic-commerce-product-list/atomic-commerce-product-list.d.ts +1 -1
  765. package/dist/types/components/commerce/atomic-commerce-query-error/atomic-commerce-query-error.d.ts +2 -2
  766. package/dist/types/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.d.ts +1 -1
  767. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +3 -3
  768. package/dist/types/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.d.ts +1 -1
  769. package/dist/types/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.d.ts +1 -1
  770. package/dist/types/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.d.ts +1 -1
  771. package/dist/types/components/commerce/atomic-product-children/atomic-product-children.d.ts +1 -1
  772. package/dist/types/components/commerce/atomic-product-field-condition/atomic-product-field-condition.d.ts +5 -5
  773. package/dist/types/components/common/atomic-modal/atomic-modal.d.ts +2 -2
  774. package/dist/types/components/common/atomic-numeric-range/atomic-numeric-range.d.ts +11 -2
  775. package/dist/types/components/common/atomic-timeframe/atomic-timeframe.d.ts +1 -1
  776. package/dist/types/components/common/index.d.ts +1 -0
  777. package/dist/types/components/common/refine-modal/body.d.ts +3 -2
  778. package/dist/types/components/common/refine-modal/stencil-body.d.ts +3 -1
  779. package/dist/types/components/common/result-children/children-wrapper.d.ts +2 -9
  780. package/dist/types/components/common/result-children/guard.d.ts +2 -5
  781. package/dist/types/components/common/result-children/stencil-children-wrapper.d.ts +9 -0
  782. package/dist/types/components/common/result-children/stencil-guard.d.ts +11 -0
  783. package/dist/types/components/common/sort/container.d.ts +2 -5
  784. package/dist/types/components/common/sort/stencil-container.d.ts +5 -0
  785. package/dist/types/components/common/suggestions/stencil-suggestion-manager.d.ts +1 -1
  786. package/dist/types/components/common/suggestions/suggestion-manager.d.ts +1 -1
  787. package/dist/types/components/common/suggestions/suggestions-types.d.ts +1 -1
  788. package/dist/types/components/insight/atomic-insight-generate-answer-button/atomic-insight-generate-answer-button.d.ts +24 -0
  789. package/dist/types/components/insight/index.d.ts +1 -0
  790. package/dist/types/components/insight/result-lists/atomic-insight-folded-result-list/atomic-insight-folded-result-list.d.ts +1 -1
  791. package/dist/types/components/insight/result-lists/atomic-insight-result-list/atomic-insight-result-list.d.ts +1 -1
  792. package/dist/types/components/ipx/atomic-ipx-recs-list/atomic-recs-list/atomic-ipx-recs-list.d.ts +2 -2
  793. package/dist/types/components/recommendations/atomic-recs-interface/atomic-recs-interface.d.ts +1 -1
  794. package/dist/types/components/recommendations/atomic-recs-list/atomic-recs-list.d.ts +2 -2
  795. package/dist/types/components/search/atomic-breadbox/atomic-breadbox.d.ts +1 -1
  796. package/dist/types/components/search/atomic-facet/atomic-facet.d.ts +4 -4
  797. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +2 -2
  798. package/dist/types/components/search/atomic-query-error/atomic-query-error.d.ts +14 -7
  799. package/dist/types/components/search/atomic-query-summary/atomic-query-summary.d.ts +1 -1
  800. package/dist/types/components/search/atomic-result-list/atomic-result-list.d.ts +5 -4
  801. package/dist/types/components/search/atomic-result-number/atomic-result-number.d.ts +38 -0
  802. package/dist/types/components/search/atomic-search-box/atomic-search-box.d.ts +3 -3
  803. package/dist/types/components/search/atomic-search-box-instant-results/atomic-search-box-instant-results.d.ts +1 -1
  804. package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +2 -2
  805. package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +1 -1
  806. package/dist/types/components/search/atomic-sort-expression/atomic-sort-expression.d.ts +2 -2
  807. package/dist/types/components/search/facets/atomic-category-facet/atomic-category-facet.d.ts +4 -4
  808. package/dist/types/components/search/facets/atomic-color-facet/atomic-color-facet.d.ts +4 -4
  809. package/dist/types/components/search/facets/atomic-numeric-facet/atomic-numeric-facet.d.ts +3 -3
  810. package/dist/types/components/search/facets/atomic-rating-facet/atomic-rating-facet.d.ts +3 -3
  811. package/dist/types/components/search/facets/atomic-rating-range-facet/atomic-rating-range-facet.d.ts +3 -3
  812. package/dist/types/components/search/facets/atomic-segmented-facet/atomic-segmented-facet.d.ts +2 -2
  813. package/dist/types/components/search/facets/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.d.ts +2 -2
  814. package/dist/types/components/search/facets/atomic-timeframe-facet/atomic-timeframe-facet.d.ts +2 -2
  815. package/dist/types/components/search/facets/color-facet-checkbox/color-facet-checkbox.d.ts +3 -6
  816. package/dist/types/components/search/facets/color-facet-checkbox/stencil-color-facet-checkbox.d.ts +6 -0
  817. package/dist/types/components/search/formats/atomic-format-unit.d.ts +3 -3
  818. package/dist/types/components/search/index.d.ts +2 -0
  819. package/dist/types/components/search/result-lists/atomic-folded-result-list/atomic-folded-result-list.d.ts +5 -5
  820. package/dist/types/components/search/result-template-components/atomic-field-condition/atomic-field-condition.d.ts +1 -1
  821. package/dist/types/components/search/result-template-components/atomic-quickview/atomic-quickview.d.ts +1 -1
  822. package/dist/types/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.d.ts +1 -1
  823. package/dist/types/components/search/result-template-components/atomic-result-badge/atomic-result-badge.d.ts +1 -1
  824. package/dist/types/components/search/smart-snippets/atomic-smart-snippet/atomic-smart-snippet.d.ts +2 -2
  825. package/dist/types/components.d.ts +95 -210
  826. package/dist/types/directives/multi-class-map.d.ts +2 -2
  827. package/dist/types/index.d.ts +1 -1
  828. package/dist/types/types/dayjs/locale.d.ts +4 -0
  829. package/dist/types/types/storybook.d.ts +7 -0
  830. package/dist/types/utils/date-utils.d.ts +5 -5
  831. package/dist/types/utils/initialization-lit-stencil-common-utils.d.ts +5 -0
  832. package/docs/assets.json +1 -1
  833. package/docs/atomic-docs.json +53 -284
  834. package/package.json +18 -15
  835. package/dist/atomic/components/atomic-numeric-range.d.ts +0 -11
  836. package/dist/atomic/components/atomic-numeric-range.js +0 -42
  837. package/dist/atomic/components/atomic-numeric-range.js.map +0 -1
  838. package/dist/atomic/components/atomic-query-error.d.ts +0 -11
  839. package/dist/atomic/components/atomic-query-error.js +0 -76
  840. package/dist/atomic/components/atomic-query-error.js.map +0 -1
  841. package/dist/atomic/components/atomic-result-number.d.ts +0 -11
  842. package/dist/atomic/components/atomic-result-number.js +0 -102
  843. package/dist/atomic/components/atomic-result-number.js.map +0 -1
  844. package/dist/atomic/components/dayjs.min.js +0 -13
  845. package/dist/atomic/components/dayjs.min.js.map +0 -1
  846. package/dist/atomic/p-047b8b08.js.map +0 -1
  847. package/dist/atomic/p-054634c1.entry.js +0 -2
  848. package/dist/atomic/p-054634c1.entry.js.map +0 -1
  849. package/dist/atomic/p-119d63b8.entry.js +0 -2
  850. package/dist/atomic/p-119d63b8.entry.js.map +0 -1
  851. package/dist/atomic/p-15b58744.entry.js +0 -2
  852. package/dist/atomic/p-17fdb3c3.entry.js +0 -2
  853. package/dist/atomic/p-17fdb3c3.entry.js.map +0 -1
  854. package/dist/atomic/p-1890138e.entry.js +0 -2
  855. package/dist/atomic/p-1cd81d8c.entry.js.map +0 -1
  856. package/dist/atomic/p-208c2ee1.entry.js +0 -2
  857. package/dist/atomic/p-22c73142.entry.js +0 -2
  858. package/dist/atomic/p-24486958.entry.js +0 -2
  859. package/dist/atomic/p-24c9b9f4.entry.js +0 -2
  860. package/dist/atomic/p-2af6d7b6.entry.js +0 -2
  861. package/dist/atomic/p-2af6d7b6.entry.js.map +0 -1
  862. package/dist/atomic/p-2b396c74.entry.js +0 -2
  863. package/dist/atomic/p-2b396c74.entry.js.map +0 -1
  864. package/dist/atomic/p-2cbef6c3.entry.js +0 -2
  865. package/dist/atomic/p-32ab91ab.entry.js +0 -2
  866. package/dist/atomic/p-32ab91ab.entry.js.map +0 -1
  867. package/dist/atomic/p-3591c26e.entry.js +0 -2
  868. package/dist/atomic/p-393714ec.entry.js +0 -2
  869. package/dist/atomic/p-3a43e2d7.entry.js +0 -2
  870. package/dist/atomic/p-3bdc7566.entry.js +0 -2
  871. package/dist/atomic/p-3bdc7566.entry.js.map +0 -1
  872. package/dist/atomic/p-3f99dfcb.entry.js +0 -2
  873. package/dist/atomic/p-4780cd57.entry.js +0 -2
  874. package/dist/atomic/p-4780cd57.entry.js.map +0 -1
  875. package/dist/atomic/p-4a03407e.entry.js +0 -2
  876. package/dist/atomic/p-4de1c891.entry.js +0 -2
  877. package/dist/atomic/p-4f36e119.entry.js +0 -2
  878. package/dist/atomic/p-57206eae.entry.js.map +0 -1
  879. package/dist/atomic/p-5e308140.entry.js +0 -2
  880. package/dist/atomic/p-5e308140.entry.js.map +0 -1
  881. package/dist/atomic/p-601c4535.entry.js +0 -2
  882. package/dist/atomic/p-63daaf88.entry.js +0 -2
  883. package/dist/atomic/p-66f71a38.entry.js +0 -2
  884. package/dist/atomic/p-67289d09.entry.js +0 -2
  885. package/dist/atomic/p-67289d09.entry.js.map +0 -1
  886. package/dist/atomic/p-6821eedf.entry.js +0 -2
  887. package/dist/atomic/p-6821eedf.entry.js.map +0 -1
  888. package/dist/atomic/p-691fd9aa.entry.js +0 -2
  889. package/dist/atomic/p-694d388a.entry.js +0 -2
  890. package/dist/atomic/p-69823658.entry.js +0 -2
  891. package/dist/atomic/p-69823658.entry.js.map +0 -1
  892. package/dist/atomic/p-6a48e989.entry.js +0 -2
  893. package/dist/atomic/p-6bf258cd.entry.js +0 -2
  894. package/dist/atomic/p-6bf39a54.entry.js +0 -2
  895. package/dist/atomic/p-71c95db0.entry.js +0 -2
  896. package/dist/atomic/p-7339a39e.entry.js +0 -2
  897. package/dist/atomic/p-74ac043c.entry.js +0 -2
  898. package/dist/atomic/p-74ac043c.entry.js.map +0 -1
  899. package/dist/atomic/p-761991ac.entry.js +0 -2
  900. package/dist/atomic/p-7713727b.entry.js +0 -2
  901. package/dist/atomic/p-793d32f9.entry.js +0 -2
  902. package/dist/atomic/p-793d32f9.entry.js.map +0 -1
  903. package/dist/atomic/p-7e06946b.entry.js +0 -2
  904. package/dist/atomic/p-80cd8d91.entry.js.map +0 -1
  905. package/dist/atomic/p-8c3d9fe6.entry.js +0 -2
  906. package/dist/atomic/p-9511f2fd.js +0 -2
  907. package/dist/atomic/p-9511f2fd.js.map +0 -1
  908. package/dist/atomic/p-989d2cc5.entry.js +0 -2
  909. package/dist/atomic/p-998bb649.entry.js +0 -2
  910. package/dist/atomic/p-998bb649.entry.js.map +0 -1
  911. package/dist/atomic/p-9dd630ae.entry.js +0 -2
  912. package/dist/atomic/p-a01b984b.js +0 -2
  913. package/dist/atomic/p-a01b984b.js.map +0 -1
  914. package/dist/atomic/p-a11328ae.entry.js +0 -2
  915. package/dist/atomic/p-a3f1ef2e.entry.js +0 -2
  916. package/dist/atomic/p-ad5441d1.entry.js +0 -2
  917. package/dist/atomic/p-ad5441d1.entry.js.map +0 -1
  918. package/dist/atomic/p-ad585045.entry.js.map +0 -1
  919. package/dist/atomic/p-adaed7f9.entry.js +0 -2
  920. package/dist/atomic/p-adaed7f9.entry.js.map +0 -1
  921. package/dist/atomic/p-b1a7a7a1.entry.js +0 -2
  922. package/dist/atomic/p-b319966b.entry.js +0 -2
  923. package/dist/atomic/p-b3cd9dda.js +0 -2
  924. package/dist/atomic/p-b3cd9dda.js.map +0 -1
  925. package/dist/atomic/p-b8f98865.entry.js +0 -2
  926. package/dist/atomic/p-c3c35e93.entry.js +0 -2
  927. package/dist/atomic/p-c3c35e93.entry.js.map +0 -1
  928. package/dist/atomic/p-c63ff491.entry.js +0 -2
  929. package/dist/atomic/p-c9913bee.entry.js +0 -2
  930. package/dist/atomic/p-c9913bee.entry.js.map +0 -1
  931. package/dist/atomic/p-ccbb3993.entry.js +0 -2
  932. package/dist/atomic/p-ce080a18.entry.js +0 -2
  933. package/dist/atomic/p-dc28e9c2.entry.js +0 -2
  934. package/dist/atomic/p-dc28e9c2.entry.js.map +0 -1
  935. package/dist/atomic/p-dfdb160b.entry.js +0 -2
  936. package/dist/atomic/p-dfdb160b.entry.js.map +0 -1
  937. package/dist/atomic/p-eeac4b29.entry.js +0 -2
  938. package/dist/atomic/p-f04c9eff.js +0 -2
  939. package/dist/atomic/p-f04c9eff.js.map +0 -1
  940. package/dist/atomic/p-f26872e1.entry.js +0 -2
  941. package/dist/atomic/p-f26872e1.entry.js.map +0 -1
  942. package/dist/atomic/p-f2fcc93d.entry.js +0 -2
  943. package/dist/atomic/p-f2fcc93d.entry.js.map +0 -1
  944. package/dist/atomic/p-f31ee5c2.entry.js +0 -2
  945. package/dist/atomic/p-f66d672c.entry.js.map +0 -1
  946. package/dist/atomic/p-f9aee5d1.entry.js +0 -2
  947. package/dist/atomic/p-fa6ae44b.entry.js +0 -2
  948. package/dist/cjs/atomic-numeric-range.cjs.entry.js +0 -24
  949. package/dist/cjs/atomic-numeric-range.cjs.entry.js.map +0 -1
  950. package/dist/cjs/atomic-query-error.cjs.entry.js +0 -64
  951. package/dist/cjs/atomic-query-error.cjs.entry.js.map +0 -1
  952. package/dist/cjs/atomic-result-number.cjs.entry.js +0 -87
  953. package/dist/cjs/atomic-result-number.cjs.entry.js.map +0 -1
  954. package/dist/cjs/date-utils-6d7eb0cc.js +0 -67
  955. package/dist/cjs/date-utils-6d7eb0cc.js.map +0 -1
  956. package/dist/cjs/dayjs.min-26d0825d.js +0 -15
  957. package/dist/cjs/dayjs.min-26d0825d.js.map +0 -1
  958. package/dist/cjs/generated-answer-common-c5248dd8.js.map +0 -1
  959. package/dist/cjs/initialization-utils-a7e710aa.js.map +0 -1
  960. package/dist/cjs/show-hide-button-6af56449.js.map +0 -1
  961. package/dist/cjs/smart-snippet-common-b1a21770.js.map +0 -1
  962. package/dist/cjs/smart-snippet-suggestions-common-4c88bab9.js.map +0 -1
  963. package/dist/esm/atomic-numeric-range.entry.js +0 -20
  964. package/dist/esm/atomic-numeric-range.entry.js.map +0 -1
  965. package/dist/esm/atomic-query-error.entry.js +0 -60
  966. package/dist/esm/atomic-query-error.entry.js.map +0 -1
  967. package/dist/esm/atomic-result-number.entry.js +0 -83
  968. package/dist/esm/atomic-result-number.entry.js.map +0 -1
  969. package/dist/esm/date-utils-00ce25c3.js +0 -64
  970. package/dist/esm/date-utils-00ce25c3.js.map +0 -1
  971. package/dist/esm/dayjs.min-fa778883.js +0 -13
  972. package/dist/esm/dayjs.min-fa778883.js.map +0 -1
  973. package/dist/esm/generated-answer-common-ea4c7577.js.map +0 -1
  974. package/dist/esm/initialization-utils-1ac142ee.js.map +0 -1
  975. package/dist/esm/show-hide-button-0e446376.js.map +0 -1
  976. package/dist/esm/smart-snippet-common-fa8817ae.js.map +0 -1
  977. package/dist/esm/smart-snippet-suggestions-common-e6dc7014.js.map +0 -1
  978. package/dist/types/components/search/result-template-components/atomic-result-number/atomic-result-number.d.ts +0 -27
  979. /package/dist/atomic/{p-d6a45f3a.entry.js.map → p-17c46f6c.entry.js.map} +0 -0
  980. /package/dist/atomic/{p-d2f17439.js.map → p-385d4e0d.js.map} +0 -0
  981. /package/dist/atomic/{p-26ca8796.entry.js.map → p-572811d4.entry.js.map} +0 -0
  982. /package/dist/atomic/{p-e670ca8e.js.map → p-920113d1.js.map} +0 -0
  983. /package/dist/atomic/{p-1666aabc.entry.js.map → p-a7064c41.entry.js.map} +0 -0
  984. /package/dist/atomic/{p-50d56305.entry.js.map → p-f07098d4.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["identifierKeywordsSection","QuickviewSidebar","props","words","minimized","numberOfWords","Object","values","length","minimizeButton","h","MinimizeButton","wordsLength","class","HighlightKeywordsCheckbox","Keywords","i18n","onMinimize","highlightKeywords","IconButton","partPrefix","icon","MinimizeIcon","style","title","t","ariaLabel","onClick","badge","undefined","ariaExpanded","toString","ariaControls","onHighlightKeywords","Fragment","StencilCheckbox","text","id","checked","highlightNone","onToggle","htmlFor","map","keyword","wordIsEnabled","keywords","enabled","key","backgroundColor","color","Intl","NumberFormat","language","notation","format","occurrences","FieldsetGroup","label","ArrowDown","disabled","navigateForward","ArrowUp","navigateBackward","tabIndex","ariaPressed","Remove","Add","indexIdentifier","documentIdentifierInIframe","writeDocument","documentWriter","content","open","write","close","scrollingElement","scrollTop","currentResultAlreadyWrittenToDocument","uniqueIdentifier","currentDocIdentifier","getElementById","textContent","ensureSameResultIsNotOverwritten","docIdentifier","createElement","display","setAttribute","body","appendChild","warnAboutLimitedUsageQuickview","logger","warn","QuickviewIframe","onSetIframeRef","sandbox","src","waitForIframeContentToBeWritten","Promise","resolve","setTimeout","ref","async","el","iframeRef","contentDocument","buildQuickviewPreviewBar","iframe","bar","buildPreviewBar","remove","docHeight","scrollHeight","forEach","word","elements","wordElement","previewUnit","buildPreviewUnit","previewBarId","innerHTML","position","top","right","width","height","elementPosition","getBoundingClientRect","border","previewBorderColor","rgbToHsv","r","g","b","max","Math","min","v","d","s","hsvToRgb","i","floor","f","p","q","round","HIGHLIGHT_PREFIX","QuickviewWordHighlight","constructor","stemmingInfoFromIndex","keywordElementInIframe","this","currentNavigationPosition","parsed","parseKeywordIdentifier","getText","keywordIdentifier","focusedColor","computeInvertedColor","computeSaturatedColor","addElement","push","highlightNavigation","putElementIntoView","isTaggedWord","element","nodeName","toLowerCase","currentElement","otherElements","filter","scrollIntoView","innerTextOfHTMLElement","getHighlightedInnerText","resolveOriginalTerm","trim","highlight","found","keys","find","originalTerm","originalTermMatch","stemmingExpansions","stemmingExpansionMatch","stemmingExpansion","getTextOfHTMLElement","children","Array","from","parts","substring","match","keywordTermPart","parseInt","innerText","extractRgb","newSaturation","rSaturated","gSaturated","bSaturated","rgbExtracted","getWordsHighlights","wordsHighlights","querySelectorAll","wordHTMLElementToHighlight","wordHighlight","alreadyScannedKeyword","atomicQuickviewModalCss","AtomicQuickviewModalStyle0","AtomicQuickviewModal","minimizeSidebar","watchHighlightKeywords","handleHighlightsScripts","componentWillLoad","bindings","store","isMobile","reset","result","interactiveResult","renderHeader","headerContent","buildInteractiveResult","engine","options","LinkWithItemAnalytics","href","clickUri","onSelect","select","onBeginDelayedSelect","beginDelayedSelect","onCancelPendingSelect","cancelPendingSelect","className","part","CloseIcon","onClose","slot","renderBody","minimize","quickviewSrc","quickviewUniqueIdentifier","termsToHighlight","renderFooter","Button","previousQuickview","emit","current","first","total","nextQuickview","modalCloseCallback","isOpen","highlightScriptId","state","resultPreview","contentURL","enableHighlights","removeDisableHighlightScript","enableHighlightsSpecificKeyword","identifier","disableHighlights","createDisableHighlightScript","disableHighlightsSpecificKeyword","doc","contentWindow","document","head","scriptId","createStyleElement","createTextNode","flatPhrasesToHighlight","phrasesToHighlight","search","response","entries","phrase","flatMap","keywordEntry","keywordStemming","requestId","uniqueId","render","fullscreen","exportparts","ATOMIC_MODAL_EXPORT_PARTS","__decorate","InitializeBindings"],"sources":["src/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.tsx","src/components/search/result-template-components/quickview-iframe/quickview-iframe.tsx","src/components/search/result-template-components/quickview-preview-bar/quickview-preview-bar.ts","src/utils/color-utils.ts","src/components/search/result-template-components/quickview-word-highlight/quickview-word-highlight.tsx","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.pcss?tag=atomic-quickview-modal&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.tsx"],"sourcesContent":["import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport Add from '../../../../images/add.svg';\nimport ArrowDown from '../../../../images/arrow-bottom-rounded.svg';\nimport ArrowUp from '../../../../images/arrow-top-rounded.svg';\nimport MinimizeIcon from '../../../../images/menu.svg';\nimport Remove from '../../../../images/remove.svg';\nimport {IconButton} from '../../../common/stencil-iconButton';\nimport {StencilCheckbox} from '../../../common/stencil-checkbox';\nimport {FieldsetGroup} from '../../../common/stencil-fieldset-group';\nimport type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nconst identifierKeywordsSection = 'coveo-quickview-sidebar-keywords';\n\ninterface QuickviewSidebarProps {\n words: Record<string, QuickviewWordHighlight>;\n i18n: i18n;\n highlightKeywords: HighlightKeywords;\n onHighlightKeywords: (highlight: HighlightKeywords) => void;\n minimized: boolean;\n onMinimize: (minimize: boolean) => void;\n}\n\nexport const QuickviewSidebar: FunctionalComponent<QuickviewSidebarProps> = (\n props\n) => {\n const {words, minimized} = props;\n const numberOfWords = Object.values(words).length;\n\n if (numberOfWords === 0) {\n return;\n }\n\n const minimizeButton = (\n <MinimizeButton {...props} wordsLength={numberOfWords} />\n );\n\n return (\n <div class=\"border-neutral h-full border-r p-4\">\n {minimized && minimizeButton}\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center\">\n <HighlightKeywordsCheckbox {...props} />\n </div>\n {!minimized && <div>{minimizeButton}</div>}\n </div>\n\n {!minimized && <Keywords {...props} words={words} />}\n </div>\n );\n};\n\nconst MinimizeButton: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'minimized' | 'onMinimize' | 'highlightKeywords'\n > & {wordsLength: number}\n> = ({i18n, minimized, onMinimize, highlightKeywords, wordsLength}) => (\n <IconButton\n partPrefix=\"sidebar-minimize\"\n icon={MinimizeIcon}\n style=\"text-transparent\"\n title={i18n.t('quickview-toggle-navigation')}\n ariaLabel={i18n.t('quickview-toggle-navigation')}\n onClick={() => onMinimize(!minimized)}\n badge={\n highlightKeywords && minimized ? <slot>{wordsLength}</slot> : undefined\n }\n class={`w-fit ${minimized ? '' : 'ml-auto'}`}\n ariaExpanded={(!minimized).toString()}\n ariaControls={identifierKeywordsSection}\n />\n);\n\nconst HighlightKeywordsCheckbox: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'highlightKeywords' | 'onHighlightKeywords' | 'minimized'\n >\n> = ({i18n, highlightKeywords, onHighlightKeywords, minimized}) => (\n <Fragment>\n <StencilCheckbox\n text={i18n.t('keywords-highlight')}\n class=\"mr-2\"\n id=\"atomic-quickview-sidebar-highlight-keywords\"\n checked={!highlightKeywords.highlightNone}\n onToggle={(checked) =>\n onHighlightKeywords({\n ...highlightKeywords,\n highlightNone: !checked,\n })\n }\n ></StencilCheckbox>\n {!minimized && (\n <label\n class=\"cursor-pointer font-bold whitespace-nowrap\"\n htmlFor=\"atomic-quickview-sidebar-highlight-keywords\"\n >\n {i18n.t('keywords-highlight')}\n </label>\n )}\n </Fragment>\n);\n\nconst Keywords: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'onHighlightKeywords' | 'highlightKeywords'\n > & {\n words: Record<string, QuickviewWordHighlight>;\n }\n> = ({words, i18n, highlightKeywords, onHighlightKeywords}) => {\n return (\n <div id={identifierKeywordsSection}>\n {Object.values(words).map((keyword) => {\n const wordIsEnabled =\n !highlightKeywords.highlightNone &&\n (highlightKeywords.keywords[keyword.text] === undefined ||\n highlightKeywords.keywords[keyword.text].enabled === true);\n\n return (\n <div\n key={keyword.text}\n class=\"my-4 flex w-100 items-center justify-between gap-x-2\"\n >\n <div\n class={`bg-background border-neutral flex grow items-center overflow-x-auto rounded-lg border ${\n !wordIsEnabled ? 'pointer-events-none opacity-50' : ''\n }`}\n >\n <div\n class=\"flex grow items-center border-r p-4\"\n aria-hidden=\"true\"\n >\n <div\n class=\"mr-2 h-5 w-5 flex-none\"\n style={{backgroundColor: keyword.color}}\n ></div>\n <div class=\"mr-2 grow whitespace-nowrap\">{keyword.text}</div>\n <div class=\"flex-none\">\n (\n {new Intl.NumberFormat(i18n.language, {\n notation: 'compact',\n }).format(keyword.occurrences)}\n )\n </div>\n </div>\n <FieldsetGroup\n label={i18n.t('quickview-navigate-keywords', {\n occurrences: keyword.occurrences,\n keyword: keyword.text,\n })}\n >\n <div class=\"flex px-2\">\n <IconButton\n partPrefix=\"sidebar-next\"\n icon={ArrowDown}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('next')}\n title={i18n.t('next')}\n onClick={() => keyword.navigateForward()}\n />\n <IconButton\n partPrefix=\"sidebar-previous\"\n icon={ArrowUp}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('previous')}\n title={i18n.t('previous')}\n onClick={() => keyword.navigateBackward()}\n />\n </div>\n </FieldsetGroup>\n </div>\n <IconButton\n partPrefix=\"sidebar-remove-word\"\n class={`${\n highlightKeywords.highlightNone\n ? 'pointer-events-none opacity-50'\n : ''\n }`}\n tabIndex={highlightKeywords.highlightNone ? '-1' : '0'}\n ariaPressed={(!wordIsEnabled).toString()}\n style=\"text-transparent\"\n icon={wordIsEnabled ? Remove : Add}\n ariaLabel={i18n.t('quickview-remove-word')}\n onClick={() => {\n onHighlightKeywords({\n ...highlightKeywords,\n keywords: {\n ...highlightKeywords.keywords,\n [keyword.text]: {\n enabled: !wordIsEnabled,\n indexIdentifier: keyword.indexIdentifier,\n },\n },\n });\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n","import {SearchEngine} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\n\nconst documentIdentifierInIframe = 'CoveoDocIdentifier';\n\nconst writeDocument = (documentWriter: Document, content: string) => {\n documentWriter.open();\n documentWriter.write(content);\n documentWriter.close();\n if (documentWriter.scrollingElement) {\n documentWriter.scrollingElement.scrollTop = 0;\n }\n};\n\nconst currentResultAlreadyWrittenToDocument = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const currentDocIdentifier = documentWriter.getElementById(\n documentIdentifierInIframe\n );\n\n return (\n currentDocIdentifier &&\n currentDocIdentifier.textContent === uniqueIdentifier\n );\n};\n\nconst ensureSameResultIsNotOverwritten = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const docIdentifier = documentWriter.createElement('div');\n docIdentifier.style.display = 'none';\n docIdentifier.setAttribute('aria-hidden', 'true');\n docIdentifier.id = documentIdentifierInIframe;\n docIdentifier.textContent = uniqueIdentifier;\n documentWriter.body.appendChild(docIdentifier);\n};\n\nconst warnAboutLimitedUsageQuickview = (logger?: SearchEngine['logger']) => {\n logger?.warn(\n 'Quickview initialized in restricted mode due to incompatible sandboxing environment. Keywords hit navigation will be disabled.'\n );\n};\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const QuickviewIframe: FunctionalComponent<{\n title: string;\n content?: string;\n onSetIframeRef: (ref: HTMLIFrameElement) => void;\n uniqueIdentifier?: string;\n sandbox?: string;\n src?: string;\n logger?: SearchEngine['logger'];\n}> = ({title, onSetIframeRef, uniqueIdentifier, content, sandbox, src, logger}) => {\n // When a document is written with document.open/document.write/document.close\n // it is not synchronous and the content of the iframe is only available to be queried at the end of the current call stack.\n // This add a \"wait\" (setTimeout 0) before calling the `onSetIframeRef` from the parent modal quickview\n const waitForIframeContentToBeWritten = () => {\n return new Promise((resolve) => setTimeout(resolve));\n };\n\n return (\n <iframe\n title={title}\n src=\"about:blank\"\n class=\"h-full w-full\"\n sandbox={sandbox}\n ref={async (el) => {\n const iframeRef = el as HTMLIFrameElement;\n\n if (!uniqueIdentifier || !content) {\n return;\n }\n\n const documentWriter = iframeRef.contentDocument;\n if (!documentWriter) {\n if (src) {\n warnAboutLimitedUsageQuickview(logger);\n iframeRef.src = src;\n }\n\n return;\n }\n if (\n currentResultAlreadyWrittenToDocument(\n documentWriter,\n uniqueIdentifier\n )\n ) {\n return;\n }\n\n writeDocument(documentWriter, content);\n ensureSameResultIsNotOverwritten(documentWriter, uniqueIdentifier);\n\n await waitForIframeContentToBeWritten();\n onSetIframeRef(iframeRef);\n }}\n ></iframe>\n );\n};\n","import type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport type {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nexport const buildQuickviewPreviewBar = (\n words: Record<string, QuickviewWordHighlight>,\n highlightKeywords: HighlightKeywords,\n iframe?: HTMLIFrameElement\n) => {\n if (!iframe) {\n return;\n }\n\n const documentWriter = iframe.contentDocument;\n if (!documentWriter) {\n return;\n }\n\n const bar = buildPreviewBar(documentWriter);\n if (highlightKeywords.highlightNone) {\n bar.remove();\n return;\n }\n\n const docHeight = documentWriter.body.scrollHeight;\n Object.values(words).forEach((word) => {\n word.elements.forEach((wordElement) => {\n const previewUnit = buildPreviewUnit(\n documentWriter,\n word,\n wordElement,\n docHeight,\n highlightKeywords\n );\n\n bar.appendChild(previewUnit);\n });\n });\n\n documentWriter.body.appendChild(bar);\n};\n\nconst buildPreviewBar = (documentWriter: Document) => {\n const previewBarId = 'CoveoPreviewBar';\n const bar =\n documentWriter.getElementById(previewBarId) ||\n documentWriter.createElement('div');\n\n bar.id = previewBarId;\n bar.innerHTML = '';\n bar.style.position = 'fixed';\n bar.style.top = '0';\n bar.style.right = '0';\n bar.style.width = '15px';\n bar.style.height = '100%';\n bar.setAttribute('aria-hidden', 'true');\n return bar;\n};\n\nconst buildPreviewUnit = (\n documentWriter: Document,\n word: QuickviewWordHighlight,\n wordElement: HTMLElement,\n docHeight: number,\n highlightKeywords: HighlightKeywords\n) => {\n const previewUnit = documentWriter.createElement('div');\n if (highlightKeywords.keywords[word.text]?.enabled === false) {\n previewUnit.style.display = 'none';\n return previewUnit;\n }\n\n const elementPosition = wordElement.getBoundingClientRect().top;\n\n previewUnit.style.position = 'absolute';\n previewUnit.style.top = `${(elementPosition / docHeight) * 100}%`;\n previewUnit.style.width = '100%';\n previewUnit.style.height = '1px';\n previewUnit.style.border = `1px solid ${word.previewBorderColor}`;\n previewUnit.style.backgroundColor = word.color;\n return previewUnit;\n};\n","export const rgbToHsv = (r: number, g: number, b: number) => {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h: number;\n const v = max;\n\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n default:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {h, s, v};\n};\n\nexport const hsvToRgb = (h: number, s: number, v: number) => {\n let r: number, g: number, b: number;\n\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: Math.round(r),\n g: Math.round(g),\n b: Math.round(b),\n };\n};\n","import {TermsToHighlight} from '@coveo/headless';\nimport {hsvToRgb, rgbToHsv} from '../../../../utils/color-utils';\n\nexport const HIGHLIGHT_PREFIX = 'CoveoHighlight';\nexport class QuickviewWordHighlight {\n public text: string;\n public indexIdentifier: string;\n public occurrences = 0;\n public color: string;\n public focusedColor: string;\n public previewBorderColor: string;\n public elements: HTMLElement[] = [];\n\n private currentNavigationPosition = -1;\n\n constructor(\n private stemmingInfoFromIndex: TermsToHighlight,\n keywordElementInIframe: HTMLElement\n ) {\n const parsed = this.parseKeywordIdentifier(keywordElementInIframe);\n if (!parsed) {\n throw 'Invalid keyword identifier for quickview';\n }\n\n this.text = this.getText(keywordElementInIframe);\n this.indexIdentifier = `${parsed.keywordIdentifier}`;\n this.color = keywordElementInIframe.style.backgroundColor;\n this.focusedColor = this.computeInvertedColor();\n this.previewBorderColor = this.computeSaturatedColor();\n\n this.addElement(keywordElementInIframe);\n }\n\n public addElement(keywordElementInIframe: HTMLElement) {\n this.occurrences++;\n this.elements.push(keywordElementInIframe);\n }\n\n public navigateForward() {\n this.currentNavigationPosition++;\n if (this.currentNavigationPosition >= this.elements.length) {\n this.currentNavigationPosition = 0;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n public navigateBackward() {\n this.currentNavigationPosition--;\n if (this.currentNavigationPosition < 0) {\n this.currentNavigationPosition = this.elements.length - 1;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n private isTaggedWord(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'coveotaggedword';\n }\n\n private highlightNavigation() {\n const currentElement = this.elements[this.currentNavigationPosition];\n const otherElements = this.elements.filter((el) => el !== currentElement);\n currentElement.style.color = this.color;\n currentElement.style.backgroundColor = this.focusedColor;\n otherElements.forEach((element) => {\n element.style.color = '';\n element.style.backgroundColor = this.color;\n });\n }\n\n private putElementIntoView() {\n const element = this.elements[this.currentNavigationPosition];\n element.scrollIntoView();\n }\n\n private getText(element: HTMLElement) {\n const innerTextOfHTMLElement = this.getHighlightedInnerText(element);\n return this.resolveOriginalTerm(innerTextOfHTMLElement).trim();\n }\n\n private resolveOriginalTerm(highlight: string): string {\n // First try to find either an exact match between the highlight and the original non-stemmed keyword.\n // Otherwise try to find a match between the highlight and the stemming keyword expansions\n // If nothing is found (which should not normally happen...), simply return the highlight keyword as is.\n\n const found = Object.keys(this.stemmingInfoFromIndex).find(\n (originalTerm) => {\n const originalTermMatch =\n originalTerm.toLowerCase() === highlight.toLowerCase();\n if (originalTermMatch) {\n return true;\n }\n const stemmingExpansions = this.stemmingInfoFromIndex[originalTerm];\n if (!stemmingExpansions) {\n return false;\n }\n\n const stemmingExpansionMatch = stemmingExpansions.find(\n (stemmingExpansion) =>\n stemmingExpansion.toLowerCase() === highlight.toLowerCase()\n );\n return stemmingExpansionMatch;\n }\n );\n return found || highlight;\n }\n\n private getHighlightedInnerText(element: HTMLElement): string {\n if (!this.isTaggedWord(element)) {\n return this.getTextOfHTMLElement(element);\n }\n\n const children = Array.from(element.children) as HTMLElement[];\n if (children.length >= 1) {\n return this.getTextOfHTMLElement(children[0]);\n }\n\n return '';\n }\n\n private parseKeywordIdentifier(element: HTMLElement) {\n const parts = element.id\n .substring(HIGHLIGHT_PREFIX.length + 1)\n .match(/^([0-9]+)\\.([0-9]+)\\.([0-9]+)$/);\n\n if (!parts || parts.length <= 3) {\n return null;\n }\n\n return {\n keywordIdentifier: parts[1],\n keywordTermPart: parseInt(parts[3], 10),\n };\n }\n\n private getTextOfHTMLElement(el: HTMLElement) {\n return el.innerText || el.textContent || '';\n }\n\n private computeInvertedColor() {\n const {r, g, b} = this.extractRgb();\n return `rgb(${255 - r}, ${255 - g}, ${255 - b})`;\n }\n\n private computeSaturatedColor() {\n const {r, g, b} = this.extractRgb();\n const {h, s, v} = rgbToHsv(r, g, b);\n let newSaturation = s * 2;\n if (newSaturation > 1) {\n newSaturation = 1;\n }\n const {\n r: rSaturated,\n g: gSaturated,\n b: bSaturated,\n } = hsvToRgb(h, newSaturation, v);\n return `rgb(${rSaturated}, ${gSaturated}, ${bSaturated})`;\n }\n\n private extractRgb() {\n const rgbExtracted = this.color.match(/\\d+/g);\n if (!rgbExtracted) {\n return {r: 255, g: 255, b: 255};\n }\n\n return {\n r: parseInt(rgbExtracted[0], 10),\n g: parseInt(rgbExtracted[1], 10),\n b: parseInt(rgbExtracted[2], 10),\n };\n }\n}\n\nexport const getWordsHighlights = (\n stemmingInfoFromIndex: TermsToHighlight,\n iframe?: HTMLIFrameElement\n) => {\n const wordsHighlights: Record<string, QuickviewWordHighlight> = {};\n if (!iframe) {\n return wordsHighlights;\n }\n\n iframe.contentDocument?.body\n .querySelectorAll(`[id^=\"${HIGHLIGHT_PREFIX}\"]`)\n .forEach((el) => {\n const wordHTMLElementToHighlight = el as HTMLElement;\n\n const wordHighlight = new QuickviewWordHighlight(\n stemmingInfoFromIndex,\n wordHTMLElementToHighlight\n );\n\n if (!wordHighlight.text) {\n return;\n }\n\n const alreadyScannedKeyword =\n wordsHighlights[wordHighlight.indexIdentifier];\n\n if (alreadyScannedKeyword) {\n alreadyScannedKeyword.addElement(wordHTMLElementToHighlight);\n } else {\n wordsHighlights[wordHighlight.indexIdentifier] = wordHighlight;\n }\n });\n\n return wordsHighlights;\n};\n","@import '../../../../global/global.pcss';\n@reference '../../../../utils/tailwind-utilities/link-style.css';\n\n.atomic-quickview-modal {\n &::part(backdrop) {\n grid-template-columns: 1fr max(80vw, 30rem) 1fr;\n }\n &::part(body),\n &::part(header),\n &::part(footer) {\n @apply max-w-full;\n }\n\n &::part(footer) {\n @apply flex justify-center;\n }\n\n &::part(body-wrapper) {\n @apply h-full overflow-hidden p-0;\n }\n\n &::part(body) {\n @apply h-full;\n }\n\n &::part(backdrop) {\n grid-template-rows: 1fr 100% 3fr;\n }\n\n &::part(header-wrapper) {\n @apply bg-neutral-light;\n }\n\n a {\n @apply link-style;\n }\n}\n","import {\n buildInteractiveResult,\n Result,\n InteractiveResult,\n TermsToHighlight,\n} from '@coveo/headless';\nimport {\n Component,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n Method,\n VNode,\n Fragment,\n} from '@stencil/core';\nimport CloseIcon from '../../../../images/close.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ATOMIC_MODAL_EXPORT_PARTS} from '../../../common/atomic-modal/export-parts';\nimport {IconButton} from '../../../common/stencil-iconButton';\nimport {LinkWithItemAnalytics} from '../../../common/item-link/stencil-item-link';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {QuickviewSidebar} from '../atomic-quickview-sidebar/atomic-quickview-sidebar';\nimport {QuickviewIframe} from '../quickview-iframe/quickview-iframe';\nimport {buildQuickviewPreviewBar} from '../quickview-preview-bar/quickview-preview-bar';\nimport {\n getWordsHighlights,\n HIGHLIGHT_PREFIX,\n QuickviewWordHighlight,\n} from '../quickview-word-highlight/quickview-word-highlight';\n\nexport interface HighlightKeywords {\n highlightNone: boolean;\n keywords: {\n [text: string]: {\n indexIdentifier: string;\n enabled: boolean;\n };\n };\n}\n\n/**\n * The modal opened when clicking on a quickview button.\n * Do not use this component directly; use `atomic-quickview` instead.\n *\n * @part backdrop - The transparent backdrop hiding the content behind the modal.\n * @part container - The modal's outermost container with the outline and background.\n * @part header-wrapper - The wrapper around the header.\n * @part header - The header at the top of the modal.\n * @part header-ruler - The horizontal ruler underneath the header.\n * @part body-wrapper - The wrapper around the body.\n * @part body - The body of the modal, between the header and the footer.\n * @part footer-wrapper - The wrapper with a shadow or background color around the footer.\n * @part footer - The footer at the bottom of the modal.\n * @part quickview-modal-header-icon - The close icon of the modal.\n * @part quickview-modal-header-title - The title of the modal.\n */\n@Component({\n tag: 'atomic-quickview-modal',\n styleUrl: 'atomic-quickview-modal.pcss',\n shadow: true,\n})\nexport class AtomicQuickviewModal implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n\n @State() private highlightKeywords: HighlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n @Watch('highlightKeywords')\n watchHighlightKeywords() {\n this.handleHighlightsScripts();\n }\n\n @Event({eventName: 'atomic/quickview/next'}) nextQuickview?: EventEmitter;\n @Event({eventName: 'atomic/quickview/previous'})\n previousQuickview?: EventEmitter;\n\n @State() private minimizeSidebar = false;\n @State() private words: Record<string, QuickviewWordHighlight> = {};\n private iframeRef?: HTMLIFrameElement;\n\n @Prop({mutable: true, reflect: false}) content?: string;\n @Prop({mutable: true, reflect: false}) result?: Result;\n @Prop() current?: number;\n @Prop() total?: number;\n @Prop() sandbox?: string;\n @Prop() modalCloseCallback?: () => void;\n\n private interactiveResult?: InteractiveResult;\n\n public componentWillLoad(): void {\n this.minimizeSidebar = this.bindings.store.isMobile();\n }\n\n @Method()\n public async reset() {\n this.highlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n this.minimizeSidebar = false;\n this.iframeRef = undefined;\n this.content = undefined;\n this.result = undefined;\n this.interactiveResult = undefined;\n }\n\n private renderHeader() {\n let headerContent: VNode | null = null;\n if (this.result) {\n this.interactiveResult = buildInteractiveResult(this.bindings.engine, {\n options: {result: this.result},\n });\n headerContent = (\n <Fragment>\n <LinkWithItemAnalytics\n href={this.result?.clickUri}\n onSelect={() => this.interactiveResult?.select()}\n onBeginDelayedSelect={() =>\n this.interactiveResult?.beginDelayedSelect()\n }\n onCancelPendingSelect={() =>\n this.interactiveResult?.cancelPendingSelect()\n }\n className=\"truncate\"\n part=\"quickview-modal-header-title\"\n >\n {this.result.title}\n </LinkWithItemAnalytics>\n <IconButton\n partPrefix=\"quickview-modal-header\"\n icon={CloseIcon}\n onClick={() => this.onClose()}\n ariaLabel={this.bindings.i18n.t('close')}\n style=\"text-transparent\"\n title={this.bindings.i18n.t('close')}\n />\n </Fragment>\n );\n }\n return (\n <div slot=\"header\" class=\"flex w-full items-center justify-between\">\n {headerContent}\n </div>\n );\n }\n\n private renderBody() {\n return (\n <div slot=\"body\" class=\"grid h-full grid-cols-[min-content_auto]\">\n <div\n class=\"h-full overflow-y-auto\"\n style={{backgroundColor: 'var(--atomic-neutral-light)'}}\n >\n <QuickviewSidebar\n words={this.words}\n i18n={this.bindings.i18n}\n highlightKeywords={this.highlightKeywords}\n onHighlightKeywords={(highlight) =>\n (this.highlightKeywords = highlight)\n }\n minimized={this.minimizeSidebar}\n onMinimize={(minimize) => (this.minimizeSidebar = minimize)}\n />\n </div>\n <div class=\"relative overflow-auto\">\n <QuickviewIframe\n title={this.result?.title ?? this.bindings.i18n.t('preview-modal-title')} \n logger={this.logger}\n src={this.quickviewSrc}\n sandbox={this.sandbox}\n uniqueIdentifier={this.quickviewUniqueIdentifier}\n content={this.content}\n onSetIframeRef={async (ref) => {\n this.iframeRef = ref;\n this.words = getWordsHighlights(\n this.termsToHighlight,\n this.iframeRef\n );\n this.handleHighlightsScripts();\n }}\n />\n {buildQuickviewPreviewBar(\n this.words,\n this.highlightKeywords,\n this.iframeRef\n )}\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n return (\n <div slot=\"footer\" class=\"flex items-center gap-2\">\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.previousQuickview?.emit()}\n disabled={this.current === 1}\n text={this.bindings.i18n.t('quickview-previous')}\n ></Button>\n <p class=\"text-center\">\n {this.bindings.i18n.t('showing-results-of', {\n first: this.current,\n total: this.total,\n })}\n </p>\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.nextQuickview?.emit()}\n disabled={this.current === this.total}\n text={this.bindings.i18n.t('quickview-next')}\n ></Button>\n </div>\n );\n }\n\n private onClose() {\n this.content = undefined;\n this.result = undefined;\n this.modalCloseCallback && this.modalCloseCallback();\n }\n\n private get isOpen() {\n return !!this.content && !!this.result;\n }\n\n private get highlightScriptId() {\n return 'CoveoDisableHighlightStyle';\n }\n\n private get logger() {\n return this.bindings.engine.logger;\n }\n\n private get quickviewSrc() {\n return this.bindings.engine.state.resultPreview?.contentURL;\n }\n\n private enableHighlights() {\n this.removeDisableHighlightScript();\n }\n\n private enableHighlightsSpecificKeyword(identifier: string) {\n this.removeDisableHighlightScript(identifier);\n }\n\n private disableHighlights() {\n this.createDisableHighlightScript();\n }\n\n private disableHighlightsSpecificKeyword(identifier: string) {\n this.createDisableHighlightScript(identifier);\n }\n\n private removeDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n doc\n .getElementById(\n `${this.highlightScriptId}${identifier ? `:${identifier}` : ''}`\n )\n ?.remove();\n }\n\n private createDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n\n const head = doc.head;\n const scriptId = `${this.highlightScriptId}${\n identifier ? `:${identifier}` : ''\n }`;\n const style =\n doc.getElementById(scriptId) || this.bindings.createStyleElement();\n style.setAttribute('id', scriptId);\n head.appendChild(style);\n style.appendChild(\n doc.createTextNode(`[id^=\"${HIGHLIGHT_PREFIX}${\n identifier ? `:${identifier}` : ''\n }\"] {\n background-color: inherit !important;\n color: inherit !important;\n }`)\n );\n }\n\n private get termsToHighlight() {\n const flatPhrasesToHighlight: TermsToHighlight = {};\n\n const phrasesToHighlight =\n this.bindings.engine.state.search.response.phrasesToHighlight;\n\n Object.entries(phrasesToHighlight).forEach(([phrase, keywords]) => {\n flatPhrasesToHighlight[phrase] = Object.entries(keywords).flatMap(\n ([keywordEntry, keywordStemming]) => {\n return [keywordEntry, ...keywordStemming];\n }\n );\n });\n\n return {\n ...this.bindings.engine.state.search.response.termsToHighlight,\n ...flatPhrasesToHighlight,\n };\n }\n\n private get requestId() {\n return this.bindings.engine.state.search.requestId;\n }\n\n private get quickviewUniqueIdentifier() {\n return this.result?.uniqueId + this.requestId;\n }\n\n private handleHighlightsScripts() {\n if (!this.highlightKeywords.highlightNone) {\n this.enableHighlights();\n } else {\n this.disableHighlights();\n }\n Object.values(this.highlightKeywords.keywords).forEach((word) => {\n if (word.enabled) {\n this.enableHighlightsSpecificKeyword(word.indexIdentifier);\n } else {\n this.disableHighlightsSpecificKeyword(word.indexIdentifier);\n }\n });\n }\n\n public render() {\n return (\n <atomic-modal\n fullscreen={this.bindings.store.isMobile()}\n class={'atomic-quickview-modal'}\n isOpen={this.isOpen}\n close={() => this.onClose()}\n exportparts={ATOMIC_MODAL_EXPORT_PARTS}\n >\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </atomic-modal>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["identifierKeywordsSection","QuickviewSidebar","props","words","minimized","numberOfWords","Object","values","length","minimizeButton","h","MinimizeButton","wordsLength","class","HighlightKeywordsCheckbox","Keywords","i18n","onMinimize","highlightKeywords","IconButton","partPrefix","icon","MinimizeIcon","style","title","t","ariaLabel","onClick","badge","undefined","ariaExpanded","toString","ariaControls","onHighlightKeywords","Fragment","StencilCheckbox","text","id","checked","highlightNone","onToggle","htmlFor","map","keyword","wordIsEnabled","keywords","enabled","key","backgroundColor","color","Intl","NumberFormat","language","notation","format","occurrences","FieldsetGroup","label","ArrowDown","disabled","navigateForward","ArrowUp","navigateBackward","tabIndex","ariaPressed","Remove","Add","indexIdentifier","documentIdentifierInIframe","writeDocument","documentWriter","content","open","write","close","scrollingElement","scrollTop","currentResultAlreadyWrittenToDocument","uniqueIdentifier","currentDocIdentifier","getElementById","textContent","ensureSameResultIsNotOverwritten","docIdentifier","createElement","display","setAttribute","body","appendChild","warnAboutLimitedUsageQuickview","logger","warn","QuickviewIframe","onSetIframeRef","sandbox","src","waitForIframeContentToBeWritten","Promise","resolve","setTimeout","ref","async","el","iframeRef","contentDocument","buildQuickviewPreviewBar","iframe","bar","buildPreviewBar","remove","docHeight","scrollHeight","forEach","word","elements","wordElement","previewUnit","buildPreviewUnit","previewBarId","innerHTML","position","top","right","width","height","elementPosition","getBoundingClientRect","border","previewBorderColor","rgbToHsv","r","g","b","max","Math","min","v","d","s","hsvToRgb","i","floor","f","p","q","round","HIGHLIGHT_PREFIX","QuickviewWordHighlight","constructor","stemmingInfoFromIndex","keywordElementInIframe","this","currentNavigationPosition","parsed","parseKeywordIdentifier","getText","keywordIdentifier","focusedColor","computeInvertedColor","computeSaturatedColor","addElement","push","highlightNavigation","putElementIntoView","isTaggedWord","element","nodeName","toLowerCase","currentElement","otherElements","filter","scrollIntoView","innerTextOfHTMLElement","getHighlightedInnerText","resolveOriginalTerm","trim","highlight","found","keys","find","originalTerm","originalTermMatch","stemmingExpansions","stemmingExpansionMatch","stemmingExpansion","getTextOfHTMLElement","children","Array","from","parts","substring","match","keywordTermPart","parseInt","innerText","extractRgb","newSaturation","rSaturated","gSaturated","bSaturated","rgbExtracted","getWordsHighlights","wordsHighlights","querySelectorAll","wordHTMLElementToHighlight","wordHighlight","alreadyScannedKeyword","atomicQuickviewModalCss","AtomicQuickviewModalStyle0","AtomicQuickviewModal","minimizeSidebar","watchHighlightKeywords","handleHighlightsScripts","componentWillLoad","bindings","store","isMobile","reset","result","interactiveResult","renderHeader","headerContent","buildInteractiveResult","engine","options","LinkWithItemAnalytics","href","clickUri","onSelect","select","onBeginDelayedSelect","beginDelayedSelect","onCancelPendingSelect","cancelPendingSelect","className","part","CloseIcon","onClose","slot","renderBody","minimize","quickviewSrc","quickviewUniqueIdentifier","termsToHighlight","renderFooter","Button","previousQuickview","emit","current","first","total","nextQuickview","modalCloseCallback","isOpen","highlightScriptId","state","resultPreview","contentURL","enableHighlights","removeDisableHighlightScript","enableHighlightsSpecificKeyword","identifier","disableHighlights","createDisableHighlightScript","disableHighlightsSpecificKeyword","doc","contentWindow","document","head","scriptId","createStyleElement","createTextNode","flatPhrasesToHighlight","phrasesToHighlight","search","response","entries","phrase","flatMap","keywordEntry","keywordStemming","requestId","uniqueId","render","fullscreen","exportparts","ATOMIC_MODAL_EXPORT_PARTS","__decorate","InitializeBindings"],"sources":["src/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.tsx","src/components/search/result-template-components/quickview-iframe/quickview-iframe.tsx","src/components/search/result-template-components/quickview-preview-bar/quickview-preview-bar.ts","src/utils/color-utils.ts","src/components/search/result-template-components/quickview-word-highlight/quickview-word-highlight.tsx","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.pcss?tag=atomic-quickview-modal&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.tsx"],"sourcesContent":["import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport Add from '../../../../images/add.svg';\nimport ArrowDown from '../../../../images/arrow-bottom-rounded.svg';\nimport ArrowUp from '../../../../images/arrow-top-rounded.svg';\nimport MinimizeIcon from '../../../../images/menu.svg';\nimport Remove from '../../../../images/remove.svg';\nimport {IconButton} from '../../../common/stencil-iconButton';\nimport {StencilCheckbox} from '../../../common/stencil-checkbox';\nimport {FieldsetGroup} from '../../../common/stencil-fieldset-group';\nimport type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nconst identifierKeywordsSection = 'coveo-quickview-sidebar-keywords';\n\ninterface QuickviewSidebarProps {\n words: Record<string, QuickviewWordHighlight>;\n i18n: i18n;\n highlightKeywords: HighlightKeywords;\n onHighlightKeywords: (highlight: HighlightKeywords) => void;\n minimized: boolean;\n onMinimize: (minimize: boolean) => void;\n}\n\nexport const QuickviewSidebar: FunctionalComponent<QuickviewSidebarProps> = (\n props\n) => {\n const {words, minimized} = props;\n const numberOfWords = Object.values(words).length;\n\n if (numberOfWords === 0) {\n return;\n }\n\n const minimizeButton = (\n <MinimizeButton {...props} wordsLength={numberOfWords} />\n );\n\n return (\n <div class=\"border-neutral h-full border-r p-4\">\n {minimized && minimizeButton}\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center\">\n <HighlightKeywordsCheckbox {...props} />\n </div>\n {!minimized && <div>{minimizeButton}</div>}\n </div>\n\n {!minimized && <Keywords {...props} words={words} />}\n </div>\n );\n};\n\nconst MinimizeButton: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'minimized' | 'onMinimize' | 'highlightKeywords'\n > & {wordsLength: number}\n> = ({i18n, minimized, onMinimize, highlightKeywords, wordsLength}) => (\n <IconButton\n partPrefix=\"sidebar-minimize\"\n icon={MinimizeIcon}\n style=\"text-transparent\"\n title={i18n.t('quickview-toggle-navigation')}\n ariaLabel={i18n.t('quickview-toggle-navigation')}\n onClick={() => onMinimize(!minimized)}\n badge={\n highlightKeywords && minimized ? <slot>{wordsLength}</slot> : undefined\n }\n class={`w-fit ${minimized ? '' : 'ml-auto'}`}\n ariaExpanded={(!minimized).toString()}\n ariaControls={identifierKeywordsSection}\n />\n);\n\nconst HighlightKeywordsCheckbox: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'highlightKeywords' | 'onHighlightKeywords' | 'minimized'\n >\n> = ({i18n, highlightKeywords, onHighlightKeywords, minimized}) => (\n <Fragment>\n <StencilCheckbox\n text={i18n.t('keywords-highlight')}\n class=\"mr-2\"\n id=\"atomic-quickview-sidebar-highlight-keywords\"\n checked={!highlightKeywords.highlightNone}\n onToggle={(checked) =>\n onHighlightKeywords({\n ...highlightKeywords,\n highlightNone: !checked,\n })\n }\n ></StencilCheckbox>\n {!minimized && (\n <label\n class=\"cursor-pointer font-bold whitespace-nowrap\"\n htmlFor=\"atomic-quickview-sidebar-highlight-keywords\"\n >\n {i18n.t('keywords-highlight')}\n </label>\n )}\n </Fragment>\n);\n\nconst Keywords: FunctionalComponent<\n Pick<\n QuickviewSidebarProps,\n 'i18n' | 'onHighlightKeywords' | 'highlightKeywords'\n > & {\n words: Record<string, QuickviewWordHighlight>;\n }\n> = ({words, i18n, highlightKeywords, onHighlightKeywords}) => {\n return (\n <div id={identifierKeywordsSection}>\n {Object.values(words).map((keyword) => {\n const wordIsEnabled =\n !highlightKeywords.highlightNone &&\n (highlightKeywords.keywords[keyword.text] === undefined ||\n highlightKeywords.keywords[keyword.text].enabled === true);\n\n return (\n <div\n key={keyword.text}\n class=\"my-4 flex w-100 items-center justify-between gap-x-2\"\n >\n <div\n class={`bg-background border-neutral flex grow items-center overflow-x-auto rounded-lg border ${\n !wordIsEnabled ? 'pointer-events-none opacity-50' : ''\n }`}\n >\n <div\n class=\"flex grow items-center border-r p-4\"\n aria-hidden=\"true\"\n >\n <div\n class=\"mr-2 h-5 w-5 flex-none\"\n style={{backgroundColor: keyword.color}}\n ></div>\n <div class=\"mr-2 grow whitespace-nowrap\">{keyword.text}</div>\n <div class=\"flex-none\">\n (\n {new Intl.NumberFormat(i18n.language, {\n notation: 'compact',\n }).format(keyword.occurrences)}\n )\n </div>\n </div>\n <FieldsetGroup\n label={i18n.t('quickview-navigate-keywords', {\n occurrences: keyword.occurrences,\n keyword: keyword.text,\n })}\n >\n <div class=\"flex px-2\">\n <IconButton\n partPrefix=\"sidebar-next\"\n icon={ArrowDown}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('next')}\n title={i18n.t('next')}\n onClick={() => keyword.navigateForward()}\n />\n <IconButton\n partPrefix=\"sidebar-previous\"\n icon={ArrowUp}\n disabled={!wordIsEnabled}\n style=\"text-transparent\"\n class=\"border-0\"\n ariaLabel={i18n.t('previous')}\n title={i18n.t('previous')}\n onClick={() => keyword.navigateBackward()}\n />\n </div>\n </FieldsetGroup>\n </div>\n <IconButton\n partPrefix=\"sidebar-remove-word\"\n class={`${\n highlightKeywords.highlightNone\n ? 'pointer-events-none opacity-50'\n : ''\n }`}\n tabIndex={highlightKeywords.highlightNone ? '-1' : '0'}\n ariaPressed={(!wordIsEnabled).toString()}\n style=\"text-transparent\"\n icon={wordIsEnabled ? Remove : Add}\n ariaLabel={i18n.t('quickview-remove-word')}\n onClick={() => {\n onHighlightKeywords({\n ...highlightKeywords,\n keywords: {\n ...highlightKeywords.keywords,\n [keyword.text]: {\n enabled: !wordIsEnabled,\n indexIdentifier: keyword.indexIdentifier,\n },\n },\n });\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n","import {SearchEngine} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\n\nconst documentIdentifierInIframe = 'CoveoDocIdentifier';\n\nconst writeDocument = (documentWriter: Document, content: string) => {\n documentWriter.open();\n documentWriter.write(content);\n documentWriter.close();\n if (documentWriter.scrollingElement) {\n documentWriter.scrollingElement.scrollTop = 0;\n }\n};\n\nconst currentResultAlreadyWrittenToDocument = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const currentDocIdentifier = documentWriter.getElementById(\n documentIdentifierInIframe\n );\n\n return (\n currentDocIdentifier &&\n currentDocIdentifier.textContent === uniqueIdentifier\n );\n};\n\nconst ensureSameResultIsNotOverwritten = (\n documentWriter: Document,\n uniqueIdentifier: string\n) => {\n const docIdentifier = documentWriter.createElement('div');\n docIdentifier.style.display = 'none';\n docIdentifier.setAttribute('aria-hidden', 'true');\n docIdentifier.id = documentIdentifierInIframe;\n docIdentifier.textContent = uniqueIdentifier;\n documentWriter.body.appendChild(docIdentifier);\n};\n\nconst warnAboutLimitedUsageQuickview = (logger?: SearchEngine['logger']) => {\n logger?.warn(\n 'Quickview initialized in restricted mode due to incompatible sandboxing environment. Keywords hit navigation will be disabled.'\n );\n};\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const QuickviewIframe: FunctionalComponent<{\n title: string;\n content?: string;\n onSetIframeRef: (ref: HTMLIFrameElement) => void;\n uniqueIdentifier?: string;\n sandbox?: string;\n src?: string;\n logger?: SearchEngine['logger'];\n}> = ({title, onSetIframeRef, uniqueIdentifier, content, sandbox, src, logger}) => {\n // When a document is written with document.open/document.write/document.close\n // it is not synchronous and the content of the iframe is only available to be queried at the end of the current call stack.\n // This add a \"wait\" (setTimeout 0) before calling the `onSetIframeRef` from the parent modal quickview\n const waitForIframeContentToBeWritten = () => {\n return new Promise((resolve) => setTimeout(resolve));\n };\n\n return (\n <iframe\n title={title}\n src=\"about:blank\"\n class=\"h-full w-full\"\n sandbox={sandbox}\n ref={async (el) => {\n const iframeRef = el as HTMLIFrameElement;\n\n if (!uniqueIdentifier || !content) {\n return;\n }\n\n const documentWriter = iframeRef.contentDocument;\n if (!documentWriter) {\n if (src) {\n warnAboutLimitedUsageQuickview(logger);\n iframeRef.src = src;\n }\n\n return;\n }\n if (\n currentResultAlreadyWrittenToDocument(\n documentWriter,\n uniqueIdentifier\n )\n ) {\n return;\n }\n\n writeDocument(documentWriter, content);\n ensureSameResultIsNotOverwritten(documentWriter, uniqueIdentifier);\n\n await waitForIframeContentToBeWritten();\n onSetIframeRef(iframeRef);\n }}\n ></iframe>\n );\n};\n","import type {HighlightKeywords} from '../atomic-quickview-modal/atomic-quickview-modal';\nimport type {QuickviewWordHighlight} from '../quickview-word-highlight/quickview-word-highlight';\n\nexport const buildQuickviewPreviewBar = (\n words: Record<string, QuickviewWordHighlight>,\n highlightKeywords: HighlightKeywords,\n iframe?: HTMLIFrameElement\n) => {\n if (!iframe) {\n return;\n }\n\n const documentWriter = iframe.contentDocument;\n if (!documentWriter) {\n return;\n }\n\n const bar = buildPreviewBar(documentWriter);\n if (highlightKeywords.highlightNone) {\n bar.remove();\n return;\n }\n\n const docHeight = documentWriter.body.scrollHeight;\n Object.values(words).forEach((word) => {\n word.elements.forEach((wordElement) => {\n const previewUnit = buildPreviewUnit(\n documentWriter,\n word,\n wordElement,\n docHeight,\n highlightKeywords\n );\n\n bar.appendChild(previewUnit);\n });\n });\n\n documentWriter.body.appendChild(bar);\n};\n\nconst buildPreviewBar = (documentWriter: Document) => {\n const previewBarId = 'CoveoPreviewBar';\n const bar =\n documentWriter.getElementById(previewBarId) ||\n documentWriter.createElement('div');\n\n bar.id = previewBarId;\n bar.innerHTML = '';\n bar.style.position = 'fixed';\n bar.style.top = '0';\n bar.style.right = '0';\n bar.style.width = '15px';\n bar.style.height = '100%';\n bar.setAttribute('aria-hidden', 'true');\n return bar;\n};\n\nconst buildPreviewUnit = (\n documentWriter: Document,\n word: QuickviewWordHighlight,\n wordElement: HTMLElement,\n docHeight: number,\n highlightKeywords: HighlightKeywords\n) => {\n const previewUnit = documentWriter.createElement('div');\n if (highlightKeywords.keywords[word.text]?.enabled === false) {\n previewUnit.style.display = 'none';\n return previewUnit;\n }\n\n const elementPosition = wordElement.getBoundingClientRect().top;\n\n previewUnit.style.position = 'absolute';\n previewUnit.style.top = `${(elementPosition / docHeight) * 100}%`;\n previewUnit.style.width = '100%';\n previewUnit.style.height = '1px';\n previewUnit.style.border = `1px solid ${word.previewBorderColor}`;\n previewUnit.style.backgroundColor = word.color;\n return previewUnit;\n};\n","export const rgbToHsv = (r: number, g: number, b: number) => {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h: number;\n const v = max;\n\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n default:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {h, s, v};\n};\n\nexport const hsvToRgb = (h: number, s: number, v: number) => {\n let r: number, g: number, b: number;\n\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: Math.round(r),\n g: Math.round(g),\n b: Math.round(b),\n };\n};\n","import {TermsToHighlight} from '@coveo/headless';\nimport {hsvToRgb, rgbToHsv} from '../../../../utils/color-utils';\n\nexport const HIGHLIGHT_PREFIX = 'CoveoHighlight';\nexport class QuickviewWordHighlight {\n public text: string;\n public indexIdentifier: string;\n public occurrences = 0;\n public color: string;\n public focusedColor: string;\n public previewBorderColor: string;\n public elements: HTMLElement[] = [];\n\n private currentNavigationPosition = -1;\n\n constructor(\n private stemmingInfoFromIndex: TermsToHighlight,\n keywordElementInIframe: HTMLElement\n ) {\n const parsed = this.parseKeywordIdentifier(keywordElementInIframe);\n if (!parsed) {\n throw 'Invalid keyword identifier for quickview';\n }\n\n this.text = this.getText(keywordElementInIframe);\n this.indexIdentifier = `${parsed.keywordIdentifier}`;\n this.color = keywordElementInIframe.style.backgroundColor;\n this.focusedColor = this.computeInvertedColor();\n this.previewBorderColor = this.computeSaturatedColor();\n\n this.addElement(keywordElementInIframe);\n }\n\n public addElement(keywordElementInIframe: HTMLElement) {\n this.occurrences++;\n this.elements.push(keywordElementInIframe);\n }\n\n public navigateForward() {\n this.currentNavigationPosition++;\n if (this.currentNavigationPosition >= this.elements.length) {\n this.currentNavigationPosition = 0;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n public navigateBackward() {\n this.currentNavigationPosition--;\n if (this.currentNavigationPosition < 0) {\n this.currentNavigationPosition = this.elements.length - 1;\n }\n this.highlightNavigation();\n this.putElementIntoView();\n return this.elements[this.currentNavigationPosition];\n }\n\n private isTaggedWord(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'coveotaggedword';\n }\n\n private highlightNavigation() {\n const currentElement = this.elements[this.currentNavigationPosition];\n const otherElements = this.elements.filter((el) => el !== currentElement);\n currentElement.style.color = this.color;\n currentElement.style.backgroundColor = this.focusedColor;\n otherElements.forEach((element) => {\n element.style.color = '';\n element.style.backgroundColor = this.color;\n });\n }\n\n private putElementIntoView() {\n const element = this.elements[this.currentNavigationPosition];\n element.scrollIntoView();\n }\n\n private getText(element: HTMLElement) {\n const innerTextOfHTMLElement = this.getHighlightedInnerText(element);\n return this.resolveOriginalTerm(innerTextOfHTMLElement).trim();\n }\n\n private resolveOriginalTerm(highlight: string): string {\n // First try to find either an exact match between the highlight and the original non-stemmed keyword.\n // Otherwise try to find a match between the highlight and the stemming keyword expansions\n // If nothing is found (which should not normally happen...), simply return the highlight keyword as is.\n\n const found = Object.keys(this.stemmingInfoFromIndex).find(\n (originalTerm) => {\n const originalTermMatch =\n originalTerm.toLowerCase() === highlight.toLowerCase();\n if (originalTermMatch) {\n return true;\n }\n const stemmingExpansions = this.stemmingInfoFromIndex[originalTerm];\n if (!stemmingExpansions) {\n return false;\n }\n\n const stemmingExpansionMatch = stemmingExpansions.find(\n (stemmingExpansion) =>\n stemmingExpansion.toLowerCase() === highlight.toLowerCase()\n );\n return stemmingExpansionMatch;\n }\n );\n return found || highlight;\n }\n\n private getHighlightedInnerText(element: HTMLElement): string {\n if (!this.isTaggedWord(element)) {\n return this.getTextOfHTMLElement(element);\n }\n\n const children = Array.from(element.children) as HTMLElement[];\n if (children.length >= 1) {\n return this.getTextOfHTMLElement(children[0]);\n }\n\n return '';\n }\n\n private parseKeywordIdentifier(element: HTMLElement) {\n const parts = element.id\n .substring(HIGHLIGHT_PREFIX.length + 1)\n .match(/^([0-9]+)\\.([0-9]+)\\.([0-9]+)$/);\n\n if (!parts || parts.length <= 3) {\n return null;\n }\n\n return {\n keywordIdentifier: parts[1],\n keywordTermPart: parseInt(parts[3], 10),\n };\n }\n\n private getTextOfHTMLElement(el: HTMLElement) {\n return el.innerText || el.textContent || '';\n }\n\n private computeInvertedColor() {\n const {r, g, b} = this.extractRgb();\n return `rgb(${255 - r}, ${255 - g}, ${255 - b})`;\n }\n\n private computeSaturatedColor() {\n const {r, g, b} = this.extractRgb();\n const {h, s, v} = rgbToHsv(r, g, b);\n let newSaturation = s * 2;\n if (newSaturation > 1) {\n newSaturation = 1;\n }\n const {\n r: rSaturated,\n g: gSaturated,\n b: bSaturated,\n } = hsvToRgb(h, newSaturation, v);\n return `rgb(${rSaturated}, ${gSaturated}, ${bSaturated})`;\n }\n\n private extractRgb() {\n const rgbExtracted = this.color.match(/\\d+/g);\n if (!rgbExtracted) {\n return {r: 255, g: 255, b: 255};\n }\n\n return {\n r: parseInt(rgbExtracted[0], 10),\n g: parseInt(rgbExtracted[1], 10),\n b: parseInt(rgbExtracted[2], 10),\n };\n }\n}\n\nexport const getWordsHighlights = (\n stemmingInfoFromIndex: TermsToHighlight,\n iframe?: HTMLIFrameElement\n) => {\n const wordsHighlights: Record<string, QuickviewWordHighlight> = {};\n if (!iframe) {\n return wordsHighlights;\n }\n\n iframe.contentDocument?.body\n .querySelectorAll(`[id^=\"${HIGHLIGHT_PREFIX}\"]`)\n .forEach((el) => {\n const wordHTMLElementToHighlight = el as HTMLElement;\n\n const wordHighlight = new QuickviewWordHighlight(\n stemmingInfoFromIndex,\n wordHTMLElementToHighlight\n );\n\n if (!wordHighlight.text) {\n return;\n }\n\n const alreadyScannedKeyword =\n wordsHighlights[wordHighlight.indexIdentifier];\n\n if (alreadyScannedKeyword) {\n alreadyScannedKeyword.addElement(wordHTMLElementToHighlight);\n } else {\n wordsHighlights[wordHighlight.indexIdentifier] = wordHighlight;\n }\n });\n\n return wordsHighlights;\n};\n","@import '../../../../global/global.pcss';\n@reference '../../../../utils/tailwind-utilities/link-style.css';\n\n.atomic-quickview-modal {\n &::part(backdrop) {\n grid-template-columns: 1fr max(80vw, 30rem) 1fr;\n }\n &::part(body),\n &::part(header),\n &::part(footer) {\n @apply max-w-full;\n }\n\n &::part(footer) {\n @apply flex justify-center;\n }\n\n &::part(body-wrapper) {\n @apply h-full overflow-hidden p-0;\n }\n\n &::part(body) {\n @apply h-full;\n }\n\n &::part(backdrop) {\n grid-template-rows: 1fr 100% 3fr;\n }\n\n &::part(header-wrapper) {\n @apply bg-neutral-light;\n }\n\n a {\n @apply link-style;\n }\n}\n","import {\n buildInteractiveResult,\n Result,\n InteractiveResult,\n TermsToHighlight,\n} from '@coveo/headless';\nimport {\n Component,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n Method,\n VNode,\n Fragment,\n} from '@stencil/core';\nimport CloseIcon from '../../../../images/close.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ATOMIC_MODAL_EXPORT_PARTS} from '../../../common/atomic-modal/export-parts';\nimport {IconButton} from '../../../common/stencil-iconButton';\nimport {LinkWithItemAnalytics} from '../../../common/item-link/stencil-item-link';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {QuickviewSidebar} from '../atomic-quickview-sidebar/atomic-quickview-sidebar';\nimport {QuickviewIframe} from '../quickview-iframe/quickview-iframe';\nimport {buildQuickviewPreviewBar} from '../quickview-preview-bar/quickview-preview-bar';\nimport {\n getWordsHighlights,\n HIGHLIGHT_PREFIX,\n QuickviewWordHighlight,\n} from '../quickview-word-highlight/quickview-word-highlight';\n\nexport interface HighlightKeywords {\n highlightNone: boolean;\n keywords: {\n [text: string]: {\n indexIdentifier: string;\n enabled: boolean;\n };\n };\n}\n\n/**\n * The modal opened when clicking a quickview button.\n * Do not use this component directly; use `atomic-quickview` instead.\n *\n * @part backdrop - The transparent backdrop hiding the content behind the modal.\n * @part container - The modal's outermost container with the outline and background.\n * @part header-wrapper - The wrapper around the header.\n * @part header - The header at the top of the modal.\n * @part header-ruler - The horizontal ruler underneath the header.\n * @part body-wrapper - The wrapper around the body.\n * @part body - The body of the modal, between the header and the footer.\n * @part footer-wrapper - The wrapper with a shadow or background color around the footer.\n * @part footer - The footer at the bottom of the modal.\n * @part quickview-modal-header-icon - The close icon of the modal.\n * @part quickview-modal-header-title - The title of the modal.\n */\n@Component({\n tag: 'atomic-quickview-modal',\n styleUrl: 'atomic-quickview-modal.pcss',\n shadow: true,\n})\nexport class AtomicQuickviewModal implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n\n @State() private highlightKeywords: HighlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n @Watch('highlightKeywords')\n watchHighlightKeywords() {\n this.handleHighlightsScripts();\n }\n\n @Event({eventName: 'atomic/quickview/next'}) nextQuickview?: EventEmitter;\n @Event({eventName: 'atomic/quickview/previous'})\n previousQuickview?: EventEmitter;\n\n @State() private minimizeSidebar = false;\n @State() private words: Record<string, QuickviewWordHighlight> = {};\n private iframeRef?: HTMLIFrameElement;\n\n @Prop({mutable: true, reflect: false}) content?: string;\n @Prop({mutable: true, reflect: false}) result?: Result;\n @Prop() current?: number;\n @Prop() total?: number;\n @Prop() sandbox?: string;\n @Prop() modalCloseCallback?: () => void;\n\n private interactiveResult?: InteractiveResult;\n\n public componentWillLoad(): void {\n this.minimizeSidebar = this.bindings.store.isMobile();\n }\n\n @Method()\n public async reset() {\n this.highlightKeywords = {\n highlightNone: false,\n keywords: {},\n };\n this.minimizeSidebar = false;\n this.iframeRef = undefined;\n this.content = undefined;\n this.result = undefined;\n this.interactiveResult = undefined;\n }\n\n private renderHeader() {\n let headerContent: VNode | null = null;\n if (this.result) {\n this.interactiveResult = buildInteractiveResult(this.bindings.engine, {\n options: {result: this.result},\n });\n headerContent = (\n <Fragment>\n <LinkWithItemAnalytics\n href={this.result?.clickUri}\n onSelect={() => this.interactiveResult?.select()}\n onBeginDelayedSelect={() =>\n this.interactiveResult?.beginDelayedSelect()\n }\n onCancelPendingSelect={() =>\n this.interactiveResult?.cancelPendingSelect()\n }\n className=\"truncate\"\n part=\"quickview-modal-header-title\"\n >\n {this.result.title}\n </LinkWithItemAnalytics>\n <IconButton\n partPrefix=\"quickview-modal-header\"\n icon={CloseIcon}\n onClick={() => this.onClose()}\n ariaLabel={this.bindings.i18n.t('close')}\n style=\"text-transparent\"\n title={this.bindings.i18n.t('close')}\n />\n </Fragment>\n );\n }\n return (\n <div slot=\"header\" class=\"flex w-full items-center justify-between\">\n {headerContent}\n </div>\n );\n }\n\n private renderBody() {\n return (\n <div slot=\"body\" class=\"grid h-full grid-cols-[min-content_auto]\">\n <div\n class=\"h-full overflow-y-auto\"\n style={{backgroundColor: 'var(--atomic-neutral-light)'}}\n >\n <QuickviewSidebar\n words={this.words}\n i18n={this.bindings.i18n}\n highlightKeywords={this.highlightKeywords}\n onHighlightKeywords={(highlight) =>\n (this.highlightKeywords = highlight)\n }\n minimized={this.minimizeSidebar}\n onMinimize={(minimize) => (this.minimizeSidebar = minimize)}\n />\n </div>\n <div class=\"relative overflow-auto\">\n <QuickviewIframe\n title={this.result?.title ?? this.bindings.i18n.t('preview-modal-title')} \n logger={this.logger}\n src={this.quickviewSrc}\n sandbox={this.sandbox}\n uniqueIdentifier={this.quickviewUniqueIdentifier}\n content={this.content}\n onSetIframeRef={async (ref) => {\n this.iframeRef = ref;\n this.words = getWordsHighlights(\n this.termsToHighlight,\n this.iframeRef\n );\n this.handleHighlightsScripts();\n }}\n />\n {buildQuickviewPreviewBar(\n this.words,\n this.highlightKeywords,\n this.iframeRef\n )}\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n return (\n <div slot=\"footer\" class=\"flex items-center gap-2\">\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.previousQuickview?.emit()}\n disabled={this.current === 1}\n text={this.bindings.i18n.t('quickview-previous')}\n ></Button>\n <p class=\"text-center\">\n {this.bindings.i18n.t('showing-results-of', {\n first: this.current,\n total: this.total,\n })}\n </p>\n <Button\n class=\"p-2\"\n style=\"square-neutral\"\n onClick={() => this.nextQuickview?.emit()}\n disabled={this.current === this.total}\n text={this.bindings.i18n.t('quickview-next')}\n ></Button>\n </div>\n );\n }\n\n private onClose() {\n this.content = undefined;\n this.result = undefined;\n this.modalCloseCallback && this.modalCloseCallback();\n }\n\n private get isOpen() {\n return !!this.content && !!this.result;\n }\n\n private get highlightScriptId() {\n return 'CoveoDisableHighlightStyle';\n }\n\n private get logger() {\n return this.bindings.engine.logger;\n }\n\n private get quickviewSrc() {\n return this.bindings.engine.state.resultPreview?.contentURL;\n }\n\n private enableHighlights() {\n this.removeDisableHighlightScript();\n }\n\n private enableHighlightsSpecificKeyword(identifier: string) {\n this.removeDisableHighlightScript(identifier);\n }\n\n private disableHighlights() {\n this.createDisableHighlightScript();\n }\n\n private disableHighlightsSpecificKeyword(identifier: string) {\n this.createDisableHighlightScript(identifier);\n }\n\n private removeDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n doc\n .getElementById(\n `${this.highlightScriptId}${identifier ? `:${identifier}` : ''}`\n )\n ?.remove();\n }\n\n private createDisableHighlightScript(identifier?: string) {\n const doc = this.iframeRef?.contentWindow?.document;\n if (!doc) {\n return;\n }\n\n const head = doc.head;\n const scriptId = `${this.highlightScriptId}${\n identifier ? `:${identifier}` : ''\n }`;\n const style =\n doc.getElementById(scriptId) || this.bindings.createStyleElement();\n style.setAttribute('id', scriptId);\n head.appendChild(style);\n style.appendChild(\n doc.createTextNode(`[id^=\"${HIGHLIGHT_PREFIX}${\n identifier ? `:${identifier}` : ''\n }\"] {\n background-color: inherit !important;\n color: inherit !important;\n }`)\n );\n }\n\n private get termsToHighlight() {\n const flatPhrasesToHighlight: TermsToHighlight = {};\n\n const phrasesToHighlight =\n this.bindings.engine.state.search.response.phrasesToHighlight;\n\n Object.entries(phrasesToHighlight).forEach(([phrase, keywords]) => {\n flatPhrasesToHighlight[phrase] = Object.entries(keywords).flatMap(\n ([keywordEntry, keywordStemming]) => {\n return [keywordEntry, ...keywordStemming];\n }\n );\n });\n\n return {\n ...this.bindings.engine.state.search.response.termsToHighlight,\n ...flatPhrasesToHighlight,\n };\n }\n\n private get requestId() {\n return this.bindings.engine.state.search.requestId;\n }\n\n private get quickviewUniqueIdentifier() {\n return this.result?.uniqueId + this.requestId;\n }\n\n private handleHighlightsScripts() {\n if (!this.highlightKeywords.highlightNone) {\n this.enableHighlights();\n } else {\n this.disableHighlights();\n }\n Object.values(this.highlightKeywords.keywords).forEach((word) => {\n if (word.enabled) {\n this.enableHighlightsSpecificKeyword(word.indexIdentifier);\n } else {\n this.disableHighlightsSpecificKeyword(word.indexIdentifier);\n }\n });\n }\n\n public render() {\n return (\n <atomic-modal\n fullscreen={this.bindings.store.isMobile()}\n class={'atomic-quickview-modal'}\n isOpen={this.isOpen}\n close={() => this.onClose()}\n exportparts={ATOMIC_MODAL_EXPORT_PARTS}\n >\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </atomic-modal>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,h as i,g as e}from"./p-b201b267.js";import{ResultTemplatesHelpers as r}from"@coveo/headless";import{I as s}from"./p-7f783c5b.js";import{f as o}from"./p-71d4c437.js";import{R as a}from"./p-08dfc93e.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-2f0edd55.js";import"./p-e6f5b0eb.js";const n="atomic-result-image{display:grid;place-items:center;grid-template-rows:100%;width:100%;height:100%}atomic-result-image img{width:100%;height:100%;object-fit:contain}";const h=n;var l=undefined&&undefined.__decorate||function(t,i,e,r){var s=arguments.length,o=s<3?i:r===null?r=Object.getOwnPropertyDescriptor(i,e):r,a;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(t,i,e,r);else for(var n=t.length-1;n>=0;n--)if(a=t[n])o=(s<3?a(o):s>3?a(i,e,o):a(i,e))||o;return s>3&&o&&Object.defineProperty(i,e,o),o};const f=class{constructor(i){t(this,i);this.useFallback=false;this.useFallback=false;this.field=undefined;this.imageAltField=undefined;this.fallback=undefined}get url(){const t=r.getResultProperty(this.result,this.field);return Array.isArray(t)?t[0]:t}get altText(){if(this.imageAltField){const t=r.getResultProperty(this.result,this.imageAltField);if(Array.isArray(t)&&typeof t[0]==="string"){return t[0]}if(typeof t==="string"){return t}}return this.bindings.i18n.t("image-alt-fallback",{itemName:this.result.title})}logWarning(t){this.bindings.engine.logger.warn(t)}handleImageError(){const t=`The image url "${this.url}" is not valid or could not be loaded. You might want to add a "fallback" property.`;this.fallback?this.useFallback=true:this.logWarning(t)}handleMissingFallback(t){if(!this.fallback){this.logWarning(t);this.host.remove();return null}return this.fallback}validateUrl(t){if(!t){const t=`"${this.field}" is missing. Please review your indexation. You might want to add a "fallback" property.`;return this.handleMissingFallback(t)}if(typeof t!=="string"){const t=`Expected "${this.field}" to be a text field. Please review your indexation. You might want to add a "fallback" property.`;return this.handleMissingFallback(t)}return t}render(){let t=this.useFallback?this.fallback:this.url;if(!this.useFallback){t=this.validateUrl(t);if(!t){return}}return i("img",{alt:this.altText,src:o(t),onError:()=>this.handleImageError(),loading:"lazy"})}get host(){return e(this)}};l([s()],f.prototype,"bindings",void 0);l([a()],f.prototype,"result",void 0);f.style=h;export{f as atomic_result_image};
2
+ //# sourceMappingURL=p-64e38158.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["atomicResultImageCss","AtomicResultImageStyle0","AtomicResultImage","this","useFallback","url","value","ResultTemplatesHelpers","getResultProperty","result","field","Array","isArray","altText","imageAltField","bindings","i18n","t","itemName","title","logWarning","message","engine","logger","warn","host","handleImageError","fallback","handleMissingFallback","remove","validateUrl","render","h","alt","src","filterProtocol","onError","loading","__decorate","InitializeBindings","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-image/atomic-result-image.pcss?tag=atomic-result-image","src/components/search/result-template-components/atomic-result-image/atomic-result-image.tsx"],"sourcesContent":["atomic-result-image {\n display: grid;\n place-items: center;\n grid-template-rows: 100%;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n}\n","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, h, Prop, Element, State} from '@stencil/core';\nimport {\n InitializeBindings,\n InitializableComponent,\n} from '../../../../utils/initialization-utils';\nimport {filterProtocol} from '../../../../utils/xss-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/context/stencil-result-template-decorators';\n\n/**\n * The `atomic-result-image` component renders an image from a result field.\n */\n@Component({\n tag: 'atomic-result-image',\n styleUrl: 'atomic-result-image.pcss',\n shadow: false,\n})\nexport class AtomicResultImage implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n @Element() private host!: HTMLElement;\n @State() private useFallback = false;\n\n /**\n * The result field which the component should use. This will look for the field in the Result object first, then in the Result.raw object. It is important to include the necessary field in the `atomic-search-interface` component.\n */\n @Prop({reflect: true}) field!: string;\n\n /**\n * The result field that contains the alt text for the image. This will look for the field in the Result object first, then in the Result.raw object\n *\n * If the field is not specified, or does not contain a valid value, the alt text will be set to \"Image for {productName}\".\n */\n @Prop({reflect: true}) imageAltField?: string;\n\n /**\n * An optional fallback image URL that will be used in case the specified image field is not available or encounters an error.\n */\n @Prop({reflect: true}) fallback?: string;\n\n public error!: Error;\n\n public get url() {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.field\n );\n return Array.isArray(value) ? value[0] : value;\n }\n\n private get altText(): string {\n if (this.imageAltField) {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.imageAltField\n );\n\n if (Array.isArray(value) && typeof value[0] === 'string') {\n return value[0];\n }\n\n if (typeof value === 'string') {\n return value;\n }\n }\n\n return this.bindings.i18n.t('image-alt-fallback', {\n itemName: this.result.title,\n });\n }\n\n private logWarning(message: string) {\n this.bindings.engine.logger.warn(message, this.host);\n }\n\n private handleImageError() {\n const message = `The image url \"${this.url}\" is not valid or could not be loaded. You might want to add a \"fallback\" property.`;\n\n this.fallback ? (this.useFallback = true) : this.logWarning(message);\n }\n\n private handleMissingFallback(message: string) {\n if (!this.fallback) {\n this.logWarning(message);\n this.host.remove();\n return null;\n }\n return this.fallback;\n }\n\n private validateUrl(url: string) {\n if (!url) {\n const message = `\"${this.field}\" is missing. Please review your indexation. You might want to add a \"fallback\" property.`;\n return this.handleMissingFallback(message);\n }\n\n if (typeof url !== 'string') {\n const message = `Expected \"${this.field}\" to be a text field. Please review your indexation. You might want to add a \"fallback\" property.`;\n return this.handleMissingFallback(message);\n }\n\n return url;\n }\n\n public render() {\n let url = this.useFallback ? this.fallback : this.url;\n\n if (!this.useFallback) {\n url = this.validateUrl(url);\n if (!url) {\n return;\n }\n }\n\n return (\n <img\n alt={this.altText}\n src={filterProtocol(url)}\n onError={() => this.handleImageError()}\n loading=\"lazy\"\n />\n );\n }\n}\n"],"mappings":"+RAAA,MAAMA,EAAuB,wKAC7B,MAAAC,EAAeD,E,iXCiBFE,EAAiB,M,yBAIXC,KAAAC,YAAc,M,iBAAA,M,0EAqB/B,OAAWC,GACT,MAAMC,EAAQC,EAAuBC,kBACnCL,KAAKM,OACLN,KAAKO,OAEP,OAAOC,MAAMC,QAAQN,GAASA,EAAM,GAAKA,C,CAG3C,WAAYO,GACV,GAAIV,KAAKW,cAAe,CACtB,MAAMR,EAAQC,EAAuBC,kBACnCL,KAAKM,OACLN,KAAKW,eAGP,GAAIH,MAAMC,QAAQN,WAAiBA,EAAM,KAAO,SAAU,CACxD,OAAOA,EAAM,E,CAGf,UAAWA,IAAU,SAAU,CAC7B,OAAOA,C,EAIX,OAAOH,KAAKY,SAASC,KAAKC,EAAE,qBAAsB,CAChDC,SAAUf,KAAKM,OAAOU,O,CAIlB,UAAAC,CAAWC,GACjBlB,KAAKY,SAASO,OAAOC,OAAOC,KAAKH,EAASlB,KAAKsB,K,CAGzC,gBAAAC,GACN,MAAML,EAAU,kBAAkBlB,KAAKE,yFAEvCF,KAAKwB,SAAYxB,KAAKC,YAAc,KAAQD,KAAKiB,WAAWC,E,CAGtD,qBAAAO,CAAsBP,GAC5B,IAAKlB,KAAKwB,SAAU,CAClBxB,KAAKiB,WAAWC,GAChBlB,KAAKsB,KAAKI,SACV,OAAO,I,CAET,OAAO1B,KAAKwB,Q,CAGN,WAAAG,CAAYzB,GAClB,IAAKA,EAAK,CACR,MAAMgB,EAAU,IAAIlB,KAAKO,iGACzB,OAAOP,KAAKyB,sBAAsBP,E,CAGpC,UAAWhB,IAAQ,SAAU,CAC3B,MAAMgB,EAAU,aAAalB,KAAKO,yGAClC,OAAOP,KAAKyB,sBAAsBP,E,CAGpC,OAAOhB,C,CAGF,MAAA0B,GACL,IAAI1B,EAAMF,KAAKC,YAAcD,KAAKwB,SAAWxB,KAAKE,IAElD,IAAKF,KAAKC,YAAa,CACrBC,EAAMF,KAAK2B,YAAYzB,GACvB,IAAKA,EAAK,CACR,M,EAIJ,OACE2B,EAAA,OACEC,IAAK9B,KAAKU,QACVqB,IAAKC,EAAe9B,GACpB+B,QAAS,IAAMjC,KAAKuB,mBACpBW,QAAQ,Q,6BArGeC,EAAA,CAA5BC,K,+BACwBD,EAAA,CAAxBE,K","ignoreList":[]}
1
+ {"version":3,"names":["atomicResultImageCss","AtomicResultImageStyle0","AtomicResultImage","this","useFallback","url","value","ResultTemplatesHelpers","getResultProperty","result","field","Array","isArray","altText","imageAltField","bindings","i18n","t","itemName","title","logWarning","message","engine","logger","warn","handleImageError","fallback","handleMissingFallback","host","remove","validateUrl","render","h","alt","src","filterProtocol","onError","loading","__decorate","InitializeBindings","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-image/atomic-result-image.pcss?tag=atomic-result-image","src/components/search/result-template-components/atomic-result-image/atomic-result-image.tsx"],"sourcesContent":["atomic-result-image {\n display: grid;\n place-items: center;\n grid-template-rows: 100%;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n}\n","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, h, Prop, Element, State} from '@stencil/core';\nimport {\n InitializeBindings,\n InitializableComponent,\n} from '../../../../utils/initialization-utils';\nimport {filterProtocol} from '../../../../utils/xss-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/context/stencil-result-template-decorators';\n\n/**\n * The `atomic-result-image` component renders an image from a result field.\n */\n@Component({\n tag: 'atomic-result-image',\n styleUrl: 'atomic-result-image.pcss',\n shadow: false,\n})\nexport class AtomicResultImage implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n @Element() private host!: HTMLElement;\n @State() private useFallback = false;\n\n /**\n * The result field which the component should use. This will look for the field in the Result object first, then in the Result.raw object. It is important to include the necessary field in the `atomic-search-interface` component.\n */\n @Prop({reflect: true}) field!: string;\n\n /**\n * The result field that contains the alt text for the image. This will look for the field in the Result object first, then in the Result.raw object\n *\n * If the field is not specified, or does not contain a valid value, the alt text will be set to \"Image for {productName}\".\n */\n @Prop({reflect: true}) imageAltField?: string;\n\n /**\n * An optional fallback image URL that will be used in case the specified image field is not available or encounters an error.\n */\n @Prop({reflect: true}) fallback?: string;\n\n public error!: Error;\n\n public get url() {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.field\n );\n return Array.isArray(value) ? value[0] : value;\n }\n\n private get altText(): string {\n if (this.imageAltField) {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.imageAltField\n );\n\n if (Array.isArray(value) && typeof value[0] === 'string') {\n return value[0];\n }\n\n if (typeof value === 'string') {\n return value;\n }\n }\n\n return this.bindings.i18n.t('image-alt-fallback', {\n itemName: this.result.title,\n });\n }\n\n private logWarning(message: string) {\n this.bindings.engine.logger.warn(message);\n }\n\n private handleImageError() {\n const message = `The image url \"${this.url}\" is not valid or could not be loaded. You might want to add a \"fallback\" property.`;\n\n this.fallback ? (this.useFallback = true) : this.logWarning(message);\n }\n\n private handleMissingFallback(message: string) {\n if (!this.fallback) {\n this.logWarning(message);\n this.host.remove();\n return null;\n }\n return this.fallback;\n }\n\n private validateUrl(url: string) {\n if (!url) {\n const message = `\"${this.field}\" is missing. Please review your indexation. You might want to add a \"fallback\" property.`;\n return this.handleMissingFallback(message);\n }\n\n if (typeof url !== 'string') {\n const message = `Expected \"${this.field}\" to be a text field. Please review your indexation. You might want to add a \"fallback\" property.`;\n return this.handleMissingFallback(message);\n }\n\n return url;\n }\n\n public render() {\n let url = this.useFallback ? this.fallback : this.url;\n\n if (!this.useFallback) {\n url = this.validateUrl(url);\n if (!url) {\n return;\n }\n }\n\n return (\n <img\n alt={this.altText}\n src={filterProtocol(url)}\n onError={() => this.handleImageError()}\n loading=\"lazy\"\n />\n );\n }\n}\n"],"mappings":"uTAAA,MAAMA,EAAuB,wKAC7B,MAAAC,EAAeD,E,iXCiBFE,EAAiB,M,yBAIXC,KAAAC,YAAc,M,iBAAA,M,0EAqB/B,OAAWC,GACT,MAAMC,EAAQC,EAAuBC,kBACnCL,KAAKM,OACLN,KAAKO,OAEP,OAAOC,MAAMC,QAAQN,GAASA,EAAM,GAAKA,C,CAG3C,WAAYO,GACV,GAAIV,KAAKW,cAAe,CACtB,MAAMR,EAAQC,EAAuBC,kBACnCL,KAAKM,OACLN,KAAKW,eAGP,GAAIH,MAAMC,QAAQN,WAAiBA,EAAM,KAAO,SAAU,CACxD,OAAOA,EAAM,E,CAGf,UAAWA,IAAU,SAAU,CAC7B,OAAOA,C,EAIX,OAAOH,KAAKY,SAASC,KAAKC,EAAE,qBAAsB,CAChDC,SAAUf,KAAKM,OAAOU,O,CAIlB,UAAAC,CAAWC,GACjBlB,KAAKY,SAASO,OAAOC,OAAOC,KAAKH,E,CAG3B,gBAAAI,GACN,MAAMJ,EAAU,kBAAkBlB,KAAKE,yFAEvCF,KAAKuB,SAAYvB,KAAKC,YAAc,KAAQD,KAAKiB,WAAWC,E,CAGtD,qBAAAM,CAAsBN,GAC5B,IAAKlB,KAAKuB,SAAU,CAClBvB,KAAKiB,WAAWC,GAChBlB,KAAKyB,KAAKC,SACV,OAAO,I,CAET,OAAO1B,KAAKuB,Q,CAGN,WAAAI,CAAYzB,GAClB,IAAKA,EAAK,CACR,MAAMgB,EAAU,IAAIlB,KAAKO,iGACzB,OAAOP,KAAKwB,sBAAsBN,E,CAGpC,UAAWhB,IAAQ,SAAU,CAC3B,MAAMgB,EAAU,aAAalB,KAAKO,yGAClC,OAAOP,KAAKwB,sBAAsBN,E,CAGpC,OAAOhB,C,CAGF,MAAA0B,GACL,IAAI1B,EAAMF,KAAKC,YAAcD,KAAKuB,SAAWvB,KAAKE,IAElD,IAAKF,KAAKC,YAAa,CACrBC,EAAMF,KAAK2B,YAAYzB,GACvB,IAAKA,EAAK,CACR,M,EAIJ,OACE2B,EAAA,OACEC,IAAK9B,KAAKU,QACVqB,IAAKC,EAAe9B,GACpB+B,QAAS,IAAMjC,KAAKsB,mBACpBY,QAAQ,Q,6BArGeC,EAAA,CAA5BC,K,+BACwBD,EAAA,CAAxBE,K","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{h as n,r as t,c as r,H as e,g as i}from"./p-b201b267.js";import{isNullOrUndefined as a}from"@coveo/bueno";import{buildStandaloneSearchBox as o,buildSearchBox as l}from"@coveo/headless";import{i as s,h as c}from"./p-6292386d.js";import{I as d,B as h}from"./p-7f783c5b.js";import{a as w,S as p}from"./p-946fe85f.js";import{u as m}from"./p-1fca38e1.js";import{A as g}from"./p-1bb8fd49.js";import{o as b,r as u,h as v,g as f}from"./p-e89123f7.js";import{a as y,b as x,S as k,c as z}from"./p-ca775fe9.js";import{B as S}from"./p-a6bbb030.js";import{a as j}from"./p-0a051b8d.js";import{a as q}from"./p-a62f2bf9.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-2f0edd55.js";import"./p-3df103c1.js";import"./p-4573c419.js";import"./p-01c91b69.js";const C=({bindings:t,disabled:r,onClick:e})=>n("div",{part:"submit-button-wrapper",class:"mr-2 flex items-center justify-center py-2"},n(S,{style:"text-primary",class:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full",part:"submit-button",ariaLabel:t.i18n.t("search"),onClick:()=>{e?.()},disabled:r},n("atomic-icon",{part:"submit-icon",icon:y,class:"h-4 w-4"})));const F='/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer properties {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: "";\n }\n}\n@layer theme, base, components, utilities;\n@layer theme;\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, var(--atomic-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden="until-found"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container {\n container-type: inline-size;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .collapse {\n visibility: collapse;\n }\n .invisible {\n visibility: hidden;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(0.25rem * 0);\n }\n .-top-2 {\n top: calc(0.25rem * -2);\n }\n .-top-4 {\n top: calc(0.25rem * -4);\n }\n .top-0 {\n top: calc(0.25rem * 0);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-6 {\n top: calc(0.25rem * 6);\n }\n .top-\\[4px\\] {\n top: 4px;\n }\n .top-full {\n top: 100%;\n }\n .top-px {\n top: 1px;\n }\n .-right-2 {\n right: calc(0.25rem * -2);\n }\n .right-0 {\n right: calc(0.25rem * 0);\n }\n .right-2 {\n right: calc(0.25rem * 2);\n }\n .right-6 {\n right: calc(0.25rem * 6);\n }\n .right-12 {\n right: calc(0.25rem * 12);\n }\n .right-20 {\n right: calc(0.25rem * 20);\n }\n .right-px {\n right: 1px;\n }\n .bottom-0 {\n bottom: calc(0.25rem * 0);\n }\n .bottom-1 {\n bottom: calc(0.25rem * 1);\n }\n .bottom-2 {\n bottom: calc(0.25rem * 2);\n }\n .bottom-px {\n bottom: 1px;\n }\n .left-0 {\n left: calc(0.25rem * 0);\n }\n .left-1 {\n left: calc(0.25rem * 1);\n }\n .left-2 {\n left: calc(0.25rem * 2);\n }\n .left-\\[15px\\] {\n left: 15px;\n }\n .isolate {\n isolation: isolate;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-10 {\n z-index: 10;\n }\n .z-9998 {\n z-index: 9998;\n }\n .z-9999 {\n z-index: 9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .container {\n width: 100%;\n }\n @media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n }\n @media (width >= 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n @media (width >= 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n @media (width >= 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n @media (width >= 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n @media (width >= 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n .m-0 {\n margin: calc(0.25rem * 0);\n }\n .m-2 {\n margin: calc(0.25rem * 2);\n }\n .mx-0 {\n margin-inline: calc(0.25rem * 0);\n }\n .mx-0\\.5 {\n margin-inline: calc(0.25rem * 0.5);\n }\n .mx-1 {\n margin-inline: calc(0.25rem * 1);\n }\n .mx-6 {\n margin-inline: calc(0.25rem * 6);\n }\n .mx-16 {\n margin-inline: calc(0.25rem * 16);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-2 {\n margin-block: calc(0.25rem * 2);\n }\n .my-3 {\n margin-block: calc(0.25rem * 3);\n }\n .my-4 {\n margin-block: calc(0.25rem * 4);\n }\n .my-6 {\n margin-block: calc(0.25rem * 6);\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-top: calc(0.25rem * 0);\n }\n .mt-1 {\n margin-top: calc(0.25rem * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(0.25rem * 1.5);\n }\n .mt-2 {\n margin-top: calc(0.25rem * 2);\n }\n .mt-2\\.5 {\n margin-top: calc(0.25rem * 2.5);\n }\n .mt-3 {\n margin-top: calc(0.25rem * 3);\n }\n .mt-4 {\n margin-top: calc(0.25rem * 4);\n }\n .mt-6 {\n margin-top: calc(0.25rem * 6);\n }\n .mt-7 {\n margin-top: calc(0.25rem * 7);\n }\n .mt-8 {\n margin-top: calc(0.25rem * 8);\n }\n .mt-10 {\n margin-top: calc(0.25rem * 10);\n }\n .mt-px {\n margin-top: 1px;\n }\n .mr-0 {\n margin-right: calc(0.25rem * 0);\n }\n .mr-0\\.5 {\n margin-right: calc(0.25rem * 0.5);\n }\n .mr-1 {\n margin-right: calc(0.25rem * 1);\n }\n .mr-1\\.5 {\n margin-right: calc(0.25rem * 1.5);\n }\n .mr-2 {\n margin-right: calc(0.25rem * 2);\n }\n .mr-3 {\n margin-right: calc(0.25rem * 3);\n }\n .mr-6 {\n margin-right: calc(0.25rem * 6);\n }\n .mb-0 {\n margin-bottom: calc(0.25rem * 0);\n }\n .mb-1 {\n margin-bottom: calc(0.25rem * 1);\n }\n .mb-2 {\n margin-bottom: calc(0.25rem * 2);\n }\n .mb-3 {\n margin-bottom: calc(0.25rem * 3);\n }\n .mb-4 {\n margin-bottom: calc(0.25rem * 4);\n }\n .mb-6 {\n margin-bottom: calc(0.25rem * 6);\n }\n .ml-0\\.5 {\n margin-left: calc(0.25rem * 0.5);\n }\n .ml-1 {\n margin-left: calc(0.25rem * 1);\n }\n .ml-2 {\n margin-left: calc(0.25rem * 2);\n }\n .ml-4 {\n margin-left: calc(0.25rem * 4);\n }\n .ml-6 {\n margin-left: calc(0.25rem * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .box-border {\n box-sizing: border-box;\n }\n .box-content {\n box-sizing: content-box;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .line-clamp-4 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n }\n .line-clamp-none {\n overflow: visible;\n display: block;\n -webkit-box-orient: horizontal;\n -webkit-line-clamp: unset;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-column {\n display: table-column;\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-\\[27px\\] {\n width: 27px;\n height: 27px;\n }\n .h-1 {\n height: calc(0.25rem * 1);\n }\n .h-2 {\n height: calc(0.25rem * 2);\n }\n .h-2\\.5 {\n height: calc(0.25rem * 2.5);\n }\n .h-3 {\n height: calc(0.25rem * 3);\n }\n .h-4 {\n height: calc(0.25rem * 4);\n }\n .h-5 {\n height: calc(0.25rem * 5);\n }\n .h-5\\/6 {\n height: calc(5/6 * 100%);\n }\n .h-6 {\n height: calc(0.25rem * 6);\n }\n .h-7 {\n height: calc(0.25rem * 7);\n }\n .h-8 {\n height: calc(0.25rem * 8);\n }\n .h-9 {\n height: calc(0.25rem * 9);\n }\n .h-10 {\n height: calc(0.25rem * 10);\n }\n .h-12 {\n height: calc(0.25rem * 12);\n }\n .h-\\[2\\.6rem\\] {\n height: 2.6rem;\n }\n .h-\\[9px\\] {\n height: 9px;\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .max-h-96 {\n max-height: calc(0.25rem * 96);\n }\n .min-h-10 {\n min-height: calc(0.25rem * 10);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .w-0\\.5 {\n width: calc(0.25rem * 0.5);\n }\n .w-1 {\n width: calc(0.25rem * 1);\n }\n .w-1\\/2 {\n width: calc(1/2 * 100%);\n }\n .w-2 {\n width: calc(0.25rem * 2);\n }\n .w-2\\.5 {\n width: calc(0.25rem * 2.5);\n }\n .w-3 {\n width: calc(0.25rem * 3);\n }\n .w-3\\.5 {\n width: calc(0.25rem * 3.5);\n }\n .w-3\\/5 {\n width: calc(3/5 * 100%);\n }\n .w-4 {\n width: calc(0.25rem * 4);\n }\n .w-5 {\n width: calc(0.25rem * 5);\n }\n .w-5\\/6 {\n width: calc(5/6 * 100%);\n }\n .w-6 {\n width: calc(0.25rem * 6);\n }\n .w-7 {\n width: calc(0.25rem * 7);\n }\n .w-8 {\n width: calc(0.25rem * 8);\n }\n .w-9 {\n width: calc(0.25rem * 9);\n }\n .w-10 {\n width: calc(0.25rem * 10);\n }\n .w-12 {\n width: calc(0.25rem * 12);\n }\n .w-20 {\n width: calc(0.25rem * 20);\n }\n .w-26 {\n width: calc(0.25rem * 26);\n }\n .w-28 {\n width: calc(0.25rem * 28);\n }\n .w-32 {\n width: calc(0.25rem * 32);\n }\n .w-36 {\n width: calc(0.25rem * 36);\n }\n .w-44 {\n width: calc(0.25rem * 44);\n }\n .w-48 {\n width: calc(0.25rem * 48);\n }\n .w-60 {\n width: calc(0.25rem * 60);\n }\n .w-64 {\n width: calc(0.25rem * 64);\n }\n .w-72 {\n width: calc(0.25rem * 72);\n }\n .w-100 {\n width: calc(0.25rem * 100);\n }\n .w-\\[2\\.6rem\\] {\n width: 2.6rem;\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .max-w-4\\/5 {\n max-width: calc(4/5 * 100%);\n }\n .max-w-60 {\n max-width: calc(0.25rem * 60);\n }\n .max-w-\\[30ch\\] {\n max-width: 30ch;\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-lg {\n max-width: 32rem;\n }\n .max-w-max {\n max-width: max-content;\n }\n .min-w-0 {\n min-width: calc(0.25rem * 0);\n }\n .min-w-10 {\n min-width: calc(0.25rem * 10);\n }\n .min-w-20 {\n min-width: calc(0.25rem * 20);\n }\n .min-w-24 {\n min-width: calc(0.25rem * 24);\n }\n .min-w-full {\n min-width: 100%;\n }\n .flex-1 {\n flex: 1;\n }\n .flex-none {\n flex: none;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .flex-grow {\n flex-grow: 1;\n }\n .grow {\n flex-grow: 1;\n }\n .basis-1\\/2 {\n flex-basis: calc(1/2 * 100%);\n }\n .basis-8 {\n flex-basis: calc(0.25rem * 8);\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1\\/2 {\n --tw-translate-x: calc(1/2 * 100%);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-75 {\n --tw-scale-x: 75%;\n --tw-scale-y: 75%;\n --tw-scale-z: 75%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n .cursor-\\[inherit\\] {\n cursor: inherit;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .list-outside {\n list-style-position: outside;\n }\n .list-decimal {\n list-style-type: decimal;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-\\[min-content_1fr\\] {\n grid-template-columns: min-content 1fr;\n }\n .grid-cols-\\[min-content_auto\\] {\n grid-template-columns: min-content auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .place-items-center {\n place-items: center;\n }\n .content-center {\n align-content: center;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-0\\.5 {\n gap: calc(0.25rem * 0.5);\n }\n .gap-1 {\n gap: calc(0.25rem * 1);\n }\n .gap-2 {\n gap: calc(0.25rem * 2);\n }\n .gap-3 {\n gap: calc(0.25rem * 3);\n }\n .gap-4 {\n gap: calc(0.25rem * 4);\n }\n .gap-8 {\n gap: calc(0.25rem * 8);\n }\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n .gap-x-1\\.5 {\n column-gap: calc(0.25rem * 1.5);\n }\n .gap-x-2 {\n column-gap: calc(0.25rem * 2);\n }\n .gap-x-4 {\n column-gap: calc(0.25rem * 4);\n }\n :where(.space-x-1\\.5 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(0.25rem * 1.5) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(0.25rem * 1.5) * calc(1 - var(--tw-space-x-reverse)));\n }\n .gap-y-0\\.5 {\n row-gap: calc(0.25rem * 0.5);\n }\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n :where(.divide-neutral > :not(:last-child)) {\n border-color: var(--atomic-neutral);\n }\n .self-center {\n align-self: center;\n }\n .self-start {\n align-self: flex-start;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-clip {\n overflow-x: clip;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .scroll-smooth {\n scroll-behavior: smooth;\n }\n .rounded {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-3xl {\n border-radius: 1.5rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--atomic-border-radius-lg);\n }\n .rounded-md {\n border-radius: var(--atomic-border-radius-md);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-xl {\n border-radius: var(--atomic-border-radius-xl);\n }\n .rounded-tl-none {\n border-top-left-radius: 0;\n }\n .rounded-r-none {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-gray-200 {\n border-color: oklch(0.928 0.006 264.531);\n }\n .border-neutral {\n border-color: var(--atomic-neutral);\n }\n .border-neutral-dark {\n border-color: var(--atomic-neutral-dark);\n }\n .border-neutral-dim {\n border-color: var(--atomic-neutral-dim);\n }\n .border-primary {\n border-color: var(--atomic-primary);\n }\n .border-primary-light {\n border-color: var(--atomic-primary-light);\n }\n .border-t-neutral {\n border-top-color: var(--atomic-neutral);\n }\n .border-b-neutral {\n border-bottom-color: var(--atomic-neutral);\n }\n .border-b-neutral-dim {\n border-bottom-color: var(--atomic-neutral-dim);\n }\n .border-l-neutral {\n border-left-color: var(--atomic-neutral);\n }\n .border-l-neutral-dim {\n border-left-color: var(--atomic-neutral-dim);\n }\n .bg-\\[\\#F1F2FF\\] {\n background-color: #F1F2FF;\n }\n .bg-\\[rgba\\(40\\,40\\,40\\,0\\.8\\)\\] {\n background-color: rgba(40,40,40,0.8);\n }\n .bg-background {\n background-color: var(--atomic-background);\n }\n .bg-error {\n background-color: var(--atomic-error);\n }\n .bg-gray-50 {\n background-color: oklch(0.985 0.002 247.839);\n }\n .bg-neutral {\n background-color: var(--atomic-neutral);\n }\n .bg-neutral-dark {\n background-color: var(--atomic-neutral-dark);\n }\n .bg-neutral-light {\n background-color: var(--atomic-neutral-light);\n }\n .bg-primary {\n background-color: var(--atomic-primary);\n }\n .bg-primary-background {\n background-color: var(--atomic-primary-background);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: #fff;\n }\n .bg-linear-to-l {\n --tw-gradient-position: to left;\n }\n @supports (background-image: linear-gradient(in lab, red, red)) {\n .bg-linear-to-l {\n --tw-gradient-position: to left in oklab;\n }\n }\n .bg-linear-to-l {\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-linear-to-r {\n --tw-gradient-position: to right;\n }\n @supports (background-image: linear-gradient(in lab, red, red)) {\n .bg-linear-to-r {\n --tw-gradient-position: to right in oklab;\n }\n }\n .bg-linear-to-r {\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-background\\/60 {\n --tw-gradient-from: color-mix(in srgb, #ffffff 60%, transparent);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .from-background\\/60 {\n --tw-gradient-from: color-mix(in oklab, var(--atomic-background) 60%, transparent);\n }\n }\n .from-background\\/60 {\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-more-results-progress-bar-color-from {\n --tw-gradient-from: var(\n --atomic-more-results-progress-bar-color-from,\n var(--atomic-primary-dark)\n );\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-more-results-progress-bar-color-to {\n --tw-gradient-to: var(\n --atomic-more-results-progress-bar-color-to,\n var(--atomic-primary-light)\n );\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .fill-current {\n fill: currentcolor;\n }\n .stroke-\\[1\\.25\\] {\n stroke-width: 1.25;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-0 {\n padding: calc(0.25rem * 0);\n }\n .p-1 {\n padding: calc(0.25rem * 1);\n }\n .p-2 {\n padding: calc(0.25rem * 2);\n }\n .p-2\\.5 {\n padding: calc(0.25rem * 2.5);\n }\n .p-3 {\n padding: calc(0.25rem * 3);\n }\n .p-3\\.5 {\n padding: calc(0.25rem * 3.5);\n }\n .p-4 {\n padding: calc(0.25rem * 4);\n }\n .p-6 {\n padding: calc(0.25rem * 6);\n }\n .p-7 {\n padding: calc(0.25rem * 7);\n }\n .p-8 {\n padding: calc(0.25rem * 8);\n }\n .px-1 {\n padding-inline: calc(0.25rem * 1);\n }\n .px-2 {\n padding-inline: calc(0.25rem * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(0.25rem * 2.5);\n }\n .px-3 {\n padding-inline: calc(0.25rem * 3);\n }\n .px-4 {\n padding-inline: calc(0.25rem * 4);\n }\n .px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n .px-9 {\n padding-inline: calc(0.25rem * 9);\n }\n .py-0\\.5 {\n padding-block: calc(0.25rem * 0.5);\n }\n .py-1 {\n padding-block: calc(0.25rem * 1);\n }\n .py-1\\.5 {\n padding-block: calc(0.25rem * 1.5);\n }\n .py-2 {\n padding-block: calc(0.25rem * 2);\n }\n .py-2\\.5 {\n padding-block: calc(0.25rem * 2.5);\n }\n .py-3 {\n padding-block: calc(0.25rem * 3);\n }\n .py-3\\.5 {\n padding-block: calc(0.25rem * 3.5);\n }\n .py-4 {\n padding-block: calc(0.25rem * 4);\n }\n .py-4\\.5 {\n padding-block: calc(0.25rem * 4.5);\n }\n .py-5 {\n padding-block: calc(0.25rem * 5);\n }\n .py-6 {\n padding-block: calc(0.25rem * 6);\n }\n .pt-0\\.5 {\n padding-top: calc(0.25rem * 0.5);\n }\n .pt-8 {\n padding-top: calc(0.25rem * 8);\n }\n .pr-2 {\n padding-right: calc(0.25rem * 2);\n }\n .pr-6 {\n padding-right: calc(0.25rem * 6);\n }\n .pr-24 {\n padding-right: calc(0.25rem * 24);\n }\n .pb-1 {\n padding-bottom: calc(0.25rem * 1);\n }\n .pb-3 {\n padding-bottom: calc(0.25rem * 3);\n }\n .pb-4 {\n padding-bottom: calc(0.25rem * 4);\n }\n .pb-5 {\n padding-bottom: calc(0.25rem * 5);\n }\n .pb-6 {\n padding-bottom: calc(0.25rem * 6);\n }\n .pl-0 {\n padding-left: calc(0.25rem * 0);\n }\n .pl-1 {\n padding-left: calc(0.25rem * 1);\n }\n .pl-3 {\n padding-left: calc(0.25rem * 3);\n }\n .pl-7 {\n padding-left: calc(0.25rem * 7);\n }\n .pl-9 {\n padding-left: calc(0.25rem * 9);\n }\n .pl-10 {\n padding-left: calc(0.25rem * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .align-baseline {\n vertical-align: baseline;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-sans {\n font-family: var(--atomic-font-family);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .text-2xl {\n font-size: var(--atomic-text-2xl);\n line-height: var(--tw-leading, calc(2 / 1.5));\n }\n .text-base {\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n }\n .text-lg {\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n .text-sm {\n font-size: var(--atomic-text-sm);\n line-height: var(--tw-leading, calc(1.25 / 0.875));\n }\n .text-xl {\n font-size: var(--atomic-text-xl);\n line-height: var(--tw-leading, calc(1.75 / 1.25));\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: var(--tw-leading, calc(1 / 0.75));\n }\n .text-xs\\/\\[1rem\\] {\n font-size: 0.75rem;\n line-height: 1rem;\n }\n .leading-4 {\n --tw-leading: calc(0.25rem * 4);\n line-height: calc(0.25rem * 4);\n }\n .leading-5 {\n --tw-leading: calc(0.25rem * 5);\n line-height: calc(0.25rem * 5);\n }\n .leading-6 {\n --tw-leading: calc(0.25rem * 6);\n line-height: calc(0.25rem * 6);\n }\n .leading-8 {\n --tw-leading: calc(0.25rem * 8);\n line-height: calc(0.25rem * 8);\n }\n .leading-10 {\n --tw-leading: calc(0.25rem * 10);\n line-height: calc(0.25rem * 10);\n }\n .leading-\\[1\\.5\\] {\n --tw-leading: 1.5;\n line-height: 1.5;\n }\n .leading-\\[calc\\(1\\/\\.75\\)\\] {\n --tw-leading: calc(1 / .75);\n line-height: calc(1 / .75);\n }\n .leading-\\[var\\(--line-height\\)\\] {\n --tw-leading: var(--line-height);\n line-height: var(--line-height);\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .font-bold {\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n .font-light {\n --tw-font-weight: 300;\n font-weight: 300;\n }\n .font-medium {\n --tw-font-weight: 500;\n font-weight: 500;\n }\n .font-normal {\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n .font-semibold {\n --tw-font-weight: 600;\n font-weight: 600;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .break-keep {\n word-break: keep-all;\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-normal {\n white-space: normal;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#54698D\\] {\n color: #54698D;\n }\n .text-\\[inherit\\] {\n color: inherit;\n }\n .text-black {\n color: #000;\n }\n .text-error {\n color: var(--atomic-error);\n }\n .text-gray-500 {\n color: oklch(0.551 0.027 264.364);\n }\n .text-gray-600 {\n color: oklch(0.446 0.03 256.802);\n }\n .text-gray-700 {\n color: oklch(0.373 0.034 259.733);\n }\n .text-gray-900 {\n color: oklch(0.21 0.034 264.665);\n }\n .text-green-600 {\n color: oklch(0.627 0.194 149.214);\n }\n .text-inline-code {\n color: var(--atomic-inline-code);\n }\n .text-neutral {\n color: var(--atomic-neutral);\n }\n .text-neutral-dark {\n color: var(--atomic-neutral-dark);\n }\n .text-on-background {\n color: var(--atomic-on-background);\n }\n .text-on-primary {\n color: var(--atomic-on-primary);\n }\n .text-primary {\n color: var(--atomic-primary);\n }\n .text-primary-light {\n color: var(--atomic-primary-light);\n }\n .text-rating-icon-active {\n color: var(--atomic-rating-icon-active-color, #f6ce3c);\n }\n .text-rating-icon-inactive {\n color: var(\n --atomic-rating-icon-inactive-color,\n var(--atomic-neutral)\n );\n }\n .text-red-600 {\n color: oklch(0.577 0.245 27.325);\n }\n .text-success {\n color: var(--atomic-success);\n }\n .text-transparent {\n color: transparent;\n }\n .capitalize {\n text-transform: capitalize;\n }\n .lowercase {\n text-transform: lowercase;\n }\n .italic {\n font-style: italic;\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .placeholder-neutral-dark::placeholder {\n color: var(--atomic-neutral-dark);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner-primary {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--atomic-primary));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0px 2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-t-lg {\n --tw-shadow: 0px -2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-3 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-primary {\n --tw-ring-color: var(--atomic-primary);\n }\n .ring-primary-light {\n --tw-ring-color: var(--atomic-primary-light);\n }\n .ring-ring-primary {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-error {\n outline-color: var(--atomic-error);\n }\n .outline-neutral {\n outline-color: var(--atomic-neutral);\n }\n .outline-primary {\n outline-color: var(--atomic-primary);\n }\n .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .invert {\n --tw-invert: invert(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .filter {\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-\\[visibility\\] {\n transition-property: visibility;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .ease-in-out {\n --tw-ease: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .\\[grid-area\\:modal\\] {\n grid-area: modal;\n }\n .\\[scrollbar-gutter\\:stable_both-edges\\] {\n scrollbar-gutter: stable both-edges;\n }\n @media (hover: hover) {\n .group-hover\\:visible:is(:where(.group):hover *) {\n visibility: visible;\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-error:is(:where(.group):hover *) {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-primary:is(:where(.group):hover *) {\n color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-primary-light:is(:where(.group):hover *) {\n color: var(--atomic-primary-light);\n }\n }\n .group-focus\\:text-primary:is(:where(.group):focus *) {\n color: var(--atomic-primary);\n }\n .group-focus\\:text-primary-light:is(:where(.group):focus *) {\n color: var(--atomic-primary-light);\n }\n .group-focus-visible\\:text-error:is(:where(.group):focus-visible *) {\n color: var(--atomic-error);\n }\n .group-focus-visible\\:text-primary:is(:where(.group):focus-visible *) {\n color: var(--atomic-primary);\n }\n .peer-focus-within\\:border-primary-light:is(:where(.peer):focus-within ~ *) {\n border-color: var(--atomic-primary-light);\n }\n .peer-focus-within\\:text-primary-light:is(:where(.peer):focus-within ~ *) {\n color: var(--atomic-primary-light);\n }\n @media (hover: hover) {\n .peer-hover\\:border-primary-light:is(:where(.peer):hover ~ *) {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .peer-hover\\:text-error:is(:where(.peer):hover ~ *) {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .peer-hover\\:text-primary-light:is(:where(.peer):hover ~ *) {\n color: var(--atomic-primary-light);\n }\n }\n .before\\:inline::before {\n content: var(--tw-content);\n display: inline;\n }\n .before\\:content-\\[\\\'\\,\\\\00a0\\\'\\]::before {\n --tw-content: \',\\00a0\';\n content: var(--tw-content);\n }\n .after\\:absolute::after {\n content: var(--tw-content);\n position: absolute;\n }\n .after\\:-bottom-0\\.5::after {\n content: var(--tw-content);\n bottom: calc(0.25rem * -0.5);\n }\n .after\\:block::after {\n content: var(--tw-content);\n display: block;\n }\n .after\\:h-1::after {\n content: var(--tw-content);\n height: calc(0.25rem * 1);\n }\n .after\\:w-full::after {\n content: var(--tw-content);\n width: 100%;\n }\n .after\\:rounded::after {\n content: var(--tw-content);\n border-radius: var(--atomic-border-radius);\n }\n .after\\:bg-primary::after {\n content: var(--tw-content);\n background-color: var(--atomic-primary);\n }\n .focus-within\\:border-disabled:focus-within {\n border-color: var(--atomic-disabled);\n }\n .focus-within\\:border-primary:focus-within {\n border-color: var(--atomic-primary);\n }\n .focus-within\\:ring-3:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus-within\\:ring-neutral:focus-within {\n --tw-ring-color: var(--atomic-neutral);\n }\n .focus-within\\:ring-ring-primary:focus-within {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n @media (hover: hover) {\n .hover\\:border:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n @media (hover: hover) {\n .hover\\:border-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:border-primary-light:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-error:hover {\n background-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-neutral-light:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-primary-light:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-transparent:hover {\n background-color: transparent;\n }\n }\n @media (hover: hover) {\n .hover\\:fill-white:hover {\n fill: #fff;\n }\n }\n @media (hover: hover) {\n .hover\\:text-primary-light:hover {\n color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n @media (hover: hover) {\n .hover\\:opacity-100:hover {\n opacity: 100%;\n }\n }\n @media (hover: hover) {\n .hover\\:shadow-sm:hover {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:opacity-100:focus {\n opacity: 100%;\n }\n .focus\\:outline-hidden:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n @media (forced-colors: active) {\n .focus\\:outline-hidden:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .focus-visible\\:border:focus-visible {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .focus-visible\\:border-error:focus-visible {\n border-color: var(--atomic-error);\n }\n .focus-visible\\:border-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .focus-visible\\:border-primary-light:focus-visible {\n border-color: var(--atomic-primary-light);\n }\n .focus-visible\\:bg-error:focus-visible {\n background-color: var(--atomic-error);\n }\n .focus-visible\\:bg-neutral-light:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .focus-visible\\:bg-primary-light:focus-visible {\n background-color: var(--atomic-primary-light);\n }\n .focus-visible\\:text-primary-light:focus-visible {\n color: var(--atomic-primary-light);\n }\n .focus-visible\\:underline:focus-visible {\n text-decoration-line: underline;\n }\n .focus-visible\\:ring-2:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n @media (width >= 40rem) {\n .sm\\:px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n }\n .\\[part\\=\\"breadcrumb-button\\"\\]\\:visible:is(part="breadcrumb-button") {\n visibility: visible;\n }\n}\n@layer theme, base, components, utilities;\n@layer components {\n .input-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n }\n @media (hover: hover) {\n .input-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n .input-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .input-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .input-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .input-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n .btn-radio::before {\n --tw-content: attr(value);\n content: var(--tw-content);\n }\n .btn-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-primary);\n color: var(--atomic-on-primary);\n }\n @media (hover: hover) {\n .btn-primary:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n .btn-primary:focus-visible {\n background-color: var(--atomic-primary-light);\n }\n .btn-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-primary:disabled {\n cursor: not-allowed;\n }\n .btn-primary:disabled {\n background-color: var(--atomic-disabled);\n }\n .btn-outline-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-outline-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-primary:disabled {\n cursor: not-allowed;\n }\n .btn-outline-primary:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-primary:disabled {\n color: var(--atomic-neutral);\n }\n .btn-text-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-text-primary:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-text-primary:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-error:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-error:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-error:disabled {\n opacity: 50%;\n }\n .btn-outline-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n color: var(--atomic-error);\n }\n }\n .btn-outline-error:focus-visible {\n border-color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-error:disabled {\n opacity: 50%;\n }\n .btn-text-neutral {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-text-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-text-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-text-transparent {\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-transparent:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-text-transparent:focus-visible {\n color: var(--atomic-primary-light);\n }\n .btn-square-neutral {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-square-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-square-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-square-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-page {\n display: grid;\n height: calc(0.25rem * 10);\n width: calc(0.25rem * 10);\n place-items: center;\n border-style: var(--tw-border-style);\n border-width: 0px;\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n @media (hover: hover) {\n .btn-page:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .btn-page:focus-visible {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .btn-page.selected {\n border-style: var(--tw-border-style);\n border-width: 2px;\n border-color: var(--atomic-primary);\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n}\n@layer base {\n :host {\n display: block;\n }\n :host, button, input, select {\n font-family: var(--atomic-font-family);\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n button {\n cursor: pointer;\n }\n :host(.atomic-hidden) {\n display: none;\n }\n .ripple {\n position: absolute;\n pointer-events: none;\n transform: scale(0);\n border-radius: 50%;\n animation: ripple var(--animation-duration) linear;\n }\n .ripple-relative {\n position: relative;\n }\n .ripple-parent {\n overflow: hidden;\n }\n @keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n }\n}\n.loading {\n --tw-gradient-from: var(--atomic-primary-dark);\n --tw-gradient-to: var(--atomic-primary-light);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n}\n.loading::after {\n content: \'\';\n position: absolute;\n height: calc(5/6 * 100%);\n width: calc(5/6 * 100%);\n border-radius: calc(infinity * 1px);\n background-color: var(--atomic-background);\n}\n[part=\'textarea-expander\']::after {\n content: attr(data-replicated-value) \' \';\n visibility: hidden;\n}\n[part=\'textarea-expander\'] > [part=\'textarea\']::-webkit-scrollbar {\n display: none;\n}\n[part=\'textarea-expander\'] > [part=\'textarea\']::-webkit-scrollbar {\n display: none;\n}\n[part=\'textarea-expander\'] > [part=\'textarea\'] {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n[part=\'textarea-expander\'] > [part=\'textarea\']::-webkit-scrollbar {\n display: none;\n}\n[part=\'textarea-expander\'] > [part=\'textarea\'], [part=\'textarea-expander\']::after {\n z-index: 10;\n height: 100%;\n flex-grow: 1;\n resize: none;\n overflow: hidden;\n background-color: transparent;\n padding-inline: calc(0.25rem * 4);\n padding-block: calc(0.25rem * 3.5);\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n white-space: nowrap;\n color: var(--atomic-neutral-dark);\n --tw-outline-style: none;\n outline-style: none;\n grid-area: 1 / 1 / 2 / 2;\n}\n[part=\'textarea-expander\'].expanded > [part=\'textarea\'], [part=\'textarea-expander\'].expanded::after {\n white-space: pre-wrap;\n overflow-y: auto;\n max-height: 8em;\n}\n[part~=\'instant-results-item\'] {\n padding: calc(0.25rem * 3);\n}\n[part~=\'instant-results-show-all\'] {\n justify-content: center;\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n border-top-color: var(--atomic-neutral);\n padding-block: calc(0.25rem * 1);\n margin-top: auto;\n box-sizing: content-box;\n}\n[part~=\'instant-results-show-all\'] button {\n background-color: transparent;\n}\n[part~=\'suggestions-left\'] + [part~=\'suggestions-right\'] {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n border-left-color: var(--atomic-neutral);\n}\n[part~=\'suggestions-wrapper\'] {\n flex-direction: column;\n}\n@media (width >= 1024px) {\n [part~=\'suggestions-wrapper\'] {\n flex-direction: row;\n }\n}\n:host {\n position: relative;\n z-index: 10;\n}\n@property --tw-translate-x {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: "*";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: "<length>";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: "*";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: "*";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: "*";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: "*";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: "*";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-invert {\n syntax: "*";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: "*";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: "*";\n inherits: false;\n}\n@property --tw-duration {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ease {\n syntax: "*";\n inherits: false;\n}\n@property --tw-content {\n syntax: "*";\n initial-value: "";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: "";\n }\n }\n}\n';const B=F;var D=undefined&&undefined.__decorate||function(n,t,r,e){var i=arguments.length,a=i<3?t:e===null?e=Object.getOwnPropertyDescriptor(t,r):e,o;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")a=Reflect.decorate(n,t,r,e);else for(var l=n.length-1;l>=0;l--)if(o=n[l])a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a;return i>3&&a&&Object.defineProperty(t,r,a),a};const R=class{constructor(e){t(this,e);this.redirect=r(this,"redirect",7);this.searchBoxSuggestionEventsQueue=[];this.isExpanded=false;this.numberOfQueries=8;this.suggestionTimeout=400;this.suggestionDelay=0;this.disableSearch=false;this.minimumQueryLength=0;this.clearFilters=true;this.enableQuerySyntax=false;this.disconnectedCallback=()=>{};this.updateBreakpoints=b((()=>m(this.host)));this.renderTextBox=t=>{const r={loading:this.searchBoxState.isLoading,bindings:this.bindings,value:this.searchBoxState.value,title:t,ariaLabel:t,onFocus:()=>this.onFocus(),onInput:n=>this.onInput(n.target.value),onKeyDown:n=>this.onKeyDown(n),onClear:()=>{this.announceClearSearchBoxToScreenReader();this.searchBox.clear();this.suggestionManager.clearSuggestions()},popup:{id:`${this.id}-popup`,activeDescendant:this.suggestionManager.activeDescendant,expanded:this.isExpanded,hasSuggestions:this.suggestionManager.hasSuggestions}};return n(x,{textAreaRef:this.textAreaRef,ref:n=>this.textAreaRef=n,...r,onClear:()=>{r.onClear();this.triggerTextAreaChange("")}})};this.searchBoxState=undefined;this.error=undefined;this.isExpanded=false;this.numberOfQueries=8;this.redirectionUrl=undefined;this.suggestionTimeout=400;this.suggestionDelay=0;this.disableSearch=false;this.minimumQueryLength=0;this.clearFilters=true;this.enableQuerySyntax=false}isStandaloneSearchBox(n){return"redirectTo"in n}initialize(){this.id||=u("atomic-search-box-");this.initializeSearchboxController();this.initializeSuggestionManager()}updateRedirectionUrl(){if(this.isStandaloneSearchBox(this.searchBox)&&this.redirectionUrl){this.searchBox.updateRedirectUrl(this.redirectionUrl)}else{this.registerNewSearchBoxController()}}registerNewSearchBoxController(){this.disconnectedCallback();this.initialize()}initializeSearchboxController(){this.searchBox=this.redirectionUrl?o(this.bindings.engine,{options:{...this.searchBoxOptions,redirectionUrl:this.redirectionUrl,overwrite:true}}):l(this.bindings.engine,{options:this.searchBoxOptions})}componentWillUpdate(){if(!("redirectTo"in this.searchBoxState)||!("afterRedirection"in this.searchBox)){return}const{redirectTo:n,value:t,analytics:r}=this.searchBoxState;if(n===""){return}const e={value:t,enableQuerySyntax:this.enableQuerySyntax,analytics:r};const i=new p;i.setJSON(w.STANDALONE_SEARCH_BOX_DATA,e);this.searchBox.afterRedirection();const a=this.redirect.emit({redirectTo:n,value:t});if(!a.defaultPrevented){window.location.href=n}}registerSuggestions(n){if(!this.bindings){this.searchBoxSuggestionEventsQueue.push(n)}else{this.suggestionManager.registerSuggestionsFromEvent(n,this.suggestionBindings)}}registerSearchboxSuggestionEvents(){this.searchBoxSuggestionEventsQueue.forEach((n=>{this.suggestionManager.registerSuggestionsFromEvent(n,this.suggestionBindings)}));this.searchBoxSuggestionEventsQueue=[]}watchRedirectionUrl(){this.updateRedirectionUrl()}initializeSuggestionManager(){if(this.suggestionManager){return}this.suggestionManager=new k({getNumberOfSuggestionsToDisplay:()=>this.numberOfQueries,updateQuery:n=>this.searchBox.updateText(n),getSearchBoxValue:()=>this.searchBoxState.value,getSuggestionTimeout:()=>this.suggestionTimeout,getSuggestionDelay:()=>this.suggestionDelay,getHost:()=>this.host,getLogger:()=>this.bindings.engine.logger});this.suggestionManager.initializeSuggestions(this.suggestionBindings)}get suggestionBindings(){return v(this.bindings,this.suggestionManager.partialSuggestionBindings,this.partialSuggestionBindings)}get partialSuggestionBindings(){return Object.defineProperties({...this.bindings},{id:{get:()=>this.id,enumerable:true},searchBoxController:{get:()=>this.searchBox,enumerable:true},isStandalone:{get:()=>!!this.redirectionUrl,enumerable:true},numberOfQueries:{get:()=>this.numberOfQueries,enumerable:true},clearFilters:{get:()=>this.clearFilters,enumerable:true}})}get searchBoxOptions(){return{id:this.id,numberOfSuggestions:0,highlightOptions:{notMatchDelimiters:{open:'<span class="font-bold">',close:"</span>"},correctionDelimiters:{open:'<span class="font-normal">',close:"</span>"}},clearFilters:this.clearFilters,enableQuerySyntax:this.enableQuerySyntax}}async onInput(n){this.searchBox.updateText(n);if(this.isSearchDisabledForEndUser(n)){this.suggestionManager.clearSuggestions();return}this.isExpanded=true;await this.suggestionManager.triggerSuggestions();this.announceNewSuggestionsToScreenReader()}async onFocus(){if(this.isExpanded){return}this.isExpanded=true;await this.suggestionManager.triggerSuggestions();this.announceNewSuggestionsToScreenReader()}onSubmit(){this.isExpanded=false;if(this.suggestionManager.keyboardActiveDescendant){this.suggestionManager.onSubmit();return}this.searchBox.submit()}async onKeyDown(n){if(this.isSearchDisabledForEndUser(this.searchBoxState.value)){return}switch(n.key){case"Enter":this.onSubmit();break;case"Escape":this.suggestionManager.clearSuggestions();break;case"ArrowDown":n.preventDefault();await this.suggestionManager.focusNextValue();this.announceNewActiveSuggestionToScreenReader();break;case"ArrowUp":n.preventDefault();await this.suggestionManager.focusPreviousValue();this.announceNewActiveSuggestionToScreenReader();break;case"ArrowRight":if(this.suggestionManager.hasActiveDescendant||!this.searchBox.state.value){n.preventDefault();this.suggestionManager.focusPanel("right");this.announceNewActiveSuggestionToScreenReader()}break;case"ArrowLeft":if(this.suggestionManager.hasActiveDescendant||!this.searchBox.state.value){n.preventDefault();this.suggestionManager.focusPanel("left");this.announceNewActiveSuggestionToScreenReader()}break;case"Tab":this.suggestionManager.clearSuggestions();break;default:if(this.suggestionManager.keyboardActiveDescendant){this.suggestionManager.updateKeyboardActiveDescendant()}break}}triggerTextAreaChange(n){this.textAreaRef.value=n;this.textAreaRef.dispatchEvent(new window.Event("change"))}renderSuggestion(t,r,e,i){const a=`${this.id}-${i}-suggestion-${t.key}`;const o=a===this.suggestionManager.activeDescendant;if(r===e&&t.hideIfLast){return null}return n("atomic-suggestion-renderer",{i18n:this.bindings.i18n,id:a,suggestion:t,isSelected:o,side:i,index:r,lastIndex:e,isDoubleList:this.suggestionManager.isDoubleList,onClick:n=>{this.suggestionManager.onSuggestionClick(t,n);if(t.key==="recent-query-clear"){return}this.isExpanded=false},onMouseOver:()=>{this.suggestionManager.onSuggestionMouseOver(t,i,a)}})}renderPanel(t,r,e,i){if(!r.length){return null}return n("div",{part:`suggestions suggestions-${t}`,ref:e,class:"flex grow basis-1/2 flex-col",onMouseDown:n=>{if(n.target===i()){n.preventDefault()}}},r.map(((n,e)=>this.renderSuggestion(n,e,r.length-1,t))))}get shouldShowSuggestions(){return this.suggestionManager.hasSuggestions&&this.isExpanded&&!this.isSearchDisabledForEndUser(this.searchBoxState.value)}renderSuggestions(){return n("div",{id:`${this.id}-popup`,part:`suggestions-wrapper ${this.suggestionManager.isDoubleList?"suggestions-double-list":"suggestions-single-list"}`,class:`bg-background border-neutral absolute top-full left-0 z-10 flex w-full rounded-md border ${this.shouldShowSuggestions?"":"hidden"}`,role:"application","aria-label":this.bindings.i18n.t(this.suggestionManager.isDoubleList?"search-suggestions-double-list":"search-suggestions-single-list"),...this.suggestionManager.activeDescendant&&{"aria-activedescendant":this.suggestionManager.activeDescendant}},this.renderPanel("left",this.suggestionManager.leftSuggestionElements,(n=>this.suggestionManager.leftPanel=n),(()=>this.suggestionManager.leftPanel)),this.renderPanel("right",this.suggestionManager.rightSuggestionElements,(n=>this.suggestionManager.rightPanel=n),(()=>this.suggestionManager.rightPanel)))}renderAbsolutePositionSpacer(){return n("textarea",{"aria-hidden":true,part:"textarea-spacer",class:"invisible w-full px-4 py-3.5 text-lg",rows:1})}isSearchDisabledForEndUser(n){if(a(n)){return this.disableSearch}if(n.trim().length<this.minimumQueryLength){return true}return this.disableSearch}getSearchInputLabel(n=0){if(this.isSearchDisabledForEndUser(this.searchBoxState.value)){return this.bindings.i18n.t("search-disabled",{length:n})}if(s()){return this.bindings.i18n.t("search-box-with-suggestions-macos")}if(!c()){return this.bindings.i18n.t("search-box-with-suggestions-keyboardless")}return this.bindings.i18n.t("search-box-with-suggestions")}announceNewActiveSuggestionToScreenReader(){const n=this.suggestionManager.activeDescendantElement?.ariaLabel;if(s()&&n){this.suggestionsAriaMessage=n}}announceClearSearchBoxToScreenReader(){this.suggestionsAriaMessage=this.bindings.i18n.t("search-box-cleared")}announceNewSuggestionsToScreenReader(){const n=this.suggestionManager.allSuggestionElements.filter(j).length;this.searchBoxAriaMessage=n?this.bindings.i18n.t(this.searchBoxState.value?"query-suggestions-available":"query-suggestions-available-no-query",{count:n,query:this.searchBoxState.value}):this.bindings.i18n.t("query-suggestions-unavailable")}renderSlotContent(){const t=q(this.host).length>0;if(t){return n("slot",null)}return[n("atomic-search-box-recent-queries",null),n("atomic-search-box-query-suggestions",null)]}render(){this.updateBreakpoints();const t=this.getSearchInputLabel(this.minimumQueryLength);const r=this.isSearchDisabledForEndUser(this.searchBoxState.value);if(!this.suggestionManager.suggestions.length){this.registerSearchboxSuggestionEvents()}return n(e,{key:"5bc3e6cf2c7a77c6867cea7f225f37fd03ce5da5"},this.renderAbsolutePositionSpacer(),[n(z,{key:"1dcbb20f746d077675a447a097624171105bd26e",disabled:r,onFocusout:n=>{if(!f(n)){return}this.suggestionManager.clearSuggestions();this.isExpanded=false}},this.renderTextBox(t),n(C,{key:"0514631ae20774115f6205a4c7c3029cb4535b6d",bindings:this.bindings,disabled:r,onClick:()=>{this.searchBox.submit();this.suggestionManager.clearSuggestions()}}),this.renderSuggestions()),this.renderSlotContent()])}get host(){return i(this)}static get watchers(){return{redirectionUrl:["watchRedirectionUrl"]}}};D([d()],R.prototype,"bindings",void 0);D([h("searchBox")],R.prototype,"searchBoxState",void 0);D([g("search-box")],R.prototype,"searchBoxAriaMessage",void 0);D([g("search-suggestions",true)],R.prototype,"suggestionsAriaMessage",void 0);R.style=B;export{R as atomic_search_box};
2
+ //# sourceMappingURL=p-6885acd3.entry.js.map