react-instantsearch 7.31.0 → 7.32.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.
@@ -19,7 +19,7 @@ var AutocompleteSearchComponent = (0, _instantsearchuicomponents.createAutocompl
19
19
  Fragment: _react.Fragment
20
20
  });
21
21
  function AutocompleteSearch(param) {
22
- var inputProps = param.inputProps, clearQuery = param.clearQuery, onQueryChange = param.onQueryChange, query = param.query, isSearchStalled = param.isSearchStalled, onCancel = param.onCancel, isDetached = param.isDetached, submitTitle = param.submitTitle, onAiModeClick = param.onAiModeClick;
22
+ var inputProps = param.inputProps, clearQuery = param.clearQuery, onQueryChange = param.onQueryChange, query = param.query, isSearchStalled = param.isSearchStalled, onCancel = param.onCancel, isDetached = param.isDetached, submitTitle = param.submitTitle, onAiModeClick = param.onAiModeClick, classNames = param.classNames;
23
23
  return /*#__PURE__*/ _react.default.createElement(AutocompleteSearchComponent, {
24
24
  inputProps: _object_spread_props._(_object_spread._({}, inputProps), {
25
25
  onChange: function onChange(event) {
@@ -33,6 +33,7 @@ function AutocompleteSearch(param) {
33
33
  onCancel: onCancel,
34
34
  isDetached: isDetached,
35
35
  submitTitle: submitTitle,
36
- onAiModeClick: onAiModeClick
36
+ onAiModeClick: onAiModeClick,
37
+ classNames: classNames
37
38
  });
38
39
  }
@@ -582,9 +582,16 @@ function InnerAutocomplete(_0) {
582
582
  });
583
583
  }
584
584
  }
585
- } : undefined
585
+ } : undefined,
586
+ classNames: classNames
586
587
  });
587
- var panelContent = /*#__PURE__*/ _react.default.createElement(AutocompletePanel, getPanelProps(), PanelComponent ? /*#__PURE__*/ _react.default.createElement(PanelComponent, {
588
+ var panelContent = /*#__PURE__*/ _react.default.createElement(AutocompletePanel, _object_spread_props._(_object_spread._({}, getPanelProps()), {
589
+ classNames: {
590
+ root: classNames === null || classNames === void 0 ? void 0 : classNames.panel,
591
+ open: classNames === null || classNames === void 0 ? void 0 : classNames.panelOpen,
592
+ layout: classNames === null || classNames === void 0 ? void 0 : classNames.panelLayout
593
+ }
594
+ }), PanelComponent ? /*#__PURE__*/ _react.default.createElement(PanelComponent, {
588
595
  elements: elements,
589
596
  indices: indicesForPanel
590
597
  }) : Object.keys(elements).map(function(elementId) {
@@ -13,6 +13,9 @@ _export(exports, {
13
13
  get Chat () {
14
14
  return Chat;
15
15
  },
16
+ get DisplayResultsToolType () {
17
+ return _chat.DisplayResultsToolType;
18
+ },
16
19
  get MemorizeToolType () {
17
20
  return _chat.MemorizeToolType;
18
21
  },
@@ -44,6 +47,7 @@ var _chat = require("instantsearch.js/cjs/lib/chat");
44
47
  var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
45
48
  var _reactinstantsearchcore = require("react-instantsearch-core");
46
49
  var _useStickToBottom = require("../lib/useStickToBottom");
50
+ var _DisplayResultsTool = require("./chat/tools/DisplayResultsTool");
47
51
  var _SearchIndexTool = require("./chat/tools/SearchIndexTool");
48
52
  var ChatUiComponent = (0, _instantsearchuicomponents.createChatComponent)({
49
53
  createElement: _react.createElement,
@@ -51,7 +55,7 @@ var ChatUiComponent = (0, _instantsearchuicomponents.createChatComponent)({
51
55
  });
52
56
  function createDefaultTools(itemComponent, getSearchPageURL) {
53
57
  var _obj;
54
- return _obj = {}, _define_property._(_obj, _chat.SearchIndexToolType, (0, _SearchIndexTool.createCarouselTool)(true, itemComponent, getSearchPageURL)), _define_property._(_obj, _chat.RecommendToolType, (0, _SearchIndexTool.createCarouselTool)(false, itemComponent, getSearchPageURL)), _define_property._(_obj, _chat.MemorizeToolType, {}), _define_property._(_obj, _chat.MemorySearchToolType, {}), _define_property._(_obj, _chat.PonderToolType, {}), _obj;
58
+ return _obj = {}, _define_property._(_obj, _chat.SearchIndexToolType, (0, _SearchIndexTool.createCarouselTool)(true, itemComponent, getSearchPageURL)), _define_property._(_obj, _chat.RecommendToolType, (0, _SearchIndexTool.createCarouselTool)(false, itemComponent, getSearchPageURL)), _define_property._(_obj, _chat.DisplayResultsToolType, (0, _DisplayResultsTool.createDisplayResultsTool)(itemComponent)), _define_property._(_obj, _chat.MemorizeToolType, {}), _define_property._(_obj, _chat.MemorySearchToolType, {}), _define_property._(_obj, _chat.PonderToolType, {}), _obj;
55
59
  }
56
60
  function ChatInner(_0, _1) {
57
61
  var _ref = [
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "createDisplayResultsTool", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return createDisplayResultsTool;
10
+ }
11
+ });
12
+ var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
+ var _instantsearchuicomponents = require("instantsearch-ui-components");
14
+ var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
15
+ var _components = require("../../../components");
16
+ function createDisplayResultsTool(itemComponent) {
17
+ var DisplayResultsUIComponent = (0, _instantsearchuicomponents.createDisplayResultsToolComponent)({
18
+ createElement: _react.createElement,
19
+ Fragment: _react.Fragment
20
+ });
21
+ var Button = (0, _instantsearchuicomponents.createButtonComponent)({
22
+ createElement: _react.createElement
23
+ });
24
+ var DisplayResultsLayoutComponent = function DisplayResultsLayoutComponent(toolProps) {
25
+ return /*#__PURE__*/ _react.default.createElement(DisplayResultsUIComponent, {
26
+ toolProps: toolProps,
27
+ groupCarouselComponent: function groupCarouselComponent(param) {
28
+ var items = param.items, sendEvent = param.sendEvent;
29
+ return /*#__PURE__*/ _react.default.createElement(_components.Carousel, {
30
+ items: items,
31
+ itemComponent: itemComponent,
32
+ sendEvent: sendEvent,
33
+ showNavigation: false,
34
+ headerComponent: function headerComponent(param) {
35
+ var canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight;
36
+ return /*#__PURE__*/ _react.default.createElement("div", {
37
+ className: "ais-ChatToolDisplayResultsCarouselHeader"
38
+ }, /*#__PURE__*/ _react.default.createElement("div", {
39
+ className: "ais-ChatToolDisplayResultsCarouselHeaderCount"
40
+ }, items.length, " result", items.length > 1 ? 's' : ''), /*#__PURE__*/ _react.default.createElement("div", {
41
+ className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButtons"
42
+ }, /*#__PURE__*/ _react.default.createElement(Button, {
43
+ variant: "outline",
44
+ size: "sm",
45
+ iconOnly: true,
46
+ onClick: scrollLeft,
47
+ disabled: !canScrollLeft,
48
+ className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
49
+ }, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronLeftIcon, {
50
+ createElement: _react.createElement
51
+ })), /*#__PURE__*/ _react.default.createElement(Button, {
52
+ variant: "outline",
53
+ size: "sm",
54
+ iconOnly: true,
55
+ onClick: scrollRight,
56
+ disabled: !canScrollRight,
57
+ className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
58
+ }, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronRightIcon, {
59
+ createElement: _react.createElement
60
+ }))));
61
+ }
62
+ });
63
+ }
64
+ });
65
+ };
66
+ return {
67
+ layoutComponent: DisplayResultsLayoutComponent
68
+ };
69
+ }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { ComponentProps } from 'instantsearch-ui-components';
2
+ import type { AutocompleteClassNames, ComponentProps } from 'instantsearch-ui-components';
3
3
  export type AutocompleteSearchProps = {
4
4
  inputProps: ComponentProps<'input'>;
5
5
  clearQuery: () => void;
@@ -10,5 +10,6 @@ export type AutocompleteSearchProps = {
10
10
  isDetached?: boolean;
11
11
  submitTitle?: string;
12
12
  onAiModeClick?: () => void;
13
+ classNames?: Partial<AutocompleteClassNames>;
13
14
  };
14
- export declare function AutocompleteSearch({ inputProps, clearQuery, onQueryChange, query, isSearchStalled, onCancel, isDetached, submitTitle, onAiModeClick, }: AutocompleteSearchProps): React.JSX.Element;
15
+ export declare function AutocompleteSearch({ inputProps, clearQuery, onQueryChange, query, isSearchStalled, onCancel, isDetached, submitTitle, onAiModeClick, classNames, }: AutocompleteSearchProps): React.JSX.Element;
@@ -8,7 +8,7 @@ var AutocompleteSearchComponent = createAutocompleteSearchComponent({
8
8
  Fragment: Fragment
9
9
  });
10
10
  function AutocompleteSearch(param) {
11
- var inputProps = param.inputProps, clearQuery = param.clearQuery, onQueryChange = param.onQueryChange, query = param.query, isSearchStalled = param.isSearchStalled, onCancel = param.onCancel, isDetached = param.isDetached, submitTitle = param.submitTitle, onAiModeClick = param.onAiModeClick;
11
+ var inputProps = param.inputProps, clearQuery = param.clearQuery, onQueryChange = param.onQueryChange, query = param.query, isSearchStalled = param.isSearchStalled, onCancel = param.onCancel, isDetached = param.isDetached, submitTitle = param.submitTitle, onAiModeClick = param.onAiModeClick, classNames = param.classNames;
12
12
  return /*#__PURE__*/ React.createElement(AutocompleteSearchComponent, {
13
13
  inputProps: _(_$1({}, inputProps), {
14
14
  onChange: function onChange(event) {
@@ -22,7 +22,8 @@ function AutocompleteSearch(param) {
22
22
  onCancel: onCancel,
23
23
  isDetached: isDetached,
24
24
  submitTitle: submitTitle,
25
- onAiModeClick: onAiModeClick
25
+ onAiModeClick: onAiModeClick,
26
+ classNames: classNames
26
27
  });
27
28
  }
28
29
 
package/dist/es/index.js CHANGED
@@ -2,7 +2,7 @@ export * from 'react-instantsearch-core';
2
2
  export { useStickToBottom } from './lib/useStickToBottom.js';
3
3
  export { EXPERIMENTAL_Autocomplete } from './widgets/Autocomplete.js';
4
4
  export { Breadcrumb } from './widgets/Breadcrumb.js';
5
- export { MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
5
+ export { DisplayResultsToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
6
6
  export { Chat, createDefaultTools } from './widgets/Chat.js';
7
7
  export { ClearRefinements } from './widgets/ClearRefinements.js';
8
8
  export { CurrentRefinements } from './widgets/CurrentRefinements.js';
@@ -571,9 +571,16 @@ function InnerAutocomplete(_0) {
571
571
  });
572
572
  }
573
573
  }
574
- } : undefined
574
+ } : undefined,
575
+ classNames: classNames
575
576
  });
576
- var panelContent = /*#__PURE__*/ React.createElement(AutocompletePanel, getPanelProps(), PanelComponent ? /*#__PURE__*/ React.createElement(PanelComponent, {
577
+ var panelContent = /*#__PURE__*/ React.createElement(AutocompletePanel, _$4(_$1({}, getPanelProps()), {
578
+ classNames: {
579
+ root: classNames === null || classNames === void 0 ? void 0 : classNames.panel,
580
+ open: classNames === null || classNames === void 0 ? void 0 : classNames.panelOpen,
581
+ layout: classNames === null || classNames === void 0 ? void 0 : classNames.panelLayout
582
+ }
583
+ }), PanelComponent ? /*#__PURE__*/ React.createElement(PanelComponent, {
577
584
  elements: elements,
578
585
  indices: indicesForPanel
579
586
  }) : Object.keys(elements).map(function(elementId) {
@@ -1,6 +1,6 @@
1
- import { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType } from 'instantsearch.js/es/lib/chat';
1
+ import { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, DisplayResultsToolType } from 'instantsearch.js/es/lib/chat';
2
2
  import React from 'react';
3
- export { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, };
3
+ export { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, DisplayResultsToolType, };
4
4
  import type { ChatProps as ChatUiProps, ChatLayoutOwnProps, RecommendComponentProps, RecordWithObjectID, UserClientSideTool, UserClientSideTools, ChatMessageProps } from 'instantsearch-ui-components';
5
5
  import type { IndexUiState } from 'instantsearch.js';
6
6
  import type { UIMessage } from 'instantsearch.js/es/lib/chat';
@@ -5,11 +5,12 @@ import { _ as _$2 } from '@swc/helpers/esm/_object_without_properties.js';
5
5
  import { _ as _$3 } from '@swc/helpers/esm/_sliced_to_array.js';
6
6
  import { _ as _$1 } from '@swc/helpers/esm/_to_array.js';
7
7
  import { createChatComponent } from 'instantsearch-ui-components';
8
- import { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType } from 'instantsearch.js/es/lib/chat/index.js';
9
- export { MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
8
+ import { SearchIndexToolType, RecommendToolType, DisplayResultsToolType, MemorizeToolType, MemorySearchToolType, PonderToolType } from 'instantsearch.js/es/lib/chat/index.js';
9
+ export { DisplayResultsToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
10
10
  import React, { createElement, Fragment, useState, useRef, useMemo, useImperativeHandle, useEffect } from 'react';
11
11
  import { useInstantSearch, useChat } from 'react-instantsearch-core';
12
12
  import { useStickToBottom } from '../lib/useStickToBottom.js';
13
+ import { createDisplayResultsTool } from './chat/tools/DisplayResultsTool.js';
13
14
  import { createCarouselTool } from './chat/tools/SearchIndexTool.js';
14
15
 
15
16
  var ChatUiComponent = createChatComponent({
@@ -18,7 +19,7 @@ var ChatUiComponent = createChatComponent({
18
19
  });
19
20
  function createDefaultTools(itemComponent, getSearchPageURL) {
20
21
  var _obj;
21
- return _obj = {}, _(_obj, SearchIndexToolType, createCarouselTool(true, itemComponent, getSearchPageURL)), _(_obj, RecommendToolType, createCarouselTool(false, itemComponent, getSearchPageURL)), _(_obj, MemorizeToolType, {}), _(_obj, MemorySearchToolType, {}), _(_obj, PonderToolType, {}), _obj;
22
+ return _obj = {}, _(_obj, SearchIndexToolType, createCarouselTool(true, itemComponent, getSearchPageURL)), _(_obj, RecommendToolType, createCarouselTool(false, itemComponent, getSearchPageURL)), _(_obj, DisplayResultsToolType, createDisplayResultsTool(itemComponent)), _(_obj, MemorizeToolType, {}), _(_obj, MemorySearchToolType, {}), _(_obj, PonderToolType, {}), _obj;
22
23
  }
23
24
  function ChatInner(_0, _1) {
24
25
  var _ref = [
@@ -0,0 +1,4 @@
1
+ import type { RecommendComponentProps, RecordWithObjectID, UserClientSideTool } from 'instantsearch-ui-components';
2
+ type ItemComponent<TObject> = RecommendComponentProps<TObject>['itemComponent'];
3
+ declare function createDisplayResultsTool<TObject extends RecordWithObjectID>(itemComponent?: ItemComponent<TObject>): UserClientSideTool;
4
+ export { createDisplayResultsTool };
@@ -0,0 +1,60 @@
1
+ import { createDisplayResultsToolComponent, createButtonComponent, ChevronLeftIcon, ChevronRightIcon } from 'instantsearch-ui-components';
2
+ import React, { createElement, Fragment } from 'react';
3
+ import { Carousel } from '../../../components/Carousel.js';
4
+
5
+ function createDisplayResultsTool(itemComponent) {
6
+ var DisplayResultsUIComponent = createDisplayResultsToolComponent({
7
+ createElement: createElement,
8
+ Fragment: Fragment
9
+ });
10
+ var Button = createButtonComponent({
11
+ createElement: createElement
12
+ });
13
+ var DisplayResultsLayoutComponent = function DisplayResultsLayoutComponent(toolProps) {
14
+ return /*#__PURE__*/ React.createElement(DisplayResultsUIComponent, {
15
+ toolProps: toolProps,
16
+ groupCarouselComponent: function groupCarouselComponent(param) {
17
+ var items = param.items, sendEvent = param.sendEvent;
18
+ return /*#__PURE__*/ React.createElement(Carousel, {
19
+ items: items,
20
+ itemComponent: itemComponent,
21
+ sendEvent: sendEvent,
22
+ showNavigation: false,
23
+ headerComponent: function headerComponent(param) {
24
+ var canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight;
25
+ return /*#__PURE__*/ React.createElement("div", {
26
+ className: "ais-ChatToolDisplayResultsCarouselHeader"
27
+ }, /*#__PURE__*/ React.createElement("div", {
28
+ className: "ais-ChatToolDisplayResultsCarouselHeaderCount"
29
+ }, items.length, " result", items.length > 1 ? 's' : ''), /*#__PURE__*/ React.createElement("div", {
30
+ className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButtons"
31
+ }, /*#__PURE__*/ React.createElement(Button, {
32
+ variant: "outline",
33
+ size: "sm",
34
+ iconOnly: true,
35
+ onClick: scrollLeft,
36
+ disabled: !canScrollLeft,
37
+ className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
38
+ }, /*#__PURE__*/ React.createElement(ChevronLeftIcon, {
39
+ createElement: createElement
40
+ })), /*#__PURE__*/ React.createElement(Button, {
41
+ variant: "outline",
42
+ size: "sm",
43
+ iconOnly: true,
44
+ onClick: scrollRight,
45
+ disabled: !canScrollRight,
46
+ className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
47
+ }, /*#__PURE__*/ React.createElement(ChevronRightIcon, {
48
+ createElement: createElement
49
+ }))));
50
+ }
51
+ });
52
+ }
53
+ });
54
+ };
55
+ return {
56
+ layoutComponent: DisplayResultsLayoutComponent
57
+ };
58
+ }
59
+
60
+ export { createDisplayResultsTool };
@@ -25,4 +25,4 @@ export { ToggleRefinement } from './ToggleRefinement.js';
25
25
  export { TrendingItems } from './TrendingItems.js';
26
26
  export { TrendingFacets } from './TrendingFacets.js';
27
27
  export { FilterSuggestions } from './FilterSuggestions.js';
28
- export { MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
28
+ export { DisplayResultsToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';