@getlupa/client 1.19.1 → 1.20.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.
Files changed (56) hide show
  1. package/cypress.config.ts +1 -0
  2. package/dist/App.vue.d.ts +2 -0
  3. package/dist/AppContainer.vue.d.ts +2 -0
  4. package/dist/AppMounted.vue.d.ts +2 -0
  5. package/dist/AppProductList.vue.d.ts +2 -0
  6. package/dist/AppRecommender.vue.d.ts +2 -0
  7. package/dist/components/ProductListEntry.vue.d.ts +10 -0
  8. package/dist/components/RecommendationsEntry.vue.d.ts +10 -0
  9. package/dist/components/SearchBoxEntry.vue.d.ts +10 -0
  10. package/dist/components/SearchContainerEntry.vue.d.ts +11 -0
  11. package/dist/components/SearchResultsEntry.vue.d.ts +10 -0
  12. package/dist/constants/development/recommendations.example.const.d.ts +2 -0
  13. package/dist/constants/development/recommendationsDev.const.d.ts +2 -0
  14. package/dist/constants/development/searchBoxDev.const.d.ts +30 -0
  15. package/dist/constants/development/searchBoxDev.example.const.d.ts +30 -0
  16. package/dist/constants/development/searchContainerDev.example.d.ts +2 -0
  17. package/dist/constants/development/searchProductListDev.const.d.ts +26 -0
  18. package/dist/constants/development/searchProductListDev.example.d.ts +28 -0
  19. package/dist/constants/development/searchResultsDev.const.d.ts +121 -0
  20. package/dist/constants/development/searchResultsDev.example.const.d.ts +121 -0
  21. package/dist/constants/mockData..const.d.ts +4 -0
  22. package/dist/{src/index.d.ts → index.d.ts} +1 -2
  23. package/dist/lupaChatStyle.css +1 -1
  24. package/dist/lupaSearch.iife.js +34111 -28079
  25. package/dist/lupaSearch.js +34243 -28211
  26. package/dist/lupaSearch.mjs +34243 -28211
  27. package/dist/lupaSearch.umd.js +34111 -28079
  28. package/dist/main.d.ts +1 -0
  29. package/dist/modules/pluginManager/PluginConfigurationMerger.d.ts +7 -0
  30. package/dist/{src/mounting.d.ts → mounting.d.ts} +1 -1
  31. package/dist/style.css +1 -1
  32. package/dist/{src/utils → utils}/mounting.utils.d.ts +3 -3
  33. package/dist/{src/utils → utils}/storage.utils.d.ts +2 -2
  34. package/eslint.config.js +37 -0
  35. package/package.json +30 -30
  36. package/.eslintrc.cjs +0 -15
  37. package/dist/src/components/ProductListEntry.vue.d.ts +0 -14
  38. package/dist/src/components/RecommendationsEntry.vue.d.ts +0 -14
  39. package/dist/src/components/SearchBoxEntry.vue.d.ts +0 -14
  40. package/dist/src/components/SearchContainerEntry.vue.d.ts +0 -14
  41. package/dist/src/components/SearchResultsEntry.vue.d.ts +0 -14
  42. package/dist/src/modules/pluginManager/PluginConfigurationMerger.d.ts +0 -98
  43. /package/dist/{src/constants → constants}/global.const.d.ts +0 -0
  44. /package/dist/{src/constants → constants}/queryParams.const.d.ts +0 -0
  45. /package/dist/{src/constants → constants}/searchBox.const.d.ts +0 -0
  46. /package/dist/{src/constants → constants}/searchResults.const.d.ts +0 -0
  47. /package/dist/{src/modules → modules}/pluginManager/PluginConfigurationManager.d.ts +0 -0
  48. /package/dist/{src/modules → modules}/preconfiguredContainer/SearchContainerConfigurationService.d.ts +0 -0
  49. /package/dist/{src/modules → modules}/preconfiguredContainer/configuratorUtils.d.ts +0 -0
  50. /package/dist/{src/types → types}/OptionOverrides.d.ts +0 -0
  51. /package/dist/{src/types → types}/PreconfiguredSearchContainerOptions.d.ts +0 -0
  52. /package/dist/{src/types → types}/ResolvedOptions.d.ts +0 -0
  53. /package/dist/{src/utils → utils}/document.utils.d.ts +0 -0
  54. /package/dist/{src/utils → utils}/merger.utils.d.ts +0 -0
  55. /package/dist/{src/utils → utils}/shadowDom.utils.d.ts +0 -0
  56. /package/dist/{src/utils → utils}/url.utils.d.ts +0 -0
package/cypress.config.ts CHANGED
@@ -5,6 +5,7 @@ export default defineConfig({
5
5
  // We've imported your old cypress plugins here.
6
6
  // You may want to clean this up later by importing these.
7
7
  setupNodeEvents(on, config) {
8
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
8
9
  return require("./cypress/plugins/index.js")(on, config);
9
10
  },
10
11
  },
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { ProductListOptions } from '@getlupa/vue';
2
+ type __VLS_Props = {
3
+ productListOptions: ProductListOptions;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {
6
+ fetch: () => void;
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
8
+ productList: any;
9
+ }, any>;
10
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { ProductRecommendationOptions } from '@getlupa/vue';
2
+ type __VLS_Props = {
3
+ recommendationOptions: ProductRecommendationOptions;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {
6
+ fetch: () => void;
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
8
+ productRecommendations: any;
9
+ }, any>;
10
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { SearchBoxOptions } from '@getlupa/vue';
2
+ type __VLS_Props = {
3
+ searchBoxOptions: SearchBoxOptions;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {
6
+ fetch: () => void;
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
8
+ searchBox: any;
9
+ }, any>;
10
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { SearchContainerOptions } from '@getlupa/vue';
2
+ type __VLS_Props = {
3
+ searchContainerOptions: SearchContainerOptions;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {
6
+ fetch: () => void;
7
+ reloadOptions: () => void;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
9
+ productList: any;
10
+ }, HTMLDivElement>;
11
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { SearchResultsOptions } from '@getlupa/vue';
2
+ type __VLS_Props = {
3
+ searchResultsOptions: SearchResultsOptions;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {
6
+ fetch: () => void;
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
8
+ searchResults: any;
9
+ }, any>;
10
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { ProductRecommendationOptions } from '@getlupa/vue';
2
+ export declare const RECOMMENDATIONS_OPTIONS: ProductRecommendationOptions;
@@ -0,0 +1,2 @@
1
+ import { ProductRecommendationOptions } from '@getlupa/vue';
2
+ export declare const RECOMMENDATIONS_OPTIONS: ProductRecommendationOptions;
@@ -0,0 +1,30 @@
1
+ import { SdkOptions } from '@getlupa/vue';
2
+ import { SearchBoxPanel } from '@getlupa/vue/dist/src/types/search-box/SearchBoxPanel';
3
+ export declare const SEARCH_BOX_CONFIGURATION: {
4
+ options: SdkOptions;
5
+ minInputLength: number;
6
+ showTotalCount: boolean;
7
+ inputAttributes: {
8
+ name: string;
9
+ };
10
+ debounce: number;
11
+ labels: {
12
+ placeholder: string;
13
+ noResults: string;
14
+ moreResults: string;
15
+ currency: string;
16
+ priceSeparator: string;
17
+ defaultFacetLabel: string;
18
+ close: string;
19
+ };
20
+ links: {
21
+ searchResults: string;
22
+ };
23
+ searchTitlePosition: string;
24
+ panels: SearchBoxPanel[];
25
+ history: {
26
+ labels: {
27
+ clear: string;
28
+ };
29
+ };
30
+ };
@@ -0,0 +1,30 @@
1
+ import { SdkOptions } from '@getlupa/vue';
2
+ import { SearchBoxPanel } from '@getlupa/vue/dist/src/types/search-box/SearchBoxPanel';
3
+ export declare const SEARCH_BOX_CONFIGURATION: {
4
+ options: SdkOptions;
5
+ minInputLength: number;
6
+ showTotalCount: boolean;
7
+ inputAttributes: {
8
+ name: string;
9
+ };
10
+ debounce: number;
11
+ labels: {
12
+ placeholder: string;
13
+ noResults: string;
14
+ moreResults: string;
15
+ currency: string;
16
+ priceSeparator: string;
17
+ defaultFacetLabel: string;
18
+ close: string;
19
+ };
20
+ links: {
21
+ searchResults: string;
22
+ };
23
+ searchTitlePosition: string;
24
+ panels: SearchBoxPanel[];
25
+ history: {
26
+ labels: {
27
+ clear: string;
28
+ };
29
+ };
30
+ };
@@ -0,0 +1,2 @@
1
+ import { SearchContainerOptions } from '@getlupa/vue';
2
+ export declare const SEARCH_CONAINER_CONFIGURATION: SearchContainerOptions;
@@ -0,0 +1,26 @@
1
+ export declare const PRODUCT_LIST_CONFIGURATION: {
2
+ initialFilters: {};
3
+ categories: {
4
+ queryKey: string;
5
+ routingBehavior: string;
6
+ keys: {
7
+ titleKey: string;
8
+ urlKey: string;
9
+ };
10
+ filters: {
11
+ category: string[];
12
+ };
13
+ back: {
14
+ title: string;
15
+ url: string;
16
+ };
17
+ parent: {
18
+ title: string;
19
+ url: string;
20
+ };
21
+ current: {
22
+ title: string;
23
+ description: string;
24
+ };
25
+ };
26
+ };
@@ -0,0 +1,28 @@
1
+ export declare const PRODUCT_LIST_CONFIGURATION: {
2
+ initialFilters: {
3
+ category: string[];
4
+ };
5
+ categories: {
6
+ queryKey: string;
7
+ routingBehavior: string;
8
+ keys: {
9
+ titleKey: string;
10
+ urlKey: string;
11
+ };
12
+ filters: {
13
+ category: string[];
14
+ };
15
+ back: {
16
+ title: string;
17
+ url: string;
18
+ };
19
+ parent: {
20
+ title: string;
21
+ url: string;
22
+ };
23
+ current: {
24
+ title: string;
25
+ description: string;
26
+ };
27
+ };
28
+ };
@@ -0,0 +1,121 @@
1
+ import { SdkOptions, SearchResultsSortOptions, DocumentElement } from '@getlupa/vue';
2
+ export declare const SEARCH_RESULTS_CONFIGURATION: {
3
+ options: SdkOptions;
4
+ queryKey: string;
5
+ labels: {
6
+ pageSize: string;
7
+ sortBy: string;
8
+ itemCount: string;
9
+ currency: string;
10
+ priceSeparator: string;
11
+ showMore: string;
12
+ emptyResults: string;
13
+ noItemsInPage: string;
14
+ backToFirstPage: string;
15
+ mobileFilterButton: string;
16
+ htmlTitleTemplate: string;
17
+ noResultsSuggestion: string;
18
+ didYouMean: string;
19
+ similarQuery: string;
20
+ similarQueries: string;
21
+ aiSuggestions: string;
22
+ };
23
+ toolbar: {
24
+ totalCount: boolean;
25
+ };
26
+ grid: {
27
+ columns: {
28
+ xl: number;
29
+ l: number;
30
+ md: number;
31
+ sm: number;
32
+ xs: number;
33
+ };
34
+ };
35
+ pagination: {
36
+ sizeSelection: {
37
+ position: {
38
+ top: boolean;
39
+ bottom: boolean;
40
+ };
41
+ sizes: number[];
42
+ };
43
+ pageSelection: {
44
+ position: {
45
+ top: boolean;
46
+ bottom: boolean;
47
+ };
48
+ display: number;
49
+ };
50
+ };
51
+ sort: SearchResultsSortOptions[];
52
+ filters: {
53
+ currentFilters: {
54
+ visibility: {
55
+ mobileSidebar: boolean;
56
+ mobileToolbar: boolean;
57
+ desktopToolbar: boolean;
58
+ desktopSidebar: boolean;
59
+ };
60
+ labels: {
61
+ title: string;
62
+ clearAll: string;
63
+ };
64
+ mobileSidebar: {
65
+ showFilterCount: boolean;
66
+ activeFiltersExpanded: boolean;
67
+ };
68
+ desktopToolbar: {
69
+ activeFiltersExpanded: boolean;
70
+ };
71
+ };
72
+ facets: {
73
+ labels: {
74
+ title: string;
75
+ showAll: string;
76
+ showLess: string;
77
+ facetFilter: string;
78
+ };
79
+ hierarchy: {
80
+ maxInitialLevel: number;
81
+ topLevelValueCountLimit: number;
82
+ filterable: boolean;
83
+ };
84
+ stats: {
85
+ slider: boolean;
86
+ inputs: boolean;
87
+ labels: {
88
+ from: string;
89
+ to: string;
90
+ };
91
+ };
92
+ filterable: {
93
+ minValues: number;
94
+ };
95
+ facetValueCountLimit: number;
96
+ showDocumentCount: boolean;
97
+ };
98
+ };
99
+ isInStock: (doc: any) => boolean;
100
+ customDocumentHtmlAttributes: (doc: any) => {
101
+ 'data-id': any;
102
+ 'data-name': any;
103
+ };
104
+ links: {
105
+ details: string;
106
+ };
107
+ idKey: string;
108
+ titleKey: string;
109
+ elements: DocumentElement[];
110
+ breadcrumbs: ({
111
+ label: string;
112
+ link: string;
113
+ } | {
114
+ label: string;
115
+ link?: undefined;
116
+ })[];
117
+ dynamicData: {
118
+ enabled: boolean;
119
+ handler: (ids: string[]) => Promise<void>;
120
+ };
121
+ };
@@ -0,0 +1,121 @@
1
+ import { SdkOptions, SearchResultsSortOptions, DocumentElement } from '@getlupa/vue';
2
+ export declare const SEARCH_RESULTS_CONFIGURATION: {
3
+ options: SdkOptions;
4
+ queryKey: string;
5
+ labels: {
6
+ pageSize: string;
7
+ sortBy: string;
8
+ itemCount: string;
9
+ currency: string;
10
+ priceSeparator: string;
11
+ showMore: string;
12
+ emptyResults: string;
13
+ noItemsInPage: string;
14
+ backToFirstPage: string;
15
+ mobileFilterButton: string;
16
+ htmlTitleTemplate: string;
17
+ noResultsSuggestion: string;
18
+ didYouMean: string;
19
+ similarQuery: string;
20
+ similarQueries: string;
21
+ aiSuggestions: string;
22
+ };
23
+ toolbar: {
24
+ totalCount: boolean;
25
+ };
26
+ grid: {
27
+ columns: {
28
+ xl: number;
29
+ l: number;
30
+ md: number;
31
+ sm: number;
32
+ xs: number;
33
+ };
34
+ };
35
+ pagination: {
36
+ sizeSelection: {
37
+ position: {
38
+ top: boolean;
39
+ bottom: boolean;
40
+ };
41
+ sizes: number[];
42
+ };
43
+ pageSelection: {
44
+ position: {
45
+ top: boolean;
46
+ bottom: boolean;
47
+ };
48
+ display: number;
49
+ };
50
+ };
51
+ sort: SearchResultsSortOptions[];
52
+ filters: {
53
+ currentFilters: {
54
+ visibility: {
55
+ mobileSidebar: boolean;
56
+ mobileToolbar: boolean;
57
+ desktopToolbar: boolean;
58
+ desktopSidebar: boolean;
59
+ };
60
+ labels: {
61
+ title: string;
62
+ clearAll: string;
63
+ };
64
+ mobileSidebar: {
65
+ showFilterCount: boolean;
66
+ activeFiltersExpanded: boolean;
67
+ };
68
+ desktopToolbar: {
69
+ activeFiltersExpanded: boolean;
70
+ };
71
+ };
72
+ facets: {
73
+ labels: {
74
+ title: string;
75
+ showAll: string;
76
+ showLess: string;
77
+ facetFilter: string;
78
+ };
79
+ hierarchy: {
80
+ maxInitialLevel: number;
81
+ topLevelValueCountLimit: number;
82
+ filterable: boolean;
83
+ };
84
+ stats: {
85
+ slider: boolean;
86
+ inputs: boolean;
87
+ labels: {
88
+ from: string;
89
+ to: string;
90
+ };
91
+ };
92
+ filterable: {
93
+ minValues: number;
94
+ };
95
+ facetValueCountLimit: number;
96
+ showDocumentCount: boolean;
97
+ };
98
+ };
99
+ isInStock: (doc: any) => boolean;
100
+ customDocumentHtmlAttributes: (doc: any) => {
101
+ 'data-id': any;
102
+ 'data-name': any;
103
+ };
104
+ links: {
105
+ details: string;
106
+ };
107
+ idKey: string;
108
+ titleKey: string;
109
+ elements: DocumentElement[];
110
+ breadcrumbs: ({
111
+ label: string;
112
+ link: string;
113
+ } | {
114
+ label: string;
115
+ link?: undefined;
116
+ })[];
117
+ dynamicData: {
118
+ enabled: boolean;
119
+ handler: (ids: string[]) => Promise<void>;
120
+ };
121
+ };
@@ -0,0 +1,4 @@
1
+ import { DisplaySuggestion } from '../types/search-box/Common';
2
+ import { SuggestionQueryResult } from '@getlupa/client-sdk/Types';
3
+ export declare const SuggestionsMockData: SuggestionQueryResult;
4
+ export declare const DisplaySuggestionsMockData: (input: string) => DisplaySuggestion[];
@@ -1,5 +1,4 @@
1
- import type { Environment, SdkOptions, SortDirection, TrackingOptions, DocumentElement, ImageDocumentElement, TitleDocumentElement, DescriptionDocumentElement, CustomDocumentElement, PriceElement, RegularPriceDocumentElement, RatingElement, AddToCartElement, CustomHtmlElement, SingleStarRatingElement, ProductListOptions, CategoryFilterOptions, ProductRecommendationOptions, RecommendationABTestingOptions, SearchBoxOptions, SearchContainerOptions, SearchContainerConfigOptions, SearchResultBadgeElement, BadgeGenerateSeed, BadgeGenerateOptions, BadgeOptions, RoutingBehavior, SearchResultsOptions, FacetStyle, SearchResultEventCallbacks, CallbackContext, SortCallbackContext, FacetFilterQuery, SearchResultsFilterOptions, ResultFacetOptions, DynamicData, AnchorPosition, SortOptions, SearchResultsSortOptions, ChatOptions, RedirectionOptions } from '@getlupa/vue';
2
- import { DocumentElementType, SearchBoxPanelType, BadgeType, SearchResultBadgeType } from '@getlupa/vue';
1
+ import { Environment, SdkOptions, SortDirection, TrackingOptions, DocumentElement, ImageDocumentElement, TitleDocumentElement, DescriptionDocumentElement, CustomDocumentElement, PriceElement, RegularPriceDocumentElement, RatingElement, AddToCartElement, CustomHtmlElement, SingleStarRatingElement, ProductListOptions, CategoryFilterOptions, ProductRecommendationOptions, RecommendationABTestingOptions, SearchBoxOptions, SearchContainerOptions, SearchContainerConfigOptions, SearchResultBadgeElement, BadgeGenerateSeed, BadgeGenerateOptions, BadgeOptions, RoutingBehavior, SearchResultsOptions, FacetStyle, SearchResultEventCallbacks, CallbackContext, SortCallbackContext, FacetFilterQuery, SearchResultsFilterOptions, ResultFacetOptions, DynamicData, AnchorPosition, SortOptions, SearchResultsSortOptions, ChatOptions, RedirectionOptions, DocumentElementType, SearchBoxPanelType, BadgeType, SearchResultBadgeType } from '@getlupa/vue';
3
2
  import { PreconfiguredSearchContainerOptions, SearchBoxDemoOptions, SearchDemoFields, SearchResultDemoOptions } from './types/PreconfiguredSearchContainerOptions';
4
3
  import { OptionOverrides } from './types/OptionOverrides';
5
4
  type MountOptions = {
@@ -1 +1 @@
1
- .lupa-chat-section-title{font-family:"Lato";font-weight:700;font-size:26px;margin:0;border-bottom:1px solid rgba(0,0,0,0.1019607843);padding:8px;cursor:pointer}.lupasearch-chat-input #lupa-search-box-input::after{display:none}.lupa-chat-input-container{border-bottom:1px solid rgba(0,0,0,0.1019607843)}.lupasearch-chat{max-width:1200px;margin:auto}.lupasearch-chat-content-wrapper{position:relative}.lupasearch-chat-content{position:absolute;background:#fff;box-shadow:0px 4px 6px rgba(0,0,0,.25);width:100%;overflow:auto}.lupasearch-chat-content ul{list-style:none;padding-left:0;margin:0}.chat-content-list-entry{border:1px solid rgba(0,0,0,0.1019607843);border-width:2px}.lupa-chat-section-content{display:flex}.lupa-chat-phrase-title h3{font-family:"Lato";margin:0 0 10px;font-size:24px}.lupa-chat-input-container{background:#fff;padding:20px;box-shadow:0px 4px 6px rgba(0,0,0,.25)}.lupa-chat-input-container input{font-weight:300}.lupa-chat-logo img{width:300px;height:200px;margin:auto;display:block}.lupa-chat-spinner-main{margin-bottom:40px}.lupa-chat-spinner{text-align:center}.lupa-chat-spinner .lds-ring div{border:8px solid #3c53f4;border-color:#3c53f4 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.lds-ring{display:inline-block;position:relative;width:80px;height:80px}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:8px solid #fff;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:#fff rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.lds-ring.small{width:40px;height:40px;border-width:6px}.lds-ring.small div{width:32px;height:32px;border-width:6px}.lupa-chat-spinner-message{font-family:"Lato";font-weight:300;font-size:16px;margin-top:10px;margin-bottom:15px}.lupa-chat-form-submit,.lupa-chat-form-clear{appearance:none;border:none;background:#3c53f4;color:#fff;padding:14px;margin:0;cursor:pointer;appearance:none;font-family:"Lato";font-size:16px;font-weight:700}.lupa-chat-form-clear{background:#6c7ef7;margin-left:10px}.chat-input-form{display:flex;justify-content:space-between}.chat-input-form #lupa-search-box-input{flex-grow:1;margin-right:15px}.lupa-chat-results{display:flex;overflow:hidden}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image{flex-shrink:0;width:80px;height:60px;margin-right:8px}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image-wrapper{padding-bottom:20%}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image{max-height:100px}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image-wrapper{width:80px;height:60px;height:100%;padding:0}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image-wrapper img{object-fit:cover}.lupa-search-results-image-wrapper{padding-bottom:80%}.lupa-search-results-product-title-text{font-size:16px;font-weight:300;line-height:1.3}.lupa-chat-no-results p{font-family:"Lato";font-weight:300;font-size:16px;margin-left:15px}.lupa-chat-text-response{flex-basis:50%;font-family:"Lato";font-weight:400;min-height:80px;max-height:400px;padding:20px;border-right:1px solid rgba(0,0,0,0.1019607843);border-bottom:1px solid rgba(0,0,0,0.1019607843);border-width:1px;overflow:auto}.lupa-chat-text-response::-webkit-scrollbar{width:6px}.lupa-chat-text-response::-webkit-scrollbar-track{background:#fff}.lupa-chat-text-response::-webkit-scrollbar-thumb{background:#3c53f4;border-radius:6px}.lupa-chat-text-response::-webkit-scrollbar-thumb:hover{background:#3c53f4}.lupa-chat-text-response p{margin:0}.lupa-chat-incomplete-results{opacity:.5}.lupa-chat-content-entry-wrapper{flex-basis:50%;max-height:400px;overflow:auto;border-bottom:1px solid rgba(0,0,0,0.1019607843)}.lupa-chat-content-entry-wrapper::-webkit-scrollbar{width:6px}.lupa-chat-content-entry-wrapper::-webkit-scrollbar-track{background:#fff}.lupa-chat-content-entry-wrapper::-webkit-scrollbar-thumb{background:#3c53f4;border-radius:6px}.lupa-chat-content-entry-wrapper::-webkit-scrollbar-thumb:hover{background:#3c53f4}.lupa-chat-content-entry{margin-right:5px}.lupa-chat-content-entry-phrase{border-bottom:1px solid rgba(0,0,0,0.1019607843);margin-right:5px;padding:10px}.lupa-chat-product-card-image{width:100%}.lupa-chat-product-card{width:20%}.wrapper{background:none}.lupa-chat-best-matches{font-family:"Lato";font-size:24px;padding:10px}.lupa-chat-best-matches h3{margin:0 0 10px}.lupa-chat-best-matches .lupa-chat-results{flex-wrap:wrap}
1
+ .lupa-chat-section-title{font-family:"Lato";font-weight:700;font-size:26px;margin:0;border-bottom:1px solid rgba(0,0,0,0.1019607843);padding:8px;cursor:pointer}.lupasearch-chat-input #lupa-search-box-input::after{display:none}.lupa-chat-input-container{border-bottom:1px solid rgba(0,0,0,0.1019607843)}.lupasearch-chat{max-width:1200px;margin:auto}.lupasearch-chat-content-wrapper{position:relative}.lupasearch-chat-content{position:absolute;background:#fff;box-shadow:0px 4px 6px rgba(0,0,0,.25);width:100%;overflow:auto}.lupasearch-chat-content ul{list-style:none;padding-left:0;margin:0}.chat-content-list-entry{border:1px solid rgba(0,0,0,0.1019607843);border-width:2px}.lupa-chat-section-content{display:flex}.lupa-chat-phrase-title h3{font-family:"Lato";margin:0 0 10px;font-size:24px}.lupa-chat-input-container{background:#fff;padding:20px;box-shadow:0px 4px 6px rgba(0,0,0,.25)}.lupa-chat-input-container input{font-weight:300}.lupa-chat-logo img{width:300px;height:200px;margin:auto;display:block}.lupa-chat-spinner-main{margin-bottom:40px}.lupa-chat-spinner{text-align:center}.lupa-chat-spinner .lds-ring div{border:8px solid #3c53f4;border-color:#3c53f4 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.lds-ring{display:inline-block;position:relative;width:80px;height:80px}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:8px solid #fff;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:#fff rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.lds-ring.small{width:40px;height:40px;border-width:6px}.lds-ring.small div{width:32px;height:32px;border-width:6px}.lupa-chat-spinner-message{font-family:"Lato";font-weight:300;font-size:16px;margin-top:10px;margin-bottom:15px}.lupa-chat-form-submit,.lupa-chat-form-clear{appearance:none;border:none;background:#3c53f4;color:#fff;padding:14px;margin:0;cursor:pointer;appearance:none;font-family:"Lato";font-size:16px;font-weight:700}.lupa-chat-form-clear{background:hsl(232.5,89.3203883495%,69.6078431373%);margin-left:10px}.chat-input-form{display:flex;justify-content:space-between}.chat-input-form #lupa-search-box-input{flex-grow:1;margin-right:15px}.lupa-chat-results{display:flex;overflow:hidden}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image{flex-shrink:0;width:80px;height:60px;margin-right:8px}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image-wrapper{padding-bottom:20%}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image{max-height:100px}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image-wrapper{width:80px;height:60px;height:100%;padding:0}.lupa-chat-results .lupa-chat-item.lupa-chat-product-card-image .lupa-search-results-image-wrapper img{object-fit:cover}.lupa-search-results-image-wrapper{padding-bottom:80%}.lupa-search-results-product-title-text{font-size:16px;font-weight:300;line-height:1.3}.lupa-chat-no-results p{font-family:"Lato";font-weight:300;font-size:16px;margin-left:15px}.lupa-chat-text-response{flex-basis:50%;font-family:"Lato";font-weight:400;min-height:80px;max-height:400px;padding:20px;border-right:1px solid rgba(0,0,0,0.1019607843);border-bottom:1px solid rgba(0,0,0,0.1019607843);border-width:1px;overflow:auto}.lupa-chat-text-response::-webkit-scrollbar{width:6px}.lupa-chat-text-response::-webkit-scrollbar-track{background:#fff}.lupa-chat-text-response::-webkit-scrollbar-thumb{background:#3c53f4;border-radius:6px}.lupa-chat-text-response::-webkit-scrollbar-thumb:hover{background:#3c53f4}.lupa-chat-text-response p{margin:0}.lupa-chat-incomplete-results{opacity:.5}.lupa-chat-content-entry-wrapper{flex-basis:50%;max-height:400px;overflow:auto;border-bottom:1px solid rgba(0,0,0,0.1019607843)}.lupa-chat-content-entry-wrapper::-webkit-scrollbar{width:6px}.lupa-chat-content-entry-wrapper::-webkit-scrollbar-track{background:#fff}.lupa-chat-content-entry-wrapper::-webkit-scrollbar-thumb{background:#3c53f4;border-radius:6px}.lupa-chat-content-entry-wrapper::-webkit-scrollbar-thumb:hover{background:#3c53f4}.lupa-chat-content-entry{margin-right:5px}.lupa-chat-content-entry-phrase{border-bottom:1px solid rgba(0,0,0,0.1019607843);margin-right:5px;padding:10px}.lupa-chat-product-card-image{width:100%}.lupa-chat-product-card{width:20%}.wrapper{background:none}.lupa-chat-best-matches{font-family:"Lato";font-size:24px;padding:10px}.lupa-chat-best-matches h3{margin:0 0 10px}.lupa-chat-best-matches .lupa-chat-results{flex-wrap:wrap}