@empathyco/x-components 6.0.0-alpha.168 → 6.0.0-alpha.169

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 (50) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/docs/API-reference/api/x-components.aiactions.fetchandsaveaisuggestionssearch.md +2 -2
  3. package/docs/API-reference/api/x-components.aiactions.md +1 -1
  4. package/docs/API-reference/api/x-components.aioverview.md +24 -16
  5. package/docs/API-reference/api/x-components.aixevents.aisuggestionssearchchanged.md +11 -0
  6. package/docs/API-reference/api/x-components.aixevents.md +1 -0
  7. package/docs/API-reference/api/x-components.fetchandsaveaisuggestionssearch.md +1 -1
  8. package/docs/API-reference/api/x-components.hierarchicalfilter.md +1 -0
  9. package/docs/API-reference/api/x-components.md +2 -1
  10. package/docs/API-reference/api/x-components.simplefilter.md +1 -0
  11. package/docs/API-reference/api/x-components.snippetcallbacks.md +1 -0
  12. package/docs/API-reference/api/x-components.trackaisuggestionssearchwire.md +13 -0
  13. package/docs/API-reference/components/ai/x-components.ai-overview.md +10 -9
  14. package/js/index.js +1 -1
  15. package/js/x-modules/ai/components/ai-overview.vue.js +2 -2
  16. package/js/x-modules/ai/components/ai-overview.vue.js.map +1 -1
  17. package/js/x-modules/ai/components/ai-overview.vue2.js +25 -42
  18. package/js/x-modules/ai/components/ai-overview.vue2.js.map +1 -1
  19. package/js/x-modules/ai/store/actions/fetch-and-save-ai-suggestions-search.action.js +5 -5
  20. package/js/x-modules/ai/store/actions/fetch-and-save-ai-suggestions-search.action.js.map +1 -1
  21. package/js/x-modules/ai/store/emitters.js +1 -0
  22. package/js/x-modules/ai/store/emitters.js.map +1 -1
  23. package/js/x-modules/ai/wiring.js +4 -4
  24. package/js/x-modules/ai/wiring.js.map +1 -1
  25. package/js/x-modules/tagging/wiring.js +9 -1
  26. package/js/x-modules/tagging/wiring.js.map +1 -1
  27. package/package.json +2 -2
  28. package/report/x-components.api.json +167 -62
  29. package/report/x-components.api.md +42 -22
  30. package/tagging/index.js +1 -1
  31. package/types/components/snippet-callbacks.vue.d.ts +1 -0
  32. package/types/components/snippet-callbacks.vue.d.ts.map +1 -1
  33. package/types/x-modules/ai/components/ai-overview.vue.d.ts +24 -87
  34. package/types/x-modules/ai/components/ai-overview.vue.d.ts.map +1 -1
  35. package/types/x-modules/ai/events.types.d.ts +2 -1
  36. package/types/x-modules/ai/events.types.d.ts.map +1 -1
  37. package/types/x-modules/ai/store/actions/fetch-and-save-ai-suggestions-search.action.d.ts +3 -4
  38. package/types/x-modules/ai/store/actions/fetch-and-save-ai-suggestions-search.action.d.ts.map +1 -1
  39. package/types/x-modules/ai/store/emitters.d.ts +1 -0
  40. package/types/x-modules/ai/store/emitters.d.ts.map +1 -1
  41. package/types/x-modules/ai/store/types.d.ts +3 -3
  42. package/types/x-modules/ai/store/types.d.ts.map +1 -1
  43. package/types/x-modules/ai/wiring.d.ts +2 -2
  44. package/types/x-modules/ai/wiring.d.ts.map +1 -1
  45. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +1 -0
  46. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
  47. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts +1 -0
  48. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  49. package/types/x-modules/tagging/wiring.d.ts +8 -0
  50. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.0.0-alpha.169 (2025-10-29)
7
+
8
+ * fix: doc ([b5b7f16](https://github.com/empathyco/x/commit/b5b7f16))
9
+ * fix: raname some variables ([4db954b](https://github.com/empathyco/x/commit/4db954b))
10
+ * feat(ai-overview): add support to auto expand in search no results ([e2682e0](https://github.com/empathyco/x/commit/e2682e0))
11
+ * feat(ai): perform suggestions search on expand and track queries ([76133f4](https://github.com/empathyco/x/commit/76133f4))
12
+
13
+
14
+
15
+
16
+
6
17
  ## 6.0.0-alpha.168 (2025-10-27)
7
18
 
8
19
  * feat(ai): add `extra-content` slot to ai-overview and use in home view ([4a51932](https://github.com/empathyco/x/commit/4a51932))
@@ -4,10 +4,10 @@
4
4
 
5
5
  ## AiActions.fetchAndSaveAiSuggestionsSearch property
6
6
 
7
- Requests suggestions search for the module ai.
7
+ Requests suggestions search for the module AI.
8
8
 
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- fetchAndSaveAiSuggestionsSearch: (request: AiSuggestionsSearchRequest | null) => void;
12
+ fetchAndSaveAiSuggestionsSearch: (expanded: boolean) => void;
13
13
  ```
@@ -17,7 +17,7 @@ export interface AiActions
17
17
  | Property | Modifiers | Type | Description |
18
18
  | --- | --- | --- | --- |
19
19
  | [fetchAndSaveAiSuggestions](./x-components.aiactions.fetchandsaveaisuggestions.md) | | (request: AiSuggestionsRequest \| null) => void | Requests suggestions for the module ai. |
20
- | [fetchAndSaveAiSuggestionsSearch](./x-components.aiactions.fetchandsaveaisuggestionssearch.md) | | (request: AiSuggestionsSearchRequest \| null) => void | Requests suggestions search for the module ai. |
20
+ | [fetchAndSaveAiSuggestionsSearch](./x-components.aiactions.fetchandsaveaisuggestionssearch.md) | | (expanded: boolean) => void | Requests suggestions search for the module AI. |
21
21
  | [saveOrigin](./x-components.aiactions.saveorigin.md) | | (originInit: [QueryOriginInit](./x-components.queryorigininit.md)<!-- -->) =&gt; void | Creates a [QueryOrigin](./x-components.queryorigin.md) and saves it. |
22
22
  | [setUrlParams](./x-components.aiactions.seturlparams.md) | | (urlParams: [UrlParams](./x-components.urlparams.md)<!-- -->) =&gt; void | Checks if the URL has params on it and then updates the state with these values. |
23
23
 
@@ -9,28 +9,32 @@
9
9
  ```typescript
10
10
  _default: import("vue").DefineComponent<{
11
11
  title: {
12
- type: PropType<string>;
12
+ type: StringConstructor;
13
13
  };
14
14
  titleLoading: {
15
- type: PropType<string>;
15
+ type: StringConstructor;
16
16
  default: string;
17
17
  };
18
18
  expandText: {
19
- type: PropType<string>;
19
+ type: StringConstructor;
20
20
  default: string;
21
21
  };
22
22
  collapseText: {
23
- type: PropType<string>;
23
+ type: StringConstructor;
24
24
  default: string;
25
25
  };
26
+ autoExpandInSearchNoResults: {
27
+ type: BooleanConstructor;
28
+ default: boolean;
29
+ };
26
30
  slidingPanelsClasses: {
27
- type: PropType<string>;
31
+ type: StringConstructor;
28
32
  };
29
33
  slidingPanelContainersClasses: {
30
- type: PropType<string>;
34
+ type: StringConstructor;
31
35
  };
32
36
  slidingPanelButtonsClasses: {
33
- type: PropType<string>;
37
+ type: StringConstructor;
34
38
  };
35
39
  }, {
36
40
  aiOverviewRef: import("vue").Ref<HTMLDivElement | null>;
@@ -41,8 +45,7 @@ _default: import("vue").DefineComponent<{
41
45
  suggestionsLoading: import("vue").ComputedRef<boolean>;
42
46
  suggestionsSearch: import("vue").ComputedRef<import("@empathyco/x-types").AiSuggestionSearch[]>;
43
47
  suggestionText: import("vue").ComputedRef<string>;
44
- setExpanded: (newValue: boolean) => void;
45
- onExpandButtonClick: (newValue: boolean) => void;
48
+ emitAndSetExpand: (isExpanded: boolean) => void;
46
49
  shouldAnimateSuggestion: import("vue").Ref<boolean>;
47
50
  query: import("vue").ComputedRef<string>;
48
51
  tagging: import("vue").ComputedRef<import("@empathyco/x-types").AiSuggestionTagging | undefined>;
@@ -50,32 +53,37 @@ _default: import("vue").DefineComponent<{
50
53
  queries: import("vue").ComputedRef<import("@empathyco/x-types").AiSuggestionQuery[]>;
51
54
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
52
55
  title: {
53
- type: PropType<string>;
56
+ type: StringConstructor;
54
57
  };
55
58
  titleLoading: {
56
- type: PropType<string>;
59
+ type: StringConstructor;
57
60
  default: string;
58
61
  };
59
62
  expandText: {
60
- type: PropType<string>;
63
+ type: StringConstructor;
61
64
  default: string;
62
65
  };
63
66
  collapseText: {
64
- type: PropType<string>;
67
+ type: StringConstructor;
65
68
  default: string;
66
69
  };
70
+ autoExpandInSearchNoResults: {
71
+ type: BooleanConstructor;
72
+ default: boolean;
73
+ };
67
74
  slidingPanelsClasses: {
68
- type: PropType<string>;
75
+ type: StringConstructor;
69
76
  };
70
77
  slidingPanelContainersClasses: {
71
- type: PropType<string>;
78
+ type: StringConstructor;
72
79
  };
73
80
  slidingPanelButtonsClasses: {
74
- type: PropType<string>;
81
+ type: StringConstructor;
75
82
  };
76
83
  }>>, {
77
84
  titleLoading: string;
78
85
  expandText: string;
79
86
  collapseText: string;
87
+ autoExpandInSearchNoResults: boolean;
80
88
  }, {}>
81
89
  ```
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [AiXEvents](./x-components.aixevents.md) &gt; [AiSuggestionsSearchChanged](./x-components.aixevents.aisuggestionssearchchanged.md)
4
+
5
+ ## AiXEvents.AiSuggestionsSearchChanged property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ AiSuggestionsSearchChanged: AiSuggestionSearch[];
11
+ ```
@@ -18,6 +18,7 @@ export interface AiXEvents
18
18
  | --- | --- | --- | --- |
19
19
  | [AiOverviewMounted](./x-components.aixevents.aioverviewmounted.md) | | void | |
20
20
  | [AiSuggestionsRequestUpdated](./x-components.aixevents.aisuggestionsrequestupdated.md) | | AiSuggestionsRequest \| null | |
21
+ | [AiSuggestionsSearchChanged](./x-components.aixevents.aisuggestionssearchchanged.md) | | AiSuggestionSearch\[\] | |
21
22
  | [AiSuggestionsSearchRequestUpdated](./x-components.aixevents.aisuggestionssearchrequestupdated.md) | | AiSuggestionsSearchRequest \| null | |
22
23
  | [UserClickedAiOverviewExpandButton](./x-components.aixevents.userclickedaioverviewexpandbutton.md) | | boolean | |
23
24
  | [UserClickedAnAiOverviewResult](./x-components.aixevents.userclickedanaioverviewresult.md) | | Result | |
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## fetchAndSaveAiSuggestionsSearch variable
6
6
 
7
- Default implementation for the [AiActions.fetchAndSaveAiSuggestionsSearch](./x-components.aiactions.fetchandsaveaisuggestionssearch.md)<!-- -->.
7
+ Default implementation for the `AiActions.fetchAndSaveAiSuggestionsSearch`<!-- -->.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -195,6 +195,7 @@ _default: import("vue").DefineComponent<{
195
195
  ReloadRelatedPromptsRequested?: void | undefined;
196
196
  AiSuggestionsRequestUpdated?: import("@empathyco/x-types").AiSuggestionsRequest | null | undefined;
197
197
  AiSuggestionsSearchRequestUpdated?: import("@empathyco/x-types").AiSuggestionsSearchRequest | null | undefined;
198
+ AiSuggestionsSearchChanged?: import("@empathyco/x-types").AiSuggestionSearch[] | undefined;
198
199
  UserClickedAiOverviewExpandButton?: boolean | undefined;
199
200
  UserClickedAnAiOverviewResult?: import("@empathyco/x-types").Result | undefined;
200
201
  AiOverviewMounted?: void | undefined;
@@ -430,7 +430,7 @@ X-Components is a library usable everywhere not only for search experiences.
430
430
  | [FadeAndSlide](./x-components.fadeandslide.md) | Renders a transition group wrapping the elements passed in the default slot and animating them with a fade and slide animation. |
431
431
  | [FallbackDisclaimer](./x-components.fallbackdisclaimer.md) | The <code>FallbackDisclaimer</code> component shows a message if the filters have been removed from the current search because there were no results. |
432
432
  | [fetchAndSaveAiSuggestions](./x-components.fetchandsaveaisuggestions.md) | Default implementation for the [AiActions.fetchAndSaveAiSuggestions](./x-components.aiactions.fetchandsaveaisuggestions.md)<!-- -->. |
433
- | [fetchAndSaveAiSuggestionsSearch](./x-components.fetchandsaveaisuggestionssearch.md) | Default implementation for the [AiActions.fetchAndSaveAiSuggestionsSearch](./x-components.aiactions.fetchandsaveaisuggestionssearch.md)<!-- -->. |
433
+ | [fetchAndSaveAiSuggestionsSearch](./x-components.fetchandsaveaisuggestionssearch.md) | Default implementation for the <code>AiActions.fetchAndSaveAiSuggestionsSearch</code>. |
434
434
  | [fetchAndSaveExperienceControlsWire](./x-components.fetchandsaveexperiencecontrolswire.md) | Requests and stores a new set of controls results. |
435
435
  | [fetchAndSaveIdentifierResultsWire](./x-components.fetchandsaveidentifierresultswire.md) | Requests and stores a new set of identifier results for the query. |
436
436
  | [fetchAndSaveNextQueriesWire](./x-components.fetchandsavenextquerieswire.md) | Requests and stores the next queries. |
@@ -674,6 +674,7 @@ X-Components is a library usable everywhere not only for search experiences.
674
674
  | [track](./x-components.track.md) | Default implementation for the [TaggingActions.track](./x-components.taggingactions.track.md)<!-- -->. |
675
675
  | [trackAddToCartWire](./x-components.trackaddtocartwire.md) | Performs a track of a result added to the cart. |
676
676
  | [trackAiOverviewButtonClickedWire](./x-components.trackaioverviewbuttonclickedwire.md) | Performs a track of clicking the AI overview expand button when the playload (expanded) is false. |
677
+ | [trackAiSuggestionsSearchWire](./x-components.trackaisuggestionssearchwire.md) | Tracks query tagging of the AI suggestions-search. |
677
678
  | [trackBannerClickedWire](./x-components.trackbannerclickedwire.md) | Tracks the tagging of the banner. |
678
679
  | [trackDisplayClickedWire](./x-components.trackdisplayclickedwire.md) | Performs a track of a display result being clicked. |
679
680
  | [trackElementDisplayedWire](./x-components.trackelementdisplayedwire.md) | Performs a track of a display element appearing. |
@@ -192,6 +192,7 @@ _default: import("vue").DefineComponent<{
192
192
  ReloadRelatedPromptsRequested?: void | undefined;
193
193
  AiSuggestionsRequestUpdated?: import("@empathyco/x-types").AiSuggestionsRequest | null | undefined;
194
194
  AiSuggestionsSearchRequestUpdated?: import("@empathyco/x-types").AiSuggestionsSearchRequest | null | undefined;
195
+ AiSuggestionsSearchChanged?: import("@empathyco/x-types").AiSuggestionSearch[] | undefined;
195
196
  UserClickedAiOverviewExpandButton?: boolean | undefined;
196
197
  UserClickedAnAiOverviewResult?: import("@empathyco/x-types").Result | undefined;
197
198
  AiOverviewMounted?: void | undefined;
@@ -182,6 +182,7 @@ _default: import("vue").DefineComponent<{}, {
182
182
  ReloadRelatedPromptsRequested: (payload: undefined, metadata: WireMetadata) => unknown;
183
183
  AiSuggestionsRequestUpdated: (payload: import("@empathyco/x-types").AiSuggestionsRequest | null, metadata: WireMetadata) => unknown;
184
184
  AiSuggestionsSearchRequestUpdated: (payload: import("@empathyco/x-types").AiSuggestionsSearchRequest | null, metadata: WireMetadata) => unknown;
185
+ AiSuggestionsSearchChanged: (payload: import("@empathyco/x-types").AiSuggestionSearch[], metadata: WireMetadata) => unknown;
185
186
  UserClickedAiOverviewExpandButton: (payload: boolean, metadata: WireMetadata) => unknown;
186
187
  UserClickedAnAiOverviewResult: (payload: import("@empathyco/x-types").Result, metadata: WireMetadata) => unknown;
187
188
  AiOverviewMounted: (payload: undefined, metadata: WireMetadata) => unknown;
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [trackAiSuggestionsSearchWire](./x-components.trackaisuggestionssearchwire.md)
4
+
5
+ ## trackAiSuggestionsSearchWire variable
6
+
7
+ Tracks query tagging of the AI suggestions-search.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ trackAiSuggestionsSearchWire: import("../../wiring/wiring.types").AnyWire
13
+ ```
@@ -8,15 +8,16 @@ title: AiOverview
8
8
 
9
9
  ## Props
10
10
 
11
- | Name | Description | Type | Default |
12
- | ------------------------------------------ | ---------------------------------------------------------------- | ------------------- | ----------------------------------------- |
13
- | <code>title</code> | The text displayed when the question ended loading | <code>string</code> | <code></code> |
14
- | <code>titleLoading</code> | The text displayed when the question is loading. | <code>string</code> | <code>'Generating with Empathy AI'</code> |
15
- | <code>expandText</code> | The text displayed on the toggle button when collapsed. | <code>string</code> | <code>'Show more'</code> |
16
- | <code>collapseText</code> | The text displayed on the toggle button when expanded. | <code>string</code> | <code>'Show less'</code> |
17
- | <code>slidingPanelsClasses</code> | The classes added to each sliding panel for each query. | <code>string</code> | <code></code> |
18
- | <code>slidingPanelContainersClasses</code> | The classes added to each sliding panel container of each query. | <code>string</code> | <code></code> |
19
- | <code>slidingPanelButtonsClasses</code> | The classes added to each sliding panel buttons of each query. | <code>string</code> | <code></code> |
11
+ | Name | Description | Type | Default |
12
+ | ------------------------------------------ | ----------- | -------------------- | ----------------------------------------- |
13
+ | <code>title</code> | | <code>string</code> | <code></code> |
14
+ | <code>titleLoading</code> | | <code>string</code> | <code>'Generating with Empathy AI'</code> |
15
+ | <code>expandText</code> | | <code>string</code> | <code>'Show more'</code> |
16
+ | <code>collapseText</code> | | <code>string</code> | <code>'Show less'</code> |
17
+ | <code>autoExpandInSearchNoResults</code> | | <code>boolean</code> | <code>true</code> |
18
+ | <code>slidingPanelsClasses</code> | | <code>string</code> | <code></code> |
19
+ | <code>slidingPanelContainersClasses</code> | | <code>string</code> | <code></code> |
20
+ | <code>slidingPanelButtonsClasses</code> | | <code>string</code> | <code></code> |
20
21
 
21
22
  ## Slots
22
23
 
package/js/index.js CHANGED
@@ -436,7 +436,7 @@ export { DefaultExternalTaggingService } from './x-modules/tagging/service/exter
436
436
  export { track } from './x-modules/tagging/store/actions/track.action.js';
437
437
  export { taggingEmitters } from './x-modules/tagging/store/emitters.js';
438
438
  export { taggingXStoreModule } from './x-modules/tagging/store/module.js';
439
- export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackAiOverviewButtonClickedWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackPromotedClickedWire, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire } from './x-modules/tagging/wiring.js';
439
+ export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackAiOverviewButtonClickedWire, trackAiSuggestionsSearchWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackPromotedClickedWire, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire } from './x-modules/tagging/wiring.js';
440
440
  export { taggingXModule } from './x-modules/tagging/x-module.js';
441
441
  export { default as UrlHandler } from './x-modules/url/components/url-handler.vue.js';
442
442
  export { replaceableParams, urlEmitters } from './x-modules/url/store/emitters.js';
@@ -276,7 +276,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
276
276
  key: 0,
277
277
  class: "x-cursor-pointer",
278
278
  "data-test": "ai-overview-toggle-button-wrapper",
279
- onClick: _cache[1] || (_cache[1] = ($event) => _ctx.onExpandButtonClick(!_ctx.expanded))
279
+ onClick: _cache[1] || (_cache[1] = ($event) => _ctx.emitAndSetExpand(!_ctx.expanded))
280
280
  }, [
281
281
  withDirectives(createElementVNode(
282
282
  "div",
@@ -291,7 +291,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
291
291
  createElementVNode("button", {
292
292
  class: "x-ai-overview-toggle-btn",
293
293
  "data-test": "ai-overview-toggle-button",
294
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.onExpandButtonClick(!_ctx.expanded), ["stop"]))
294
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.emitAndSetExpand(!_ctx.expanded), ["stop"]))
295
295
  }, [
296
296
  createTextVNode(
297
297
  toDisplayString(_ctx.buttonText) + " ",
@@ -1 +1 @@
1
- {"version":3,"file":"ai-overview.vue.js","sources":["../../../../../src/x-modules/ai/components/ai-overview.vue"],"sourcesContent":["<template>\n <CollapseHeight>\n <div\n v-if=\"!isNoResults\"\n ref=\"aiOverviewRef\"\n class=\"x-ai-overview\"\n data-test=\"ai-overview-wrapper\"\n >\n <div class=\"x-ai-overview-main\">\n <Fade mode=\"out-in\">\n <span\n v-if=\"suggestionsLoading\"\n class=\"x-ai-overview-title-loading\"\n data-test=\"ai-overview-title-loading\"\n >\n <span class=\"x-ai-overview-title-loading-indicator\" />\n <span\n class=\"x-ai-overview-title-loading-text\"\n data-test=\"ai-overview-title-loading-text\"\n >\n <slot name=\"title-loading\">\n {{ titleLoading }}\n </slot>\n </span>\n </span>\n <DisplayEmitter\n v-else\n :payload=\"tagging?.toolingDisplay ?? emptyTaggingRequest\"\n :event-metadata=\"{\n feature: 'overview',\n displayOriginalQuery: query || 'overview-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-overview-display-emitter\"\n >\n <span class=\"x-ai-overview-title\" data-test=\"ai-overview-title\">\n <AIStarIcon class=\"x-ai-overview-title-icon\" />{{ !!title ? title : suggestionText }}\n </span>\n </DisplayEmitter>\n </Fade>\n <ChangeHeight>\n <div class=\"x-ai-overview-content\" data-test=\"ai-overview-content\">\n <span v-if=\"title\">{{ suggestionText }}</span>\n <p>{{ responseText }}</p>\n </div>\n </ChangeHeight>\n <slot name=\"extra-content\" />\n </div>\n <CollapseHeight\n :style=\"{\n '--x-collapse-height-transition-duration': `${300 * suggestionsSearch.length}ms`,\n }\"\n data-test=\"ai-overview-collapse-height-suggestions\"\n >\n <div v-show=\"expanded\">\n <SpinnerIcon\n v-if=\"!suggestionsSearch.length\"\n class=\"x-ai-overview-suggestions-loading\"\n data-test=\"ai-overview-suggestions-loading\"\n />\n <div\n v-else\n class=\"x-ai-overview-suggestions\"\n data-test=\"ai-overview-suggestions-container\"\n >\n <DisplayEmitter\n v-for=\"(\n { query: suggestionQuery, results: queriesResults, tagging: suggestionTagging },\n suggestionIndex\n ) in suggestionsSearch\"\n :key=\"suggestionQuery\"\n :payload=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplay ?? emptyTaggingRequest\n \"\n :event-metadata=\"{\n feature: 'overview',\n displayOriginalQuery: query || 'overview-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-overview-query-display-emitter\"\n >\n <div\n class=\"x-ai-overview-suggestion\"\n data-test=\"ai-overview-suggestion\"\n :class=\"{\n 'x-ai-overview-result-animation': shouldAnimateSuggestion,\n }\"\n :style=\"{ animationDelay: `${suggestionIndex * 300}ms` }\"\n >\n <BaseEventButton\n class=\"x-ai-overview-suggestion-query-btn\"\n :events=\"{ UserAcceptedAQuery: suggestionQuery }\"\n >\n {{ suggestionQuery }}\n <ArrowRightIcon class=\"x-ai-overview-suggestion-query-btn-icon\" />\n </BaseEventButton>\n\n <DisplayClickProvider\n :query-tagging=\"suggestionTagging.query\"\n :tooling-display-tagging=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplayClick\n \"\n :tooling-add2-cart-tagging=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplayAdd2Cart\n \"\n result-feature=\"overview\"\n >\n <slot name=\"sliding-panel\" :results=\"queriesResults\">\n <SlidingPanel\n :class=\"slidingPanelsClasses\"\n :scroll-container-class=\"slidingPanelContainersClasses\"\n :button-class=\"slidingPanelButtonsClasses\"\n :reset-on-content-change=\"false\"\n >\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <ul class=\"x-ai-overview-suggestion-results\">\n <li\n v-for=\"(result, resultIndex) in queriesResults\"\n :key=\"result.id\"\n data-test=\"ai-overview-suggestion-result\"\n :class=\"{\n 'x-ai-overview-result-animation': shouldAnimateSuggestion,\n }\"\n :style=\"{\n animationDelay: `${suggestionIndex * 300 + resultIndex * 300}ms`,\n }\"\n >\n <!-- @slot (required) result card -->\n <slot name=\"result\" :result=\"result\" />\n </li>\n </ul>\n </SlidingPanel>\n </slot>\n </DisplayClickProvider>\n </div>\n </DisplayEmitter>\n <slot name=\"suggestions-extra-content\" />\n </div>\n </div>\n </CollapseHeight>\n\n <Fade>\n <div\n v-if=\"queries.length\"\n class=\"x-cursor-pointer\"\n data-test=\"ai-overview-toggle-button-wrapper\"\n @click=\"onExpandButtonClick(!expanded)\"\n >\n <div v-show=\"!expanded\" class=\"x-ai-overview-gradient\" data-test=\"ai-overview-gradient\" />\n <div class=\"x-ai-overview-toggle-wrapper\">\n <button\n class=\"x-ai-overview-toggle-btn\"\n data-test=\"ai-overview-toggle-button\"\n @click.stop=\"onExpandButtonClick(!expanded)\"\n >\n {{ buttonText }}\n <ChevronDownIcon\n class=\"x-ai-overview-toggle-btn-icon\"\n :class=\"{ 'x-ai-overview-toggle-btn-icon-expanded': expanded }\"\n />\n </button>\n </div>\n </div>\n </Fade>\n </div>\n </CollapseHeight>\n</template>\n\n<script lang=\"ts\">\nimport type { TaggingRequest } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { computed, defineComponent, onMounted, ref, watch } from 'vue'\nimport {\n AIStarIcon,\n ArrowRightIcon,\n BaseEventButton,\n ChangeHeight,\n ChevronDownIcon,\n CollapseHeight,\n DisplayClickProvider,\n Fade,\n SlidingPanel,\n SpinnerIcon,\n} from '../../../components'\nimport DisplayEmitter from '../../../components/display-emitter.vue'\nimport { use$x, useGetter, useState } from '../../../composables'\nimport { typing } from '../../../directives'\nimport { aiXModule } from '../x-module'\n\nexport default defineComponent({\n directives: {\n typing,\n },\n xModule: aiXModule.name,\n components: {\n AIStarIcon,\n ArrowRightIcon,\n BaseEventButton,\n ChevronDownIcon,\n CollapseHeight,\n ChangeHeight,\n Fade,\n SlidingPanel,\n SpinnerIcon,\n DisplayEmitter,\n DisplayClickProvider,\n },\n props: {\n /**\n * The text displayed when the question ended loading\n *\n * @public\n */\n title: {\n type: String as PropType<string>,\n },\n /**\n * The text displayed when the question is loading.\n *\n * @public\n */\n titleLoading: {\n type: String as PropType<string>,\n default: 'Generating with Empathy AI',\n },\n /**\n * The text displayed on the toggle button when collapsed.\n *\n * @public\n */\n expandText: {\n type: String as PropType<string>,\n default: 'Show more',\n },\n /**\n * The text displayed on the toggle button when expanded.\n *\n * @public\n */\n collapseText: {\n type: String as PropType<string>,\n default: 'Show less',\n },\n\n /**\n * The classes added to each sliding panel for each query.\n *\n * @public\n */\n slidingPanelsClasses: {\n type: String as PropType<string>,\n },\n /**\n * The classes added to each sliding panel container of each query.\n *\n * @public\n */\n slidingPanelContainersClasses: {\n type: String as PropType<string>,\n },\n /**\n * The classes added to each sliding panel buttons of each query.\n *\n * @public\n */\n slidingPanelButtonsClasses: {\n type: String as PropType<string>,\n },\n },\n setup(props) {\n const $x = use$x()\n const { query } = useGetter('ai')\n const {\n suggestionText,\n responseText,\n suggestionsSearch,\n suggestionsLoading,\n tagging,\n isNoResults,\n queries,\n } = useState('ai')\n\n const emptyTaggingRequest: TaggingRequest = { url: '', params: {} }\n\n const aiOverviewRef = ref<HTMLDivElement | null>(null)\n const expanded = ref(false)\n const shouldAnimateSuggestion = ref(true)\n\n const buttonText = computed(() => (expanded.value ? props.collapseText : props.expandText))\n\n function onExpandButtonClick(newValue: boolean) {\n $x.emit('UserClickedAiOverviewExpandButton', expanded.value, {\n suggestionText: suggestionText.value,\n toolingDisplayClick: tagging.value?.toolingDisplayClick,\n })\n setExpanded(newValue)\n }\n\n function setExpanded(newValue: boolean) {\n expanded.value = newValue\n if (!expanded.value) {\n aiOverviewRef.value?.scrollIntoView({ behavior: 'smooth' })\n shouldAnimateSuggestion.value = false\n }\n }\n\n watch(query, () => {\n expanded.value = false\n shouldAnimateSuggestion.value = true\n })\n\n onMounted(() => {\n $x.emit('AiOverviewMounted', undefined, { feature: 'overview' })\n })\n\n return {\n aiOverviewRef,\n buttonText,\n emptyTaggingRequest,\n expanded,\n responseText,\n suggestionsLoading,\n suggestionsSearch,\n suggestionText,\n setExpanded,\n onExpandButtonClick,\n shouldAnimateSuggestion,\n query,\n tagging,\n isNoResults,\n queries,\n }\n },\n})\n</script>\n\n<style lang=\"css\">\n.x-ai-overview {\n --color: var(--x-ai-overview-color, #bbc9cf);\n --color-lighter: var(--x-ai-overview-color-lighter, color-mix(in srgb, var(--color) 25%, white));\n\n position: relative;\n border-radius: 1.5rem;\n background-color: var(--color-lighter);\n}\n\n.x-ai-overview-main {\n padding: 1rem;\n}\n\n.x-ai-overview-title {\n display: flex;\n font-size: 0.875rem;\n font-weight: 700;\n gap: 0.25rem;\n align-items: center;\n margin-bottom: 0.5rem;\n}\n\n.x-ai-overview-title-loading {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n margin-bottom: 0.5rem;\n}\n\n.x-ai-overview-title-loading-indicator {\n width: 0.75rem;\n height: 0.75rem;\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n border-radius: 9999px;\n background-color: var(--color);\n}\n\n.x-ai-overview-title-loading-text {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n font-size: 0.75rem;\n}\n\n.x-ai-overview-title-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n color: var(--color);\n flex-shrink: 0;\n}\n\n.x-ai-overview-content {\n display: flex;\n flex-direction: column;\n text-align: left;\n line-height: 1.25rem;\n gap: 0.5rem;\n}\n\n.x-ai-overview-content span {\n font-weight: 500;\n}\n\n.x-ai-overview-gradient {\n border-radius: 1.5rem;\n cursor: pointer;\n content: none;\n position: absolute;\n width: 100%;\n height: 100%;\n bottom: 0;\n background-image: linear-gradient(to bottom, transparent 0%, var(--color-lighter) 100%);\n}\n\n.x-ai-overview-toggle-wrapper {\n display: flex;\n position: relative;\n}\n\n.x-ai-overview-toggle-btn {\n border-color: var(--button-color-50, #283034);\n background-color: #ffffff;\n color: var(--button-color-50, #283034);\n border-radius: 9999px;\n width: 100%;\n margin: auto;\n padding-right: 1rem;\n padding-left: 1rem;\n display: flex;\n justify-content: center;\n align-items: center;\n border-style: solid;\n border-width: 1px;\n font-weight: 700;\n min-height: 2.5rem;\n gap: 0.5rem;\n font-size: 0.875rem;\n}\n\n.x-ai-overview-toggle-btn:hover {\n border-color: var(--button-color-50, #283034);\n background-color: var(--button-color-50, #283034);\n color: #ffffff;\n}\n\n@media (min-width: 640px) {\n .x-ai-overview-toggle-btn {\n transition-property: all;\n transition-duration: 500ms;\n transform: translateY(50%);\n width: var(--expand-button-width, 200px);\n }\n}\n\n.x-ai-overview-toggle-btn-icon {\n transform: rotate(0deg);\n height: 1rem;\n aspect-ratio: 1 / 1;\n transition-property: all;\n transition-duration: 300ms;\n}\n\n.x-ai-overview-toggle-btn-icon-expanded {\n transform: rotate(180deg);\n}\n\n.x-ai-overview-suggestion-query-btn {\n border-color: transparent;\n background-color: transparent;\n margin-left: 1rem;\n margin-right: 1rem;\n font-weight: 700;\n width: fit-content;\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.x-ai-overview-suggestion-query-btn-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n}\n\n.x-ai-overview-suggestions {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding-bottom: 1rem;\n}\n\n.x-ai-overview-suggestions-loading {\n width: 2.5rem;\n height: 2.5rem;\n margin: auto;\n animation: x-spin 1s linear infinite;\n}\n\n.x-ai-overview-suggestion {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.x-ai-overview-suggestion-results {\n display: flex;\n gap: 1rem;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n@keyframes x-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n</style>\n"],"names":["_createElementVNode","_createBlock","_openBlock","_createElementBlock","_createVNode","_renderSlot","_createTextVNode","_toDisplayString","_withCtx","_createCommentVNode","_normalizeStyle","_withDirectives","_Fragment","_renderList","_normalizeClass","_vShow","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"ai-overview.vue.js","sources":["../../../../../src/x-modules/ai/components/ai-overview.vue"],"sourcesContent":["<template>\n <CollapseHeight>\n <div\n v-if=\"!isNoResults\"\n ref=\"aiOverviewRef\"\n class=\"x-ai-overview\"\n data-test=\"ai-overview-wrapper\"\n >\n <div class=\"x-ai-overview-main\">\n <Fade mode=\"out-in\">\n <span\n v-if=\"suggestionsLoading\"\n class=\"x-ai-overview-title-loading\"\n data-test=\"ai-overview-title-loading\"\n >\n <span class=\"x-ai-overview-title-loading-indicator\" />\n <span\n class=\"x-ai-overview-title-loading-text\"\n data-test=\"ai-overview-title-loading-text\"\n >\n <slot name=\"title-loading\">\n {{ titleLoading }}\n </slot>\n </span>\n </span>\n <DisplayEmitter\n v-else\n :payload=\"tagging?.toolingDisplay ?? emptyTaggingRequest\"\n :event-metadata=\"{\n feature: 'overview',\n displayOriginalQuery: query || 'overview-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-overview-display-emitter\"\n >\n <span class=\"x-ai-overview-title\" data-test=\"ai-overview-title\">\n <AIStarIcon class=\"x-ai-overview-title-icon\" />{{ !!title ? title : suggestionText }}\n </span>\n </DisplayEmitter>\n </Fade>\n <ChangeHeight>\n <div class=\"x-ai-overview-content\" data-test=\"ai-overview-content\">\n <span v-if=\"title\">{{ suggestionText }}</span>\n <p>{{ responseText }}</p>\n </div>\n </ChangeHeight>\n <slot name=\"extra-content\" />\n </div>\n <CollapseHeight\n :style=\"{\n '--x-collapse-height-transition-duration': `${300 * suggestionsSearch.length}ms`,\n }\"\n data-test=\"ai-overview-collapse-height-suggestions\"\n >\n <div v-show=\"expanded\">\n <SpinnerIcon\n v-if=\"!suggestionsSearch.length\"\n class=\"x-ai-overview-suggestions-loading\"\n data-test=\"ai-overview-suggestions-loading\"\n />\n <div\n v-else\n class=\"x-ai-overview-suggestions\"\n data-test=\"ai-overview-suggestions-container\"\n >\n <DisplayEmitter\n v-for=\"(\n { query: suggestionQuery, results: queriesResults, tagging: suggestionTagging },\n suggestionIndex\n ) in suggestionsSearch\"\n :key=\"suggestionQuery\"\n :payload=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplay ?? emptyTaggingRequest\n \"\n :event-metadata=\"{\n feature: 'overview',\n displayOriginalQuery: query || 'overview-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-overview-query-display-emitter\"\n >\n <div\n class=\"x-ai-overview-suggestion\"\n data-test=\"ai-overview-suggestion\"\n :class=\"{\n 'x-ai-overview-result-animation': shouldAnimateSuggestion,\n }\"\n :style=\"{ animationDelay: `${suggestionIndex * 300}ms` }\"\n >\n <BaseEventButton\n class=\"x-ai-overview-suggestion-query-btn\"\n :events=\"{ UserAcceptedAQuery: suggestionQuery }\"\n >\n {{ suggestionQuery }}\n <ArrowRightIcon class=\"x-ai-overview-suggestion-query-btn-icon\" />\n </BaseEventButton>\n\n <DisplayClickProvider\n :query-tagging=\"suggestionTagging.query\"\n :tooling-display-tagging=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplayClick\n \"\n :tooling-add2-cart-tagging=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplayAdd2Cart\n \"\n result-feature=\"overview\"\n >\n <slot name=\"sliding-panel\" :results=\"queriesResults\">\n <SlidingPanel\n :class=\"slidingPanelsClasses\"\n :scroll-container-class=\"slidingPanelContainersClasses\"\n :button-class=\"slidingPanelButtonsClasses\"\n :reset-on-content-change=\"false\"\n >\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <ul class=\"x-ai-overview-suggestion-results\">\n <li\n v-for=\"(result, resultIndex) in queriesResults\"\n :key=\"result.id\"\n data-test=\"ai-overview-suggestion-result\"\n :class=\"{\n 'x-ai-overview-result-animation': shouldAnimateSuggestion,\n }\"\n :style=\"{\n animationDelay: `${suggestionIndex * 300 + resultIndex * 300}ms`,\n }\"\n >\n <!-- @slot (required) result card -->\n <slot name=\"result\" :result=\"result\" />\n </li>\n </ul>\n </SlidingPanel>\n </slot>\n </DisplayClickProvider>\n </div>\n </DisplayEmitter>\n <slot name=\"suggestions-extra-content\" />\n </div>\n </div>\n </CollapseHeight>\n\n <Fade>\n <div\n v-if=\"queries.length\"\n class=\"x-cursor-pointer\"\n data-test=\"ai-overview-toggle-button-wrapper\"\n @click=\"emitAndSetExpand(!expanded)\"\n >\n <div v-show=\"!expanded\" class=\"x-ai-overview-gradient\" data-test=\"ai-overview-gradient\" />\n <div class=\"x-ai-overview-toggle-wrapper\">\n <button\n class=\"x-ai-overview-toggle-btn\"\n data-test=\"ai-overview-toggle-button\"\n @click.stop=\"emitAndSetExpand(!expanded)\"\n >\n {{ buttonText }}\n <ChevronDownIcon\n class=\"x-ai-overview-toggle-btn-icon\"\n :class=\"{ 'x-ai-overview-toggle-btn-icon-expanded': expanded }\"\n />\n </button>\n </div>\n </div>\n </Fade>\n </div>\n </CollapseHeight>\n</template>\n\n<script lang=\"ts\">\nimport type { TaggingRequest } from '@empathyco/x-types'\nimport { computed, defineComponent, onMounted, ref, watch } from 'vue'\nimport {\n AIStarIcon,\n ArrowRightIcon,\n BaseEventButton,\n ChangeHeight,\n ChevronDownIcon,\n CollapseHeight,\n DisplayClickProvider,\n Fade,\n SlidingPanel,\n SpinnerIcon,\n} from '../../../components'\nimport DisplayEmitter from '../../../components/display-emitter.vue'\nimport { use$x, useGetter, useState } from '../../../composables'\nimport { typing } from '../../../directives'\nimport { aiXModule } from '../x-module'\n\nexport default defineComponent({\n directives: {\n typing,\n },\n xModule: aiXModule.name,\n components: {\n AIStarIcon,\n ArrowRightIcon,\n BaseEventButton,\n ChevronDownIcon,\n CollapseHeight,\n ChangeHeight,\n Fade,\n SlidingPanel,\n SpinnerIcon,\n DisplayEmitter,\n DisplayClickProvider,\n },\n props: {\n /* The text displayed when the question ended loading */\n title: {\n type: String,\n },\n /* The text displayed when the question is loading. */\n titleLoading: {\n type: String,\n default: 'Generating with Empathy AI',\n },\n /* The text displayed on the toggle button when collapsed. */\n expandText: {\n type: String,\n default: 'Show more',\n },\n /* The text displayed on the toggle button when expanded. */\n collapseText: {\n type: String,\n default: 'Show less',\n },\n /* Auto expand the AI Overview when there are queries in AI and no-results in search. */\n autoExpandInSearchNoResults: {\n type: Boolean,\n default: true,\n },\n /* The classes added to each sliding panel for each query. */\n slidingPanelsClasses: {\n type: String,\n },\n /* The classes added to each sliding panel container of each query. */\n slidingPanelContainersClasses: {\n type: String,\n },\n /* The classes added to each sliding panel button of each query. */\n slidingPanelButtonsClasses: {\n type: String,\n },\n },\n setup(props) {\n const $x = use$x()\n const { query } = useGetter('ai')\n const {\n suggestionText,\n responseText,\n suggestionsSearch,\n suggestionsLoading,\n tagging,\n isNoResults,\n queries,\n } = useState('ai')\n\n const emptyTaggingRequest: TaggingRequest = { url: '', params: {} }\n\n const aiOverviewRef = ref<HTMLDivElement | null>(null)\n const expanded = ref(false)\n const shouldAnimateSuggestion = ref(true)\n\n const buttonText = computed(() => (expanded.value ? props.collapseText : props.expandText))\n\n function emitAndSetExpand(isExpanded: boolean) {\n $x.emit('UserClickedAiOverviewExpandButton', expanded.value, {\n suggestionText: suggestionText.value,\n toolingDisplayClick: tagging.value?.toolingDisplayClick,\n })\n\n expanded.value = isExpanded\n if (!expanded.value) {\n aiOverviewRef.value?.scrollIntoView({ behavior: 'smooth' })\n shouldAnimateSuggestion.value = false\n }\n }\n\n /* Expand AIOverview programmatically when the `autoExpandInSearchNoResults` prop is active,\n the request for suggestions has ended; there are queries in AI and no-results in search. */\n watch([suggestionsLoading, () => $x.noResults], () => {\n if (\n props.autoExpandInSearchNoResults &&\n !suggestionsLoading.value &&\n queries.value.length &&\n $x.noResults\n ) {\n emitAndSetExpand(true)\n }\n })\n\n watch(query, () => {\n expanded.value = false\n shouldAnimateSuggestion.value = true\n })\n\n onMounted(() => {\n $x.emit('AiOverviewMounted', undefined, { feature: 'overview' })\n })\n\n return {\n aiOverviewRef,\n buttonText,\n emptyTaggingRequest,\n expanded,\n responseText,\n suggestionsLoading,\n suggestionsSearch,\n suggestionText,\n emitAndSetExpand,\n shouldAnimateSuggestion,\n query,\n tagging,\n isNoResults,\n queries,\n }\n },\n})\n</script>\n\n<style lang=\"css\">\n.x-ai-overview {\n --color: var(--x-ai-overview-color, #bbc9cf);\n --color-lighter: var(--x-ai-overview-color-lighter, color-mix(in srgb, var(--color) 25%, white));\n\n position: relative;\n border-radius: 1.5rem;\n background-color: var(--color-lighter);\n}\n\n.x-ai-overview-main {\n padding: 1rem;\n}\n\n.x-ai-overview-title {\n display: flex;\n font-size: 0.875rem;\n font-weight: 700;\n gap: 0.25rem;\n align-items: center;\n margin-bottom: 0.5rem;\n}\n\n.x-ai-overview-title-loading {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n margin-bottom: 0.5rem;\n}\n\n.x-ai-overview-title-loading-indicator {\n width: 0.75rem;\n height: 0.75rem;\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n border-radius: 9999px;\n background-color: var(--color);\n}\n\n.x-ai-overview-title-loading-text {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n font-size: 0.75rem;\n}\n\n.x-ai-overview-title-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n color: var(--color);\n flex-shrink: 0;\n}\n\n.x-ai-overview-content {\n display: flex;\n flex-direction: column;\n text-align: left;\n line-height: 1.25rem;\n gap: 0.5rem;\n}\n\n.x-ai-overview-content span {\n font-weight: 500;\n}\n\n.x-ai-overview-gradient {\n border-radius: 1.5rem;\n cursor: pointer;\n content: none;\n position: absolute;\n width: 100%;\n height: 100%;\n bottom: 0;\n background-image: linear-gradient(to bottom, transparent 0%, var(--color-lighter) 100%);\n}\n\n.x-ai-overview-toggle-wrapper {\n display: flex;\n position: relative;\n}\n\n.x-ai-overview-toggle-btn {\n border-color: var(--button-color-50, #283034);\n background-color: #ffffff;\n color: var(--button-color-50, #283034);\n border-radius: 9999px;\n width: 100%;\n margin: auto;\n padding-right: 1rem;\n padding-left: 1rem;\n display: flex;\n justify-content: center;\n align-items: center;\n border-style: solid;\n border-width: 1px;\n font-weight: 700;\n min-height: 2.5rem;\n gap: 0.5rem;\n font-size: 0.875rem;\n}\n\n.x-ai-overview-toggle-btn:hover {\n border-color: var(--button-color-50, #283034);\n background-color: var(--button-color-50, #283034);\n color: #ffffff;\n}\n\n@media (min-width: 640px) {\n .x-ai-overview-toggle-btn {\n transition-property: all;\n transition-duration: 500ms;\n transform: translateY(50%);\n width: var(--expand-button-width, 200px);\n }\n}\n\n.x-ai-overview-toggle-btn-icon {\n transform: rotate(0deg);\n height: 1rem;\n aspect-ratio: 1 / 1;\n transition-property: all;\n transition-duration: 300ms;\n}\n\n.x-ai-overview-toggle-btn-icon-expanded {\n transform: rotate(180deg);\n}\n\n.x-ai-overview-suggestion-query-btn {\n border-color: transparent;\n background-color: transparent;\n margin-left: 1rem;\n margin-right: 1rem;\n font-weight: 700;\n width: fit-content;\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.x-ai-overview-suggestion-query-btn-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n}\n\n.x-ai-overview-suggestions {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding-bottom: 1rem;\n}\n\n.x-ai-overview-suggestions-loading {\n width: 2.5rem;\n height: 2.5rem;\n margin: auto;\n animation: x-spin 1s linear infinite;\n}\n\n.x-ai-overview-suggestion {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.x-ai-overview-suggestion-results {\n display: flex;\n gap: 1rem;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n@keyframes x-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n</style>\n"],"names":["_createElementVNode","_createBlock","_openBlock","_createElementBlock","_createVNode","_renderSlot","_createTextVNode","_toDisplayString","_withCtx","_createCommentVNode","_normalizeStyle","_withDirectives","_Fragment","_renderList","_normalizeClass","_vShow","_withModifiers"],"mappings":"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"}
@@ -130,62 +130,39 @@ var _sfc_main = defineComponent({
130
130
  DisplayClickProvider: _sfc_main$2,
131
131
  },
132
132
  props: {
133
- /**
134
- * The text displayed when the question ended loading
135
- *
136
- * @public
137
- */
133
+ /* The text displayed when the question ended loading */
138
134
  title: {
139
135
  type: String,
140
136
  },
141
- /**
142
- * The text displayed when the question is loading.
143
- *
144
- * @public
145
- */
137
+ /* The text displayed when the question is loading. */
146
138
  titleLoading: {
147
139
  type: String,
148
140
  default: 'Generating with Empathy AI',
149
141
  },
150
- /**
151
- * The text displayed on the toggle button when collapsed.
152
- *
153
- * @public
154
- */
142
+ /* The text displayed on the toggle button when collapsed. */
155
143
  expandText: {
156
144
  type: String,
157
145
  default: 'Show more',
158
146
  },
159
- /**
160
- * The text displayed on the toggle button when expanded.
161
- *
162
- * @public
163
- */
147
+ /* The text displayed on the toggle button when expanded. */
164
148
  collapseText: {
165
149
  type: String,
166
150
  default: 'Show less',
167
151
  },
168
- /**
169
- * The classes added to each sliding panel for each query.
170
- *
171
- * @public
172
- */
152
+ /* Auto expand the AI Overview when there are queries in AI and no-results in search. */
153
+ autoExpandInSearchNoResults: {
154
+ type: Boolean,
155
+ default: true,
156
+ },
157
+ /* The classes added to each sliding panel for each query. */
173
158
  slidingPanelsClasses: {
174
159
  type: String,
175
160
  },
176
- /**
177
- * The classes added to each sliding panel container of each query.
178
- *
179
- * @public
180
- */
161
+ /* The classes added to each sliding panel container of each query. */
181
162
  slidingPanelContainersClasses: {
182
163
  type: String,
183
164
  },
184
- /**
185
- * The classes added to each sliding panel buttons of each query.
186
- *
187
- * @public
188
- */
165
+ /* The classes added to each sliding panel button of each query. */
189
166
  slidingPanelButtonsClasses: {
190
167
  type: String,
191
168
  },
@@ -199,20 +176,27 @@ var _sfc_main = defineComponent({
199
176
  const expanded = ref(false);
200
177
  const shouldAnimateSuggestion = ref(true);
201
178
  const buttonText = computed(() => (expanded.value ? props.collapseText : props.expandText));
202
- function onExpandButtonClick(newValue) {
179
+ function emitAndSetExpand(isExpanded) {
203
180
  $x.emit('UserClickedAiOverviewExpandButton', expanded.value, {
204
181
  suggestionText: suggestionText.value,
205
182
  toolingDisplayClick: tagging.value?.toolingDisplayClick,
206
183
  });
207
- setExpanded(newValue);
208
- }
209
- function setExpanded(newValue) {
210
- expanded.value = newValue;
184
+ expanded.value = isExpanded;
211
185
  if (!expanded.value) {
212
186
  aiOverviewRef.value?.scrollIntoView({ behavior: 'smooth' });
213
187
  shouldAnimateSuggestion.value = false;
214
188
  }
215
189
  }
190
+ /* Expand AIOverview programmatically when the `autoExpandInSearchNoResults` prop is active,
191
+ the request for suggestions has ended; there are queries in AI and no-results in search. */
192
+ watch([suggestionsLoading, () => $x.noResults], () => {
193
+ if (props.autoExpandInSearchNoResults &&
194
+ !suggestionsLoading.value &&
195
+ queries.value.length &&
196
+ $x.noResults) {
197
+ emitAndSetExpand(true);
198
+ }
199
+ });
216
200
  watch(query, () => {
217
201
  expanded.value = false;
218
202
  shouldAnimateSuggestion.value = true;
@@ -229,8 +213,7 @@ var _sfc_main = defineComponent({
229
213
  suggestionsLoading,
230
214
  suggestionsSearch,
231
215
  suggestionText,
232
- setExpanded,
233
- onExpandButtonClick,
216
+ emitAndSetExpand,
234
217
  shouldAnimateSuggestion,
235
218
  query,
236
219
  tagging,