@coveo/atomic 3.33.8-pre.f26e1593fa → 3.33.8-pre.f62f2d7753

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 (120) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +2 -2
  4. package/dist/atomic/components/_index.js +1 -1
  5. package/dist/atomic/components/analytics-config.js +1 -1
  6. package/dist/atomic/components/atomic-insight-history-toggle.js +2 -2
  7. package/dist/atomic/components/atomic-insight-history-toggle.js.map +1 -1
  8. package/dist/atomic/components/atomic-insight-search-box.js +29 -2
  9. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  10. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +2 -2
  11. package/dist/atomic/components/atomic-insight-user-actions-toggle.js.map +1 -1
  12. package/dist/atomic/components/atomic-search-box-recent-queries.d.ts +11 -0
  13. package/dist/atomic/components/atomic-search-box-recent-queries.js +8 -0
  14. package/dist/atomic/components/atomic-search-box-recent-queries.js.map +1 -0
  15. package/dist/atomic/components/atomic-search-box-recent-queries2.js +183 -0
  16. package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +1 -0
  17. package/dist/atomic/components/atomic-search-box.js +3 -3
  18. package/dist/atomic/components/clock.js +2 -2
  19. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +11 -18
  20. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +7 -2
  21. package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +10 -19
  22. package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +111 -0
  23. package/dist/atomic/components/components/search/index.js +1 -1
  24. package/dist/atomic/components/components/search/lazy-index.js +1 -1
  25. package/dist/atomic/components/global/environment.js +1 -1
  26. package/dist/atomic/{p-ba4bf29f.entry.js → p-6329ff94.entry.js} +2 -2
  27. package/dist/atomic/{p-7383fd32.entry.js → p-6e6d686e.entry.js} +2 -2
  28. package/dist/atomic/p-7a06a356.entry.js +2 -0
  29. package/dist/atomic/p-7a06a356.entry.js.map +1 -0
  30. package/dist/atomic/{p-02a26509.entry.js → p-9d6b988d.entry.js} +2 -2
  31. package/dist/atomic/{p-8c5cd9e9.entry.js → p-b24d432b.entry.js} +2 -2
  32. package/dist/atomic/{p-d6faddc7.js → p-b87dbae7.js} +2 -2
  33. package/dist/atomic/{p-e1cc5150.js → p-c280cd05.js} +1 -1
  34. package/dist/atomic/p-d2b14ff1.entry.js +2 -0
  35. package/dist/atomic/p-d2b14ff1.entry.js.map +1 -0
  36. package/dist/atomic/{p-49438035.entry.js → p-e5352270.entry.js} +2 -2
  37. package/dist/cjs/_loader.cjs.js +1 -1
  38. package/dist/cjs/{analytics-config-8de7a0b5.js → analytics-config-de93a689.js} +2 -2
  39. package/dist/cjs/{analytics-config-8de7a0b5.js.map → analytics-config-de93a689.js.map} +1 -1
  40. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +2 -2
  41. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js.map +1 -1
  42. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  43. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +30 -4
  44. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  45. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +2 -2
  46. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
  47. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  48. package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js +171 -0
  49. package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js.map +1 -0
  50. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  51. package/dist/cjs/atomic.cjs.js +1 -1
  52. package/dist/cjs/clock-f03ff827.js +7 -0
  53. package/dist/cjs/clock-f03ff827.js.map +1 -0
  54. package/dist/cjs/index-757bc886.js +2 -2
  55. package/dist/cjs/version.cjs.js +2 -2
  56. package/dist/esm/_loader.js +1 -1
  57. package/dist/esm/{analytics-config-1973be4e.js → analytics-config-018337bf.js} +2 -2
  58. package/dist/esm/{analytics-config-1973be4e.js.map → analytics-config-018337bf.js.map} +1 -1
  59. package/dist/esm/atomic-insight-history-toggle.entry.js +2 -2
  60. package/dist/esm/atomic-insight-history-toggle.entry.js.map +1 -1
  61. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  62. package/dist/esm/atomic-insight-search-box.entry.js +29 -3
  63. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  64. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +2 -2
  65. package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
  66. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  67. package/dist/esm/atomic-search-box-recent-queries.entry.js +167 -0
  68. package/dist/esm/atomic-search-box-recent-queries.entry.js.map +1 -0
  69. package/dist/esm/atomic-search-interface.entry.js +1 -1
  70. package/dist/esm/atomic.js +1 -1
  71. package/dist/esm/clock-add3e9a5.js +5 -0
  72. package/dist/esm/clock-add3e9a5.js.map +1 -0
  73. package/dist/esm/index-3f35faca.js +2 -2
  74. package/dist/esm/version.js +2 -2
  75. package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +1 -2
  76. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +1 -0
  77. package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +3 -3
  78. package/dist/types/components/search/{atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts → atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts} +7 -14
  79. package/dist/types/components/search/index.d.ts +1 -1
  80. package/dist/types/components/search/search-box-suggestions/{atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts → atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts} +11 -3
  81. package/dist/types/components.d.ts +14 -14
  82. package/docs/atomic-docs.json +11 -13
  83. package/package.json +3 -3
  84. package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +0 -11
  85. package/dist/atomic/components/atomic-search-box-query-suggestions.js +0 -8
  86. package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +0 -1
  87. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +0 -89
  88. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +0 -1
  89. package/dist/atomic/components/components/common/layout/layout-styles-controller.js +0 -40
  90. package/dist/atomic/components/components/common/layout/mobile-breakpoint-controller.js +0 -26
  91. package/dist/atomic/components/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.js +0 -137
  92. package/dist/atomic/components/stencil-query-suggestions.js +0 -33
  93. package/dist/atomic/components/stencil-query-suggestions.js.map +0 -1
  94. package/dist/atomic/p-26a51a77.entry.js +0 -2
  95. package/dist/atomic/p-26a51a77.entry.js.map +0 -1
  96. package/dist/atomic/p-2e9db4ca.entry.js +0 -2
  97. package/dist/atomic/p-2e9db4ca.entry.js.map +0 -1
  98. package/dist/atomic/p-af93b44c.js +0 -2
  99. package/dist/atomic/p-af93b44c.js.map +0 -1
  100. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +0 -76
  101. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +0 -1
  102. package/dist/cjs/clock-7aeb19d0.js +0 -7
  103. package/dist/cjs/clock-7aeb19d0.js.map +0 -1
  104. package/dist/cjs/stencil-query-suggestions-03268ecc.js +0 -38
  105. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +0 -1
  106. package/dist/esm/atomic-search-box-query-suggestions.entry.js +0 -72
  107. package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +0 -1
  108. package/dist/esm/clock-b1f5d7f7.js +0 -5
  109. package/dist/esm/clock-b1f5d7f7.js.map +0 -1
  110. package/dist/esm/stencil-query-suggestions-5d6a46d7.js +0 -33
  111. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +0 -1
  112. package/dist/types/components/common/layout/layout-styles-controller.d.ts +0 -22
  113. package/dist/types/components/common/layout/mobile-breakpoint-controller.d.ts +0 -18
  114. /package/dist/atomic/{p-ba4bf29f.entry.js.map → p-6329ff94.entry.js.map} +0 -0
  115. /package/dist/atomic/{p-7383fd32.entry.js.map → p-6e6d686e.entry.js.map} +0 -0
  116. /package/dist/atomic/{p-02a26509.entry.js.map → p-9d6b988d.entry.js.map} +0 -0
  117. /package/dist/atomic/{p-8c5cd9e9.entry.js.map → p-b24d432b.entry.js.map} +0 -0
  118. /package/dist/atomic/{p-d6faddc7.js.map → p-b87dbae7.js.map} +0 -0
  119. /package/dist/atomic/{p-e1cc5150.js.map → p-c280cd05.js.map} +0 -0
  120. /package/dist/atomic/{p-49438035.entry.js.map → p-e5352270.entry.js.map} +0 -0
@@ -9,7 +9,7 @@ import { A as AriaLiveRegion } from './stencil-accessibility-utils.js';
9
9
  import { o as once, r as randomID, a as spreadProperties, i as isFocusingOut } from './utils.js';
10
10
  import { b as SearchSlimIcon, d as SearchTextArea, S as SuggestionManager, a as elementHasQuery, c as SearchBoxWrapper } from './stencil-suggestion-manager.js';
11
11
  import { B as Button } from './stencil-button.js';
12
- import { d as defineCustomElement$3 } from './atomic-search-box-query-suggestions2.js';
12
+ import { d as defineCustomElement$3 } from './atomic-search-box-recent-queries2.js';
13
13
 
14
14
  const SubmitButton = ({ bindings, disabled, onClick, }) => (h("div", { part: "submit-button-wrapper", class: "mr-2 flex items-center justify-center py-2" },
15
15
  h(Button, { style: "text-primary", class: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full", part: "submit-button", ariaLabel: bindings.i18n.t('search'), onClick: () => {
@@ -474,14 +474,14 @@ function defineCustomElement$1() {
474
474
  if (typeof customElements === "undefined") {
475
475
  return;
476
476
  }
477
- const components = ["atomic-search-box", "atomic-search-box-query-suggestions", "atomic-suggestion-renderer"];
477
+ const components = ["atomic-search-box", "atomic-search-box-recent-queries", "atomic-suggestion-renderer"];
478
478
  components.forEach(tagName => { switch (tagName) {
479
479
  case "atomic-search-box":
480
480
  if (!customElements.get(tagName)) {
481
481
  customElements.define(tagName, AtomicSearchBox$1);
482
482
  }
483
483
  break;
484
- case "atomic-search-box-query-suggestions":
484
+ case "atomic-search-box-recent-queries":
485
485
  if (!customElements.get(tagName)) {
486
486
  defineCustomElement$3();
487
487
  }
@@ -1,5 +1,5 @@
1
- const Clockicon = `<svg fill="none" stroke="currentColor" stroke-linejoin="round" stroke-linecap="round" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" r="7.5"/><path d="m8.5 4.5v4"/><path d="m10.3066 10.1387-1.80932-1.5768"/></svg>`;
1
+ const Clock = `<svg fill="none" stroke="currentColor" stroke-linejoin="round" stroke-linecap="round" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" r="7.5"/><path d="m8.5 4.5v4"/><path d="m10.3066 10.1387-1.80932-1.5768"/></svg>`;
2
2
 
3
- export { Clockicon as C };
3
+ export { Clock as C };
4
4
 
5
5
  //# sourceMappingURL=clock.js.map
@@ -115,30 +115,23 @@ let AtomicCommerceBreadbox = class AtomicCommerceBreadbox extends LitElement {
115
115
  this.breadcrumbShowMoreFocus = new FocusTargetController(this, this.bindings);
116
116
  this.breadcrumbShowLessFocus = new FocusTargetController(this, this.bindings);
117
117
  }
118
- willUpdate(changedProperties) {
118
+ updated(changedProperties) {
119
+ super.updated(changedProperties);
119
120
  if (changedProperties.has('pathLimit')) {
120
121
  this.validateProps();
121
122
  }
122
- }
123
- updated() {
124
123
  this.adaptBreadcrumbs();
125
124
  }
126
125
  validateProps() {
127
- try {
128
- new Schema({
129
- pathLimit: new NumberValue({
130
- default: 3,
131
- min: 1,
132
- required: false,
133
- }),
134
- }).validate({
135
- pathLimit: this.pathLimit,
136
- });
137
- }
138
- catch (error) {
139
- this.error = error;
140
- return;
141
- }
126
+ new Schema({
127
+ pathLimit: new NumberValue({
128
+ default: 3,
129
+ min: 1,
130
+ required: false,
131
+ }),
132
+ }).validate({
133
+ pathLimit: this.pathLimit,
134
+ });
142
135
  }
143
136
  disconnectedCallback() {
144
137
  this.resizeObserver?.disconnect();
@@ -9,7 +9,6 @@ import { provide } from '@lit/context';
9
9
  import i18next from 'i18next';
10
10
  import { css, html, LitElement } from 'lit';
11
11
  import { customElement, property, state } from 'lit/decorators.js';
12
- import { MobileBreakpointController } from "../../common/layout/mobile-breakpoint-controller";
13
12
  import { booleanConverter } from "../../../converters/boolean-converter";
14
13
  import { errorGuard } from "../../../decorators/error-guard";
15
14
  import { watch } from "../../../decorators/watch";
@@ -86,7 +85,6 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
86
85
  this.urlManager.synchronize(this.fragment);
87
86
  };
88
87
  this.store = createCommerceStore(this.type);
89
- new MobileBreakpointController(this, this.store);
90
88
  const { promise, resolve } = Promise.withResolvers();
91
89
  this.i18Initialized = promise;
92
90
  this.i18n = i18next.createInstance(undefined, resolve);
@@ -94,6 +92,7 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
94
92
  connectedCallback() {
95
93
  super.connectedCallback();
96
94
  this.store.setLoadingFlag(FirstRequestExecutedFlag);
95
+ this.updateMobileBreakpoint();
97
96
  this.addEventListener('atomic/initializeComponent', this.handleInitialization);
98
97
  this.addEventListener('atomic/scrollToTop', this.scrollToTop);
99
98
  }
@@ -286,6 +285,12 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
286
285
  history.pushState(null, document.title, `#${newFragment}`);
287
286
  this.bindings.engine.logger.info(`History pushState #${newFragment}`);
288
287
  }
288
+ updateMobileBreakpoint() {
289
+ const breakpoint = this.querySelector('atomic-commerce-layout')?.mobileBreakpoint;
290
+ if (breakpoint) {
291
+ this.store.state.mobileBreakpoint = breakpoint;
292
+ }
293
+ }
289
294
  };
290
295
  AtomicCommerceInterface.styles = [
291
296
  css`:host{display:block;height:inherit;width:inherit;&>slot{height:inherit}}`,
@@ -4,12 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { LitElement } from 'lit';
7
+ import { LitElement, unsafeCSS } from 'lit';
8
8
  import { customElement, property, state } from 'lit/decorators.js';
9
- import { LayoutStylesController } from "../../common/layout/layout-styles-controller";
10
- import { watch } from "../../../decorators/watch";
11
9
  import { ChildrenUpdateCompleteMixin } from "../../../mixins/children-update-complete-mixin";
12
10
  import { LightDomMixin } from "../../../mixins/light-dom";
11
+ import { randomID } from "../../../utils/utils";
13
12
  import { DEFAULT_MOBILE_BREAKPOINT } from '../../../utils/replace-breakpoint-utils';
14
13
  import styles from './atomic-commerce-layout.tw.css';
15
14
  import { buildCommerceLayout } from './commerce-layout';
@@ -19,6 +18,8 @@ import { buildCommerceLayout } from './commerce-layout';
19
18
  * @cssprop --atomic-layout-max-search-box-input-width: The maximum width that the search box input will take.
20
19
  * @cssprop --atomic-layout-max-search-box-double-suggestions-width: The maximum width that the search box suggestions will take when displaying a double list.
21
20
  * @cssprop --atomic-layout-search-box-left-suggestions-width: The width of the left list when displaying a double list.
21
+ *
22
+ * @slot default - The default slot for the layout content.
22
23
  */
23
24
  let AtomicCommerceLayout = class AtomicCommerceLayout extends LightDomMixin(ChildrenUpdateCompleteMixin(LitElement)) {
24
25
  constructor() {
@@ -28,22 +29,15 @@ let AtomicCommerceLayout = class AtomicCommerceLayout extends LightDomMixin(Chil
28
29
  * E.g., 800px, 65rem.
29
30
  */
30
31
  this.mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;
31
- this.layoutStylesController = new LayoutStylesController(this, buildCommerceLayout, 'atomic-commerce-layout-');
32
+ }
33
+ async addStyles() {
34
+ await this.getUpdateComplete();
35
+ this.injectStyles(unsafeCSS(buildCommerceLayout(this, this.mobileBreakpoint)));
32
36
  }
33
37
  connectedCallback() {
34
38
  super.connectedCallback();
35
- this.emitBreakpointChangeEvent();
36
- }
37
- emitBreakpointChangeEvent() {
38
- this.dispatchEvent(new CustomEvent('atomic-layout-breakpoint-change', {
39
- detail: { breakpoint: this.mobileBreakpoint },
40
- bubbles: true,
41
- composed: true,
42
- }));
43
- }
44
- onMobileBreakpointChange() {
45
- this.layoutStylesController.updateStyles();
46
- this.emitBreakpointChangeEvent();
39
+ this.id = randomID('atomic-commerce-layout-');
40
+ this.addStyles();
47
41
  }
48
42
  };
49
43
  AtomicCommerceLayout.styles = [styles];
@@ -53,9 +47,6 @@ __decorate([
53
47
  __decorate([
54
48
  property({ type: String, reflect: true, attribute: 'mobile-breakpoint' })
55
49
  ], AtomicCommerceLayout.prototype, "mobileBreakpoint", void 0);
56
- __decorate([
57
- watch('mobileBreakpoint')
58
- ], AtomicCommerceLayout.prototype, "onMobileBreakpointChange", null);
59
50
  AtomicCommerceLayout = __decorate([
60
51
  customElement('atomic-commerce-layout')
61
52
  ], AtomicCommerceLayout);
@@ -0,0 +1,111 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { loadQuerySuggestActions, } from '@coveo/headless';
8
+ import { html, LitElement, nothing } from 'lit';
9
+ import { customElement, property, state } from 'lit/decorators.js';
10
+ import { getPartialSearchBoxSuggestionElement, renderQuerySuggestion, } from "../../common/suggestions/query-suggestions.js";
11
+ import { dispatchSearchBoxSuggestionsEvent } from "../../common/suggestions/suggestions-events.js";
12
+ import { errorGuard } from "../../../decorators/error-guard.js";
13
+ const SearchIcon = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m6.4 0c3.5 0 6.4 2.9 6.4 6.4 0 1.4-.4 2.7-1.2 3.7l4 4c.4.4.4 1 .1 1.5l-.1.1c-.2.2-.5.3-.8.3s-.6-.1-.8-.3l-4-4c-1 .7-2.3 1.2-3.7 1.2-3.4-.1-6.3-3-6.3-6.5s2.9-6.4 6.4-6.4zm0 2.1c-2.3 0-4.3 1.9-4.3 4.3s1.9 4.3 4.3 4.3 4.3-1.9 4.3-4.3-1.9-4.3-4.3-4.3z\"/></svg>";
14
+ /**
15
+ * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
16
+ */
17
+ let AtomicSearchBoxQuerySuggestions = class AtomicSearchBoxQuerySuggestions extends LitElement {
18
+ constructor() {
19
+ super(...arguments);
20
+ /**
21
+ * The maximum number of suggestions that will be displayed if the user has typed something into the input field.
22
+ */
23
+ this.maxWithQuery = 3;
24
+ /**
25
+ * The maximum number of suggestions that will be displayed initially when the input field is empty.
26
+ */
27
+ this.maxWithoutQuery = 0;
28
+ }
29
+ connectedCallback() {
30
+ super.connectedCallback();
31
+ try {
32
+ dispatchSearchBoxSuggestionsEvent((bindings) => {
33
+ this.bindings = bindings;
34
+ return this.initialize();
35
+ }, this, ['atomic-search-box']);
36
+ }
37
+ catch (error) {
38
+ this.error = error;
39
+ }
40
+ }
41
+ initialize() {
42
+ const engine = this.bindings.engine;
43
+ const { registerQuerySuggest, fetchQuerySuggestions } = loadQuerySuggestActions(engine);
44
+ const numberOfQueries = this.bindings.numberOfQueries;
45
+ const maxWithQuery = this.maxWithQuery;
46
+ if (numberOfQueries < maxWithQuery) {
47
+ const logger = this.bindings.engine.logger;
48
+ logger.warn(`Query suggestions configuration mismatch: atomic-search-box has number-of-queries="${numberOfQueries}" but atomic-search-box-query-suggestions has max-with-query="${maxWithQuery}". ` +
49
+ `This may cause inconsistent behavior where the search box requests ${numberOfQueries} suggestions but the component tries to display up to ${maxWithQuery}. ` +
50
+ `Consider updating max-with-query to ${numberOfQueries} or increasing number-of-queries to ${maxWithQuery}.`);
51
+ }
52
+ engine.dispatch(registerQuerySuggest({
53
+ id: this.bindings.id,
54
+ count: this.bindings.numberOfQueries,
55
+ }));
56
+ return {
57
+ position: Array.from(this.parentNode.children).indexOf(this),
58
+ onInput: () => engine.dispatch(fetchQuerySuggestions({
59
+ id: this.bindings.id,
60
+ })),
61
+ renderItems: () => this.renderItems(),
62
+ };
63
+ }
64
+ renderItems() {
65
+ const hasQuery = this.bindings.searchBoxController.state.value !== '';
66
+ const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;
67
+ return this.bindings.searchBoxController.state.suggestions
68
+ .slice(0, max)
69
+ .map((suggestion) => this.renderItem(suggestion));
70
+ }
71
+ renderItem(suggestion) {
72
+ const partialItem = getPartialSearchBoxSuggestionElement(suggestion, this.bindings.i18n);
73
+ const icon = this.icon || SearchIcon;
74
+ const hasQuery = this.bindings.searchBoxController.state.value !== '';
75
+ const hasMultipleKindOfSuggestions = this.bindings.getSuggestions().length > 1;
76
+ return {
77
+ ...partialItem,
78
+ content: renderQuerySuggestion({
79
+ icon,
80
+ hasQuery,
81
+ suggestion,
82
+ hasMultipleKindOfSuggestions,
83
+ }),
84
+ onSelect: () => {
85
+ this.bindings.searchBoxController.selectSuggestion(suggestion.rawValue);
86
+ },
87
+ };
88
+ }
89
+ render() {
90
+ return html `${nothing}`;
91
+ }
92
+ };
93
+ __decorate([
94
+ state()
95
+ ], AtomicSearchBoxQuerySuggestions.prototype, "error", void 0);
96
+ __decorate([
97
+ property()
98
+ ], AtomicSearchBoxQuerySuggestions.prototype, "icon", void 0);
99
+ __decorate([
100
+ property({ type: Number, attribute: 'max-with-query', reflect: true })
101
+ ], AtomicSearchBoxQuerySuggestions.prototype, "maxWithQuery", void 0);
102
+ __decorate([
103
+ property({ type: Number, attribute: 'max-without-query', reflect: true })
104
+ ], AtomicSearchBoxQuerySuggestions.prototype, "maxWithoutQuery", void 0);
105
+ __decorate([
106
+ errorGuard()
107
+ ], AtomicSearchBoxQuerySuggestions.prototype, "render", null);
108
+ AtomicSearchBoxQuerySuggestions = __decorate([
109
+ customElement('atomic-search-box-query-suggestions')
110
+ ], AtomicSearchBoxQuerySuggestions);
111
+ export { AtomicSearchBoxQuerySuggestions };
@@ -1,5 +1,5 @@
1
1
  // Auto-generated file
2
2
  export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.js';
3
3
  export { AtomicResultsPerPage } from './atomic-results-per-page/atomic-results-per-page.js';
4
- export { AtomicSearchBoxRecentQueries } from './atomic-search-box-recent-queries/atomic-search-box-recent-queries.js';
4
+ export { AtomicSearchBoxQuerySuggestions } from './atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js';
5
5
  export { AtomicSearchLayout } from './atomic-search-layout/atomic-search-layout.js';
@@ -2,6 +2,6 @@
2
2
  export default {
3
3
  'atomic-query-summary': async () => await import('./atomic-query-summary/atomic-query-summary.js'),
4
4
  'atomic-results-per-page': async () => await import('./atomic-results-per-page/atomic-results-per-page.js'),
5
- 'atomic-search-box-recent-queries': async () => await import('./atomic-search-box-recent-queries/atomic-search-box-recent-queries.js'),
5
+ 'atomic-search-box-query-suggestions': async () => await import('./atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js'),
6
6
  'atomic-search-layout': async () => await import('./atomic-search-layout/atomic-search-layout.js'),
7
7
  };
@@ -3,7 +3,7 @@ function getWindow() {
3
3
  }
4
4
  export function getAtomicEnvironment(headlessVersion) {
5
5
  return {
6
- version: "3.33.8-pre.f26e1593fa",
6
+ version: "3.33.8-pre.f62f2d7753",
7
7
  headlessVersion,
8
8
  };
9
9
  }