@coveo/atomic 3.27.4-pre.da155af9e1 → 3.27.4-pre.e4bf3d33c6

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 (438) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +2 -0
  4. package/dist/atomic/components/_index.js +1 -0
  5. package/dist/atomic/components/atomic-breadbox.js +2 -91
  6. package/dist/atomic/components/atomic-breadbox.js.map +1 -1
  7. package/dist/atomic/components/atomic-commerce-breadbox.d.ts +11 -0
  8. package/dist/atomic/components/atomic-commerce-breadbox.js +295 -0
  9. package/dist/atomic/components/atomic-commerce-breadbox.js.map +1 -0
  10. package/dist/atomic/components/atomic-commerce-load-more-products.js +2 -5
  11. package/dist/atomic/components/atomic-commerce-load-more-products.js.map +1 -1
  12. package/dist/atomic/components/atomic-commerce-numeric-facet2.js +1 -1
  13. package/dist/atomic/components/atomic-commerce-query-error.js +2 -2
  14. package/dist/atomic/components/atomic-commerce-query-error.js.map +1 -1
  15. package/dist/atomic/components/atomic-commerce-recommendation-interface.js +2 -1
  16. package/dist/atomic/components/atomic-commerce-recommendation-interface.js.map +1 -1
  17. package/dist/atomic/components/atomic-commerce-refine-toggle.js +2 -2
  18. package/dist/atomic/components/atomic-commerce-refine-toggle.js.map +1 -1
  19. package/dist/atomic/components/atomic-format-currency.js +1 -1
  20. package/dist/atomic/components/atomic-format-number.js +1 -1
  21. package/dist/atomic/components/atomic-format-unit.js +1 -1
  22. package/dist/atomic/components/atomic-insight-numeric-facet.js +3 -2
  23. package/dist/atomic/components/atomic-insight-numeric-facet.js.map +1 -1
  24. package/dist/atomic/components/atomic-insight-query-error.js +2 -2
  25. package/dist/atomic/components/atomic-insight-query-error.js.map +1 -1
  26. package/dist/atomic/components/atomic-load-more-results.js +2 -5
  27. package/dist/atomic/components/atomic-load-more-results.js.map +1 -1
  28. package/dist/atomic/components/atomic-numeric-facet.js +3 -2
  29. package/dist/atomic/components/atomic-numeric-facet.js.map +1 -1
  30. package/dist/atomic/components/atomic-product-numeric-field-value.js +1 -1
  31. package/dist/atomic/components/atomic-query-error.js +2 -2
  32. package/dist/atomic/components/atomic-query-error.js.map +1 -1
  33. package/dist/atomic/components/atomic-recs-error.js +2 -2
  34. package/dist/atomic/components/atomic-recs-error.js.map +1 -1
  35. package/dist/atomic/components/atomic-refine-toggle.js +2 -2
  36. package/dist/atomic/components/atomic-refine-toggle.js.map +1 -1
  37. package/dist/atomic/components/atomic-result-number.js +1 -1
  38. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +11 -0
  39. package/dist/atomic/components/components/commerce/index.js +0 -1
  40. package/dist/atomic/components/components/commerce/lazy-index.js +0 -1
  41. package/dist/atomic/components/components/common/item-list/item-list-common.js +0 -3
  42. package/dist/atomic/components/decorators/light-dom.js +0 -16
  43. package/dist/atomic/components/format-common.js +1 -1
  44. package/dist/atomic/components/{components/common/facets/numeric-facet/formatter.js → formatter.js} +8 -3
  45. package/dist/atomic/components/formatter.js.map +1 -0
  46. package/dist/atomic/components/global/environment.js +1 -1
  47. package/dist/atomic/components/index.js.map +1 -1
  48. package/dist/atomic/components/interface-common-stencil.js +1 -1
  49. package/dist/atomic/components/stencil-accessibility-utils.js +4 -14
  50. package/dist/atomic/components/stencil-accessibility-utils.js.map +1 -1
  51. package/dist/atomic/components/stencil-breadcrumb-show-more.js +95 -0
  52. package/dist/atomic/components/stencil-breadcrumb-show-more.js.map +1 -0
  53. package/dist/atomic/components/{stencil-guard.js → stencil-button2.js} +5 -5
  54. package/dist/atomic/components/stencil-button2.js.map +1 -0
  55. package/dist/atomic/components/stencil-item-list-common.js +0 -3
  56. package/dist/atomic/components/stencil-item-list-common.js.map +1 -1
  57. package/dist/atomic/components/{stencil-link.js → title.js} +56 -56
  58. package/dist/atomic/components/title.js.map +1 -0
  59. package/dist/atomic/components/utils/accessibility-utils.js +4 -14
  60. package/dist/atomic/components/values-container.js +2 -26
  61. package/dist/atomic/components/values-container.js.map +1 -1
  62. package/dist/atomic/{p-af8999b1.entry.js → p-02996f86.entry.js} +2 -2
  63. package/dist/atomic/{p-a15f6b8c.entry.js → p-02b28870.entry.js} +2 -2
  64. package/dist/atomic/{p-59017e0a.entry.js → p-02ff6630.entry.js} +2 -2
  65. package/dist/atomic/{p-e961a0cc.entry.js → p-040d11cd.entry.js} +2 -2
  66. package/dist/atomic/{p-bc77fab7.entry.js → p-0bfe403b.entry.js} +2 -2
  67. package/dist/atomic/{p-b2d57b15.entry.js → p-0cc48eee.entry.js} +2 -2
  68. package/dist/atomic/p-0cc48eee.entry.js.map +1 -0
  69. package/dist/atomic/{p-ec03a238.entry.js → p-0f925e7b.entry.js} +2 -2
  70. package/dist/atomic/{p-51810027.entry.js → p-14a2646c.entry.js} +2 -2
  71. package/dist/atomic/p-14a2646c.entry.js.map +1 -0
  72. package/dist/atomic/{p-c74c1b41.entry.js → p-1566803a.entry.js} +2 -2
  73. package/dist/atomic/p-1566803a.entry.js.map +1 -0
  74. package/dist/atomic/{p-6d264c97.entry.js → p-1b75ca01.entry.js} +2 -2
  75. package/dist/atomic/{p-6c5524dc.entry.js → p-1dd886f0.entry.js} +2 -2
  76. package/dist/atomic/p-248089a0.js +2 -0
  77. package/dist/atomic/p-248089a0.js.map +1 -0
  78. package/dist/atomic/{p-ceadf1e3.entry.js → p-25dcb619.entry.js} +2 -2
  79. package/dist/atomic/{p-310c93bc.entry.js → p-2fb8ceed.entry.js} +2 -2
  80. package/dist/atomic/p-35d06c55.entry.js +2 -0
  81. package/dist/atomic/{p-f96655f4.entry.js.map → p-35d06c55.entry.js.map} +1 -1
  82. package/dist/atomic/{p-4e57cee1.entry.js → p-3a2d55e0.entry.js} +2 -2
  83. package/dist/atomic/p-428f3e7d.js +2 -0
  84. package/dist/atomic/{p-ccff6c87.entry.js → p-4294c5fe.entry.js} +2 -2
  85. package/dist/atomic/{p-d5c308fc.entry.js → p-4c0c78f8.entry.js} +2 -2
  86. package/dist/atomic/{p-963a3e18.entry.js → p-4d2fc026.entry.js} +2 -2
  87. package/dist/atomic/{p-bad08ec3.entry.js → p-5b9957c5.entry.js} +2 -2
  88. package/dist/atomic/{p-d72e52b2.entry.js → p-5d7c5154.entry.js} +2 -2
  89. package/dist/atomic/p-6058008a.js +2 -0
  90. package/dist/atomic/p-6058008a.js.map +1 -0
  91. package/dist/atomic/{p-b0be7782.entry.js → p-6a66eae4.entry.js} +2 -2
  92. package/dist/atomic/{p-07cd7e4a.entry.js → p-6b1ae398.entry.js} +2 -2
  93. package/dist/atomic/{p-39447826.entry.js → p-6ef0e47a.entry.js} +2 -2
  94. package/dist/atomic/p-725183ba.js +2 -0
  95. package/dist/atomic/p-725183ba.js.map +1 -0
  96. package/dist/atomic/{p-9a161d8f.entry.js → p-73d43334.entry.js} +2 -2
  97. package/dist/atomic/{p-c2f0ca36.js → p-7b4f6ed6.js} +2 -2
  98. package/dist/atomic/p-7f0593a5.js +2 -0
  99. package/dist/atomic/p-7f0593a5.js.map +1 -0
  100. package/dist/atomic/{p-da578608.entry.js → p-80ae9ccd.entry.js} +2 -2
  101. package/dist/atomic/{p-75d11764.entry.js → p-815a7f06.entry.js} +2 -2
  102. package/dist/atomic/p-815a7f06.entry.js.map +1 -0
  103. package/dist/atomic/{p-81874146.entry.js → p-83b3960c.entry.js} +2 -2
  104. package/dist/atomic/{p-c7971a2e.entry.js → p-867e6957.entry.js} +2 -2
  105. package/dist/atomic/p-867e6957.entry.js.map +1 -0
  106. package/dist/atomic/{p-4af746a9.entry.js → p-8846dc8f.entry.js} +2 -2
  107. package/dist/atomic/{p-c12abafc.entry.js → p-8c23589b.entry.js} +2 -2
  108. package/dist/atomic/p-8c23589b.entry.js.map +1 -0
  109. package/dist/atomic/{p-7dd55462.entry.js → p-8f2b0293.entry.js} +2 -2
  110. package/dist/atomic/{p-35400329.entry.js → p-95413559.entry.js} +2 -2
  111. package/dist/atomic/p-985d0ef5.js +2 -0
  112. package/dist/atomic/p-985d0ef5.js.map +1 -0
  113. package/dist/atomic/{p-c265c67d.entry.js → p-a34bdd94.entry.js} +2 -2
  114. package/dist/atomic/p-a34bdd94.entry.js.map +1 -0
  115. package/dist/atomic/p-a54ccae7.entry.js +2 -0
  116. package/dist/atomic/p-a54ccae7.entry.js.map +1 -0
  117. package/dist/atomic/p-ae07068c.js +2 -0
  118. package/dist/atomic/p-ae07068c.js.map +1 -0
  119. package/dist/atomic/{p-1243448d.entry.js → p-b5995e6b.entry.js} +2 -2
  120. package/dist/atomic/p-b5b86e05.entry.js +2 -0
  121. package/dist/atomic/{p-bd109981.entry.js.map → p-b5b86e05.entry.js.map} +1 -1
  122. package/dist/atomic/p-b5d5c5cf.js +2 -0
  123. package/dist/atomic/p-b5d5c5cf.js.map +1 -0
  124. package/dist/atomic/{p-231c8300.entry.js → p-c0e280d2.entry.js} +2 -2
  125. package/dist/atomic/{p-bb5c19a7.entry.js → p-c8e6b14a.entry.js} +2 -2
  126. package/dist/atomic/{p-e36f1951.entry.js → p-cb3cbcc4.entry.js} +2 -2
  127. package/dist/atomic/{p-cf12adcd.entry.js → p-cbb3cf8d.entry.js} +2 -2
  128. package/dist/atomic/p-d15a44cc.entry.js +2 -0
  129. package/dist/atomic/p-d15a44cc.entry.js.map +1 -0
  130. package/dist/atomic/{p-905c59a8.entry.js → p-d1e0ba89.entry.js} +2 -2
  131. package/dist/atomic/p-d1e0ba89.entry.js.map +1 -0
  132. package/dist/atomic/{p-5cf5bb98.entry.js → p-d2da75a3.entry.js} +2 -2
  133. package/dist/atomic/p-d509f930.entry.js +2 -0
  134. package/dist/atomic/{p-891f0c50.entry.js.map → p-d509f930.entry.js.map} +1 -1
  135. package/dist/atomic/{p-bd0aa08f.entry.js → p-d5d1af9b.entry.js} +2 -2
  136. package/dist/atomic/{p-22fb593a.entry.js → p-d69d6868.entry.js} +2 -2
  137. package/dist/atomic/{p-88bbf499.entry.js → p-d6b5512a.entry.js} +2 -2
  138. package/dist/atomic/{p-6d083c4e.entry.js → p-d7727baa.entry.js} +2 -2
  139. package/dist/atomic/{p-a535a268.entry.js → p-d9e69834.entry.js} +2 -2
  140. package/dist/atomic/{p-5158370c.entry.js → p-dc2b29f1.entry.js} +2 -2
  141. package/dist/atomic/{p-5158370c.entry.js.map → p-dc2b29f1.entry.js.map} +1 -1
  142. package/dist/atomic/{p-7d1ca26f.entry.js → p-e68c18db.entry.js} +2 -2
  143. package/dist/atomic/{p-57f53200.entry.js → p-e6b33bc5.entry.js} +2 -2
  144. package/dist/atomic/{p-1c06ca0c.entry.js → p-e7a06049.entry.js} +2 -2
  145. package/dist/atomic/{p-25a96534.js → p-f3c1c9a0.js} +2 -2
  146. package/dist/atomic/{p-79e1bcc1.entry.js → p-f9e2e064.entry.js} +2 -2
  147. package/dist/atomic/{p-3e5a304a.entry.js → p-fe10e968.entry.js} +2 -2
  148. package/dist/cjs/_loader.cjs.js +1 -1
  149. package/dist/cjs/{analytics-config-e809a27c.js → analytics-config-2cd2f5cd.js} +2 -2
  150. package/dist/cjs/{analytics-config-e809a27c.js.map → analytics-config-2cd2f5cd.js.map} +1 -1
  151. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +1 -1
  152. package/dist/cjs/atomic-breadbox.cjs.entry.js +9 -96
  153. package/dist/cjs/atomic-breadbox.cjs.entry.js.map +1 -1
  154. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  155. package/dist/cjs/atomic-color-facet.cjs.entry.js +1 -1
  156. package/dist/cjs/atomic-commerce-breadbox.cjs.entry.js +288 -0
  157. package/dist/cjs/atomic-commerce-breadbox.cjs.entry.js.map +1 -0
  158. package/dist/cjs/atomic-commerce-category-facet_5.cjs.entry.js +3 -2
  159. package/dist/cjs/atomic-commerce-category-facet_5.cjs.entry.js.map +1 -1
  160. package/dist/cjs/atomic-commerce-load-more-products.cjs.entry.js +2 -5
  161. package/dist/cjs/atomic-commerce-load-more-products.cjs.entry.js.map +1 -1
  162. package/dist/cjs/atomic-commerce-no-products.cjs.entry.js +1 -1
  163. package/dist/cjs/atomic-commerce-query-error.cjs.entry.js +4 -4
  164. package/dist/cjs/atomic-commerce-query-error.cjs.entry.js.map +1 -1
  165. package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js +3 -2
  166. package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js.map +1 -1
  167. package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js +2 -2
  168. package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js.map +1 -1
  169. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  170. package/dist/cjs/atomic-focus-trap_2.cjs.entry.js +1 -1
  171. package/dist/cjs/atomic-folded-result-list.cjs.entry.js +2 -2
  172. package/dist/cjs/atomic-generated-answer.cjs.entry.js +1 -1
  173. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  174. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +2 -2
  175. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +1 -1
  176. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  177. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  178. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +5 -4
  179. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js.map +1 -1
  180. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +4 -4
  181. package/dist/cjs/atomic-insight-query-error.cjs.entry.js.map +1 -1
  182. package/dist/cjs/atomic-insight-query-summary.cjs.entry.js +1 -1
  183. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +2 -2
  184. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  185. package/dist/cjs/atomic-insight-result.cjs.entry.js +2 -2
  186. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +1 -1
  187. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +1 -1
  188. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +2 -2
  189. package/dist/cjs/atomic-load-more-results.cjs.entry.js +2 -5
  190. package/dist/cjs/atomic-load-more-results.cjs.entry.js.map +1 -1
  191. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  192. package/dist/cjs/atomic-notifications.cjs.entry.js +1 -1
  193. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +5 -4
  194. package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
  195. package/dist/cjs/atomic-query-error.cjs.entry.js +4 -4
  196. package/dist/cjs/atomic-query-error.cjs.entry.js.map +1 -1
  197. package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
  198. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  199. package/dist/cjs/atomic-rating-facet.cjs.entry.js +1 -1
  200. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +1 -1
  201. package/dist/cjs/atomic-recs-error.cjs.entry.js +4 -4
  202. package/dist/cjs/atomic-recs-error.cjs.entry.js.map +1 -1
  203. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  204. package/dist/cjs/atomic-recs-list.cjs.entry.js +2 -2
  205. package/dist/cjs/atomic-recs-result.cjs.entry.js +2 -2
  206. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +2 -2
  207. package/dist/cjs/atomic-refine-toggle.cjs.entry.js.map +1 -1
  208. package/dist/cjs/atomic-result-list.cjs.entry.js +2 -2
  209. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +1 -1
  210. package/dist/cjs/atomic-result.cjs.entry.js +2 -2
  211. package/dist/cjs/atomic-search-box.cjs.entry.js +1 -1
  212. package/dist/cjs/atomic-search-interface.cjs.entry.js +2 -2
  213. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +1 -1
  214. package/dist/cjs/atomic.cjs.js +1 -1
  215. package/dist/cjs/formatter-a95ed36b.js +31 -0
  216. package/dist/cjs/formatter-a95ed36b.js.map +1 -0
  217. package/dist/cjs/index-757bc886.js +4 -0
  218. package/dist/cjs/{interface-common-stencil-106cb624.js → interface-common-stencil-2f491040.js} +2 -2
  219. package/dist/cjs/{interface-common-stencil-106cb624.js.map → interface-common-stencil-2f491040.js.map} +1 -1
  220. package/dist/cjs/{stencil-accessibility-utils-a5d1a814.js → stencil-accessibility-utils-7eed7a97.js} +5 -15
  221. package/dist/cjs/stencil-accessibility-utils-7eed7a97.js.map +1 -0
  222. package/dist/cjs/stencil-breadcrumb-show-more-072b7726.js +102 -0
  223. package/dist/cjs/stencil-breadcrumb-show-more-072b7726.js.map +1 -0
  224. package/dist/cjs/{stencil-guard-caf49888.js → stencil-button-4108a176.js} +5 -5
  225. package/dist/cjs/stencil-button-4108a176.js.map +1 -0
  226. package/dist/cjs/{stencil-item-list-common-5a566a7b.js → stencil-item-list-common-3fa0a493.js} +2 -5
  227. package/dist/cjs/stencil-item-list-common-3fa0a493.js.map +1 -0
  228. package/dist/cjs/{stencil-link-f3ae19d0.js → title-d7fc3716.js} +56 -56
  229. package/dist/cjs/title-d7fc3716.js.map +1 -0
  230. package/dist/cjs/{values-container-7f0fda83.js → values-container-71f8a3aa.js} +3 -28
  231. package/dist/cjs/values-container-71f8a3aa.js.map +1 -0
  232. package/dist/cjs/version.cjs.js +2 -2
  233. package/dist/esm/_loader.js +1 -1
  234. package/dist/esm/{analytics-config-8e9cd658.js → analytics-config-ef02523b.js} +2 -2
  235. package/dist/esm/{analytics-config-8e9cd658.js.map → analytics-config-ef02523b.js.map} +1 -1
  236. package/dist/esm/atomic-automatic-facet_2.entry.js +1 -1
  237. package/dist/esm/atomic-breadbox.entry.js +5 -92
  238. package/dist/esm/atomic-breadbox.entry.js.map +1 -1
  239. package/dist/esm/atomic-category-facet.entry.js +1 -1
  240. package/dist/esm/atomic-color-facet.entry.js +1 -1
  241. package/dist/esm/atomic-commerce-breadbox.entry.js +284 -0
  242. package/dist/esm/atomic-commerce-breadbox.entry.js.map +1 -0
  243. package/dist/esm/atomic-commerce-category-facet_5.entry.js +4 -3
  244. package/dist/esm/atomic-commerce-category-facet_5.entry.js.map +1 -1
  245. package/dist/esm/atomic-commerce-load-more-products.entry.js +2 -5
  246. package/dist/esm/atomic-commerce-load-more-products.entry.js.map +1 -1
  247. package/dist/esm/atomic-commerce-no-products.entry.js +1 -1
  248. package/dist/esm/atomic-commerce-query-error.entry.js +3 -3
  249. package/dist/esm/atomic-commerce-query-error.entry.js.map +1 -1
  250. package/dist/esm/atomic-commerce-recommendation-interface.entry.js +3 -2
  251. package/dist/esm/atomic-commerce-recommendation-interface.entry.js.map +1 -1
  252. package/dist/esm/atomic-commerce-refine-toggle.entry.js +2 -2
  253. package/dist/esm/atomic-commerce-refine-toggle.entry.js.map +1 -1
  254. package/dist/esm/atomic-facet.entry.js +1 -1
  255. package/dist/esm/atomic-focus-trap_2.entry.js +1 -1
  256. package/dist/esm/atomic-folded-result-list.entry.js +2 -2
  257. package/dist/esm/atomic-format-currency.entry.js +1 -1
  258. package/dist/esm/atomic-format-number.entry.js +1 -1
  259. package/dist/esm/atomic-format-unit.entry.js +1 -1
  260. package/dist/esm/atomic-generated-answer.entry.js +1 -1
  261. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  262. package/dist/esm/atomic-insight-folded-result-list.entry.js +2 -2
  263. package/dist/esm/atomic-insight-generated-answer.entry.js +1 -1
  264. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  265. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  266. package/dist/esm/atomic-insight-numeric-facet.entry.js +5 -4
  267. package/dist/esm/atomic-insight-numeric-facet.entry.js.map +1 -1
  268. package/dist/esm/atomic-insight-query-error.entry.js +3 -3
  269. package/dist/esm/atomic-insight-query-error.entry.js.map +1 -1
  270. package/dist/esm/atomic-insight-query-summary.entry.js +1 -1
  271. package/dist/esm/atomic-insight-result-list.entry.js +2 -2
  272. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  273. package/dist/esm/atomic-insight-result.entry.js +2 -2
  274. package/dist/esm/atomic-insight-search-box.entry.js +1 -1
  275. package/dist/esm/atomic-insight-timeframe-facet.entry.js +1 -1
  276. package/dist/esm/atomic-ipx-recs-list.entry.js +2 -2
  277. package/dist/esm/atomic-load-more-results.entry.js +2 -5
  278. package/dist/esm/atomic-load-more-results.entry.js.map +1 -1
  279. package/dist/esm/atomic-no-results.entry.js +1 -1
  280. package/dist/esm/atomic-notifications.entry.js +1 -1
  281. package/dist/esm/atomic-numeric-facet.entry.js +5 -4
  282. package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
  283. package/dist/esm/atomic-product-numeric-field-value.entry.js +1 -1
  284. package/dist/esm/atomic-product-price.entry.js +1 -1
  285. package/dist/esm/atomic-query-error.entry.js +3 -3
  286. package/dist/esm/atomic-query-error.entry.js.map +1 -1
  287. package/dist/esm/atomic-query-summary.entry.js +1 -1
  288. package/dist/esm/atomic-quickview.entry.js +1 -1
  289. package/dist/esm/atomic-rating-facet.entry.js +1 -1
  290. package/dist/esm/atomic-rating-range-facet.entry.js +1 -1
  291. package/dist/esm/atomic-recs-error.entry.js +3 -3
  292. package/dist/esm/atomic-recs-error.entry.js.map +1 -1
  293. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  294. package/dist/esm/atomic-recs-list.entry.js +2 -2
  295. package/dist/esm/atomic-recs-result.entry.js +2 -2
  296. package/dist/esm/atomic-refine-toggle.entry.js +2 -2
  297. package/dist/esm/atomic-refine-toggle.entry.js.map +1 -1
  298. package/dist/esm/atomic-result-list.entry.js +2 -2
  299. package/dist/esm/atomic-result-number.entry.js +1 -1
  300. package/dist/esm/atomic-result-printable-uri.entry.js +1 -1
  301. package/dist/esm/atomic-result.entry.js +2 -2
  302. package/dist/esm/atomic-search-box.entry.js +1 -1
  303. package/dist/esm/atomic-search-interface.entry.js +2 -2
  304. package/dist/esm/atomic-timeframe-facet.entry.js +1 -1
  305. package/dist/esm/atomic.js +1 -1
  306. package/dist/esm/{format-common-274e0f7c.js → format-common-6436d8ea.js} +2 -2
  307. package/dist/esm/{format-common-274e0f7c.js.map → format-common-6436d8ea.js.map} +1 -1
  308. package/dist/esm/formatter-d890aa7d.js +29 -0
  309. package/dist/esm/formatter-d890aa7d.js.map +1 -0
  310. package/dist/esm/index-3f35faca.js +4 -0
  311. package/dist/esm/{interface-common-stencil-767b3f0b.js → interface-common-stencil-aa55b3f4.js} +2 -2
  312. package/dist/esm/{interface-common-stencil-767b3f0b.js.map → interface-common-stencil-aa55b3f4.js.map} +1 -1
  313. package/dist/esm/{stencil-accessibility-utils-b42ac309.js → stencil-accessibility-utils-49ac1c53.js} +5 -15
  314. package/dist/esm/stencil-accessibility-utils-49ac1c53.js.map +1 -0
  315. package/dist/esm/stencil-breadcrumb-show-more-6e6104d4.js +95 -0
  316. package/dist/esm/stencil-breadcrumb-show-more-6e6104d4.js.map +1 -0
  317. package/dist/esm/{stencil-guard-9329c8cd.js → stencil-button-467ff352.js} +5 -5
  318. package/dist/esm/stencil-button-467ff352.js.map +1 -0
  319. package/dist/esm/{stencil-item-list-common-9e3e9954.js → stencil-item-list-common-8996949d.js} +2 -5
  320. package/dist/esm/stencil-item-list-common-8996949d.js.map +1 -0
  321. package/dist/esm/{stencil-link-c0c35f94.js → title-7b773fe0.js} +56 -56
  322. package/dist/esm/title-7b773fe0.js.map +1 -0
  323. package/dist/esm/{values-container-51a6d0ae.js → values-container-5c8162d7.js} +3 -27
  324. package/dist/esm/values-container-5c8162d7.js.map +1 -0
  325. package/dist/esm/version.js +2 -2
  326. package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +16 -22
  327. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +2 -2
  328. package/dist/types/components/commerce/index.d.ts +0 -1
  329. package/dist/types/components/common/interface/bindings.d.ts +0 -6
  330. package/dist/types/components/common/query-error/description.d.ts +2 -3
  331. package/dist/types/components/common/query-error/details.d.ts +4 -3
  332. package/dist/types/components/common/query-error/link.d.ts +2 -2
  333. package/dist/types/components/common/query-error/show-more.d.ts +1 -1
  334. package/dist/types/components/common/refine-modal/guard.d.ts +3 -7
  335. package/dist/types/components/common/sort/sort-guard.d.ts +1 -1
  336. package/dist/types/components.d.ts +39 -0
  337. package/dist/types/decorators/light-dom.d.ts +0 -16
  338. package/dist/types/utils/accessibility-utils.d.ts +1 -4
  339. package/dist/types/utils/stencil-accessibility-utils.d.ts +1 -4
  340. package/docs/atomic-docs.json +145 -6
  341. package/package.json +5 -5
  342. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +0 -347
  343. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.tw.css.js +0 -3
  344. package/dist/atomic/components/components/common/breadbox/breadcrumb-button.js +0 -29
  345. package/dist/atomic/components/components/common/breadbox/breadcrumb-clear-all.js +0 -18
  346. package/dist/atomic/components/components/common/breadbox/breadcrumb-container.js +0 -21
  347. package/dist/atomic/components/components/common/breadbox/breadcrumb-content.js +0 -42
  348. package/dist/atomic/components/components/common/breadbox/breadcrumb-show-less.js +0 -21
  349. package/dist/atomic/components/components/common/breadbox/breadcrumb-show-more.js +0 -23
  350. package/dist/atomic/components/components/common/breadbox/breadcrumb-types.js +0 -1
  351. package/dist/atomic/components/components/common/breadbox/breadcrumb-utils.js +0 -22
  352. package/dist/atomic/components/components/common/formats/format-common.js +0 -15
  353. package/dist/atomic/components/stencil-guard.js.map +0 -1
  354. package/dist/atomic/components/stencil-link.js.map +0 -1
  355. package/dist/atomic/components/utils/date-utils.js +0 -51
  356. package/dist/atomic/components/utils/field-utils.js +0 -11
  357. package/dist/atomic/p-0a50a6c2.entry.js +0 -2
  358. package/dist/atomic/p-0a50a6c2.entry.js.map +0 -1
  359. package/dist/atomic/p-4bf030d4.js +0 -2
  360. package/dist/atomic/p-51810027.entry.js.map +0 -1
  361. package/dist/atomic/p-67afec23.js +0 -2
  362. package/dist/atomic/p-67afec23.js.map +0 -1
  363. package/dist/atomic/p-75d11764.entry.js.map +0 -1
  364. package/dist/atomic/p-891f0c50.entry.js +0 -2
  365. package/dist/atomic/p-905c59a8.entry.js.map +0 -1
  366. package/dist/atomic/p-b2d57b15.entry.js.map +0 -1
  367. package/dist/atomic/p-b55ab145.js +0 -2
  368. package/dist/atomic/p-b55ab145.js.map +0 -1
  369. package/dist/atomic/p-bd109981.entry.js +0 -2
  370. package/dist/atomic/p-c12abafc.entry.js.map +0 -1
  371. package/dist/atomic/p-c265c67d.entry.js.map +0 -1
  372. package/dist/atomic/p-c74c1b41.entry.js.map +0 -1
  373. package/dist/atomic/p-c7971a2e.entry.js.map +0 -1
  374. package/dist/atomic/p-d178d2f7.js +0 -2
  375. package/dist/atomic/p-d178d2f7.js.map +0 -1
  376. package/dist/atomic/p-efb5a30c.js +0 -2
  377. package/dist/atomic/p-efb5a30c.js.map +0 -1
  378. package/dist/atomic/p-f0b5b6e1.js +0 -2
  379. package/dist/atomic/p-f0b5b6e1.js.map +0 -1
  380. package/dist/atomic/p-f96655f4.entry.js +0 -2
  381. package/dist/cjs/stencil-accessibility-utils-a5d1a814.js.map +0 -1
  382. package/dist/cjs/stencil-guard-caf49888.js.map +0 -1
  383. package/dist/cjs/stencil-item-list-common-5a566a7b.js.map +0 -1
  384. package/dist/cjs/stencil-link-f3ae19d0.js.map +0 -1
  385. package/dist/cjs/values-container-7f0fda83.js.map +0 -1
  386. package/dist/esm/stencil-accessibility-utils-b42ac309.js.map +0 -1
  387. package/dist/esm/stencil-guard-9329c8cd.js.map +0 -1
  388. package/dist/esm/stencil-item-list-common-9e3e9954.js.map +0 -1
  389. package/dist/esm/stencil-link-c0c35f94.js.map +0 -1
  390. package/dist/esm/values-container-51a6d0ae.js.map +0 -1
  391. package/dist/types/components/common/query-error/stencil-description.d.ts +0 -10
  392. package/dist/types/components/common/query-error/stencil-details.d.ts +0 -7
  393. package/dist/types/components/common/query-error/stencil-link.d.ts +0 -8
  394. package/dist/types/components/common/refine-modal/stencil-guard.d.ts +0 -8
  395. /package/dist/atomic/{p-af8999b1.entry.js.map → p-02996f86.entry.js.map} +0 -0
  396. /package/dist/atomic/{p-a15f6b8c.entry.js.map → p-02b28870.entry.js.map} +0 -0
  397. /package/dist/atomic/{p-59017e0a.entry.js.map → p-02ff6630.entry.js.map} +0 -0
  398. /package/dist/atomic/{p-e961a0cc.entry.js.map → p-040d11cd.entry.js.map} +0 -0
  399. /package/dist/atomic/{p-bc77fab7.entry.js.map → p-0bfe403b.entry.js.map} +0 -0
  400. /package/dist/atomic/{p-ec03a238.entry.js.map → p-0f925e7b.entry.js.map} +0 -0
  401. /package/dist/atomic/{p-6d264c97.entry.js.map → p-1b75ca01.entry.js.map} +0 -0
  402. /package/dist/atomic/{p-6c5524dc.entry.js.map → p-1dd886f0.entry.js.map} +0 -0
  403. /package/dist/atomic/{p-ceadf1e3.entry.js.map → p-25dcb619.entry.js.map} +0 -0
  404. /package/dist/atomic/{p-310c93bc.entry.js.map → p-2fb8ceed.entry.js.map} +0 -0
  405. /package/dist/atomic/{p-4e57cee1.entry.js.map → p-3a2d55e0.entry.js.map} +0 -0
  406. /package/dist/atomic/{p-4bf030d4.js.map → p-428f3e7d.js.map} +0 -0
  407. /package/dist/atomic/{p-ccff6c87.entry.js.map → p-4294c5fe.entry.js.map} +0 -0
  408. /package/dist/atomic/{p-d5c308fc.entry.js.map → p-4c0c78f8.entry.js.map} +0 -0
  409. /package/dist/atomic/{p-963a3e18.entry.js.map → p-4d2fc026.entry.js.map} +0 -0
  410. /package/dist/atomic/{p-bad08ec3.entry.js.map → p-5b9957c5.entry.js.map} +0 -0
  411. /package/dist/atomic/{p-d72e52b2.entry.js.map → p-5d7c5154.entry.js.map} +0 -0
  412. /package/dist/atomic/{p-b0be7782.entry.js.map → p-6a66eae4.entry.js.map} +0 -0
  413. /package/dist/atomic/{p-07cd7e4a.entry.js.map → p-6b1ae398.entry.js.map} +0 -0
  414. /package/dist/atomic/{p-39447826.entry.js.map → p-6ef0e47a.entry.js.map} +0 -0
  415. /package/dist/atomic/{p-9a161d8f.entry.js.map → p-73d43334.entry.js.map} +0 -0
  416. /package/dist/atomic/{p-c2f0ca36.js.map → p-7b4f6ed6.js.map} +0 -0
  417. /package/dist/atomic/{p-da578608.entry.js.map → p-80ae9ccd.entry.js.map} +0 -0
  418. /package/dist/atomic/{p-81874146.entry.js.map → p-83b3960c.entry.js.map} +0 -0
  419. /package/dist/atomic/{p-4af746a9.entry.js.map → p-8846dc8f.entry.js.map} +0 -0
  420. /package/dist/atomic/{p-7dd55462.entry.js.map → p-8f2b0293.entry.js.map} +0 -0
  421. /package/dist/atomic/{p-35400329.entry.js.map → p-95413559.entry.js.map} +0 -0
  422. /package/dist/atomic/{p-1243448d.entry.js.map → p-b5995e6b.entry.js.map} +0 -0
  423. /package/dist/atomic/{p-231c8300.entry.js.map → p-c0e280d2.entry.js.map} +0 -0
  424. /package/dist/atomic/{p-bb5c19a7.entry.js.map → p-c8e6b14a.entry.js.map} +0 -0
  425. /package/dist/atomic/{p-e36f1951.entry.js.map → p-cb3cbcc4.entry.js.map} +0 -0
  426. /package/dist/atomic/{p-cf12adcd.entry.js.map → p-cbb3cf8d.entry.js.map} +0 -0
  427. /package/dist/atomic/{p-5cf5bb98.entry.js.map → p-d2da75a3.entry.js.map} +0 -0
  428. /package/dist/atomic/{p-bd0aa08f.entry.js.map → p-d5d1af9b.entry.js.map} +0 -0
  429. /package/dist/atomic/{p-22fb593a.entry.js.map → p-d69d6868.entry.js.map} +0 -0
  430. /package/dist/atomic/{p-88bbf499.entry.js.map → p-d6b5512a.entry.js.map} +0 -0
  431. /package/dist/atomic/{p-6d083c4e.entry.js.map → p-d7727baa.entry.js.map} +0 -0
  432. /package/dist/atomic/{p-a535a268.entry.js.map → p-d9e69834.entry.js.map} +0 -0
  433. /package/dist/atomic/{p-7d1ca26f.entry.js.map → p-e68c18db.entry.js.map} +0 -0
  434. /package/dist/atomic/{p-57f53200.entry.js.map → p-e6b33bc5.entry.js.map} +0 -0
  435. /package/dist/atomic/{p-1c06ca0c.entry.js.map → p-e7a06049.entry.js.map} +0 -0
  436. /package/dist/atomic/{p-25a96534.js.map → p-f3c1c9a0.js.map} +0 -0
  437. /package/dist/atomic/{p-79e1bcc1.entry.js.map → p-f9e2e064.entry.js.map} +0 -0
  438. /package/dist/atomic/{p-3e5a304a.entry.js.map → p-fe10e968.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"atomic-query-error.js","mappings":";;;;;;AAAA,MAAM,mBAAmB,GAAG,0u1DAA0u1D,CAAC;AACvw1D,+BAAe,mBAAmB;;;;;;;;;;;;MCsCrBA,kBAAgB;;;;;QAQlB,iBAAY,GAAG,KAAK,CAAC;;;4BAAN,KAAK;;IAKtB,UAAU;QACf,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzD;IAEM,MAAM;QACX,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,MAAM,EACJ,QAAQ,EAAE,EACR,IAAI,EACJ,MAAM,EAAE,EACN,KAAK,EAAE,EACL,aAAa,EAAE,EAAC,cAAc,EAAE,WAAW,EAAC,GAC7C,GACF,GACF,GACF,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAC5C,IAAI,EACJ,cAAc,EACd,GAAG,EACH,KAAK,EAAE,IAAI,CACZ,CAAC;SACH;QACD,QACE,EAAC,eAAe,qDAAC,QAAQ,EAAE,QAAQ,IACjC,EAAC,mBAAmB,uDAClB,EAAC,cAAc,qDAAC,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC1C,EAAC,eAAe,qDACd,SAAS,EAAE,KAAK,EAAE,IAAI,EACtB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,GAC9B,EACF,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,KAAK,EAAE,IAAI,GACtB,EACF,EAAC,kBAAkB,qDACjB,IAAI,EAAE,EAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC5D,UAAU,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,IAAI,EAAE,IAAI,GACV,EACF,EAAC,iBAAiB,qDAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,GAAI,CACxC,CACN,EAClB;KACH;;;;;;;AA7D4B;IAA5B,kBAAkB,EAAE;oDAA4B;AAKzC;IAFP,qBAAqB,CAAC,YAAY,CAAC;2DAEM;AAKhC;IADT,cAAc,CAAC,aAAa,CAAC;uDACC;;;;;;;;;;;;;;;;;;;;","names":["AtomicQueryError"],"sources":["src/components/search/atomic-query-error/atomic-query-error.pcss?tag=atomic-query-error&encapsulation=shadow","src/components/search/atomic-query-error/atomic-query-error.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {\n QueryError,\n QueryErrorState,\n buildQueryError,\n getOrganizationEndpoint,\n} from '@coveo/headless';\nimport {Component, h, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {QueryErrorDetails} from '../../common/query-error/stencil-details';\nimport {QueryErrorIcon} from '../../common/query-error/icon';\nimport {QueryErrorShowMore} from '../../common/query-error/show-more';\nimport {QueryErrorContainer} from '../../common/query-error/stencil-container';\nimport {QueryErrorDescription} from '../../common/query-error/stencil-description';\nimport {QueryErrorGuard} from '../../common/query-error/stencil-guard';\nimport {QueryErrorTitle} from '../../common/query-error/title';\nimport {getAriaMessageFromErrorType} from '../../common/query-error/utils';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\nimport {QueryErrorLink} from '../../common/query-error/stencil-link';\n\n/**\n * The `atomic-query-error` component handles fatal errors when performing a query on the index or Search API. When the error is known, it displays a link to relevant documentation link for debugging purposes. When the error is unknown, it displays a small text area with the JSON content of the error.\n *\n * @part icon - The svg related to the error.\n * @part title - The title of the error.\n * @part description - A description of the error.\n * @part doc-link - A link to the relevant documentation.\n * @part more-info-btn - A button to request additional error information.\n * @part error-info - Additional error information.\n */\n@Component({\n tag: 'atomic-query-error',\n styleUrl: 'atomic-query-error.pcss',\n shadow: true,\n})\nexport class AtomicQueryError implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public queryError!: QueryError;\n\n @BindStateToController('queryError')\n @State()\n private queryErrorState!: QueryErrorState;\n @State() public error!: Error;\n @State() showMoreInfo = false;\n\n @AriaLiveRegion('query-error')\n protected ariaMessage!: string;\n\n public initialize() {\n this.queryError = buildQueryError(this.bindings.engine);\n }\n\n public render() {\n const {hasError, error} = this.queryErrorState;\n const {\n bindings: {\n i18n,\n engine: {\n state: {\n configuration: {organizationId, environment},\n },\n },\n },\n } = this;\n const url = getOrganizationEndpoint(organizationId, environment);\n if (hasError) {\n this.ariaMessage = getAriaMessageFromErrorType(\n i18n,\n organizationId,\n url,\n error?.type\n );\n }\n return (\n <QueryErrorGuard hasError={hasError}>\n <QueryErrorContainer>\n <QueryErrorIcon errorType={error?.type} />\n <QueryErrorTitle\n errorType={error?.type}\n i18n={i18n}\n organizationId={organizationId}\n />\n <QueryErrorDescription\n i18n={i18n}\n organizationId={organizationId}\n url={url}\n errorType={error?.type}\n />\n <QueryErrorShowMore\n link={<QueryErrorLink i18n={i18n} errorType={error?.type} />}\n onShowMore={() => (this.showMoreInfo = !this.showMoreInfo)}\n i18n={i18n}\n />\n <QueryErrorDetails error={error} show={this.showMoreInfo} />\n </QueryErrorContainer>\n </QueryErrorGuard>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-query-error.js","mappings":";;;;;;AAAA,MAAM,mBAAmB,GAAG,0u1DAA0u1D,CAAC;AACvw1D,+BAAe,mBAAmB;;;;;;;;;;;;MCsCrBA,kBAAgB;;;;;QAQlB,iBAAY,GAAG,KAAK,CAAC;;;4BAAN,KAAK;;IAKtB,UAAU;QACf,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzD;IAEM,MAAM;QACX,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,MAAM,EACJ,QAAQ,EAAE,EACR,IAAI,EACJ,MAAM,EAAE,EACN,KAAK,EAAE,EACL,aAAa,EAAE,EAAC,cAAc,EAAE,WAAW,EAAC,GAC7C,GACF,GACF,GACF,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAC5C,IAAI,EACJ,cAAc,EACd,GAAG,EACH,KAAK,EAAE,IAAI,CACZ,CAAC;SACH;QACD,QACE,EAAC,eAAe,qDAAC,QAAQ,EAAE,QAAQ,IACjC,EAAC,mBAAmB,uDAClB,EAAC,cAAc,qDAAC,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC1C,EAAC,eAAe,qDACd,SAAS,EAAE,KAAK,EAAE,IAAI,EACtB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,GAC9B,EACF,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,KAAK,EAAE,IAAI,GACtB,EACF,EAAC,kBAAkB,qDACjB,IAAI,EAAE,EAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC5D,UAAU,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,IAAI,EAAE,IAAI,GACV,EACF,EAAC,iBAAiB,qDAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,GAAI,CACxC,CACN,EAClB;KACH;;;;;;;AA7D4B;IAA5B,kBAAkB,EAAE;oDAA4B;AAKzC;IAFP,qBAAqB,CAAC,YAAY,CAAC;2DAEM;AAKhC;IADT,cAAc,CAAC,aAAa,CAAC;uDACC;;;;;;;;;;;;;;;;;;;;","names":["AtomicQueryError"],"sources":["src/components/search/atomic-query-error/atomic-query-error.pcss?tag=atomic-query-error&encapsulation=shadow","src/components/search/atomic-query-error/atomic-query-error.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {\n QueryError,\n QueryErrorState,\n buildQueryError,\n getOrganizationEndpoint,\n} from '@coveo/headless';\nimport {Component, h, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {QueryErrorDescription} from '../../common/query-error/description';\nimport {QueryErrorDetails} from '../../common/query-error/details';\nimport {QueryErrorIcon} from '../../common/query-error/icon';\nimport {QueryErrorLink} from '../../common/query-error/link';\nimport {QueryErrorShowMore} from '../../common/query-error/show-more';\nimport {QueryErrorContainer} from '../../common/query-error/stencil-container';\nimport {QueryErrorGuard} from '../../common/query-error/stencil-guard';\nimport {QueryErrorTitle} from '../../common/query-error/title';\nimport {getAriaMessageFromErrorType} from '../../common/query-error/utils';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-query-error` component handles fatal errors when performing a query on the index or Search API. When the error is known, it displays a link to relevant documentation link for debugging purposes. When the error is unknown, it displays a small text area with the JSON content of the error.\n *\n * @part icon - The svg related to the error.\n * @part title - The title of the error.\n * @part description - A description of the error.\n * @part doc-link - A link to the relevant documentation.\n * @part more-info-btn - A button to request additional error information.\n * @part error-info - Additional error information.\n */\n@Component({\n tag: 'atomic-query-error',\n styleUrl: 'atomic-query-error.pcss',\n shadow: true,\n})\nexport class AtomicQueryError implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public queryError!: QueryError;\n\n @BindStateToController('queryError')\n @State()\n private queryErrorState!: QueryErrorState;\n @State() public error!: Error;\n @State() showMoreInfo = false;\n\n @AriaLiveRegion('query-error')\n protected ariaMessage!: string;\n\n public initialize() {\n this.queryError = buildQueryError(this.bindings.engine);\n }\n\n public render() {\n const {hasError, error} = this.queryErrorState;\n const {\n bindings: {\n i18n,\n engine: {\n state: {\n configuration: {organizationId, environment},\n },\n },\n },\n } = this;\n const url = getOrganizationEndpoint(organizationId, environment);\n if (hasError) {\n this.ariaMessage = getAriaMessageFromErrorType(\n i18n,\n organizationId,\n url,\n error?.type\n );\n }\n return (\n <QueryErrorGuard hasError={hasError}>\n <QueryErrorContainer>\n <QueryErrorIcon errorType={error?.type} />\n <QueryErrorTitle\n errorType={error?.type}\n i18n={i18n}\n organizationId={organizationId}\n />\n <QueryErrorDescription\n i18n={i18n}\n organizationId={organizationId}\n url={url}\n errorType={error?.type}\n />\n <QueryErrorShowMore\n link={<QueryErrorLink i18n={i18n} errorType={error?.type} />}\n onShowMore={() => (this.showMoreInfo = !this.showMoreInfo)}\n i18n={i18n}\n />\n <QueryErrorDetails error={error} show={this.showMoreInfo} />\n </QueryErrorContainer>\n </QueryErrorGuard>\n );\n }\n}\n"],"version":3}
@@ -3,7 +3,7 @@ import { isNullOrUndefined } from '@coveo/bueno';
3
3
  import { buildRecommendationList, getOrganizationEndpoint } from '@coveo/headless/recommendation';
4
4
  import { I as InitializeBindings, B as BindStateToController } from './initialization-utils.js';
5
5
  import { A as AriaLiveRegion } from './stencil-accessibility-utils.js';
6
- import { g as getAriaMessageFromErrorType, Q as QueryErrorGuard, a as QueryErrorContainer, b as QueryErrorIcon, c as QueryErrorTitle, d as QueryErrorDescription, e as QueryErrorShowMore, f as QueryErrorLink, h as QueryErrorDetails } from './stencil-link.js';
6
+ import { g as getAriaMessageFromErrorType, Q as QueryErrorGuard, a as QueryErrorContainer, b as QueryErrorIcon, c as QueryErrorTitle, d as QueryErrorDescription, e as QueryErrorShowMore, f as QueryErrorLink, h as QueryErrorDetails } from './title.js';
7
7
 
8
8
  const atomicRecsErrorCss = "/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */\n@layer properties;\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', '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 :-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: rect(0, 0, 0, 0);\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 .-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\\.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 .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-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 .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-28 {\n width: calc(0.25rem * 28);\n }\n .w-32 {\n width: calc(0.25rem * 32);\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-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 .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-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-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-background {\n background-color: var(--atomic-background);\n }\n .bg-error {\n background-color: var(--atomic-error);\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 .fill-current {\n fill: currentcolor;\n }\n .stroke-\\[1\\.25\\] {\n stroke-width: 1.25;\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-5 {\n padding-block: calc(0.25rem * 5);\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-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 .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-\\[calc\\(1\\/\\.75\\)\\] {\n --tw-leading: calc(1 / .75);\n line-height: calc(1 / .75);\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-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-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-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 .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, visibility, 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-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 .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 @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 @media (hover: hover) {\n .peer-hover\\:text-error:is(:where(.peer):hover ~ *) {\n color: var(--atomic-error);\n }\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 content: var(--tw-content);\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 *, ::after, ::before, ::backdrop, ::file-selector-button {\n border-color: oklch(0.928 0.006 264.531);\n }\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@keyframes scaleUp {\n 0% {\n transform: scale(0.7) translateY(150vh);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1) translateY(0px);\n opacity: 1;\n }\n}\n@keyframes slideDown {\n 0% {\n transform: translateY(0px);\n opacity: 1;\n }\n 100% {\n transform: translateY(150vh);\n opacity: 0.7;\n }\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-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@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-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";
9
9
  const AtomicRecsErrorStyle0 = atomicRecsErrorCss;
@@ -39,7 +39,7 @@ const AtomicRecsError$1 = /*@__PURE__*/ proxyCustomElement(class AtomicRecsError
39
39
  if (hasError) {
40
40
  this.ariaMessage = getAriaMessageFromErrorType(i18n, organizationId, url, error?.type);
41
41
  }
42
- return (h(QueryErrorGuard, { key: '86c8e0b5d38b69b1366b240a0416b214a05d9f3a', hasError: hasError }, h(QueryErrorContainer, { key: 'e19da6ebd28c8790307a644995266cbfc857263f' }, h(QueryErrorIcon, { key: '7df47ff404d975cc1e48e56f666c70664c1c15b0', errorType: error?.type }), h(QueryErrorTitle, { key: '8568170b5fc98390c29b447b713ae4f353162987', i18n: i18n, organizationId: organizationId }), h(QueryErrorDescription, { key: '4aa7a53d26cfdc7932628f938433ee535d26b534', i18n: i18n, organizationId: organizationId, url: url }), h(QueryErrorShowMore, { key: '1fc39d3f1ac262296b537d8e92623ab7ff3ab8b0', link: h(QueryErrorLink, { i18n: i18n, errorType: error?.type }), onShowMore: () => (this.showMoreInfo = !this.showMoreInfo), i18n: i18n }), h(QueryErrorDetails, { key: 'a35671420656a2d2540f643598d4e0f84f55ba89', error: error, show: this.showMoreInfo }))));
42
+ return (h(QueryErrorGuard, { key: 'd87a0628d62dbacdb15351d2a86d29bf5b21e907', hasError: hasError }, h(QueryErrorContainer, { key: '7f18f1bf7910c75468b2d8ea4cc93ee7dfe0b82e' }, h(QueryErrorIcon, { key: 'e484a6702621484ea1eb2450ae3e17617212640b', errorType: error?.type }), h(QueryErrorTitle, { key: '082463a436e783ec19096e27cfdd48586180b24b', i18n: i18n, organizationId: organizationId }), h(QueryErrorDescription, { key: 'f83d4cb649ba780735e5ee17a83c9510e7d1224f', i18n: i18n, organizationId: organizationId, url: url }), h(QueryErrorShowMore, { key: 'e2f18d38fe42f4f6614ca56750b6916ba9518113', link: h(QueryErrorLink, { i18n: i18n, errorType: error?.type }), onShowMore: () => (this.showMoreInfo = !this.showMoreInfo), i18n: i18n }), h(QueryErrorDetails, { key: '7d5dc152c7ebb0999859d83eac82c16fd6ffead5', error: error, show: this.showMoreInfo }))));
43
43
  }
44
44
  static get style() { return AtomicRecsErrorStyle0; }
45
45
  }, [1, "atomic-recs-error", {
@@ -1 +1 @@
1
- {"file":"atomic-recs-error.js","mappings":";;;;;;;AAAA,MAAM,kBAAkB,GAAG,0u1DAA0u1D,CAAC;AACtw1D,8BAAe,kBAAkB;;;;;;;;;;;;MCuCpBA,iBAAe;;;;;QAQjB,iBAAY,GAAG,KAAK,CAAC;;;4BAAN,KAAK;;IAKtB,UAAU;QACf,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzE;IAEM,MAAM;QACX,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAE7C,MAAM,EACJ,QAAQ,EAAE,EACR,IAAI,EACJ,MAAM,EAAE,EACN,KAAK,EAAE,EACL,aAAa,EAAE,EAAC,cAAc,EAAE,WAAW,EAAC,GAC7C,GACF,GACF,GACF,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAC5C,IAAI,EACJ,cAAc,EACd,GAAG,EACH,KAAK,EAAE,IAAI,CACZ,CAAC;SACH;QAED,QACE,EAAC,eAAe,qDAAC,QAAQ,EAAE,QAAQ,IACjC,EAAC,mBAAmB,uDAClB,EAAC,cAAc,qDAAC,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC1C,EAAC,eAAe,qDAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAI,EAC/D,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,GACR,EACF,EAAC,kBAAkB,qDACjB,IAAI,EAAE,EAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC5D,UAAU,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,IAAI,EAAE,IAAI,GACV,EACF,EAAC,iBAAiB,qDAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,GAAI,CACxC,CACN,EAClB;KACH;;;;;;;AA5D4B;IAA5B,kBAAkB,EAAE;mDAAgC;AAK9C;IAFN,qBAAqB,CAAC,oBAAoB,CAAC;kEAEa;AAK/C;IADT,cAAc,CAAC,YAAY,CAAC;sDACE;;;;;;;;;;;;;;;;;;;;","names":["AtomicRecsError"],"sources":["src/components/recommendations/atomic-recs-error/atomic-recs-error.pcss?tag=atomic-recs-error&encapsulation=shadow","src/components/recommendations/atomic-recs-error/atomic-recs-error.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {isNullOrUndefined} from '@coveo/bueno';\nimport {\n buildRecommendationList,\n getOrganizationEndpoint,\n RecommendationList,\n RecommendationListState,\n} from '@coveo/headless/recommendation';\nimport {Component, h, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {QueryErrorDetails} from '../../common/query-error/stencil-details';\nimport {QueryErrorIcon} from '../../common/query-error/icon';\nimport {QueryErrorShowMore} from '../../common/query-error/show-more';\nimport {QueryErrorContainer} from '../../common/query-error/stencil-container';\nimport {QueryErrorDescription} from '../../common/query-error/stencil-description';\nimport {QueryErrorGuard} from '../../common/query-error/stencil-guard';\nimport {QueryErrorTitle} from '../../common/query-error/title';\nimport {getAriaMessageFromErrorType} from '../../common/query-error/utils';\nimport {RecsBindings} from '../atomic-recs-interface/atomic-recs-interface';\nimport {QueryErrorLink} from '../../common/query-error/stencil-link';\n\n/**\n * The `atomic-recs-error` component handles fatal errors when performing a recommendations request on the index or Search API. When the error is known, it displays a link to relevant documentation link for debugging purposes. When the error is unknown, it displays a small text area with the JSON content of the error.\n *\n * @part icon - The svg related to the error.\n * @part title - The title of the error.\n * @part description - A description of the error.\n * @part doc-link - A link to the relevant documentation.\n * @part more-info-btn - A button to request additional error information.\n * @part error-info - Additional error information.\n */\n@Component({\n tag: 'atomic-recs-error',\n styleUrl: 'atomic-recs-error.pcss',\n shadow: true,\n})\nexport class AtomicRecsError implements InitializableComponent<RecsBindings> {\n @InitializeBindings() public bindings!: RecsBindings;\n public recommendationList!: RecommendationList;\n\n @BindStateToController('recommendationList')\n @State()\n public recommendationListState!: RecommendationListState;\n @State() public error!: Error;\n @State() showMoreInfo = false;\n\n @AriaLiveRegion('recs-error')\n protected ariaMessage!: string;\n\n public initialize() {\n this.recommendationList = buildRecommendationList(this.bindings.engine);\n }\n\n public render() {\n const {error} = this.recommendationListState;\n\n const {\n bindings: {\n i18n,\n engine: {\n state: {\n configuration: {organizationId, environment},\n },\n },\n },\n } = this;\n const url = getOrganizationEndpoint(organizationId, environment);\n const hasError = !isNullOrUndefined(error);\n\n if (hasError) {\n this.ariaMessage = getAriaMessageFromErrorType(\n i18n,\n organizationId,\n url,\n error?.type\n );\n }\n\n return (\n <QueryErrorGuard hasError={hasError}>\n <QueryErrorContainer>\n <QueryErrorIcon errorType={error?.type} />\n <QueryErrorTitle i18n={i18n} organizationId={organizationId} />\n <QueryErrorDescription\n i18n={i18n}\n organizationId={organizationId}\n url={url}\n />\n <QueryErrorShowMore\n link={<QueryErrorLink i18n={i18n} errorType={error?.type} />}\n onShowMore={() => (this.showMoreInfo = !this.showMoreInfo)}\n i18n={i18n}\n />\n <QueryErrorDetails error={error} show={this.showMoreInfo} />\n </QueryErrorContainer>\n </QueryErrorGuard>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-recs-error.js","mappings":";;;;;;;AAAA,MAAM,kBAAkB,GAAG,0u1DAA0u1D,CAAC;AACtw1D,8BAAe,kBAAkB;;;;;;;;;;;;MCuCpBA,iBAAe;;;;;QAQjB,iBAAY,GAAG,KAAK,CAAC;;;4BAAN,KAAK;;IAKtB,UAAU;QACf,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzE;IAEM,MAAM;QACX,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAE7C,MAAM,EACJ,QAAQ,EAAE,EACR,IAAI,EACJ,MAAM,EAAE,EACN,KAAK,EAAE,EACL,aAAa,EAAE,EAAC,cAAc,EAAE,WAAW,EAAC,GAC7C,GACF,GACF,GACF,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAC5C,IAAI,EACJ,cAAc,EACd,GAAG,EACH,KAAK,EAAE,IAAI,CACZ,CAAC;SACH;QAED,QACE,EAAC,eAAe,qDAAC,QAAQ,EAAE,QAAQ,IACjC,EAAC,mBAAmB,uDAClB,EAAC,cAAc,qDAAC,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC1C,EAAC,eAAe,qDAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAI,EAC/D,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,GACR,EACF,EAAC,kBAAkB,qDACjB,IAAI,EAAE,EAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC5D,UAAU,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,IAAI,EAAE,IAAI,GACV,EACF,EAAC,iBAAiB,qDAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,GAAI,CACxC,CACN,EAClB;KACH;;;;;;;AA5D4B;IAA5B,kBAAkB,EAAE;mDAAgC;AAK9C;IAFN,qBAAqB,CAAC,oBAAoB,CAAC;kEAEa;AAK/C;IADT,cAAc,CAAC,YAAY,CAAC;sDACE;;;;;;;;;;;;;;;;;;;;","names":["AtomicRecsError"],"sources":["src/components/recommendations/atomic-recs-error/atomic-recs-error.pcss?tag=atomic-recs-error&encapsulation=shadow","src/components/recommendations/atomic-recs-error/atomic-recs-error.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {isNullOrUndefined} from '@coveo/bueno';\nimport {\n buildRecommendationList,\n getOrganizationEndpoint,\n RecommendationList,\n RecommendationListState,\n} from '@coveo/headless/recommendation';\nimport {Component, h, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {QueryErrorDescription} from '../../common/query-error/description';\nimport {QueryErrorDetails} from '../../common/query-error/details';\nimport {QueryErrorIcon} from '../../common/query-error/icon';\nimport {QueryErrorLink} from '../../common/query-error/link';\nimport {QueryErrorShowMore} from '../../common/query-error/show-more';\nimport {QueryErrorContainer} from '../../common/query-error/stencil-container';\nimport {QueryErrorGuard} from '../../common/query-error/stencil-guard';\nimport {QueryErrorTitle} from '../../common/query-error/title';\nimport {getAriaMessageFromErrorType} from '../../common/query-error/utils';\nimport {RecsBindings} from '../atomic-recs-interface/atomic-recs-interface';\n\n/**\n * The `atomic-recs-error` component handles fatal errors when performing a recommendations request on the index or Search API. When the error is known, it displays a link to relevant documentation link for debugging purposes. When the error is unknown, it displays a small text area with the JSON content of the error.\n *\n * @part icon - The svg related to the error.\n * @part title - The title of the error.\n * @part description - A description of the error.\n * @part doc-link - A link to the relevant documentation.\n * @part more-info-btn - A button to request additional error information.\n * @part error-info - Additional error information.\n */\n@Component({\n tag: 'atomic-recs-error',\n styleUrl: 'atomic-recs-error.pcss',\n shadow: true,\n})\nexport class AtomicRecsError implements InitializableComponent<RecsBindings> {\n @InitializeBindings() public bindings!: RecsBindings;\n public recommendationList!: RecommendationList;\n\n @BindStateToController('recommendationList')\n @State()\n public recommendationListState!: RecommendationListState;\n @State() public error!: Error;\n @State() showMoreInfo = false;\n\n @AriaLiveRegion('recs-error')\n protected ariaMessage!: string;\n\n public initialize() {\n this.recommendationList = buildRecommendationList(this.bindings.engine);\n }\n\n public render() {\n const {error} = this.recommendationListState;\n\n const {\n bindings: {\n i18n,\n engine: {\n state: {\n configuration: {organizationId, environment},\n },\n },\n },\n } = this;\n const url = getOrganizationEndpoint(organizationId, environment);\n const hasError = !isNullOrUndefined(error);\n\n if (hasError) {\n this.ariaMessage = getAriaMessageFromErrorType(\n i18n,\n organizationId,\n url,\n error?.type\n );\n }\n\n return (\n <QueryErrorGuard hasError={hasError}>\n <QueryErrorContainer>\n <QueryErrorIcon errorType={error?.type} />\n <QueryErrorTitle i18n={i18n} organizationId={organizationId} />\n <QueryErrorDescription\n i18n={i18n}\n organizationId={organizationId}\n url={url}\n />\n <QueryErrorShowMore\n link={<QueryErrorLink i18n={i18n} errorType={error?.type} />}\n onShowMore={() => (this.showMoreInfo = !this.showMoreInfo)}\n i18n={i18n}\n />\n <QueryErrorDetails error={error} show={this.showMoreInfo} />\n </QueryErrorContainer>\n </QueryErrorGuard>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
2
  import { buildSearchStatus } from '@coveo/headless';
3
3
  import { I as InitializeBindings, B as BindStateToController } from './initialization-utils.js';
4
- import { R as RefineToggleGuard, a as RefineToggleButton } from './stencil-guard.js';
4
+ import { R as RefineToggleGuard, a as RefineToggleButton } from './stencil-button2.js';
5
5
  import { d as defineCustomElement$6 } from './atomic-automatic-facet2.js';
6
6
  import { d as defineCustomElement$5 } from './atomic-automatic-facet-generator2.js';
7
7
  import { d as defineCustomElement$4 } from './atomic-focus-trap2.js';
@@ -53,7 +53,7 @@ const AtomicRefineToggle$1 = /*@__PURE__*/ proxyCustomElement(class AtomicRefine
53
53
  this.modalRef && (this.modalRef.isOpen = true);
54
54
  }
55
55
  render() {
56
- return (h(RefineToggleGuard, { key: '276acb5f7fc7b2a3552b795b087a5e8a6f5fda31', firstRequestExecuted: this.searchStatusState.firstSearchExecuted, hasError: this.searchStatusState.hasError, hasItems: this.searchStatusState.hasResults }, h(RefineToggleButton, { key: 'b2d426789aafd70fbe849713cafd1cdd560be31c', i18n: this.bindings.i18n, onClick: () => this.enableModal(), setRef: (button) => {
56
+ return (h(RefineToggleGuard, { key: 'a79231544904327fc9cc657fc32a908dde6f9849', firstRequestExecuted: this.searchStatusState.firstSearchExecuted, hasError: this.searchStatusState.hasError, hasItems: this.searchStatusState.hasResults }, h(RefineToggleButton, { key: '18cf9d3ea4f2e0a163f65eb8432f7f8a2f524453', i18n: this.bindings.i18n, onClick: () => this.enableModal(), setRef: (button) => {
57
57
  if (!button) {
58
58
  return;
59
59
  }
@@ -1 +1 @@
1
- {"file":"atomic-refine-toggle.js","mappings":";;;;;;;;;;AAAA,MAAM,qBAAqB,GAAG,0u1DAA0u1D,CAAC;AACzw1D,iCAAe,qBAAqB;;;;;;;;;;;;MCyBvBA,oBAAkB;;;;;;;;;;;QAkBC,wBAAmB,GAAG,CAAC,CAAC;;;mCAAF,CAAC;;IAE9C,UAAU;QACf,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC7D;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;KAC9D;IAEO,WAAW;QACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAChD;IAEM,MAAM;QACX,QACE,EAAC,iBAAiB,qDAChB,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAChE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EACzC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAE3C,EAAC,kBAAkB,qDACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EACxB,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACjC,MAAM,EAAE,CAAC,MAAM;gBACb,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO;iBACR;gBACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB,GACD,CACgB,EACpB;KACH;;;;;;;;AArD4B;IAA5B,kBAAkB,EAAE;sDAA4B;AAIzC;IAFP,qBAAqB,CAAC,cAAc,CAAC;+DAEQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AtomicRefineToggle"],"sources":["src/components/search/atomic-refine-toggle/atomic-refine-toggle.pcss?tag=atomic-refine-toggle&encapsulation=shadow","src/components/search/atomic-refine-toggle/atomic-refine-toggle.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {\n buildSearchStatus,\n SearchStatusState,\n SearchStatus,\n} from '@coveo/headless';\nimport {Component, h, Prop, State, Element} from '@stencil/core';\nimport {\n InitializeBindings,\n InitializableComponent,\n BindStateToController,\n} from '../../../utils/initialization-utils';\nimport {RefineToggleButton} from '../../common/refine-modal/stencil-button';\nimport {RefineToggleGuard} from '../../common/refine-modal/stencil-guard';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-refine-toggle` component displays a button that opens a modal containing the facets and the sort components.\n *\n * When this component is added to the `atomic-search-interface`, an `atomic-refine-modal` component is automatically created.\n * @part button - The refine toggle button.\n */\n@Component({\n tag: 'atomic-refine-toggle',\n styleUrl: 'atomic-refine-toggle.pcss',\n shadow: true,\n})\nexport class AtomicRefineToggle implements InitializableComponent {\n @Element() public host!: HTMLElement;\n public searchStatus!: SearchStatus;\n private modalRef?: HTMLAtomicRefineModalElement;\n private buttonRef?: HTMLButtonElement;\n\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n\n /**\n * The number of expanded facets inside the refine modal.\n * Remaining facets are automatically collapsed.\n *\n * Using the value `0` collapses all facets.\n */\n @Prop({reflect: true}) public collapseFacetsAfter = 0;\n\n public initialize() {\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n }\n\n private loadModal() {\n if (this.modalRef) {\n return;\n }\n\n this.modalRef = document.createElement('atomic-refine-modal');\n this.host.insertAdjacentElement('beforebegin', this.modalRef);\n this.modalRef.openButton = this.buttonRef;\n this.modalRef.collapseFacetsAfter = this.collapseFacetsAfter;\n }\n\n private enableModal() {\n this.modalRef && (this.modalRef.isOpen = true);\n }\n\n public render() {\n return (\n <RefineToggleGuard\n firstRequestExecuted={this.searchStatusState.firstSearchExecuted}\n hasError={this.searchStatusState.hasError}\n hasItems={this.searchStatusState.hasResults}\n >\n <RefineToggleButton\n i18n={this.bindings.i18n}\n onClick={() => this.enableModal()}\n setRef={(button) => {\n if (!button) {\n return;\n }\n this.buttonRef = button;\n this.loadModal();\n }}\n />\n </RefineToggleGuard>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-refine-toggle.js","mappings":";;;;;;;;;;AAAA,MAAM,qBAAqB,GAAG,0u1DAA0u1D,CAAC;AACzw1D,iCAAe,qBAAqB;;;;;;;;;;;;MCyBvBA,oBAAkB;;;;;;;;;;;QAkBC,wBAAmB,GAAG,CAAC,CAAC;;;mCAAF,CAAC;;IAE9C,UAAU;QACf,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC7D;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;KAC9D;IAEO,WAAW;QACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAChD;IAEM,MAAM;QACX,QACE,EAAC,iBAAiB,qDAChB,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAChE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EACzC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAE3C,EAAC,kBAAkB,qDACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EACxB,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACjC,MAAM,EAAE,CAAC,MAAM;gBACb,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO;iBACR;gBACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB,GACD,CACgB,EACpB;KACH;;;;;;;;AArD4B;IAA5B,kBAAkB,EAAE;sDAA4B;AAIzC;IAFP,qBAAqB,CAAC,cAAc,CAAC;+DAEQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AtomicRefineToggle"],"sources":["src/components/search/atomic-refine-toggle/atomic-refine-toggle.pcss?tag=atomic-refine-toggle&encapsulation=shadow","src/components/search/atomic-refine-toggle/atomic-refine-toggle.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {\n buildSearchStatus,\n SearchStatusState,\n SearchStatus,\n} from '@coveo/headless';\nimport {Component, h, Prop, State, Element} from '@stencil/core';\nimport {\n InitializeBindings,\n InitializableComponent,\n BindStateToController,\n} from '../../../utils/initialization-utils';\nimport {RefineToggleGuard} from '../../common/refine-modal/guard';\nimport {RefineToggleButton} from '../../common/refine-modal/stencil-button';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-refine-toggle` component displays a button that opens a modal containing the facets and the sort components.\n *\n * When this component is added to the `atomic-search-interface`, an `atomic-refine-modal` component is automatically created.\n * @part button - The refine toggle button.\n */\n@Component({\n tag: 'atomic-refine-toggle',\n styleUrl: 'atomic-refine-toggle.pcss',\n shadow: true,\n})\nexport class AtomicRefineToggle implements InitializableComponent {\n @Element() public host!: HTMLElement;\n public searchStatus!: SearchStatus;\n private modalRef?: HTMLAtomicRefineModalElement;\n private buttonRef?: HTMLButtonElement;\n\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n\n /**\n * The number of expanded facets inside the refine modal.\n * Remaining facets are automatically collapsed.\n *\n * Using the value `0` collapses all facets.\n */\n @Prop({reflect: true}) public collapseFacetsAfter = 0;\n\n public initialize() {\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n }\n\n private loadModal() {\n if (this.modalRef) {\n return;\n }\n\n this.modalRef = document.createElement('atomic-refine-modal');\n this.host.insertAdjacentElement('beforebegin', this.modalRef);\n this.modalRef.openButton = this.buttonRef;\n this.modalRef.collapseFacetsAfter = this.collapseFacetsAfter;\n }\n\n private enableModal() {\n this.modalRef && (this.modalRef.isOpen = true);\n }\n\n public render() {\n return (\n <RefineToggleGuard\n firstRequestExecuted={this.searchStatusState.firstSearchExecuted}\n hasError={this.searchStatusState.hasError}\n hasItems={this.searchStatusState.hasResults}\n >\n <RefineToggleButton\n i18n={this.bindings.i18n}\n onClick={() => this.enableModal()}\n setRef={(button) => {\n if (!button) {\n return;\n }\n this.buttonRef = button;\n this.loadModal();\n }}\n />\n </RefineToggleGuard>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
2
2
  import { ResultTemplatesHelpers } from '@coveo/headless';
3
3
  import { I as InitializeBindings } from './initialization-utils.js';
4
- import { b as defaultNumberFormatter } from './format-common.js';
4
+ import { a as defaultNumberFormatter } from './format-common.js';
5
5
  import { R as ResultContext } from './result-template-decorators.js';
6
6
 
7
7
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -190,6 +190,17 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
190
190
  i18n: this.i18n,
191
191
  store: this.store,
192
192
  interfaceElement: this,
193
+ addAdoptedStyleSheets: (stylesheet) => {
194
+ // TODO: KIT-4333: remove and only keep decorator
195
+ const parent = this.getRootNode();
196
+ const styleSheet = stylesheet;
197
+ const isDocumentOrShadowRoot = parent instanceof Document || parent instanceof ShadowRoot;
198
+ if (styleSheet &&
199
+ isDocumentOrShadowRoot &&
200
+ !parent.adoptedStyleSheets.includes(styleSheet)) {
201
+ parent.adoptedStyleSheets.push(styleSheet);
202
+ }
203
+ },
193
204
  };
194
205
  }
195
206
  initEngine(options) {
@@ -1,5 +1,4 @@
1
1
  // Auto-generated file
2
- export { AtomicCommerceBreadbox } from './atomic-commerce-breadbox/atomic-commerce-breadbox.js';
3
2
  export { AtomicCommerceInterface } from './atomic-commerce-interface/atomic-commerce-interface.js';
4
3
  export { AtomicCommerceLayout } from './atomic-commerce-layout/atomic-commerce-layout.js';
5
4
  export { AtomicCommercePager } from './atomic-commerce-pager/atomic-commerce-pager.js';
@@ -1,6 +1,5 @@
1
1
  // Auto-generated file
2
2
  export default {
3
- 'atomic-commerce-breadbox': async () => await import('./atomic-commerce-breadbox/atomic-commerce-breadbox.js'),
4
3
  'atomic-commerce-interface': async () => await import('./atomic-commerce-interface/atomic-commerce-interface.js'),
5
4
  'atomic-commerce-layout': async () => await import('./atomic-commerce-layout/atomic-commerce-layout.js'),
6
5
  'atomic-commerce-pager': async () => await import('./atomic-commerce-pager/atomic-commerce-pager.js'),
@@ -8,9 +8,6 @@ export class ItemListCommon {
8
8
  this.props.store.setLoadingFlag(this.props.loadingFlag);
9
9
  this.props.store.state.resultList = this;
10
10
  this.updateBreakpointsOnce = once(() => updateBreakpoints(this.props.host));
11
- this.props.nextNewItemTarget.registerFocusCallback(() => {
12
- this.indexOfResultToFocus = undefined;
13
- });
14
11
  }
15
12
  updateBreakpoints() {
16
13
  this.updateBreakpointsOnce();
@@ -1,19 +1,3 @@
1
- /**
2
- * Decorator to inject styles into components that do not use Shadow DOM.
3
- *
4
- * This decorator is intended for LitElement-based components that render in the light DOM (i.e., without a shadow root).
5
- * It ensures that the component's styles (provided as static `styles` property) are injected into the document or shadow root using `adoptedStyleSheets`.
6
- *
7
- * Usage:
8
- * @injectStylesForNoShadowDOM
9
- * class MyComponent extends LitElement { ... }
10
- *
11
- * - Ensures styles are applied even when Shadow DOM is not used.
12
- * - Prevents duplicate style injection by checking for existing style sheets.
13
- * - Calls the original `connectedCallback` and `createRenderRoot` methods.
14
- *
15
- * @template T - A LitElement constructor with a static `styles` property.
16
- */
17
1
  export const injectStylesForNoShadowDOM = (Base) => {
18
2
  return class extends Base {
19
3
  createRenderRoot() {
@@ -15,6 +15,6 @@ const defaultCurrencyFormatter = (currency) => (value, languages) => {
15
15
  });
16
16
  };
17
17
 
18
- export { dispatchNumberFormatEvent as a, defaultNumberFormatter as b, defaultCurrencyFormatter as d };
18
+ export { defaultNumberFormatter as a, dispatchNumberFormatEvent as b, defaultCurrencyFormatter as d };
19
19
 
20
20
  //# sourceMappingURL=format-common.js.map
@@ -1,5 +1,6 @@
1
- import { getFieldValueCaption } from '../../../../utils/field-utils';
2
- export const formatHumanReadable = ({ manualRanges, field, i18n, facetValue, logger, formatter, }) => {
1
+ import { g as getFieldValueCaption } from './field-utils.js';
2
+
3
+ const formatHumanReadable = ({ manualRanges, field, i18n, facetValue, logger, formatter, }) => {
3
4
  const manualRangeLabel = manualRanges.find((range) => areRangesEqual(range, facetValue))?.label;
4
5
  return manualRangeLabel
5
6
  ? getFieldValueCaption(field, manualRangeLabel, i18n)
@@ -8,7 +9,7 @@ export const formatHumanReadable = ({ manualRanges, field, i18n, facetValue, log
8
9
  end: formatNumberLocalized(facetValue.end, i18n, logger, formatter),
9
10
  });
10
11
  };
11
- export const formatNumberLocalized = (value, i18n, logger, formatter) => {
12
+ const formatNumberLocalized = (value, i18n, logger, formatter) => {
12
13
  try {
13
14
  return formatter(value, i18n.languages);
14
15
  }
@@ -22,3 +23,7 @@ const areRangesEqual = (firstRange, secondRange) => {
22
23
  firstRange.end === secondRange.end &&
23
24
  firstRange.endInclusive === secondRange.endInclusive);
24
25
  };
26
+
27
+ export { formatHumanReadable as f };
28
+
29
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"file":"formatter.js","mappings":";;MAqBa,mBAAmB,GAAG,CAAC,EAClC,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,MAAM,EACN,SAAS,GACa;IACtB,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,KAC/C,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAClC,EAAE,KAAK,CAAC;IACT,OAAO,gBAAgB;UACnB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC;UACnD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;YACX,KAAK,EAAE,qBAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;YACvE,GAAG,EAAE,qBAAqB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;SACpE,CAAC,CAAC;AACT,EAAE;AAEK,MAAM,qBAAqB,GAAG,CACnC,KAAa,EACb,IAAmC,EACnC,MAAuC,EACvC,SAA6C;IAE7C,IAAI;QACF,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAqB,CAAC,CAAC;KACrD;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CACV,qCAAqC,KAAK,qCAAqC,EAC/E,KAAK,CACN,CAAC;QACF,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,UAA2B,EAC3B,WAA4B;IAE5B,QACE,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;QACtC,UAAU,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG;QAClC,UAAU,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,EACpD;AACJ,CAAC;;;;","names":[],"sources":["src/components/common/facets/numeric-facet/formatter.ts"],"sourcesContent":["import {i18n} from 'i18next';\nimport {getFieldValueCaption} from '../../../../utils/field-utils';\nimport {NumberFormatter} from '../../formats/format-common';\n\nexport interface FacetValueRange {\n endInclusive: boolean;\n start: number;\n end: number;\n label?: string;\n state: 'selected' | 'idle' | 'excluded';\n}\n\nexport interface FormatFacetValueRange {\n field: string;\n facetValue: FacetValueRange & {numberOfResults: number};\n manualRanges: FacetValueRange[];\n i18n: i18n;\n logger: Pick<Console, 'error'>;\n formatter: NumberFormatter;\n}\n\nexport const formatHumanReadable = ({\n manualRanges,\n field,\n i18n,\n facetValue,\n logger,\n formatter,\n}: FormatFacetValueRange) => {\n const manualRangeLabel = manualRanges.find((range) =>\n areRangesEqual(range, facetValue)\n )?.label;\n return manualRangeLabel\n ? getFieldValueCaption(field, manualRangeLabel, i18n)\n : i18n.t('to', {\n start: formatNumberLocalized(facetValue.start, i18n, logger, formatter),\n end: formatNumberLocalized(facetValue.end, i18n, logger, formatter),\n });\n};\n\nexport const formatNumberLocalized = (\n value: number,\n i18n: FormatFacetValueRange['i18n'],\n logger: FormatFacetValueRange['logger'],\n formatter: FormatFacetValueRange['formatter']\n) => {\n try {\n return formatter(value, i18n.languages as string[]);\n } catch (error) {\n logger.error(\n `atomic-numeric-facet facet value \"${value}\" could not be formatted correctly.`,\n error\n );\n return value;\n }\n};\n\nconst areRangesEqual = (\n firstRange: FacetValueRange,\n secondRange: FacetValueRange\n) => {\n return (\n firstRange.start === secondRange.start &&\n firstRange.end === secondRange.end &&\n firstRange.endInclusive === secondRange.endInclusive\n );\n};\n"],"version":3}
@@ -4,7 +4,7 @@ function getWindow() {
4
4
  }
5
5
  export function getAtomicEnvironment() {
6
6
  return {
7
- version: "3.27.4-pre.da155af9e1".VERSION,
7
+ version: "3.27.4-pre.e4bf3d33c6".VERSION,
8
8
  headlessVersion: VERSION,
9
9
  };
10
10
  }
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACkDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\nimport {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import {InteractiveItemContextController} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {InteractiveItemContextEvent} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\nimport {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport {LitElement} from 'lit';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACkDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\nimport {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import {InteractiveItemContextController} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {InteractiveItemContextEvent} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\nimport {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport {LitElement} from 'lit';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
@@ -2220,7 +2220,7 @@ function getWindow() {
2220
2220
  }
2221
2221
  function getAtomicEnvironment() {
2222
2222
  return {
2223
- version: "3.27.4-pre.da155af9e1",
2223
+ version: "3.27.4-pre.e4bf3d33c6",
2224
2224
  headlessVersion: VERSION,
2225
2225
  };
2226
2226
  }
@@ -35,21 +35,11 @@ function AriaLiveRegion(regionName, assertive = false) {
35
35
  class FocusTargetController {
36
36
  constructor(component) {
37
37
  this.component = component;
38
- this.registerFocusCallback = (callback) => {
39
- this.publicOnFocusCallbacks.push(callback);
40
- };
41
38
  this.doFocusAfterSearch = false;
42
39
  this.doFocusOnNextTarget = false;
43
- this.publicOnFocusCallbacks = [];
44
40
  this.bindings = component.bindings;
45
41
  this.handleComponentRenderLoop();
46
42
  }
47
- clearFocusCallbacks() {
48
- this.internalOnFocusCallback?.();
49
- while (this.publicOnFocusCallbacks.length) {
50
- this.publicOnFocusCallbacks.pop()?.();
51
- }
52
- }
53
43
  setTarget(el) {
54
44
  if (!el) {
55
45
  return;
@@ -63,16 +53,16 @@ class FocusTargetController {
63
53
  async focus() {
64
54
  await defer();
65
55
  this.element?.focus();
66
- this.clearFocusCallbacks();
56
+ this.onFocusCallback?.();
67
57
  }
68
58
  focusAfterSearch() {
69
59
  this.lastSearchId = this.bindings.store.getUniqueIDFromEngine(this.bindings.engine);
70
60
  this.doFocusAfterSearch = true;
71
- return new Promise((resolve) => (this.internalOnFocusCallback = resolve));
61
+ return new Promise((resolve) => (this.onFocusCallback = resolve));
72
62
  }
73
63
  focusOnNextTarget() {
74
64
  this.doFocusOnNextTarget = true;
75
- return new Promise((resolve) => (this.internalOnFocusCallback = resolve));
65
+ return new Promise((resolve) => (this.onFocusCallback = resolve));
76
66
  }
77
67
  disableForCurrentSearch() {
78
68
  if (this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==
@@ -97,7 +87,7 @@ class FocusTargetController {
97
87
  // The focus seems to be flaky without deferring, especially on iOS.
98
88
  defer().then(() => {
99
89
  el.focus();
100
- this.clearFocusCallbacks();
90
+ this.onFocusCallback?.();
101
91
  });
102
92
  }
103
93
  }
@@ -1 +1 @@
1
- {"file":"stencil-accessibility-utils.js","mappings":"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","names":[],"sources":["src/utils/stencil-accessibility-utils.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {AnyBindings} from '../components/common/interface/bindings';\nimport {buildCustomEvent} from './event-utils';\nimport {InitializableComponent} from './initialization-utils';\nimport {defer} from './utils';\n\nconst findAriaLiveEventName = 'atomic/accessibility/findAriaLive';\n\n/**\n * @deprecated use Lit equivalent\n */\nexport interface FindAriaLiveEventArgs {\n element?: HTMLAtomicAriaLiveElement;\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport function AriaLiveRegion(regionName: string, assertive = false) {\n function getAriaLiveElement() {\n const event = buildCustomEvent<FindAriaLiveEventArgs>(\n findAriaLiveEventName,\n {}\n );\n document.dispatchEvent(event);\n const {element} = event.detail;\n return element;\n }\n\n function dispatchMessage(message: string) {\n getAriaLiveElement()?.updateMessage(regionName, message, assertive);\n }\n\n function registerRegion() {\n getAriaLiveElement()?.registerRegion(regionName, assertive);\n }\n\n return (\n component: InitializableComponent<AnyBindings>,\n setterName: string\n ) => {\n const {componentWillRender} = component;\n Object.defineProperty(component, setterName, {\n set: (message: string) => dispatchMessage(message),\n });\n\n component.componentWillRender = function () {\n componentWillRender && componentWillRender.call(this);\n registerRegion();\n };\n };\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport class FocusTargetController {\n private bindings: AnyBindings;\n private lastSearchId?: string;\n private element?: HTMLElement;\n public registerFocusCallback: (callback: Function) => void = (\n callback: Function\n ) => {\n this.publicOnFocusCallbacks.push(callback);\n };\n private internalOnFocusCallback?: Function;\n private doFocusAfterSearch = false;\n private doFocusOnNextTarget = false;\n private publicOnFocusCallbacks: Function[] = [];\n\n constructor(private component: InitializableComponent<AnyBindings>) {\n this.bindings = component.bindings;\n this.handleComponentRenderLoop();\n }\n\n private clearFocusCallbacks() {\n this.internalOnFocusCallback?.();\n while (this.publicOnFocusCallbacks.length) {\n this.publicOnFocusCallbacks.pop()?.();\n }\n }\n\n public setTarget(el: HTMLElement | undefined) {\n if (!el) {\n return;\n }\n this.element = el;\n if (this.doFocusOnNextTarget) {\n this.doFocusOnNextTarget = false;\n this.focus();\n }\n }\n\n public async focus() {\n await defer();\n this.element?.focus();\n this.clearFocusCallbacks();\n }\n\n public focusAfterSearch() {\n this.lastSearchId = this.bindings.store.getUniqueIDFromEngine(\n this.bindings.engine\n );\n this.doFocusAfterSearch = true;\n return new Promise((resolve) => (this.internalOnFocusCallback = resolve));\n }\n\n public focusOnNextTarget() {\n this.doFocusOnNextTarget = true;\n return new Promise((resolve) => (this.internalOnFocusCallback = resolve));\n }\n\n public disableForCurrentSearch() {\n if (\n this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==\n this.lastSearchId\n ) {\n this.doFocusAfterSearch = false;\n }\n }\n\n private handleComponentRenderLoop() {\n const originalComponentDidRender = this.component.componentDidRender;\n\n this.component.componentDidRender = () => {\n originalComponentDidRender &&\n originalComponentDidRender.call(this.component);\n if (!this.bindings) {\n return;\n }\n if (\n this.doFocusAfterSearch &&\n this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==\n this.lastSearchId\n ) {\n this.doFocusAfterSearch = false;\n if (this.element) {\n const el = this.element;\n // The focus seems to be flaky without deferring, especially on iOS.\n defer().then(() => {\n el.focus();\n this.clearFocusCallbacks();\n });\n }\n }\n };\n }\n}\n\nfunction isFocusable(element: Element) {\n // Source: https://stackoverflow.com/a/30753870\n if (element.getAttribute('tabindex') === '-1') {\n return false;\n }\n if (element.hasAttribute('tabindex')) {\n return true;\n }\n if (element.getAttribute('contentEditable') === 'true') {\n return true;\n }\n switch (element.tagName) {\n case 'A':\n case 'AREA':\n return element.hasAttribute('href');\n case 'INPUT':\n case 'SELECT':\n case 'TEXTAREA':\n case 'BUTTON':\n return !element.hasAttribute('disabled');\n case 'IFRAME':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport function* getFocusableDescendants(\n element: Element\n): Generator<HTMLElement> {\n if (isFocusable(element)) {\n yield element as HTMLElement;\n }\n let children = Array.from(element.children);\n if (element instanceof HTMLSlotElement) {\n children = element.assignedElements();\n } else if (element.shadowRoot) {\n children.push(...Array.from(element.shadowRoot.children));\n }\n for (const child of children) {\n yield* getFocusableDescendants(child);\n }\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport function getFirstFocusableDescendant(\n element: Element\n): HTMLElement | null {\n return getFocusableDescendants(element).next().value ?? null;\n}\n"],"version":3}
1
+ {"file":"stencil-accessibility-utils.js","mappings":"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","names":[],"sources":["src/utils/stencil-accessibility-utils.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {AnyBindings} from '../components/common/interface/bindings';\nimport {buildCustomEvent} from './event-utils';\nimport {InitializableComponent} from './initialization-utils';\nimport {defer} from './utils';\n\nconst findAriaLiveEventName = 'atomic/accessibility/findAriaLive';\n\n/**\n * @deprecated use Lit equivalent\n */\nexport interface FindAriaLiveEventArgs {\n element?: HTMLAtomicAriaLiveElement;\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport function AriaLiveRegion(regionName: string, assertive = false) {\n function getAriaLiveElement() {\n const event = buildCustomEvent<FindAriaLiveEventArgs>(\n findAriaLiveEventName,\n {}\n );\n document.dispatchEvent(event);\n const {element} = event.detail;\n return element;\n }\n\n function dispatchMessage(message: string) {\n getAriaLiveElement()?.updateMessage(regionName, message, assertive);\n }\n\n function registerRegion() {\n getAriaLiveElement()?.registerRegion(regionName, assertive);\n }\n\n return (\n component: InitializableComponent<AnyBindings>,\n setterName: string\n ) => {\n const {componentWillRender} = component;\n Object.defineProperty(component, setterName, {\n set: (message: string) => dispatchMessage(message),\n });\n\n component.componentWillRender = function () {\n componentWillRender && componentWillRender.call(this);\n registerRegion();\n };\n };\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport class FocusTargetController {\n private bindings: AnyBindings;\n private lastSearchId?: string;\n private element?: HTMLElement;\n private onFocusCallback?: Function;\n private doFocusAfterSearch = false;\n private doFocusOnNextTarget = false;\n\n constructor(private component: InitializableComponent<AnyBindings>) {\n this.bindings = component.bindings;\n this.handleComponentRenderLoop();\n }\n\n public setTarget(el: HTMLElement | undefined) {\n if (!el) {\n return;\n }\n this.element = el;\n if (this.doFocusOnNextTarget) {\n this.doFocusOnNextTarget = false;\n this.focus();\n }\n }\n\n public async focus() {\n await defer();\n this.element?.focus();\n this.onFocusCallback?.();\n }\n\n public focusAfterSearch() {\n this.lastSearchId = this.bindings.store.getUniqueIDFromEngine(\n this.bindings.engine\n );\n this.doFocusAfterSearch = true;\n return new Promise((resolve) => (this.onFocusCallback = resolve));\n }\n\n public focusOnNextTarget() {\n this.doFocusOnNextTarget = true;\n return new Promise((resolve) => (this.onFocusCallback = resolve));\n }\n\n public disableForCurrentSearch() {\n if (\n this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==\n this.lastSearchId\n ) {\n this.doFocusAfterSearch = false;\n }\n }\n\n private handleComponentRenderLoop() {\n const originalComponentDidRender = this.component.componentDidRender;\n\n this.component.componentDidRender = () => {\n originalComponentDidRender &&\n originalComponentDidRender.call(this.component);\n if (!this.bindings) {\n return;\n }\n if (\n this.doFocusAfterSearch &&\n this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==\n this.lastSearchId\n ) {\n this.doFocusAfterSearch = false;\n if (this.element) {\n const el = this.element;\n // The focus seems to be flaky without deferring, especially on iOS.\n defer().then(() => {\n el.focus();\n this.onFocusCallback?.();\n });\n }\n }\n };\n }\n}\n\nfunction isFocusable(element: Element) {\n // Source: https://stackoverflow.com/a/30753870\n if (element.getAttribute('tabindex') === '-1') {\n return false;\n }\n if (element.hasAttribute('tabindex')) {\n return true;\n }\n if (element.getAttribute('contentEditable') === 'true') {\n return true;\n }\n switch (element.tagName) {\n case 'A':\n case 'AREA':\n return element.hasAttribute('href');\n case 'INPUT':\n case 'SELECT':\n case 'TEXTAREA':\n case 'BUTTON':\n return !element.hasAttribute('disabled');\n case 'IFRAME':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport function* getFocusableDescendants(\n element: Element\n): Generator<HTMLElement> {\n if (isFocusable(element)) {\n yield element as HTMLElement;\n }\n let children = Array.from(element.children);\n if (element instanceof HTMLSlotElement) {\n children = element.assignedElements();\n } else if (element.shadowRoot) {\n children.push(...Array.from(element.shadowRoot.children));\n }\n for (const child of children) {\n yield* getFocusableDescendants(child);\n }\n}\n\n/**\n * @deprecated use Lit equivalent\n */\nexport function getFirstFocusableDescendant(\n element: Element\n): HTMLElement | null {\n return getFocusableDescendants(element).next().value ?? null;\n}\n"],"version":3}