@coveo/atomic 3.48.0 → 3.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/custom-elements.json +1367 -332
  2. package/dist/atomic/_atomic.esm.js +1 -1
  3. package/dist/atomic/atomic.esm.js.map +1 -1
  4. package/dist/atomic/components/_index.d.ts +0 -6
  5. package/dist/atomic/components/_index.js +1 -4
  6. package/dist/atomic/components/atomic-insight-generated-answer.js +16 -5
  7. package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
  8. package/dist/atomic/components/atomic-insight-result-action.js +2 -2
  9. package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
  10. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +2 -2
  11. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
  12. package/dist/atomic/components/atomic-insight-result-children-template.js +2 -2
  13. package/dist/atomic/components/atomic-insight-result-children-template.js.map +1 -1
  14. package/dist/atomic/components/atomic-insight-timeframe-facet.js +7 -6
  15. package/dist/atomic/components/atomic-insight-timeframe-facet.js.map +1 -1
  16. package/dist/atomic/components/atomic-ipx-recs-list.js +323 -10
  17. package/dist/atomic/components/atomic-ipx-recs-list.js.map +1 -1
  18. package/dist/atomic/components/atomic-ipx-refine-modal2.js +3 -3
  19. package/dist/atomic/components/atomic-ipx-refine-modal2.js.map +1 -1
  20. package/dist/atomic/components/atomic-ipx-refine-toggle.js +2 -2
  21. package/dist/atomic/components/atomic-ipx-refine-toggle.js.map +1 -1
  22. package/dist/atomic/components/attach.js +1 -1
  23. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +4 -4
  24. package/dist/atomic/components/components/insight/atomic-insight-folded-result-list/atomic-insight-folded-result-list.js +309 -0
  25. package/dist/atomic/components/components/insight/atomic-insight-result-children/atomic-insight-result-children.js +4 -4
  26. package/dist/atomic/components/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.js +198 -0
  27. package/dist/atomic/components/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.tw.css.js +3 -0
  28. package/dist/atomic/components/components/insight/index.js +2 -0
  29. package/dist/atomic/components/components/insight/lazy-index.js +2 -0
  30. package/dist/atomic/components/components/recommendations/atomic-recs-list/atomic-recs-list.js +437 -0
  31. package/dist/atomic/components/components/recommendations/index.js +1 -0
  32. package/dist/atomic/components/components/recommendations/lazy-index.js +1 -0
  33. package/dist/atomic/components/components/search/atomic-generated-answer/atomic-generated-answer.js +6 -0
  34. package/dist/atomic/components/components/search/atomic-search-box/atomic-search-box.js +4 -4
  35. package/dist/atomic/components/global/environment.js +1 -1
  36. package/dist/atomic/components/index.js.map +1 -1
  37. package/dist/atomic/components/initialization-utils.js +1 -1
  38. package/dist/atomic/components/popover-type.js +1 -1
  39. package/dist/atomic/components/stencil-button.js +22 -2
  40. package/dist/atomic/components/stencil-button.js.map +1 -1
  41. package/dist/atomic/components/stencil-heading.js +157 -1
  42. package/dist/atomic/components/stencil-heading.js.map +1 -1
  43. package/dist/atomic/components/store.js +0 -2
  44. package/dist/atomic/components/store.js.map +1 -1
  45. package/dist/atomic/components/utils/custom-element-tags.js +4 -0
  46. package/dist/atomic/components/utils/tailwind.global.tw.css.js +4 -4
  47. package/dist/atomic/components/utils.js +1360 -2
  48. package/dist/atomic/components/utils.js.map +1 -1
  49. package/dist/atomic/lang/cs.json +1 -1
  50. package/dist/atomic/lang/da.json +1 -1
  51. package/dist/atomic/lang/de.json +1 -1
  52. package/dist/atomic/lang/dev.json +1 -1
  53. package/dist/atomic/lang/el.json +1 -1
  54. package/dist/atomic/lang/en.json +1 -1
  55. package/dist/atomic/lang/es.json +1 -1
  56. package/dist/atomic/lang/fi.json +1 -1
  57. package/dist/atomic/lang/fr.json +1 -1
  58. package/dist/atomic/lang/hu.json +1 -1
  59. package/dist/atomic/lang/id.json +1 -1
  60. package/dist/atomic/lang/it.json +1 -1
  61. package/dist/atomic/lang/ja.json +1 -1
  62. package/dist/atomic/lang/ko.json +1 -1
  63. package/dist/atomic/lang/nl.json +1 -1
  64. package/dist/atomic/lang/no.json +1 -1
  65. package/dist/atomic/lang/pl.json +1 -1
  66. package/dist/atomic/lang/pt-BR.json +1 -1
  67. package/dist/atomic/lang/pt.json +1 -1
  68. package/dist/atomic/lang/ru.json +1 -1
  69. package/dist/atomic/lang/sv.json +1 -1
  70. package/dist/atomic/lang/th.json +1 -1
  71. package/dist/atomic/lang/tr.json +1 -1
  72. package/dist/atomic/lang/zh-CN.json +1 -1
  73. package/dist/atomic/lang/zh-TW.json +1 -1
  74. package/dist/atomic/lang/zh.json +1 -1
  75. package/dist/atomic/p-0f896350.entry.js +2 -0
  76. package/dist/atomic/{p-026a51a7.entry.js.map → p-0f896350.entry.js.map} +1 -1
  77. package/dist/atomic/p-4117289b.entry.js +2 -0
  78. package/dist/atomic/{p-77250a6b.entry.js.map → p-4117289b.entry.js.map} +1 -1
  79. package/dist/atomic/p-4a32511f.js +1 -1
  80. package/dist/atomic/p-74210c4b.entry.js +9 -0
  81. package/dist/atomic/{p-5ec9bf71.entry.js.map → p-74210c4b.entry.js.map} +1 -1
  82. package/dist/atomic/p-8b039c2e.entry.js +2 -0
  83. package/dist/atomic/{p-15074eb9.entry.js.map → p-8b039c2e.entry.js.map} +1 -1
  84. package/dist/atomic/p-991e840f.entry.js +2 -0
  85. package/dist/atomic/p-991e840f.entry.js.map +1 -0
  86. package/dist/atomic/{p-c0fbee64.js → p-9c5ec170.js} +2 -2
  87. package/dist/atomic/p-9dfe5ab1.js +2 -0
  88. package/dist/atomic/p-9dfe5ab1.js.map +1 -0
  89. package/dist/atomic/p-9f774145.entry.js +2 -0
  90. package/dist/atomic/{p-40e4e762.entry.js.map → p-9f774145.entry.js.map} +1 -1
  91. package/dist/atomic/{p-3df103c1.js → p-b09433bb.js} +2 -2
  92. package/dist/atomic/p-b09433bb.js.map +1 -0
  93. package/dist/atomic/p-c81f1edb.entry.js +2 -0
  94. package/dist/atomic/{p-3bb48254.entry.js.map → p-c81f1edb.entry.js.map} +1 -1
  95. package/dist/atomic/p-eea2c139.entry.js +2 -0
  96. package/dist/atomic/p-eea2c139.entry.js.map +1 -0
  97. package/dist/atomic/p-f321aab0.js +2 -0
  98. package/dist/atomic/{p-141bf64c.js.map → p-f321aab0.js.map} +1 -1
  99. package/dist/cjs/_loader.cjs.js +1 -1
  100. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +19 -9
  101. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
  102. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +1 -1
  103. package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
  104. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +1 -1
  105. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
  106. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +4 -5
  107. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js.map +1 -1
  108. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +10 -10
  109. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js.map +1 -1
  110. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +328 -18
  111. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js.map +1 -1
  112. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +3 -5
  113. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js.map +1 -1
  114. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +2 -2
  115. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js.map +1 -1
  116. package/dist/cjs/atomic.cjs.js +1 -1
  117. package/dist/cjs/index-3532822e.js +0 -12
  118. package/dist/cjs/{props-utils-4a99eda6.js → props-utils-bc5feb04.js} +2 -2
  119. package/dist/cjs/{props-utils-4a99eda6.js.map → props-utils-bc5feb04.js.map} +1 -1
  120. package/dist/cjs/{stencil-accessibility-utils-e64abd7b.js → stencil-heading-ecec9ab3.js} +12 -2
  121. package/dist/cjs/stencil-heading-ecec9ab3.js.map +1 -0
  122. package/dist/cjs/{store-9d4daf92.js → store-70fff5e6.js} +1 -3
  123. package/dist/cjs/store-70fff5e6.js.map +1 -0
  124. package/dist/cjs/{purify-d8fb6acd.js → utils-e845f262.js} +67 -1
  125. package/dist/cjs/utils-e845f262.js.map +1 -0
  126. package/dist/cjs/version.cjs.js +2 -2
  127. package/dist/esm/_loader.js +1 -1
  128. package/dist/esm/atomic-insight-generated-answer.entry.js +16 -6
  129. package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
  130. package/dist/esm/atomic-insight-result-action.entry.js +1 -1
  131. package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
  132. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +1 -1
  133. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
  134. package/dist/esm/atomic-insight-result-children-template.entry.js +4 -5
  135. package/dist/esm/atomic-insight-result-children-template.entry.js.map +1 -1
  136. package/dist/esm/atomic-insight-timeframe-facet.entry.js +9 -9
  137. package/dist/esm/atomic-insight-timeframe-facet.entry.js.map +1 -1
  138. package/dist/esm/atomic-ipx-recs-list.entry.js +324 -14
  139. package/dist/esm/atomic-ipx-recs-list.entry.js.map +1 -1
  140. package/dist/esm/atomic-ipx-refine-modal.entry.js +4 -6
  141. package/dist/esm/atomic-ipx-refine-modal.entry.js.map +1 -1
  142. package/dist/esm/atomic-ipx-refine-toggle.entry.js +2 -2
  143. package/dist/esm/atomic-ipx-refine-toggle.entry.js.map +1 -1
  144. package/dist/esm/atomic.js +1 -1
  145. package/dist/esm/index-3eb0b28e.js +0 -12
  146. package/dist/esm/initialization-utils-82d28c63.js +1 -1
  147. package/dist/esm/{props-utils-e322e9dd.js → props-utils-d343133b.js} +2 -2
  148. package/dist/esm/{props-utils-e322e9dd.js.map → props-utils-d343133b.js.map} +1 -1
  149. package/dist/esm/{stencil-accessibility-utils-69ea92b0.js → stencil-heading-98a5f23f.js} +12 -3
  150. package/dist/{atomic/p-b3524b97.js.map → esm/stencil-heading-98a5f23f.js.map} +1 -1
  151. package/dist/esm/{store-3bc9050f.js → store-50d170c8.js} +1 -3
  152. package/dist/esm/store-50d170c8.js.map +1 -0
  153. package/dist/esm/{purify-985ba52e.js → utils-b5bab369.js} +60 -2
  154. package/dist/esm/utils-b5bab369.js.map +1 -0
  155. package/dist/esm/version.js +2 -2
  156. package/dist/types/components/common/generated-answer/generated-answer-thread-item/generated-answer-thread-item.d.ts +49 -0
  157. package/dist/types/components/common/generated-answer/render-follow-up-input.d.ts +17 -0
  158. package/dist/types/components/insight/atomic-insight-folded-result-list/atomic-insight-folded-result-list.d.ts +99 -0
  159. package/dist/types/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.d.ts +83 -0
  160. package/dist/types/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.tw.css.d.ts +2 -0
  161. package/dist/types/components/insight/index.d.ts +2 -0
  162. package/dist/types/components/recommendations/atomic-recs-list/atomic-recs-list.d.ts +40 -23
  163. package/dist/types/components/recommendations/index.d.ts +1 -0
  164. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +5 -0
  165. package/dist/types/components.d.ts +4 -198
  166. package/docs/atomic-docs.json +17 -434
  167. package/package.json +9 -4
  168. package/dist/atomic/components/arrow-right.js +0 -8
  169. package/dist/atomic/components/arrow-right.js.map +0 -1
  170. package/dist/atomic/components/atomic-insight-folded-result-list.d.ts +0 -11
  171. package/dist/atomic/components/atomic-insight-folded-result-list.js +0 -213
  172. package/dist/atomic/components/atomic-insight-folded-result-list.js.map +0 -1
  173. package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.d.ts +0 -11
  174. package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.js +0 -175
  175. package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.js.map +0 -1
  176. package/dist/atomic/components/atomic-recs-list.d.ts +0 -11
  177. package/dist/atomic/components/atomic-recs-list.js +0 -304
  178. package/dist/atomic/components/atomic-recs-list.js.map +0 -1
  179. package/dist/atomic/components/display-options.js +0 -277
  180. package/dist/atomic/components/display-options.js.map +0 -1
  181. package/dist/atomic/components/event-utils.js +0 -24
  182. package/dist/atomic/components/event-utils.js.map +0 -1
  183. package/dist/atomic/components/purify.js +0 -1363
  184. package/dist/atomic/components/purify.js.map +0 -1
  185. package/dist/atomic/components/slot-utils.js +0 -16
  186. package/dist/atomic/components/slot-utils.js.map +0 -1
  187. package/dist/atomic/components/stencil-accessibility-utils.js +0 -160
  188. package/dist/atomic/components/stencil-accessibility-utils.js.map +0 -1
  189. package/dist/atomic/components/stencil-carousel.js +0 -50
  190. package/dist/atomic/components/stencil-carousel.js.map +0 -1
  191. package/dist/atomic/p-026a51a7.entry.js +0 -2
  192. package/dist/atomic/p-09ff88b4.entry.js +0 -2
  193. package/dist/atomic/p-09ff88b4.entry.js.map +0 -1
  194. package/dist/atomic/p-0c4a4e30.js +0 -2
  195. package/dist/atomic/p-0c4a4e30.js.map +0 -1
  196. package/dist/atomic/p-141bf64c.js +0 -2
  197. package/dist/atomic/p-15074eb9.entry.js +0 -2
  198. package/dist/atomic/p-3bb48254.entry.js +0 -2
  199. package/dist/atomic/p-3df103c1.js.map +0 -1
  200. package/dist/atomic/p-40e4e762.entry.js +0 -2
  201. package/dist/atomic/p-4cab9607.js +0 -2
  202. package/dist/atomic/p-4cab9607.js.map +0 -1
  203. package/dist/atomic/p-5ec9bf71.entry.js +0 -9
  204. package/dist/atomic/p-77250a6b.entry.js +0 -2
  205. package/dist/atomic/p-78be3137.js +0 -2
  206. package/dist/atomic/p-78be3137.js.map +0 -1
  207. package/dist/atomic/p-994b3e51.entry.js +0 -2
  208. package/dist/atomic/p-994b3e51.entry.js.map +0 -1
  209. package/dist/atomic/p-b3524b97.js +0 -2
  210. package/dist/atomic/p-cc6320d9.entry.js +0 -2
  211. package/dist/atomic/p-cc6320d9.entry.js.map +0 -1
  212. package/dist/atomic/p-cfa9c12b.js +0 -2
  213. package/dist/atomic/p-cfa9c12b.js.map +0 -1
  214. package/dist/atomic/p-d189f1a5.js +0 -2
  215. package/dist/atomic/p-d189f1a5.js.map +0 -1
  216. package/dist/atomic/p-e58840b6.js +0 -2
  217. package/dist/atomic/p-e58840b6.js.map +0 -1
  218. package/dist/atomic/p-f24c22bb.entry.js +0 -2
  219. package/dist/atomic/p-f24c22bb.entry.js.map +0 -1
  220. package/dist/atomic/p-f2906e7c.entry.js +0 -2
  221. package/dist/atomic/p-f2906e7c.entry.js.map +0 -1
  222. package/dist/cjs/arrow-right-a3be291c.js +0 -10
  223. package/dist/cjs/arrow-right-a3be291c.js.map +0 -1
  224. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +0 -191
  225. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js.map +0 -1
  226. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +0 -161
  227. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js.map +0 -1
  228. package/dist/cjs/atomic-recs-list.cjs.entry.js +0 -277
  229. package/dist/cjs/atomic-recs-list.cjs.entry.js.map +0 -1
  230. package/dist/cjs/display-options-24763cf8.js +0 -284
  231. package/dist/cjs/display-options-24763cf8.js.map +0 -1
  232. package/dist/cjs/purify-d8fb6acd.js.map +0 -1
  233. package/dist/cjs/slot-utils-987a7dd6.js +0 -18
  234. package/dist/cjs/slot-utils-987a7dd6.js.map +0 -1
  235. package/dist/cjs/stencil-accessibility-utils-e64abd7b.js.map +0 -1
  236. package/dist/cjs/stencil-carousel-ba8e11b5.js +0 -53
  237. package/dist/cjs/stencil-carousel-ba8e11b5.js.map +0 -1
  238. package/dist/cjs/stencil-heading-e2df37e4.js +0 -15
  239. package/dist/cjs/stencil-heading-e2df37e4.js.map +0 -1
  240. package/dist/cjs/store-9d4daf92.js.map +0 -1
  241. package/dist/cjs/utils-2a022008.js +0 -72
  242. package/dist/cjs/utils-2a022008.js.map +0 -1
  243. package/dist/esm/arrow-right-cb365b01.js +0 -8
  244. package/dist/esm/arrow-right-cb365b01.js.map +0 -1
  245. package/dist/esm/atomic-insight-folded-result-list.entry.js +0 -187
  246. package/dist/esm/atomic-insight-folded-result-list.entry.js.map +0 -1
  247. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +0 -157
  248. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js.map +0 -1
  249. package/dist/esm/atomic-recs-list.entry.js +0 -273
  250. package/dist/esm/atomic-recs-list.entry.js.map +0 -1
  251. package/dist/esm/display-options-d03040a8.js +0 -277
  252. package/dist/esm/display-options-d03040a8.js.map +0 -1
  253. package/dist/esm/purify-985ba52e.js.map +0 -1
  254. package/dist/esm/slot-utils-df87a95a.js +0 -16
  255. package/dist/esm/slot-utils-df87a95a.js.map +0 -1
  256. package/dist/esm/stencil-accessibility-utils-69ea92b0.js.map +0 -1
  257. package/dist/esm/stencil-carousel-eac65a6c.js +0 -50
  258. package/dist/esm/stencil-carousel-eac65a6c.js.map +0 -1
  259. package/dist/esm/stencil-heading-adb44de7.js +0 -13
  260. package/dist/esm/stencil-heading-adb44de7.js.map +0 -1
  261. package/dist/esm/store-3bc9050f.js.map +0 -1
  262. package/dist/esm/utils-6771fbc6.js +0 -63
  263. package/dist/esm/utils-6771fbc6.js.map +0 -1
  264. package/dist/types/components/insight/result-lists/atomic-insight-folded-result-list/atomic-insight-folded-result-list.d.ts +0 -68
  265. package/dist/types/components/insight/smart-snippets/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.d.ts +0 -38
  266. /package/dist/atomic/{p-c0fbee64.js.map → p-9c5ec170.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as n,h as t,F as r,g as i}from"./p-ec1c5f46.js";import{NumberValue as e}from"@coveo/bueno";import{loadIPXActionsHistoryActions as a}from"@coveo/headless";import{buildRecommendationList as o,loadConfigurationActions as l,buildInteractiveResult as s}from"@coveo/headless/recommendation";import{I as c,B as d}from"./p-4a32511f.js";import{F as m}from"./p-b3524b97.js";import{r as p}from"./p-e58840b6.js";import{R as h,I as g,g as w,b,a as u,D as v}from"./p-d189f1a5.js";import{c as f}from"./p-141bf64c.js";import{D as y,C as x}from"./p-0c4a4e30.js";import{H as k}from"./p-4cab9607.js";import"./p-81d6e743.js";import"./p-1580513b.js";import"./p-3df103c1.js";import"./p-4573c419.js";import"./p-cfa9c12b.js";import"./p-677f9c40.js";const z='/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer properties {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: "";\n }\n}\n@layer theme, base, components, utilities;\n@layer theme;\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, var(--atomic-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden="until-found"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container {\n container-type: inline-size;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .collapse {\n visibility: collapse;\n }\n .invisible {\n visibility: hidden;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .atomic-grid-clickable-elements [part~=\'outline\'][part~=\'result-list-grid-clickable-container\'] {\n position: relative;\n border: 1px solid transparent;\n padding: 1rem;\n border-radius: 1rem;\n transition: all 0.12s ease-out;\n }\n .atomic-grid-clickable-elements [part~=\'outline\'][part~=\'result-list-grid-clickable-container\']:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n box-shadow: 0px 10px 25px var(--atomic-neutral);\n cursor: pointer;\n }\n .atomic-grid-clickable-elements [part=\'result-list-grid-clickable\']:focus-visible {\n border-radius: 2px;\n border-style: var(--tw-border-style);\n border-width: 2px;\n border-color: var(--atomic-primary);\n color: var(--atomic-primary);\n cursor: pointer;\n display: inline-block;\n text-decoration: underline;\n text-align: center;\n position: absolute;\n }\n .atomic-grid-clickable-elements [part=\'result-list-grid-clickable\']:not(:focus) {\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n padding: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(0.25rem * 0);\n }\n .-top-2 {\n top: calc(0.25rem * -2);\n }\n .-top-4 {\n top: calc(0.25rem * -4);\n }\n .top-0 {\n top: calc(0.25rem * 0);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-6 {\n top: calc(0.25rem * 6);\n }\n .top-\\[4px\\] {\n top: 4px;\n }\n .top-full {\n top: 100%;\n }\n .top-px {\n top: 1px;\n }\n .-right-2 {\n right: calc(0.25rem * -2);\n }\n .right-0 {\n right: calc(0.25rem * 0);\n }\n .right-2 {\n right: calc(0.25rem * 2);\n }\n .right-6 {\n right: calc(0.25rem * 6);\n }\n .right-12 {\n right: calc(0.25rem * 12);\n }\n .right-20 {\n right: calc(0.25rem * 20);\n }\n .right-px {\n right: 1px;\n }\n .bottom-0 {\n bottom: calc(0.25rem * 0);\n }\n .bottom-1 {\n bottom: calc(0.25rem * 1);\n }\n .bottom-2 {\n bottom: calc(0.25rem * 2);\n }\n .bottom-px {\n bottom: 1px;\n }\n .left-0 {\n left: calc(0.25rem * 0);\n }\n .left-1 {\n left: calc(0.25rem * 1);\n }\n .left-2 {\n left: calc(0.25rem * 2);\n }\n .left-\\[15px\\] {\n left: 15px;\n }\n .isolate {\n isolation: isolate;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-10 {\n z-index: 10;\n }\n .z-9998 {\n z-index: 9998;\n }\n .z-9999 {\n z-index: 9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .container {\n width: 100%;\n }\n @media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n }\n @media (width >= 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n @media (width >= 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n @media (width >= 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n @media (width >= 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n @media (width >= 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n .container\\! {\n width: 100% !important;\n }\n @media (width >= 1024px) {\n .container\\! {\n max-width: 1024px !important;\n }\n }\n @media (width >= 40rem) {\n .container\\! {\n max-width: 40rem !important;\n }\n }\n @media (width >= 48rem) {\n .container\\! {\n max-width: 48rem !important;\n }\n }\n @media (width >= 64rem) {\n .container\\! {\n max-width: 64rem !important;\n }\n }\n @media (width >= 80rem) {\n .container\\! {\n max-width: 80rem !important;\n }\n }\n @media (width >= 96rem) {\n .container\\! {\n max-width: 96rem !important;\n }\n }\n @media not all and (width >= 1024px) {\n @media not all and (min-width: 768px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-large {\n grid-template-columns: minmax(auto, 35rem);\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large.density-comfortable [part~=\'outline\']::before {\n margin: 2rem 0;\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large.density-normal [part~=\'outline\']::before {\n margin: 1.5rem 0;\n }\n @media not all and (width >= 1024px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-large.density-normal [part~=\'outline\']::before {\n margin: 1.75rem 0;\n }\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large.density-compact [part~=\'outline\']::before {\n margin: 1rem 0;\n }\n @media not all and (width >= 1024px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-large.density-compact [part~=\'outline\']::before {\n margin: 1.5rem 0;\n }\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large [part~=\'outline\']::before {\n display: block;\n content: \' \';\n height: 1px;\n background-color: var(--atomic-neutral);\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large [part~=\'outline\']:first-of-type::before {\n display: none;\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large atomic-result-placeholder::before {\n background-color: transparent;\n }\n }\n @media (min-width: 768px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-large {\n grid-column-gap: 0.5rem;\n grid-row-gap: 0.5rem;\n grid-template-columns: 1fr 1fr;\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large [part~=\'outline\'] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n padding: 1rem;\n border-radius: 1rem;\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-large atomic-result-placeholder {\n border-color: transparent;\n }\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-small [part~=\'outline\'], .atomic-grid-display-mobile .list-root.display-grid.image-icon [part~=\'outline\'], .atomic-grid-display-mobile .list-root.display-grid.image-none [part~=\'outline\'] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n padding: 1rem;\n border-radius: 1rem;\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-small atomic-result-placeholder, .atomic-grid-display-mobile .list-root.display-grid.image-icon atomic-result-placeholder, .atomic-grid-display-mobile .list-root.display-grid.image-none atomic-result-placeholder {\n border-color: transparent;\n }\n .atomic-grid-display-mobile .list-root.display-grid.image-small, .atomic-grid-display-mobile .list-root.display-grid.image-icon, .atomic-grid-display-mobile .list-root.display-grid.image-none {\n grid-column-gap: 0.5rem;\n grid-row-gap: 0.5rem;\n }\n @media not all and (min-width: 640px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-small, .atomic-grid-display-mobile .list-root.display-grid.image-icon, .atomic-grid-display-mobile .list-root.display-grid.image-none {\n grid-template-columns: minmax(0, 1fr);\n }\n }\n @media (min-width: 768px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-small, .atomic-grid-display-mobile .list-root.display-grid.image-icon, .atomic-grid-display-mobile .list-root.display-grid.image-none {\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n }\n }\n @media (width >= 1024px) {\n .atomic-grid-display-mobile .list-root.display-grid.image-small, .atomic-grid-display-mobile .list-root.display-grid.image-icon, .atomic-grid-display-mobile .list-root.display-grid.image-none {\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);\n }\n }\n }\n .atomic-list-with-dividers.density-comfortable [part~=\'outline\']::before {\n margin: 2rem 0;\n }\n .atomic-list-with-dividers.density-normal [part~=\'outline\']::before {\n margin: 1.5rem 0;\n }\n @media not all and (width >= 1024px) {\n .atomic-list-with-dividers.density-normal [part~=\'outline\']::before {\n margin: 1.75rem 0;\n }\n }\n .atomic-list-with-dividers.density-compact [part~=\'outline\']::before {\n margin: 1rem 0;\n }\n @media not all and (width >= 1024px) {\n .atomic-list-with-dividers.density-compact [part~=\'outline\']::before {\n margin: 1.5rem 0;\n }\n }\n .atomic-list-with-dividers [part~=\'outline\']::before {\n display: block;\n content: \' \';\n height: 1px;\n background-color: var(--atomic-neutral);\n }\n .atomic-list-with-dividers [part~=\'outline\']:first-of-type::before {\n display: none;\n }\n .atomic-list-with-dividers atomic-result-placeholder::before {\n background-color: transparent;\n }\n .m-0 {\n margin: calc(0.25rem * 0);\n }\n .m-2 {\n margin: calc(0.25rem * 2);\n }\n .mx-0 {\n margin-inline: calc(0.25rem * 0);\n }\n .mx-0\\.5 {\n margin-inline: calc(0.25rem * 0.5);\n }\n .mx-1 {\n margin-inline: calc(0.25rem * 1);\n }\n .mx-6 {\n margin-inline: calc(0.25rem * 6);\n }\n .mx-16 {\n margin-inline: calc(0.25rem * 16);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-2 {\n margin-block: calc(0.25rem * 2);\n }\n .my-3 {\n margin-block: calc(0.25rem * 3);\n }\n .my-4 {\n margin-block: calc(0.25rem * 4);\n }\n .my-6 {\n margin-block: calc(0.25rem * 6);\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-top: calc(0.25rem * 0);\n }\n .mt-1 {\n margin-top: calc(0.25rem * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(0.25rem * 1.5);\n }\n .mt-2 {\n margin-top: calc(0.25rem * 2);\n }\n .mt-2\\.5 {\n margin-top: calc(0.25rem * 2.5);\n }\n .mt-3 {\n margin-top: calc(0.25rem * 3);\n }\n .mt-4 {\n margin-top: calc(0.25rem * 4);\n }\n .mt-6 {\n margin-top: calc(0.25rem * 6);\n }\n .mt-7 {\n margin-top: calc(0.25rem * 7);\n }\n .mt-8 {\n margin-top: calc(0.25rem * 8);\n }\n .mt-10 {\n margin-top: calc(0.25rem * 10);\n }\n .mt-px {\n margin-top: 1px;\n }\n .mr-0 {\n margin-right: calc(0.25rem * 0);\n }\n .mr-0\\.5 {\n margin-right: calc(0.25rem * 0.5);\n }\n .mr-1 {\n margin-right: calc(0.25rem * 1);\n }\n .mr-1\\.5 {\n margin-right: calc(0.25rem * 1.5);\n }\n .mr-2 {\n margin-right: calc(0.25rem * 2);\n }\n .mr-3 {\n margin-right: calc(0.25rem * 3);\n }\n .mr-6 {\n margin-right: calc(0.25rem * 6);\n }\n .mb-0 {\n margin-bottom: calc(0.25rem * 0);\n }\n .mb-1 {\n margin-bottom: calc(0.25rem * 1);\n }\n .mb-2 {\n margin-bottom: calc(0.25rem * 2);\n }\n .mb-3 {\n margin-bottom: calc(0.25rem * 3);\n }\n .mb-4 {\n margin-bottom: calc(0.25rem * 4);\n }\n .mb-6 {\n margin-bottom: calc(0.25rem * 6);\n }\n .ml-0\\.5 {\n margin-left: calc(0.25rem * 0.5);\n }\n .ml-1 {\n margin-left: calc(0.25rem * 1);\n }\n .ml-2 {\n margin-left: calc(0.25rem * 2);\n }\n .ml-4 {\n margin-left: calc(0.25rem * 4);\n }\n .ml-6 {\n margin-left: calc(0.25rem * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .atomic-grid-display-common .list-wrapper {\n word-break: break-word;\n }\n .atomic-grid-display-common .list-root.display-grid {\n display: grid;\n justify-content: space-evenly;\n }\n .atomic-grid-display-common .list-root.display-grid .result-component {\n height: 100%;\n box-sizing: border-box;\n }\n .box-border {\n box-sizing: border-box;\n }\n .box-content {\n box-sizing: content-box;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .line-clamp-4 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n }\n .line-clamp-none {\n overflow: visible;\n display: block;\n -webkit-box-orient: horizontal;\n -webkit-line-clamp: unset;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-column {\n display: table-column;\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-\\[27px\\] {\n width: 27px;\n height: 27px;\n }\n .h-1 {\n height: calc(0.25rem * 1);\n }\n .h-2 {\n height: calc(0.25rem * 2);\n }\n .h-2\\.5 {\n height: calc(0.25rem * 2.5);\n }\n .h-3 {\n height: calc(0.25rem * 3);\n }\n .h-4 {\n height: calc(0.25rem * 4);\n }\n .h-5 {\n height: calc(0.25rem * 5);\n }\n .h-5\\/6 {\n height: calc(5/6 * 100%);\n }\n .h-6 {\n height: calc(0.25rem * 6);\n }\n .h-7 {\n height: calc(0.25rem * 7);\n }\n .h-8 {\n height: calc(0.25rem * 8);\n }\n .h-9 {\n height: calc(0.25rem * 9);\n }\n .h-10 {\n height: calc(0.25rem * 10);\n }\n .h-12 {\n height: calc(0.25rem * 12);\n }\n .h-\\[2\\.6rem\\] {\n height: 2.6rem;\n }\n .h-\\[9px\\] {\n height: 9px;\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .max-h-96 {\n max-height: calc(0.25rem * 96);\n }\n .min-h-10 {\n min-height: calc(0.25rem * 10);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .w-0\\.5 {\n width: calc(0.25rem * 0.5);\n }\n .w-1 {\n width: calc(0.25rem * 1);\n }\n .w-1\\/2 {\n width: calc(1/2 * 100%);\n }\n .w-2 {\n width: calc(0.25rem * 2);\n }\n .w-2\\.5 {\n width: calc(0.25rem * 2.5);\n }\n .w-3 {\n width: calc(0.25rem * 3);\n }\n .w-3\\.5 {\n width: calc(0.25rem * 3.5);\n }\n .w-3\\/5 {\n width: calc(3/5 * 100%);\n }\n .w-4 {\n width: calc(0.25rem * 4);\n }\n .w-5 {\n width: calc(0.25rem * 5);\n }\n .w-5\\/6 {\n width: calc(5/6 * 100%);\n }\n .w-6 {\n width: calc(0.25rem * 6);\n }\n .w-7 {\n width: calc(0.25rem * 7);\n }\n .w-8 {\n width: calc(0.25rem * 8);\n }\n .w-9 {\n width: calc(0.25rem * 9);\n }\n .w-10 {\n width: calc(0.25rem * 10);\n }\n .w-12 {\n width: calc(0.25rem * 12);\n }\n .w-20 {\n width: calc(0.25rem * 20);\n }\n .w-26 {\n width: calc(0.25rem * 26);\n }\n .w-28 {\n width: calc(0.25rem * 28);\n }\n .w-32 {\n width: calc(0.25rem * 32);\n }\n .w-36 {\n width: calc(0.25rem * 36);\n }\n .w-48 {\n width: calc(0.25rem * 48);\n }\n .w-60 {\n width: calc(0.25rem * 60);\n }\n .w-64 {\n width: calc(0.25rem * 64);\n }\n .w-72 {\n width: calc(0.25rem * 72);\n }\n .w-100 {\n width: calc(0.25rem * 100);\n }\n .w-\\[2\\.6rem\\] {\n width: 2.6rem;\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .max-w-4\\/5 {\n max-width: calc(4/5 * 100%);\n }\n .max-w-60 {\n max-width: calc(0.25rem * 60);\n }\n .max-w-\\[30ch\\] {\n max-width: 30ch;\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-lg {\n max-width: 32rem;\n }\n .max-w-max {\n max-width: max-content;\n }\n .atomic-result-table {\n min-width: 100%;\n border-spacing: 0;\n border-collapse: separate;\n }\n .atomic-result-table th, .atomic-result-table td {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n font-family: var(--atomic-font-family);\n font-size: var(--atomic-text-sm);\n line-height: var(--tw-leading, calc(1.25 / 0.875));\n line-height: 1rem;\n white-space: nowrap;\n }\n .atomic-result-table th:not(:first-child), .atomic-result-table td:not(:first-child) {\n border-left: none;\n }\n .atomic-result-table th:first-child, .atomic-result-table td:first-child {\n min-width: 19rem;\n }\n .atomic-result-table th {\n background-color: var(--atomic-neutral-light);\n border-bottom: none;\n font-weight: bold;\n color: black;\n padding: 1rem var(--padding);\n text-align: left;\n }\n .atomic-result-table th:first-child {\n border-top-left-radius: var(--atomic-border-radius-xl);\n }\n .atomic-result-table th:last-child {\n border-top-right-radius: var(--atomic-border-radius-xl);\n }\n .atomic-result-table td {\n color: var(--atomic-neutral-dark);\n border-top: none;\n vertical-align: top;\n padding: var(--padding);\n }\n .atomic-result-table.density-comfortable {\n --padding: 2rem;\n }\n .atomic-result-table.density-normal {\n --padding: 1.5rem;\n }\n .atomic-result-table.density-compact {\n --padding: 1rem;\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 .flex-shrink-0 {\n flex-shrink: 0;\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 @media (width >= 1024px) {\n .atomic-grid-display-desktop .list-root.display-grid {\n grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));\n }\n .atomic-grid-display-desktop .list-root.display-grid.density-comfortable {\n grid-row-gap: 4rem;\n grid-column-gap: 1.5rem;\n }\n .atomic-grid-display-desktop .list-root.display-grid.density-normal, .atomic-grid-display-desktop .list-root.display-grid.density-compact {\n grid-row-gap: 3rem;\n grid-column-gap: 1.5rem;\n }\n .atomic-grid-display-desktop .list-root.display-grid.image-large {\n grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));\n }\n @media not all and (width >= 1024px) {\n .atomic-grid-display-desktop .list-root.display-grid.image-small {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n @media (width >= 1024px) {\n .atomic-grid-display-desktop .list-root.display-grid.image-small {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n @media (min-width: 1280px) {\n .atomic-grid-display-desktop .list-root.display-grid.image-small {\n grid-template-columns: repeat(4, 1fr);\n }\n }\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 .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-0\\.5 {\n gap: calc(0.25rem * 0.5);\n }\n .gap-1 {\n gap: calc(0.25rem * 1);\n }\n .gap-2 {\n gap: calc(0.25rem * 2);\n }\n .gap-3 {\n gap: calc(0.25rem * 3);\n }\n .gap-4 {\n gap: calc(0.25rem * 4);\n }\n .gap-8 {\n gap: calc(0.25rem * 8);\n }\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n .gap-x-1\\.5 {\n column-gap: calc(0.25rem * 1.5);\n }\n .gap-x-2 {\n column-gap: calc(0.25rem * 2);\n }\n .gap-x-4 {\n column-gap: calc(0.25rem * 4);\n }\n :where(.space-x-1\\.5 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(0.25rem * 1.5) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(0.25rem * 1.5) * calc(1 - var(--tw-space-x-reverse)));\n }\n .gap-y-0\\.5 {\n row-gap: calc(0.25rem * 0.5);\n }\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n :where(.divide-neutral > :not(:last-child)) {\n border-color: var(--atomic-neutral);\n }\n .self-center {\n align-self: center;\n }\n .self-start {\n align-self: flex-start;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .scroll-smooth {\n scroll-behavior: smooth;\n }\n .atomic-grid-with-cards [part~=\'outline\'] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n padding: 1rem;\n border-radius: 1rem;\n }\n .atomic-grid-with-cards atomic-result-placeholder {\n border-color: transparent;\n }\n .atomic-grid-with-cards {\n grid-column-gap: 0.5rem;\n grid-row-gap: 0.5rem;\n }\n .atomic-list-with-cards [part~=\'outline\'] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n padding: 1rem;\n border-radius: 1rem;\n }\n .atomic-list-with-cards atomic-result-placeholder {\n border-color: transparent;\n }\n .rounded {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-3xl {\n border-radius: 1.5rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--atomic-border-radius-lg);\n }\n .rounded-md {\n border-radius: var(--atomic-border-radius-md);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-xl {\n border-radius: var(--atomic-border-radius-xl);\n }\n .rounded-tl-none {\n border-top-left-radius: 0;\n }\n .rounded-r-none {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-1 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-gray-200 {\n border-color: oklch(0.928 0.006 264.531);\n }\n .border-neutral {\n border-color: var(--atomic-neutral);\n }\n .border-neutral-dark {\n border-color: var(--atomic-neutral-dark);\n }\n .border-neutral-dim {\n border-color: var(--atomic-neutral-dim);\n }\n .border-primary {\n border-color: var(--atomic-primary);\n }\n .border-primary-light {\n border-color: var(--atomic-primary-light);\n }\n .border-t-neutral {\n border-top-color: var(--atomic-neutral);\n }\n .border-b-neutral {\n border-bottom-color: var(--atomic-neutral);\n }\n .border-b-neutral-dim {\n border-bottom-color: var(--atomic-neutral-dim);\n }\n .border-l-neutral {\n border-left-color: var(--atomic-neutral);\n }\n .border-l-neutral-dim {\n border-left-color: var(--atomic-neutral-dim);\n }\n .bg-\\[\\#F1F2FF\\] {\n background-color: #F1F2FF;\n }\n .bg-\\[rgba\\(40\\,40\\,40\\,0\\.8\\)\\] {\n background-color: rgba(40,40,40,0.8);\n }\n .bg-background {\n background-color: var(--atomic-background);\n }\n .bg-error {\n background-color: var(--atomic-error);\n }\n .bg-gray-50 {\n background-color: oklch(0.985 0.002 247.839);\n }\n .bg-neutral {\n background-color: var(--atomic-neutral);\n }\n .bg-neutral-light {\n background-color: var(--atomic-neutral-light);\n }\n .bg-primary {\n background-color: var(--atomic-primary);\n }\n .bg-primary-background {\n background-color: var(--atomic-primary-background);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: #fff;\n }\n .bg-linear-to-l {\n --tw-gradient-position: to left;\n }\n @supports (background-image: linear-gradient(in lab, red, red)) {\n .bg-linear-to-l {\n --tw-gradient-position: to left in oklab;\n }\n }\n .bg-linear-to-l {\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-linear-to-r {\n --tw-gradient-position: to right;\n }\n @supports (background-image: linear-gradient(in lab, red, red)) {\n .bg-linear-to-r {\n --tw-gradient-position: to right in oklab;\n }\n }\n .bg-linear-to-r {\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-background\\/60 {\n --tw-gradient-from: color-mix(in srgb, #ffffff 60%, transparent);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .from-background\\/60 {\n --tw-gradient-from: color-mix(in oklab, var(--atomic-background) 60%, transparent);\n }\n }\n .from-background\\/60 {\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-more-results-progress-bar-color-from {\n --tw-gradient-from: var(\n --atomic-more-results-progress-bar-color-from,\n var(--atomic-primary-dark)\n );\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-more-results-progress-bar-color-to {\n --tw-gradient-to: var(\n --atomic-more-results-progress-bar-color-to,\n var(--atomic-primary-light)\n );\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .fill-current {\n fill: currentcolor;\n }\n .stroke-\\[1\\.25\\] {\n stroke-width: 1.25;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-0 {\n padding: calc(0.25rem * 0);\n }\n .p-1 {\n padding: calc(0.25rem * 1);\n }\n .p-2 {\n padding: calc(0.25rem * 2);\n }\n .p-2\\.5 {\n padding: calc(0.25rem * 2.5);\n }\n .p-3 {\n padding: calc(0.25rem * 3);\n }\n .p-3\\.5 {\n padding: calc(0.25rem * 3.5);\n }\n .p-4 {\n padding: calc(0.25rem * 4);\n }\n .p-6 {\n padding: calc(0.25rem * 6);\n }\n .p-7 {\n padding: calc(0.25rem * 7);\n }\n .p-8 {\n padding: calc(0.25rem * 8);\n }\n .px-1 {\n padding-inline: calc(0.25rem * 1);\n }\n .px-2 {\n padding-inline: calc(0.25rem * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(0.25rem * 2.5);\n }\n .px-3 {\n padding-inline: calc(0.25rem * 3);\n }\n .px-4 {\n padding-inline: calc(0.25rem * 4);\n }\n .px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n .px-7 {\n padding-inline: calc(0.25rem * 7);\n }\n .px-9 {\n padding-inline: calc(0.25rem * 9);\n }\n .py-0\\.5 {\n padding-block: calc(0.25rem * 0.5);\n }\n .py-1 {\n padding-block: calc(0.25rem * 1);\n }\n .py-1\\.5 {\n padding-block: calc(0.25rem * 1.5);\n }\n .py-2 {\n padding-block: calc(0.25rem * 2);\n }\n .py-2\\.5 {\n padding-block: calc(0.25rem * 2.5);\n }\n .py-3 {\n padding-block: calc(0.25rem * 3);\n }\n .py-3\\.5 {\n padding-block: calc(0.25rem * 3.5);\n }\n .py-4 {\n padding-block: calc(0.25rem * 4);\n }\n .py-4\\.5 {\n padding-block: calc(0.25rem * 4.5);\n }\n .py-5 {\n padding-block: calc(0.25rem * 5);\n }\n .py-6 {\n padding-block: calc(0.25rem * 6);\n }\n .pt-0\\.5 {\n padding-top: calc(0.25rem * 0.5);\n }\n .pt-6 {\n padding-top: calc(0.25rem * 6);\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-4 {\n padding-right: calc(0.25rem * 4);\n }\n .pr-6 {\n padding-right: calc(0.25rem * 6);\n }\n .pr-24 {\n padding-right: calc(0.25rem * 24);\n }\n .pb-1 {\n padding-bottom: calc(0.25rem * 1);\n }\n .pb-3 {\n padding-bottom: calc(0.25rem * 3);\n }\n .pb-4 {\n padding-bottom: calc(0.25rem * 4);\n }\n .pb-5 {\n padding-bottom: calc(0.25rem * 5);\n }\n .pb-6 {\n padding-bottom: calc(0.25rem * 6);\n }\n .pl-0 {\n padding-left: calc(0.25rem * 0);\n }\n .pl-1 {\n padding-left: calc(0.25rem * 1);\n }\n .pl-3 {\n padding-left: calc(0.25rem * 3);\n }\n .pl-7 {\n padding-left: calc(0.25rem * 7);\n }\n .pl-9 {\n padding-left: calc(0.25rem * 9);\n }\n .pl-10 {\n padding-left: calc(0.25rem * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .align-baseline {\n vertical-align: baseline;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-sans {\n font-family: var(--atomic-font-family);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .text-2xl {\n font-size: var(--atomic-text-2xl);\n line-height: var(--tw-leading, calc(2 / 1.5));\n }\n .text-base {\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n }\n .text-lg {\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n .text-sm {\n font-size: var(--atomic-text-sm);\n line-height: var(--tw-leading, calc(1.25 / 0.875));\n }\n .text-xl {\n font-size: var(--atomic-text-xl);\n line-height: var(--tw-leading, calc(1.75 / 1.25));\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: var(--tw-leading, calc(1 / 0.75));\n }\n .text-xs\\/\\[1rem\\] {\n font-size: 0.75rem;\n line-height: 1rem;\n }\n .leading-4 {\n --tw-leading: calc(0.25rem * 4);\n line-height: calc(0.25rem * 4);\n }\n .leading-5 {\n --tw-leading: calc(0.25rem * 5);\n line-height: calc(0.25rem * 5);\n }\n .leading-6 {\n --tw-leading: calc(0.25rem * 6);\n line-height: calc(0.25rem * 6);\n }\n .leading-8 {\n --tw-leading: calc(0.25rem * 8);\n line-height: calc(0.25rem * 8);\n }\n .leading-10 {\n --tw-leading: calc(0.25rem * 10);\n line-height: calc(0.25rem * 10);\n }\n .leading-\\[1\\.5\\] {\n --tw-leading: 1.5;\n line-height: 1.5;\n }\n .leading-\\[calc\\(1\\/\\.75\\)\\] {\n --tw-leading: calc(1 / .75);\n line-height: calc(1 / .75);\n }\n .leading-\\[var\\(--line-height\\)\\] {\n --tw-leading: var(--line-height);\n line-height: var(--line-height);\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .font-bold {\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n .font-light {\n --tw-font-weight: 300;\n font-weight: 300;\n }\n .font-medium {\n --tw-font-weight: 500;\n font-weight: 500;\n }\n .font-normal {\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n .font-semibold {\n --tw-font-weight: 600;\n font-weight: 600;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .break-keep {\n word-break: keep-all;\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-normal {\n white-space: normal;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#54698D\\] {\n color: #54698D;\n }\n .text-\\[inherit\\] {\n color: inherit;\n }\n .text-black {\n color: #000;\n }\n .text-error {\n color: var(--atomic-error);\n }\n .text-gray-500 {\n color: oklch(0.551 0.027 264.364);\n }\n .text-gray-600 {\n color: oklch(0.446 0.03 256.802);\n }\n .text-gray-700 {\n color: oklch(0.373 0.034 259.733);\n }\n .text-gray-900 {\n color: oklch(0.21 0.034 264.665);\n }\n .text-green-600 {\n color: oklch(0.627 0.194 149.214);\n }\n .text-inline-code {\n color: var(--atomic-inline-code);\n }\n .text-neutral {\n color: var(--atomic-neutral);\n }\n .text-neutral-dark {\n color: var(--atomic-neutral-dark);\n }\n .text-on-background {\n color: var(--atomic-on-background);\n }\n .text-on-primary {\n color: var(--atomic-on-primary);\n }\n .text-primary {\n color: var(--atomic-primary);\n }\n .text-primary-light {\n color: var(--atomic-primary-light);\n }\n .text-rating-icon-active {\n color: var(--atomic-rating-icon-active-color, #f6ce3c);\n }\n .text-rating-icon-inactive {\n color: var(\n --atomic-rating-icon-inactive-color,\n var(--atomic-neutral)\n );\n }\n .text-red-600 {\n color: oklch(0.577 0.245 27.325);\n }\n .text-success {\n color: var(--atomic-success);\n }\n .text-transparent {\n color: transparent;\n }\n .capitalize {\n text-transform: capitalize;\n }\n .lowercase {\n text-transform: lowercase;\n }\n .italic {\n font-style: italic;\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .placeholder-neutral-dark::placeholder {\n color: var(--atomic-neutral-dark);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner-primary {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--atomic-primary));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0px 2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-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-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-ring-primary {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-error {\n outline-color: var(--atomic-error);\n }\n .outline-neutral {\n outline-color: var(--atomic-neutral);\n }\n .outline-primary {\n outline-color: var(--atomic-primary);\n }\n .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .invert {\n --tw-invert: invert(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .filter {\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-\\[visibility\\] {\n transition-property: visibility;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .ease-in-out {\n --tw-ease: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .\\[grid-area\\:modal\\] {\n grid-area: modal;\n }\n .\\[scrollbar-gutter\\:stable_both-edges\\] {\n scrollbar-gutter: stable both-edges;\n }\n @media (hover: hover) {\n .group-hover\\:visible:is(:where(.group):hover *) {\n visibility: visible;\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-error:is(:where(.group):hover *) {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-primary:is(:where(.group):hover *) {\n color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-primary-light:is(:where(.group):hover *) {\n color: var(--atomic-primary-light);\n }\n }\n .group-focus\\:text-primary:is(:where(.group):focus *) {\n color: var(--atomic-primary);\n }\n .group-focus\\:text-primary-light:is(:where(.group):focus *) {\n color: var(--atomic-primary-light);\n }\n .group-focus-visible\\:text-error:is(:where(.group):focus-visible *) {\n color: var(--atomic-error);\n }\n .group-focus-visible\\:text-primary:is(:where(.group):focus-visible *) {\n color: var(--atomic-primary);\n }\n .peer-focus-within\\:border-primary-light:is(:where(.peer):focus-within ~ *) {\n border-color: var(--atomic-primary-light);\n }\n .peer-focus-within\\:text-primary-light:is(:where(.peer):focus-within ~ *) {\n color: var(--atomic-primary-light);\n }\n @media (hover: hover) {\n .peer-hover\\:border-primary-light:is(:where(.peer):hover ~ *) {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .peer-hover\\:text-error:is(:where(.peer):hover ~ *) {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .peer-hover\\:text-primary-light:is(:where(.peer):hover ~ *) {\n color: var(--atomic-primary-light);\n }\n }\n .before\\:inline::before {\n content: var(--tw-content);\n display: inline;\n }\n .before\\:content-\\[\\\'\\,\\\\00a0\\\'\\]::before {\n --tw-content: \',\\00a0\';\n content: var(--tw-content);\n }\n .after\\:absolute::after {\n content: var(--tw-content);\n position: absolute;\n }\n .after\\:-bottom-0\\.5::after {\n content: var(--tw-content);\n bottom: calc(0.25rem * -0.5);\n }\n .after\\:block::after {\n content: var(--tw-content);\n display: block;\n }\n .after\\:h-1::after {\n content: var(--tw-content);\n height: calc(0.25rem * 1);\n }\n .after\\:w-full::after {\n content: var(--tw-content);\n width: 100%;\n }\n .after\\:rounded::after {\n content: var(--tw-content);\n border-radius: var(--atomic-border-radius);\n }\n .after\\:bg-primary::after {\n content: var(--tw-content);\n background-color: var(--atomic-primary);\n }\n .focus-within\\:border-disabled:focus-within {\n border-color: var(--atomic-disabled);\n }\n .focus-within\\:border-primary:focus-within {\n border-color: var(--atomic-primary);\n }\n .focus-within\\:ring-3:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus-within\\:ring-neutral:focus-within {\n --tw-ring-color: var(--atomic-neutral);\n }\n .focus-within\\:ring-ring-primary:focus-within {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n @media (hover: hover) {\n .hover\\:border:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n @media (hover: hover) {\n .hover\\:border-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:border-primary-light:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-error:hover {\n background-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-neutral-light:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-primary-light:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-transparent:hover {\n background-color: transparent;\n }\n }\n @media (hover: hover) {\n .hover\\:fill-white:hover {\n fill: #fff;\n }\n }\n @media (hover: hover) {\n .hover\\:text-error:hover {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:text-primary:hover {\n color: var(--atomic-primary);\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\\:text-success:hover {\n color: var(--atomic-success);\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 >= 1024px) {\n .desktop\\:mt-2 {\n margin-top: calc(0.25rem * 2);\n }\n }\n @media (width >= 40rem) {\n .sm\\:px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n }\n .\\[part\\=\\"breadcrumb-button\\"\\]\\:visible:is(part="breadcrumb-button") {\n visibility: visible;\n }\n}\n@layer theme, base, components, utilities;\n@layer components {\n .input-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n }\n @media (hover: hover) {\n .input-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n .input-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .input-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .input-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .input-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n .btn-radio::before {\n --tw-content: attr(value);\n content: var(--tw-content);\n }\n .btn-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-primary);\n color: var(--atomic-on-primary);\n }\n @media (hover: hover) {\n .btn-primary:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n .btn-primary:focus-visible {\n background-color: var(--atomic-primary-light);\n }\n .btn-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-primary:disabled {\n cursor: not-allowed;\n }\n .btn-primary:disabled {\n background-color: var(--atomic-disabled);\n }\n .btn-outline-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-outline-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-primary:disabled {\n cursor: not-allowed;\n }\n .btn-outline-primary:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-primary:disabled {\n color: var(--atomic-neutral);\n }\n .btn-text-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-text-primary:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-text-primary:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-error:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-error:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-error:disabled {\n opacity: 50%;\n }\n .btn-outline-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n color: var(--atomic-error);\n }\n }\n .btn-outline-error:focus-visible {\n border-color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-error:disabled {\n opacity: 50%;\n }\n .btn-text-neutral {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-text-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-text-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-text-transparent {\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-transparent:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-text-transparent:focus-visible {\n color: var(--atomic-primary-light);\n }\n .btn-square-neutral {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-square-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-square-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-square-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-page {\n display: grid;\n height: calc(0.25rem * 10);\n width: calc(0.25rem * 10);\n place-items: center;\n border-style: var(--tw-border-style);\n border-width: 0px;\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n @media (hover: hover) {\n .btn-page:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .btn-page:focus-visible {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .btn-page.selected {\n border-style: var(--tw-border-style);\n border-width: 2px;\n border-color: var(--atomic-primary);\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n}\n@layer base {\n :host {\n display: block;\n }\n :host, button, input, select {\n font-family: var(--atomic-font-family);\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n button {\n cursor: pointer;\n }\n :host(.atomic-hidden) {\n display: none;\n }\n .ripple {\n position: absolute;\n pointer-events: none;\n transform: scale(0);\n border-radius: 50%;\n animation: ripple var(--animation-duration) linear;\n }\n .ripple-relative {\n position: relative;\n }\n .ripple-parent {\n overflow: hidden;\n }\n @keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n }\n}\n.list-wrapper.placeholder .result-component {\n display: none;\n}\n.list-wrapper.placeholder table.list-root {\n display: none;\n}\n.list-wrapper:not(.placeholder) atomic-result-placeholder {\n display: none;\n}\n.list-wrapper:not(.placeholder) atomic-result-table-placeholder {\n display: none;\n}\n.list-root.loading {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes pulse {\n 0%, 100% {\n opacity: 0.6;\n }\n 50% {\n opacity: 0.2;\n }\n}\n:host [part~=\'outline\'][part~=\'result-list-grid-clickable-container\'] {\n position: relative;\n border: 1px solid transparent;\n padding: 1rem;\n border-radius: 1rem;\n transition: all 0.12s ease-out;\n}\n:host [part~=\'outline\'][part~=\'result-list-grid-clickable-container\']:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n box-shadow: 0px 10px 25px var(--atomic-neutral);\n cursor: pointer;\n}\n:host [part=\'result-list-grid-clickable\']:focus-visible {\n border-radius: 2px;\n border-style: var(--tw-border-style);\n border-width: 2px;\n border-color: var(--atomic-primary);\n color: var(--atomic-primary);\n cursor: pointer;\n display: inline-block;\n text-decoration: underline;\n text-align: center;\n position: absolute;\n}\n:host [part=\'result-list-grid-clickable\']:not(:focus) {\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n padding: 0;\n}\n:host .list-wrapper {\n word-break: break-word;\n}\n:host .list-root.display-grid {\n display: grid;\n justify-content: space-evenly;\n}\n:host .list-root.display-grid .result-component {\n height: 100%;\n box-sizing: border-box;\n}\n:host {\n display: block;\n}\n:host .list-root [part~=\'outline\'] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n padding: 1rem;\n border-radius: 1rem;\n}\n:host .list-root atomic-result-placeholder {\n border-color: transparent;\n}\n:host .list-root {\n grid-column-gap: 0.5rem;\n grid-row-gap: 0.5rem;\n grid-template-columns: repeat(var(--atomic-recs-number-of-columns, 1), minmax(0, 1fr));\n}\n:host [part=\'label\'] {\n font-family: var(--atomic-font-family);\n font-size: var(--atomic-text-2xl);\n line-height: var(--tw-leading, calc(2 / 1.5));\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n}\n:host atomic-result:not(.hydrated) {\n visibility: hidden;\n}\n@property --tw-border-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-translate-x {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-gradient-position {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: "*";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: "<length>";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: "*";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: "*";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: "*";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: "*";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: "*";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-invert {\n syntax: "*";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: "*";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: "*";\n inherits: false;\n}\n@property --tw-duration {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ease {\n syntax: "*";\n inherits: false;\n}\n@property --tw-content {\n syntax: "*";\n initial-value: "";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@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-border-style: solid;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: "";\n }\n }\n}\n';const j=z;var R=undefined&&undefined.__decorate||function(n,t,r,i){var e=arguments.length,a=e<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,r):i,o;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")a=Reflect.decorate(n,t,r,i);else for(var l=n.length-1;l>=0;l--)if(o=n[l])a=(e<3?o(a):e>3?o(t,r,a):o(t,r))||a;return e>3&&a&&Object.defineProperty(t,r,a),a};const P=class{constructor(t){n(this,t);this.loadingFlag=p("firstRecommendationLoaded-");this.isAppLoaded=false;this.resultTemplateRegistered=false;this.templateHasError=false;this.currentPage=0;this.recommendation="Recommendation";this.display="list";this.density="normal";this.imageSize="small";this.numberOfRecommendations=10;this.headingLevel=0;this.error=undefined;this.isAppLoaded=false;this.resultTemplateRegistered=false;this.templateHasError=false;this.currentPage=0;this.recommendationListState=undefined;this.recommendation="Recommendation";this.display="list";this.density="normal";this.imageSize="small";this.numberOfRecommendations=10;this.numberOfRecommendationsPerPage=undefined;this.label=undefined;this.headingLevel=0}async watchNumberOfRecommendationsPerPage(){this.currentPage=0}async setRenderFunction(n){this.itemRenderingFunction=n}async previousPage(){this.currentPage=this.currentPage-1<0?this.numberOfPages-1:this.currentPage-1}async nextPage(){this.currentPage=(this.currentPage+1)%this.numberOfPages}initialize(){this.validateNumberOfRecommendationsPerPage();this.validateRecommendationIdentifier();this.updateOriginLevel2();this.recommendationList=o(this.bindings.engine,{options:{id:this.recommendation,numberOfRecommendations:this.numberOfRecommendations}});this.itemTemplateProvider=new h({includeDefaultTemplate:true,templateElements:Array.from(this.host.querySelectorAll("atomic-recs-result-template")),getResultTemplateRegistered:()=>this.resultTemplateRegistered,getTemplateHasError:()=>this.templateHasError,setResultTemplateRegistered:n=>{this.resultTemplateRegistered=n},setTemplateHasError:n=>{this.templateHasError=n},bindings:this.bindings});this.itemListCommon=new g({engineSubscribe:this.bindings.engine.subscribe,getCurrentNumberOfItems:()=>this.recommendationListState.recommendations.length,getIsLoading:()=>this.recommendationListState.isLoading,host:this.host,loadingFlag:this.loadingFlag,nextNewItemTarget:this.focusTarget,store:this.bindings.store});this.actionsHistoryActions=a(this.bindings.engine);f(this.bindings.store,(n=>{this.isAppLoaded=n}))}get focusTarget(){if(!this.nextNewResultTarget){this.nextNewResultTarget=new m(this)}return this.nextNewResultTarget}get recommendationListStateWithAugment(){return{...this.recommendationListState,firstRequestExecuted:this.recommendationListState.searchResponseId!=="",hasError:this.recommendationListState.error!==null,hasItems:this.recommendationListState.recommendations.length!==0,results:this.subsetRecommendations}}validateNumberOfRecommendationsPerPage(){const n=new e({min:1,max:this.numberOfRecommendations-1}).validate(this.numberOfRecommendationsPerPage);if(n){this.error=new Error(`The "numberOfRecommendationsPerPage" is invalid: ${n}`)}}validateRecommendationIdentifier(){const n=document.querySelectorAll(`atomic-ipx-recs-list[recommendation="${this.recommendation}"]`);if(n.length>1){this.bindings.engine.logger.warn(`There are multiple atomic-ipx-recs-list in this page with the same recommendation property "${this.recommendation}". Make sure to set a different recommendation property for each.`)}}updateOriginLevel2(){if(this.label){const n=l(this.bindings.engine).setOriginLevel2({originLevel2:this.label});this.bindings.engine.dispatch(n)}}renderHeading(){if(!this.label){return}if(this.recommendationListStateWithAugment.hasError){return}if(this.recommendationListStateWithAugment.firstRequestExecuted&&!this.recommendationListStateWithAugment.hasItems){return}return t(k,{level:this.headingLevel,part:"label",class:"m-0 mb-2"},this.bindings.i18n.t(this.label))}get currentIndex(){return Math.abs(this.currentPage*this.numberOfRecommendationsPerPage%this.recommendationListState.recommendations.length)}get subsetRecommendations(){if(!this.numberOfRecommendationsPerPage){return this.recommendationListState.recommendations}return this.recommendationListState.recommendations.slice(this.currentIndex,this.currentIndex+this.numberOfRecommendationsPerPage)}get numberOfPages(){return Math.ceil(this.recommendationListState.recommendations.length/this.numberOfRecommendationsPerPage)}get hasPagination(){return!!this.numberOfRecommendationsPerPage}get shouldRenderPagination(){return this.hasPagination&&this.recommendationListStateWithAugment.hasItems}async onSelect(n,t){if(n.raw.permanentid&&this.actionsHistoryActions){const t=this.actionsHistoryActions.addPageViewEntryInActionsHistory(n.raw.permanentid);this.bindings.engine.dispatch(t)}t()}getPropsForAtomicRecsResult(n){const t=s(this.bindings.engine,{options:{result:n}});const r=t.select;t.select=()=>{this.onSelect(n,r)};const i=this.itemTemplateProvider.getLinkTemplateContent(n);return{interactiveResult:t,result:n,renderingFunction:this.itemRenderingFunction,loadingFlag:this.loadingFlag,key:this.itemListCommon.getResultId(n.uniqueId,this.recommendationListState.searchResponseId,this.density,this.imageSize),content:this.itemTemplateProvider.getTemplateContent(n),linkContent:i,stopPropagation:!!i,store:this.bindings.store,density:this.density,display:this.display,imageSize:this.imageSize}}computeListDisplayClasses(){const n=!this.isAppLoaded;return w("grid",this.density,this.imageSize,this.recommendationListState.isLoading,n)}renderAsGrid(n,r){const i=this.getPropsForAtomicRecsResult(n);return t(y,{selectorForItem:"atomic-recs-result",item:n,...i.interactiveResult,setRef:n=>n&&this.itemListCommon.setNewResultRef(n,r)},t("atomic-recs-result",{...i}))}renderListOfRecommendations(){this.itemListCommon.updateBreakpoints();const n=this.computeListDisplayClasses();if(!this.resultTemplateRegistered||this.itemTemplateProvider.hasError||this.error){return}return t(v,{listClasses:n,display:"grid"},t(u,{density:this.density,display:this.display,imageSize:this.imageSize,displayPlaceholders:!this.isAppLoaded,numberOfPlaceholders:this.numberOfRecommendationsPerPage??this.numberOfRecommendations}),t(b,{...this.recommendationListStateWithAugment},this.subsetRecommendations.map(((n,t)=>this.renderAsGrid(n,t)))))}render(){return t(r,{key:"41ba2621fa2b42103447181509d97276dab948cd"},this.renderHeading(),this.shouldRenderPagination?t(x,{bindings:this.bindings,currentPage:this.currentPage,nextPage:()=>this.nextPage(),previousPage:()=>this.previousPage(),numberOfPages:this.numberOfPages},this.renderListOfRecommendations()):this.renderListOfRecommendations())}get host(){return i(this)}static get watchers(){return{numberOfRecommendationsPerPage:["watchNumberOfRecommendationsPerPage"]}}};R([c()],P.prototype,"bindings",void 0);R([d("recommendationList")],P.prototype,"recommendationListState",void 0);P.style=j;export{P as atomic_ipx_recs_list};
2
- //# sourceMappingURL=p-cc6320d9.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["atomicIpxRecsListCss","AtomicIpxRecsListStyle0","AtomicIPXRecsList","this","loadingFlag","randomID","isAppLoaded","resultTemplateRegistered","templateHasError","currentPage","recommendation","display","density","imageSize","numberOfRecommendations","headingLevel","watchNumberOfRecommendationsPerPage","setRenderFunction","resultRenderingFunction","itemRenderingFunction","previousPage","numberOfPages","nextPage","initialize","validateNumberOfRecommendationsPerPage","validateRecommendationIdentifier","updateOriginLevel2","recommendationList","buildRecommendationList","bindings","engine","options","id","itemTemplateProvider","ResultTemplateProvider","includeDefaultTemplate","templateElements","Array","from","host","querySelectorAll","getResultTemplateRegistered","getTemplateHasError","setResultTemplateRegistered","value","setTemplateHasError","itemListCommon","ItemListCommon","engineSubscribe","subscribe","getCurrentNumberOfItems","recommendationListState","recommendations","length","getIsLoading","isLoading","nextNewItemTarget","focusTarget","store","actionsHistoryActions","loadIPXActionsHistoryActions","createAppLoadedListener","nextNewResultTarget","FocusTargetController","recommendationListStateWithAugment","firstRequestExecuted","searchResponseId","hasError","error","hasItems","results","subsetRecommendations","msg","NumberValue","min","max","validate","numberOfRecommendationsPerPage","Error","recListWithRecommendation","document","logger","warn","label","action","loadConfigurationActions","setOriginLevel2","originLevel2","dispatch","renderHeading","h","Heading","level","part","class","i18n","t","currentIndex","Math","abs","slice","ceil","hasPagination","shouldRenderPagination","onSelect","originalSelect","raw","permanentid","addPageViewEntryInActionsHistory","getPropsForAtomicRecsResult","interactiveResult","buildRecsInteractiveResult","result","select","linkContent","getLinkTemplateContent","renderingFunction","key","getResultId","uniqueId","content","getTemplateContent","stopPropagation","computeListDisplayClasses","displayPlaceholders","getItemListDisplayClasses","renderAsGrid","i","propsForAtomicRecsResult","DisplayGrid","selectorForItem","item","setRef","element","setNewResultRef","renderListOfRecommendations","updateBreakpoints","listClasses","DisplayWrapper","ResultsPlaceholdersGuard","numberOfPlaceholders","ItemDisplayGuard","map","render","Fragment","Carousel","__decorate","InitializeBindings","BindStateToController"],"sources":["src/components/ipx/atomic-ipx-recs-list/atomic-recs-list/atomic-ipx-recs-list.pcss?tag=atomic-ipx-recs-list&encapsulation=shadow","src/components/ipx/atomic-ipx-recs-list/atomic-recs-list/atomic-ipx-recs-list.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@import '../../../common/item-list/styles/mixins.pcss';\n@import '../../../common/item-list/styles/placeholders.pcss';\n\n:host {\n @apply atomic-grid-clickable-elements;\n @apply atomic-grid-display-common;\n display: block;\n\n /**\n * @prop --atomic-recs-number-of-columns: Number of columns for the recommendation list.\n */\n .list-root {\n @apply atomic-grid-with-cards;\n grid-template-columns: repeat(var(--atomic-recs-number-of-columns, 1), minmax(0, 1fr));\n }\n\n [part='label'] {\n @apply font-sans text-2xl font-bold;\n }\n\n atomic-result:not(.hydrated) {\n visibility: hidden;\n }\n}\n","import {NumberValue} from '@coveo/bueno';\nimport {\n IPXActionsHistoryActionCreators,\n loadIPXActionsHistoryActions,\n} from '@coveo/headless';\nimport {\n buildRecommendationList,\n RecommendationList,\n RecommendationListState,\n loadConfigurationActions,\n Result as RecsResult,\n buildInteractiveResult as buildRecsInteractiveResult,\n} from '@coveo/headless/recommendation';\nimport {\n Component,\n State,\n Element,\n Prop,\n Method,\n h,\n Fragment,\n Watch,\n} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n BindStateToController,\n} from '../../../../utils/initialization-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {randomID} from '../../../../utils/utils';\nimport {ResultsPlaceholdersGuard} from '../../../common/atomic-result-placeholder/stencil-placeholders';\nimport {createAppLoadedListener} from '../../../common/interface/store';\nimport {ItemDisplayGuard} from '../../../common/item-list/stencil-item-display-guard';\nimport {ResultTemplateProvider} from '../../../common/item-list/result-template-provider';\nimport {DisplayGrid} from '../../../common/item-list/stencil-display-grid';\nimport {DisplayWrapper} from '../../../common/item-list/stencil-display-wrapper';\nimport {\n ItemListCommon,\n ItemRenderingFunction,\n} from '../../../common/item-list/stencil-item-list-common';\nimport {\n getItemListDisplayClasses,\n ItemDisplayBasicLayout,\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../../../common/layout/display-options';\nimport {Carousel} from '../../../common/stencil-carousel';\nimport {Heading} from '../../../common/stencil-heading';\nimport {RecsBindings} from '../../../recommendations/atomic-recs-interface/atomic-recs-interface';\n\n/**\n * The `atomic-ipx-recs-list` component displays recommendations by applying one or more result templates.\n *\n * @part result-list - The element containing the list of results.\n * @part result-list-grid-clickable-container - The parent of the result and the clickable link encompassing it.\n * @part result-list-grid-clickable - The clickable link encompassing the result.\n * @part label - The label of the result list.\n * @part previous-button - The previous button.\n * @part next-button - The next button.\n * @part indicators - The list of indicators.\n * @part indicator - A single indicator.\n * @part active-indicator - The active indicator.\n * @internal\n */\n@Component({\n tag: 'atomic-ipx-recs-list',\n styleUrl: 'atomic-ipx-recs-list.pcss',\n shadow: true,\n})\nexport class AtomicIPXRecsList implements InitializableComponent<RecsBindings> {\n @InitializeBindings() public bindings!: RecsBindings;\n public recommendationList!: RecommendationList;\n private loadingFlag = randomID('firstRecommendationLoaded-');\n private itemRenderingFunction: ItemRenderingFunction;\n private itemTemplateProvider!: ResultTemplateProvider;\n private nextNewResultTarget?: FocusTargetController;\n private itemListCommon!: ItemListCommon;\n private actionsHistoryActions?: IPXActionsHistoryActionCreators;\n\n @Element() public host!: HTMLDivElement;\n\n @State() public error!: Error;\n @State() private isAppLoaded = false;\n @State() private resultTemplateRegistered = false;\n @State() private templateHasError = false;\n @State() private currentPage = 0;\n @BindStateToController('recommendationList')\n @State()\n public recommendationListState!: RecommendationListState;\n\n /**\n * The Recommendation identifier used by the Coveo platform to retrieve recommended documents.\n * Make sure to set a different value for each atomic-ipx-recs-list in your page.\n */\n @Prop({reflect: true}) public recommendation = 'Recommendation';\n\n /**\n * The layout to apply when displaying results themselves. This does not affect the display of the surrounding list itself.\n * To modify the number of recommendations per column, modify the --atomic-recs-number-of-columns CSS variable.\n */\n @Prop({reflect: true}) public display: ItemDisplayBasicLayout = 'list';\n /**\n * The spacing of various elements in the result list, including the gap between results, the gap between parts of a result, and the font sizes of different parts in a result.\n */\n @Prop({reflect: true}) public density: ItemDisplayDensity = 'normal';\n /**\n * The expected size of the image displayed in the results.\n */\n @Prop({reflect: true})\n public imageSize: ItemDisplayImageSize = 'small';\n\n /**\n * The total number of recommendations to display.\n * This does not modify the number of recommendations per column. To do so, modify the --atomic-recs-number-of-columns CSS variable.\n */\n @Prop({reflect: true}) public numberOfRecommendations = 10;\n\n /**\n * The number of recommendations to display, per page.\n * Setting a value greater than and lower than the numberOfRecommendations value activates the carousel.\n * This does not affect the display of the list itself, only the number of recommendation pages.\n */\n @Prop({reflect: true}) public numberOfRecommendationsPerPage?: number;\n\n /**\n * The non-localized label for the list of recommendations.\n */\n @Prop({reflect: true}) public label?: string;\n\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading label, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n\n @Watch('numberOfRecommendationsPerPage')\n public async watchNumberOfRecommendationsPerPage() {\n this.currentPage = 0;\n }\n\n /**\n * Sets a rendering function to bypass the standard HTML template mechanism for rendering results.\n * You can use this function while working with web frameworks that don't use plain HTML syntax such as React, Angular, or Vue.\n *\n * Do not use this method if you integrate Atomic in a plain HTML deployment.\n *\n * @param resultRenderingFunction\n */\n @Method() public async setRenderFunction(\n resultRenderingFunction: ItemRenderingFunction\n ) {\n this.itemRenderingFunction = resultRenderingFunction;\n }\n\n /**\n * Moves to the previous page, when the carousel is activated.\n */\n @Method() public async previousPage() {\n this.currentPage =\n this.currentPage - 1 < 0 ? this.numberOfPages - 1 : this.currentPage - 1;\n }\n\n /**\n * Moves to the next page, when the carousel is activated.\n */\n @Method() public async nextPage() {\n this.currentPage = (this.currentPage + 1) % this.numberOfPages;\n }\n\n public initialize() {\n this.validateNumberOfRecommendationsPerPage();\n this.validateRecommendationIdentifier();\n this.updateOriginLevel2();\n this.recommendationList = buildRecommendationList(this.bindings.engine, {\n options: {\n id: this.recommendation,\n numberOfRecommendations: this.numberOfRecommendations,\n },\n });\n\n this.itemTemplateProvider = new ResultTemplateProvider({\n includeDefaultTemplate: true,\n templateElements: Array.from(\n this.host.querySelectorAll('atomic-recs-result-template')\n ),\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n\n this.itemListCommon = new ItemListCommon({\n engineSubscribe: this.bindings.engine.subscribe,\n getCurrentNumberOfItems: () =>\n this.recommendationListState.recommendations.length,\n getIsLoading: () => this.recommendationListState.isLoading,\n host: this.host,\n loadingFlag: this.loadingFlag,\n nextNewItemTarget: this.focusTarget,\n store: this.bindings.store,\n });\n this.actionsHistoryActions = loadIPXActionsHistoryActions(\n this.bindings.engine\n );\n\n createAppLoadedListener(this.bindings.store, (isAppLoaded) => {\n this.isAppLoaded = isAppLoaded;\n });\n }\n\n public get focusTarget() {\n if (!this.nextNewResultTarget) {\n this.nextNewResultTarget = new FocusTargetController(this);\n }\n return this.nextNewResultTarget;\n }\n\n private get recommendationListStateWithAugment() {\n return {\n ...this.recommendationListState,\n firstRequestExecuted:\n this.recommendationListState.searchResponseId !== '',\n hasError: this.recommendationListState.error !== null,\n hasItems: this.recommendationListState.recommendations.length !== 0,\n results: this.subsetRecommendations,\n };\n }\n\n private validateNumberOfRecommendationsPerPage() {\n const msg = new NumberValue({\n min: 1,\n max: this.numberOfRecommendations - 1,\n }).validate(this.numberOfRecommendationsPerPage!);\n\n if (msg) {\n this.error = new Error(\n `The \"numberOfRecommendationsPerPage\" is invalid: ${msg}`\n );\n }\n }\n\n private validateRecommendationIdentifier() {\n const recListWithRecommendation = document.querySelectorAll(\n `atomic-ipx-recs-list[recommendation=\"${this.recommendation}\"]`\n );\n\n if (recListWithRecommendation.length > 1) {\n this.bindings.engine.logger.warn(\n `There are multiple atomic-ipx-recs-list in this page with the same recommendation property \"${this.recommendation}\". Make sure to set a different recommendation property for each.`\n );\n }\n }\n\n private updateOriginLevel2() {\n if (this.label) {\n const action = loadConfigurationActions(\n this.bindings.engine\n ).setOriginLevel2({\n originLevel2: this.label,\n });\n\n this.bindings.engine.dispatch(action);\n }\n }\n\n private renderHeading() {\n if (!this.label) {\n return;\n }\n\n if (this.recommendationListStateWithAugment.hasError) {\n return;\n }\n\n if (\n this.recommendationListStateWithAugment.firstRequestExecuted &&\n !this.recommendationListStateWithAugment.hasItems\n ) {\n return;\n }\n\n return (\n <Heading level={this.headingLevel} part=\"label\" class=\"m-0 mb-2\">\n {this.bindings.i18n.t(this.label)}\n </Heading>\n );\n }\n\n private get currentIndex() {\n return Math.abs(\n (this.currentPage * this.numberOfRecommendationsPerPage!) %\n this.recommendationListState.recommendations.length\n );\n }\n\n private get subsetRecommendations() {\n if (!this.numberOfRecommendationsPerPage) {\n return this.recommendationListState.recommendations;\n }\n\n return this.recommendationListState.recommendations.slice(\n this.currentIndex,\n this.currentIndex + this.numberOfRecommendationsPerPage\n );\n }\n\n private get numberOfPages() {\n return Math.ceil(\n this.recommendationListState.recommendations.length /\n this.numberOfRecommendationsPerPage!\n );\n }\n\n private get hasPagination() {\n return !!this.numberOfRecommendationsPerPage;\n }\n\n private get shouldRenderPagination() {\n return (\n this.hasPagination && this.recommendationListStateWithAugment.hasItems\n );\n }\n\n private async onSelect(\n recommendation: RecsResult,\n originalSelect: () => void\n ) {\n if (recommendation.raw.permanentid && this.actionsHistoryActions) {\n const action =\n this.actionsHistoryActions.addPageViewEntryInActionsHistory(\n recommendation.raw.permanentid\n );\n this.bindings.engine.dispatch(action);\n }\n originalSelect();\n }\n\n private getPropsForAtomicRecsResult(recommendation: RecsResult) {\n const interactiveResult = buildRecsInteractiveResult(this.bindings.engine, {\n options: {result: recommendation},\n });\n const originalSelect = interactiveResult.select;\n interactiveResult.select = () => {\n this.onSelect(recommendation, originalSelect);\n };\n const linkContent =\n this.itemTemplateProvider.getLinkTemplateContent(recommendation);\n\n return {\n interactiveResult,\n result: recommendation,\n renderingFunction: this.itemRenderingFunction,\n loadingFlag: this.loadingFlag,\n key: this.itemListCommon.getResultId(\n recommendation.uniqueId,\n this.recommendationListState.searchResponseId,\n this.density,\n this.imageSize\n ),\n content: this.itemTemplateProvider.getTemplateContent(recommendation),\n linkContent,\n stopPropagation: !!linkContent,\n store: this.bindings.store,\n density: this.density,\n display: this.display,\n imageSize: this.imageSize,\n };\n }\n\n private computeListDisplayClasses() {\n const displayPlaceholders = !this.isAppLoaded;\n\n return getItemListDisplayClasses(\n 'grid',\n this.density,\n this.imageSize,\n this.recommendationListState.isLoading,\n displayPlaceholders\n );\n }\n\n private renderAsGrid(recommendation: RecsResult, i: number) {\n const propsForAtomicRecsResult =\n this.getPropsForAtomicRecsResult(recommendation);\n return (\n <DisplayGrid\n selectorForItem=\"atomic-recs-result\"\n item={recommendation}\n {...propsForAtomicRecsResult.interactiveResult}\n setRef={(element) =>\n element && this.itemListCommon.setNewResultRef(element, i)\n }\n >\n <atomic-recs-result {...propsForAtomicRecsResult}></atomic-recs-result>\n </DisplayGrid>\n );\n }\n\n private renderListOfRecommendations() {\n this.itemListCommon.updateBreakpoints();\n const listClasses = this.computeListDisplayClasses();\n\n if (\n !this.resultTemplateRegistered ||\n this.itemTemplateProvider.hasError ||\n this.error\n ) {\n return;\n }\n\n return (\n <DisplayWrapper listClasses={listClasses} display=\"grid\">\n <ResultsPlaceholdersGuard\n density={this.density}\n display={this.display}\n imageSize={this.imageSize}\n displayPlaceholders={!this.isAppLoaded}\n numberOfPlaceholders={\n this.numberOfRecommendationsPerPage ?? this.numberOfRecommendations\n }\n ></ResultsPlaceholdersGuard>\n <ItemDisplayGuard {...this.recommendationListStateWithAugment}>\n {this.subsetRecommendations.map((recommendation, i) => {\n return this.renderAsGrid(recommendation, i);\n })}\n </ItemDisplayGuard>\n </DisplayWrapper>\n );\n }\n\n public render() {\n return (\n <Fragment>\n {this.renderHeading()}\n {this.shouldRenderPagination ? (\n <Carousel\n bindings={this.bindings}\n currentPage={this.currentPage}\n nextPage={() => this.nextPage()}\n previousPage={() => this.previousPage()}\n numberOfPages={this.numberOfPages}\n >\n {this.renderListOfRecommendations()}\n </Carousel>\n ) : (\n this.renderListOfRecommendations()\n )}\n </Fragment>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- const n=`<svg viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M1.09619 10.5962L5.69239 6L1.09619 1.40381" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>\n</svg>\n`;export{n as A};
2
- //# sourceMappingURL=p-cfa9c12b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":[],"mappings":"","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{h as t,F as s}from"./p-ec1c5f46.js";import{buildResultTemplatesManager as e}from"@coveo/headless";import{c as i}from"./p-81d6e743.js";import{g as n}from"./p-b3524b97.js";import{o as r,d as a}from"./p-e58840b6.js";import"./p-3df103c1.js";const o=s=>{if(!s.displayPlaceholders){return}switch(s.display){case"table":return t(l,{...s});default:return t(c,{...s})}};const c=s=>Array.from({length:s.numberOfPlaceholders},((e,i)=>t("atomic-result-placeholder",{key:`placeholder-${i}`,density:s.density,display:s.display||"list",imageSize:s.imageSize})));const l=s=>t("atomic-result-table-placeholder",{density:s.density,imageSize:s.imageSize,rows:s.numberOfPlaceholders});const u=(e,i)=>{if(!e.hasItems||!e.firstRequestExecuted){return}return t(s,null,...i)};class h{constructor(t,s){this.props=t;this.buildManager=s;this.templateManager=this.buildManager();this.registerResultTemplates()}async registerResultTemplates(){const t=await Promise.all(this.props.templateElements.map((async t=>{if(!("getTemplate"in t)){await customElements.whenDefined(t.tagName.toLowerCase())}const s=await t.getTemplate();if(!s){this.props.setTemplateHasError(true)}return s})));const s=(!t.length&&this.props.includeDefaultTemplate?[this.makeDefaultTemplate()]:[]).concat(t.filter((t=>t)));this.templateManager.registerTemplates(...s);this.props.setResultTemplateRegistered(true)}getTemplateContent(t){return this.templateManager.selectTemplate(t)}getLinkTemplateContent(t){return this.templateManager.selectLinkTemplate(t)}getEmptyLinkTemplateContent(){return document.createDocumentFragment()}get templatesRegistered(){return this.props.getResultTemplateRegistered()}get hasError(){return this.props.getTemplateHasError()}}class m extends h{constructor(t,s){super(t,(()=>e(t.bindings.engine)));this.gridCellLinkTarget=s}makeDefaultTemplate(){const t=document.createDocumentFragment();const s=document.createElement("atomic-result-link");t.appendChild(s);const e=document.createDocumentFragment();const i=`\n <atomic-result-link>\n ${this.gridCellLinkTarget?`<a slot="attributes" target="${this.gridCellLinkTarget}"></a>`:""}\n </atomic-result-link>\n `;const n=document.createElement("template");n.innerHTML=i.trim();e.appendChild(n.content);return{content:t,linkContent:e,conditions:[]}}}const d=({display:s,listClasses:e},i)=>{if(s==="table"){return t(f,{listClasses:e},...i)}return t(f,{listClasses:e},t("div",{class:`list-root ${e}`,part:"result-list"},i))};const f=({listClasses:s},e)=>t("div",{class:`list-wrapper ${s}`},...e);const p="1024px";function g(t,s){const e=new RegExp(`\\(min-width: ${p}\\)|\\(width >= ${p}\\)`,"g");return t.replace(e,`(width >= ${s})`)}function y(t,s){const e=t.shadowRoot?.adoptedStyleSheets;if(!e||!e.length){return}const i=e[0];const n=Object.values(i.cssRules).map((t=>t.cssText)).join("");i.replaceSync(g(n,s))}function w(t,s){const e=t.shadowRoot?.querySelector("style");if(!e){return}e.textContent=g(e.textContent,s)}const b=["atomic-search-layout","atomic-insight-layout"];function $(t){const s=i(t,b.join(", "));if(!s?.mobileBreakpoint){return}if(s.mobileBreakpoint===p){return}y(t,s.mobileBreakpoint);w(t,s.mobileBreakpoint)}class k{constructor(t){this.props=t;this.props.store.setLoadingFlag(this.props.loadingFlag);this.props.store.state.resultList=this;this.updateBreakpointsOnce=r((()=>$(this.props.host)));this.props.nextNewItemTarget.registerFocusCallback((()=>{this.indexOfResultToFocus=undefined}))}updateBreakpoints(){this.updateBreakpointsOnce()}getResultId(t,s,e,i){return`${t}${s}${e}${i}`}setNewResultRef(t,s){if(s===0){this.firstResultEl=t}if(s!==this.indexOfResultToFocus){return}if(!t.children.length&&!t.shadowRoot?.children.length){return}this.indexOfResultToFocus=undefined;const e=n(t)??t;this.props.nextNewItemTarget.setTarget(e)}focusOnNextNewResult(){this.indexOfResultToFocus=this.props.getCurrentNumberOfItems();this.props.nextNewItemTarget.focusOnNextTarget()}async focusOnFirstResultAfterNextSearch(){await a();return new Promise((t=>{if(this.props.getIsLoading()){this.firstResultEl=undefined}const s=this.props.engineSubscribe((async()=>{await a();if(!this.props.getIsLoading()&&this.firstResultEl){const e=n(this.firstResultEl)??this.firstResultEl;this.props.nextNewItemTarget.setTarget(e);this.props.nextNewItemTarget.focus();this.firstResultEl=undefined;s();t()}}))}))}}function R(t){switch(t){case"grid":return"display-grid";case"table":return"display-table";default:return"display-list"}}function C(t){switch(t){case"comfortable":return"density-comfortable";case"compact":return"density-compact";default:return"density-normal"}}function j(t){switch(t){case"large":return"image-large";case"small":return"image-small";case"none":return"image-none";default:return"image-icon"}}function x(t,s,e,i,n){const r=T(t,s,e);if(i){r.push("loading")}if(n){r.push("placeholder")}return r.join(" ")}function T(t,s,e){const i=[R(t),C(s),j(e)];return i}const E=x;export{d as D,k as I,m as R,o as a,u as b,E as g};
2
- //# sourceMappingURL=p-d189f1a5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["ResultsPlaceholdersGuard","props","displayPlaceholders","display","h","TableDisplayResultsPlaceholder","ResultsPlaceholder","Array","from","length","numberOfPlaceholders","_","i","key","density","imageSize","rows","ItemDisplayGuard","children","hasItems","firstRequestExecuted","Fragment","TemplateProvider","constructor","buildManager","this","templateManager","registerResultTemplates","customTemplates","Promise","all","templateElements","map","async","resultTemplateElement","customElements","whenDefined","tagName","toLowerCase","template","getTemplate","setTemplateHasError","templates","includeDefaultTemplate","makeDefaultTemplate","concat","filter","registerTemplates","setResultTemplateRegistered","getTemplateContent","item","selectTemplate","getLinkTemplateContent","selectLinkTemplate","getEmptyLinkTemplateContent","document","createDocumentFragment","templatesRegistered","getResultTemplateRegistered","hasError","getTemplateHasError","ResultTemplateProvider","gridCellLinkTarget","super","buildResultTemplatesManager","bindings","engine","content","linkEl","createElement","appendChild","linkContent","linkMarkup","linkTemplate","innerHTML","trim","conditions","DisplayWrapper","listClasses","ListWrapper","class","part","DEFAULT_MOBILE_BREAKPOINT","replaceMediaQuery","style","mobileBreakpoint","regex","RegExp","replace","replaceStyleSheet","element","stylesheets","shadowRoot","adoptedStyleSheets","stylesheet","Object","values","cssRules","rule","cssText","join","replaceSync","replateStyleContent","breakpoint","styleTag","querySelector","textContent","layouts","updateBreakpoints","layout","closest","ItemListCommon","store","setLoadingFlag","loadingFlag","state","resultList","updateBreakpointsOnce","once","host","nextNewItemTarget","registerFocusCallback","indexOfResultToFocus","undefined","getResultId","uniqueIdOnResult","searchResponseId","setNewResultRef","resultIndex","firstResultEl","elementToFocus","getFirstFocusableDescendant","setTarget","focusOnNextNewResult","getCurrentNumberOfItems","focusOnNextTarget","focusOnFirstResultAfterNextSearch","defer","resolve","getIsLoading","unsub","engineSubscribe","focus","getDisplayClass","getDensityClass","getImageClass","image","getItemListDisplayClasses","isLoading","isAppLoading","classes","getItemDisplayClasses","push","getItemListDisplayClassesImport"],"sources":["src/components/common/atomic-result-placeholder/stencil-placeholders.tsx","src/components/common/item-list/stencil-item-display-guard.tsx","src/components/common/template-provider/template-provider.ts","src/components/common/item-list/result-template-provider.ts","src/components/common/item-list/stencil-display-wrapper.tsx","src/utils/replace-breakpoint-utils.ts","src/components/common/item-list/stencil-item-list-common.tsx","src/components/common/layout/item-layout-utils.ts","src/components/common/layout/display-options.ts"],"sourcesContent":["// The Lit equivalent of this file is item-placeholders.ts. The Lit version doesn't include the placeholder guard.\nimport {FunctionalComponent, h} from '@stencil/core';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n ItemDisplayLayout,\n} from '../layout/display-options.js';\n\ninterface ResultPlaceholderProps {\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n display: ItemDisplayLayout;\n numberOfPlaceholders: number;\n}\n\ninterface ResultPlaceholderGuardProps extends ResultPlaceholderProps {\n displayPlaceholders: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ResultsPlaceholdersGuard: FunctionalComponent<\n ResultPlaceholderGuardProps\n> = (props) => {\n if (!props.displayPlaceholders) {\n return;\n }\n switch (props.display) {\n case 'table':\n return <TableDisplayResultsPlaceholder {...props} />;\n default:\n return <ResultsPlaceholder {...props} />;\n }\n};\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ResultsPlaceholder: FunctionalComponent<ResultPlaceholderProps> = (\n props\n) => {\n return Array.from({length: props.numberOfPlaceholders}, (_, i) => (\n <atomic-result-placeholder\n key={`placeholder-${i}`}\n density={props.density}\n display={props.display || 'list'}\n imageSize={props.imageSize}\n ></atomic-result-placeholder>\n ));\n};\n\nconst TableDisplayResultsPlaceholder: FunctionalComponent<\n ResultPlaceholderProps\n> = (props) => {\n return (\n <atomic-result-table-placeholder\n density={props.density}\n imageSize={props.imageSize}\n rows={props.numberOfPlaceholders}\n ></atomic-result-table-placeholder>\n );\n};\n","import {FunctionalComponent, h, Fragment} from '@stencil/core';\n\ninterface ItemDisplayGuardProps {\n firstRequestExecuted: boolean;\n hasItems: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ItemDisplayGuard: FunctionalComponent<ItemDisplayGuardProps> = (\n props,\n children\n) => {\n if (!props.hasItems || !props.firstRequestExecuted) {\n return;\n }\n\n return <Fragment>{...children}</Fragment>;\n};\n","import type {Template, TemplatesManager} from '@coveo/headless';\n\nexport interface TemplateElement<ItemType> extends HTMLElement {\n getTemplate(): Promise<Template<ItemType, DocumentFragment> | null>;\n}\n\nexport interface TemplateProviderProps<ItemType> {\n getResultTemplateRegistered(): boolean;\n setResultTemplateRegistered(value: boolean): void;\n getTemplateHasError(): boolean;\n setTemplateHasError(value: boolean): void;\n templateElements: TemplateElement<ItemType>[];\n includeDefaultTemplate: boolean;\n}\n\nexport abstract class TemplateProvider<ItemType> {\n private templateManager: TemplatesManager<\n ItemType,\n DocumentFragment,\n DocumentFragment\n >;\n\n protected abstract makeDefaultTemplate(): Template<\n ItemType,\n DocumentFragment,\n DocumentFragment\n >;\n\n constructor(\n private props: TemplateProviderProps<ItemType>,\n private buildManager: () => TemplatesManager<\n ItemType,\n DocumentFragment,\n DocumentFragment\n >\n ) {\n this.templateManager = this.buildManager();\n this.registerResultTemplates();\n }\n\n private async registerResultTemplates() {\n const customTemplates = await Promise.all(\n this.props.templateElements.map(async (resultTemplateElement) => {\n if (!('getTemplate' in resultTemplateElement)) {\n await customElements.whenDefined(\n (resultTemplateElement as HTMLElement).tagName.toLowerCase()\n );\n }\n\n const template = await resultTemplateElement.getTemplate();\n if (!template) {\n this.props.setTemplateHasError(true);\n }\n return template;\n })\n );\n\n const templates = (\n !customTemplates.length && this.props.includeDefaultTemplate\n ? [this.makeDefaultTemplate()]\n : []\n ).concat(\n customTemplates.filter((template) => template) as Template<\n ItemType,\n DocumentFragment,\n DocumentFragment\n >[]\n );\n\n this.templateManager.registerTemplates(...templates);\n this.props.setResultTemplateRegistered(true);\n }\n\n public getTemplateContent(item: ItemType) {\n return this.templateManager.selectTemplate(item)!;\n }\n\n public getLinkTemplateContent(item: ItemType) {\n return this.templateManager.selectLinkTemplate(item)!;\n }\n\n public getEmptyLinkTemplateContent() {\n return document.createDocumentFragment();\n }\n\n public get templatesRegistered() {\n return this.props.getResultTemplateRegistered();\n }\n\n public get hasError() {\n return this.props.getTemplateHasError();\n }\n}\n","import {\n buildResultTemplatesManager,\n type Result,\n type Template,\n} from '@coveo/headless';\nimport type {ItemTarget} from '@/src/components/common/layout/item-layout-utils';\nimport type {AnyBindings} from '../interface/bindings';\nimport {\n TemplateProvider,\n type TemplateProviderProps,\n} from '../template-provider/template-provider';\n// TODO: add this import once this class isn't used in Stencil components anymore\n// import '@/src/components/search/atomic-result-link/atomic-result-link';\n\nexport class ResultTemplateProvider extends TemplateProvider<Result> {\n constructor(\n props: TemplateProviderProps<Result> & {bindings: AnyBindings},\n private gridCellLinkTarget?: ItemTarget\n ) {\n super(props, () => buildResultTemplatesManager(props.bindings.engine));\n }\n\n // TODO: Add JSX support for default template\n protected makeDefaultTemplate(): Template<\n Result,\n DocumentFragment,\n DocumentFragment\n > {\n const content = document.createDocumentFragment();\n const linkEl = document.createElement('atomic-result-link');\n content.appendChild(linkEl);\n\n const linkContent = document.createDocumentFragment();\n const linkMarkup = `\n <atomic-result-link>\n ${this.gridCellLinkTarget ? `<a slot=\"attributes\" target=\"${this.gridCellLinkTarget}\"></a>` : ''}\n </atomic-result-link>\n `;\n const linkTemplate = document.createElement('template');\n linkTemplate.innerHTML = linkMarkup.trim();\n linkContent.appendChild(linkTemplate.content);\n return {\n content,\n linkContent,\n conditions: [],\n };\n }\n}\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {ItemDisplayLayout} from '../layout/display-options.js';\n\ninterface DisplayWrapperProps {\n display: ItemDisplayLayout;\n listClasses: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const DisplayWrapper: FunctionalComponent<DisplayWrapperProps> = (\n {display, listClasses},\n children\n) => {\n if (display === 'table') {\n return <ListWrapper listClasses={listClasses}>{...children}</ListWrapper>;\n }\n\n return (\n <ListWrapper listClasses={listClasses}>\n <div class={`list-root ${listClasses}`} part=\"result-list\">\n {children}\n </div>\n </ListWrapper>\n );\n};\n\nconst ListWrapper: FunctionalComponent<\n Pick<DisplayWrapperProps, 'listClasses'>\n> = ({listClasses}, children) => {\n return <div class={`list-wrapper ${listClasses}`}>{...children}</div>;\n};\n","import {closest} from './dom-utils';\n\nexport const DEFAULT_MOBILE_BREAKPOINT = '1024px';\n\nfunction replaceMediaQuery(style: string, mobileBreakpoint: string) {\n const regex = new RegExp(\n `\\\\(min-width: ${DEFAULT_MOBILE_BREAKPOINT}\\\\)|\\\\(width >= ${DEFAULT_MOBILE_BREAKPOINT}\\\\)`,\n 'g'\n );\n return style.replace(regex, `(width >= ${mobileBreakpoint})`);\n}\n\nfunction replaceStyleSheet(element: HTMLElement, mobileBreakpoint: string) {\n const stylesheets = element.shadowRoot?.adoptedStyleSheets;\n if (!stylesheets || !stylesheets.length) {\n return;\n }\n\n const stylesheet = stylesheets[0];\n const style = Object.values(stylesheet.cssRules)\n .map((rule) => rule.cssText)\n .join('');\n stylesheet.replaceSync(replaceMediaQuery(style, mobileBreakpoint));\n}\n\nfunction replateStyleContent(element: HTMLElement, breakpoint: string) {\n const styleTag = element.shadowRoot?.querySelector('style');\n if (!styleTag) {\n return;\n }\n\n styleTag.textContent = replaceMediaQuery(styleTag.textContent!, breakpoint);\n}\n\nconst layouts = ['atomic-search-layout', 'atomic-insight-layout'];\ntype LayoutElement = HTMLElement & {mobileBreakpoint: string};\nexport function updateBreakpoints(element: HTMLElement) {\n const layout: LayoutElement | null = closest(element, layouts.join(', '));\n\n if (!layout?.mobileBreakpoint) {\n return;\n }\n\n if (layout.mobileBreakpoint === DEFAULT_MOBILE_BREAKPOINT) {\n return;\n }\n\n replaceStyleSheet(element, layout.mobileBreakpoint);\n replateStyleContent(element, layout.mobileBreakpoint);\n}\n","import {updateBreakpoints} from '../../../utils/replace-breakpoint-utils';\nimport {\n FocusTargetController,\n getFirstFocusableDescendant,\n} from '../../../utils/stencil-accessibility-utils';\nimport {defer, once} from '../../../utils/utils';\nimport {CommerceStore} from '../../commerce/atomic-commerce-interface/store';\nimport {CommerceRecommendationStore} from '../../commerce/atomic-commerce-recommendation-interface/store';\nimport {InsightStore} from '../../insight/atomic-insight-interface/store';\nimport {RecsStore} from '../../recommendations/atomic-recs-interface/store';\nimport {SearchStore} from '../../search/atomic-search-interface/store';\nimport {AnyItem} from './unfolded-item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\n\nexport const resultComponentClass = 'result-component';\n\nexport type ItemRenderingFunction<SpecificResult extends AnyItem = AnyItem> =\n | ((\n result: SpecificResult,\n root: HTMLElement,\n linkContainer?: HTMLElement\n ) => string)\n | undefined;\n\nexport interface ItemListCommonProps {\n store:\n | CommerceStore\n | CommerceRecommendationStore\n | RecsStore\n | InsightStore\n | SearchStore;\n loadingFlag: string;\n host: HTMLElement;\n nextNewItemTarget: FocusTargetController;\n getCurrentNumberOfItems: () => number;\n getIsLoading: () => boolean;\n engineSubscribe: (cb: () => void) => () => void;\n}\n\nexport class ItemListCommon {\n private indexOfResultToFocus?: number;\n private firstResultEl?: HTMLElement;\n private updateBreakpointsOnce: () => void;\n\n constructor(private props: ItemListCommonProps) {\n this.props.store.setLoadingFlag(this.props.loadingFlag);\n this.props.store.state.resultList = this;\n this.updateBreakpointsOnce = once(() => updateBreakpoints(this.props.host));\n this.props.nextNewItemTarget.registerFocusCallback(() => {\n this.indexOfResultToFocus = undefined;\n });\n }\n\n public updateBreakpoints() {\n this.updateBreakpointsOnce();\n }\n\n public getResultId(\n uniqueIdOnResult: string,\n searchResponseId: string,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n return `${uniqueIdOnResult}${searchResponseId}${density}${imageSize}`;\n }\n\n public setNewResultRef(element: HTMLElement, resultIndex: number) {\n if (resultIndex === 0) {\n this.firstResultEl = element;\n }\n if (resultIndex !== this.indexOfResultToFocus) {\n return;\n }\n\n if (!element.children.length && !element.shadowRoot?.children.length) {\n return;\n }\n\n this.indexOfResultToFocus = undefined;\n const elementToFocus = getFirstFocusableDescendant(element) ?? element;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n }\n\n public focusOnNextNewResult() {\n this.indexOfResultToFocus = this.props.getCurrentNumberOfItems();\n this.props.nextNewItemTarget.focusOnNextTarget();\n }\n\n public async focusOnFirstResultAfterNextSearch() {\n await defer();\n return new Promise<void>((resolve) => {\n if (this.props.getIsLoading()) {\n this.firstResultEl = undefined;\n }\n\n const unsub = this.props.engineSubscribe(async () => {\n await defer();\n if (!this.props.getIsLoading() && this.firstResultEl) {\n const elementToFocus =\n getFirstFocusableDescendant(this.firstResultEl) ??\n this.firstResultEl;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n this.props.nextNewItemTarget.focus();\n this.firstResultEl = undefined;\n unsub();\n resolve();\n }\n });\n });\n }\n}\n","import {\n containsSections,\n type ItemSectionTagName,\n} from './item-layout-sections';\n\nexport interface ItemLayoutConfig {\n children: HTMLCollection;\n display: ItemDisplayLayout;\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n}\n\nexport type ItemDisplayBasicLayout = 'list' | 'grid';\nexport type ItemDisplayLayout = ItemDisplayBasicLayout | 'table';\nexport type ItemDisplayDensity = 'comfortable' | 'normal' | 'compact';\nexport type ItemDisplayImageSize = 'large' | 'small' | 'icon' | 'none';\nexport type ItemTarget = '_self' | '_blank' | '_parent' | '_top';\n\nfunction getDisplayClass(display: ItemDisplayLayout) {\n switch (display) {\n case 'grid':\n return 'display-grid';\n case 'table':\n return 'display-table';\n default:\n return 'display-list';\n }\n}\n\nfunction getDensityClass(density: ItemDisplayDensity) {\n switch (density) {\n case 'comfortable':\n return 'density-comfortable';\n case 'compact':\n return 'density-compact';\n default:\n return 'density-normal';\n }\n}\n\nfunction getImageClass(image: ItemDisplayImageSize) {\n switch (image) {\n case 'large':\n return 'image-large';\n case 'small':\n return 'image-small';\n case 'none':\n return 'image-none';\n default:\n return 'image-icon';\n }\n}\n\nexport function getItemListDisplayClasses(\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n image: ItemDisplayImageSize,\n isLoading: boolean,\n isAppLoading: boolean\n) {\n const classes = getItemDisplayClasses(display, density, image);\n\n if (isLoading) {\n classes.push('loading');\n }\n\n if (isAppLoading) {\n classes.push('placeholder');\n }\n return classes.join(' ');\n}\n\nexport function getItemDisplayClasses(\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n image: ItemDisplayImageSize\n) {\n const classes = [\n getDisplayClass(display),\n getDensityClass(density),\n getImageClass(image),\n ];\n return classes;\n}\n\nfunction getSection(\n children: HTMLCollection,\n section: ItemSectionTagName\n): Element | undefined {\n return Array.from(children).find(\n (element) => element.tagName.toLowerCase() === section\n );\n}\n\nfunction getImageSizeFromSections(\n children: HTMLCollection\n): ItemDisplayImageSize | undefined {\n const imageSize = getSection(\n children,\n 'atomic-result-section-visual'\n )?.getAttribute('image-size');\n if (!imageSize) {\n return undefined;\n }\n return imageSize as ItemDisplayImageSize;\n}\n\nexport function getItemLayoutClasses(\n config: ItemLayoutConfig,\n HTMLContent?: string\n): string[] {\n const classes = getItemDisplayClasses(\n config.display,\n config.density,\n getImageSizeFromSections(config.children) ?? config.imageSize\n );\n if (\n HTMLContent\n ? containsSections(HTMLContent)\n : containsSections(config.children)\n ) {\n classes.push('with-sections');\n }\n return classes;\n}\n","import {\n getItemDisplayClasses as getItemDisplayClassesImport,\n getItemLayoutClasses,\n getItemListDisplayClasses as getItemListDisplayClassesImport,\n type ItemDisplayBasicLayout as ItemDisplayBasicLayoutImport,\n type ItemDisplayDensity as ItemDisplayDensityImport,\n type ItemDisplayImageSize as ItemDisplayImageSizeImport,\n type ItemDisplayLayout as ItemDisplayLayoutImport,\n type ItemTarget as ItemTargetImport,\n} from './item-layout-utils';\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayBasicLayout = ItemDisplayBasicLayoutImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayDensity = ItemDisplayDensityImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayImageSize = ItemDisplayImageSizeImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayLayout = ItemDisplayLayoutImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemTarget = ItemTargetImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport const getItemDisplayClasses: typeof getItemDisplayClassesImport =\n getItemDisplayClassesImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport const getItemListDisplayClasses: typeof getItemListDisplayClassesImport =\n getItemListDisplayClassesImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, use `getItemLayoutClasses` with `ItemLayoutConfig` from `packages/atomic/src/components/common/layout/item-layout-utils.ts` instead.\n */\nexport class ItemLayout {\n private children: HTMLCollection;\n private density: ItemDisplayDensity;\n private imageSize: ItemDisplayImageSize;\n private display: ItemDisplayLayout;\n\n constructor(\n children: HTMLCollection,\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n this.children = children;\n this.display = display;\n this.density = density;\n this.imageSize = imageSize;\n }\n\n public getClasses(HTMLContent?: string) {\n return getItemLayoutClasses(\n {\n children: this.children,\n display: this.display,\n density: this.density,\n imageSize: this.imageSize,\n },\n HTMLContent\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import"./p-3df103c1.js";function n(n){let t;let r=n;return function(...n){if(r){t=r.apply(this,n);r=null}return t}}function t(n){return n.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function r(n){return n.replace(/-./g,(n=>n[1].toUpperCase()))}function e(n,t=5){const r=Math.random().toString(36).substring(2,2+t);if(!n){return r}return n+r}function u(n){return n.nodeType===Node.ELEMENT_NODE}function i(n){return n.nodeType===Node.TEXT_NODE}function o(n){if(u(n)){return!(n instanceof HTMLStyleElement)}if(i(n)){return!!n.textContent?.trim()}return false}function f(n,t){return n.reduce(((n,r,e)=>{const u=t(r,e);if(!(u in n)){n[u]=[]}n[u].push(r);return n}),{})}async function s(){return new Promise((n=>setTimeout(n,10)))}export{f as a,o as b,t as c,s as d,u as i,r as k,n as o,e as r};
2
- //# sourceMappingURL=p-e58840b6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["once","fn","result","callable","args","apply","this","camelToKebab","value","replace","toLowerCase","kebabToCamel","x","toUpperCase","randomID","prepend","length","randomStr","Math","random","toString","substring","isElementNode","node","nodeType","Node","ELEMENT_NODE","isTextNode","TEXT_NODE","isVisualNode","HTMLStyleElement","textContent","trim","aggregate","values","getKey","reduce","aggregatedValues","i","key","push","async","defer","Promise","resolve","setTimeout"],"sources":["src/utils/utils.ts"],"sourcesContent":["import DOMPurify from 'dompurify';\n\n/**\n * Returns a function that can be executed only once\n */\nexport function once<T extends unknown[], R>(fn: (...args: T) => R) {\n let result: R;\n let callable: ((...args: T) => R) | null = fn;\n return function (this: unknown, ...args: T) {\n if (callable) {\n result = callable.apply(this, args);\n callable = null; // Allow garbage collection\n }\n return result;\n };\n}\n\nexport function camelToKebab(value: string) {\n return value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function kebabToCamel(value: string) {\n return value.replace(/-./g, (x) => x[1].toUpperCase());\n}\n\nexport function snakeToCamel(value: string) {\n return value\n .toLowerCase()\n .replace(/([_][a-z])/g, (group) => group.toUpperCase().replace('_', ''));\n}\n\nexport function titleToKebab(value: string) {\n return value.replace(/\\s/g, '-').toLowerCase();\n}\n\nexport function randomID(prepend?: string, length = 5) {\n const randomStr = Math.random()\n .toString(36)\n .substring(2, 2 + length);\n if (!prepend) {\n return randomStr;\n }\n return prepend + randomStr;\n}\n\nexport function getRandomArbitrary(min: number, max: number) {\n return Math.random() * (max - min) + min;\n}\n\nexport function parseXML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/xml');\n}\n\nexport function parseHTML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/html');\n}\n\nexport function isElementNode(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nexport function isVisualNode(node: Node) {\n if (isElementNode(node)) {\n return !(node instanceof HTMLStyleElement);\n }\n if (isTextNode(node)) {\n return !!node.textContent?.trim();\n }\n return false;\n}\n\nexport function containsVisualElement(node: Node) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes.item(i);\n if (isVisualNode(child)) {\n return true;\n }\n }\n return false;\n}\n\nexport function elementHasAncestorTag(\n el: HTMLElement,\n tagName: string\n): boolean {\n const parentElement = el.parentElement;\n if (!parentElement) {\n return false;\n }\n if (parentElement.tagName === tagName.toUpperCase()) {\n return true;\n }\n return elementHasAncestorTag(parentElement, tagName);\n}\n\nexport function sanitizeStyle(style: string) {\n const purifiedOuterHTML = DOMPurify.sanitize(`<style>${style}</style>`, {\n ALLOWED_TAGS: ['style'],\n ALLOWED_ATTR: [],\n FORCE_BODY: true,\n });\n const wrapperEl = document.createElement('div');\n // deepcode ignore ReactSetInnerHtml: sanitized by dompurify\n wrapperEl.innerHTML = purifiedOuterHTML;\n return wrapperEl.querySelector('style')?.innerHTML;\n}\n\nexport function getFocusedElement(\n rootElement: Document | ShadowRoot = document\n): Element | null {\n const activeElement = rootElement.activeElement;\n if (activeElement?.shadowRoot) {\n return getFocusedElement(activeElement.shadowRoot) ?? activeElement;\n }\n return activeElement;\n}\n\nexport function isFocusingOut(event: FocusEvent) {\n return (\n document.hasFocus() &&\n (!(event.relatedTarget instanceof Node) ||\n (event.currentTarget instanceof Node &&\n !event.currentTarget.contains(event.relatedTarget)))\n );\n}\n\n// https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\nexport function isInDocument(element: Node) {\n let currentElement = element;\n while (currentElement?.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n } else if (currentElement.parentNode instanceof ShadowRoot) {\n currentElement = currentElement.parentNode.host;\n } else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\n\nexport function isPropValuesEqual<ObjectWithProperties extends object>(\n subject: ObjectWithProperties,\n target: ObjectWithProperties,\n propNames: (keyof ObjectWithProperties)[]\n) {\n return propNames.every((propName) => subject[propName] === target[propName]);\n}\n\nexport function getParent(element: Element | ShadowRoot) {\n if (element.parentNode) {\n return element.parentNode as Element | ShadowRoot;\n }\n if (element instanceof ShadowRoot) {\n return element.host;\n }\n return null;\n}\n\nexport function isAncestorOf(\n ancestor: Element | ShadowRoot,\n element: Element | ShadowRoot\n): boolean {\n if (element === ancestor) {\n return true;\n }\n if (\n element instanceof HTMLElement &&\n element.assignedSlot &&\n isAncestorOf(ancestor, element.assignedSlot)\n ) {\n return true;\n }\n const parent = getParent(element);\n return parent === null ? false : isAncestorOf(ancestor, parent);\n}\n\nexport function aggregate<V, K extends PropertyKey>(\n values: readonly V[],\n getKey: (value: V, index: number) => K\n): Record<K, V[] | undefined> {\n return values.reduce(\n (aggregatedValues, value, i) => {\n const key = getKey(value, i);\n if (!(key in aggregatedValues)) {\n aggregatedValues[key] = [];\n }\n aggregatedValues[key]!.push(value);\n return aggregatedValues;\n },\n <Record<K, V[] | undefined>>{}\n );\n}\n\n/**\n * Similar as a classic spread, but preserve all characteristics of properties (e.g. getter/setter).\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#description\n * for an explanation why (spread & assign work similarly).\n * @param objects the objects to \"spread\" together\n * @returns the spread result\n */\nexport function spreadProperties<Output extends object = {}>(\n ...objects: object[]\n) {\n const returnObject = {};\n for (const obj of objects) {\n Object.defineProperties(\n returnObject,\n Object.getOwnPropertyDescriptors(obj)\n );\n }\n return returnObject as Output;\n}\n\nexport const sortByDocumentPosition = (a: Node, b: Node): 1 | -1 =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n\nexport async function defer() {\n return new Promise<void>((resolve) => setTimeout(resolve, 10));\n}\n"],"mappings":"iCAKgBA,EAA6BC,GAC3C,IAAIC,EACJ,IAAIC,EAAuCF,EAC3C,OAAO,YAA4BG,GACjC,GAAID,EAAU,CACZD,EAASC,EAASE,MAAMC,KAAMF,GAC9BD,EAAW,I,CAEb,OAAOD,C,CAEX,C,SAEgBK,EAAaC,GAC3B,OAAOA,EAAMC,QAAQ,+BAAgC,SAASC,aAChE,C,SAEgBC,EAAaH,GAC3B,OAAOA,EAAMC,QAAQ,OAAQG,GAAMA,EAAE,GAAGC,eAC1C,C,SAYgBC,EAASC,EAAkBC,EAAS,GAClD,MAAMC,EAAYC,KAAKC,SACpBC,SAAS,IACTC,UAAU,EAAG,EAAIL,GACpB,IAAKD,EAAS,CACZ,OAAOE,C,CAET,OAAOF,EAAUE,CACnB,C,SAcgBK,EAAcC,GAC5B,OAAOA,EAAKC,WAAaC,KAAKC,YAChC,C,SAEgBC,EAAWJ,GACzB,OAAOA,EAAKC,WAAaC,KAAKG,SAChC,C,SAEgBC,EAAaN,GAC3B,GAAID,EAAcC,GAAO,CACvB,QAASA,aAAgBO,iB,CAE3B,GAAIH,EAAWJ,GAAO,CACpB,QAASA,EAAKQ,aAAaC,M,CAE7B,OAAO,KACT,C,SA4GgBC,EACdC,EACAC,GAEA,OAAOD,EAAOE,QACZ,CAACC,EAAkB7B,EAAO8B,KACxB,MAAMC,EAAMJ,EAAO3B,EAAO8B,GAC1B,KAAMC,KAAOF,GAAmB,CAC9BA,EAAiBE,GAAO,E,CAE1BF,EAAiBE,GAAMC,KAAKhC,GAC5B,OAAO6B,CAAgB,GAEG,GAEhC,CAyBOI,eAAeC,IACpB,OAAO,IAAIC,SAAeC,GAAYC,WAAWD,EAAS,KAC5D,Q","ignoreList":[]}