@coveo/atomic 3.33.2-pre.e4fb163395 → 3.33.2-pre.e94e8db0bb
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.
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/_index.d.ts +0 -2
- package/dist/atomic/components/_index.js +0 -1
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-insight-result2.js +1 -1
- package/dist/atomic/components/atomic-insight-result2.js.map +1 -1
- package/dist/atomic/components/atomic-recs-result2.js +1 -1
- package/dist/atomic/components/atomic-recs-result2.js.map +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js.map +1 -1
- package/dist/atomic/components/atomic-result2.js +1 -1
- package/dist/atomic/components/atomic-result2.js.map +1 -1
- package/dist/atomic/components/atomic-search-interface.js +10 -3
- package/dist/atomic/components/atomic-search-interface.js.map +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/store.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +3 -3
- package/dist/atomic/components/components/commerce/atomic-product/atomic-product.tw.css.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-section-metadata/atomic-product-section-metadata.js +2 -3
- package/dist/atomic/components/components/search/atomic-search-interface/store.js +1 -1
- package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +51 -0
- package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.tw.css.js +3 -0
- package/dist/atomic/components/components/search/index.js +1 -0
- package/dist/atomic/components/components/search/lazy-index.js +1 -0
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/p-100da102.entry.js +2 -0
- package/dist/atomic/{p-3f5b0f2c.entry.js.map → p-100da102.entry.js.map} +1 -1
- package/dist/atomic/p-3bda3e96.entry.js +2 -0
- package/dist/atomic/{p-64eea96f.entry.js.map → p-3bda3e96.entry.js.map} +1 -1
- package/dist/atomic/{p-c7148cb3.entry.js → p-489ef7f7.entry.js} +2 -2
- package/dist/atomic/p-75851b6c.entry.js +2 -0
- package/dist/atomic/{p-230401e2.entry.js.map → p-75851b6c.entry.js.map} +1 -1
- package/dist/atomic/{p-7cb51f11.js → p-80580dbe.js} +2 -2
- package/dist/atomic/p-84929ae8.entry.js +2 -0
- package/dist/atomic/p-84929ae8.entry.js.map +1 -0
- package/dist/atomic/p-d824c0c2.entry.js +2 -0
- package/dist/atomic/{p-bddc94b1.entry.js.map → p-d824c0c2.entry.js.map} +1 -1
- package/dist/atomic/{p-d971c7fa.entry.js → p-ef8ed03b.entry.js} +2 -2
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-6ab54be0.js → analytics-config-ac1ab015.js} +2 -2
- package/dist/cjs/{analytics-config-6ab54be0.js.map → analytics-config-ac1ab015.js.map} +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +15 -9
- package/dist/cjs/atomic-search-interface.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/index-757bc886.js +0 -4
- package/dist/cjs/version.cjs.js +1 -1
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/{analytics-config-5781be24.js → analytics-config-952e5837.js} +2 -2
- package/dist/esm/{analytics-config-5781be24.js.map → analytics-config-952e5837.js.map} +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-insight-result.entry.js +1 -1
- package/dist/esm/atomic-insight-result.entry.js.map +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-recs-result.entry.js +1 -1
- package/dist/esm/atomic-recs-result.entry.js.map +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js.map +1 -1
- package/dist/esm/atomic-result.entry.js +1 -1
- package/dist/esm/atomic-result.entry.js.map +1 -1
- package/dist/esm/atomic-search-interface.entry.js +11 -5
- package/dist/esm/atomic-search-interface.entry.js.map +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/index-3f35faca.js +0 -4
- package/dist/esm/version.js +1 -1
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +3 -3
- package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +26 -0
- package/dist/types/components/search/atomic-search-layout/atomic-search-layout.tw.css.d.ts +2 -0
- package/dist/types/components/search/index.d.ts +1 -0
- package/dist/types/components.d.ts +0 -33
- package/docs/atomic-docs.json +1 -58
- package/package.json +1 -1
- package/dist/atomic/components/atomic-search-layout.d.ts +0 -11
- package/dist/atomic/components/atomic-search-layout.js +0 -65
- package/dist/atomic/components/atomic-search-layout.js.map +0 -1
- package/dist/atomic/components/search-layout.js +0 -100
- package/dist/atomic/components/search-layout.js.map +0 -1
- package/dist/atomic/p-02916ea5.entry.js +0 -2
- package/dist/atomic/p-02916ea5.entry.js.map +0 -1
- package/dist/atomic/p-230401e2.entry.js +0 -2
- package/dist/atomic/p-3f5b0f2c.entry.js +0 -2
- package/dist/atomic/p-64eea96f.entry.js +0 -2
- package/dist/atomic/p-85ef2ce8.js +0 -2
- package/dist/atomic/p-85ef2ce8.js.map +0 -1
- package/dist/atomic/p-bddc94b1.entry.js +0 -2
- package/dist/atomic/p-e53d70db.entry.js +0 -2
- package/dist/atomic/p-e53d70db.entry.js.map +0 -1
- package/dist/cjs/atomic-search-layout.cjs.entry.js +0 -57
- package/dist/cjs/atomic-search-layout.cjs.entry.js.map +0 -1
- package/dist/cjs/search-layout-b597f6fc.js +0 -106
- package/dist/cjs/search-layout-b597f6fc.js.map +0 -1
- package/dist/esm/atomic-search-layout.entry.js +0 -53
- package/dist/esm/atomic-search-layout.entry.js.map +0 -1
- package/dist/esm/search-layout-fdd7a917.js +0 -100
- package/dist/esm/search-layout-fdd7a917.js.map +0 -1
- package/dist/types/components/search/atomic-layout/atomic-search-layout.d.ts +0 -16
- /package/dist/atomic/components/components/search/{atomic-layout → atomic-search-layout}/search-layout.js +0 -0
- /package/dist/atomic/{p-c7148cb3.entry.js.map → p-489ef7f7.entry.js.map} +0 -0
- /package/dist/atomic/{p-7cb51f11.js.map → p-80580dbe.js.map} +0 -0
- /package/dist/atomic/{p-d971c7fa.entry.js.map → p-ef8ed03b.entry.js.map} +0 -0
- /package/dist/types/components/search/{atomic-layout → atomic-search-layout}/search-layout.d.ts +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as n,s as t,h as r,g as e}from"./p-dc3df5ce.js";import{m as i}from"./p-05de7ca3.js";import{loadSearchConfigurationActions as a,loadQueryActions as o,EcommerceDefaultFieldsToInclude as l,loadFieldActions as s,buildSearchEngine as c,buildUrlManager as d,buildSearchStatus as h}from"@coveo/headless";import{g as w,d as m,c as p,a as g,b,C as v,i as u,m as f}from"./p-7cb51f11.js";import{a as y,S as x}from"./p-946fe85f.js";import{A as k}from"./p-16f5daf9.js";import{m as z,n as j,e as S,f as F}from"./p-85ef2ce8.js";import{D as C}from"./p-7dd93292.js";import{u as I,s as A,r as E,g as L,w as M,a as P}from"./p-5cafb3fe.js";import"./p-35e58270.js";import"./p-0462f723.js";import"./p-f284897c.js";import"@coveo/bueno";import"./p-0f506869.js";import"./p-9c7dbbdf.js";import"./p-c9074946.js";function T(n,t,r){switch(n.analytics?.analyticsMode){case"next":return w(n,t);default:return q(n,t,r)}}function q(n,t,r){const e=(t,e)=>H(t,e,r,n);const i={analyticsClientMiddleware:e,enabled:t,...p()};const a={...m()};if(n.analytics){return{...i,...n.analytics,analyticsClientMiddleware:e,...a}}return{...i,...a}}function H(n,t,r,e){let i=g(n,t,e);i=b(i);i=R(i,r);return i}function R(n,t){const r=t.getAllFacets();const e=(n,t)=>r[n]?r[n].label():t;if(n.facetState){n.facetState=n.facetState.map((n=>{const{id:t,title:r}=n;return{...n,title:e(t,r)}}))}if(n.customData?.facetTitle&&n.customData.facetId&&n.customData.facetTitle){n.customData.facetTitle=e(n.customData.facetId,n.customData.facetTitle)}return n}function U(){const n=P({loadingFlags:[],iconAssetsPath:"",resultList:undefined,mobileBreakpoint:C,facets:{},numericFacets:{},dateFacets:{},categoryFacets:{},facetElements:[],fieldsToInclude:[],sortOptions:[]});return{...n,unsetLoadingFlag(t){I(n,t)},setLoadingFlag(t){A(n,t)},isMobile(){return!window.matchMedia(z(n.state.mobileBreakpoint)).matches},registerFacet(t,r){E(n,t,r)},getFacetElements(){return L(n)},waitUntilAppLoaded(t){M(n,t)},getUniqueIDFromEngine(n){return n.state.search.response.searchUid},hasLoadingFlag(t){return n.state.loadingFlags.indexOf(t)!==-1},getAllFacets(){return{...n.state.facets,...n.state.dateFacets,...n.state.categoryFacets,...n.state.numericFacets}},addFieldsToInclude(t){const r=n.state.fieldsToInclude;n.state.fieldsToInclude=[...r,...t]}}}const D='/*! tailwindcss v4.1.11 | 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 :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden="until-found"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container {\n container-type: inline-size;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .collapse {\n visibility: collapse;\n }\n .invisible {\n visibility: hidden;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .-top-2 {\n top: calc(0.25rem * -2);\n }\n .-top-4 {\n top: calc(0.25rem * -4);\n }\n .top-0 {\n top: calc(0.25rem * 0);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-6 {\n top: calc(0.25rem * 6);\n }\n .top-\\[4px\\] {\n top: 4px;\n }\n .top-full {\n top: 100%;\n }\n .top-px {\n top: 1px;\n }\n .-right-2 {\n right: calc(0.25rem * -2);\n }\n .right-0 {\n right: calc(0.25rem * 0);\n }\n .right-2 {\n right: calc(0.25rem * 2);\n }\n .right-6 {\n right: calc(0.25rem * 6);\n }\n .right-12 {\n right: calc(0.25rem * 12);\n }\n .right-20 {\n right: calc(0.25rem * 20);\n }\n .right-px {\n right: 1px;\n }\n .bottom-0 {\n bottom: calc(0.25rem * 0);\n }\n .bottom-1 {\n bottom: calc(0.25rem * 1);\n }\n .bottom-2 {\n bottom: calc(0.25rem * 2);\n }\n .bottom-px {\n bottom: 1px;\n }\n .left-0 {\n left: calc(0.25rem * 0);\n }\n .left-1 {\n left: calc(0.25rem * 1);\n }\n .left-2 {\n left: calc(0.25rem * 2);\n }\n .left-\\[15px\\] {\n left: 15px;\n }\n .isolate {\n isolation: isolate;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-10 {\n z-index: 10;\n }\n .z-9998 {\n z-index: 9998;\n }\n .z-9999 {\n z-index: 9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .container {\n width: 100%;\n }\n @media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n }\n @media (width >= 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n @media (width >= 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n @media (width >= 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n @media (width >= 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n @media (width >= 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n .m-0 {\n margin: calc(0.25rem * 0);\n }\n .m-2 {\n margin: calc(0.25rem * 2);\n }\n .mx-0 {\n margin-inline: calc(0.25rem * 0);\n }\n .mx-0\\.5 {\n margin-inline: calc(0.25rem * 0.5);\n }\n .mx-1 {\n margin-inline: calc(0.25rem * 1);\n }\n .mx-6 {\n margin-inline: calc(0.25rem * 6);\n }\n .mx-16 {\n margin-inline: calc(0.25rem * 16);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-2 {\n margin-block: calc(0.25rem * 2);\n }\n .my-3 {\n margin-block: calc(0.25rem * 3);\n }\n .my-4 {\n margin-block: calc(0.25rem * 4);\n }\n .my-6 {\n margin-block: calc(0.25rem * 6);\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-top: calc(0.25rem * 0);\n }\n .mt-1 {\n margin-top: calc(0.25rem * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(0.25rem * 1.5);\n }\n .mt-2 {\n margin-top: calc(0.25rem * 2);\n }\n .mt-2\\.5 {\n margin-top: calc(0.25rem * 2.5);\n }\n .mt-3 {\n margin-top: calc(0.25rem * 3);\n }\n .mt-4 {\n margin-top: calc(0.25rem * 4);\n }\n .mt-6 {\n margin-top: calc(0.25rem * 6);\n }\n .mt-7 {\n margin-top: calc(0.25rem * 7);\n }\n .mt-8 {\n margin-top: calc(0.25rem * 8);\n }\n .mt-10 {\n margin-top: calc(0.25rem * 10);\n }\n .mt-px {\n margin-top: 1px;\n }\n .mr-0 {\n margin-right: calc(0.25rem * 0);\n }\n .mr-0\\.5 {\n margin-right: calc(0.25rem * 0.5);\n }\n .mr-1 {\n margin-right: calc(0.25rem * 1);\n }\n .mr-1\\.5 {\n margin-right: calc(0.25rem * 1.5);\n }\n .mr-2 {\n margin-right: calc(0.25rem * 2);\n }\n .mr-3 {\n margin-right: calc(0.25rem * 3);\n }\n .mr-6 {\n margin-right: calc(0.25rem * 6);\n }\n .mb-0 {\n margin-bottom: calc(0.25rem * 0);\n }\n .mb-1 {\n margin-bottom: calc(0.25rem * 1);\n }\n .mb-2 {\n margin-bottom: calc(0.25rem * 2);\n }\n .mb-3 {\n margin-bottom: calc(0.25rem * 3);\n }\n .mb-4 {\n margin-bottom: calc(0.25rem * 4);\n }\n .mb-6 {\n margin-bottom: calc(0.25rem * 6);\n }\n .ml-0\\.5 {\n margin-left: calc(0.25rem * 0.5);\n }\n .ml-1 {\n margin-left: calc(0.25rem * 1);\n }\n .ml-2 {\n margin-left: calc(0.25rem * 2);\n }\n .ml-4 {\n margin-left: calc(0.25rem * 4);\n }\n .ml-6 {\n margin-left: calc(0.25rem * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .box-border {\n box-sizing: border-box;\n }\n .box-content {\n box-sizing: content-box;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .line-clamp-4 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n }\n .line-clamp-none {\n overflow: visible;\n display: block;\n -webkit-box-orient: horizontal;\n -webkit-line-clamp: unset;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .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 .w-0\\.5 {\n width: calc(0.25rem * 0.5);\n }\n .w-1 {\n width: calc(0.25rem * 1);\n }\n .w-1\\/2 {\n width: calc(1/2 * 100%);\n }\n .w-2 {\n width: calc(0.25rem * 2);\n }\n .w-2\\.5 {\n width: calc(0.25rem * 2.5);\n }\n .w-3 {\n width: calc(0.25rem * 3);\n }\n .w-3\\.5 {\n width: calc(0.25rem * 3.5);\n }\n .w-3\\/5 {\n width: calc(3/5 * 100%);\n }\n .w-4 {\n width: calc(0.25rem * 4);\n }\n .w-5 {\n width: calc(0.25rem * 5);\n }\n .w-5\\/6 {\n width: calc(5/6 * 100%);\n }\n .w-6 {\n width: calc(0.25rem * 6);\n }\n .w-7 {\n width: calc(0.25rem * 7);\n }\n .w-8 {\n width: calc(0.25rem * 8);\n }\n .w-9 {\n width: calc(0.25rem * 9);\n }\n .w-10 {\n width: calc(0.25rem * 10);\n }\n .w-12 {\n width: calc(0.25rem * 12);\n }\n .w-20 {\n width: calc(0.25rem * 20);\n }\n .w-26 {\n width: calc(0.25rem * 26);\n }\n .w-28 {\n width: calc(0.25rem * 28);\n }\n .w-32 {\n width: calc(0.25rem * 32);\n }\n .w-36 {\n width: calc(0.25rem * 36);\n }\n .w-44 {\n width: calc(0.25rem * 44);\n }\n .w-48 {\n width: calc(0.25rem * 48);\n }\n .w-60 {\n width: calc(0.25rem * 60);\n }\n .w-64 {\n width: calc(0.25rem * 64);\n }\n .w-72 {\n width: calc(0.25rem * 72);\n }\n .w-100 {\n width: calc(0.25rem * 100);\n }\n .w-\\[2\\.6rem\\] {\n width: 2.6rem;\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .max-w-4\\/5 {\n max-width: calc(4/5 * 100%);\n }\n .max-w-60 {\n max-width: calc(0.25rem * 60);\n }\n .max-w-\\[30ch\\] {\n max-width: 30ch;\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-lg {\n max-width: 32rem;\n }\n .max-w-max {\n max-width: max-content;\n }\n .min-w-0 {\n min-width: calc(0.25rem * 0);\n }\n .min-w-10 {\n min-width: calc(0.25rem * 10);\n }\n .min-w-20 {\n min-width: calc(0.25rem * 20);\n }\n .min-w-24 {\n min-width: calc(0.25rem * 24);\n }\n .min-w-full {\n min-width: 100%;\n }\n .flex-1 {\n flex: 1;\n }\n .flex-none {\n flex: none;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .flex-grow {\n flex-grow: 1;\n }\n .grow {\n flex-grow: 1;\n }\n .basis-1\\/2 {\n flex-basis: calc(1/2 * 100%);\n }\n .basis-8 {\n flex-basis: calc(0.25rem * 8);\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1\\/2 {\n --tw-translate-x: calc(1/2 * 100%);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-75 {\n --tw-scale-x: 75%;\n --tw-scale-y: 75%;\n --tw-scale-z: 75%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n .cursor-\\[inherit\\] {\n cursor: inherit;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .list-outside {\n list-style-position: outside;\n }\n .list-decimal {\n list-style-type: decimal;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-\\[min-content_1fr\\] {\n grid-template-columns: min-content 1fr;\n }\n .grid-cols-\\[min-content_auto\\] {\n grid-template-columns: min-content auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .place-items-center {\n place-items: center;\n }\n .content-center {\n align-content: center;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-0\\.5 {\n gap: calc(0.25rem * 0.5);\n }\n .gap-1 {\n gap: calc(0.25rem * 1);\n }\n .gap-2 {\n gap: calc(0.25rem * 2);\n }\n .gap-3 {\n gap: calc(0.25rem * 3);\n }\n .gap-4 {\n gap: calc(0.25rem * 4);\n }\n .gap-8 {\n gap: calc(0.25rem * 8);\n }\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n .gap-x-1\\.5 {\n column-gap: calc(0.25rem * 1.5);\n }\n .gap-x-2 {\n column-gap: calc(0.25rem * 2);\n }\n .gap-x-4 {\n column-gap: calc(0.25rem * 4);\n }\n :where(.space-x-1\\.5 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(0.25rem * 1.5) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(0.25rem * 1.5) * calc(1 - var(--tw-space-x-reverse)));\n }\n .gap-y-0\\.5 {\n row-gap: calc(0.25rem * 0.5);\n }\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n :where(.divide-neutral > :not(:last-child)) {\n border-color: var(--atomic-neutral);\n }\n .self-center {\n align-self: center;\n }\n .self-start {\n align-self: flex-start;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-clip {\n overflow-x: clip;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .scroll-smooth {\n scroll-behavior: smooth;\n }\n .rounded {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-3xl {\n border-radius: 1.5rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--atomic-border-radius-lg);\n }\n .rounded-md {\n border-radius: var(--atomic-border-radius-md);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-xl {\n border-radius: var(--atomic-border-radius-xl);\n }\n .rounded-tl-none {\n border-top-left-radius: 0;\n }\n .rounded-r-none {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-gray-200 {\n border-color: oklch(0.928 0.006 264.531);\n }\n .border-neutral {\n border-color: var(--atomic-neutral);\n }\n .border-neutral-dark {\n border-color: var(--atomic-neutral-dark);\n }\n .border-neutral-dim {\n border-color: var(--atomic-neutral-dim);\n }\n .border-primary {\n border-color: var(--atomic-primary);\n }\n .border-primary-light {\n border-color: var(--atomic-primary-light);\n }\n .border-t-neutral {\n border-top-color: var(--atomic-neutral);\n }\n .border-b-neutral {\n border-bottom-color: var(--atomic-neutral);\n }\n .border-b-neutral-dim {\n border-bottom-color: var(--atomic-neutral-dim);\n }\n .border-l-neutral {\n border-left-color: var(--atomic-neutral);\n }\n .border-l-neutral-dim {\n border-left-color: var(--atomic-neutral-dim);\n }\n .bg-\\[\\#F1F2FF\\] {\n background-color: #F1F2FF;\n }\n .bg-background {\n background-color: var(--atomic-background);\n }\n .bg-error {\n background-color: var(--atomic-error);\n }\n .bg-gray-50 {\n background-color: oklch(0.985 0.002 247.839);\n }\n .bg-neutral {\n background-color: var(--atomic-neutral);\n }\n .bg-neutral-dark {\n background-color: var(--atomic-neutral-dark);\n }\n .bg-neutral-light {\n background-color: var(--atomic-neutral-light);\n }\n .bg-primary {\n background-color: var(--atomic-primary);\n }\n .bg-primary-background {\n background-color: var(--atomic-primary-background);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: #fff;\n }\n .bg-linear-to-l {\n --tw-gradient-position: to left;\n }\n @supports (background-image: linear-gradient(in lab, red, red)) {\n .bg-linear-to-l {\n --tw-gradient-position: to left in oklab;\n }\n }\n .bg-linear-to-l {\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-linear-to-r {\n --tw-gradient-position: to right;\n }\n @supports (background-image: linear-gradient(in lab, red, red)) {\n .bg-linear-to-r {\n --tw-gradient-position: to right in oklab;\n }\n }\n .bg-linear-to-r {\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-background\\/60 {\n --tw-gradient-from: color-mix(in srgb, #ffffff 60%, transparent);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .from-background\\/60 {\n --tw-gradient-from: color-mix(in oklab, var(--atomic-background) 60%, transparent);\n }\n }\n .from-background\\/60 {\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-more-results-progress-bar-color-from {\n --tw-gradient-from: var(\n --atomic-more-results-progress-bar-color-from,\n var(--atomic-primary-dark)\n );\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-more-results-progress-bar-color-to {\n --tw-gradient-to: var(\n --atomic-more-results-progress-bar-color-to,\n var(--atomic-primary-light)\n );\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .fill-current {\n fill: currentcolor;\n }\n .stroke-\\[1\\.25\\] {\n stroke-width: 1.25;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-0 {\n padding: calc(0.25rem * 0);\n }\n .p-1 {\n padding: calc(0.25rem * 1);\n }\n .p-2 {\n padding: calc(0.25rem * 2);\n }\n .p-2\\.5 {\n padding: calc(0.25rem * 2.5);\n }\n .p-3 {\n padding: calc(0.25rem * 3);\n }\n .p-3\\.5 {\n padding: calc(0.25rem * 3.5);\n }\n .p-4 {\n padding: calc(0.25rem * 4);\n }\n .p-6 {\n padding: calc(0.25rem * 6);\n }\n .p-7 {\n padding: calc(0.25rem * 7);\n }\n .p-8 {\n padding: calc(0.25rem * 8);\n }\n .px-1 {\n padding-inline: calc(0.25rem * 1);\n }\n .px-2 {\n padding-inline: calc(0.25rem * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(0.25rem * 2.5);\n }\n .px-3 {\n padding-inline: calc(0.25rem * 3);\n }\n .px-4 {\n padding-inline: calc(0.25rem * 4);\n }\n .px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n .px-9 {\n padding-inline: calc(0.25rem * 9);\n }\n .py-0\\.5 {\n padding-block: calc(0.25rem * 0.5);\n }\n .py-1 {\n padding-block: calc(0.25rem * 1);\n }\n .py-1\\.5 {\n padding-block: calc(0.25rem * 1.5);\n }\n .py-2 {\n padding-block: calc(0.25rem * 2);\n }\n .py-2\\.5 {\n padding-block: calc(0.25rem * 2.5);\n }\n .py-3 {\n padding-block: calc(0.25rem * 3);\n }\n .py-3\\.5 {\n padding-block: calc(0.25rem * 3.5);\n }\n .py-4 {\n padding-block: calc(0.25rem * 4);\n }\n .py-5 {\n padding-block: calc(0.25rem * 5);\n }\n .pt-0\\.5 {\n padding-top: calc(0.25rem * 0.5);\n }\n .pt-8 {\n padding-top: calc(0.25rem * 8);\n }\n .pr-2 {\n padding-right: calc(0.25rem * 2);\n }\n .pr-6 {\n padding-right: calc(0.25rem * 6);\n }\n .pr-24 {\n padding-right: calc(0.25rem * 24);\n }\n .pb-1 {\n padding-bottom: calc(0.25rem * 1);\n }\n .pb-3 {\n padding-bottom: calc(0.25rem * 3);\n }\n .pb-4 {\n padding-bottom: calc(0.25rem * 4);\n }\n .pb-6 {\n padding-bottom: calc(0.25rem * 6);\n }\n .pl-0 {\n padding-left: calc(0.25rem * 0);\n }\n .pl-1 {\n padding-left: calc(0.25rem * 1);\n }\n .pl-3 {\n padding-left: calc(0.25rem * 3);\n }\n .pl-7 {\n padding-left: calc(0.25rem * 7);\n }\n .pl-9 {\n padding-left: calc(0.25rem * 9);\n }\n .pl-10 {\n padding-left: calc(0.25rem * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .align-baseline {\n vertical-align: baseline;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-sans {\n font-family: var(--atomic-font-family);\n }\n .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-success {\n color: var(--atomic-success);\n }\n .text-transparent {\n color: transparent;\n }\n .capitalize {\n text-transform: capitalize;\n }\n .lowercase {\n text-transform: lowercase;\n }\n .italic {\n font-style: italic;\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .placeholder-neutral-dark::placeholder {\n color: var(--atomic-neutral-dark);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner-primary {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--atomic-primary));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0px 2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-t-lg {\n --tw-shadow: 0px -2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-3 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-primary {\n --tw-ring-color: var(--atomic-primary);\n }\n .ring-primary-light {\n --tw-ring-color: var(--atomic-primary-light);\n }\n .ring-ring-primary {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-error {\n outline-color: var(--atomic-error);\n }\n .outline-neutral {\n outline-color: var(--atomic-neutral);\n }\n .outline-primary {\n outline-color: var(--atomic-primary);\n }\n .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .invert {\n --tw-invert: invert(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .filter {\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-\\[visibility\\] {\n transition-property: visibility;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .\\[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 content: var(--tw-content);\n --tw-content: \',\\00a0\';\n content: var(--tw-content);\n }\n .after\\:absolute::after {\n content: var(--tw-content);\n position: absolute;\n }\n .after\\:-bottom-0\\.5::after {\n content: var(--tw-content);\n bottom: calc(0.25rem * -0.5);\n }\n .after\\:block::after {\n content: var(--tw-content);\n display: block;\n }\n .after\\:h-1::after {\n content: var(--tw-content);\n height: calc(0.25rem * 1);\n }\n .after\\:w-full::after {\n content: var(--tw-content);\n width: 100%;\n }\n .after\\:rounded::after {\n content: var(--tw-content);\n border-radius: var(--atomic-border-radius);\n }\n .after\\:bg-primary::after {\n content: var(--tw-content);\n background-color: var(--atomic-primary);\n }\n .focus-within\\:border-disabled:focus-within {\n border-color: var(--atomic-disabled);\n }\n .focus-within\\:border-primary:focus-within {\n border-color: var(--atomic-primary);\n }\n .focus-within\\:ring-3:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus-within\\:ring-neutral:focus-within {\n --tw-ring-color: var(--atomic-neutral);\n }\n .focus-within\\:ring-ring-primary:focus-within {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n @media (hover: hover) {\n .hover\\:border:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n @media (hover: hover) {\n .hover\\:border-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:border-primary-light:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-error:hover {\n background-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-neutral-light:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-primary-light:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-transparent:hover {\n background-color: transparent;\n }\n }\n @media (hover: hover) {\n .hover\\:fill-white:hover {\n fill: #fff;\n }\n }\n @media (hover: hover) {\n .hover\\:text-primary-light:hover {\n color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n @media (hover: hover) {\n .hover\\:opacity-100:hover {\n opacity: 100%;\n }\n }\n @media (hover: hover) {\n .hover\\:shadow-sm:hover {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:opacity-100:focus {\n opacity: 100%;\n }\n .focus\\:outline-hidden:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n @media (forced-colors: active) {\n .focus\\:outline-hidden:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .focus-visible\\:border:focus-visible {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .focus-visible\\:border-error:focus-visible {\n border-color: var(--atomic-error);\n }\n .focus-visible\\:border-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .focus-visible\\:border-primary-light:focus-visible {\n border-color: var(--atomic-primary-light);\n }\n .focus-visible\\:bg-error:focus-visible {\n background-color: var(--atomic-error);\n }\n .focus-visible\\:bg-neutral-light:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .focus-visible\\:bg-primary-light:focus-visible {\n background-color: var(--atomic-primary-light);\n }\n .focus-visible\\:text-primary-light:focus-visible {\n color: var(--atomic-primary-light);\n }\n .focus-visible\\:underline:focus-visible {\n text-decoration-line: underline;\n }\n .focus-visible\\:ring-2:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n @media (width >= 40rem) {\n .sm\\:px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n }\n .\\[part\\=\\"breadcrumb-button\\"\\]\\:visible:is(part="breadcrumb-button") {\n visibility: visible;\n }\n}\n@layer theme, base, components, utilities;\n@layer components {\n .input-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n }\n @media (hover: hover) {\n .input-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n .input-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .input-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .input-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .input-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n .btn-radio::before {\n content: var(--tw-content);\n --tw-content: attr(value);\n content: var(--tw-content);\n }\n .btn-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-primary);\n color: var(--atomic-on-primary);\n }\n @media (hover: hover) {\n .btn-primary:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n .btn-primary:focus-visible {\n background-color: var(--atomic-primary-light);\n }\n .btn-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-primary:disabled {\n cursor: not-allowed;\n }\n .btn-primary:disabled {\n background-color: var(--atomic-disabled);\n }\n .btn-outline-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-outline-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-primary:disabled {\n cursor: not-allowed;\n }\n .btn-outline-primary:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-primary:disabled {\n color: var(--atomic-neutral);\n }\n .btn-text-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-text-primary:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-text-primary:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-error:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-error:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-error:disabled {\n opacity: 50%;\n }\n .btn-outline-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n color: var(--atomic-error);\n }\n }\n .btn-outline-error:focus-visible {\n border-color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-error:disabled {\n opacity: 50%;\n }\n .btn-text-neutral {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-text-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-text-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-text-transparent {\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-transparent:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-text-transparent:focus-visible {\n color: var(--atomic-primary-light);\n }\n .btn-square-neutral {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-square-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-square-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-square-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-page {\n display: grid;\n height: calc(0.25rem * 10);\n width: calc(0.25rem * 10);\n place-items: center;\n border-style: var(--tw-border-style);\n border-width: 0px;\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n @media (hover: hover) {\n .btn-page:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .btn-page:focus-visible {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .btn-page.selected {\n border-style: var(--tw-border-style);\n border-width: 2px;\n border-color: var(--atomic-primary);\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n border-color: oklch(0.928 0.006 264.531);\n }\n :host {\n display: block;\n }\n :host, button, input, select {\n font-family: var(--atomic-font-family);\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n button {\n cursor: pointer;\n }\n :host(.atomic-hidden) {\n display: none;\n }\n .ripple {\n position: absolute;\n pointer-events: none;\n transform: scale(0);\n border-radius: 50%;\n animation: ripple var(--animation-duration) linear;\n }\n .ripple-relative {\n position: relative;\n }\n .ripple-parent {\n overflow: hidden;\n }\n @keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n }\n}\n@keyframes scaleUp {\n 0% {\n transform: scale(0.7) translateY(150vh);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1) translateY(0px);\n opacity: 1;\n }\n}\n@keyframes slideDown {\n 0% {\n transform: translateY(0px);\n opacity: 1;\n }\n 100% {\n transform: translateY(150vh);\n opacity: 0.7;\n }\n}\n:host {\n display: block;\n height: inherit;\n width: inherit;\n}\n:host > slot {\n height: inherit;\n}\n@property --tw-translate-x {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: "*";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: "*";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: "<color>";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: "*";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: "<length-percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: "*";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: "<length>";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: "*";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: "*";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: "*";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: "*";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: "*";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-invert {\n syntax: "*";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: "*";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: "<percentage>";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: "*";\n inherits: false;\n}\n@property --tw-duration {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ease {\n syntax: "*";\n inherits: false;\n}\n@property --tw-content {\n syntax: "*";\n initial-value: "";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: "";\n }\n }\n}\n';const O=D;var Y=undefined&&undefined.__decorate||function(n,t,r,e){var i=arguments.length,a=i<3?t:e===null?e=Object.getOwnPropertyDescriptor(t,r):e,o;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")a=Reflect.decorate(n,t,r,e);else for(var l=n.length-1;l>=0;l--)if(o=n[l])a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a;return i>3&&a&&Object.defineProperty(t,r,a),a};const $="firstSearchExecuted";const _=class{constructor(t){n(this,t);this.unsubscribeUrlManager=()=>{};this.unsubscribeSearchStatus=()=>{};this.initialized=false;this.relevanceInspectorIsOpen=false;this.fieldsToInclude="[]";this.analytics=true;this.language="en";this.reflectStateInUrl=true;this.scrollContainer="atomic-search-interface";this.languageAssetsPath="./lang";this.iconAssetsPath="./assets";this.enableRelevanceInspector=true;this.onHashChange=()=>{this.urlManager.synchronize(this.fragment)};this.error=undefined;this.relevanceInspectorIsOpen=false;this.fieldsToInclude="[]";this.pipeline=undefined;this.searchHub=undefined;this.analytics=true;this.timezone=undefined;this.logLevel=undefined;this.i18n=undefined;this.language="en";this.engine=undefined;this.reflectStateInUrl=true;this.scrollContainer="atomic-search-interface";this.languageAssetsPath="./lang";this.iconAssetsPath="./assets";this.enableRelevanceInspector=true;this.CspNonce=undefined;this.initRelevanceInspector();this.commonInterfaceHelper=new v(this,"CoveoAtomic");this.store=U();({promise:this.componentWillLoadCalledPromise,resolve:this.componentWillLoadResolver}=Promise.withResolvers());const{promise:r,resolve:e}=Promise.withResolvers();this.i18Initialized=r;this.i18n=u.createInstance(undefined,e)}connectedCallback(){this.store.setLoadingFlag($);this.updateMobileBreakpoint()}componentWillLoad(){if(this.CspNonce){t(this.CspNonce)}this.initAriaLive();this.initFieldsToInclude();this.componentWillLoadResolver()}updateSearchConfiguration(n,t){if(!this.commonInterfaceHelper.engineIsCreated(this.engine)){return}if(this.engine.state[n]===t){return}const{updateSearchConfiguration:r}=a(this.engine);this.engine.dispatch(r({[n]:t}))}updateSearchHub(){this.updateSearchConfiguration("searchHub",this.searchHub??"default")}updatePipeline(){this.updateSearchConfiguration("pipeline",this.pipeline)}toggleAnalytics(){if(!this.commonInterfaceHelper.engineIsCreated(this.engine)){return}this.commonInterfaceHelper.onAnalyticsChange()}updateLanguage(){if(!this.commonInterfaceHelper.engineIsCreated(this.engine)){return}const{updateSearchConfiguration:n}=a(this.engine);this.engine.dispatch(n({locale:this.language}));return this.commonInterfaceHelper.onLanguageChange()}updateIconAssetsPath(){this.store.state.iconAssetsPath=this.iconAssetsPath}disconnectedCallback(){this.unsubscribeUrlManager();this.unsubscribeSearchStatus();window.removeEventListener("hashchange",this.onHashChange)}handleInitialization(n){this.commonInterfaceHelper.onComponentInitializing(n)}scrollToTop(){const n=document.querySelector(this.scrollContainer);if(!n){this.bindings.engine.logger.warn(`Could not find the scroll container with the selector "${this.scrollContainer}". This will prevent UX interactions that require a scroll from working correctly. Please check the CSS selector in the scrollContainer option`);return}n.scrollIntoView({behavior:"smooth"})}closeRelevanceInspector(){this.relevanceInspectorIsOpen=false}initialize(n){return this.internalInitialization((()=>this.initEngine(n)))}initializeWithSearchEngine(n){if(this.pipeline&&this.pipeline!==n.state.pipeline){console.warn(f("search","query pipeline"))}if(this.searchHub&&this.searchHub!==n.state.searchHub){console.warn(f("search","search hub"))}return this.internalInitialization((()=>this.engine=n))}async executeFirstSearch(){if(!this.commonInterfaceHelper.engineIsCreated(this.engine)){return}if(!this.initialized){console.error('You have to wait until the "initialize" promise is fulfilled before executing a search.',this.host);return}const n=new x;const t=n.getParsedJSON(y.STANDALONE_SEARCH_BOX_DATA,null);if(!t){this.engine.executeFirstSearch();return}n.removeItem(y.STANDALONE_SEARCH_BOX_DATA);const{updateQuery:r}=o(this.engine);const{value:e,enableQuerySyntax:i,analytics:a}=t;this.engine.dispatch(r({q:e,enableQuerySyntax:i}));this.engine.executeFirstSearchAfterStandaloneSearchBoxRedirect(a)}get bindings(){return{engine:this.engine,i18n:this.i18n,store:this.store,interfaceElement:this.host,createStyleElement:()=>{const n=document.createElement("style");if(this.CspNonce){n.setAttribute("nonce",this.CspNonce)}return n},createScriptElement:()=>{const n=document.createElement("script");if(this.CspNonce){n.setAttribute("nonce",this.CspNonce)}return n}}}initFieldsToInclude(){const n=l.concat(this.fieldsToInclude);this.store.addFieldsToInclude(n)}registerFieldsToInclude(){this.engine?.dispatch(s(this.engine).registerFieldsToInclude(this.store.state.fieldsToInclude))}updateMobileBreakpoint(){const n=this.host.querySelector("atomic-search-layout")?.mobileBreakpoint;if(n){this.store.state.mobileBreakpoint=n}}initEngine(n){const t=this.getSearchConfiguration(n);const r=T(n,this.analytics,this.store);try{this.engine=c({configuration:{...n,search:t,analytics:r},loggerOptions:{level:this.logLevel}})}catch(n){this.error=n;throw n}}getSearchConfiguration(n){const t={searchHub:this.searchHub??"default",pipeline:this.pipeline,locale:this.language,timezone:this.timezone};if(n.search){return{...t,...n.search}}return t}get fragment(){return window.location.hash.slice(1)}initUrlManager(){if(!this.reflectStateInUrl){return}this.urlManager=d(this.engine,{initialState:{fragment:this.fragment}});this.unsubscribeUrlManager=this.urlManager.subscribe((()=>this.updateHash()));window.addEventListener("hashchange",this.onHashChange)}initAriaLive(){if(Array.from(this.host.children).some((n=>n.tagName==="ATOMIC-ARIA-LIVE"))){return}const n=document.createElement("atomic-aria-live");this.host.prepend(n)}initRelevanceInspector(){if(this.enableRelevanceInspector){this.host.addEventListener("dblclick",(n=>{if(n.altKey){this.relevanceInspectorIsOpen=!this.relevanceInspectorIsOpen}}))}}initSearchStatus(){this.searchStatus=h(this.engine);this.unsubscribeSearchStatus=this.searchStatus.subscribe((()=>{const n=!this.searchStatus.state.hasResults&&this.searchStatus.state.firstSearchExecuted&&!this.searchStatus.state.hasError;this.host.classList.toggle(j,n);this.host.classList.toggle(S,this.searchStatus.state.hasError);this.host.classList.toggle(F,this.searchStatus.state.firstSearchExecuted);if(this.searchStatus.state.firstSearchExecuted&&this.store.hasLoadingFlag($)){this.store.unsetLoadingFlag($)}}))}updateHash(){const n=this.urlManager.state.fragment;if(!this.searchStatus.state.firstSearchExecuted){history.replaceState(null,document.title,`#${n}`);this.bindings.engine.logger.info(`History replaceState #${n}`);return}history.pushState(null,document.title,`#${n}`);this.bindings.engine.logger.info(`History pushState #${n}`)}async internalInitialization(n){await this.componentWillLoadCalledPromise;await Promise.all([this.commonInterfaceHelper.onInitialization(n),this.i18Initialized]);await this.updateLanguage();i(this.host);this.pipeline=this.engine.state.pipeline;this.searchHub=this.engine.state.searchHub;this.initSearchStatus();this.initUrlManager();this.initialized=true}render(){return[this.engine&&this.enableRelevanceInspector&&r("atomic-relevance-inspector",{key:"85549c49bd3ccd6a29e0cb3b841d9b745a62604d",open:this.relevanceInspectorIsOpen,bindings:this.bindings}),r("slot",{key:"368de8a5f49519d94bbc7a70d55af93c7e4745c8"})]}static get assetsDirs(){return["lang"]}get host(){return e(this)}static get watchers(){return{searchHub:["updateSearchHub"],pipeline:["updatePipeline"],analytics:["toggleAnalytics"],language:["updateLanguage"],iconAssetsPath:["updateIconAssetsPath"]}}};Y([k()],_.prototype,"fieldsToInclude",void 0);_.style=O;export{_ as atomic_search_interface};
|
|
2
|
-
//# sourceMappingURL=p-e53d70db.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getAnalyticsConfig","searchEngineConfig","enabled","store","analytics","analyticsMode","getNextAnalyticsConfig","getLegacyAnalyticsConfig","analyticsClientMiddleware","event","payload","augmentAnalytics","defaultConfiguration","augmentAnalyticsConfigWithDocument","immutableConfiguration","augmentAnalyticsConfigWithAtomicVersion","config","result","augmentWithExternalMiddleware","augmentAnalyticsWithAtomicVersion","augmentAnalyticsWithFacetTitles","allFacets","getAllFacets","getAtomicFacetLabelOrOriginalTitle","facetId","originalTitle","label","facetState","map","analyticsFacetState","id","title","customData","facetTitle","createSearchStore","createBaseStore","loadingFlags","iconAssetsPath","resultList","undefined","mobileBreakpoint","DEFAULT_MOBILE_BREAKPOINT","facets","numericFacets","dateFacets","categoryFacets","facetElements","fieldsToInclude","sortOptions","unsetLoadingFlag","loadingFlag","setLoadingFlag","isMobile","window","matchMedia","makeDesktopQuery","state","matches","registerFacet","facetType","data","getFacetElements","waitUntilAppLoaded","callback","getUniqueIDFromEngine","engine","search","response","searchUid","hasLoadingFlag","indexOf","addFieldsToInclude","fields","currentFields","atomicSearchInterfaceCss","AtomicSearchInterfaceStyle0","FirstSearchExecutedFlag","AtomicSearchInterface","constructor","hostRef","this","unsubscribeUrlManager","unsubscribeSearchStatus","initialized","relevanceInspectorIsOpen","language","reflectStateInUrl","scrollContainer","languageAssetsPath","enableRelevanceInspector","onHashChange","urlManager","synchronize","fragment","initRelevanceInspector","commonInterfaceHelper","CommonAtomicInterfaceHelper","promise","componentWillLoadCalledPromise","resolve","componentWillLoadResolver","Promise","withResolvers","i18Initialized","i18n","i18next","createInstance","connectedCallback","updateMobileBreakpoint","componentWillLoad","CspNonce","setNonce","initAriaLive","initFieldsToInclude","updateSearchConfiguration","updatedProp","newValue","engineIsCreated","loadSearchConfigurationActions","dispatch","updateSearchHub","searchHub","updatePipeline","pipeline","toggleAnalytics","onAnalyticsChange","updateLanguage","locale","onLanguageChange","updateIconAssetsPath","disconnectedCallback","removeEventListener","handleInitialization","onComponentInitializing","scrollToTop","scrollContainerElement","document","querySelector","bindings","logger","warn","scrollIntoView","behavior","closeRelevanceInspector","initialize","options","internalInitialization","initEngine","initializeWithSearchEngine","console","mismatchedInterfaceAndEnginePropError","executeFirstSearch","error","host","safeStorage","SafeStorage","standaloneSearchBoxData","getParsedJSON","StorageItems","STANDALONE_SEARCH_BOX_DATA","removeItem","updateQuery","loadQueryActions","value","enableQuerySyntax","q","executeFirstSearchAfterStandaloneSearchBoxRedirect","interfaceElement","createStyleElement","styleTag","createElement","setAttribute","createScriptElement","EcommerceDefaultFieldsToInclude","concat","registerFieldsToInclude","loadFieldActions","breakpoint","searchConfig","getSearchConfiguration","analyticsConfig","buildSearchEngine","configuration","loggerOptions","level","logLevel","searchConfigFromProps","timezone","location","hash","slice","initUrlManager","buildUrlManager","initialState","subscribe","updateHash","addEventListener","Array","from","children","some","element","tagName","ariaLive","prepend","e","altKey","initSearchStatus","searchStatus","buildSearchStatus","hasNoResultsAfterInitialSearch","hasResults","firstSearchExecuted","hasError","classList","toggle","noResultsSelector","errorSelector","firstSearchExecutedSelector","newFragment","history","replaceState","info","pushState","all","onInitialization","markParentAsReady","render","h","key","open","__decorate","ArrayProp"],"sources":["src/components/search/atomic-search-interface/analytics-config.ts","src/components/search/atomic-search-interface/store.ts","src/components/search/atomic-search-interface/atomic-search-interface.pcss?tag=atomic-search-interface&encapsulation=shadow","src/components/search/atomic-search-interface/atomic-search-interface.tsx"],"sourcesContent":["import type {\n AnalyticsConfiguration,\n SearchEngineConfiguration,\n} from '@coveo/headless';\nimport {\n type AnalyticsPayload,\n augmentAnalyticsConfigWithAtomicVersion,\n augmentAnalyticsConfigWithDocument,\n augmentAnalyticsWithAtomicVersion,\n augmentWithExternalMiddleware,\n getNextAnalyticsConfig,\n} from '../../common/interface/analytics-config';\nimport type {createSearchStore} from './store';\n\nexport function getAnalyticsConfig(\n searchEngineConfig: SearchEngineConfiguration,\n enabled: boolean,\n store: ReturnType<typeof createSearchStore>\n): AnalyticsConfiguration {\n switch (searchEngineConfig.analytics?.analyticsMode) {\n case 'next':\n return getNextAnalyticsConfig(searchEngineConfig, enabled);\n default:\n return getLegacyAnalyticsConfig(searchEngineConfig, enabled, store);\n }\n}\n\nfunction getLegacyAnalyticsConfig(\n searchEngineConfig: SearchEngineConfiguration,\n enabled: boolean,\n store: ReturnType<typeof createSearchStore>\n): AnalyticsConfiguration {\n const analyticsClientMiddleware = (\n event: string,\n payload: AnalyticsPayload\n ) => augmentAnalytics(event, payload, store, searchEngineConfig);\n\n const defaultConfiguration: AnalyticsConfiguration = {\n analyticsClientMiddleware,\n enabled,\n ...augmentAnalyticsConfigWithDocument(),\n };\n\n const immutableConfiguration: AnalyticsConfiguration = {\n ...augmentAnalyticsConfigWithAtomicVersion(),\n };\n\n if (searchEngineConfig.analytics) {\n return {\n ...defaultConfiguration,\n ...searchEngineConfig.analytics,\n analyticsClientMiddleware,\n ...immutableConfiguration,\n };\n }\n\n return {\n ...defaultConfiguration,\n ...immutableConfiguration,\n };\n}\n\nfunction augmentAnalytics(\n event: string,\n payload: AnalyticsPayload,\n store: ReturnType<typeof createSearchStore>,\n config: SearchEngineConfiguration\n) {\n let result = augmentWithExternalMiddleware(event, payload, config);\n result = augmentAnalyticsWithAtomicVersion(result);\n result = augmentAnalyticsWithFacetTitles(result, store);\n return result;\n}\n\nfunction augmentAnalyticsWithFacetTitles(\n payload: AnalyticsPayload,\n store: ReturnType<typeof createSearchStore>\n) {\n const allFacets = store.getAllFacets();\n const getAtomicFacetLabelOrOriginalTitle = (\n facetId: string,\n originalTitle: string\n ) => (allFacets[facetId] ? allFacets[facetId].label() : originalTitle);\n\n if (payload.facetState) {\n payload.facetState = payload.facetState.map(\n (analyticsFacetState: {id: string; title: string}) => {\n const {id, title: originalTitle} = analyticsFacetState;\n return {\n ...analyticsFacetState,\n title: getAtomicFacetLabelOrOriginalTitle(id, originalTitle),\n };\n }\n );\n }\n\n if (\n payload.customData?.facetTitle &&\n payload.customData.facetId &&\n payload.customData.facetTitle\n ) {\n payload.customData.facetTitle = getAtomicFacetLabelOrOriginalTitle(\n payload.customData.facetId,\n payload.customData.facetTitle\n );\n }\n return payload;\n}\n","import type {\n DateFacetValue,\n NumericFacetValue,\n SearchEngine,\n SortCriterion,\n} from '@coveo/headless';\nimport {DEFAULT_MOBILE_BREAKPOINT} from '../../../utils/replace-breakpoint';\nimport type {\n FacetInfo,\n FacetStore,\n FacetType,\n FacetValueFormat,\n} from '../../common/facets/facet-common-store';\nimport {\n type BaseStore,\n createBaseStore,\n getFacetElements,\n type ResultListInfo,\n registerFacet,\n setLoadingFlag,\n unsetLoadingFlag,\n waitUntilAppLoaded,\n} from '../../common/interface/store';\nimport {makeDesktopQuery} from '../atomic-layout/search-layout';\n\nexport interface SortDropdownOption {\n tabs: {included: string[] | string; excluded: string[] | string};\n expression: string;\n criteria: SortCriterion[];\n label: string;\n}\n\ninterface FacetInfoMap {\n [facetId: string]:\n | FacetInfo\n | (FacetInfo & FacetValueFormat<NumericFacetValue>)\n | (FacetInfo & FacetValueFormat<DateFacetValue>);\n}\n\ninterface Data {\n loadingFlags: string[];\n iconAssetsPath: string;\n resultList: ResultListInfo | undefined;\n mobileBreakpoint: string;\n facets: FacetStore<FacetInfo>;\n numericFacets: FacetStore<FacetInfo & FacetValueFormat<NumericFacetValue>>;\n dateFacets: FacetStore<FacetInfo & FacetValueFormat<DateFacetValue>>;\n categoryFacets: FacetStore<FacetInfo>;\n facetElements: HTMLElement[];\n fieldsToInclude: string[];\n sortOptions: SortDropdownOption[];\n}\n\nexport type SearchStore = BaseStore<Data> & {\n unsetLoadingFlag(loadingFlag: string): void;\n setLoadingFlag(flag: string): void;\n isMobile(): boolean;\n registerFacet<T extends FacetType, U extends string>(\n facetType: T,\n data: Data[T][U] & {facetId: U; element: HTMLElement}\n ): void;\n getFacetElements(): HTMLElement[];\n waitUntilAppLoaded(callback: () => void): void;\n getUniqueIDFromEngine(engine: SearchEngine): string;\n hasLoadingFlag(loadingFlag: string): boolean;\n getAllFacets(): FacetInfoMap;\n addFieldsToInclude(fields: string[]): void;\n};\n\nexport function createSearchStore(): SearchStore {\n const store = createBaseStore<Data>({\n loadingFlags: [],\n iconAssetsPath: '',\n resultList: undefined,\n mobileBreakpoint: DEFAULT_MOBILE_BREAKPOINT,\n facets: {},\n numericFacets: {},\n dateFacets: {},\n categoryFacets: {},\n facetElements: [],\n fieldsToInclude: [],\n sortOptions: [],\n });\n\n return {\n ...store,\n\n unsetLoadingFlag(loadingFlag: string) {\n unsetLoadingFlag(store, loadingFlag);\n },\n\n setLoadingFlag(loadingFlag: string) {\n setLoadingFlag(store, loadingFlag);\n },\n\n isMobile() {\n return !window.matchMedia(makeDesktopQuery(store.state.mobileBreakpoint))\n .matches;\n },\n\n registerFacet<T extends FacetType, U extends string>(\n facetType: T,\n data: Data[T][U] & {facetId: U; element: HTMLElement}\n ) {\n registerFacet(store, facetType, data);\n },\n\n getFacetElements() {\n return getFacetElements(store);\n },\n\n waitUntilAppLoaded(callback: () => void) {\n waitUntilAppLoaded(store, callback);\n },\n\n getUniqueIDFromEngine(engine: SearchEngine): string {\n return engine.state.search.response.searchUid;\n },\n\n hasLoadingFlag(loadingFlag: string) {\n return store.state.loadingFlags.indexOf(loadingFlag) !== -1;\n },\n\n getAllFacets() {\n return {\n ...store.state.facets,\n ...store.state.dateFacets,\n ...store.state.categoryFacets,\n ...store.state.numericFacets,\n };\n },\n\n addFieldsToInclude(fields) {\n const currentFields = store.state.fieldsToInclude;\n store.state.fieldsToInclude = [...currentFields, ...fields];\n },\n };\n}\n","@import '../../../global/global.pcss';\n\n:host {\n display: block;\n height: inherit;\n width: inherit;\n & > slot {\n height: inherit;\n }\n}\n","import {markParentAsReady} from '@/src/utils/init-queue';\nimport {\n LogLevel,\n Unsubscribe,\n buildUrlManager,\n UrlManager,\n buildSearchEngine,\n SearchEngine,\n SearchEngineConfiguration,\n SearchStatus,\n buildSearchStatus,\n loadSearchConfigurationActions,\n loadQueryActions,\n EcommerceDefaultFieldsToInclude,\n loadFieldActions,\n} from '@coveo/headless';\nimport {\n Component,\n Prop,\n h,\n Listen,\n Method,\n Watch,\n Element,\n State,\n setNonce,\n} from '@stencil/core';\nimport i18next, {i18n} from 'i18next';\nimport {InitializeEvent} from '../../../utils/initialization-utils';\nimport {\n SafeStorage,\n StandaloneSearchBoxData,\n StorageItems,\n} from '../../../utils/local-storage-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {\n StencilBaseAtomicInterface,\n CommonAtomicInterfaceHelper,\n mismatchedInterfaceAndEnginePropError,\n} from '../../common/interface/interface-common-stencil';\nimport {\n errorSelector,\n firstSearchExecutedSelector,\n noResultsSelector,\n} from '../atomic-layout/search-layout';\nimport {getAnalyticsConfig} from './analytics-config';\nimport type {Bindings as _Bindings} from './interfaces';\nimport {createSearchStore, SearchStore} from './store';\n\nconst FirstSearchExecutedFlag = 'firstSearchExecuted';\nexport type InitializationOptions = SearchEngineConfiguration;\nexport type Bindings = _Bindings;\n\n/**\n * The `atomic-search-interface` component is the parent to all other atomic components in a search page. It handles the headless search engine and localization configurations.\n */\n@Component({\n tag: 'atomic-search-interface',\n styleUrl: 'atomic-search-interface.pcss',\n shadow: true,\n assetsDirs: ['lang'],\n})\nexport class AtomicSearchInterface\n implements StencilBaseAtomicInterface<SearchEngine>\n{\n private urlManager!: UrlManager;\n private searchStatus!: SearchStatus;\n private unsubscribeUrlManager: Unsubscribe = () => {};\n private unsubscribeSearchStatus: Unsubscribe = () => {};\n private initialized = false;\n private store: SearchStore;\n private commonInterfaceHelper: CommonAtomicInterfaceHelper<SearchEngine>;\n\n @Element() public host!: HTMLAtomicSearchInterfaceElement;\n\n @State() public error?: Error;\n @State() relevanceInspectorIsOpen = false;\n\n /**\n * A list of non-default fields to include in the query results.\n *\n * Specify the property as an array using a JSON string representation:\n * ```html\n * <atomic-search-interface fields-to-include='[\"fieldA\", \"fieldB\"]'></atomic-search-interface>\n * ```\n */\n @ArrayProp()\n @Prop({mutable: true})\n public fieldsToInclude: string[] | string = '[]';\n\n /**\n * The search interface [query pipeline](https://docs.coveo.com/en/180/).\n *\n * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine), the query pipeline should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public pipeline?: string;\n\n /**\n * The search interface [search hub](https://docs.coveo.com/en/1342/).\n *\n * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine, the search hub should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public searchHub?: string;\n\n /**\n * Whether analytics should be enabled.\n */\n @Prop({reflect: true}) public analytics = true;\n\n /**\n * The [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) identifier of the time zone to use to correctly interpret dates in the query expression, facets, and result items.\n * By default, the timezone will be [guessed](https://day.js.org/docs/en/timezone/guessing-user-timezone).\n *\n * Example: \"America/Montreal\"\n */\n @Prop({reflect: true}) public timezone?: string;\n\n /**\n * The severity level of the messages to log in the console.\n */\n @Prop({reflect: true}) public logLevel?: LogLevel;\n\n /**\n * The search interface i18next instance.\n */\n @Prop() public i18n: i18n;\n\n /**\n * The search interface language.\n */\n @Prop({reflect: true}) public language = 'en';\n\n /**\n * The search interface headless engine.\n */\n @Prop({mutable: true}) public engine?: SearchEngine;\n\n /**\n * Whether the state should be reflected in the URL parameters.\n */\n @Prop({reflect: true}) public reflectStateInUrl = true;\n\n /**\n * The CSS selector for the container where the interface will scroll back to.\n */\n @Prop({reflect: true}) public scrollContainer = 'atomic-search-interface';\n\n /**\n * The language assets path. By default, this will be a relative URL pointing to `./lang`.\n *\n * Example: \"/mypublicpath/languages\"\n *\n */\n @Prop({reflect: true}) public languageAssetsPath = './lang';\n\n /**\n * The icon assets path. By default, this will be a relative URL pointing to `./assets`.\n *\n * Example: \"/mypublicpath/icons\"\n *\n */\n @Prop({reflect: true}) public iconAssetsPath = './assets';\n\n /**\n * Whether the relevance inspector shortcut should be enabled for this interface.\n *\n * The relevance inspector can be opened by holding the Alt key (Option on Mac) while over the interface, and performing a double click.\n *\n * The relevance inspector allows to troubleshoot and debug queries.\n */\n @Prop({reflect: true}) public enableRelevanceInspector = true;\n\n /**\n * The value to set the [nonce](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) attribute to on inline script and style elements generated by this interface and its child components.\n * If your application is served with a Content Security Policy (CSP) that doesn't include the `script-src: 'unsafe-inline'` or `style-src: 'unsafe-inline'` directives,\n * you should ensure that your application server generates a new nonce on every page load and uses the generated value to set this prop and serve the corresponding CSP response headers\n * (i.e., script-src 'nonce-<YOUR_GENERATED_NONCE>' and style-src 'nonce-<YOUR_GENERATED_NONCE>').\n * Otherwise you may see console errors such as\n * - Refused to execute inline script because it violates the following Content Security Policy directive: [...]\n * - Refused to apply inline style because it violates the following Content Security Policy directive: [...].\n * @example:\n * ```html\n * <script nonce=\"<YOUR_GENERATED_NONCE>\">\n * import {setNonce} from '@coveo/atomic';\n * setNonce('<YOUR_GENERATED_NONCE>');\n * </script>\n * ```\n */\n @Prop({reflect: true}) public CspNonce?: string;\n\n private i18Initialized: Promise<void>;\n private componentWillLoadCalledPromise: Promise<void>;\n private componentWillLoadResolver: () => void;\n public constructor() {\n this.initRelevanceInspector();\n this.commonInterfaceHelper = new CommonAtomicInterfaceHelper(\n this,\n 'CoveoAtomic'\n );\n this.store = createSearchStore();\n ({\n promise: this.componentWillLoadCalledPromise,\n resolve: this.componentWillLoadResolver,\n } = Promise.withResolvers<void>());\n const {promise, resolve} = Promise.withResolvers<void>();\n this.i18Initialized = promise;\n this.i18n = i18next.createInstance(undefined, resolve);\n }\n\n public connectedCallback() {\n this.store.setLoadingFlag(FirstSearchExecutedFlag);\n this.updateMobileBreakpoint();\n }\n\n componentWillLoad() {\n if (this.CspNonce) {\n setNonce(this.CspNonce);\n }\n this.initAriaLive();\n this.initFieldsToInclude();\n this.componentWillLoadResolver();\n }\n\n public updateSearchConfiguration(\n updatedProp: 'searchHub' | 'pipeline',\n newValue: string | undefined\n ) {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n if (this.engine.state[updatedProp] === newValue) {\n return;\n }\n\n const {updateSearchConfiguration} = loadSearchConfigurationActions(\n this.engine\n );\n this.engine.dispatch(\n updateSearchConfiguration({\n [updatedProp]: newValue,\n })\n );\n }\n\n @Watch('searchHub')\n public updateSearchHub() {\n this.updateSearchConfiguration('searchHub', this.searchHub ?? 'default');\n }\n\n @Watch('pipeline')\n public updatePipeline() {\n this.updateSearchConfiguration('pipeline', this.pipeline);\n }\n\n @Watch('analytics')\n public toggleAnalytics() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n this.commonInterfaceHelper.onAnalyticsChange();\n }\n\n @Watch('language')\n public updateLanguage() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n const {updateSearchConfiguration} = loadSearchConfigurationActions(\n this.engine\n );\n this.engine.dispatch(\n updateSearchConfiguration({\n locale: this.language,\n })\n );\n return this.commonInterfaceHelper.onLanguageChange();\n }\n\n @Watch('iconAssetsPath')\n public updateIconAssetsPath() {\n this.store.state.iconAssetsPath = this.iconAssetsPath;\n }\n\n public disconnectedCallback() {\n this.unsubscribeUrlManager();\n this.unsubscribeSearchStatus();\n window.removeEventListener('hashchange', this.onHashChange);\n }\n\n @Listen('atomic/initializeComponent')\n public handleInitialization(event: InitializeEvent) {\n this.commonInterfaceHelper.onComponentInitializing(event);\n }\n\n @Listen('atomic/scrollToTop')\n public scrollToTop() {\n const scrollContainerElement = document.querySelector(this.scrollContainer);\n if (!scrollContainerElement) {\n this.bindings.engine.logger.warn(\n `Could not find the scroll container with the selector \"${this.scrollContainer}\". This will prevent UX interactions that require a scroll from working correctly. Please check the CSS selector in the scrollContainer option`\n );\n return;\n }\n\n scrollContainerElement.scrollIntoView({behavior: 'smooth'});\n }\n\n @Listen('atomic/relevanceInspector/close')\n public closeRelevanceInspector() {\n this.relevanceInspectorIsOpen = false;\n }\n\n /**\n * Initializes the connection with the headless search engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.\n */\n @Method() public initialize(options: InitializationOptions) {\n return this.internalInitialization(() => this.initEngine(options));\n }\n\n /**\n * Initializes the connection with an already preconfigured [headless search engine](https://docs.coveo.com/en/headless/latest/reference/modules/Search.html, as opposed to the `initialize` method, which will internally create a new search engine instance.\n * This bypasses the properties set on the component, such as analytics, searchHub, pipeline, language, timezone & logLevel.\n */\n @Method() public initializeWithSearchEngine(engine: SearchEngine) {\n if (this.pipeline && this.pipeline !== engine.state.pipeline) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('search', 'query pipeline')\n );\n }\n if (this.searchHub && this.searchHub !== engine.state.searchHub) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('search', 'search hub')\n );\n }\n return this.internalInitialization(() => (this.engine = engine));\n }\n\n /**\n *\n * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.\n */\n @Method() public async executeFirstSearch() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n if (!this.initialized) {\n console.error(\n 'You have to wait until the \"initialize\" promise is fulfilled before executing a search.',\n this.host\n );\n return;\n }\n\n const safeStorage = new SafeStorage();\n const standaloneSearchBoxData =\n safeStorage.getParsedJSON<StandaloneSearchBoxData | null>(\n StorageItems.STANDALONE_SEARCH_BOX_DATA,\n null\n );\n\n if (!standaloneSearchBoxData) {\n this.engine.executeFirstSearch();\n return;\n }\n\n safeStorage.removeItem(StorageItems.STANDALONE_SEARCH_BOX_DATA);\n const {updateQuery} = loadQueryActions(this.engine!);\n const {value, enableQuerySyntax, analytics} = standaloneSearchBoxData;\n this.engine!.dispatch(updateQuery({q: value, enableQuerySyntax}));\n this.engine.executeFirstSearchAfterStandaloneSearchBoxRedirect(analytics);\n }\n\n public get bindings(): Bindings {\n return {\n engine: this.engine!,\n i18n: this.i18n,\n store: this.store,\n interfaceElement: this.host,\n createStyleElement: () => {\n const styleTag = document.createElement('style');\n if (this.CspNonce) {\n styleTag.setAttribute('nonce', this.CspNonce);\n }\n return styleTag;\n },\n createScriptElement: () => {\n const styleTag = document.createElement('script');\n if (this.CspNonce) {\n styleTag.setAttribute('nonce', this.CspNonce);\n }\n return styleTag;\n },\n };\n }\n\n private initFieldsToInclude() {\n const fields = EcommerceDefaultFieldsToInclude.concat(this.fieldsToInclude);\n this.store.addFieldsToInclude(fields);\n }\n\n public registerFieldsToInclude() {\n this.engine?.dispatch(\n loadFieldActions(this.engine!).registerFieldsToInclude(\n this.store.state.fieldsToInclude\n )\n );\n }\n\n private updateMobileBreakpoint() {\n const breakpoint = this.host.querySelector(\n 'atomic-search-layout'\n )?.mobileBreakpoint;\n if (breakpoint) {\n this.store.state.mobileBreakpoint = breakpoint;\n }\n }\n\n private initEngine(options: InitializationOptions) {\n const searchConfig = this.getSearchConfiguration(options);\n const analyticsConfig = getAnalyticsConfig(\n options,\n this.analytics,\n this.store\n );\n try {\n this.engine = buildSearchEngine({\n configuration: {\n ...options,\n search: searchConfig,\n analytics: analyticsConfig,\n },\n loggerOptions: {\n level: this.logLevel,\n },\n });\n } catch (error) {\n this.error = error as Error;\n throw error;\n }\n }\n\n private getSearchConfiguration(options: InitializationOptions) {\n const searchConfigFromProps = {\n searchHub: this.searchHub ?? 'default',\n pipeline: this.pipeline,\n locale: this.language,\n timezone: this.timezone,\n };\n\n if (options.search) {\n return {\n ...searchConfigFromProps,\n ...options.search,\n };\n }\n\n return searchConfigFromProps;\n }\n\n private get fragment() {\n return window.location.hash.slice(1);\n }\n\n private initUrlManager() {\n if (!this.reflectStateInUrl) {\n return;\n }\n\n this.urlManager = buildUrlManager(this.engine!, {\n initialState: {fragment: this.fragment},\n });\n\n this.unsubscribeUrlManager = this.urlManager.subscribe(() =>\n this.updateHash()\n );\n\n window.addEventListener('hashchange', this.onHashChange);\n }\n\n private initAriaLive() {\n if (\n Array.from(this.host.children).some(\n (element) => element.tagName === 'ATOMIC-ARIA-LIVE'\n )\n ) {\n return;\n }\n const ariaLive = document.createElement('atomic-aria-live');\n this.host.prepend(ariaLive);\n }\n\n private initRelevanceInspector() {\n if (this.enableRelevanceInspector) {\n this.host.addEventListener('dblclick', (e) => {\n if (e.altKey) {\n this.relevanceInspectorIsOpen = !this.relevanceInspectorIsOpen;\n }\n });\n }\n }\n\n private initSearchStatus() {\n this.searchStatus = buildSearchStatus(this.engine!);\n this.unsubscribeSearchStatus = this.searchStatus.subscribe(() => {\n const hasNoResultsAfterInitialSearch =\n !this.searchStatus.state.hasResults &&\n this.searchStatus.state.firstSearchExecuted &&\n !this.searchStatus.state.hasError;\n\n this.host.classList.toggle(\n noResultsSelector,\n hasNoResultsAfterInitialSearch\n );\n\n this.host.classList.toggle(\n errorSelector,\n this.searchStatus.state.hasError\n );\n\n this.host.classList.toggle(\n firstSearchExecutedSelector,\n this.searchStatus.state.firstSearchExecuted\n );\n\n if (\n this.searchStatus.state.firstSearchExecuted &&\n this.store.hasLoadingFlag(FirstSearchExecutedFlag)\n ) {\n this.store.unsetLoadingFlag(FirstSearchExecutedFlag);\n }\n });\n }\n\n private updateHash() {\n const newFragment = this.urlManager.state.fragment;\n\n if (!this.searchStatus.state.firstSearchExecuted) {\n history.replaceState(null, document.title, `#${newFragment}`);\n this.bindings.engine.logger.info(`History replaceState #${newFragment}`);\n\n return;\n }\n\n history.pushState(null, document.title, `#${newFragment}`);\n this.bindings.engine.logger.info(`History pushState #${newFragment}`);\n }\n\n private onHashChange = () => {\n this.urlManager.synchronize(this.fragment);\n };\n\n private async internalInitialization(initEngine: () => void) {\n await this.componentWillLoadCalledPromise;\n await Promise.all([\n this.commonInterfaceHelper.onInitialization(initEngine),\n this.i18Initialized,\n ]);\n await this.updateLanguage();\n markParentAsReady(this.host);\n this.pipeline = this.engine!.state.pipeline;\n this.searchHub = this.engine!.state.searchHub;\n this.initSearchStatus();\n this.initUrlManager();\n this.initialized = true;\n }\n\n public render() {\n return [\n this.engine && this.enableRelevanceInspector && (\n <atomic-relevance-inspector\n open={this.relevanceInspectorIsOpen}\n bindings={this.bindings}\n ></atomic-relevance-inspector>\n ),\n <slot></slot>,\n ];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const index = require('./index-757bc886.js');
|
|
6
|
-
const initializationUtils = require('./initialization-utils-92f1b080.js');
|
|
7
|
-
const replaceBreakpoint = require('./replace-breakpoint-9e1c0efa.js');
|
|
8
|
-
const utils = require('./utils-7153ae6b.js');
|
|
9
|
-
const searchLayout = require('./search-layout-b597f6fc.js');
|
|
10
|
-
require('./dom-utils-d4790328.js');
|
|
11
|
-
require('./event-utils-9bfcf3c5.js');
|
|
12
|
-
require('./init-queue-a18aa323.js');
|
|
13
|
-
require('./initialization-lit-stencil-common-utils-730030b0.js');
|
|
14
|
-
require('./purify-85b542e2.js');
|
|
15
|
-
require('./_commonjsHelpers-b3309d7b.js');
|
|
16
|
-
require('./sections-4b4af2f8.js');
|
|
17
|
-
|
|
18
|
-
const atomicSearchLayoutCss = ".atomic-modal-opened{overflow-y:hidden}atomic-layout-section[section='search']{grid-area:atomic-section-search}atomic-layout-section[section='facets']{grid-area:atomic-section-facets}atomic-layout-section[section='main']{grid-area:atomic-section-main}atomic-layout-section[section='status']{grid-area:atomic-section-status}atomic-layout-section[section='pagination']{grid-area:atomic-section-pagination}atomic-search-layout{width:100%;height:100%;display:none;grid-template-areas:'. atomic-section-search .'\n '. atomic-section-main .';grid-template-columns:var(--atomic-layout-spacing-x) minmax(0, 1fr) var(--atomic-layout-spacing-x)}atomic-search-layout atomic-layout-section[section='search']{margin:var(--atomic-layout-spacing-y) 0;max-width:var(--atomic-layout-max-search-box-input-width, 678px);width:100%;justify-self:center}atomic-search-layout atomic-layout-section[section='search'] atomic-search-box::part(suggestions-double-list){width:125%;max-width:var(--atomic-layout-max-search-box-double-suggestions-width, 800px)}atomic-search-layout atomic-layout-section[section='search'] atomic-search-box::part(suggestions-left){flex-basis:var(--atomic-layout-search-box-left-suggestions-width, 30%)}atomic-search-layout atomic-layout-section[section='search'] atomic-search-box::part(suggestions-right){flex-basis:calc(100% - var(--atomic-layout-search-box-left-suggestions-width, 30%))}atomic-search-layout atomic-layout-section[section='facets']{display:none}atomic-search-layout atomic-layout-section[section='facets'] *{margin-bottom:var(--atomic-layout-spacing-y)}atomic-search-layout atomic-layout-section[section='main']{margin-bottom:var(--atomic-layout-spacing-y)}atomic-search-layout atomic-layout-section[section='horizontal-facets']{display:flex;flex-wrap:wrap;margin-bottom:var(--atomic-layout-spacing-y);row-gap:0.5rem}atomic-search-layout atomic-layout-section[section='horizontal-facets']>*{max-width:100%}atomic-search-layout atomic-layout-section[section='horizontal-facets']>atomic-segmented-facet,atomic-search-layout atomic-layout-section[section='horizontal-facets']>atomic-popover{margin-right:0.5rem}atomic-search-layout atomic-layout-section[section='horizontal-facets']>atomic-popover{display:none}atomic-search-layout atomic-layout-section[section='status']{display:grid;justify-content:space-between;grid-template-areas:'atomic-breadbox atomic-breadbox'\n 'atomic-query-summary atomic-sort'\n 'atomic-did-you-mean atomic-did-you-mean'\n 'atomic-notifications atomic-notifications'}atomic-search-layout atomic-layout-section[section='status']>*{margin-bottom:var(--atomic-layout-spacing-y)}atomic-search-layout atomic-layout-section[section='status'] atomic-breadbox{grid-area:atomic-breadbox}atomic-search-layout atomic-layout-section[section='status'] atomic-query-summary{grid-area:atomic-query-summary;align-self:center;overflow:hidden}atomic-search-layout atomic-layout-section[section='status'] atomic-sort-dropdown{grid-area:atomic-sort;justify-self:end}atomic-search-layout atomic-layout-section[section='status'] atomic-refine-toggle{grid-area:atomic-sort}atomic-search-layout atomic-layout-section[section='status'] atomic-did-you-mean{grid-area:atomic-did-you-mean}atomic-search-layout atomic-layout-section[section='status'] atomic-notifications{grid-area:atomic-notifications}atomic-search-layout atomic-layout-section[section='results'] atomic-smart-snippet{margin-bottom:1.5rem}atomic-search-layout atomic-layout-section[section='results'] atomic-smart-snippet-suggestions{margin-bottom:1.5rem}atomic-search-layout atomic-layout-section[section='pagination']{display:flex;flex-direction:column;justify-content:space-between;align-items:center}atomic-search-layout atomic-layout-section[section='pagination'] atomic-load-more-results{width:100%}atomic-search-layout atomic-layout-section[section='pagination']:has(:only-child){justify-content:center}atomic-search-layout atomic-layout-section[section='pagination']>*{margin-top:var(--atomic-layout-spacing-y)}@media only screen and (min-width: 50rem){atomic-search-layout atomic-layout-section[section='pagination']{flex-direction:row}}";
|
|
19
|
-
const AtomicSearchLayoutStyle0 = atomicSearchLayoutCss;
|
|
20
|
-
|
|
21
|
-
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
22
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
23
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
24
|
-
r = Reflect.decorate(decorators, target, key, desc);
|
|
25
|
-
else
|
|
26
|
-
for (var i = decorators.length - 1; i >= 0; i--)
|
|
27
|
-
if (d = decorators[i])
|
|
28
|
-
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
29
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
30
|
-
};
|
|
31
|
-
const AtomicSearchLayout = class {
|
|
32
|
-
constructor(hostRef) {
|
|
33
|
-
index.registerInstance(this, hostRef);
|
|
34
|
-
/**
|
|
35
|
-
* CSS value that defines where the layout goes from mobile to desktop.
|
|
36
|
-
* e.g., 800px, 65rem.
|
|
37
|
-
*/
|
|
38
|
-
this.mobileBreakpoint = replaceBreakpoint.DEFAULT_MOBILE_BREAKPOINT;
|
|
39
|
-
this.mobileBreakpoint = replaceBreakpoint.DEFAULT_MOBILE_BREAKPOINT;
|
|
40
|
-
}
|
|
41
|
-
componentDidLoad() {
|
|
42
|
-
const id = this.host.id || utils.randomID('atomic-search-layout-');
|
|
43
|
-
this.host.id = id;
|
|
44
|
-
const styleTag = this.bindings.createStyleElement();
|
|
45
|
-
styleTag.innerHTML = searchLayout.buildSearchLayout(this.host, this.mobileBreakpoint);
|
|
46
|
-
this.host.appendChild(styleTag);
|
|
47
|
-
}
|
|
48
|
-
get host() { return index.getElement(this); }
|
|
49
|
-
};
|
|
50
|
-
__decorate([
|
|
51
|
-
initializationUtils.InitializeBindings()
|
|
52
|
-
], AtomicSearchLayout.prototype, "bindings", void 0);
|
|
53
|
-
AtomicSearchLayout.style = AtomicSearchLayoutStyle0;
|
|
54
|
-
|
|
55
|
-
exports.atomic_search_layout = AtomicSearchLayout;
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=atomic-search-layout.cjs.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"atomic-search-layout.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,qBAAqB,GAAG,mkIAAmkI,CAAC;AAClmI,iCAAe,qBAAqB;;;;;;;;;;;;MCiBvB,kBAAkB;;;;;;;QAQC,qBAAgB,GAAGA,2CAAyB,CAAC;gCAA1BA,2CAAyB;;IAGnE,gBAAgB;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAIC,cAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAGC,8BAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACjC;;;AAR4B;IAA5BC,sCAAkB,EAAE;oDAA4B;;;;;","names":["DEFAULT_MOBILE_BREAKPOINT","randomID","buildSearchLayout","InitializeBindings"],"sources":["src/components/search/atomic-layout/atomic-search-layout.pcss?tag=atomic-search-layout","src/components/search/atomic-layout/atomic-search-layout.tsx"],"sourcesContent":[".atomic-modal-opened {\n overflow-y: hidden;\n}\n\natomic-layout-section[section='search'] {\n grid-area: atomic-section-search;\n}\n\natomic-layout-section[section='facets'] {\n grid-area: atomic-section-facets;\n}\n\natomic-layout-section[section='main'] {\n grid-area: atomic-section-main;\n}\n\natomic-layout-section[section='status'] {\n grid-area: atomic-section-status;\n}\n\natomic-layout-section[section='pagination'] {\n grid-area: atomic-section-pagination;\n}\n\n/**\n * @prop --atomic-layout-max-search-box-input-width: The maximum width that the search box input will take.\n * @prop --atomic-layout-max-search-box-double-suggestions-width: The maximum width that the search box suggestions will take when displaying a double list.\n * @prop --atomic-layout-search-box-left-suggestions-width: When displaying a double list, the width of the left list.\n */\natomic-search-layout {\n width: 100%;\n height: 100%;\n display: none;\n grid-template-areas:\n '. atomic-section-search .'\n '. atomic-section-main .';\n grid-template-columns: var(--atomic-layout-spacing-x) minmax(0, 1fr) var(--atomic-layout-spacing-x);\n\n atomic-layout-section[section='search'] {\n margin: var(--atomic-layout-spacing-y) 0;\n max-width: var(--atomic-layout-max-search-box-input-width, 678px);\n width: 100%;\n justify-self: center;\n\n /* Only affects desktop */\n atomic-search-box {\n &::part(suggestions-double-list) {\n width: 125%;\n max-width: var(--atomic-layout-max-search-box-double-suggestions-width, 800px);\n }\n\n &::part(suggestions-left) {\n flex-basis: var(--atomic-layout-search-box-left-suggestions-width, 30%);\n }\n\n &::part(suggestions-right) {\n flex-basis: calc(100% - var(--atomic-layout-search-box-left-suggestions-width, 30%));\n }\n }\n }\n\n atomic-layout-section[section='facets'] {\n display: none;\n\n & * {\n margin-bottom: var(--atomic-layout-spacing-y);\n }\n }\n\n atomic-layout-section[section='main'] {\n margin-bottom: var(--atomic-layout-spacing-y);\n }\n\n atomic-layout-section[section='horizontal-facets'] {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: var(--atomic-layout-spacing-y);\n row-gap: 0.5rem;\n\n & > * {\n max-width: 100%;\n }\n\n & > atomic-segmented-facet,\n & > atomic-popover {\n margin-right: 0.5rem;\n }\n\n & > atomic-popover {\n display: none;\n }\n }\n\n atomic-layout-section[section='status'] {\n display: grid;\n justify-content: space-between;\n grid-template-areas:\n 'atomic-breadbox atomic-breadbox'\n 'atomic-query-summary atomic-sort'\n 'atomic-did-you-mean atomic-did-you-mean'\n 'atomic-notifications atomic-notifications';\n\n & > * {\n margin-bottom: var(--atomic-layout-spacing-y);\n }\n\n atomic-breadbox {\n grid-area: atomic-breadbox;\n }\n\n atomic-query-summary {\n grid-area: atomic-query-summary;\n align-self: center;\n overflow: hidden;\n }\n\n atomic-sort-dropdown {\n grid-area: atomic-sort;\n justify-self: end;\n }\n\n atomic-refine-toggle {\n grid-area: atomic-sort;\n }\n\n atomic-did-you-mean {\n grid-area: atomic-did-you-mean;\n }\n\n atomic-notifications {\n grid-area: atomic-notifications;\n }\n }\n\n atomic-layout-section[section='results'] {\n atomic-smart-snippet {\n margin-bottom: 1.5rem;\n }\n\n atomic-smart-snippet-suggestions {\n margin-bottom: 1.5rem;\n }\n }\n\n atomic-layout-section[section='pagination'] {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n atomic-load-more-results {\n width: 100%;\n }\n\n &:has(:only-child) {\n justify-content: center;\n }\n\n & > * {\n margin-top: var(--atomic-layout-spacing-y);\n }\n\n /* Approx. width of pager & results per page */\n @media only screen and (min-width: 50rem) {\n flex-direction: row;\n }\n }\n}\n","import {Component, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {DEFAULT_MOBILE_BREAKPOINT} from '../../../utils/replace-breakpoint';\nimport {randomID} from '../../../utils/utils';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\nimport {buildSearchLayout} from './search-layout';\n\n/**\n * The `atomic-search-layout` helps organize elements in the page.\n */\n@Component({\n tag: 'atomic-search-layout',\n styleUrl: 'atomic-search-layout.pcss',\n shadow: false,\n})\nexport class AtomicSearchLayout implements InitializableComponent<Bindings> {\n public error!: Error;\n\n @Element() private host!: HTMLElement;\n /**\n * CSS value that defines where the layout goes from mobile to desktop.\n * e.g., 800px, 65rem.\n */\n @Prop({reflect: true}) public mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;\n @InitializeBindings() public bindings!: Bindings;\n\n public componentDidLoad() {\n const id = this.host.id || randomID('atomic-search-layout-');\n this.host.id = id;\n const styleTag = this.bindings.createStyleElement();\n styleTag.innerHTML = buildSearchLayout(this.host, this.mobileBreakpoint);\n this.host.appendChild(styleTag);\n }\n}\n"],"version":3}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const sections = require('./sections-4b4af2f8.js');
|
|
4
|
-
|
|
5
|
-
function makeDesktopQuery$1(mobileBreakpoint) {
|
|
6
|
-
return `only screen and (min-width: ${mobileBreakpoint})`;
|
|
7
|
-
}
|
|
8
|
-
function buildCommonLayout(element, mobileBreakpoint, layoutWebComponentTagName, containerWebComponentTagName, noItemsSelector, errorSelector, refineToggleSelector, sortDropdownSelector) {
|
|
9
|
-
const id = element.id;
|
|
10
|
-
const layoutSelector = `${layoutWebComponentTagName}#${id}`;
|
|
11
|
-
const cleanStatusSelector = `${containerWebComponentTagName}:not(.${noItemsSelector}, .${errorSelector})`;
|
|
12
|
-
const mediaQuerySelector = `@media ${makeDesktopQuery$1(mobileBreakpoint)}`;
|
|
13
|
-
const display = `${layoutSelector} { display: grid }`;
|
|
14
|
-
const search = `${mediaQuerySelector} {
|
|
15
|
-
${layoutSelector} ${sections.sectionSelector('search')} {
|
|
16
|
-
justify-self: start;
|
|
17
|
-
width: 80%;
|
|
18
|
-
}
|
|
19
|
-
}`;
|
|
20
|
-
const facets = () => {
|
|
21
|
-
const facetsSection = sections.findSection(element, 'facets');
|
|
22
|
-
const mainSection = sections.findSection(element, 'main');
|
|
23
|
-
if (!facetsSection || !mainSection) {
|
|
24
|
-
return '';
|
|
25
|
-
}
|
|
26
|
-
const facetsMin = facetsSection.minWidth || '17rem';
|
|
27
|
-
const facetsMax = facetsSection.maxWidth || '22rem';
|
|
28
|
-
const mainMin = mainSection.minWidth || '50%';
|
|
29
|
-
const mainMax = mainSection.maxWidth || '70rem';
|
|
30
|
-
return `${mediaQuerySelector} {
|
|
31
|
-
${layoutSelector} {
|
|
32
|
-
grid-template-areas:
|
|
33
|
-
'. . atomic-section-search .'
|
|
34
|
-
'. atomic-section-main atomic-section-main .';
|
|
35
|
-
grid-template-columns:
|
|
36
|
-
1fr minmax(${facetsMin}, ${facetsMax}) minmax(${mainMin}, ${mainMax}) 1fr;
|
|
37
|
-
column-gap: var(--atomic-layout-spacing-x);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
${cleanStatusSelector} ${layoutSelector} {
|
|
41
|
-
grid-template-areas:
|
|
42
|
-
'. . atomic-section-search .'
|
|
43
|
-
'. atomic-section-facets atomic-section-main .'
|
|
44
|
-
'. atomic-section-facets . .';
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
${cleanStatusSelector} ${layoutSelector} ${sections.sectionSelector('facets')} {
|
|
48
|
-
display: block;
|
|
49
|
-
}
|
|
50
|
-
}`;
|
|
51
|
-
};
|
|
52
|
-
const refine = () => {
|
|
53
|
-
const statusSection = sections.findSection(element, 'status');
|
|
54
|
-
if (!statusSection) {
|
|
55
|
-
return '';
|
|
56
|
-
}
|
|
57
|
-
const refineToggle = statusSection.querySelector(refineToggleSelector);
|
|
58
|
-
if (!refineToggle) {
|
|
59
|
-
return '';
|
|
60
|
-
}
|
|
61
|
-
const statusSelector = `${layoutSelector} ${sections.sectionSelector('status')}`;
|
|
62
|
-
return `${statusSelector} ${sortDropdownSelector} {
|
|
63
|
-
display: none;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
${mediaQuerySelector} {
|
|
67
|
-
${statusSelector} ${sortDropdownSelector} {
|
|
68
|
-
display: block;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
${statusSelector} ${refineToggleSelector} {
|
|
72
|
-
display: none;
|
|
73
|
-
}
|
|
74
|
-
}`;
|
|
75
|
-
};
|
|
76
|
-
const horizontalFacets = () => {
|
|
77
|
-
return `${mediaQuerySelector} {
|
|
78
|
-
${layoutSelector} ${sections.sectionSelector('horizontal-facets')} > atomic-popover:not(.atomic-hidden) {
|
|
79
|
-
display: block;
|
|
80
|
-
}
|
|
81
|
-
}`;
|
|
82
|
-
};
|
|
83
|
-
return [display, search, facets(), refine(), horizontalFacets()]
|
|
84
|
-
.filter((declaration) => declaration !== '')
|
|
85
|
-
.join('\n\n');
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const layoutWebComponentTagName = 'atomic-search-layout';
|
|
89
|
-
const containerWebComponentTagName = 'atomic-search-interface';
|
|
90
|
-
const noResultsSelector = `${containerWebComponentTagName}-no-results`;
|
|
91
|
-
const errorSelector = `${containerWebComponentTagName}-error`;
|
|
92
|
-
const firstSearchExecutedSelector = `${containerWebComponentTagName}-search-executed`;
|
|
93
|
-
function makeDesktopQuery(mobileBreakpoint) {
|
|
94
|
-
return `only screen and (min-width: ${mobileBreakpoint})`;
|
|
95
|
-
}
|
|
96
|
-
function buildSearchLayout(element, mobileBreakpoint) {
|
|
97
|
-
return buildCommonLayout(element, mobileBreakpoint, layoutWebComponentTagName, containerWebComponentTagName, noResultsSelector, errorSelector, 'atomic-refine-toggle', 'atomic-sort-dropdown');
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
exports.buildSearchLayout = buildSearchLayout;
|
|
101
|
-
exports.errorSelector = errorSelector;
|
|
102
|
-
exports.firstSearchExecutedSelector = firstSearchExecutedSelector;
|
|
103
|
-
exports.makeDesktopQuery = makeDesktopQuery;
|
|
104
|
-
exports.noResultsSelector = noResultsSelector;
|
|
105
|
-
|
|
106
|
-
//# sourceMappingURL=search-layout-b597f6fc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"search-layout-b597f6fc.js","mappings":"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","names":["makeDesktopQuery","sectionSelector","findSection"],"sources":["src/components/common/atomic-layout-section/layout.ts","src/components/search/atomic-layout/search-layout.ts"],"sourcesContent":["import {findSection, sectionSelector} from './sections';\n\nexport function makeDesktopQuery(mobileBreakpoint: string) {\n return `only screen and (min-width: ${mobileBreakpoint})`;\n}\nexport function buildCommonLayout(\n element: HTMLElement,\n mobileBreakpoint: string,\n layoutWebComponentTagName: string,\n containerWebComponentTagName: string,\n noItemsSelector: string,\n errorSelector: string,\n refineToggleSelector: string,\n sortDropdownSelector: string\n) {\n const id = element.id;\n const layoutSelector = `${layoutWebComponentTagName}#${id}`;\n const cleanStatusSelector = `${containerWebComponentTagName}:not(.${noItemsSelector}, .${errorSelector})`;\n const mediaQuerySelector = `@media ${makeDesktopQuery(mobileBreakpoint)}`;\n\n const display = `${layoutSelector} { display: grid }`;\n const search = `${mediaQuerySelector} {\n ${layoutSelector} ${sectionSelector('search')} {\n justify-self: start;\n width: 80%;\n }\n }`;\n\n const facets = () => {\n const facetsSection = findSection(element, 'facets');\n const mainSection = findSection(element, 'main');\n if (!facetsSection || !mainSection) {\n return '';\n }\n\n const facetsMin = facetsSection.minWidth || '17rem';\n const facetsMax = facetsSection.maxWidth || '22rem';\n const mainMin = mainSection.minWidth || '50%';\n const mainMax = mainSection.maxWidth || '70rem';\n\n return `${mediaQuerySelector} {\n ${layoutSelector} {\n grid-template-areas:\n '. . atomic-section-search .'\n '. atomic-section-main atomic-section-main .';\n grid-template-columns:\n 1fr minmax(${facetsMin}, ${facetsMax}) minmax(${mainMin}, ${mainMax}) 1fr;\n column-gap: var(--atomic-layout-spacing-x);\n }\n\n ${cleanStatusSelector} ${layoutSelector} {\n grid-template-areas:\n '. . atomic-section-search .'\n '. atomic-section-facets atomic-section-main .'\n '. atomic-section-facets . .';\n }\n\n ${cleanStatusSelector} ${layoutSelector} ${sectionSelector('facets')} {\n display: block;\n }\n }`;\n };\n\n const refine = (): string => {\n const statusSection = findSection(element, 'status');\n if (!statusSection) {\n return '';\n }\n\n const refineToggle = statusSection.querySelector(refineToggleSelector);\n if (!refineToggle) {\n return '';\n }\n\n const statusSelector = `${layoutSelector} ${sectionSelector('status')}`;\n return `${statusSelector} ${sortDropdownSelector} {\n display: none;\n }\n\n ${mediaQuerySelector} {\n ${statusSelector} ${sortDropdownSelector} {\n display: block;\n }\n\n ${statusSelector} ${refineToggleSelector} {\n display: none;\n }\n }`;\n };\n\n const horizontalFacets = () => {\n return `${mediaQuerySelector} {\n ${layoutSelector} ${sectionSelector(\n 'horizontal-facets'\n )} > atomic-popover:not(.atomic-hidden) {\n display: block;\n }\n }`;\n };\n\n return [display, search, facets(), refine(), horizontalFacets()]\n .filter((declaration) => declaration !== '')\n .join('\\n\\n');\n}\n","import {buildCommonLayout} from '../../common/atomic-layout-section/layout';\n\nexport const layoutWebComponentTagName = 'atomic-search-layout';\nexport const containerWebComponentTagName = 'atomic-search-interface';\nexport const noResultsSelector = `${containerWebComponentTagName}-no-results`;\nexport const errorSelector = `${containerWebComponentTagName}-error`;\nexport const firstSearchExecutedSelector = `${containerWebComponentTagName}-search-executed`;\n\nexport function makeDesktopQuery(mobileBreakpoint: string) {\n return `only screen and (min-width: ${mobileBreakpoint})`;\n}\nexport function buildSearchLayout(\n element: HTMLElement,\n mobileBreakpoint: string\n) {\n return buildCommonLayout(\n element,\n mobileBreakpoint,\n layoutWebComponentTagName,\n containerWebComponentTagName,\n noResultsSelector,\n errorSelector,\n 'atomic-refine-toggle',\n 'atomic-sort-dropdown'\n );\n}\n"],"version":3}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, g as getElement } from './index-3f35faca.js';
|
|
2
|
-
import { I as InitializeBindings } from './initialization-utils-ffbc4136.js';
|
|
3
|
-
import { D as DEFAULT_MOBILE_BREAKPOINT } from './replace-breakpoint-213367f8.js';
|
|
4
|
-
import { r as randomID } from './utils-7ac76ba7.js';
|
|
5
|
-
import { b as buildSearchLayout } from './search-layout-fdd7a917.js';
|
|
6
|
-
import './dom-utils-f6086cd3.js';
|
|
7
|
-
import './event-utils-8de63ec3.js';
|
|
8
|
-
import './init-queue-fbe942c3.js';
|
|
9
|
-
import './initialization-lit-stencil-common-utils-804fe146.js';
|
|
10
|
-
import './purify-c7ebd240.js';
|
|
11
|
-
import './_commonjsHelpers-1789f0cf.js';
|
|
12
|
-
import './sections-ae00b53a.js';
|
|
13
|
-
|
|
14
|
-
const atomicSearchLayoutCss = ".atomic-modal-opened{overflow-y:hidden}atomic-layout-section[section='search']{grid-area:atomic-section-search}atomic-layout-section[section='facets']{grid-area:atomic-section-facets}atomic-layout-section[section='main']{grid-area:atomic-section-main}atomic-layout-section[section='status']{grid-area:atomic-section-status}atomic-layout-section[section='pagination']{grid-area:atomic-section-pagination}atomic-search-layout{width:100%;height:100%;display:none;grid-template-areas:'. atomic-section-search .'\n '. atomic-section-main .';grid-template-columns:var(--atomic-layout-spacing-x) minmax(0, 1fr) var(--atomic-layout-spacing-x)}atomic-search-layout atomic-layout-section[section='search']{margin:var(--atomic-layout-spacing-y) 0;max-width:var(--atomic-layout-max-search-box-input-width, 678px);width:100%;justify-self:center}atomic-search-layout atomic-layout-section[section='search'] atomic-search-box::part(suggestions-double-list){width:125%;max-width:var(--atomic-layout-max-search-box-double-suggestions-width, 800px)}atomic-search-layout atomic-layout-section[section='search'] atomic-search-box::part(suggestions-left){flex-basis:var(--atomic-layout-search-box-left-suggestions-width, 30%)}atomic-search-layout atomic-layout-section[section='search'] atomic-search-box::part(suggestions-right){flex-basis:calc(100% - var(--atomic-layout-search-box-left-suggestions-width, 30%))}atomic-search-layout atomic-layout-section[section='facets']{display:none}atomic-search-layout atomic-layout-section[section='facets'] *{margin-bottom:var(--atomic-layout-spacing-y)}atomic-search-layout atomic-layout-section[section='main']{margin-bottom:var(--atomic-layout-spacing-y)}atomic-search-layout atomic-layout-section[section='horizontal-facets']{display:flex;flex-wrap:wrap;margin-bottom:var(--atomic-layout-spacing-y);row-gap:0.5rem}atomic-search-layout atomic-layout-section[section='horizontal-facets']>*{max-width:100%}atomic-search-layout atomic-layout-section[section='horizontal-facets']>atomic-segmented-facet,atomic-search-layout atomic-layout-section[section='horizontal-facets']>atomic-popover{margin-right:0.5rem}atomic-search-layout atomic-layout-section[section='horizontal-facets']>atomic-popover{display:none}atomic-search-layout atomic-layout-section[section='status']{display:grid;justify-content:space-between;grid-template-areas:'atomic-breadbox atomic-breadbox'\n 'atomic-query-summary atomic-sort'\n 'atomic-did-you-mean atomic-did-you-mean'\n 'atomic-notifications atomic-notifications'}atomic-search-layout atomic-layout-section[section='status']>*{margin-bottom:var(--atomic-layout-spacing-y)}atomic-search-layout atomic-layout-section[section='status'] atomic-breadbox{grid-area:atomic-breadbox}atomic-search-layout atomic-layout-section[section='status'] atomic-query-summary{grid-area:atomic-query-summary;align-self:center;overflow:hidden}atomic-search-layout atomic-layout-section[section='status'] atomic-sort-dropdown{grid-area:atomic-sort;justify-self:end}atomic-search-layout atomic-layout-section[section='status'] atomic-refine-toggle{grid-area:atomic-sort}atomic-search-layout atomic-layout-section[section='status'] atomic-did-you-mean{grid-area:atomic-did-you-mean}atomic-search-layout atomic-layout-section[section='status'] atomic-notifications{grid-area:atomic-notifications}atomic-search-layout atomic-layout-section[section='results'] atomic-smart-snippet{margin-bottom:1.5rem}atomic-search-layout atomic-layout-section[section='results'] atomic-smart-snippet-suggestions{margin-bottom:1.5rem}atomic-search-layout atomic-layout-section[section='pagination']{display:flex;flex-direction:column;justify-content:space-between;align-items:center}atomic-search-layout atomic-layout-section[section='pagination'] atomic-load-more-results{width:100%}atomic-search-layout atomic-layout-section[section='pagination']:has(:only-child){justify-content:center}atomic-search-layout atomic-layout-section[section='pagination']>*{margin-top:var(--atomic-layout-spacing-y)}@media only screen and (min-width: 50rem){atomic-search-layout atomic-layout-section[section='pagination']{flex-direction:row}}";
|
|
15
|
-
const AtomicSearchLayoutStyle0 = atomicSearchLayoutCss;
|
|
16
|
-
|
|
17
|
-
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
20
|
-
r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
else
|
|
22
|
-
for (var i = decorators.length - 1; i >= 0; i--)
|
|
23
|
-
if (d = decorators[i])
|
|
24
|
-
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
25
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
26
|
-
};
|
|
27
|
-
const AtomicSearchLayout = class {
|
|
28
|
-
constructor(hostRef) {
|
|
29
|
-
registerInstance(this, hostRef);
|
|
30
|
-
/**
|
|
31
|
-
* CSS value that defines where the layout goes from mobile to desktop.
|
|
32
|
-
* e.g., 800px, 65rem.
|
|
33
|
-
*/
|
|
34
|
-
this.mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;
|
|
35
|
-
this.mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;
|
|
36
|
-
}
|
|
37
|
-
componentDidLoad() {
|
|
38
|
-
const id = this.host.id || randomID('atomic-search-layout-');
|
|
39
|
-
this.host.id = id;
|
|
40
|
-
const styleTag = this.bindings.createStyleElement();
|
|
41
|
-
styleTag.innerHTML = buildSearchLayout(this.host, this.mobileBreakpoint);
|
|
42
|
-
this.host.appendChild(styleTag);
|
|
43
|
-
}
|
|
44
|
-
get host() { return getElement(this); }
|
|
45
|
-
};
|
|
46
|
-
__decorate([
|
|
47
|
-
InitializeBindings()
|
|
48
|
-
], AtomicSearchLayout.prototype, "bindings", void 0);
|
|
49
|
-
AtomicSearchLayout.style = AtomicSearchLayoutStyle0;
|
|
50
|
-
|
|
51
|
-
export { AtomicSearchLayout as atomic_search_layout };
|
|
52
|
-
|
|
53
|
-
//# sourceMappingURL=atomic-search-layout.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"atomic-search-layout.entry.js","mappings":";;;;;;;;;;;;;AAAA,MAAM,qBAAqB,GAAG,mkIAAmkI,CAAC;AAClmI,iCAAe,qBAAqB;;;;;;;;;;;;MCiBvB,kBAAkB;;;;;;;QAQC,qBAAgB,GAAG,yBAAyB,CAAC;gCAA1B,yBAAyB;;IAGnE,gBAAgB;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACjC;;;AAR4B;IAA5B,kBAAkB,EAAE;oDAA4B;;;;;","names":[],"sources":["src/components/search/atomic-layout/atomic-search-layout.pcss?tag=atomic-search-layout","src/components/search/atomic-layout/atomic-search-layout.tsx"],"sourcesContent":[".atomic-modal-opened {\n overflow-y: hidden;\n}\n\natomic-layout-section[section='search'] {\n grid-area: atomic-section-search;\n}\n\natomic-layout-section[section='facets'] {\n grid-area: atomic-section-facets;\n}\n\natomic-layout-section[section='main'] {\n grid-area: atomic-section-main;\n}\n\natomic-layout-section[section='status'] {\n grid-area: atomic-section-status;\n}\n\natomic-layout-section[section='pagination'] {\n grid-area: atomic-section-pagination;\n}\n\n/**\n * @prop --atomic-layout-max-search-box-input-width: The maximum width that the search box input will take.\n * @prop --atomic-layout-max-search-box-double-suggestions-width: The maximum width that the search box suggestions will take when displaying a double list.\n * @prop --atomic-layout-search-box-left-suggestions-width: When displaying a double list, the width of the left list.\n */\natomic-search-layout {\n width: 100%;\n height: 100%;\n display: none;\n grid-template-areas:\n '. atomic-section-search .'\n '. atomic-section-main .';\n grid-template-columns: var(--atomic-layout-spacing-x) minmax(0, 1fr) var(--atomic-layout-spacing-x);\n\n atomic-layout-section[section='search'] {\n margin: var(--atomic-layout-spacing-y) 0;\n max-width: var(--atomic-layout-max-search-box-input-width, 678px);\n width: 100%;\n justify-self: center;\n\n /* Only affects desktop */\n atomic-search-box {\n &::part(suggestions-double-list) {\n width: 125%;\n max-width: var(--atomic-layout-max-search-box-double-suggestions-width, 800px);\n }\n\n &::part(suggestions-left) {\n flex-basis: var(--atomic-layout-search-box-left-suggestions-width, 30%);\n }\n\n &::part(suggestions-right) {\n flex-basis: calc(100% - var(--atomic-layout-search-box-left-suggestions-width, 30%));\n }\n }\n }\n\n atomic-layout-section[section='facets'] {\n display: none;\n\n & * {\n margin-bottom: var(--atomic-layout-spacing-y);\n }\n }\n\n atomic-layout-section[section='main'] {\n margin-bottom: var(--atomic-layout-spacing-y);\n }\n\n atomic-layout-section[section='horizontal-facets'] {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: var(--atomic-layout-spacing-y);\n row-gap: 0.5rem;\n\n & > * {\n max-width: 100%;\n }\n\n & > atomic-segmented-facet,\n & > atomic-popover {\n margin-right: 0.5rem;\n }\n\n & > atomic-popover {\n display: none;\n }\n }\n\n atomic-layout-section[section='status'] {\n display: grid;\n justify-content: space-between;\n grid-template-areas:\n 'atomic-breadbox atomic-breadbox'\n 'atomic-query-summary atomic-sort'\n 'atomic-did-you-mean atomic-did-you-mean'\n 'atomic-notifications atomic-notifications';\n\n & > * {\n margin-bottom: var(--atomic-layout-spacing-y);\n }\n\n atomic-breadbox {\n grid-area: atomic-breadbox;\n }\n\n atomic-query-summary {\n grid-area: atomic-query-summary;\n align-self: center;\n overflow: hidden;\n }\n\n atomic-sort-dropdown {\n grid-area: atomic-sort;\n justify-self: end;\n }\n\n atomic-refine-toggle {\n grid-area: atomic-sort;\n }\n\n atomic-did-you-mean {\n grid-area: atomic-did-you-mean;\n }\n\n atomic-notifications {\n grid-area: atomic-notifications;\n }\n }\n\n atomic-layout-section[section='results'] {\n atomic-smart-snippet {\n margin-bottom: 1.5rem;\n }\n\n atomic-smart-snippet-suggestions {\n margin-bottom: 1.5rem;\n }\n }\n\n atomic-layout-section[section='pagination'] {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n atomic-load-more-results {\n width: 100%;\n }\n\n &:has(:only-child) {\n justify-content: center;\n }\n\n & > * {\n margin-top: var(--atomic-layout-spacing-y);\n }\n\n /* Approx. width of pager & results per page */\n @media only screen and (min-width: 50rem) {\n flex-direction: row;\n }\n }\n}\n","import {Component, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {DEFAULT_MOBILE_BREAKPOINT} from '../../../utils/replace-breakpoint';\nimport {randomID} from '../../../utils/utils';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\nimport {buildSearchLayout} from './search-layout';\n\n/**\n * The `atomic-search-layout` helps organize elements in the page.\n */\n@Component({\n tag: 'atomic-search-layout',\n styleUrl: 'atomic-search-layout.pcss',\n shadow: false,\n})\nexport class AtomicSearchLayout implements InitializableComponent<Bindings> {\n public error!: Error;\n\n @Element() private host!: HTMLElement;\n /**\n * CSS value that defines where the layout goes from mobile to desktop.\n * e.g., 800px, 65rem.\n */\n @Prop({reflect: true}) public mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;\n @InitializeBindings() public bindings!: Bindings;\n\n public componentDidLoad() {\n const id = this.host.id || randomID('atomic-search-layout-');\n this.host.id = id;\n const styleTag = this.bindings.createStyleElement();\n styleTag.innerHTML = buildSearchLayout(this.host, this.mobileBreakpoint);\n this.host.appendChild(styleTag);\n }\n}\n"],"version":3}
|