@getlupa/vue 0.0.1
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/.eslintrc.cjs +15 -0
- package/.prettierrc.json +8 -0
- package/README.md +46 -0
- package/dist/containerStyle.css +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/lupaSearch.iife.js +15899 -0
- package/dist/lupaSearch.js +15897 -0
- package/dist/lupaSearch.mjs +15897 -0
- package/dist/lupaSearch.umd.js +15900 -0
- package/dist/src/components/common/ProductImage.vue.d.ts +39 -0
- package/dist/src/components/common/Spinner.vue.d.ts +2 -0
- package/dist/src/components/product-list/CategoryDescription.vue.d.ts +14 -0
- package/dist/src/components/product-list/CategoryFilter.vue.d.ts +14 -0
- package/dist/src/components/product-list/CategoryFilterItem.vue.d.ts +22 -0
- package/dist/src/components/product-list/CategoryTopFilters.vue.d.ts +14 -0
- package/dist/src/components/product-list/ProductList.vue.d.ts +14 -0
- package/dist/src/components/recommendations/Recommendations.vue.d.ts +14 -0
- package/dist/src/components/search-box/SearchBox.vue.d.ts +22 -0
- package/dist/src/components/search-box/SearchBoxInput.vue.d.ts +42 -0
- package/dist/src/components/search-box/SearchBoxMainPanel.vue.d.ts +52 -0
- package/dist/src/components/search-box/SearchBoxMoreResults.vue.d.ts +24 -0
- package/dist/src/components/search-box/history/SearchBoxHistoryItem.vue.d.ts +24 -0
- package/dist/src/components/search-box/history/SearchBoxHistoryPanel.vue.d.ts +16 -0
- package/dist/src/components/search-box/products/SearchBoxProduct.vue.d.ts +50 -0
- package/dist/src/components/search-box/products/SearchBoxProducts.vue.d.ts +40 -0
- package/dist/src/components/search-box/products/SearchBoxProductsWrapper.vue.d.ts +50 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductCustom.vue.d.ts +23 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductCustomHtml.vue.d.ts +22 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductDescription.vue.d.ts +23 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductElement.vue.d.ts +32 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductImage.vue.d.ts +23 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductPrice.vue.d.ts +32 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductRegularPrice.vue.d.ts +32 -0
- package/dist/src/components/search-box/products/elements/SearchBoxProductTitle.vue.d.ts +23 -0
- package/dist/src/components/search-box/suggestions/SearchBoxSuggestion.vue.d.ts +33 -0
- package/dist/src/components/search-box/suggestions/SearchBoxSuggestions.vue.d.ts +41 -0
- package/dist/src/components/search-box/suggestions/SearchBoxSuggestionsWrapper.vue.d.ts +51 -0
- package/dist/src/components/search-container/SearchContainer.vue.d.ts +14 -0
- package/dist/src/components/search-results/SearchResults.vue.d.ts +39 -0
- package/dist/src/components/search-results/SearchResultsBreadcrumbs.vue.d.ts +14 -0
- package/dist/src/components/search-results/SearchResultsDidYouMean.vue.d.ts +14 -0
- package/dist/src/components/search-results/SearchResultsTitle.vue.d.ts +30 -0
- package/dist/src/components/search-results/additional-panels/AdditionalPanel.vue.d.ts +23 -0
- package/dist/src/components/search-results/additional-panels/AdditionalPanels.vue.d.ts +31 -0
- package/dist/src/components/search-results/filters/CurrentFilterDisplay.vue.d.ts +16 -0
- package/dist/src/components/search-results/filters/CurrentFilters.vue.d.ts +22 -0
- package/dist/src/components/search-results/filters/FiltersTopDropdown.vue.d.ts +14 -0
- package/dist/src/components/search-results/filters/MobileFilterSidebar.vue.d.ts +14 -0
- package/dist/src/components/search-results/filters/SearchResultsFilters.vue.d.ts +22 -0
- package/dist/src/components/search-results/filters/facets/FacetDisplay.vue.d.ts +42 -0
- package/dist/src/components/search-results/filters/facets/FacetList.vue.d.ts +50 -0
- package/dist/src/components/search-results/filters/facets/Facets.vue.d.ts +30 -0
- package/dist/src/components/search-results/filters/facets/HierarchyFacet.vue.d.ts +33 -0
- package/dist/src/components/search-results/filters/facets/HierarchyFacetLevel.vue.d.ts +41 -0
- package/dist/src/components/search-results/filters/facets/StatsFacet.vue.d.ts +33 -0
- package/dist/src/components/search-results/filters/facets/TermFacet.vue.d.ts +33 -0
- package/dist/src/components/search-results/products/SearchResultsLayoutSelection.vue.d.ts +2 -0
- package/dist/src/components/search-results/products/SearchResultsMobileToggle.vue.d.ts +21 -0
- package/dist/src/components/search-results/products/SearchResultsProducts.vue.d.ts +14 -0
- package/dist/src/components/search-results/products/SearchResultsSummary.vue.d.ts +21 -0
- package/dist/src/components/search-results/products/SearchResultsToolbar.vue.d.ts +22 -0
- package/dist/src/components/search-results/products/pagination/SearchResultsPageSelect.vue.d.ts +30 -0
- package/dist/src/components/search-results/products/pagination/SearchResultsPageSize.vue.d.ts +22 -0
- package/dist/src/components/search-results/products/product-card/SearchResultsProductCard.vue.d.ts +40 -0
- package/dist/src/components/search-results/products/product-card/badges/CustomBadge.vue.d.ts +14 -0
- package/dist/src/components/search-results/products/product-card/badges/ImageBadge.vue.d.ts +14 -0
- package/dist/src/components/search-results/products/product-card/badges/SearchResultGeneratedBadges.vue.d.ts +14 -0
- package/dist/src/components/search-results/products/product-card/badges/SearchResultsBadgeWrapper.vue.d.ts +22 -0
- package/dist/src/components/search-results/products/product-card/badges/TextBadge.vue.d.ts +14 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductAddToCart.vue.d.ts +33 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductCardElement.vue.d.ts +50 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductCustom.vue.d.ts +23 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductDescription.vue.d.ts +23 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductImage.vue.d.ts +23 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductPrice.vue.d.ts +32 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductRating.vue.d.ts +23 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductRegularPrice.vue.d.ts +32 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductSingleStarRating.vue.d.ts +23 -0
- package/dist/src/components/search-results/products/product-card/elements/SearchResultsProductTitle.vue.d.ts +31 -0
- package/dist/src/components/search-results/products/product-card/elements/custom/SearchResultsProductCustomHtmlElement.vue.d.ts +23 -0
- package/dist/src/components/search-results/products/similar-queries/SearchResultsSimilarQueries.vue.d.ts +31 -0
- package/dist/src/components/search-results/products/similar-queries/SimilarQueryText.vue.d.ts +22 -0
- package/dist/src/components/search-results/products/sort/SearchResultsSort.vue.d.ts +14 -0
- package/dist/src/constants/global.const.d.ts +17 -0
- package/dist/src/constants/queryParams.const.d.ts +26 -0
- package/dist/src/constants/searchBox.const.d.ts +48 -0
- package/dist/src/constants/searchResults.const.d.ts +107 -0
- package/dist/src/index.d.ts +21 -0
- package/dist/src/stores/dynamicData.d.ts +24 -0
- package/dist/src/stores/history.d.ts +31 -0
- package/dist/src/stores/options.d.ts +75 -0
- package/dist/src/stores/params.d.ts +124 -0
- package/dist/src/stores/screen.d.ts +22 -0
- package/dist/src/stores/searchBox.d.ts +204 -0
- package/dist/src/stores/searchResult.d.ts +125 -0
- package/dist/src/stores/tracking.d.ts +46 -0
- package/dist/src/types/AnalyticsOptions.d.ts +14 -0
- package/dist/src/types/DocumentElement.d.ts +91 -0
- package/dist/src/types/General.d.ts +20 -0
- package/dist/src/types/product-list/ProductListOptions.d.ts +29 -0
- package/dist/src/types/recommendations/RecommendationsOptions.d.ts +26 -0
- package/dist/src/types/search-box/Common.d.ts +51 -0
- package/dist/src/types/search-box/SearchBoxHistory.d.ts +6 -0
- package/dist/src/types/search-box/SearchBoxOptions.d.ts +36 -0
- package/dist/src/types/search-box/SearchBoxPanel.d.ts +28 -0
- package/dist/src/types/search-container/SearchContainerOptions.d.ts +15 -0
- package/dist/src/types/search-results/BadgeOptions.d.ts +61 -0
- package/dist/src/types/search-results/FacetAction.d.ts +16 -0
- package/dist/src/types/search-results/Filters.d.ts +9 -0
- package/dist/src/types/search-results/PaginationOptions.d.ts +20 -0
- package/dist/src/types/search-results/QueryParams.d.ts +4 -0
- package/dist/src/types/search-results/ResultsLayout.d.ts +5 -0
- package/dist/src/types/search-results/RoutingBehavior.d.ts +1 -0
- package/dist/src/types/search-results/SearchResultsAdditionalPanelOptions.d.ts +16 -0
- package/dist/src/types/search-results/SearchResultsOptions.d.ts +177 -0
- package/dist/src/types/search-results/SearchResultsPagination.d.ts +21 -0
- package/dist/src/types/search-results/SearchResultsProductCardOptions.d.ts +24 -0
- package/dist/src/types/search-results/SearchResultsSort.d.ts +11 -0
- package/dist/src/utils/debounce.utils.d.ts +1 -0
- package/dist/src/utils/document.utils.d.ts +1 -0
- package/dist/src/utils/event.utils.d.ts +2 -0
- package/dist/src/utils/filter.toggle.utils.d.ts +23 -0
- package/dist/src/utils/filter.utils.d.ts +11 -0
- package/dist/src/utils/history.utils.d.ts +2 -0
- package/dist/src/utils/link.utils.d.ts +6 -0
- package/dist/src/utils/params.utils.d.ts +9 -0
- package/dist/src/utils/picker.utils.d.ts +5 -0
- package/dist/src/utils/price.utils.d.ts +2 -0
- package/dist/src/utils/query.utils.d.ts +5 -0
- package/dist/src/utils/routing.utils.d.ts +6 -0
- package/dist/src/utils/scroll.utils.d.ts +4 -0
- package/dist/src/utils/string.utils.d.ts +9 -0
- package/dist/src/utils/suggestion.utils.d.ts +3 -0
- package/dist/src/utils/tracking.utils.d.ts +15 -0
- package/dist/style.css +1 -0
- package/dist/style.js +1 -0
- package/env.d.ts +1 -0
- package/index.html +13 -0
- package/package.json +62 -0
- package/tsconfig.app.json +18 -0
- package/tsconfig.node.json +15 -0
- package/vite.config.ts +35 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { DocumentElement } from '../DocumentElement';
|
|
2
|
+
export declare enum SearchBoxPanelType {
|
|
3
|
+
SUGGESTION = "suggestion",
|
|
4
|
+
DOCUMENT = "document"
|
|
5
|
+
}
|
|
6
|
+
export type SearchBoxPanelLinks = {
|
|
7
|
+
details: string;
|
|
8
|
+
};
|
|
9
|
+
export type SearchBoxPanelBase = {
|
|
10
|
+
type: SearchBoxPanelType;
|
|
11
|
+
queryKey: string;
|
|
12
|
+
limit: number;
|
|
13
|
+
};
|
|
14
|
+
export type DocumentSearchBoxPanel = SearchBoxPanelBase & {
|
|
15
|
+
type: SearchBoxPanelType.DOCUMENT;
|
|
16
|
+
links: SearchBoxPanelLinks;
|
|
17
|
+
elements: DocumentElement[];
|
|
18
|
+
titleKey?: string;
|
|
19
|
+
idKey?: string;
|
|
20
|
+
customClassName?: string;
|
|
21
|
+
searchBySuggestion?: boolean;
|
|
22
|
+
};
|
|
23
|
+
export type SuggestionSearchBoxPanel = SearchBoxPanelBase & {
|
|
24
|
+
type: SearchBoxPanelType.SUGGESTION;
|
|
25
|
+
highlight: boolean;
|
|
26
|
+
customClassName?: string;
|
|
27
|
+
};
|
|
28
|
+
export type SearchBoxPanel = DocumentSearchBoxPanel | SuggestionSearchBoxPanel;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SearchBoxOptions } from '../search-box/SearchBoxOptions';
|
|
2
|
+
import type { SearchResultsOptions } from '../search-results/SearchResultsOptions';
|
|
3
|
+
export type SearchContainerConfigOptions = {
|
|
4
|
+
isOpenInitially?: boolean;
|
|
5
|
+
styleLink?: string;
|
|
6
|
+
layout?: {
|
|
7
|
+
marginLeft?: number;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export type SearchContainerOptions = {
|
|
11
|
+
trigger: string;
|
|
12
|
+
searchBox: SearchBoxOptions;
|
|
13
|
+
searchResults: SearchResultsOptions;
|
|
14
|
+
options?: SearchContainerConfigOptions;
|
|
15
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { AnchorPosition } from './SearchResultsProductCardOptions';
|
|
2
|
+
export type SearchResultBadgeType = 'text' | 'image' | 'customHtml';
|
|
3
|
+
export type BadgeGenerateSeed = {
|
|
4
|
+
id?: string;
|
|
5
|
+
backgroundColor?: string;
|
|
6
|
+
color?: string;
|
|
7
|
+
titleText?: string;
|
|
8
|
+
additionalText?: string;
|
|
9
|
+
};
|
|
10
|
+
export type BadgeGenerateOptions<T = Record<string, any>> = {
|
|
11
|
+
key?: string;
|
|
12
|
+
keyMap?: Record<keyof BadgeGenerateSeed, keyof T>;
|
|
13
|
+
image?: (field: BadgeGenerateSeed) => string | undefined;
|
|
14
|
+
showTitle?: (field: BadgeGenerateSeed) => boolean;
|
|
15
|
+
customClass?: (field: BadgeGenerateSeed) => string | undefined;
|
|
16
|
+
};
|
|
17
|
+
export type BadgeOptions = {
|
|
18
|
+
anchor: AnchorPosition;
|
|
19
|
+
elements: BadgeElement[];
|
|
20
|
+
generate?: BadgeGenerateOptions;
|
|
21
|
+
product?: any;
|
|
22
|
+
};
|
|
23
|
+
export type SearchResultBadgeElement<T = any> = {
|
|
24
|
+
type: SearchResultBadgeType;
|
|
25
|
+
key: string;
|
|
26
|
+
isHtml?: boolean;
|
|
27
|
+
className?: string;
|
|
28
|
+
product?: T;
|
|
29
|
+
display?: (document: T) => boolean;
|
|
30
|
+
rootImageUrl?: string;
|
|
31
|
+
maxItems?: number;
|
|
32
|
+
html?: (doc: T) => string;
|
|
33
|
+
position?: 'card' | 'image';
|
|
34
|
+
};
|
|
35
|
+
export type BaseBadgeElement<T = any> = SearchResultBadgeElement<T> & {
|
|
36
|
+
value?: string;
|
|
37
|
+
};
|
|
38
|
+
export type TextBadgeElement<T = any> = BaseBadgeElement<T> & {
|
|
39
|
+
type: 'text';
|
|
40
|
+
prefix?: string;
|
|
41
|
+
maxItems?: number;
|
|
42
|
+
};
|
|
43
|
+
export type ImageBadgeElement<T = any> = BaseBadgeElement<T> & {
|
|
44
|
+
type: 'image';
|
|
45
|
+
rootImageUrl?: string;
|
|
46
|
+
maxItems?: number;
|
|
47
|
+
};
|
|
48
|
+
export type CustomHtmlBadgeElement<T = any> = BaseBadgeElement<T> & {
|
|
49
|
+
type: 'customHtml';
|
|
50
|
+
className?: string;
|
|
51
|
+
html: (doc: T) => string;
|
|
52
|
+
};
|
|
53
|
+
export type BadgeElement = BaseBadgeElement | TextBadgeElement;
|
|
54
|
+
export declare enum BadgeType {
|
|
55
|
+
DISCOUNTPERCENTAGE = "discountPercentage",
|
|
56
|
+
DISCOUNTAMOUNT = "discountAmount",
|
|
57
|
+
NEWITEM = "newItem",
|
|
58
|
+
TEXT = "text",
|
|
59
|
+
IMAGE = "image",
|
|
60
|
+
CUSTOM_HTML = "customHtml"
|
|
61
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TermFacetAction = {
|
|
2
|
+
type: 'terms';
|
|
3
|
+
value: string;
|
|
4
|
+
key: string;
|
|
5
|
+
};
|
|
6
|
+
export type HierarchyFacetAction = {
|
|
7
|
+
type: 'hierarchy';
|
|
8
|
+
value: string;
|
|
9
|
+
key: string;
|
|
10
|
+
};
|
|
11
|
+
export type RangeFacetAction = {
|
|
12
|
+
type: 'range';
|
|
13
|
+
value: string[];
|
|
14
|
+
key: string;
|
|
15
|
+
};
|
|
16
|
+
export type FacetAction = TermFacetAction | RangeFacetAction | HierarchyFacetAction;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SearchResultsPaginationLabels } from './SearchResultsPagination';
|
|
2
|
+
export type PaginationOptions = {
|
|
3
|
+
pageSize: PaginationPageSize;
|
|
4
|
+
pageSelect: PaginationPageSelect;
|
|
5
|
+
labels: SearchResultsPaginationLabels;
|
|
6
|
+
};
|
|
7
|
+
export type PaginationPageSize = {
|
|
8
|
+
sizes: number[];
|
|
9
|
+
selectedSize: number;
|
|
10
|
+
};
|
|
11
|
+
export type PaginationPageSelect = {
|
|
12
|
+
count: number;
|
|
13
|
+
selectedPage: number;
|
|
14
|
+
display: number;
|
|
15
|
+
displayMobile: number;
|
|
16
|
+
};
|
|
17
|
+
export type PaginationDisplay = {
|
|
18
|
+
pageSize: boolean;
|
|
19
|
+
pageSelect: boolean;
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type RoutingBehavior = 'direct-link' | 'event';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DocumentElement } from '../DocumentElement';
|
|
2
|
+
import { SearchResultsProductCardOptions } from './SearchResultsProductCardOptions';
|
|
3
|
+
export type SearchResultsAdditionalPanelOptions = Partial<SearchResultsProductCardOptions> & {
|
|
4
|
+
location: 'top' | 'bottom';
|
|
5
|
+
queryKey: string;
|
|
6
|
+
initialCountLimit: number;
|
|
7
|
+
totalCountLimit: number;
|
|
8
|
+
links?: {
|
|
9
|
+
details: string;
|
|
10
|
+
};
|
|
11
|
+
labels: {
|
|
12
|
+
showMore: string;
|
|
13
|
+
showLess: string;
|
|
14
|
+
};
|
|
15
|
+
elements: DocumentElement[];
|
|
16
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { SdkOptions } from '../General';
|
|
2
|
+
import type { CategoryFilterOptions } from '../product-list/ProductListOptions';
|
|
3
|
+
import type { SearchResultsAdditionalPanelOptions } from './SearchResultsAdditionalPanelOptions';
|
|
4
|
+
import type { SearchResultsProductCardOptions } from './SearchResultsProductCardOptions';
|
|
5
|
+
import type { SearchResultsSortOptions } from './SearchResultsSort';
|
|
6
|
+
export type SearchResultsOptions = SearchResultsProductOptions & SearchResultsAdditionalPanels & {
|
|
7
|
+
containerSelector: string;
|
|
8
|
+
breadcrumbs: SearchResultsBreadcrumb[];
|
|
9
|
+
classMap?: Record<string, string>;
|
|
10
|
+
disallowEmptyQuery?: boolean;
|
|
11
|
+
callbacks?: SearchResultEventCallbacks;
|
|
12
|
+
categories?: CategoryFilterOptions;
|
|
13
|
+
dynamicData?: DynamicData;
|
|
14
|
+
};
|
|
15
|
+
export type SearchTitlePosition = 'page-top' | 'search-results-top';
|
|
16
|
+
export type SearchResultsDidYouMeanLabels = {
|
|
17
|
+
noResultsSuggestion: string;
|
|
18
|
+
didYouMean: string;
|
|
19
|
+
};
|
|
20
|
+
export type SearchResultsSimilarQueriesLabels = {
|
|
21
|
+
similarQuery: string;
|
|
22
|
+
similarQueries: string;
|
|
23
|
+
aiSuggestions?: string;
|
|
24
|
+
};
|
|
25
|
+
export type CallbackContext = {
|
|
26
|
+
queryKey: string;
|
|
27
|
+
hasResults?: boolean;
|
|
28
|
+
urlQueryString?: string;
|
|
29
|
+
productId?: string;
|
|
30
|
+
};
|
|
31
|
+
export type SearchResultEventCallbacks = {
|
|
32
|
+
onSearchResults?: (context: CallbackContext) => unknown;
|
|
33
|
+
onAdditionalPanelResults?: (context: CallbackContext) => unknown;
|
|
34
|
+
onCategoryFilterResults?: (context: CallbackContext) => unknown;
|
|
35
|
+
onProductClick?: (context: CallbackContext) => unknown;
|
|
36
|
+
onUrlQueryChange?: (context: CallbackContext) => unknown;
|
|
37
|
+
onMounted?: () => unknown;
|
|
38
|
+
};
|
|
39
|
+
export type SearchResultsOptionLabels = SearchResultsPaginationLabels & SearchResultsDidYouMeanLabels & SearchResultsSimilarQueriesLabels & {
|
|
40
|
+
sortBy: string;
|
|
41
|
+
currency: string;
|
|
42
|
+
priceSeparator?: string;
|
|
43
|
+
searchResults?: string;
|
|
44
|
+
itemCount: string;
|
|
45
|
+
emptyResults: string;
|
|
46
|
+
mobileFilterButton: string;
|
|
47
|
+
htmlTitleTemplate: string;
|
|
48
|
+
outOfStock?: string;
|
|
49
|
+
noItemsInPage?: string;
|
|
50
|
+
backToFirstPage?: string;
|
|
51
|
+
};
|
|
52
|
+
export type SearchResultsAdditionalPanels = {
|
|
53
|
+
additionalPanels?: SearchResultsAdditionalPanelOptions[];
|
|
54
|
+
};
|
|
55
|
+
export type SearchResultsProductOptions = SearchResultsProductCardOptions & SearchResultsAdditionalPanels & {
|
|
56
|
+
grid: ProductGrid;
|
|
57
|
+
options: SdkOptions;
|
|
58
|
+
queryKey: string;
|
|
59
|
+
pagination: SearchResultsPagination;
|
|
60
|
+
sort: SearchResultsSortOptions[];
|
|
61
|
+
filters?: SearchResultsFilterOptions;
|
|
62
|
+
searchTitlePosition?: string;
|
|
63
|
+
toolbar?: {
|
|
64
|
+
layoutSelector?: boolean;
|
|
65
|
+
itemSummary?: boolean;
|
|
66
|
+
clearFilters?: boolean;
|
|
67
|
+
totalCount?: boolean;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export type ProductGrid = {
|
|
71
|
+
columns: {
|
|
72
|
+
xl: number;
|
|
73
|
+
l: number;
|
|
74
|
+
md: number;
|
|
75
|
+
sm: number;
|
|
76
|
+
xs: number;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export type SearchResultsPaginationLabels = {
|
|
80
|
+
pageSize: string;
|
|
81
|
+
showMore: string;
|
|
82
|
+
showLess?: string;
|
|
83
|
+
};
|
|
84
|
+
export type ResponsiveSearchResultPageSizes = {
|
|
85
|
+
xs: number[];
|
|
86
|
+
sm: number[];
|
|
87
|
+
md: number[];
|
|
88
|
+
l: number[];
|
|
89
|
+
xl: number[];
|
|
90
|
+
};
|
|
91
|
+
export type SearchResultPageSizes = number[] | ResponsiveSearchResultPageSizes;
|
|
92
|
+
export type SearchResultsPagination = {
|
|
93
|
+
sizeSelection: {
|
|
94
|
+
sizes: SearchResultPageSizes;
|
|
95
|
+
position: SearchResultsPaginationPosition;
|
|
96
|
+
};
|
|
97
|
+
pageSelection: {
|
|
98
|
+
position: SearchResultsPaginationPosition;
|
|
99
|
+
display: number;
|
|
100
|
+
displayMobile: number;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export type SearchResultsPaginationPosition = {
|
|
104
|
+
top: boolean;
|
|
105
|
+
bottom: boolean;
|
|
106
|
+
};
|
|
107
|
+
export type ResultCurrentFilterOptions = {
|
|
108
|
+
labels: {
|
|
109
|
+
title: string;
|
|
110
|
+
clearAll: string;
|
|
111
|
+
};
|
|
112
|
+
visibility?: {
|
|
113
|
+
mobileSidebar?: boolean;
|
|
114
|
+
mobileToolbar?: boolean;
|
|
115
|
+
desktopSidebar?: boolean;
|
|
116
|
+
desktopToolbar?: boolean;
|
|
117
|
+
};
|
|
118
|
+
mobileSidebar?: {
|
|
119
|
+
showFilterCount?: boolean;
|
|
120
|
+
activeFiltersExpanded?: boolean;
|
|
121
|
+
};
|
|
122
|
+
desktopToolbar?: {
|
|
123
|
+
activeFiltersExpanded?: boolean;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
export type FacetStyle = 'sidebar' | 'top-dropdown';
|
|
127
|
+
export type FacetFilterQuery = {
|
|
128
|
+
queryKey: string;
|
|
129
|
+
};
|
|
130
|
+
export type ResultFacetOptions = {
|
|
131
|
+
labels: {
|
|
132
|
+
title: string;
|
|
133
|
+
showAll: string;
|
|
134
|
+
showLess?: string;
|
|
135
|
+
facetFilter: string;
|
|
136
|
+
facetClear?: string;
|
|
137
|
+
};
|
|
138
|
+
promotedFacets?: string[];
|
|
139
|
+
filterable?: {
|
|
140
|
+
minValues: number;
|
|
141
|
+
};
|
|
142
|
+
hierarchy?: {
|
|
143
|
+
maxInitialLevel: number;
|
|
144
|
+
topLevelValueCountLimit?: number;
|
|
145
|
+
filterable?: boolean;
|
|
146
|
+
};
|
|
147
|
+
stats?: {
|
|
148
|
+
slider?: boolean;
|
|
149
|
+
inputs?: boolean;
|
|
150
|
+
labels?: {
|
|
151
|
+
from?: string;
|
|
152
|
+
to?: string;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
facetValueCountLimit?: number;
|
|
156
|
+
showDocumentCount?: boolean;
|
|
157
|
+
style?: {
|
|
158
|
+
type: FacetStyle;
|
|
159
|
+
};
|
|
160
|
+
exclude?: string[];
|
|
161
|
+
expand?: string[];
|
|
162
|
+
facetFilterQueries?: Record<string, FacetFilterQuery>;
|
|
163
|
+
};
|
|
164
|
+
export type SearchResultsFilterOptions = {
|
|
165
|
+
currentFilters?: ResultCurrentFilterOptions;
|
|
166
|
+
facets?: ResultFacetOptions;
|
|
167
|
+
categories?: CategoryFilterOptions;
|
|
168
|
+
};
|
|
169
|
+
export type SearchResultsBreadcrumb = {
|
|
170
|
+
label: string;
|
|
171
|
+
link?: string;
|
|
172
|
+
};
|
|
173
|
+
export type DynamicData = {
|
|
174
|
+
enabled?: boolean;
|
|
175
|
+
cache?: boolean;
|
|
176
|
+
handler?: (documentIds: string[]) => Promise<Record<'id' | string, unknown>[]>;
|
|
177
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type SearchResultsPaginationLabels = {
|
|
2
|
+
pageSize: string;
|
|
3
|
+
showMore?: string;
|
|
4
|
+
showLess?: string;
|
|
5
|
+
itemCount: string;
|
|
6
|
+
filteredItemCount?: string;
|
|
7
|
+
};
|
|
8
|
+
export type SearchResultsPagination = {
|
|
9
|
+
sizeSelection: {
|
|
10
|
+
sizes: number[];
|
|
11
|
+
position: SearchResultsPaginationPosition;
|
|
12
|
+
};
|
|
13
|
+
pageSelection: {
|
|
14
|
+
position: SearchResultsPaginationPosition;
|
|
15
|
+
display: number;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export type SearchResultsPaginationPosition = {
|
|
19
|
+
top: boolean;
|
|
20
|
+
bottom: boolean;
|
|
21
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Document } from '@getlupa/client-sdk/Types';
|
|
2
|
+
import type { DocumentElement } from '../DocumentElement';
|
|
3
|
+
import type { BadgeElement, BadgeGenerateOptions } from './BadgeOptions';
|
|
4
|
+
import type { RoutingBehavior } from './RoutingBehavior';
|
|
5
|
+
import type { SearchResultsOptionLabels } from './SearchResultsOptions';
|
|
6
|
+
export type SearchResultsProductCardOptions = {
|
|
7
|
+
labels: SearchResultsOptionLabels;
|
|
8
|
+
routingBehavior?: RoutingBehavior;
|
|
9
|
+
isInStock?: (doc: Document) => boolean;
|
|
10
|
+
badges?: SearchResultBadgeOptions;
|
|
11
|
+
links?: {
|
|
12
|
+
details: string;
|
|
13
|
+
};
|
|
14
|
+
elements: DocumentElement[];
|
|
15
|
+
queryKey: string;
|
|
16
|
+
idKey?: string;
|
|
17
|
+
titleKey?: string;
|
|
18
|
+
};
|
|
19
|
+
export type SearchResultBadgeOptions = {
|
|
20
|
+
anchor: AnchorPosition;
|
|
21
|
+
elements: BadgeElement[];
|
|
22
|
+
generate?: BadgeGenerateOptions;
|
|
23
|
+
};
|
|
24
|
+
export type AnchorPosition = 'tr' | 'tl';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SortDirection } from '../General';
|
|
2
|
+
export type SearchResultsSortOptions = {
|
|
3
|
+
key: string;
|
|
4
|
+
label: string;
|
|
5
|
+
config: Record<string, SortDirection>[];
|
|
6
|
+
default?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type SortOptions = {
|
|
9
|
+
label: string;
|
|
10
|
+
options: SearchResultsSortOptions[];
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const debounce: (func: (...args: any[]) => any, timeout?: number) => (...args: any[]) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setDocumentTitle: (template: string, textToInsert?: string) => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HierarchyFacetAction, RangeFacetAction, TermFacetAction } from '../types/search-results/FacetAction';
|
|
2
|
+
import type { FilterType } from '../types/search-results/Filters';
|
|
3
|
+
import type { FilterGroup } from '@getlupa/client-sdk/Types';
|
|
4
|
+
type AppendParams = ({ params, paramsToRemove, encode }: {
|
|
5
|
+
params: {
|
|
6
|
+
name: string;
|
|
7
|
+
value: string | string[];
|
|
8
|
+
}[];
|
|
9
|
+
paramsToRemove?: string[];
|
|
10
|
+
encode?: boolean;
|
|
11
|
+
}) => unknown;
|
|
12
|
+
export declare const getFacetKey: (key: string, type: FilterType) => string;
|
|
13
|
+
export declare const getFacetParam: (key: string, value: string[] | string, type?: string) => {
|
|
14
|
+
name: string;
|
|
15
|
+
value: string[] | string;
|
|
16
|
+
};
|
|
17
|
+
export declare const toggleTermFilter: (appendParams: AppendParams, facetAction: TermFacetAction, currentFilters?: FilterGroup) => void;
|
|
18
|
+
export declare const toggleHierarchyFilter: (appendParams: AppendParams, facetAction: HierarchyFacetAction, currentFilters?: FilterGroup, removeAllLevels?: boolean) => void;
|
|
19
|
+
export declare const toggleRangeFilter: (appendParams: AppendParams, facetAction: RangeFacetAction, currentFilters?: FilterGroup) => void;
|
|
20
|
+
export declare const toggleTermParam: (params?: string[], param?: string) => string[];
|
|
21
|
+
export declare const toggleLastPram: (params?: string[], param?: string) => string[];
|
|
22
|
+
export declare const toggleHierarchyParam: (params?: string[], param?: string, removeAllLevels?: boolean) => string[];
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LabeledFilter, UnfoldedFilter } from '../types/search-results/Filters';
|
|
2
|
+
import type { FacetResult, FilterGroup, FilterGroupItemTypeRange, HierarchyTree } from '@getlupa/client-sdk/Types';
|
|
3
|
+
export declare const formatRange: (filter: FilterGroupItemTypeRange) => string;
|
|
4
|
+
export declare const unfoldFilters: (filters?: FilterGroup) => UnfoldedFilter[];
|
|
5
|
+
export declare const getLabeledFilters: (filters: UnfoldedFilter[], facets?: FacetResult[]) => LabeledFilter[];
|
|
6
|
+
export declare const isFacetKey: (key: string) => boolean;
|
|
7
|
+
export declare const isArrayKey: (key: string) => boolean;
|
|
8
|
+
export declare const getMostSpecificHierarchyTerms: (terms: string[]) => string[];
|
|
9
|
+
export declare const recursiveFilter: (items: HierarchyTree[], query?: string) => HierarchyTree[];
|
|
10
|
+
export declare const recursiveFilterItem: (item: HierarchyTree, query?: string) => HierarchyTree | undefined;
|
|
11
|
+
export declare const rangeFilterToString: (rangeFilter: FilterGroupItemTypeRange, separator?: string) => string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { InputSuggestionFacet } from '../types/search-box/Common';
|
|
2
|
+
export declare const generateLink: (linkPattern: string, document: Record<string, unknown>) => string;
|
|
3
|
+
export declare const generateResultLink: (link: string, searchText?: string, facet?: InputSuggestionFacet) => string;
|
|
4
|
+
export declare const getPathName: (resultPageLink: string) => string;
|
|
5
|
+
export declare const getRelativePath: (link: string) => string;
|
|
6
|
+
export declare const linksMatch: (link1?: string, link2?: string) => boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { QueryParams } from '../types/search-results/QueryParams';
|
|
2
|
+
export declare const parseParams: (searchParams?: URLSearchParams) => QueryParams;
|
|
3
|
+
export declare const appendParam: (url: URL, { name, value }: {
|
|
4
|
+
name: string;
|
|
5
|
+
value: string | string[];
|
|
6
|
+
}, encode?: boolean) => void;
|
|
7
|
+
export declare const getRemovableParams: (url: URL, paramsToRemove?: 'all' | string[]) => string[] | undefined;
|
|
8
|
+
export declare const removeParams: (url: URL, params?: string[]) => void;
|
|
9
|
+
export declare const encodeParam: (param: string) => string;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const pick: <T extends Record<string, unknown>, U extends keyof T>(obj: T, keys: U[]) => Pick<T, U>;
|
|
2
|
+
export declare const getHint: (suggestion: string, inputValue: string) => string;
|
|
3
|
+
export declare const reverseKeyValue: (obj: Record<string, string>) => Record<string, string>;
|
|
4
|
+
export declare const pickClosestNumber: (numbers: number[], closestTo: number) => number;
|
|
5
|
+
export declare const getPageCount: (total: number, limit: number) => number;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { QueryParams } from '../types/search-results/QueryParams';
|
|
2
|
+
import type { SearchResultsSortOptions } from '../types/search-results/SearchResultsSort';
|
|
3
|
+
import type { FilterGroup, PublicQuery } from '@getlupa/client-sdk/Types';
|
|
4
|
+
export declare const createPublicQuery: (queryParams: QueryParams, sortOptions?: SearchResultsSortOptions[], defaultPageSize?: number) => PublicQuery;
|
|
5
|
+
export declare const getPublicQuery: (publicQuery: PublicQuery, initialFilters: FilterGroup, isProductList: boolean) => PublicQuery;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { InputSuggestionFacet } from '../types/search-box/Common';
|
|
2
|
+
import type { RoutingBehavior } from '..';
|
|
3
|
+
export declare const emitRoutingEvent: (url: string) => void;
|
|
4
|
+
export declare const handleRoutingEvent: (link: string, event?: Event, hasEventRouting?: boolean) => void;
|
|
5
|
+
export declare const redirectToResultsPage: (link: string, searchText: string, facet?: InputSuggestionFacet, routingBehavior?: RoutingBehavior) => void;
|
|
6
|
+
export declare const getPageUrl: (pathnameOverride?: string) => URL;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Document } from '@getlupa/client-sdk/Types';
|
|
2
|
+
export declare const getNormalizedString: (str?: string | number) => string;
|
|
3
|
+
export declare const capitalize: (str?: string) => string;
|
|
4
|
+
export declare const addParamsToLabel: (label: string, ...params: unknown[]) => string;
|
|
5
|
+
export declare const getRandomString: (length: number) => string;
|
|
6
|
+
export declare const getDisplayValue: (value?: string | number) => string;
|
|
7
|
+
export declare const getProductKey: (index: string, product: Document, idKey: string | undefined) => string;
|
|
8
|
+
export declare const normalizeFloat: (value?: string) => number;
|
|
9
|
+
export declare const escapeHtml: (value?: string) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TrackingOptions } from '../types/General';
|
|
2
|
+
import type { TrackableEventData } from '../types/search-box/Common';
|
|
3
|
+
import type { Options } from '@getlupa/client-sdk/Types';
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
ga: any;
|
|
7
|
+
dataLayer: any;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const initTracking: (options: TrackingOptions) => void;
|
|
11
|
+
export declare const getLupaTrackingContext: () => {
|
|
12
|
+
userId?: string;
|
|
13
|
+
sessionId?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const track: (queryKey?: string, data?: TrackableEventData, options?: Options) => void;
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--lupa-available-height: 100%}#lupa-search-box-panel{position:absolute;width:100%;height:auto;border:1px solid #d8d8d8;background:#fff;box-shadow:0px 4px 6px rgba(0,0,0,.25);z-index:5000;border-radius:0;font-family:"Roboto",sans-serif;box-sizing:border-box}#lupa-search-box-panel:empty{display:none}@media(max-width: 767px){#lupa-search-box-panel{max-height:var(--lupa-available-height);overflow-y:auto}}.lupa-main-panel{display:grid;grid-template:"suggestions docs";grid-template-columns:minmax(50px, 35%) minmax(250px, 1fr)}@media(max-width: 767px){.lupa-main-panel{display:block}}.lupa-panel-suggestion-index{grid-area:left;word-break:break-word}@media(min-width: 767px){.lupa-panel-suggestion-index{border-right:1px solid #d8d8d8}}.lupa-panel-document-index{grid-area:right;word-break:break-word}.lupa-more-results{cursor:pointer;border-top:1px solid #d8d8d8;padding:5px 10px;color:#161616;background-color:#fff;font-size:14px;line-height:24px}.lupa-more-results:hover{background-color:rgba(0,0,0,.05);color:#3c53f4}#lupa-search-box-panel{display:flex;justify-content:space-between;flex-direction:column}.lupa-more-results{text-align:center}#lupa-search-box{width:100%}.lupa-search-box-wrapper{position:relative}.lupa-suggestion{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;color:#161616;background-color:#fff;padding:4px 20px;font-size:16px;line-height:24px}.lupa-suggestion strong{color:#161616}.lupa-suggestion-value{margin-right:7px}.lupa-suggestion-facet{font-size:13px}.lupa-suggestion-facet-label{margin-right:2px}.lupa-suggestion-facet-value{font-weight:bold}.lupa-suggestion-highlighted,.lupa-suggestion:hover{cursor:pointer;color:#3c53f4;background-color:rgba(0,0,0,.05)}.lupa-suggestion-highlighted strong,.lupa-suggestion:hover strong{color:#3c53f4}.lupa-suggestion:hover{text-decoration:underline}.lupa-search-box-input-field{position:relative !important;background:rgba(0,0,0,0) !important}.lupa-search-box-input-field,.lupa-hint{color:#161616;height:48px;padding:0 16px;line-height:1.5;font-size:16px;font-family:"Roboto",sans-serif;width:100%}.lupa-search-box-input-field{border:1px solid #d8d8d8;color:#161616}.lupa-hint{opacity:.5;position:absolute !important;pointer-events:none;border:1px solid rgba(0,0,0,0)}.lupa-input-clear{display:none}.lupa-search-box-history-item{cursor:pointer}.lupa-search-box-history-item-content{display:flex;justify-content:space-between}.lupa-search-box-history-item-text{width:100%;display:flex;align-items:center;line-height:24px;font-size:16px;padding:4px 20px;color:#161616}.lupa-search-box-history-item-text:hover,.lupa-search-box-history-item-text.lupa-search-box-history-item-highlighted{background-color:rgba(0,0,0,.05);color:#161616}.lupa-search-box-history-item-text:hover{text-decoration:underline}.lupa-search-box-history-item-clear{display:flex;align-items:center;padding:4px 20px;color:#161616;font-size:24px}.lupa-search-box-history-item-clear:hover{color:#161616;background-color:rgba(0,0,0,.05)}.lupa-search-box-history-clear-all{text-align:center;cursor:pointer;border-top:1px solid #d8d8d8;padding:4px 20px;line-height:24px;font-size:14px;color:#161616}.lupa-search-box-history-clear-all:hover{background-color:rgba(0,0,0,.05);color:#161616}.lupa-search-box-product{padding:10px;font-size:14px;display:flex;cursor:pointer;text-decoration:inherit;color:inherit}.lupa-search-box-product:hover,.lupa-search-box-product.lupa-search-box-product-highlighted{text-decoration:none;background-color:rgba(0,0,0,.05)}.lupa-search-box-product:hover .lupa-search-box-product-title,.lupa-search-box-product.lupa-search-box-product-highlighted .lupa-search-box-product-title{color:#161616}.lupa-search-box-product:hover .lupa-search-box-product-custom,.lupa-search-box-product.lupa-search-box-product-highlighted .lupa-search-box-product-custom{color:#161616}.lupa-search-box-product:hover .lupa-search-box-product-price,.lupa-search-box-product.lupa-search-box-product-highlighted .lupa-search-box-product-price{color:#161616}.lupa-search-box-product:hover .lupa-search-box-product-regular-price,.lupa-search-box-product.lupa-search-box-product-highlighted .lupa-search-box-product-regular-price{color:#161616}.lupa-search-box-product-details-section{font-family:"Roboto",sans-serif}.lupa-search-box-product-details-section{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.lupa-search-box-product-image-section{min-width:85px;flex:0 1}.lupa-search-box-image-wrapper,.lupa-search-box-image{width:70px;height:70px}.lupa-search-box-image{object-fit:contain}.lupa-search-box-product-title{font-size:16px;line-height:15px;color:#161616}.lupa-search-box-product-custom{font-size:14px;line-height:15px;color:#161616}.lupa-search-box-product-price{font-size:16px;line-height:15px;color:#3c53f4}.lupa-search-box-product-regular-price{font-size:14px;line-height:15px;color:#161616;font-weight:normal}.lupa-search-box-product-description{max-height:42px;line-height:14px;color:#161616;overflow:hidden}.lupa-search-result-facets{font-family:"Roboto",sans-serif}.lupa-facets-title{font-size:16px;line-height:1.1;font-weight:700;padding:0 0 10px;color:#161616}.lupa-search-result-facet-display{border-bottom:1px solid #d8d8d8}.lupa-search-result-facet-display:first-child{border-top:1px solid #d8d8d8}.lupa-search-result-facet-label{justify-content:space-between;display:flex;font-size:14px;line-height:21px;font-weight:700;padding:10.5px;color:#161616;cursor:pointer}.lupa-search-result-facet-label:hover{color:#3c53f4}.lupa-search-result-facet-label.open{padding:10.5px 10.5px 0}.lupa-facet-label-caret::after{content:"⌄";font-family:"Roboto",sans-serif;color:#161616;display:block;font-weight:400;overflow:hidden;text-align:center}.lupa-facet-label-caret.open::after{transform:rotate(180deg)}.lupa-facet-content{padding:5px 10px 20px}.lupa-facet-term{padding:4px 5px;margin:16px 0 0}.lupa-term-checkbox-label{width:100%;padding-left:8px;display:flex;justify-content:space-between;align-items:center}.lupa-facet-term{cursor:pointer;display:flex;align-items:center;font-size:14px;color:#161616}.lupa-facet-term:hover{background:rgba(0,0,0,.05)}.lupa-facet-term.checked{font-weight:bold}.lupa-term-count{color:#161616}.lupa-term-checkbox{display:inline-block;height:18px;width:18px;box-sizing:border-box;border:2px solid #3c53f4;border-radius:0px;content:"";display:flex;justify-content:center;align-items:center}.lupa-term-checkbox.checked::after{border:3px solid #3c53f4;border-radius:0px;display:inline-block;content:""}.lupa-show-more-facet-results{justify-content:center}.lupa-term-filter{width:100%;padding:8px;box-sizing:border-box;border:1px solid #d8d8d8}.lupa-show-more-facet-results{color:#161616;font-size:14px}.lupa-show-more-facet-results:hover{color:#161616}.lupa-stats-facet-summary{text-align:center;font-size:14px}.lupa-stats-slider-wrapper{margin:10px 0 0;padding:0 8px}.lupa-stats-slider-wrapper .vue-slider-rail{background-color:rgba(60,83,244,.3)}.lupa-stats-slider-wrapper .vue-slider-process{background-color:#3c53f4}.lupa-stats-slider-wrapper .vue-slider-dot{background:#3c53f4;border-radius:50%;border:0px solid #3c53f4;z-index:3;cursor:pointer}.lupa-stats-slider-wrapper .vue-slider-dot:hover{background:#3c53f4}.lupa-stats-range-label{font-size:12px;margin:0 0 5px}.lupa-stats-facet-summary-input{display:flex;align-items:center;justify-content:center}.lupa-stats-facet-summary-input input{width:100%;padding:8px;box-sizing:border-box;border:1px solid #d8d8d8}.lupa-stats-facet-summary-input .lupa-stats-from,.lupa-stats-facet-summary-input .lupa-stats-to{display:flex;align-items:center}.lupa-stats-facet-summary-input .lupa-stats-separator{margin:0 10px}.lupa-stats-facet-summary-input span{padding:0 5px}.lupa-search-result-facet-list.lupa-top-dropdown{display:flex;flex-wrap:wrap}.lupa-search-result-facet-list.lupa-top-dropdown .lupa-search-result-facet-display{margin:0 10px 0 0;border-bottom:none;border-top:none}.lupa-search-result-facet-list.lupa-top-dropdown .lupa-facet-content{position:absolute;background:#fff;z-index:10;border:1px solid #d8d8d8;min-width:220px}.lupa-search-result-facet-list.lupa-top-dropdown .lupa-terms-list{overflow-y:auto;max-height:300px;margin:2px 0 0}.lupa-search-result-facet-list.lupa-top-dropdown .lupa-search-result-facet-label{border:1px solid #d8d8d8}.lupa-search-result-facet-list.lupa-top-dropdown .lupa-search-result-facet-label.lupa-has-filter{border-width:2px}.lupa-search-result-facet-list.lupa-top-dropdown .lupa-single-facet-clear{cursor:pointer;text-align:center;margin:3px 0 0;padding:5px 0 3px;font-size:5px 0 3px;border-top:1px solid #d8d8d8}.lupa-search-result-current-filters{font-family:"Roboto",sans-serif}.lupa-current-filter-title{display:flex;align-items:center;justify-content:space-between;font-size:16px;line-height:1.1;font-weight:700;padding:0;color:#161616}.lupa-current-filter-list{margin:0;padding:0 10px 5px}.lupa-search-result-current-filters{margin:0 0 25px}.lupa-clear-all-filters{cursor:pointer;color:#0c26d7;padding:0 10.5px;margin:0 0 31.5px;font-size:14px}.lupa-clear-all-filters:hover{color:#091da7}.lupa-search-result-filter-value{display:flex;align-items:center;flex-wrap:wrap;margin:10.5px 0;font-size:14px}.lupa-current-filter-action{padding:0 5px 0 0;font-size:17px;color:#3c53f4;cursor:pointer}.lupa-current-filter-action:hover{color:#3c53f4}.lupa-current-filter-label,.lupa-current-filter-value{margin:0 0 0 5px}.lupa-current-filter-label{color:#161616}.lupa-current-filter-value{color:#3c53f4}.lupa-filter-title-caret::after{content:"⌄";font-family:"Roboto",sans-serif;color:#161616;font-size:14px;display:block;font-weight:400;overflow:hidden;text-align:center}.lupa-filter-title-caret.open::after{transform:rotate(180deg)}.lupa-filter-count{font-size:14px;color:#161616}.lupa-toolbar-filters,.lupa-toolbar-filters-desktop{margin-right:12px}.lupa-toolbar-filters .filter-values,.lupa-toolbar-filters-desktop .filter-values{display:flex}.lupa-result-page-title{font-size:16px;margin:0 0 38px;font-family:"Roboto",sans-serif}.lupa-search-result-filters{padding:0 4.6% 0 0}#lupa-search-results,.top-layout-wrapper{width:100%;height:100%;display:flex;flex-direction:row;justify-content:flex-start}.search-content{width:100%}.lupa-search-result-filters{flex:25%;flex-grow:1;flex-shrink:0;box-sizing:border-box}#lupa-search-results-products{position:relative;padding:0 0 0 1.6%;width:100%}.lupa-products{display:flex;align-self:flex-start;flex-wrap:wrap;margin:0 0 31.5px -16px}.lupa-loader{background-color:#fff;display:flex;height:calc(100% - 0px);opacity:.5;position:absolute;z-index:555}.lupa-search-result-product-card{box-sizing:border-box}#lupa-search-results-did-you-mean{font-family:"Roboto",sans-serif}.lupa-suggested-search-text{font-weight:bold}.lupa-highlighted-search-text{font-weight:bold;font-style:italic}#lupa-search-results-did-you-mean{margin-bottom:10px}.lupa-did-you-mean{text-decoration:none}.lupa-did-you-mean:hover{text-decoration:underline;cursor:pointer}#lupa-select{position:relative;font-family:"Roboto",sans-serif;color:#161616;text-indent:.01em}.lupa-select-dropdown{cursor:pointer;padding:20px 25px 4px 8px;font-family:"Roboto",sans-serif;background:#fff;background-clip:padding-box;border:1px solid #d8d8d8;border-radius:0;font-size:14px;height:48px;line-height:1.5;vertical-align:baseline;box-sizing:border-box;appearance:none}.lupa-select-dropdown:focus{outline:none;box-shadow:0 0 3px 1px #6c7ef7}.lupa-select-label{font-family:"Roboto",sans-serif;font-size:12px;line-height:1;position:absolute;pointer-events:none;top:8px;left:8px}.lupa-search-results-summary{display:flex;align-items:center}#lupa-search-results-toolbar{display:flex;flex-direction:row;justify-content:space-between;margin:0 0 40px}.lupa-toolbar-left{display:flex}.lupa-toolbar-right{display:flex;flex-direction:row}#lupa-search-results-page-select{display:flex;flex-direction:row;align-items:center}#lupa-search-results-layout-selection{display:flex;flex-direction:row;align-items:center}#lupa-search-results-layout-selection div{margin:0 16px 0 0}.lupa-search-results-summary{color:#161616;font-family:"Roboto",sans-serif;font-size:14px}#lupa-search-results-page-size{margin:0}#lupa-search-results-page-size .lupa-select-dropdown{width:125px}.lupa-search-results-sort{margin:0 0 0 8px}.lupa-filter-clear{cursor:pointer}#lupa-search-results-page-select{font-family:"Roboto",sans-serif}.lupa-page-number-separator{margin:0 12px 0 0}.lupa-page-number{cursor:pointer;color:#3c53f4;font-size:12px;padding:0 5.25px;margin:0 12px 0 0}.lupa-page-number:hover{color:#161616}.lupa-page-number.lupa-page-number-selected{color:#161616;font-weight:700}.lupa-page-arrow{cursor:pointer;font-weight:700;margin:0 12px 0 0;padding:0 8px}.lupa-page-arrow:before{line-height:31.5px;color:#161616;content:"";font-family:"Roboto",sans-serif;font-size:11px}.lupa-page-arrow:hover:before{color:#3c53f4}.lupa-search-result-product-card{height:auto;min-height:250px;border:1px solid #d8d8d8;padding:12px;margin:0}.lupa-out-of-stock{opacity:.5}.lupa-search-result-product-contents{height:100%;display:flex;flex-direction:column;font-family:"Roboto",sans-serif;font-size:16px}.lupa-search-result-product-contents-list{flex-direction:row}.lupa-search-result-product-details-section{display:flex;flex-direction:column;justify-content:space-between;height:100%}.lupa-search-results-image-wrapper{padding-bottom:125%;display:block;height:0;overflow:hidden;position:relative;z-index:1;display:flex;justify-content:center}.lupa-search-results-image{width:100%;height:100%;object-fit:contain;max-width:240px;max-height:195px;margin:auto;position:absolute}.lupa-search-result-product-image-section{cursor:pointer;border:none;padding:12px 8px;margin:0}.lupa-search-results-product-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;font-size:16px;margin:0 0 12px;line-height:21px}.lupa-search-results-product-title-text{font-weight:bold;color:#161616}.lupa-search-results-product-title-text.lupa-title-link{text-decoration:none;color:#161616}.lupa-search-results-product-title-text.lupa-title-link:hover{text-decoration:underline;color:#3c53f4}.lupa-search-results-product-regular-price{font-size:16px;font-weight:700;padding:10px 8px 0 5px}#lupa-search-results-rating{display:flex;flex-direction:row;align-items:center;width:auto;margin:0 0 15.75px}.lupa-ratings{display:flex;flex-direction:row;align-items:center;width:auto}.lupa-ratings-base,.lupa-rating-wrapper{display:flex;width:90px}.lupa-rating-wrapper{position:absolute}.lupa-ratings-highlighted{display:flex;overflow:hidden}.lupa-total-ratings{color:#161616 !important;text-decoration:none}.lupa-total-ratings:hover{color:#3c53f4 !important;text-decoration:underline !important}.lupa-search-result-product-contents-list .lupa-search-result-product-card{min-height:50px}.lupa-search-result-product-contents-list .lupa-search-results-image{width:240px;height:195px;object-fit:contain;margin:auto;position:relative}.lupa-search-result-product-contents-list .lupa-search-result-product-details-section{width:100%;padding:15px}.lupa-search-result-product-contents-list .lupa-search-results-image{max-width:120px;max-height:97.5px}.lupa-search-result-product-contents-list .lupa-search-results-product-addtocart{order:3;margin:0 -16px 0;position:static}.lupa-search-result-product-contents-list .lupa-search-results-product-addtocart button{padding:8px 32px}.lupa-search-results-product-description{max-height:200px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.lupa-empty-results{text-align:center;width:100%;font-size:14px;font-family:"Roboto",sans-serif;color:#161616}.lupa-empty-results .lupa-empty-page-action{cursor:pointer;text-decoration:underline}.lupa-mobile-filter-sidebar{position:fixed;width:100%;height:var(--lupa-full-height);left:0;top:0;bottom:0;z-index:555;background:rgba(0,0,0,0);display:flex}.lupa-mobile-filter-sidebar .lupa-mobile-sidebar-content{height:var(--lupa-full-height);width:100%;z-index:555;background:#fff}.lupa-mobile-filter-sidebar .lupa-sidebar-close{background:rgba(0,0,0,.6);height:var(--lupa-full-height);width:30px}.lupa-sidebar-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 13.5px 0 0;border-bottom:1px solid #d8d8d8}.lupa-sidebar-title{margin-left:15px;font-weight:700;font-size:16px;font-family:"Roboto",sans-serif;color:#161616}.lupa-sidebar-filter-options .lupa-facets-title{display:none}.lupa-filter-toggle-mobile:after{font-size:16px;color:#6c7ef7;content:"✖";line-height:inherit;font-family:"Roboto",sans-serif;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;text-align:center}.lupa-sidebar-filter-options{overflow-y:scroll;height:calc(100% - 48px)}#lupa-search-results-toolbar.lupa-toolbar-mobile{display:none}.lupa-category-top-mobile-filters{display:none}.lupa-filters-mobile{display:none}.lupa-mobile-toggle{font-family:"Roboto",sans-serif;font-size:14px;color:#6c7ef7;width:208px;border-radius:0;display:none;padding:15px 0;border:1px solid #d8d8d8;line-height:16px;text-align:center;z-index:2}@media(max-width: 767px){.lupa-mobile-toggle{display:block}.lupa-category-top-mobile-filters{display:block}.lupa-filters-mobile{display:block;border-top:1px solid #d8d8d8}.lupa-filters-mobile.lupa-search-result-current-filters.expandable{padding:15px 0;margin:-20px 0 20px}#lupa-search-results-layout-selection{display:none}.lupa-search-results-summary{display:none}#lupa-search-results-page-size{display:none}#lupa-search-results-toolbar.lupa-toolbar-top{display:none}#lupa-search-results-toolbar.lupa-toolbar-mobile{display:flex}.lupa-toolbar-bottom .lupa-toolbar-right{display:none}.lupa-toolbar-mobile .lupa-toolbar-left{display:none}#lupa-search-results-toolbar{justify-content:center}#lupa-search-results-rating{flex-direction:column;align-items:normal}#lupa-search-results-rating .lupa-total-ratings{margin-left:0;margin-top:5px}.lupa-search-result-filters{display:none}.lupa-mobile-filter-sidebar .lupa-search-result-filters{display:flex;flex-direction:column}#lupa-search-results-products{padding:0}.lupa-select-dropdown{width:208px}.lupa-facets-title{padding:16px}.lupa-search-result-current-filters.expandable{padding:16px;border-bottom:1px solid #d8d8d8;margin:0}.lupa-clear-all-filters{margin:0}#lupa-search-results-did-you-mean{margin-bottom:10px}}@media(max-width: 479px){.lupa-mobile-toggle{width:139px}.lupa-select-dropdown{width:139px}}@media(max-width: 350px){.lupa-mobile-toggle{width:100px}.lupa-select-dropdown{width:100px}}@media(max-width: 767px){.lupa-search-result-filters{flex:100%;padding:0}.lupa-search-result-facets{width:100%}.lupa-search-result-facet-display{padding:0 15px}}@media(max-width: 1024px){#lupa-search-results-badges>#lupa-badges{top:-16px}#lupa-search-results-badges>#lupa-badges .lupa-badge{width:32px;height:32px;font-size:11px}}#lupa-search-results-badges{position:relative}#lupa-badges{display:flex;position:absolute;font-family:"Roboto",sans-serif;top:-24px;z-index:1}#lupa-badges .tl{left:-10px}#lupa-badges .tr{right:-10px}.lupa-badge{width:48px;height:48px;font-size:14px;margin:0 8px 0 0;font-weight:700;border-radius:50%}.lupa-text-badges{display:flex}.lupa-image-badges{display:flex}.lupa-image-badges img{width:100%}.lupa-text-badge{color:#fff;background:#3c53f4;display:flex;align-items:center;justify-content:center;text-align:center}#lupa-badges{flex-direction:column;top:0;pointer-events:none;z-index:1000}.lupa-discount-badge{background:#e0232f;color:#fff}.lupa-preorder-badge{background:#4b81eb;color:#fff}.lupa-generated-badges{display:flex;flex-direction:column}.lupa-dynamic-badge{cursor:pointer;pointer-events:all;display:flex;font-weight:600;font-size:14px;line-height:20px;padding:4px;margin-bottom:4px;margin-right:auto;white-space:nowrap}.lupa-dynamic-badge .lupa-badge-title{font-weight:700;letter-spacing:-0.6px;display:flex;align-items:center;justify-content:center;min-width:42px}.lupa-dynamic-badge .lupa-badge-title img{max-height:20px}.lupa-dynamic-badge .lupa-badge-full-text{display:none;margin-left:10px}.lupa-dynamic-badge:hover .lupa-badge-full-text{display:inline-block}#lupa-search-results-breadcrumbs{margin:0 0 24px;font-size:12px}@media(min-width: 767px){#lupa-search-results-breadcrumbs{max-width:1228px;box-sizing:border-box;width:100%}}@media(max-width: 767px){#lupa-search-results-breadcrumbs{display:none}}#lupa-search-results-breadcrumbs .lupa-search-results-breadcrumb-link{text-decoration:none;color:#0c26d7}#lupa-search-results-breadcrumbs .lupa-search-results-breadcrumb-link:hover{text-decoration:underline;color:#091da7}#lupa-search-results-similar-queries{margin-top:20px}.lupa-similar-queries-label{font-size:20px;font-family:"Roboto",sans-serif;font-weight:700;line-height:1.1;margin-top:0;margin-bottom:8px}.lupa-similar-query-label{margin-bottom:48px;font-weight:400;line-height:1.5;color:#4f4f4f;font-family:"Roboto",sans-serif}.lupa-similar-query-value{font-size:16px}.lupa-similar-query-link:hover{text-decoration:underline;cursor:pointer}.lupa-similar-query-crossed{text-decoration:line-through}#lupa-similar-query-text-component span{margin-right:2px;display:inline-block}.lupa-similar-query-label span{margin-right:1.5px;display:inline-block}.lupa-category-filter{padding:0;font-family:"Roboto",sans-serif;margin:0 0 25px}.lupa-category-back{padding:13px 0}.lupa-category-back a{color:#161616;font-size:16px;line-height:20px;font-weight:700;text-decoration:none !important}.lupa-category-back a:hover{color:#3c53f4}.lupa-current-category,.lupa-child-category-item{padding:10px 0 10px 25px}.lupa-current-category a,.lupa-child-category-item a{text-decoration:none !important;color:#161616;font-size:16px;line-height:16px}.lupa-current-category a:hover,.lupa-child-category-item a:hover{color:#3c53f4}.lupa-child-category-item-active,.lupa-current-category-active{color:#3c53f4}.lupa-child-category-list{padding:0 0 0 10px}.lupa-category-overview{margin:30px 0 50px}.lupa-category-title{font-weight:600;font-size:14px;margin:0 0 15px}.lupa-spinner-wrapper{width:100%;overflow:hidden}.lupa-spinner{color:#555;display:flex;justify-content:center;position:relative;width:100%;padding-top:100px;padding-right:72px}.lupa-spinner div{transform-origin:40px 40px;animation:lupa-spinner 1.2s linear infinite}.lupa-spinner div:after{content:" ";display:block;position:absolute;top:3px;left:37px;width:6px;height:18px;border-radius:20%;background:#555}.lupa-spinner div:nth-child(1){transform:rotate(0deg);animation-delay:-1.1s}.lupa-spinner div:nth-child(2){transform:rotate(30deg);animation-delay:-1s}.lupa-spinner div:nth-child(3){transform:rotate(60deg);animation-delay:-0.9s}.lupa-spinner div:nth-child(4){transform:rotate(90deg);animation-delay:-0.8s}.lupa-spinner div:nth-child(5){transform:rotate(120deg);animation-delay:-0.7s}.lupa-spinner div:nth-child(6){transform:rotate(150deg);animation-delay:-0.6s}.lupa-spinner div:nth-child(7){transform:rotate(180deg);animation-delay:-0.5s}.lupa-spinner div:nth-child(8){transform:rotate(210deg);animation-delay:-0.4s}.lupa-spinner div:nth-child(9){transform:rotate(240deg);animation-delay:-0.3s}.lupa-spinner div:nth-child(10){transform:rotate(270deg);animation-delay:-0.2s}.lupa-spinner div:nth-child(11){transform:rotate(300deg);animation-delay:-0.1s}.lupa-spinner div:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes lupa-spinner{0%{opacity:1}100%{opacity:0}}.lupa-search-result-product-card{width:100%}.lupa-search-box-product-title{font-weight:300}#lupa-search-box-input::after{direction:ltr;display:inline-block;font-family:"Material Symbols Outlined";font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;content:"";font-size:24px;position:absolute;right:16px;top:12px}.lupa-suggestion{font-weight:300}.lupa-search-box-product-details-section{justify-content:space-between}.lupa-search-box-product-regular-price{text-decoration:line-through;color:#9e9e9e}.lupa-more-results{font-size:16px;font-weight:300}#lupa-search-box-panel{box-shadow:0px 1px 1px rgba(22,22,22,.14),0px 2px 1px rgba(22,22,22,.12),0px 1px 3px rgba(22,22,22,.2);border-radius:24px;border:none;overflow:hidden}.lupa-suggestion-facet-label,.lupa-suggestion-facet-value{line-height:13px}#lupa-search-results-toolbar{margin:0 0 12px;padding-right:1.6%}#lupa-search-results-toolbar.lupa-toolbar-bottom{justify-content:center;margin:24px 0}.lupa-search-results-summary{font-weight:300;font-size:18px;line-height:15px}.lupa-search-results-summary span{color:#3c53f4;font-weight:700}.lupa-page-number{min-width:48px;min-height:48px;color:#464646;font-weight:300;font-size:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;padding:0}.lupa-page-number.lupa-page-number-selected,.lupa-page-number:hover{background:rgba(60,83,244,.08);font-weight:300}.lupa-page-arrow{font-size:0}.lupa-page-arrow::before{direction:ltr;display:inline-block;font-family:"Material Symbols Outlined";font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-size:20px;content:""}.lupa-page-arrow:first-child::before{direction:ltr;display:inline-block;font-family:"Material Symbols Outlined";font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-size:20px;content:""}#lupa-similar-query-text-component,.lupa-highlighted-search-text{color:#3c53f4}.lupa-similar-query-label{margin-bottom:18px;font-weight:300}.lupa-empty-results{font-weight:300;font-size:18px;margin-bottom:36px;color:#9e9e9e}.lupa-search-result-product-card{border-radius:4px;margin-bottom:36px;border:none}.lupa-search-result-product-contents{border:1px solid #d8d8d8;box-shadow:0px 1px 1px rgba(22,22,22,.14),0px 2px 1px rgba(22,22,22,.12),0px 1px 3px rgba(22,22,22,.2);border-radius:4px;padding:16px}.lupa-search-result-product-contents:hover{border-color:#3c53f4}.lupa-search-results-product-title-text{font-weight:300;line-height:29px}.lupa-search-results-image-wrapper{padding-bottom:100%}.lupa-discount{display:inline;font-weight:700;font-size:32px;line-height:27px;color:#3c53f4}.lupa-custom-id{opacity:.5}.lupa-custom-brand{opacity:.5;color:#3c53f4}.lupa-final{display:inline;font-weight:700;font-size:32px;line-height:27px}.lupa-regular{text-decoration:line-through;color:#9e9e9e;display:inline-block;margin-left:4px}.lupa-search-result-filters{padding-right:24px;flex:40%}.lupa-filter-title-text{margin-bottom:24px}.lupa-search-result-facet-display{border:none}.lupa-search-result-facet-display:first-child{border:none}.lupa-facet-label-text{font-weight:700;font-size:16px;line-height:24px}.lupa-facet-label-caret::after{direction:ltr;display:inline-block;font-family:"Material Symbols Outlined";font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-size:22px;content:""}.lupa-term-label{font-weight:300;font-size:16px;line-height:1.15}.lupa-stats-facet-summary{margin-top:16px;font-size:16px;font-weight:300}.lupa-current-filter-list{display:flex;flex-wrap:wrap}.lupa-search-result-current-filters{border-bottom:1px solid #d8d8d8}.lupa-search-result-filter-value{flex-direction:row-reverse;display:flex;justify-content:flex-end;background-color:#3c53f4;padding:9px;border-radius:24px;margin:0 8px 8px 0}.lupa-search-result-filter-value .lupa-current-filter-label{display:none}.lupa-search-result-filter-value .lupa-current-filter-value{color:#fff;font-weight:300;font-size:14px}.lupa-search-result-filter-value .lupa-current-filter-action{display:flex;font-size:0}.lupa-search-result-filter-value .lupa-current-filter-action::before{color:#fff;margin-left:9px;width:16px;direction:ltr;display:inline-block;font-family:"Material Symbols Outlined";font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-size:20px;content:""}.lupa-clear-all-filters{font-weight:300;font-size:16px;line-height:22px;color:#464646;display:flex;align-items:center;margin-top:16px}.lupa-clear-all-filters:before{direction:ltr;display:inline-block;font-family:"Material Symbols Outlined";font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;content:"";margin-right:10px;font-size:20px}.lupa-term-checkbox{border-radius:2px;border:2px solid #464646}.lupa-term-checkbox.checked{border-color:#3c53f4;background:#3c53f4}.lupa-term-checkbox.checked:after{border:none;border-left:2px solid #fff;border-bottom:2px solid #fff;display:inline-block;transform:rotate(-45deg);height:7px;width:12px;border-radius:0;top:-2px;content:" ";position:relative}.lupa-term-checkbox-label{font-size:16px;font-weight:300}.lupa-search-box-wrapper input{border-radius:24px}.lupa-mobile-toggle-filter-count{display:inline-flex;color:#fff;background:#3c53f4;border-radius:50%;width:20px;height:20px;justify-content:center;align-items:center}.lupa-category-top-mobile-filters .lupa-category-back{border:1px solid #d8d8d8;cursor:pointer;padding:10px 5px;margin:10px 0}.lupa-category-top-mobile-filters .lupa-category-back::before{content:"<";display:inline-block}.lupa-search-product-recommendations-wrapper{width:100%}.lupa-panel-suggestion-index{grid-area:suggestions}.lupa-panel-document-index{grid-area:docs}#lupa-search-results-products{background:#fff;padding-top:36px}.wrapper{background:#fafafa}
|
package/dist/style.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/env.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|