@coveo/atomic 3.48.0 → 3.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +1367 -332
- 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 -6
- package/dist/atomic/components/_index.js +1 -4
- package/dist/atomic/components/atomic-insight-generated-answer.js +16 -5
- package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-action.js +2 -2
- package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +2 -2
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-children-template.js +2 -2
- package/dist/atomic/components/atomic-insight-result-children-template.js.map +1 -1
- package/dist/atomic/components/atomic-insight-timeframe-facet.js +7 -6
- package/dist/atomic/components/atomic-insight-timeframe-facet.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-recs-list.js +323 -10
- package/dist/atomic/components/atomic-ipx-recs-list.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-refine-modal2.js +3 -3
- package/dist/atomic/components/atomic-ipx-refine-modal2.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-refine-toggle.js +2 -2
- package/dist/atomic/components/atomic-ipx-refine-toggle.js.map +1 -1
- package/dist/atomic/components/attach.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +4 -4
- package/dist/atomic/components/components/insight/atomic-insight-folded-result-list/atomic-insight-folded-result-list.js +309 -0
- package/dist/atomic/components/components/insight/atomic-insight-result-children/atomic-insight-result-children.js +4 -4
- package/dist/atomic/components/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.js +198 -0
- package/dist/atomic/components/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.tw.css.js +3 -0
- package/dist/atomic/components/components/insight/index.js +2 -0
- package/dist/atomic/components/components/insight/lazy-index.js +2 -0
- package/dist/atomic/components/components/recommendations/atomic-recs-list/atomic-recs-list.js +437 -0
- package/dist/atomic/components/components/recommendations/index.js +1 -0
- package/dist/atomic/components/components/recommendations/lazy-index.js +1 -0
- package/dist/atomic/components/components/search/atomic-generated-answer/atomic-generated-answer.js +6 -0
- package/dist/atomic/components/components/search/atomic-search-box/atomic-search-box.js +4 -4
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/components/initialization-utils.js +1 -1
- package/dist/atomic/components/popover-type.js +1 -1
- package/dist/atomic/components/stencil-button.js +22 -2
- package/dist/atomic/components/stencil-button.js.map +1 -1
- package/dist/atomic/components/stencil-heading.js +157 -1
- package/dist/atomic/components/stencil-heading.js.map +1 -1
- package/dist/atomic/components/store.js +0 -2
- package/dist/atomic/components/store.js.map +1 -1
- package/dist/atomic/components/utils/custom-element-tags.js +4 -0
- package/dist/atomic/components/utils/tailwind.global.tw.css.js +4 -4
- package/dist/atomic/components/utils.js +1360 -2
- package/dist/atomic/components/utils.js.map +1 -1
- package/dist/atomic/lang/cs.json +1 -1
- package/dist/atomic/lang/da.json +1 -1
- package/dist/atomic/lang/de.json +1 -1
- package/dist/atomic/lang/dev.json +1 -1
- package/dist/atomic/lang/el.json +1 -1
- package/dist/atomic/lang/en.json +1 -1
- package/dist/atomic/lang/es.json +1 -1
- package/dist/atomic/lang/fi.json +1 -1
- package/dist/atomic/lang/fr.json +1 -1
- package/dist/atomic/lang/hu.json +1 -1
- package/dist/atomic/lang/id.json +1 -1
- package/dist/atomic/lang/it.json +1 -1
- package/dist/atomic/lang/ja.json +1 -1
- package/dist/atomic/lang/ko.json +1 -1
- package/dist/atomic/lang/nl.json +1 -1
- package/dist/atomic/lang/no.json +1 -1
- package/dist/atomic/lang/pl.json +1 -1
- package/dist/atomic/lang/pt-BR.json +1 -1
- package/dist/atomic/lang/pt.json +1 -1
- package/dist/atomic/lang/ru.json +1 -1
- package/dist/atomic/lang/sv.json +1 -1
- package/dist/atomic/lang/th.json +1 -1
- package/dist/atomic/lang/tr.json +1 -1
- package/dist/atomic/lang/zh-CN.json +1 -1
- package/dist/atomic/lang/zh-TW.json +1 -1
- package/dist/atomic/lang/zh.json +1 -1
- package/dist/atomic/p-0f896350.entry.js +2 -0
- package/dist/atomic/{p-026a51a7.entry.js.map → p-0f896350.entry.js.map} +1 -1
- package/dist/atomic/p-4117289b.entry.js +2 -0
- package/dist/atomic/{p-77250a6b.entry.js.map → p-4117289b.entry.js.map} +1 -1
- package/dist/atomic/p-4a32511f.js +1 -1
- package/dist/atomic/p-74210c4b.entry.js +9 -0
- package/dist/atomic/{p-5ec9bf71.entry.js.map → p-74210c4b.entry.js.map} +1 -1
- package/dist/atomic/p-8b039c2e.entry.js +2 -0
- package/dist/atomic/{p-15074eb9.entry.js.map → p-8b039c2e.entry.js.map} +1 -1
- package/dist/atomic/p-991e840f.entry.js +2 -0
- package/dist/atomic/p-991e840f.entry.js.map +1 -0
- package/dist/atomic/{p-c0fbee64.js → p-9c5ec170.js} +2 -2
- package/dist/atomic/p-9dfe5ab1.js +2 -0
- package/dist/atomic/p-9dfe5ab1.js.map +1 -0
- package/dist/atomic/p-9f774145.entry.js +2 -0
- package/dist/atomic/{p-40e4e762.entry.js.map → p-9f774145.entry.js.map} +1 -1
- package/dist/atomic/{p-3df103c1.js → p-b09433bb.js} +2 -2
- package/dist/atomic/p-b09433bb.js.map +1 -0
- package/dist/atomic/p-c81f1edb.entry.js +2 -0
- package/dist/atomic/{p-3bb48254.entry.js.map → p-c81f1edb.entry.js.map} +1 -1
- package/dist/atomic/p-eea2c139.entry.js +2 -0
- package/dist/atomic/p-eea2c139.entry.js.map +1 -0
- package/dist/atomic/p-f321aab0.js +2 -0
- package/dist/atomic/{p-141bf64c.js.map → p-f321aab0.js.map} +1 -1
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +19 -9
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +4 -5
- package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +10 -10
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +328 -18
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +3 -5
- package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +2 -2
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/index-3532822e.js +0 -12
- package/dist/cjs/{props-utils-4a99eda6.js → props-utils-bc5feb04.js} +2 -2
- package/dist/cjs/{props-utils-4a99eda6.js.map → props-utils-bc5feb04.js.map} +1 -1
- package/dist/cjs/{stencil-accessibility-utils-e64abd7b.js → stencil-heading-ecec9ab3.js} +12 -2
- package/dist/cjs/stencil-heading-ecec9ab3.js.map +1 -0
- package/dist/cjs/{store-9d4daf92.js → store-70fff5e6.js} +1 -3
- package/dist/cjs/store-70fff5e6.js.map +1 -0
- package/dist/cjs/{purify-d8fb6acd.js → utils-e845f262.js} +67 -1
- package/dist/cjs/utils-e845f262.js.map +1 -0
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/atomic-insight-generated-answer.entry.js +16 -6
- package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-action.entry.js +1 -1
- package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +1 -1
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-children-template.entry.js +4 -5
- package/dist/esm/atomic-insight-result-children-template.entry.js.map +1 -1
- package/dist/esm/atomic-insight-timeframe-facet.entry.js +9 -9
- package/dist/esm/atomic-insight-timeframe-facet.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-recs-list.entry.js +324 -14
- package/dist/esm/atomic-ipx-recs-list.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-refine-modal.entry.js +4 -6
- package/dist/esm/atomic-ipx-refine-modal.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-refine-toggle.entry.js +2 -2
- package/dist/esm/atomic-ipx-refine-toggle.entry.js.map +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/index-3eb0b28e.js +0 -12
- package/dist/esm/initialization-utils-82d28c63.js +1 -1
- package/dist/esm/{props-utils-e322e9dd.js → props-utils-d343133b.js} +2 -2
- package/dist/esm/{props-utils-e322e9dd.js.map → props-utils-d343133b.js.map} +1 -1
- package/dist/esm/{stencil-accessibility-utils-69ea92b0.js → stencil-heading-98a5f23f.js} +12 -3
- package/dist/{atomic/p-b3524b97.js.map → esm/stencil-heading-98a5f23f.js.map} +1 -1
- package/dist/esm/{store-3bc9050f.js → store-50d170c8.js} +1 -3
- package/dist/esm/store-50d170c8.js.map +1 -0
- package/dist/esm/{purify-985ba52e.js → utils-b5bab369.js} +60 -2
- package/dist/esm/utils-b5bab369.js.map +1 -0
- package/dist/esm/version.js +2 -2
- package/dist/types/components/common/generated-answer/generated-answer-thread-item/generated-answer-thread-item.d.ts +49 -0
- package/dist/types/components/common/generated-answer/render-follow-up-input.d.ts +17 -0
- package/dist/types/components/insight/atomic-insight-folded-result-list/atomic-insight-folded-result-list.d.ts +99 -0
- package/dist/types/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.d.ts +83 -0
- package/dist/types/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.tw.css.d.ts +2 -0
- package/dist/types/components/insight/index.d.ts +2 -0
- package/dist/types/components/recommendations/atomic-recs-list/atomic-recs-list.d.ts +40 -23
- package/dist/types/components/recommendations/index.d.ts +1 -0
- package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +5 -0
- package/dist/types/components.d.ts +4 -198
- package/docs/atomic-docs.json +17 -434
- package/package.json +9 -4
- package/dist/atomic/components/arrow-right.js +0 -8
- package/dist/atomic/components/arrow-right.js.map +0 -1
- package/dist/atomic/components/atomic-insight-folded-result-list.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-folded-result-list.js +0 -213
- package/dist/atomic/components/atomic-insight-folded-result-list.js.map +0 -1
- package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.d.ts +0 -11
- package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.js +0 -175
- package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.js.map +0 -1
- package/dist/atomic/components/atomic-recs-list.d.ts +0 -11
- package/dist/atomic/components/atomic-recs-list.js +0 -304
- package/dist/atomic/components/atomic-recs-list.js.map +0 -1
- package/dist/atomic/components/display-options.js +0 -277
- package/dist/atomic/components/display-options.js.map +0 -1
- package/dist/atomic/components/event-utils.js +0 -24
- package/dist/atomic/components/event-utils.js.map +0 -1
- package/dist/atomic/components/purify.js +0 -1363
- package/dist/atomic/components/purify.js.map +0 -1
- package/dist/atomic/components/slot-utils.js +0 -16
- package/dist/atomic/components/slot-utils.js.map +0 -1
- package/dist/atomic/components/stencil-accessibility-utils.js +0 -160
- package/dist/atomic/components/stencil-accessibility-utils.js.map +0 -1
- package/dist/atomic/components/stencil-carousel.js +0 -50
- package/dist/atomic/components/stencil-carousel.js.map +0 -1
- package/dist/atomic/p-026a51a7.entry.js +0 -2
- package/dist/atomic/p-09ff88b4.entry.js +0 -2
- package/dist/atomic/p-09ff88b4.entry.js.map +0 -1
- package/dist/atomic/p-0c4a4e30.js +0 -2
- package/dist/atomic/p-0c4a4e30.js.map +0 -1
- package/dist/atomic/p-141bf64c.js +0 -2
- package/dist/atomic/p-15074eb9.entry.js +0 -2
- package/dist/atomic/p-3bb48254.entry.js +0 -2
- package/dist/atomic/p-3df103c1.js.map +0 -1
- package/dist/atomic/p-40e4e762.entry.js +0 -2
- package/dist/atomic/p-4cab9607.js +0 -2
- package/dist/atomic/p-4cab9607.js.map +0 -1
- package/dist/atomic/p-5ec9bf71.entry.js +0 -9
- package/dist/atomic/p-77250a6b.entry.js +0 -2
- package/dist/atomic/p-78be3137.js +0 -2
- package/dist/atomic/p-78be3137.js.map +0 -1
- package/dist/atomic/p-994b3e51.entry.js +0 -2
- package/dist/atomic/p-994b3e51.entry.js.map +0 -1
- package/dist/atomic/p-b3524b97.js +0 -2
- package/dist/atomic/p-cc6320d9.entry.js +0 -2
- package/dist/atomic/p-cc6320d9.entry.js.map +0 -1
- package/dist/atomic/p-cfa9c12b.js +0 -2
- package/dist/atomic/p-cfa9c12b.js.map +0 -1
- package/dist/atomic/p-d189f1a5.js +0 -2
- package/dist/atomic/p-d189f1a5.js.map +0 -1
- package/dist/atomic/p-e58840b6.js +0 -2
- package/dist/atomic/p-e58840b6.js.map +0 -1
- package/dist/atomic/p-f24c22bb.entry.js +0 -2
- package/dist/atomic/p-f24c22bb.entry.js.map +0 -1
- package/dist/atomic/p-f2906e7c.entry.js +0 -2
- package/dist/atomic/p-f2906e7c.entry.js.map +0 -1
- package/dist/cjs/arrow-right-a3be291c.js +0 -10
- package/dist/cjs/arrow-right-a3be291c.js.map +0 -1
- package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +0 -191
- package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +0 -161
- package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-recs-list.cjs.entry.js +0 -277
- package/dist/cjs/atomic-recs-list.cjs.entry.js.map +0 -1
- package/dist/cjs/display-options-24763cf8.js +0 -284
- package/dist/cjs/display-options-24763cf8.js.map +0 -1
- package/dist/cjs/purify-d8fb6acd.js.map +0 -1
- package/dist/cjs/slot-utils-987a7dd6.js +0 -18
- package/dist/cjs/slot-utils-987a7dd6.js.map +0 -1
- package/dist/cjs/stencil-accessibility-utils-e64abd7b.js.map +0 -1
- package/dist/cjs/stencil-carousel-ba8e11b5.js +0 -53
- package/dist/cjs/stencil-carousel-ba8e11b5.js.map +0 -1
- package/dist/cjs/stencil-heading-e2df37e4.js +0 -15
- package/dist/cjs/stencil-heading-e2df37e4.js.map +0 -1
- package/dist/cjs/store-9d4daf92.js.map +0 -1
- package/dist/cjs/utils-2a022008.js +0 -72
- package/dist/cjs/utils-2a022008.js.map +0 -1
- package/dist/esm/arrow-right-cb365b01.js +0 -8
- package/dist/esm/arrow-right-cb365b01.js.map +0 -1
- package/dist/esm/atomic-insight-folded-result-list.entry.js +0 -187
- package/dist/esm/atomic-insight-folded-result-list.entry.js.map +0 -1
- package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +0 -157
- package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js.map +0 -1
- package/dist/esm/atomic-recs-list.entry.js +0 -273
- package/dist/esm/atomic-recs-list.entry.js.map +0 -1
- package/dist/esm/display-options-d03040a8.js +0 -277
- package/dist/esm/display-options-d03040a8.js.map +0 -1
- package/dist/esm/purify-985ba52e.js.map +0 -1
- package/dist/esm/slot-utils-df87a95a.js +0 -16
- package/dist/esm/slot-utils-df87a95a.js.map +0 -1
- package/dist/esm/stencil-accessibility-utils-69ea92b0.js.map +0 -1
- package/dist/esm/stencil-carousel-eac65a6c.js +0 -50
- package/dist/esm/stencil-carousel-eac65a6c.js.map +0 -1
- package/dist/esm/stencil-heading-adb44de7.js +0 -13
- package/dist/esm/stencil-heading-adb44de7.js.map +0 -1
- package/dist/esm/store-3bc9050f.js.map +0 -1
- package/dist/esm/utils-6771fbc6.js +0 -63
- package/dist/esm/utils-6771fbc6.js.map +0 -1
- package/dist/types/components/insight/result-lists/atomic-insight-folded-result-list/atomic-insight-folded-result-list.d.ts +0 -68
- package/dist/types/components/insight/smart-snippets/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.d.ts +0 -38
- /package/dist/atomic/{p-c0fbee64.js.map → p-9c5ec170.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parseDependsOn","dependsOn","Object","keys","length","entries","map","parentFacetId","expectedValue","condition","buildDependsOnCondition","values","some","value","isCategoryFacetValue","matchesCategoryFacetValue","isSimpleFacetValue","matchesSimpleFacetValue","selectedValue","getSelectedCategoryFacetValueRequest","state","request","requestAsRecord","children","Array","isArray","child","asRecord","FacetPlaceholder","numberOfValues","isCollapsed","facetValues","i","push","h","class","style","width","opacity","part","getFieldCaptionNamespace","field","getFieldValueCaption","facetValue","i18n","t","ns","FacetContainer","_","FacetHeader","props","label","expandFacet","collapseFacet","clearFilters","count","numberOfActiveValues","clearFiltersForFacet","Button","ariaLabel","onClick","onToggleCollapse","ariaExpanded","toString","ref","headerRef","Heading","level","headingLevel","icon","ArrowBottomIcon","ArrowTopIcon","onClearFilters","CloseIcon","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","str","match","exec","escape","html","index","lastIndex","charCodeAt","substring","regexEncode","replace","highlightSearchResult","resultValue","searchQuery","sanitizedResult","trim","regex","RegExp","FacetValueLabelHighlight","title","displayValue","isSelected","isExcluded","innerHTML","FacetValueLink","numberOfResults","toLocaleString","language","formattedCount","interpolation","escapeValue","additionalPart","key","ariaPressed","buttonRef","text","subList","FieldsetGroup","FacetValuesGroup","facetDisplayLabel","groupLabel","query","undefined","shouldDisplayInputForFacetRange","facetRange","hasInput","hasInputRange","searchStatusState","hasResults","onlyValuesWithResultsOrActive","filter","TimeframeFacetCommon","constructor","this","manualTimeframes","facetId","determineFacetId","setFacetId","getManualTimeframes","facetForDateRange","initializeFacetForDateRange","currentValues","withDatePicker","facetForDatePicker","initializeFacetForDatePicker","facetForDatePickerDependenciesManager","buildDependenciesManager","initializeFilter","facetForDateRangeDependenciesManager","filterDependenciesManager","registerFacetToStore","bindings","store","dateFacets","randomID","enabled","valuesToRender","shouldRenderValues","shouldRenderFacet","shouldRenderInput","getSearchStatusState","hasValues","numberOfSelectedValues","range","period","amount","unit","buildDateRange","start","end","disconnectedCallback","host","isConnected","stopWatching","isHidden","facetInfo","element","registerFacet","format","formatFacetValue","initializePopover","from","querySelectorAll","startDate","deserializeRelativeDate","relativeDate","timeframe","find","error","parseDate","renderValues","renderValuesContainer","renderValue","toggleSingleSelect","renderHeader","headerFocus","focusAfterSearch","clear","deselectAll","el","setTarget","renderDateInput","min","max","rangeGetter","rangeSetter","setRange","render","hasError","firstSearchExecuted","Hidden","atomicInsightTimeframeFacetCss","AtomicInsightTimeframeFacetStyle0","AtomicInsightTimeframeFacet","filterFacetCount","injectionDepth","sortCriteria","initialize","timeframeFacetCommon","id","buildInsightFacetConditionsManager","engine","conditions","buildInsightDateRange","deserializeInsightRelativeDate","searchStatus","buildInsightSearchStatus","focusTarget","FocusTargetController","buildInsightDateFacet","options","generateAutomaticRanges","buildInsightDateFilter","applyDateInput","dispatch","loadInsightDateFacetSetActions","deselectAllDateFacetValues","__decorate","InitializeBindings","BindStateToController","MapProp"],"sources":["src/components/common/facets/depends-on.ts","src/components/common/facets/facet-placeholder/stencil-facet-placeholder.tsx","src/utils/field-utils.ts","src/components/common/facets/facet-container/stencil-facet-container.tsx","src/components/common/facets/facet-header/stencil-facet-header.tsx","../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js","src/utils/string-utils.ts","src/components/common/facets/facet-search/facet-search-utils.ts","src/components/common/facets/facet-value-label-highlight/stencil-facet-value-label-highlight.tsx","src/components/common/facets/facet-value-link/stencil-facet-value-link.tsx","src/components/common/stencil-fieldset-group.tsx","src/components/common/facets/facet-values-group/stencil-facet-values-group.tsx","src/components/common/facets/stencil-facet-common.tsx","src/components/common/facets/stencil-timeframe-facet-common.tsx","src/components/insight/atomic-insight-timeframe-facet/atomic-insight-timeframe-facet.pcss?tag=atomic-insight-timeframe-facet&encapsulation=shadow","src/components/insight/atomic-insight-timeframe-facet/atomic-insight-timeframe-facet.tsx"],"sourcesContent":["type GenericCondition<AnyFacetValueRequest> = {\n parentFacetId: string;\n condition(parentValues: AnyFacetValueRequest[]): boolean;\n};\n\ninterface SimpleFacetValue {\n value: string;\n state: string;\n}\n\ninterface CategoryFacetValue extends SimpleFacetValue {\n children: SimpleFacetValue[];\n}\n\nexport function parseDependsOn<\n FacetValue extends SimpleFacetValue | CategoryFacetValue,\n>(dependsOn: Record<string, string>): GenericCondition<FacetValue>[] {\n if (Object.keys(dependsOn).length > 1) {\n throw \"Depending on multiple facets isn't supported\";\n }\n\n const entries = Object.entries(dependsOn);\n return entries.map(([parentFacetId, expectedValue]) => ({\n parentFacetId,\n condition: buildDependsOnCondition<FacetValue>(expectedValue),\n }));\n}\n\nfunction buildDependsOnCondition<\n FacetValue extends SimpleFacetValue | CategoryFacetValue,\n>(expectedValue: string): (values: FacetValue[]) => boolean {\n return (values: FacetValue[]) =>\n values.some((value) => {\n if (isCategoryFacetValue(value)) {\n return matchesCategoryFacetValue(\n value as CategoryFacetValue,\n expectedValue\n );\n }\n if (isSimpleFacetValue(value)) {\n return matchesSimpleFacetValue(\n value as SimpleFacetValue,\n expectedValue\n );\n }\n return false;\n });\n}\n\nfunction matchesCategoryFacetValue<FacetValue extends CategoryFacetValue>(\n value: FacetValue,\n expectedValue: string\n): boolean {\n const selectedValue = getSelectedCategoryFacetValueRequest(value);\n if (!selectedValue) {\n return false;\n }\n return !expectedValue || selectedValue.value === expectedValue;\n}\n\nfunction matchesSimpleFacetValue(\n value: SimpleFacetValue,\n expectedValue: string\n): boolean {\n if (value.state !== 'selected') {\n return false;\n }\n return !expectedValue || value.value === expectedValue;\n}\n\nfunction isCategoryFacetValue(request: unknown): request is CategoryFacetValue {\n const requestAsRecord = request as Record<string, unknown>;\n return (\n (requestAsRecord?.children &&\n Array.isArray(requestAsRecord.children) &&\n requestAsRecord?.state &&\n typeof requestAsRecord.state === 'string') === true\n );\n}\n\nfunction getSelectedCategoryFacetValueRequest(\n value: unknown\n): CategoryFacetValue | null {\n if (!isCategoryFacetValue(value)) {\n return null;\n }\n if (value.state === 'selected') {\n return value;\n }\n for (const child of value.children) {\n const selectedValue = getSelectedCategoryFacetValueRequest(child);\n if (selectedValue !== null) {\n return selectedValue;\n }\n }\n return null;\n}\n\nfunction isSimpleFacetValue(value: unknown): value is SimpleFacetValue {\n const asRecord = value as Record<string, unknown>;\n return (\n 'value' in asRecord &&\n typeof asRecord.value === 'string' &&\n !('children' in asRecord)\n );\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\ninterface FacetPlaceholderProps {\n numberOfValues: number;\n isCollapsed: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetPlaceholder: FunctionalComponent<FacetPlaceholderProps> = ({\n numberOfValues,\n isCollapsed,\n}) => {\n const facetValues = [];\n for (let i = 0; i < numberOfValues; i++) {\n facetValues.push(\n <div\n class=\"bg-neutral mt-4 flex h-5\"\n style={{width: '100%', opacity: '0.5'}}\n ></div>\n );\n }\n\n return (\n <div\n part=\"placeholder\"\n class=\"bg-background border-neutral mb-4 animate-pulse rounded-lg border p-7\"\n aria-hidden=\"true\"\n >\n <div class=\"bg-neutral h-8 rounded\" style={{width: '75%'}}></div>\n {!isCollapsed && <div class=\"mt-7\">{facetValues}</div>}\n </div>\n );\n};\n","import type {i18n} from 'i18next';\n\nfunction getFieldCaptionNamespace(field: string) {\n return `caption-${field}`;\n}\n\nexport function getFieldCaptions(field: string, i18n: i18n) {\n return (\n i18n.getResourceBundle(i18n.language, getFieldCaptionNamespace(field)) || {}\n );\n}\n\nexport function getFieldValueCaption(\n field: string,\n facetValue: string,\n i18n: i18n\n) {\n return i18n.t(facetValue, {\n ns: getFieldCaptionNamespace(field),\n });\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetContainer: FunctionalComponent = (_, children) => (\n <div class=\"bg-background border-neutral rounded-lg border p-4\" part=\"facet\">\n {children}\n </div>\n);\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport ArrowBottomIcon from '../../../../images/arrow-bottom-rounded.svg';\nimport ArrowTopIcon from '../../../../images/arrow-top-rounded.svg';\nimport CloseIcon from '../../../../images/close.svg';\nimport {Button} from '../../stencil-button';\nimport {Heading} from '../../stencil-heading';\n\ninterface FacetHeaderProps {\n i18n: i18n;\n label: string;\n numberOfActiveValues: number;\n isCollapsed: boolean;\n headingLevel: number;\n onToggleCollapse(): void;\n onClearFilters?(): void;\n headerRef?: (element?: HTMLButtonElement) => void;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetHeader: FunctionalComponent<FacetHeaderProps> = (props) => {\n const label = props.i18n.t(props.label);\n const expandFacet = props.i18n.t('expand-facet', {label});\n const collapseFacet = props.i18n.t('collapse-facet', {label});\n const clearFilters = props.i18n.t('clear-filters', {\n count: props.numberOfActiveValues,\n });\n const clearFiltersForFacet = props.i18n.t('clear-filters-for-facet', {\n count: props.numberOfActiveValues,\n label,\n });\n\n return [\n <Button\n style=\"text-transparent\"\n part=\"label-button\"\n class=\"flex w-full justify-between rounded-none px-2 py-1 text-lg font-bold\"\n ariaLabel={props.isCollapsed ? expandFacet : collapseFacet}\n onClick={() => props.onToggleCollapse()}\n ariaExpanded={(!props.isCollapsed).toString()}\n ref={props.headerRef}\n >\n <Heading level={props.headingLevel} class=\"truncate\">\n {label}\n </Heading>\n <atomic-icon\n part=\"label-button-icon\"\n class=\"ml-4 w-3 shrink-0 self-center\"\n icon={props.isCollapsed ? ArrowBottomIcon : ArrowTopIcon}\n ></atomic-icon>\n </Button>,\n props.onClearFilters && props.numberOfActiveValues > 0 && (\n <Button\n style=\"text-primary\"\n part=\"clear-button\"\n class=\"flex max-w-full items-baseline p-2 text-sm\"\n ariaLabel={clearFiltersForFacet}\n onClick={() => props.onClearFilters!()}\n >\n <atomic-icon\n part=\"clear-button-icon\"\n class=\"mr-1 h-2 w-2\"\n icon={CloseIcon}\n ></atomic-icon>\n <span>{clearFilters}</span>\n </Button>\n ),\n ];\n};\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","export function regexEncode(value: string): string {\n return value.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nexport function encodeForDomAttribute(str: string) {\n return str\n .split('')\n .map((ch) => (ch.match(/(\\d|\\w)+/g) ? ch : ch.charCodeAt(0)))\n .join('');\n}\n","import escapeHtml from 'escape-html';\nimport {regexEncode} from '../../../../utils/string-utils';\n\ninterface FacetSearchState {\n query: string;\n values: unknown[];\n isLoading: boolean;\n}\n\n/**\n * Meant to be used inside the `shouldUpdate` lifecycle method.\n * It prevents updating the facet between two matchless facet searches.\n * It also prevents updating the facet until the first search has loaded.\n */\nexport function shouldUpdateFacetSearchComponent(\n nextFacetSearchState: FacetSearchState,\n prevFacetSearchState: FacetSearchState\n) {\n const hasQuery = nextFacetSearchState.query !== '';\n const stillNoValues =\n !nextFacetSearchState.values.length && !prevFacetSearchState.values.length;\n const hasFinishedLoading =\n !nextFacetSearchState.isLoading && prevFacetSearchState.isLoading;\n\n if (hasQuery && stillNoValues) {\n return hasFinishedLoading;\n }\n\n return true;\n}\n\nexport function shouldDisplaySearchResults(facetSearchState: FacetSearchState) {\n const hasQuery = facetSearchState.query !== '';\n const isLoading = facetSearchState.isLoading;\n const hasValues = !!facetSearchState.values.length;\n\n if (!hasQuery) {\n return false;\n }\n\n if (hasValues) {\n return true;\n }\n\n return !isLoading;\n}\n\nexport function highlightSearchResult(resultValue: string, searchQuery = '') {\n const sanitizedResult = escapeHtml(resultValue);\n\n if (searchQuery.trim() === '') {\n return sanitizedResult;\n }\n\n const regex = new RegExp(`(${regexEncode(escapeHtml(searchQuery))})`, 'i');\n return escapeHtml(resultValue).replace(\n regex,\n '<span part=\"search-highlight\" class=\"font-bold\">$1</span>'\n );\n}\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {highlightSearchResult} from '../facet-search/facet-search-utils';\n\ninterface FacetValueLabelHighlightProps {\n displayValue: string;\n searchQuery?: string;\n isSelected: boolean;\n isExcluded?: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetValueLabelHighlight: FunctionalComponent<\n FacetValueLabelHighlightProps\n> = (props) => {\n return (\n // deepcode ignore ReactSetInnerHtml: This is not React code\n <span\n title={props.displayValue}\n part=\"value-label\"\n class={`value-label peer-hover:text-error truncate ${\n props.isSelected || !!props.isExcluded ? 'font-bold' : ''\n }`}\n innerHTML={highlightSearchResult(props.displayValue, props.searchQuery)}\n ></span>\n );\n};\n","import {FunctionalComponent, h, VNode} from '@stencil/core';\nimport {Button} from '../../stencil-button';\nimport {FacetValueProps} from '../stencil-facet-common';\n\ninterface FacetValueLinkProps extends FacetValueProps {\n subList?: VNode | VNode[];\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetValueLink: FunctionalComponent<FacetValueLinkProps> = (\n props,\n children\n) => {\n const count = props.numberOfResults.toLocaleString(props.i18n.language);\n const ariaLabel = props.i18n.t('facet-value', {\n value: props.displayValue,\n count: props.numberOfResults,\n formattedCount: count,\n interpolation: {escapeValue: false},\n });\n\n let part =\n props.part ?? `value-link${props.isSelected ? ' value-link-selected' : ''}`;\n\n if (props.additionalPart) {\n part += ` ${props.additionalPart}`;\n }\n\n return (\n <li key={props.displayValue} class={props.class}>\n <Button\n style=\"text-neutral\"\n part={part}\n onClick={() => props.onClick()}\n class=\"group flex w-full items-center truncate px-2 py-2.5 text-left focus-visible:outline-none\"\n ariaPressed={props.isSelected.toString()}\n ariaLabel={ariaLabel}\n ref={props.buttonRef}\n >\n {children}\n <span part=\"value-count\" class=\"value-count\">\n {props.i18n.t('between-parentheses', {\n text: count,\n })}\n </span>\n </Button>\n {props.subList}\n </li>\n );\n};\n","import {h, FunctionalComponent} from '@stencil/core';\n\ninterface GroupProps {\n label: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FieldsetGroup: FunctionalComponent<GroupProps> = (\n {label},\n children\n) => (\n <fieldset class=\"contents\">\n <legend class=\"sr-only\">{label}</legend>\n {children}\n </fieldset>\n);\n","import {h, FunctionalComponent} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {FieldsetGroup} from '../../stencil-fieldset-group';\n\ninterface FacetValuesGroupProps {\n i18n: i18n;\n label?: string;\n query?: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetValuesGroup: FunctionalComponent<FacetValuesGroupProps> = (\n props,\n children\n) => {\n if (!props.label) {\n return children;\n }\n const facetDisplayLabel = props.i18n.t(props.label);\n const groupLabel =\n props.query === undefined\n ? props.i18n.t('facet-values', {label: facetDisplayLabel})\n : props.i18n.t('facet-search-results', {\n query: props.query,\n label: facetDisplayLabel,\n });\n\n return <FieldsetGroup label={groupLabel}>{children}</FieldsetGroup>;\n};\n","import {FacetValue, SearchStatusState} from '@coveo/headless';\nimport {i18n} from 'i18next';\nimport { AtomicAutomaticFacetGenerator } from '../../search/atomic-automatic-facet-generator/atomic-automatic-facet-generator';\n\nexport interface FacetValueProps {\n i18n: i18n;\n displayValue: string;\n numberOfResults: number;\n isSelected: boolean;\n onClick(): void;\n searchQuery?: string;\n class?: string;\n part?: string;\n additionalPart?: string;\n buttonRef?: (element?: HTMLButtonElement) => void;\n}\n\nexport function shouldDisplayInputForFacetRange(facetRange: {\n hasInput: boolean;\n hasInputRange: boolean;\n searchStatusState: SearchStatusState;\n facetValues: Pick<FacetValue, 'numberOfResults' | 'state'>[];\n}) {\n const {hasInput, hasInputRange, searchStatusState, facetValues} = facetRange;\n if (!hasInput) {\n return false;\n }\n\n if (hasInputRange) {\n return true;\n }\n\n if (!searchStatusState.hasResults) {\n return false;\n }\n\n const onlyValuesWithResultsOrActive =\n facetValues.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || [];\n\n if (!onlyValuesWithResultsOrActive.length) {\n return false;\n }\n\n return true;\n}\n\nexport type BaseFacetElement = HTMLElement & {\n facetId: string;\n isCollapsed: boolean;\n};\n\nexport function sortFacetVisibility(\n facetElements: BaseFacetElement[],\n facetInfoMap: Record<string, {isHidden: () => boolean}>\n) {\n const visibleFacets: BaseFacetElement[] = [];\n const invisibleFacets: BaseFacetElement[] = [];\n\n facetElements.forEach((facet) => {\n if (facetInfoMap[facet.facetId] && facetInfoMap[facet.facetId].isHidden()) {\n invisibleFacets.push(facet);\n } else {\n visibleFacets.push(facet);\n }\n });\n\n return {visibleFacets, invisibleFacets};\n}\n\nexport function collapseFacetsAfter(\n facets: BaseFacetElement[],\n visibleFacetsCount: number\n) {\n if (visibleFacetsCount === -1) {\n return;\n }\n\n facets.forEach((facet, index) => {\n facet.isCollapsed = index + 1 > visibleFacetsCount;\n });\n}\n\nexport function isAutomaticFacetGenerator(\n element: HTMLElement\n): element is AtomicAutomaticFacetGenerator {\n return element.tagName === 'ATOMIC-AUTOMATIC-FACET-GENERATOR';\n}\n\nfunction isPseudoFacet(el: Element): el is BaseFacetElement {\n return 'facetId' in el;\n}\n\nexport function getFacetsInChildren(parent: HTMLElement): BaseFacetElement[] {\n const facets = Array.from(parent.children).filter((child) =>\n isPseudoFacet(child)\n ) as BaseFacetElement[];\n\n return facets;\n}\nexport function getAutomaticFacetGenerator(\n parent: HTMLElement\n): AtomicAutomaticFacetGenerator | undefined {\n return (Array.from(parent.children) as HTMLElement[]).find(\n isAutomaticFacetGenerator\n );\n}\n\nfunction findFacetParent(\n facet: BaseFacetElement,\n parents: (HTMLElement | null)[]\n) {\n for (let i = 0; i < parents.length; i++) {\n if (parents[i]?.contains(facet)) {\n return parents[i];\n }\n }\n return null;\n}\n\n/**\n * Triage elements by their parents.\n * @param facets Facet Elements\n * @param parents Elements that may contains the facets\n * @returns an array in the same order as the parents, containing the facets that are contained by the corresponding parent.\n * The last element of the array contains the facets that are not contained by any of the parents.\n */\nexport function triageFacetsByParents(\n facets: BaseFacetElement[],\n ...parents: (HTMLElement | null)[]\n): Map<HTMLElement | null, BaseFacetElement[]> {\n const sortedFacets: Map<HTMLElement | null, BaseFacetElement[]> = new Map(\n parents.concat([null]).map((parent) => [parent, []])\n );\n for (const facet of facets) {\n const parent = findFacetParent(facet, parents);\n sortedFacets.get(parent)!.push(facet);\n }\n return sortedFacets;\n}\n","import {FocusTargetController} from '@/src/utils/stencil-accessibility-utils';\nimport {\n DateFacet,\n DateFacetValue,\n DateFilter,\n DateRangeOptions,\n DateRangeRequest,\n FacetConditionsManager,\n RangeFacetSortCriterion,\n RelativeDate,\n RelativeDatePeriod,\n RelativeDateUnit,\n SearchStatusState,\n} from '@coveo/headless';\nimport {h, VNode} from '@stencil/core';\nimport {parseDate} from '../../../utils/date-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {randomID} from '../../../utils/utils';\nimport {InsightBindings} from '../../insight/atomic-insight-interface/atomic-insight-interface';\nimport {Bindings as SearchBindings} from '../../search/atomic-search-interface/atomic-search-interface';\nimport {Hidden} from '../stencil-hidden';\nimport {FacetInfo} from './facet-common-store';\nimport {FacetContainer} from './facet-container/stencil-facet-container';\nimport {FacetHeader} from './facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from './facet-placeholder/stencil-facet-placeholder';\nimport {FacetValueLabelHighlight} from './facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from './facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from './facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from './popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from './stencil-facet-common';\n\nexport interface Timeframe {\n period: RelativeDatePeriod;\n unit?: RelativeDateUnit;\n amount?: number;\n label?: string;\n}\n\ninterface TimeframeFacetCommonOptions {\n facetId?: string;\n host: HTMLElement;\n bindings: SearchBindings | InsightBindings;\n label: string;\n field: string;\n headingLevel: number;\n dependsOn: Record<string, string>;\n withDatePicker: boolean;\n setFacetId(id: string): string;\n getSearchStatusState(): SearchStatusState;\n buildDependenciesManager(facetId: string): FacetConditionsManager;\n deserializeRelativeDate(date: string): RelativeDate;\n buildDateRange(config: DateRangeOptions): DateRangeRequest;\n initializeFacetForDatePicker(): DateFacet;\n initializeFacetForDateRange(values: DateRangeRequest[]): DateFacet;\n initializeFilter(): DateFilter;\n min?: string;\n max?: string;\n sortCriteria: RangeFacetSortCriterion;\n}\n\ninterface TimeframeFacetCommonRenderProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n isCollapsed: boolean;\n headerFocus: FocusTargetController;\n onToggleCollapse: () => boolean;\n}\n\nexport class TimeframeFacetCommon {\n private facetId?: string;\n private facetForDatePicker?: DateFacet;\n private facetForDateRange?: DateFacet;\n private filter?: DateFilter;\n private manualTimeframes: Timeframe[] = [];\n private facetForDateRangeDependenciesManager?: FacetConditionsManager;\n private facetForDatePickerDependenciesManager?: FacetConditionsManager;\n private filterDependenciesManager?: FacetConditionsManager;\n\n constructor(private props: TimeframeFacetCommonOptions) {\n this.facetId = this.determineFacetId;\n this.props.setFacetId(this.facetId);\n\n this.manualTimeframes = this.getManualTimeframes();\n\n // Initialize two facets: One that is actually used to display values for end users, which only exists\n // if we need to display something to the end user (ie: timeframes > 0)\n\n // A second facet is initialized only to verify the results count. It is never used to display results to end user.\n // It serves as a way to determine if the input should be rendered or not, independent of the ranges configured in the component\n if (this.manualTimeframes.length > 0) {\n this.facetForDateRange = this.props.initializeFacetForDateRange(\n this.currentValues\n );\n }\n\n if (this.props.withDatePicker) {\n this.facetForDatePicker = this.props.initializeFacetForDatePicker();\n this.facetForDatePickerDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDatePicker.state.facetId\n );\n this.filter = this.props.initializeFilter();\n }\n\n if (this.facetForDateRange) {\n this.facetForDateRangeDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDateRange?.state.facetId\n );\n }\n\n if (this.filter) {\n this.filterDependenciesManager = this.props.buildDependenciesManager(\n this.filter?.state.facetId\n );\n }\n\n this.registerFacetToStore();\n }\n\n private get determineFacetId() {\n if (this.props.facetId) {\n return this.props.facetId;\n }\n\n if (this.props.bindings.store.state.dateFacets[this.props.field]) {\n return randomID(`${this.props.field}_`);\n }\n\n return this.props.field;\n }\n\n private get enabled() {\n return (\n this.facetForDateRange?.state.enabled ??\n this.filter?.state.enabled ??\n true\n );\n }\n\n private get valuesToRender() {\n return (\n this.facetForDateRange?.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n return shouldDisplayInputForFacetRange({\n hasInput: this.props.withDatePicker,\n hasInputRange: this.hasInputRange,\n searchStatusState: this.props.getSearchStatusState(),\n facetValues: this.facetForDatePicker?.state?.values || [],\n });\n }\n\n private get hasValues() {\n if (this.facetForDatePicker?.state.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.filter?.state?.range) {\n return 1;\n }\n\n return (\n this.facetForDateRange?.state.values.filter(\n ({state}) => state === 'selected'\n ).length || 0\n );\n }\n\n private get hasInputRange() {\n return !!this.filter?.state.range;\n }\n\n public get currentValues(): DateRangeRequest[] {\n return this.manualTimeframes.map(({period, amount, unit}) =>\n period === 'past'\n ? this.props.buildDateRange({\n start: {period, unit, amount},\n end: {period: 'now'},\n })\n : this.props.buildDateRange({\n start: {period: 'now'},\n end: {period, unit, amount},\n })\n );\n }\n\n public disconnectedCallback() {\n if (this.props.host.isConnected) {\n return;\n }\n this.facetForDateRangeDependenciesManager?.stopWatching();\n this.facetForDatePickerDependenciesManager?.stopWatching();\n this.filterDependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet || !this.enabled;\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.props.bindings.i18n.t(this.props.label),\n facetId: this.facetId!,\n element: this.props.host,\n isHidden: () => this.isHidden,\n };\n\n this.props.bindings.store.registerFacet('dateFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n });\n\n initializePopover(this.props.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n\n if (this.filter) {\n this.props.bindings.store.state.dateFacets[this.filter.state.facetId] =\n this.props.bindings.store.state.dateFacets[this.facetId!];\n }\n }\n\n private getManualTimeframes(): Timeframe[] {\n return Array.from(this.props.host.querySelectorAll('atomic-timeframe')).map(\n ({label, amount, unit, period}) => ({\n label,\n amount,\n unit,\n period,\n })\n );\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = this.props.deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : this.props.deserializeRelativeDate(facetValue.end);\n const timeframe = this.getManualTimeframes().find(\n (timeframe) =>\n timeframe.period === relativeDate.period &&\n timeframe.unit === relativeDate.unit &&\n timeframe.amount === relativeDate.amount\n );\n\n if (timeframe?.label) {\n return getFieldValueCaption(\n this.props.field,\n timeframe.label,\n this.props.bindings.i18n\n );\n }\n return this.props.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.props.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.props.bindings.i18n}\n onClick={() => this.facetForDateRange!.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n >\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader(\n isCollapsed: boolean,\n headerFocus: FocusTargetController,\n onToggleCollapse: () => void\n ) {\n return (\n <FacetHeader\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n onClearFilters={() => {\n headerFocus.focusAfterSearch();\n if (this.filter?.state.range) {\n this.filter?.clear();\n return;\n }\n this.facetForDateRange?.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={isCollapsed}\n headingLevel={this.props.headingLevel}\n onToggleCollapse={onToggleCollapse}\n headerRef={(el) => headerFocus.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-stencil-facet-date-input\n min={this.props.min}\n max={this.props.max}\n bindings={this.props.bindings}\n label={this.props.label}\n facetId={this.filter!.state!.facetId}\n rangeGetter={() => this.filter!.state.range}\n rangeSetter={(request: DateRangeRequest) => {\n this.filter!.setRange(request);\n }}\n ></atomic-stencil-facet-date-input>\n );\n }\n\n public render({\n hasError,\n firstSearchExecuted,\n isCollapsed,\n headerFocus,\n onToggleCollapse,\n }: TimeframeFacetCommonRenderProps) {\n if (hasError || !this.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.currentValues.length}\n isCollapsed={isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.shouldRenderFacet) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader(isCollapsed, headerFocus, onToggleCollapse)}\n {!isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n );\n }\n}\n","@import '../../common/facets/facet-common.pcss';\n","import {\n buildDateFacet as buildInsightDateFacet,\n buildDateFilter as buildInsightDateFilter,\n buildDateRange as buildInsightDateRange,\n buildFacetConditionsManager as buildInsightFacetConditionsManager,\n buildSearchStatus as buildInsightSearchStatus,\n deserializeRelativeDate as deserializeInsightRelativeDate,\n DateFacet as InsightDateFacet,\n DateFacetState as InsightDateFacetState,\n DateFilter as InsightDateFilter,\n DateFilterState as InsightDateFilterState,\n DateRangeRequest as InsightDateRangeRequest,\n SearchStatus as InsightSearchStatus,\n SearchStatusState as InsightSearchStatusState,\n loadDateFacetSetActions as loadInsightDateFacetSetActions,\n RangeFacetSortCriterion as InsightRangeFacetSortCriterion,\n FacetValueRequest as InsightFacetValueRequest,\n CategoryFacetValueRequest as InsightCategoryFacetValueRequest,\n} from '@coveo/headless/insight';\nimport {Component, Element, h, Listen, Prop, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {MapProp} from '../../../utils/props-utils';\nimport {FocusTargetController} from '../../../utils/stencil-accessibility-utils';\nimport {parseDependsOn} from '../../common/facets/depends-on';\nimport {FacetPlaceholder} from '../../common/facets/facet-placeholder/stencil-facet-placeholder';\nimport {TimeframeFacetCommon} from '../../common/facets/stencil-timeframe-facet-common';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-timeframe-facet',\n styleUrl: './atomic-insight-timeframe-facet.pcss',\n shadow: true,\n})\nexport class AtomicInsightTimeframeFacet\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public facetForDateRange?: InsightDateFacet;\n public facetForDatePicker?: InsightDateFacet;\n\n private timeframeFacetCommon?: TimeframeFacetCommon;\n public filter?: InsightDateFilter;\n public searchStatus!: InsightSearchStatus;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facetForDateRange')\n @State()\n public facetState!: InsightDateFacetState;\n @BindStateToController('facetForDatePicker')\n @State()\n public facetForDatePickerState?: InsightDateFacetState;\n @BindStateToController('filter')\n @State()\n public filterState?: InsightDateFilterState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: InsightSearchStatusState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n * Used in the atomic-breadbox component through the bindings store.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field = 'date';\n /**\n * Whether this facet should contain a date picker allowing users to set custom ranges.\n */\n @Prop({reflect: true}) public withDatePicker = false;\n /**\n * Specifies if the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n * Default: `1000`\n */\n @Prop({reflect: true}) public injectionDepth = 1000;\n\n /**\n * The required facets and values for this facet to be displayed.\n * Examples:\n * ```html\n * <atomic-insight-facet facet-id=\"abc\" field=\"objecttype\" ...></atomic-insight-facet>\n *\n * <!-- To show the facet when any value is selected in the facet with id \"abc\": -->\n * <atomic-insight-timeframe-facet\n * depends-on-abc\n * ...\n * ></atomic-insight-timeframe-facet>\n *\n * <!-- To show the facet when value \"doc\" is selected in the facet with id \"abc\": -->\n * <atomic-insight-timeframe-facet\n * depends-on-abc=\"doc\"\n * ...\n * ></atomic-insight-timeframe-facet>\n * ```\n */\n @MapProp() @Prop() public dependsOn: Record<string, string> = {};\n\n /**\n * The sort criterion to apply to the returned facet values.\n * Possible values are 'ascending' and 'descending'.\n */\n @Prop({reflect: true}) public sortCriteria: InsightRangeFacetSortCriterion =\n 'descending';\n\n private headerFocus?: FocusTargetController;\n\n public initialize() {\n this.timeframeFacetCommon = new TimeframeFacetCommon({\n facetId: this.facetId,\n host: this.host,\n bindings: this.bindings,\n label: this.label,\n field: this.field,\n headingLevel: this.headingLevel,\n dependsOn: this.dependsOn,\n withDatePicker: this.withDatePicker,\n setFacetId: (id: string) => (this.facetId = id),\n buildDependenciesManager: (facetId: string) =>\n buildInsightFacetConditionsManager(this.bindings.engine, {\n facetId,\n conditions: parseDependsOn<\n InsightFacetValueRequest | InsightCategoryFacetValueRequest\n >(this.dependsOn),\n }),\n buildDateRange: buildInsightDateRange,\n getSearchStatusState: () => this.searchStatusState,\n deserializeRelativeDate: deserializeInsightRelativeDate,\n initializeFacetForDatePicker: () => this.initializeFacetForDatePicker(),\n initializeFacetForDateRange: (values: InsightDateRangeRequest[]) =>\n this.initializeFacetForDateRange(values),\n initializeFilter: () => this.initializeFilter(),\n sortCriteria: this.sortCriteria,\n });\n this.searchStatus = buildInsightSearchStatus(this.bindings.engine);\n }\n\n private get focusTarget(): FocusTargetController {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n\n public disconnectedCallback() {\n this.timeframeFacetCommon?.disconnectedCallback();\n }\n\n private initializeFacetForDatePicker() {\n this.facetForDatePicker = buildInsightDateFacet(this.bindings.engine, {\n options: {\n facetId: `${this.facetId}_input_range`,\n numberOfValues: 1,\n generateAutomaticRanges: true,\n field: this.field,\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n },\n });\n return this.facetForDatePicker;\n }\n\n private initializeFacetForDateRange(values: InsightDateRangeRequest[]) {\n this.facetForDateRange = buildInsightDateFacet(this.bindings.engine, {\n options: {\n facetId: this.facetId,\n field: this.field,\n currentValues: values,\n generateAutomaticRanges: false,\n sortCriteria: 'descending',\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n },\n });\n\n return this.facetForDateRange;\n }\n\n private initializeFilter() {\n this.filter = buildInsightDateFilter(this.bindings.engine, {\n options: {\n facetId: `${this.facetId}_input`,\n field: this.field,\n },\n });\n\n return this.filter;\n }\n\n @Listen('atomic/dateInputApply')\n public applyDateInput() {\n this.facetId &&\n this.bindings.engine.dispatch(\n loadInsightDateFacetSetActions(\n this.bindings.engine\n ).deselectAllDateFacetValues(this.facetId)\n );\n }\n\n public render() {\n if (!this.timeframeFacetCommon) {\n return (\n <FacetPlaceholder\n numberOfValues={5}\n isCollapsed={this.isCollapsed}\n ></FacetPlaceholder>\n );\n }\n return this.timeframeFacetCommon.render({\n hasError: this.searchStatusState.hasError,\n firstSearchExecuted: this.searchStatusState.firstSearchExecuted,\n isCollapsed: this.isCollapsed,\n headerFocus: this.focusTarget,\n onToggleCollapse: () => (this.isCollapsed = !this.isCollapsed),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["parseDependsOn","dependsOn","Object","keys","length","entries","map","parentFacetId","expectedValue","condition","buildDependsOnCondition","values","some","value","isCategoryFacetValue","matchesCategoryFacetValue","isSimpleFacetValue","matchesSimpleFacetValue","selectedValue","getSelectedCategoryFacetValueRequest","state","request","requestAsRecord","children","Array","isArray","child","asRecord","FacetPlaceholder","numberOfValues","isCollapsed","facetValues","i","push","h","class","style","width","opacity","part","getFieldCaptionNamespace","field","getFieldValueCaption","facetValue","i18n","t","ns","FacetContainer","_","FacetHeader","props","label","expandFacet","collapseFacet","clearFilters","count","numberOfActiveValues","clearFiltersForFacet","Button","ariaLabel","onClick","onToggleCollapse","ariaExpanded","toString","ref","headerRef","Heading","level","headingLevel","icon","ArrowBottomIcon","ArrowTopIcon","onClearFilters","CloseIcon","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","str","match","exec","escape","html","index","lastIndex","charCodeAt","substring","regexEncode","replace","highlightSearchResult","resultValue","searchQuery","sanitizedResult","trim","regex","RegExp","FacetValueLabelHighlight","title","displayValue","isSelected","isExcluded","innerHTML","FacetValueLink","numberOfResults","toLocaleString","language","formattedCount","interpolation","escapeValue","additionalPart","key","ariaPressed","buttonRef","text","subList","FieldsetGroup","FacetValuesGroup","facetDisplayLabel","groupLabel","query","undefined","shouldDisplayInputForFacetRange","facetRange","hasInput","hasInputRange","searchStatusState","hasResults","onlyValuesWithResultsOrActive","filter","TimeframeFacetCommon","constructor","this","manualTimeframes","facetId","determineFacetId","setFacetId","getManualTimeframes","facetForDateRange","initializeFacetForDateRange","currentValues","withDatePicker","facetForDatePicker","initializeFacetForDatePicker","facetForDatePickerDependenciesManager","buildDependenciesManager","initializeFilter","facetForDateRangeDependenciesManager","filterDependenciesManager","registerFacetToStore","bindings","store","dateFacets","randomID","enabled","valuesToRender","shouldRenderValues","shouldRenderFacet","shouldRenderInput","getSearchStatusState","hasValues","numberOfSelectedValues","range","period","amount","unit","buildDateRange","start","end","disconnectedCallback","host","isConnected","stopWatching","isHidden","facetInfo","element","registerFacet","format","formatFacetValue","initializePopover","from","querySelectorAll","startDate","deserializeRelativeDate","relativeDate","timeframe","find","error","parseDate","renderValues","renderValuesContainer","renderValue","toggleSingleSelect","renderHeader","headerFocus","focusAfterSearch","clear","deselectAll","el","setTarget","renderDateInput","min","max","rangeGetter","rangeSetter","setRange","render","hasError","firstSearchExecuted","Hidden","atomicInsightTimeframeFacetCss","AtomicInsightTimeframeFacetStyle0","AtomicInsightTimeframeFacet","filterFacetCount","injectionDepth","sortCriteria","initialize","timeframeFacetCommon","id","buildInsightFacetConditionsManager","engine","conditions","buildInsightDateRange","deserializeInsightRelativeDate","searchStatus","buildInsightSearchStatus","focusTarget","FocusTargetController","buildInsightDateFacet","options","generateAutomaticRanges","buildInsightDateFilter","applyDateInput","dispatch","loadInsightDateFacetSetActions","deselectAllDateFacetValues","__decorate","InitializeBindings","BindStateToController","MapProp"],"sources":["src/components/common/facets/depends-on.ts","src/components/common/facets/facet-placeholder/stencil-facet-placeholder.tsx","src/utils/field-utils.ts","src/components/common/facets/facet-container/stencil-facet-container.tsx","src/components/common/facets/facet-header/stencil-facet-header.tsx","../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js","src/utils/string-utils.ts","src/components/common/facets/facet-search/facet-search-utils.ts","src/components/common/facets/facet-value-label-highlight/stencil-facet-value-label-highlight.tsx","src/components/common/facets/facet-value-link/stencil-facet-value-link.tsx","src/components/common/stencil-fieldset-group.tsx","src/components/common/facets/facet-values-group/stencil-facet-values-group.tsx","src/components/common/facets/stencil-facet-common.tsx","src/components/common/facets/stencil-timeframe-facet-common.tsx","src/components/insight/atomic-insight-timeframe-facet/atomic-insight-timeframe-facet.pcss?tag=atomic-insight-timeframe-facet&encapsulation=shadow","src/components/insight/atomic-insight-timeframe-facet/atomic-insight-timeframe-facet.tsx"],"sourcesContent":["type GenericCondition<AnyFacetValueRequest> = {\n parentFacetId: string;\n condition(parentValues: AnyFacetValueRequest[]): boolean;\n};\n\ninterface SimpleFacetValue {\n value: string;\n state: string;\n}\n\ninterface CategoryFacetValue extends SimpleFacetValue {\n children: SimpleFacetValue[];\n}\n\nexport function parseDependsOn<\n FacetValue extends SimpleFacetValue | CategoryFacetValue,\n>(dependsOn: Record<string, string>): GenericCondition<FacetValue>[] {\n if (Object.keys(dependsOn).length > 1) {\n throw \"Depending on multiple facets isn't supported\";\n }\n\n const entries = Object.entries(dependsOn);\n return entries.map(([parentFacetId, expectedValue]) => ({\n parentFacetId,\n condition: buildDependsOnCondition<FacetValue>(expectedValue),\n }));\n}\n\nfunction buildDependsOnCondition<\n FacetValue extends SimpleFacetValue | CategoryFacetValue,\n>(expectedValue: string): (values: FacetValue[]) => boolean {\n return (values: FacetValue[]) =>\n values.some((value) => {\n if (isCategoryFacetValue(value)) {\n return matchesCategoryFacetValue(\n value as CategoryFacetValue,\n expectedValue\n );\n }\n if (isSimpleFacetValue(value)) {\n return matchesSimpleFacetValue(\n value as SimpleFacetValue,\n expectedValue\n );\n }\n return false;\n });\n}\n\nfunction matchesCategoryFacetValue<FacetValue extends CategoryFacetValue>(\n value: FacetValue,\n expectedValue: string\n): boolean {\n const selectedValue = getSelectedCategoryFacetValueRequest(value);\n if (!selectedValue) {\n return false;\n }\n return !expectedValue || selectedValue.value === expectedValue;\n}\n\nfunction matchesSimpleFacetValue(\n value: SimpleFacetValue,\n expectedValue: string\n): boolean {\n if (value.state !== 'selected') {\n return false;\n }\n return !expectedValue || value.value === expectedValue;\n}\n\nfunction isCategoryFacetValue(request: unknown): request is CategoryFacetValue {\n const requestAsRecord = request as Record<string, unknown>;\n return (\n (requestAsRecord?.children &&\n Array.isArray(requestAsRecord.children) &&\n requestAsRecord?.state &&\n typeof requestAsRecord.state === 'string') === true\n );\n}\n\nfunction getSelectedCategoryFacetValueRequest(\n value: unknown\n): CategoryFacetValue | null {\n if (!isCategoryFacetValue(value)) {\n return null;\n }\n if (value.state === 'selected') {\n return value;\n }\n for (const child of value.children) {\n const selectedValue = getSelectedCategoryFacetValueRequest(child);\n if (selectedValue !== null) {\n return selectedValue;\n }\n }\n return null;\n}\n\nfunction isSimpleFacetValue(value: unknown): value is SimpleFacetValue {\n const asRecord = value as Record<string, unknown>;\n return (\n 'value' in asRecord &&\n typeof asRecord.value === 'string' &&\n !('children' in asRecord)\n );\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\ninterface FacetPlaceholderProps {\n numberOfValues: number;\n isCollapsed: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetPlaceholder: FunctionalComponent<FacetPlaceholderProps> = ({\n numberOfValues,\n isCollapsed,\n}) => {\n const facetValues = [];\n for (let i = 0; i < numberOfValues; i++) {\n facetValues.push(\n <div\n class=\"bg-neutral mt-4 flex h-5\"\n style={{width: '100%', opacity: '0.5'}}\n ></div>\n );\n }\n\n return (\n <div\n part=\"placeholder\"\n class=\"bg-background border-neutral mb-4 animate-pulse rounded-lg border p-7\"\n aria-hidden=\"true\"\n >\n <div class=\"bg-neutral h-8 rounded\" style={{width: '75%'}}></div>\n {!isCollapsed && <div class=\"mt-7\">{facetValues}</div>}\n </div>\n );\n};\n","import type {i18n} from 'i18next';\n\nfunction getFieldCaptionNamespace(field: string) {\n return `caption-${field}`;\n}\n\nexport function getFieldCaptions(field: string, i18n: i18n) {\n return (\n i18n.getResourceBundle(i18n.language, getFieldCaptionNamespace(field)) || {}\n );\n}\n\nexport function getFieldValueCaption(\n field: string,\n facetValue: string,\n i18n: i18n\n) {\n return i18n.t(facetValue, {\n ns: getFieldCaptionNamespace(field),\n });\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetContainer: FunctionalComponent = (_, children) => (\n <div class=\"bg-background border-neutral rounded-lg border p-4\" part=\"facet\">\n {children}\n </div>\n);\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport ArrowBottomIcon from '../../../../images/arrow-bottom-rounded.svg';\nimport ArrowTopIcon from '../../../../images/arrow-top-rounded.svg';\nimport CloseIcon from '../../../../images/close.svg';\nimport {Button} from '../../stencil-button';\nimport {Heading} from '../../stencil-heading';\n\ninterface FacetHeaderProps {\n i18n: i18n;\n label: string;\n numberOfActiveValues: number;\n isCollapsed: boolean;\n headingLevel: number;\n onToggleCollapse(): void;\n onClearFilters?(): void;\n headerRef?: (element?: HTMLButtonElement) => void;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetHeader: FunctionalComponent<FacetHeaderProps> = (props) => {\n const label = props.i18n.t(props.label);\n const expandFacet = props.i18n.t('expand-facet', {label});\n const collapseFacet = props.i18n.t('collapse-facet', {label});\n const clearFilters = props.i18n.t('clear-filters', {\n count: props.numberOfActiveValues,\n });\n const clearFiltersForFacet = props.i18n.t('clear-filters-for-facet', {\n count: props.numberOfActiveValues,\n label,\n });\n\n return [\n <Button\n style=\"text-transparent\"\n part=\"label-button\"\n class=\"flex w-full justify-between rounded-none px-2 py-1 text-lg font-bold\"\n ariaLabel={props.isCollapsed ? expandFacet : collapseFacet}\n onClick={() => props.onToggleCollapse()}\n ariaExpanded={(!props.isCollapsed).toString()}\n ref={props.headerRef}\n >\n <Heading level={props.headingLevel} class=\"truncate\">\n {label}\n </Heading>\n <atomic-icon\n part=\"label-button-icon\"\n class=\"ml-4 w-3 shrink-0 self-center\"\n icon={props.isCollapsed ? ArrowBottomIcon : ArrowTopIcon}\n ></atomic-icon>\n </Button>,\n props.onClearFilters && props.numberOfActiveValues > 0 && (\n <Button\n style=\"text-primary\"\n part=\"clear-button\"\n class=\"flex max-w-full items-baseline p-2 text-sm\"\n ariaLabel={clearFiltersForFacet}\n onClick={() => props.onClearFilters!()}\n >\n <atomic-icon\n part=\"clear-button-icon\"\n class=\"mr-1 h-2 w-2\"\n icon={CloseIcon}\n ></atomic-icon>\n <span>{clearFilters}</span>\n </Button>\n ),\n ];\n};\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","export function regexEncode(value: string): string {\n return value.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nexport function encodeForDomAttribute(str: string) {\n return str\n .split('')\n .map((ch) => (ch.match(/(\\d|\\w)+/g) ? ch : ch.charCodeAt(0)))\n .join('');\n}\n","import escapeHtml from 'escape-html';\nimport {regexEncode} from '../../../../utils/string-utils';\n\ninterface FacetSearchState {\n query: string;\n values: unknown[];\n isLoading: boolean;\n}\n\n/**\n * Meant to be used inside the `shouldUpdate` lifecycle method.\n * It prevents updating the facet between two matchless facet searches.\n * It also prevents updating the facet until the first search has loaded.\n */\nexport function shouldUpdateFacetSearchComponent(\n nextFacetSearchState: FacetSearchState,\n prevFacetSearchState: FacetSearchState\n) {\n const hasQuery = nextFacetSearchState.query !== '';\n const stillNoValues =\n !nextFacetSearchState.values.length && !prevFacetSearchState.values.length;\n const hasFinishedLoading =\n !nextFacetSearchState.isLoading && prevFacetSearchState.isLoading;\n\n if (hasQuery && stillNoValues) {\n return hasFinishedLoading;\n }\n\n return true;\n}\n\nexport function shouldDisplaySearchResults(facetSearchState: FacetSearchState) {\n const hasQuery = facetSearchState.query !== '';\n const isLoading = facetSearchState.isLoading;\n const hasValues = !!facetSearchState.values.length;\n\n if (!hasQuery) {\n return false;\n }\n\n if (hasValues) {\n return true;\n }\n\n return !isLoading;\n}\n\nexport function highlightSearchResult(resultValue: string, searchQuery = '') {\n const sanitizedResult = escapeHtml(resultValue);\n\n if (searchQuery.trim() === '') {\n return sanitizedResult;\n }\n\n const regex = new RegExp(`(${regexEncode(escapeHtml(searchQuery))})`, 'i');\n return escapeHtml(resultValue).replace(\n regex,\n '<span part=\"search-highlight\" class=\"font-bold\">$1</span>'\n );\n}\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {highlightSearchResult} from '../facet-search/facet-search-utils';\n\ninterface FacetValueLabelHighlightProps {\n displayValue: string;\n searchQuery?: string;\n isSelected: boolean;\n isExcluded?: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetValueLabelHighlight: FunctionalComponent<\n FacetValueLabelHighlightProps\n> = (props) => {\n return (\n // deepcode ignore ReactSetInnerHtml: This is not React code\n <span\n title={props.displayValue}\n part=\"value-label\"\n class={`value-label peer-hover:text-error truncate ${\n props.isSelected || !!props.isExcluded ? 'font-bold' : ''\n }`}\n innerHTML={highlightSearchResult(props.displayValue, props.searchQuery)}\n ></span>\n );\n};\n","import {FunctionalComponent, h, VNode} from '@stencil/core';\nimport {Button} from '../../stencil-button';\nimport {FacetValueProps} from '../stencil-facet-common';\n\ninterface FacetValueLinkProps extends FacetValueProps {\n subList?: VNode | VNode[];\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetValueLink: FunctionalComponent<FacetValueLinkProps> = (\n props,\n children\n) => {\n const count = props.numberOfResults.toLocaleString(props.i18n.language);\n const ariaLabel = props.i18n.t('facet-value', {\n value: props.displayValue,\n count: props.numberOfResults,\n formattedCount: count,\n interpolation: {escapeValue: false},\n });\n\n let part =\n props.part ?? `value-link${props.isSelected ? ' value-link-selected' : ''}`;\n\n if (props.additionalPart) {\n part += ` ${props.additionalPart}`;\n }\n\n return (\n <li key={props.displayValue} class={props.class}>\n <Button\n style=\"text-neutral\"\n part={part}\n onClick={() => props.onClick()}\n class=\"group flex w-full items-center truncate px-2 py-2.5 text-left focus-visible:outline-none\"\n ariaPressed={props.isSelected.toString()}\n ariaLabel={ariaLabel}\n ref={props.buttonRef}\n >\n {children}\n <span part=\"value-count\" class=\"value-count\">\n {props.i18n.t('between-parentheses', {\n text: count,\n })}\n </span>\n </Button>\n {props.subList}\n </li>\n );\n};\n","import {h, FunctionalComponent} from '@stencil/core';\n\ninterface GroupProps {\n label: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FieldsetGroup: FunctionalComponent<GroupProps> = (\n {label},\n children\n) => (\n <fieldset class=\"contents\">\n <legend class=\"sr-only\">{label}</legend>\n {children}\n </fieldset>\n);\n","import {h, FunctionalComponent} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {FieldsetGroup} from '../../stencil-fieldset-group';\n\ninterface FacetValuesGroupProps {\n i18n: i18n;\n label?: string;\n query?: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const FacetValuesGroup: FunctionalComponent<FacetValuesGroupProps> = (\n props,\n children\n) => {\n if (!props.label) {\n return children;\n }\n const facetDisplayLabel = props.i18n.t(props.label);\n const groupLabel =\n props.query === undefined\n ? props.i18n.t('facet-values', {label: facetDisplayLabel})\n : props.i18n.t('facet-search-results', {\n query: props.query,\n label: facetDisplayLabel,\n });\n\n return <FieldsetGroup label={groupLabel}>{children}</FieldsetGroup>;\n};\n","import {FacetValue, SearchStatusState} from '@coveo/headless';\nimport {i18n} from 'i18next';\nimport { AtomicAutomaticFacetGenerator } from '../../search/atomic-automatic-facet-generator/atomic-automatic-facet-generator';\n\nexport interface FacetValueProps {\n i18n: i18n;\n displayValue: string;\n numberOfResults: number;\n isSelected: boolean;\n onClick(): void;\n searchQuery?: string;\n class?: string;\n part?: string;\n additionalPart?: string;\n buttonRef?: (element?: HTMLButtonElement) => void;\n}\n\nexport function shouldDisplayInputForFacetRange(facetRange: {\n hasInput: boolean;\n hasInputRange: boolean;\n searchStatusState: SearchStatusState;\n facetValues: Pick<FacetValue, 'numberOfResults' | 'state'>[];\n}) {\n const {hasInput, hasInputRange, searchStatusState, facetValues} = facetRange;\n if (!hasInput) {\n return false;\n }\n\n if (hasInputRange) {\n return true;\n }\n\n if (!searchStatusState.hasResults) {\n return false;\n }\n\n const onlyValuesWithResultsOrActive =\n facetValues.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || [];\n\n if (!onlyValuesWithResultsOrActive.length) {\n return false;\n }\n\n return true;\n}\n\nexport type BaseFacetElement = HTMLElement & {\n facetId: string;\n isCollapsed: boolean;\n};\n\nexport function sortFacetVisibility(\n facetElements: BaseFacetElement[],\n facetInfoMap: Record<string, {isHidden: () => boolean}>\n) {\n const visibleFacets: BaseFacetElement[] = [];\n const invisibleFacets: BaseFacetElement[] = [];\n\n facetElements.forEach((facet) => {\n if (facetInfoMap[facet.facetId] && facetInfoMap[facet.facetId].isHidden()) {\n invisibleFacets.push(facet);\n } else {\n visibleFacets.push(facet);\n }\n });\n\n return {visibleFacets, invisibleFacets};\n}\n\nexport function collapseFacetsAfter(\n facets: BaseFacetElement[],\n visibleFacetsCount: number\n) {\n if (visibleFacetsCount === -1) {\n return;\n }\n\n facets.forEach((facet, index) => {\n facet.isCollapsed = index + 1 > visibleFacetsCount;\n });\n}\n\nexport function isAutomaticFacetGenerator(\n element: HTMLElement\n): element is AtomicAutomaticFacetGenerator {\n return element.tagName === 'ATOMIC-AUTOMATIC-FACET-GENERATOR';\n}\n\nfunction isPseudoFacet(el: Element): el is BaseFacetElement {\n return 'facetId' in el;\n}\n\nexport function getFacetsInChildren(parent: HTMLElement): BaseFacetElement[] {\n const facets = Array.from(parent.children).filter((child) =>\n isPseudoFacet(child)\n ) as BaseFacetElement[];\n\n return facets;\n}\nexport function getAutomaticFacetGenerator(\n parent: HTMLElement\n): AtomicAutomaticFacetGenerator | undefined {\n return (Array.from(parent.children) as HTMLElement[]).find(\n isAutomaticFacetGenerator\n );\n}\n\nfunction findFacetParent(\n facet: BaseFacetElement,\n parents: (HTMLElement | null)[]\n) {\n for (let i = 0; i < parents.length; i++) {\n if (parents[i]?.contains(facet)) {\n return parents[i];\n }\n }\n return null;\n}\n\n/**\n * Triage elements by their parents.\n * @param facets Facet Elements\n * @param parents Elements that may contains the facets\n * @returns an array in the same order as the parents, containing the facets that are contained by the corresponding parent.\n * The last element of the array contains the facets that are not contained by any of the parents.\n */\nexport function triageFacetsByParents(\n facets: BaseFacetElement[],\n ...parents: (HTMLElement | null)[]\n): Map<HTMLElement | null, BaseFacetElement[]> {\n const sortedFacets: Map<HTMLElement | null, BaseFacetElement[]> = new Map(\n parents.concat([null]).map((parent) => [parent, []])\n );\n for (const facet of facets) {\n const parent = findFacetParent(facet, parents);\n sortedFacets.get(parent)!.push(facet);\n }\n return sortedFacets;\n}\n","import {FocusTargetController} from '@/src/utils/stencil-accessibility-utils';\nimport {\n DateFacet,\n DateFacetValue,\n DateFilter,\n DateRangeOptions,\n DateRangeRequest,\n FacetConditionsManager,\n RangeFacetSortCriterion,\n RelativeDate,\n RelativeDatePeriod,\n RelativeDateUnit,\n SearchStatusState,\n} from '@coveo/headless';\nimport {h, VNode} from '@stencil/core';\nimport {parseDate} from '../../../utils/date-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {randomID} from '../../../utils/utils';\nimport {InsightBindings} from '../../insight/atomic-insight-interface/atomic-insight-interface';\nimport {Bindings as SearchBindings} from '../../search/atomic-search-interface/atomic-search-interface';\nimport {Hidden} from '../stencil-hidden';\nimport {FacetInfo} from './facet-common-store';\nimport {FacetContainer} from './facet-container/stencil-facet-container';\nimport {FacetHeader} from './facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from './facet-placeholder/stencil-facet-placeholder';\nimport {FacetValueLabelHighlight} from './facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from './facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from './facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from './popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from './stencil-facet-common';\n\nexport interface Timeframe {\n period: RelativeDatePeriod;\n unit?: RelativeDateUnit;\n amount?: number;\n label?: string;\n}\n\ninterface TimeframeFacetCommonOptions {\n facetId?: string;\n host: HTMLElement;\n bindings: SearchBindings | InsightBindings;\n label: string;\n field: string;\n headingLevel: number;\n dependsOn: Record<string, string>;\n withDatePicker: boolean;\n setFacetId(id: string): string;\n getSearchStatusState(): SearchStatusState;\n buildDependenciesManager(facetId: string): FacetConditionsManager;\n deserializeRelativeDate(date: string): RelativeDate;\n buildDateRange(config: DateRangeOptions): DateRangeRequest;\n initializeFacetForDatePicker(): DateFacet;\n initializeFacetForDateRange(values: DateRangeRequest[]): DateFacet;\n initializeFilter(): DateFilter;\n min?: string;\n max?: string;\n sortCriteria: RangeFacetSortCriterion;\n}\n\ninterface TimeframeFacetCommonRenderProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n isCollapsed: boolean;\n headerFocus: FocusTargetController;\n onToggleCollapse: () => boolean;\n}\n\nexport class TimeframeFacetCommon {\n private facetId?: string;\n private facetForDatePicker?: DateFacet;\n private facetForDateRange?: DateFacet;\n private filter?: DateFilter;\n private manualTimeframes: Timeframe[] = [];\n private facetForDateRangeDependenciesManager?: FacetConditionsManager;\n private facetForDatePickerDependenciesManager?: FacetConditionsManager;\n private filterDependenciesManager?: FacetConditionsManager;\n\n constructor(private props: TimeframeFacetCommonOptions) {\n this.facetId = this.determineFacetId;\n this.props.setFacetId(this.facetId);\n\n this.manualTimeframes = this.getManualTimeframes();\n\n // Initialize two facets: One that is actually used to display values for end users, which only exists\n // if we need to display something to the end user (ie: timeframes > 0)\n\n // A second facet is initialized only to verify the results count. It is never used to display results to end user.\n // It serves as a way to determine if the input should be rendered or not, independent of the ranges configured in the component\n if (this.manualTimeframes.length > 0) {\n this.facetForDateRange = this.props.initializeFacetForDateRange(\n this.currentValues\n );\n }\n\n if (this.props.withDatePicker) {\n this.facetForDatePicker = this.props.initializeFacetForDatePicker();\n this.facetForDatePickerDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDatePicker.state.facetId\n );\n this.filter = this.props.initializeFilter();\n }\n\n if (this.facetForDateRange) {\n this.facetForDateRangeDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDateRange?.state.facetId\n );\n }\n\n if (this.filter) {\n this.filterDependenciesManager = this.props.buildDependenciesManager(\n this.filter?.state.facetId\n );\n }\n\n this.registerFacetToStore();\n }\n\n private get determineFacetId() {\n if (this.props.facetId) {\n return this.props.facetId;\n }\n\n if (this.props.bindings.store.state.dateFacets[this.props.field]) {\n return randomID(`${this.props.field}_`);\n }\n\n return this.props.field;\n }\n\n private get enabled() {\n return (\n this.facetForDateRange?.state.enabled ??\n this.filter?.state.enabled ??\n true\n );\n }\n\n private get valuesToRender() {\n return (\n this.facetForDateRange?.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n return shouldDisplayInputForFacetRange({\n hasInput: this.props.withDatePicker,\n hasInputRange: this.hasInputRange,\n searchStatusState: this.props.getSearchStatusState(),\n facetValues: this.facetForDatePicker?.state?.values || [],\n });\n }\n\n private get hasValues() {\n if (this.facetForDatePicker?.state.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.filter?.state?.range) {\n return 1;\n }\n\n return (\n this.facetForDateRange?.state.values.filter(\n ({state}) => state === 'selected'\n ).length || 0\n );\n }\n\n private get hasInputRange() {\n return !!this.filter?.state.range;\n }\n\n public get currentValues(): DateRangeRequest[] {\n return this.manualTimeframes.map(({period, amount, unit}) =>\n period === 'past'\n ? this.props.buildDateRange({\n start: {period, unit, amount},\n end: {period: 'now'},\n })\n : this.props.buildDateRange({\n start: {period: 'now'},\n end: {period, unit, amount},\n })\n );\n }\n\n public disconnectedCallback() {\n if (this.props.host.isConnected) {\n return;\n }\n this.facetForDateRangeDependenciesManager?.stopWatching();\n this.facetForDatePickerDependenciesManager?.stopWatching();\n this.filterDependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet || !this.enabled;\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.props.bindings.i18n.t(this.props.label),\n facetId: this.facetId!,\n element: this.props.host,\n isHidden: () => this.isHidden,\n };\n\n this.props.bindings.store.registerFacet('dateFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n });\n\n initializePopover(this.props.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n\n if (this.filter) {\n this.props.bindings.store.state.dateFacets[this.filter.state.facetId] =\n this.props.bindings.store.state.dateFacets[this.facetId!];\n }\n }\n\n private getManualTimeframes(): Timeframe[] {\n return Array.from(this.props.host.querySelectorAll('atomic-timeframe')).map(\n ({label, amount, unit, period}) => ({\n label,\n amount,\n unit,\n period,\n })\n );\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = this.props.deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : this.props.deserializeRelativeDate(facetValue.end);\n const timeframe = this.getManualTimeframes().find(\n (timeframe) =>\n timeframe.period === relativeDate.period &&\n timeframe.unit === relativeDate.unit &&\n timeframe.amount === relativeDate.amount\n );\n\n if (timeframe?.label) {\n return getFieldValueCaption(\n this.props.field,\n timeframe.label,\n this.props.bindings.i18n\n );\n }\n return this.props.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.props.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.props.bindings.i18n}\n onClick={() => this.facetForDateRange!.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n >\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader(\n isCollapsed: boolean,\n headerFocus: FocusTargetController,\n onToggleCollapse: () => void\n ) {\n return (\n <FacetHeader\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n onClearFilters={() => {\n headerFocus.focusAfterSearch();\n if (this.filter?.state.range) {\n this.filter?.clear();\n return;\n }\n this.facetForDateRange?.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={isCollapsed}\n headingLevel={this.props.headingLevel}\n onToggleCollapse={onToggleCollapse}\n headerRef={(el) => headerFocus.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-stencil-facet-date-input\n min={this.props.min}\n max={this.props.max}\n bindings={this.props.bindings}\n label={this.props.label}\n facetId={this.filter!.state!.facetId}\n rangeGetter={() => this.filter!.state.range}\n rangeSetter={(request: DateRangeRequest) => {\n this.filter!.setRange(request);\n }}\n ></atomic-stencil-facet-date-input>\n );\n }\n\n public render({\n hasError,\n firstSearchExecuted,\n isCollapsed,\n headerFocus,\n onToggleCollapse,\n }: TimeframeFacetCommonRenderProps) {\n if (hasError || !this.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.currentValues.length}\n isCollapsed={isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.shouldRenderFacet) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader(isCollapsed, headerFocus, onToggleCollapse)}\n {!isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n );\n }\n}\n","@import '../../common/facets/facet-common.pcss';\n","import {\n buildDateFacet as buildInsightDateFacet,\n buildDateFilter as buildInsightDateFilter,\n buildDateRange as buildInsightDateRange,\n buildFacetConditionsManager as buildInsightFacetConditionsManager,\n buildSearchStatus as buildInsightSearchStatus,\n deserializeRelativeDate as deserializeInsightRelativeDate,\n DateFacet as InsightDateFacet,\n DateFacetState as InsightDateFacetState,\n DateFilter as InsightDateFilter,\n DateFilterState as InsightDateFilterState,\n DateRangeRequest as InsightDateRangeRequest,\n SearchStatus as InsightSearchStatus,\n SearchStatusState as InsightSearchStatusState,\n loadDateFacetSetActions as loadInsightDateFacetSetActions,\n RangeFacetSortCriterion as InsightRangeFacetSortCriterion,\n FacetValueRequest as InsightFacetValueRequest,\n CategoryFacetValueRequest as InsightCategoryFacetValueRequest,\n} from '@coveo/headless/insight';\nimport {Component, Element, h, Listen, Prop, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {MapProp} from '../../../utils/props-utils';\nimport {FocusTargetController} from '../../../utils/stencil-accessibility-utils';\nimport {parseDependsOn} from '../../common/facets/depends-on';\nimport {FacetPlaceholder} from '../../common/facets/facet-placeholder/stencil-facet-placeholder';\nimport {TimeframeFacetCommon} from '../../common/facets/stencil-timeframe-facet-common';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-timeframe-facet',\n styleUrl: './atomic-insight-timeframe-facet.pcss',\n shadow: true,\n})\nexport class AtomicInsightTimeframeFacet\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public facetForDateRange?: InsightDateFacet;\n public facetForDatePicker?: InsightDateFacet;\n\n private timeframeFacetCommon?: TimeframeFacetCommon;\n public filter?: InsightDateFilter;\n public searchStatus!: InsightSearchStatus;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facetForDateRange')\n @State()\n public facetState!: InsightDateFacetState;\n @BindStateToController('facetForDatePicker')\n @State()\n public facetForDatePickerState?: InsightDateFacetState;\n @BindStateToController('filter')\n @State()\n public filterState?: InsightDateFilterState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: InsightSearchStatusState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n * Used in the atomic-breadbox component through the bindings store.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field = 'date';\n /**\n * Whether this facet should contain a date picker allowing users to set custom ranges.\n */\n @Prop({reflect: true}) public withDatePicker = false;\n /**\n * Specifies if the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n * Default: `1000`\n */\n @Prop({reflect: true}) public injectionDepth = 1000;\n\n /**\n * The required facets and values for this facet to be displayed.\n * Examples:\n * ```html\n * <atomic-insight-facet facet-id=\"abc\" field=\"objecttype\" ...></atomic-insight-facet>\n *\n * <!-- To show the facet when any value is selected in the facet with id \"abc\": -->\n * <atomic-insight-timeframe-facet\n * depends-on-abc\n * ...\n * ></atomic-insight-timeframe-facet>\n *\n * <!-- To show the facet when value \"doc\" is selected in the facet with id \"abc\": -->\n * <atomic-insight-timeframe-facet\n * depends-on-abc=\"doc\"\n * ...\n * ></atomic-insight-timeframe-facet>\n * ```\n */\n @MapProp() @Prop() public dependsOn: Record<string, string> = {};\n\n /**\n * The sort criterion to apply to the returned facet values.\n * Possible values are 'ascending' and 'descending'.\n */\n @Prop({reflect: true}) public sortCriteria: InsightRangeFacetSortCriterion =\n 'descending';\n\n private headerFocus?: FocusTargetController;\n\n public initialize() {\n this.timeframeFacetCommon = new TimeframeFacetCommon({\n facetId: this.facetId,\n host: this.host,\n bindings: this.bindings,\n label: this.label,\n field: this.field,\n headingLevel: this.headingLevel,\n dependsOn: this.dependsOn,\n withDatePicker: this.withDatePicker,\n setFacetId: (id: string) => (this.facetId = id),\n buildDependenciesManager: (facetId: string) =>\n buildInsightFacetConditionsManager(this.bindings.engine, {\n facetId,\n conditions: parseDependsOn<\n InsightFacetValueRequest | InsightCategoryFacetValueRequest\n >(this.dependsOn),\n }),\n buildDateRange: buildInsightDateRange,\n getSearchStatusState: () => this.searchStatusState,\n deserializeRelativeDate: deserializeInsightRelativeDate,\n initializeFacetForDatePicker: () => this.initializeFacetForDatePicker(),\n initializeFacetForDateRange: (values: InsightDateRangeRequest[]) =>\n this.initializeFacetForDateRange(values),\n initializeFilter: () => this.initializeFilter(),\n sortCriteria: this.sortCriteria,\n });\n this.searchStatus = buildInsightSearchStatus(this.bindings.engine);\n }\n\n private get focusTarget(): FocusTargetController {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n\n public disconnectedCallback() {\n this.timeframeFacetCommon?.disconnectedCallback();\n }\n\n private initializeFacetForDatePicker() {\n this.facetForDatePicker = buildInsightDateFacet(this.bindings.engine, {\n options: {\n facetId: `${this.facetId}_input_range`,\n numberOfValues: 1,\n generateAutomaticRanges: true,\n field: this.field,\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n },\n });\n return this.facetForDatePicker;\n }\n\n private initializeFacetForDateRange(values: InsightDateRangeRequest[]) {\n this.facetForDateRange = buildInsightDateFacet(this.bindings.engine, {\n options: {\n facetId: this.facetId,\n field: this.field,\n currentValues: values,\n generateAutomaticRanges: false,\n sortCriteria: 'descending',\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n },\n });\n\n return this.facetForDateRange;\n }\n\n private initializeFilter() {\n this.filter = buildInsightDateFilter(this.bindings.engine, {\n options: {\n facetId: `${this.facetId}_input`,\n field: this.field,\n },\n });\n\n return this.filter;\n }\n\n @Listen('atomic/dateInputApply')\n public applyDateInput() {\n this.facetId &&\n this.bindings.engine.dispatch(\n loadInsightDateFacetSetActions(\n this.bindings.engine\n ).deselectAllDateFacetValues(this.facetId)\n );\n }\n\n public render() {\n if (!this.timeframeFacetCommon) {\n return (\n <FacetPlaceholder\n numberOfValues={5}\n isCollapsed={this.isCollapsed}\n ></FacetPlaceholder>\n );\n }\n return this.timeframeFacetCommon.render({\n hasError: this.searchStatusState.hasError,\n firstSearchExecuted: this.searchStatusState.firstSearchExecuted,\n isCollapsed: this.isCollapsed,\n headerFocus: this.focusTarget,\n onToggleCollapse: () => (this.isCollapsed = !this.isCollapsed),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as n,c as r,h as t}from"./p-ec1c5f46.js";import{loadInsightAnalyticsActions as e}from"@coveo/headless/insight";import{A as i}from"./p-a33748a9.js";import{I as a}from"./p-4a32511f.js";import{I as o}from"./p-578d761c.js";import{R as l}from"./p-b4cfedf1.js";import"./p-81d6e743.js";import"./p-1580513b.js";import"./p-677f9c40.js";const s=`<svg width="26" height="26" viewBox="0 0 26 26" xmlns="http://www.w3.org/2000/svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M22 1H9C7.9 1 7 1.9 7 3V4H19C20.1 4 21 4.9 21 6V20H22C23.1 20 24 19.1 24 18V3C24 1.9 23.1 1 22 1ZM19 8C19 6.9 18.1 6 17 6H4C2.9 6 2 6.9 2 8V23C2 24.1 2.9 25 4 25H17C18.1 25 19 24.1 19 23V8ZM10 11.5C10 11.8 9.8 12 9.5 12H5.5C5.2 12 5 11.8 5 11.5V10.5C5 10.2 5.2 10 5.5 10H9.5C9.8 10 10 10.2 10 10.5V11.5ZM14 19.5C14 19.8 13.8 20 13.5 20H5.5C5.2 20 5 19.8 5 19.5V18.5C5 18.2 5.2 18 5.5 18H13.5C13.8 18 14 18.2 14 18.5V19.5ZM16 15.5C16 15.8 15.8 16 15.5 16H5.5C5.2 16 5 15.8 5 15.5V14.5C5 14.2 5.2 14 5.5 14H15.5C15.8 14 16 14.2 16 14.5V15.5Z"/>\n</svg>\n`;const c=`<svg width="26" height="26" viewBox="0 0 26 26" xmlns="http://www.w3.org/2000/svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M12.4735 15.55C12.7735 15.85 13.2235 15.85 13.5235 15.55L24.8235 5.05C25.0235 4.65 24.9735 4 24.1735 4L1.82347 4.05C1.22347 4.05 0.723467 4.6 1.17347 5.1L12.4735 15.55ZM25.0235 9.15C25.0235 8.65 24.4235 8.35 24.0235 8.7L15.1735 16.85C14.5735 17.4 13.8235 17.7 13.0235 17.7C12.2235 17.7 11.4735 17.4 10.8735 16.9L2.07347 8.7C1.67347 8.35 1.07347 8.6 1.07347 9.15C1.02347 9 1.02347 20.5 1.02347 20.5C1.02347 21.6 1.92347 22.5 3.02347 22.5H23.0235C24.1235 22.5 25.0235 21.6 25.0235 20.5V9.15Z"/>\n</svg>\n`;const d=`<svg width="27" height="26" viewBox="0 0 27 26" xmlns="http://www.w3.org/2000/svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M25.9125 13.05C23.5625 8.3 18.6625 5 13.0125 5C7.3625 5 2.4625 8.3 0.1125 13.05C-0.0375 13.35 -0.0375 13.7 0.1125 13.95C2.4625 18.7 7.3625 22 13.0125 22C18.6625 22 23.5625 18.7 25.9125 13.95C26.0625 13.65 26.0625 13.35 25.9125 13.05ZM13.0125 19C9.9625 19 7.5125 16.55 7.5125 13.5C7.5125 10.45 9.9625 8 13.0125 8C16.0625 8 18.5125 10.45 18.5125 13.5C18.5125 16.55 16.0625 19 13.0125 19ZM13.0125 10C11.0625 10 9.5125 11.55 9.5125 13.5C9.5125 15.45 11.0625 17 13.0125 17C14.9625 17 16.5125 15.45 16.5125 13.5C16.5125 11.55 14.9625 10 13.0125 10Z"/>\n</svg>\n`;const w=`<svg width="26" height="26" viewBox="0 0 26 26" xmlns="http://www.w3.org/2000/svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M13 2C6.35 2 1 6.9 1 13C1 14.95 1.55 16.75 2.5 18.4C2.6 18.6 2.65 18.85 2.6 19.05L1.5 22.5C1.3 23.15 1.9 23.7 2.55 23.5L6.05 22.3C6.3 22.2 6.55 22.25 6.75 22.4C8.6 23.45 10.75 24.05 13.05 24.05C19.7 24.05 25.05 19.15 25.05 13.05C24.9 6.9 19.55 2 13 2V2Z"/>\n</svg>\n`;const m='/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer properties {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: "";\n }\n}\n@layer theme, base, components, utilities;\n@layer theme;\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, var(--atomic-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden="until-found"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container {\n container-type: inline-size;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .collapse {\n visibility: collapse;\n }\n .invisible {\n visibility: hidden;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(0.25rem * 0);\n }\n .-top-2 {\n top: calc(0.25rem * -2);\n }\n .-top-4 {\n top: calc(0.25rem * -4);\n }\n .top-0 {\n top: calc(0.25rem * 0);\n }\n .top-1 {\n top: calc(0.25rem * 1);\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-1 {\n right: calc(0.25rem * 1);\n }\n .right-2 {\n right: calc(0.25rem * 2);\n }\n .right-6 {\n right: calc(0.25rem * 6);\n }\n .right-12 {\n right: calc(0.25rem * 12);\n }\n .right-20 {\n right: calc(0.25rem * 20);\n }\n .right-px {\n right: 1px;\n }\n .bottom-0 {\n bottom: calc(0.25rem * 0);\n }\n .bottom-1 {\n bottom: calc(0.25rem * 1);\n }\n .bottom-2 {\n bottom: calc(0.25rem * 2);\n }\n .bottom-px {\n bottom: 1px;\n }\n .left-0 {\n left: calc(0.25rem * 0);\n }\n .left-1 {\n left: calc(0.25rem * 1);\n }\n .left-2 {\n left: calc(0.25rem * 2);\n }\n .left-\\[15px\\] {\n left: 15px;\n }\n .isolate {\n isolation: isolate;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-10 {\n z-index: 10;\n }\n .z-9998 {\n z-index: 9998;\n }\n .z-9999 {\n z-index: 9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .container {\n width: 100%;\n }\n @media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n }\n @media (width >= 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n @media (width >= 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n @media (width >= 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n @media (width >= 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n @media (width >= 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n .container\\! {\n width: 100% !important;\n }\n @media (width >= 1024px) {\n .container\\! {\n max-width: 1024px !important;\n }\n }\n @media (width >= 40rem) {\n .container\\! {\n max-width: 40rem !important;\n }\n }\n @media (width >= 48rem) {\n .container\\! {\n max-width: 48rem !important;\n }\n }\n @media (width >= 64rem) {\n .container\\! {\n max-width: 64rem !important;\n }\n }\n @media (width >= 80rem) {\n .container\\! {\n max-width: 80rem !important;\n }\n }\n @media (width >= 96rem) {\n .container\\! {\n max-width: 96rem !important;\n }\n }\n .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 .mr-auto {\n margin-right: auto;\n }\n .mb-0 {\n margin-bottom: calc(0.25rem * 0);\n }\n .mb-1 {\n margin-bottom: calc(0.25rem * 1);\n }\n .mb-2 {\n margin-bottom: calc(0.25rem * 2);\n }\n .mb-3 {\n margin-bottom: calc(0.25rem * 3);\n }\n .mb-4 {\n margin-bottom: calc(0.25rem * 4);\n }\n .mb-6 {\n margin-bottom: calc(0.25rem * 6);\n }\n .ml-0\\.5 {\n margin-left: calc(0.25rem * 0.5);\n }\n .ml-1 {\n margin-left: calc(0.25rem * 1);\n }\n .ml-2 {\n margin-left: calc(0.25rem * 2);\n }\n .ml-4 {\n margin-left: calc(0.25rem * 4);\n }\n .ml-6 {\n margin-left: calc(0.25rem * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .box-border {\n box-sizing: border-box;\n }\n .box-content {\n box-sizing: content-box;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .line-clamp-4 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n }\n .line-clamp-none {\n overflow: visible;\n display: block;\n -webkit-box-orient: horizontal;\n -webkit-line-clamp: unset;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-column {\n display: table-column;\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square-\\[auto\\] {\n aspect-ratio: 1 / 1;\n height: auto;\n }\n @supports not (aspect-ratio: 1 / 1) {\n .aspect-square-\\[auto\\] {\n height: auto;\n }\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-\\[27px\\] {\n width: 27px;\n height: 27px;\n }\n .h-1 {\n height: calc(0.25rem * 1);\n }\n .h-2 {\n height: calc(0.25rem * 2);\n }\n .h-2\\.5 {\n height: calc(0.25rem * 2.5);\n }\n .h-3 {\n height: calc(0.25rem * 3);\n }\n .h-4 {\n height: calc(0.25rem * 4);\n }\n .h-5 {\n height: calc(0.25rem * 5);\n }\n .h-5\\/6 {\n height: calc(5/6 * 100%);\n }\n .h-6 {\n height: calc(0.25rem * 6);\n }\n .h-7 {\n height: calc(0.25rem * 7);\n }\n .h-8 {\n height: calc(0.25rem * 8);\n }\n .h-9 {\n height: calc(0.25rem * 9);\n }\n .h-10 {\n height: calc(0.25rem * 10);\n }\n .h-12 {\n height: calc(0.25rem * 12);\n }\n .h-\\[2\\.6rem\\] {\n height: 2.6rem;\n }\n .h-\\[9px\\] {\n height: 9px;\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .max-h-96 {\n max-height: calc(0.25rem * 96);\n }\n .min-h-3 {\n min-height: calc(0.25rem * 3);\n }\n .min-h-10 {\n min-height: calc(0.25rem * 10);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-2 {\n min-height: calc(var(--line-height) * 2);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .min-lines-3 {\n min-height: calc(var(--line-height) * 3);\n }\n .w-0\\.5 {\n width: calc(0.25rem * 0.5);\n }\n .w-1 {\n width: calc(0.25rem * 1);\n }\n .w-1\\/2 {\n width: calc(1/2 * 100%);\n }\n .w-2 {\n width: calc(0.25rem * 2);\n }\n .w-2\\.5 {\n width: calc(0.25rem * 2.5);\n }\n .w-3 {\n width: calc(0.25rem * 3);\n }\n .w-3\\.5 {\n width: calc(0.25rem * 3.5);\n }\n .w-3\\/5 {\n width: calc(3/5 * 100%);\n }\n .w-4 {\n width: calc(0.25rem * 4);\n }\n .w-5 {\n width: calc(0.25rem * 5);\n }\n .w-5\\/6 {\n width: calc(5/6 * 100%);\n }\n .w-6 {\n width: calc(0.25rem * 6);\n }\n .w-7 {\n width: calc(0.25rem * 7);\n }\n .w-8 {\n width: calc(0.25rem * 8);\n }\n .w-9 {\n width: calc(0.25rem * 9);\n }\n .w-10 {\n width: calc(0.25rem * 10);\n }\n .w-12 {\n width: calc(0.25rem * 12);\n }\n .w-20 {\n width: calc(0.25rem * 20);\n }\n .w-26 {\n width: calc(0.25rem * 26);\n }\n .w-28 {\n width: calc(0.25rem * 28);\n }\n .w-32 {\n width: calc(0.25rem * 32);\n }\n .w-36 {\n width: calc(0.25rem * 36);\n }\n .w-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-\\[10px\\] {\n width: 10px;\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 .w-px {\n width: 1px;\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 .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .flex-grow {\n flex-grow: 1;\n }\n .grow {\n flex-grow: 1;\n }\n .basis-1\\/2 {\n flex-basis: calc(1/2 * 100%);\n }\n .basis-8 {\n flex-basis: calc(0.25rem * 8);\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1\\/2 {\n --tw-translate-x: calc(1/2 * 100%);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-75 {\n --tw-scale-x: 75%;\n --tw-scale-y: 75%;\n --tw-scale-z: 75%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n .cursor-\\[inherit\\] {\n cursor: inherit;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .list-outside {\n list-style-position: outside;\n }\n .list-decimal {\n list-style-type: decimal;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-\\[min-content_1fr\\] {\n grid-template-columns: min-content 1fr;\n }\n .grid-cols-\\[min-content_auto\\] {\n grid-template-columns: min-content auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .place-items-center {\n place-items: center;\n }\n .content-center {\n align-content: center;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-0\\.5 {\n gap: calc(0.25rem * 0.5);\n }\n .gap-1 {\n gap: calc(0.25rem * 1);\n }\n .gap-2 {\n gap: calc(0.25rem * 2);\n }\n .gap-3 {\n gap: calc(0.25rem * 3);\n }\n .gap-4 {\n gap: calc(0.25rem * 4);\n }\n .gap-8 {\n gap: calc(0.25rem * 8);\n }\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(0.25rem * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(0.25rem * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n .gap-x-1\\.5 {\n column-gap: calc(0.25rem * 1.5);\n }\n .gap-x-2 {\n column-gap: calc(0.25rem * 2);\n }\n .gap-x-4 {\n column-gap: calc(0.25rem * 4);\n }\n :where(.space-x-1\\.5 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(0.25rem * 1.5) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(0.25rem * 1.5) * calc(1 - var(--tw-space-x-reverse)));\n }\n .gap-y-0\\.5 {\n row-gap: calc(0.25rem * 0.5);\n }\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n :where(.divide-neutral > :not(:last-child)) {\n border-color: var(--atomic-neutral);\n }\n .self-center {\n align-self: center;\n }\n .self-start {\n align-self: flex-start;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .scroll-smooth {\n scroll-behavior: smooth;\n }\n .rounded {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-3xl {\n border-radius: 1.5rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--atomic-border-radius-lg);\n }\n .rounded-md {\n border-radius: var(--atomic-border-radius-md);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: var(--atomic-border-radius);\n }\n .rounded-xl {\n border-radius: var(--atomic-border-radius-xl);\n }\n .rounded-tl-none {\n border-top-left-radius: 0;\n }\n .rounded-r-none {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-1 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-gray-200 {\n border-color: oklch(0.928 0.006 264.531);\n }\n .border-neutral {\n border-color: var(--atomic-neutral);\n }\n .border-neutral-dark {\n border-color: var(--atomic-neutral-dark);\n }\n .border-neutral-dim {\n border-color: var(--atomic-neutral-dim);\n }\n .border-primary {\n border-color: var(--atomic-primary);\n }\n .border-primary-light {\n border-color: var(--atomic-primary-light);\n }\n .border-t-neutral {\n border-top-color: var(--atomic-neutral);\n }\n .border-b-neutral {\n border-bottom-color: var(--atomic-neutral);\n }\n .border-b-neutral-dim {\n border-bottom-color: var(--atomic-neutral-dim);\n }\n .border-l-neutral {\n border-left-color: var(--atomic-neutral);\n }\n .border-l-neutral-dim {\n border-left-color: var(--atomic-neutral-dim);\n }\n .bg-\\[\\#F1F2FF\\] {\n background-color: #F1F2FF;\n }\n .bg-\\[rgba\\(40\\,40\\,40\\,0\\.8\\)\\] {\n background-color: rgba(40,40,40,0.8);\n }\n .bg-background {\n background-color: var(--atomic-background);\n }\n .bg-error {\n background-color: var(--atomic-error);\n }\n .bg-gray-50 {\n background-color: oklch(0.985 0.002 247.839);\n }\n .bg-neutral {\n background-color: var(--atomic-neutral);\n }\n .bg-neutral-dark {\n background-color: var(--atomic-neutral-dark);\n }\n .bg-neutral-dim {\n background-color: var(--atomic-neutral-dim);\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 .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\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 .from-transparent {\n --tw-gradient-from: transparent;\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 .via-neutral {\n --tw-gradient-via: var(--atomic-neutral);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\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 .to-transparent {\n --tw-gradient-to: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .fill-current {\n fill: currentcolor;\n }\n .stroke-\\[1\\.25\\] {\n stroke-width: 1.25;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-0 {\n padding: calc(0.25rem * 0);\n }\n .p-1 {\n padding: calc(0.25rem * 1);\n }\n .p-2 {\n padding: calc(0.25rem * 2);\n }\n .p-2\\.5 {\n padding: calc(0.25rem * 2.5);\n }\n .p-3 {\n padding: calc(0.25rem * 3);\n }\n .p-3\\.5 {\n padding: calc(0.25rem * 3.5);\n }\n .p-4 {\n padding: calc(0.25rem * 4);\n }\n .p-6 {\n padding: calc(0.25rem * 6);\n }\n .p-7 {\n padding: calc(0.25rem * 7);\n }\n .p-8 {\n padding: calc(0.25rem * 8);\n }\n .px-1 {\n padding-inline: calc(0.25rem * 1);\n }\n .px-2 {\n padding-inline: calc(0.25rem * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(0.25rem * 2.5);\n }\n .px-3 {\n padding-inline: calc(0.25rem * 3);\n }\n .px-4 {\n padding-inline: calc(0.25rem * 4);\n }\n .px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n .px-7 {\n padding-inline: calc(0.25rem * 7);\n }\n .px-9 {\n padding-inline: calc(0.25rem * 9);\n }\n .py-0\\.5 {\n padding-block: calc(0.25rem * 0.5);\n }\n .py-1 {\n padding-block: calc(0.25rem * 1);\n }\n .py-1\\.5 {\n padding-block: calc(0.25rem * 1.5);\n }\n .py-2 {\n padding-block: calc(0.25rem * 2);\n }\n .py-2\\.5 {\n padding-block: calc(0.25rem * 2.5);\n }\n .py-3 {\n padding-block: calc(0.25rem * 3);\n }\n .py-3\\.5 {\n padding-block: calc(0.25rem * 3.5);\n }\n .py-4 {\n padding-block: calc(0.25rem * 4);\n }\n .py-4\\.5 {\n padding-block: calc(0.25rem * 4.5);\n }\n .py-5 {\n padding-block: calc(0.25rem * 5);\n }\n .py-6 {\n padding-block: calc(0.25rem * 6);\n }\n .pt-0\\.5 {\n padding-top: calc(0.25rem * 0.5);\n }\n .pt-6 {\n padding-top: calc(0.25rem * 6);\n }\n .pt-8 {\n padding-top: calc(0.25rem * 8);\n }\n .pr-2 {\n padding-right: calc(0.25rem * 2);\n }\n .pr-4 {\n padding-right: calc(0.25rem * 4);\n }\n .pr-6 {\n padding-right: calc(0.25rem * 6);\n }\n .pr-8 {\n padding-right: calc(0.25rem * 8);\n }\n .pr-24 {\n padding-right: calc(0.25rem * 24);\n }\n .pb-1 {\n padding-bottom: calc(0.25rem * 1);\n }\n .pb-3 {\n padding-bottom: calc(0.25rem * 3);\n }\n .pb-4 {\n padding-bottom: calc(0.25rem * 4);\n }\n .pb-5 {\n padding-bottom: calc(0.25rem * 5);\n }\n .pb-6 {\n padding-bottom: calc(0.25rem * 6);\n }\n .pl-0 {\n padding-left: calc(0.25rem * 0);\n }\n .pl-1 {\n padding-left: calc(0.25rem * 1);\n }\n .pl-2 {\n padding-left: calc(0.25rem * 2);\n }\n .pl-3 {\n padding-left: calc(0.25rem * 3);\n }\n .pl-7 {\n padding-left: calc(0.25rem * 7);\n }\n .pl-9 {\n padding-left: calc(0.25rem * 9);\n }\n .pl-10 {\n padding-left: calc(0.25rem * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .align-baseline {\n vertical-align: baseline;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-sans {\n font-family: var(--atomic-font-family);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .set-font-size-sm {\n --font-size: var(--atomic-text-sm);\n font-size: var(--font-size);\n --line-height: calc(var(--font-size) * var(--atomic-line-height-ratio));\n line-height: var(--line-height);\n }\n .text-2xl {\n font-size: var(--atomic-text-2xl);\n line-height: var(--tw-leading, calc(2 / 1.5));\n }\n .text-base {\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n }\n .text-lg {\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n .text-sm {\n font-size: var(--atomic-text-sm);\n line-height: var(--tw-leading, calc(1.25 / 0.875));\n }\n .text-xl {\n font-size: var(--atomic-text-xl);\n line-height: var(--tw-leading, calc(1.75 / 1.25));\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: var(--tw-leading, calc(1 / 0.75));\n }\n .text-xs\\/\\[1rem\\] {\n font-size: 0.75rem;\n line-height: 1rem;\n }\n .leading-4 {\n --tw-leading: calc(0.25rem * 4);\n line-height: calc(0.25rem * 4);\n }\n .leading-5 {\n --tw-leading: calc(0.25rem * 5);\n line-height: calc(0.25rem * 5);\n }\n .leading-6 {\n --tw-leading: calc(0.25rem * 6);\n line-height: calc(0.25rem * 6);\n }\n .leading-8 {\n --tw-leading: calc(0.25rem * 8);\n line-height: calc(0.25rem * 8);\n }\n .leading-10 {\n --tw-leading: calc(0.25rem * 10);\n line-height: calc(0.25rem * 10);\n }\n .leading-\\[1\\.5\\] {\n --tw-leading: 1.5;\n line-height: 1.5;\n }\n .leading-\\[calc\\(1\\/\\.75\\)\\] {\n --tw-leading: calc(1 / .75);\n line-height: calc(1 / .75);\n }\n .leading-\\[var\\(--line-height\\)\\] {\n --tw-leading: var(--line-height);\n line-height: var(--line-height);\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .font-bold {\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n .font-light {\n --tw-font-weight: 300;\n font-weight: 300;\n }\n .font-medium {\n --tw-font-weight: 500;\n font-weight: 500;\n }\n .font-normal {\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n .font-semibold {\n --tw-font-weight: 600;\n font-weight: 600;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .break-keep {\n word-break: keep-all;\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-normal {\n white-space: normal;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#54698D\\] {\n color: #54698D;\n }\n .text-\\[inherit\\] {\n color: inherit;\n }\n .text-black {\n color: #000;\n }\n .text-error {\n color: var(--atomic-error);\n }\n .text-gray-500 {\n color: oklch(0.551 0.027 264.364);\n }\n .text-gray-600 {\n color: oklch(0.446 0.03 256.802);\n }\n .text-gray-700 {\n color: oklch(0.373 0.034 259.733);\n }\n .text-gray-900 {\n color: oklch(0.21 0.034 264.665);\n }\n .text-green-600 {\n color: oklch(0.627 0.194 149.214);\n }\n .text-inline-code {\n color: var(--atomic-inline-code);\n }\n .text-neutral {\n color: var(--atomic-neutral);\n }\n .text-neutral-dark {\n color: var(--atomic-neutral-dark);\n }\n .text-on-background {\n color: var(--atomic-on-background);\n }\n .text-on-primary {\n color: var(--atomic-on-primary);\n }\n .text-primary {\n color: var(--atomic-primary);\n }\n .text-primary-light {\n color: var(--atomic-primary-light);\n }\n .text-rating-icon-active {\n color: var(--atomic-rating-icon-active-color, #f6ce3c);\n }\n .text-rating-icon-inactive {\n color: var(\n --atomic-rating-icon-inactive-color,\n var(--atomic-neutral)\n );\n }\n .text-red-600 {\n color: oklch(0.577 0.245 27.325);\n }\n .text-success {\n color: var(--atomic-success);\n }\n .text-transparent {\n color: transparent;\n }\n .capitalize {\n text-transform: capitalize;\n }\n .lowercase {\n text-transform: lowercase;\n }\n .italic {\n font-style: italic;\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .placeholder-neutral-dark::placeholder {\n color: var(--atomic-neutral-dark);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner-primary {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--atomic-primary));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0px 2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-t-lg {\n --tw-shadow: 0px -2px 8px var(--tw-shadow-color, rgba(229, 232, 232, 0.75));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-3 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-primary {\n --tw-ring-color: var(--atomic-primary);\n }\n .ring-ring-primary {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-error {\n outline-color: var(--atomic-error);\n }\n .outline-neutral {\n outline-color: var(--atomic-neutral);\n }\n .outline-primary {\n outline-color: var(--atomic-primary);\n }\n .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .invert {\n --tw-invert: invert(100%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .filter {\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-\\[visibility\\] {\n transition-property: visibility;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));\n transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .ease-in-out {\n --tw-ease: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .\\[grid-area\\:modal\\] {\n grid-area: modal;\n }\n .\\[scrollbar-gutter\\:stable_both-edges\\] {\n scrollbar-gutter: stable both-edges;\n }\n @media (hover: hover) {\n .group-hover\\:visible:is(:where(.group):hover *) {\n visibility: visible;\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-error:is(:where(.group):hover *) {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-primary:is(:where(.group):hover *) {\n color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .group-hover\\:text-primary-light:is(:where(.group):hover *) {\n color: var(--atomic-primary-light);\n }\n }\n .group-focus\\:text-primary:is(:where(.group):focus *) {\n color: var(--atomic-primary);\n }\n .group-focus\\:text-primary-light:is(:where(.group):focus *) {\n color: var(--atomic-primary-light);\n }\n .group-focus-visible\\:text-error:is(:where(.group):focus-visible *) {\n color: var(--atomic-error);\n }\n .group-focus-visible\\:text-primary:is(:where(.group):focus-visible *) {\n color: var(--atomic-primary);\n }\n .peer-focus-within\\:border-primary-light:is(:where(.peer):focus-within ~ *) {\n border-color: var(--atomic-primary-light);\n }\n .peer-focus-within\\:text-primary-light:is(:where(.peer):focus-within ~ *) {\n color: var(--atomic-primary-light);\n }\n @media (hover: hover) {\n .peer-hover\\:border-primary-light:is(:where(.peer):hover ~ *) {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .peer-hover\\:text-error:is(:where(.peer):hover ~ *) {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .peer-hover\\:text-primary-light:is(:where(.peer):hover ~ *) {\n color: var(--atomic-primary-light);\n }\n }\n .before\\:absolute::before {\n content: var(--tw-content);\n position: absolute;\n }\n .before\\:top-\\[-8px\\]::before {\n content: var(--tw-content);\n top: -8px;\n }\n .before\\:left-0::before {\n content: var(--tw-content);\n left: calc(0.25rem * 0);\n }\n .before\\:inline::before {\n content: var(--tw-content);\n display: inline;\n }\n .before\\:h-\\[8px\\]::before {\n content: var(--tw-content);\n height: 8px;\n }\n .before\\:w-px::before {\n content: var(--tw-content);\n width: 1px;\n }\n .before\\:bg-neutral::before {\n content: var(--tw-content);\n background-color: var(--atomic-neutral);\n }\n .before\\:content-\\[\\\'\\\'\\]::before {\n --tw-content: \'\';\n content: var(--tw-content);\n }\n .before\\:content-\\[\\\'\\,\\\\00a0\\\'\\]::before {\n --tw-content: \',\\00a0\';\n content: var(--tw-content);\n }\n .after\\:absolute::after {\n content: var(--tw-content);\n position: absolute;\n }\n .after\\:-bottom-0\\.5::after {\n content: var(--tw-content);\n bottom: calc(0.25rem * -0.5);\n }\n .after\\:bottom-\\[-8px\\]::after {\n content: var(--tw-content);\n bottom: -8px;\n }\n .after\\:left-0::after {\n content: var(--tw-content);\n left: calc(0.25rem * 0);\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\\:h-\\[8px\\]::after {\n content: var(--tw-content);\n height: 8px;\n }\n .after\\:w-full::after {\n content: var(--tw-content);\n width: 100%;\n }\n .after\\:w-px::after {\n content: var(--tw-content);\n width: 1px;\n }\n .after\\:rounded::after {\n content: var(--tw-content);\n border-radius: var(--atomic-border-radius);\n }\n .after\\:bg-neutral::after {\n content: var(--tw-content);\n background-color: var(--atomic-neutral);\n }\n .after\\:bg-primary::after {\n content: var(--tw-content);\n background-color: var(--atomic-primary);\n }\n .after\\:content-\\[\\\'\\\'\\]::after {\n --tw-content: \'\';\n content: var(--tw-content);\n }\n .focus-within\\:border-disabled:focus-within {\n border-color: var(--atomic-disabled);\n }\n .focus-within\\:border-primary:focus-within {\n border-color: var(--atomic-primary);\n }\n .focus-within\\:ring-3:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .focus-within\\:ring-neutral:focus-within {\n --tw-ring-color: var(--atomic-neutral);\n }\n .focus-within\\:ring-ring-primary:focus-within {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n @media (hover: hover) {\n .hover\\:border:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n @media (hover: hover) {\n .hover\\:border-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:border-primary-light:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-error:hover {\n background-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-neutral-light:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-primary-light:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:bg-transparent:hover {\n background-color: transparent;\n }\n }\n @media (hover: hover) {\n .hover\\:fill-white:hover {\n fill: #fff;\n }\n }\n @media (hover: hover) {\n .hover\\:text-error:hover {\n color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .hover\\:text-primary:hover {\n color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .hover\\:text-primary-light:hover {\n color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .hover\\:text-success:hover {\n color: var(--atomic-success);\n }\n }\n @media (hover: hover) {\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n @media (hover: hover) {\n .hover\\:opacity-100:hover {\n opacity: 100%;\n }\n }\n @media (hover: hover) {\n .hover\\:shadow-sm:hover {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:border-primary:focus {\n border-color: var(--atomic-primary);\n }\n .focus\\:opacity-100:focus {\n opacity: 100%;\n }\n .focus\\:ring-1:focus {\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 .focus\\:ring-primary:focus {\n --tw-ring-color: var(--atomic-primary);\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\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\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\\:ring-primary:focus-visible {\n --tw-ring-color: var(--atomic-primary);\n }\n .focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n .focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n .disabled\\:bg-neutral-light:disabled {\n background-color: var(--atomic-neutral-light);\n }\n .disabled\\:bg-primary\\/60:disabled {\n background-color: color-mix(in srgb, #126ce0 60%, transparent);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .disabled\\:bg-primary\\/60:disabled {\n background-color: color-mix(in oklab, var(--atomic-primary) 60%, transparent);\n }\n }\n .disabled\\:text-neutral-dark:disabled {\n color: var(--atomic-neutral-dark);\n }\n .disabled\\:opacity-100:disabled {\n opacity: 100%;\n }\n @media (width >= 1024px) {\n .desktop\\:mt-2 {\n margin-top: calc(0.25rem * 2);\n }\n }\n @media (width >= 40rem) {\n .sm\\:px-6 {\n padding-inline: calc(0.25rem * 6);\n }\n }\n .\\[part\\=\\"breadcrumb-button\\"\\]\\:visible:is(part="breadcrumb-button") {\n visibility: visible;\n }\n}\n@layer theme, base, components, utilities;\n@layer components {\n .input-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n }\n @media (hover: hover) {\n .input-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n .input-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .input-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .input-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .input-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n .btn-radio::before {\n --tw-content: attr(value);\n content: var(--tw-content);\n }\n .btn-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-primary);\n color: var(--atomic-on-primary);\n }\n @media (hover: hover) {\n .btn-primary:hover {\n background-color: var(--atomic-primary-light);\n }\n }\n .btn-primary:focus-visible {\n background-color: var(--atomic-primary-light);\n }\n .btn-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-primary:disabled {\n cursor: not-allowed;\n }\n .btn-primary:disabled {\n background-color: var(--atomic-disabled);\n }\n .btn-outline-primary {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n border-color: var(--atomic-primary-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-primary:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-outline-primary:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-primary:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-primary:disabled {\n cursor: not-allowed;\n }\n .btn-outline-primary:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-primary:disabled {\n color: var(--atomic-neutral);\n }\n .btn-text-primary {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-primary);\n }\n @media (hover: hover) {\n .btn-text-primary:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-text-primary:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-primary:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-neutral {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-neutral:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-neutral:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-neutral:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-neutral:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-neutral:disabled {\n opacity: 50%;\n }\n .btn-outline-bg-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n border-color: var(--atomic-primary);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-outline-bg-error:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-outline-bg-error:focus-visible {\n border-color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-outline-bg-error:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-bg-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-bg-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-bg-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-bg-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-bg-error:disabled {\n opacity: 50%;\n }\n .btn-outline-error {\n border-radius: var(--atomic-border-radius);\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n border-color: var(--atomic-error);\n }\n }\n @media (hover: hover) {\n .btn-outline-error:hover {\n color: var(--atomic-error);\n }\n }\n .btn-outline-error:focus-visible {\n border-color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n color: var(--atomic-error);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .btn-outline-error:focus-visible {\n --tw-ring-color: var(--atomic-ring-primary);\n }\n .btn-outline-error:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-outline-error:disabled {\n cursor: not-allowed;\n }\n .btn-outline-error:disabled {\n border-color: var(--atomic-neutral);\n }\n .btn-outline-error:disabled {\n color: var(--atomic-on-background);\n }\n .btn-outline-error:disabled {\n opacity: 50%;\n }\n .btn-text-neutral {\n border-radius: var(--atomic-border-radius);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n @media (hover: hover) {\n .btn-text-neutral:hover {\n color: var(--atomic-primary);\n }\n }\n .btn-text-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-text-neutral:focus-visible {\n color: var(--atomic-primary);\n }\n .btn-text-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-text-transparent {\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-text-transparent:hover {\n color: var(--atomic-primary-light);\n }\n }\n .btn-text-transparent:focus-visible {\n color: var(--atomic-primary-light);\n }\n .btn-square-neutral {\n border-style: var(--tw-border-style);\n border-width: 1px;\n border-color: var(--atomic-neutral);\n background-color: var(--atomic-background);\n color: var(--atomic-on-background);\n }\n @media (hover: hover) {\n .btn-square-neutral:hover {\n background-color: var(--atomic-neutral-light);\n }\n }\n .btn-square-neutral:focus-visible {\n background-color: var(--atomic-neutral-light);\n }\n .btn-square-neutral:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .btn-page {\n display: grid;\n height: calc(0.25rem * 10);\n width: calc(0.25rem * 10);\n place-items: center;\n border-style: var(--tw-border-style);\n border-width: 0px;\n font-size: var(--atomic-text-lg);\n line-height: var(--tw-leading, calc(1.75 / 1.125));\n }\n @media (hover: hover) {\n .btn-page:hover {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .btn-page:focus-visible {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .btn-page.selected {\n border-style: var(--tw-border-style);\n border-width: 2px;\n border-color: var(--atomic-primary);\n --tw-font-weight: var(--atomic-font-bold);\n font-weight: var(--atomic-font-bold);\n }\n}\n@layer base {\n :host {\n display: block;\n }\n :host, button, input, select {\n font-family: var(--atomic-font-family);\n font-size: var(--atomic-text-base);\n line-height: var(--tw-leading, calc(1.5 / 1));\n --tw-font-weight: var(--atomic-font-normal);\n font-weight: var(--atomic-font-normal);\n }\n button {\n cursor: pointer;\n }\n :host(.atomic-hidden) {\n display: none;\n }\n .ripple {\n position: absolute;\n pointer-events: none;\n transform: scale(0);\n border-radius: 50%;\n animation: ripple var(--animation-duration) linear;\n }\n .ripple-relative {\n position: relative;\n }\n .ripple-parent {\n overflow: hidden;\n }\n @keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n }\n}\n:host::part(result-action-button) {\n display: flex;\n align-items: center;\n justify-content: center;\n height: calc(0.25rem * 8);\n width: calc(0.25rem * 8);\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 h=m;var p=undefined&&undefined.__decorate||function(n,r,t,e){var i=arguments.length,a=i<3?r:e===null?e=Object.getOwnPropertyDescriptor(r,t):e,o;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")a=Reflect.decorate(n,r,t,e);else for(var l=n.length-1;l>=0;l--)if(o=n[l])a=(i<3?o(a):i>3?o(r,t,a):o(r,t))||a;return i>3&&a&&Object.defineProperty(r,t,a),a};var g;(function(n){n["CopyToClipboard"]="copyToClipboard";n["AttachToCase"]="attachToCase";n["Quickview"]="quickview";n["PostToFeed"]="postToFeed";n["SendAsEmail"]="sendAsEmail"})(g||(g={}));const v=class{constructor(t){n(this,t);this.actionClicked=r(this,"atomicInsightResultActionClicked",7);this.icon="";this.tooltip="";this.tooltipOnClick="";this.action="";this.error=undefined;this.icon="";this.tooltip="";this.tooltipOnClick="";this.action=""}initialize(){this.actions=e(this.bindings.engine)}onClick(){if(this.tooltipOnClick){const n=this.tooltip;this.tooltip=this.tooltipOnClick;setTimeout((()=>{this.tooltip=n}),1e3)}switch(this.action){case g.CopyToClipboard:this.bindings.engine.dispatch(this.actions.logCopyToClipboard(this.result));navigator.clipboard.writeText(this.result?.clickUri);break;case g.PostToFeed:this.bindings.engine.dispatch(this.actions.logFeedItemTextPost(this.result));break;case g.SendAsEmail:this.bindings.engine.dispatch(this.actions.logCaseSendEmail(this.result));break}this.actionClicked.emit({action:this.action,result:this.result})}getIcon(){if(this.icon){return this.icon}switch(this.action){case g.CopyToClipboard:return s;case g.AttachToCase:return i;case g.Quickview:return d;case g.PostToFeed:return w;case g.SendAsEmail:return c;default:return d}}render(){return t(o,{key:"6e9de44818e47d1454311a44871b14085f1e8a9c",partPrefix:"result-action",style:"outline-neutral",icon:this.getIcon(),title:this.tooltip,onClick:()=>this.onClick()})}};p([a()],v.prototype,"bindings",void 0);p([l()],v.prototype,"result",void 0);v.style=h;export{v as atomic_insight_result_action};
|
|
2
|
+
//# sourceMappingURL=p-8b039c2e.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["atomicInsightResultActionCss","AtomicInsightResultActionStyle0","Actions","AtomicInsightResultAction","this","icon","tooltip","tooltipOnClick","action","initialize","actions","loadInsightAnalyticsActions","bindings","engine","onClick","originalTooltip","setTimeout","CopyToClipboard","dispatch","logCopyToClipboard","result","navigator","clipboard","writeText","clickUri","PostToFeed","logFeedItemTextPost","SendAsEmail","logCaseSendEmail","actionClicked","emit","getIcon","CopyIcon","AttachToCase","AttachIcon","Quickview","QuickviewIcon","FeedIcon","EmailIcon","render","h","IconButton","key","partPrefix","style","title","__decorate","InitializeBindings","ResultContext"],"sources":["src/components/insight/atomic-insight-result-action/atomic-insight-result-action.pcss?tag=atomic-insight-result-action","src/components/insight/atomic-insight-result-action/atomic-insight-result-action.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n\n:host {\n &::part(result-action-button) {\n @apply flex items-center justify-center;\n @apply h-8 w-8;\n }\n}\n","import {Result} from '@coveo/headless';\nimport {\n InsightAnalyticsActionCreators,\n loadInsightAnalyticsActions,\n} from '@coveo/headless/insight';\nimport {Component, Event, EventEmitter, Prop, State, h} from '@stencil/core';\nimport AttachIcon from '../../../images/attach.svg';\nimport CopyIcon from '../../../images/copy-dark.svg';\nimport EmailIcon from '../../../images/email.svg';\nimport QuickviewIcon from '../../../images/preview.svg';\nimport FeedIcon from '../../../images/share-post.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {IconButton} from '../../common/stencil-iconButton';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/context/stencil-result-template-decorators';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\nexport interface InsightResultActionClickedEvent {\n action: string;\n result: Result;\n}\n\nexport enum Actions {\n CopyToClipboard = 'copyToClipboard',\n AttachToCase = 'attachToCase',\n Quickview = 'quickview',\n PostToFeed = 'postToFeed',\n SendAsEmail = 'sendAsEmail',\n}\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-result-action',\n styleUrl: 'atomic-insight-result-action.pcss',\n})\nexport class AtomicInsightResultAction\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n @ResultContext() private result!: Result;\n @State() public error!: Error;\n\n /**\n * @migration Stencil's @Event() decorator defaults to: bubbles=true, composed=true, cancelable=true.\n * Native CustomEvent defaults to: bubbles=false, composed=false, cancelable=false.\n * When migrating to Lit, explicitly set all three options to preserve behavior:\n * `new CustomEvent('atomicInsightResultActionClicked', { bubbles: true, composed: true, cancelable: true, detail: ... })`\n */\n @Event({\n eventName: 'atomicInsightResultActionClicked',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n private actionClicked!: EventEmitter<InsightResultActionClickedEvent>;\n\n /**\n * Specify the result action icon to display.\n */\n @Prop({mutable: true}) public icon = '';\n\n /**\n * The text tooltip to show on the result action icon.\n */\n @Prop({mutable: true}) public tooltip = '';\n\n /**\n * The text tooltip to show on the result action icon for some time after clicking the button.\n */\n @Prop({mutable: true}) public tooltipOnClick = '';\n\n /**\n * The type of action to perform when the result action is clicked. This will be sent along the event fired when the button is clicked.\n */\n @Prop({mutable: true}) public action: Actions | string = '';\n\n private actions!: InsightAnalyticsActionCreators;\n\n public initialize() {\n this.actions = loadInsightAnalyticsActions(this.bindings.engine);\n }\n\n private onClick() {\n if (this.tooltipOnClick) {\n const originalTooltip = this.tooltip;\n this.tooltip = this.tooltipOnClick;\n setTimeout(() => {\n this.tooltip = originalTooltip;\n }, 1000);\n }\n\n switch (this.action) {\n case Actions.CopyToClipboard:\n this.bindings.engine.dispatch(\n this.actions.logCopyToClipboard(this.result)\n );\n navigator.clipboard.writeText(this.result?.clickUri);\n break;\n case Actions.PostToFeed:\n this.bindings.engine.dispatch(\n this.actions.logFeedItemTextPost(this.result)\n );\n break;\n case Actions.SendAsEmail:\n this.bindings.engine.dispatch(\n this.actions.logCaseSendEmail(this.result)\n );\n break;\n }\n\n this.actionClicked.emit({action: this.action, result: this.result});\n }\n\n private getIcon() {\n if (this.icon) {\n return this.icon;\n }\n\n switch (this.action) {\n case Actions.CopyToClipboard:\n return CopyIcon;\n case Actions.AttachToCase:\n return AttachIcon;\n case Actions.Quickview:\n return QuickviewIcon;\n case Actions.PostToFeed:\n return FeedIcon;\n case Actions.SendAsEmail:\n return EmailIcon;\n default:\n return QuickviewIcon;\n }\n }\n\n public render() {\n return (\n <IconButton\n partPrefix=\"result-action\"\n style=\"outline-neutral\"\n icon={this.getIcon()}\n title={this.tooltip}\n onClick={() => this.onClick()}\n />\n );\n }\n}\n"],"mappings":"uuFAAA,MAAMA,EAA+B,
|
|
1
|
+
{"version":3,"names":["atomicInsightResultActionCss","AtomicInsightResultActionStyle0","Actions","AtomicInsightResultAction","this","icon","tooltip","tooltipOnClick","action","initialize","actions","loadInsightAnalyticsActions","bindings","engine","onClick","originalTooltip","setTimeout","CopyToClipboard","dispatch","logCopyToClipboard","result","navigator","clipboard","writeText","clickUri","PostToFeed","logFeedItemTextPost","SendAsEmail","logCaseSendEmail","actionClicked","emit","getIcon","CopyIcon","AttachToCase","AttachIcon","Quickview","QuickviewIcon","FeedIcon","EmailIcon","render","h","IconButton","key","partPrefix","style","title","__decorate","InitializeBindings","ResultContext"],"sources":["src/components/insight/atomic-insight-result-action/atomic-insight-result-action.pcss?tag=atomic-insight-result-action","src/components/insight/atomic-insight-result-action/atomic-insight-result-action.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n\n:host {\n &::part(result-action-button) {\n @apply flex items-center justify-center;\n @apply h-8 w-8;\n }\n}\n","import {Result} from '@coveo/headless';\nimport {\n InsightAnalyticsActionCreators,\n loadInsightAnalyticsActions,\n} from '@coveo/headless/insight';\nimport {Component, Event, EventEmitter, Prop, State, h} from '@stencil/core';\nimport AttachIcon from '../../../images/attach.svg';\nimport CopyIcon from '../../../images/copy-dark.svg';\nimport EmailIcon from '../../../images/email.svg';\nimport QuickviewIcon from '../../../images/preview.svg';\nimport FeedIcon from '../../../images/share-post.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {IconButton} from '../../common/stencil-iconButton';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/context/stencil-result-template-decorators';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\nexport interface InsightResultActionClickedEvent {\n action: string;\n result: Result;\n}\n\nexport enum Actions {\n CopyToClipboard = 'copyToClipboard',\n AttachToCase = 'attachToCase',\n Quickview = 'quickview',\n PostToFeed = 'postToFeed',\n SendAsEmail = 'sendAsEmail',\n}\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-result-action',\n styleUrl: 'atomic-insight-result-action.pcss',\n})\nexport class AtomicInsightResultAction\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n @ResultContext() private result!: Result;\n @State() public error!: Error;\n\n /**\n * @migration Stencil's @Event() decorator defaults to: bubbles=true, composed=true, cancelable=true.\n * Native CustomEvent defaults to: bubbles=false, composed=false, cancelable=false.\n * When migrating to Lit, explicitly set all three options to preserve behavior:\n * `new CustomEvent('atomicInsightResultActionClicked', { bubbles: true, composed: true, cancelable: true, detail: ... })`\n */\n @Event({\n eventName: 'atomicInsightResultActionClicked',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n private actionClicked!: EventEmitter<InsightResultActionClickedEvent>;\n\n /**\n * Specify the result action icon to display.\n */\n @Prop({mutable: true}) public icon = '';\n\n /**\n * The text tooltip to show on the result action icon.\n */\n @Prop({mutable: true}) public tooltip = '';\n\n /**\n * The text tooltip to show on the result action icon for some time after clicking the button.\n */\n @Prop({mutable: true}) public tooltipOnClick = '';\n\n /**\n * The type of action to perform when the result action is clicked. This will be sent along the event fired when the button is clicked.\n */\n @Prop({mutable: true}) public action: Actions | string = '';\n\n private actions!: InsightAnalyticsActionCreators;\n\n public initialize() {\n this.actions = loadInsightAnalyticsActions(this.bindings.engine);\n }\n\n private onClick() {\n if (this.tooltipOnClick) {\n const originalTooltip = this.tooltip;\n this.tooltip = this.tooltipOnClick;\n setTimeout(() => {\n this.tooltip = originalTooltip;\n }, 1000);\n }\n\n switch (this.action) {\n case Actions.CopyToClipboard:\n this.bindings.engine.dispatch(\n this.actions.logCopyToClipboard(this.result)\n );\n navigator.clipboard.writeText(this.result?.clickUri);\n break;\n case Actions.PostToFeed:\n this.bindings.engine.dispatch(\n this.actions.logFeedItemTextPost(this.result)\n );\n break;\n case Actions.SendAsEmail:\n this.bindings.engine.dispatch(\n this.actions.logCaseSendEmail(this.result)\n );\n break;\n }\n\n this.actionClicked.emit({action: this.action, result: this.result});\n }\n\n private getIcon() {\n if (this.icon) {\n return this.icon;\n }\n\n switch (this.action) {\n case Actions.CopyToClipboard:\n return CopyIcon;\n case Actions.AttachToCase:\n return AttachIcon;\n case Actions.Quickview:\n return QuickviewIcon;\n case Actions.PostToFeed:\n return FeedIcon;\n case Actions.SendAsEmail:\n return EmailIcon;\n default:\n return QuickviewIcon;\n }\n }\n\n public render() {\n return (\n <IconButton\n partPrefix=\"result-action\"\n style=\"outline-neutral\"\n icon={this.getIcon()}\n title={this.tooltip}\n onClick={() => this.onClick()}\n />\n );\n }\n}\n"],"mappings":"uuFAAA,MAAMA,EAA+B,8jtEACrC,MAAAC,EAAeD,E,2WCuBf,IAAYE,GAAZ,SAAYA,GACVA,EAAA,qCACAA,EAAA,+BACAA,EAAA,yBACAA,EAAA,2BACAA,EAAA,4BACD,EAND,CAAYA,MAAO,K,MAeNC,EAAyB,M,yFAwBNC,KAAAC,KAAO,GAKPD,KAAAE,QAAU,GAKVF,KAAAG,eAAiB,GAKjBH,KAAAI,OAA2B,G,+BAfpB,G,aAKG,G,oBAKO,G,YAKU,E,CAIlD,UAAAC,GACLL,KAAKM,QAAUC,EAA4BP,KAAKQ,SAASC,O,CAGnD,OAAAC,GACN,GAAIV,KAAKG,eAAgB,CACvB,MAAMQ,EAAkBX,KAAKE,QAC7BF,KAAKE,QAAUF,KAAKG,eACpBS,YAAW,KACTZ,KAAKE,QAAUS,CAAe,GAC7B,I,CAGL,OAAQX,KAAKI,QACX,KAAKN,EAAQe,gBACXb,KAAKQ,SAASC,OAAOK,SACnBd,KAAKM,QAAQS,mBAAmBf,KAAKgB,SAEvCC,UAAUC,UAAUC,UAAUnB,KAAKgB,QAAQI,UAC3C,MACF,KAAKtB,EAAQuB,WACXrB,KAAKQ,SAASC,OAAOK,SACnBd,KAAKM,QAAQgB,oBAAoBtB,KAAKgB,SAExC,MACF,KAAKlB,EAAQyB,YACXvB,KAAKQ,SAASC,OAAOK,SACnBd,KAAKM,QAAQkB,iBAAiBxB,KAAKgB,SAErC,MAGJhB,KAAKyB,cAAcC,KAAK,CAACtB,OAAQJ,KAAKI,OAAQY,OAAQhB,KAAKgB,Q,CAGrD,OAAAW,GACN,GAAI3B,KAAKC,KAAM,CACb,OAAOD,KAAKC,I,CAGd,OAAQD,KAAKI,QACX,KAAKN,EAAQe,gBACX,OAAOe,EACT,KAAK9B,EAAQ+B,aACX,OAAOC,EACT,KAAKhC,EAAQiC,UACX,OAAOC,EACT,KAAKlC,EAAQuB,WACX,OAAOY,EACT,KAAKnC,EAAQyB,YACX,OAAOW,EACT,QACE,OAAOF,E,CAIN,MAAAG,GACL,OACEC,EAACC,EAAU,CAAAC,IAAA,2CACTC,WAAW,gBACXC,MAAM,kBACNvC,KAAMD,KAAK2B,UACXc,MAAOzC,KAAKE,QACZQ,QAAS,IAAMV,KAAKU,W,GAvGGgC,EAAA,CAA5BC,K,+BACwBD,EAAA,CAAxBE,K","ignoreList":[]}
|