react-instantsearch 7.17.0 → 7.19.0

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 (111) hide show
  1. package/dist/cjs/components/AutocompleteSearch.js +38 -0
  2. package/dist/cjs/components/Carousel.js +6 -7
  3. package/dist/cjs/ui/Breadcrumb.js +4 -4
  4. package/dist/cjs/ui/ClearRefinements.js +4 -4
  5. package/dist/cjs/ui/CurrentRefinements.js +4 -4
  6. package/dist/cjs/ui/HierarchicalMenu.js +4 -4
  7. package/dist/cjs/ui/Highlight.js +4 -4
  8. package/dist/cjs/ui/HitsPerPage.js +4 -4
  9. package/dist/cjs/ui/InfiniteHits.js +4 -4
  10. package/dist/cjs/ui/Menu.js +4 -4
  11. package/dist/cjs/ui/Pagination.js +4 -4
  12. package/dist/cjs/ui/PoweredBy.js +4 -4
  13. package/dist/cjs/ui/RangeInput.js +8 -9
  14. package/dist/cjs/ui/RefinementList.js +4 -4
  15. package/dist/cjs/ui/SearchBox.js +4 -4
  16. package/dist/cjs/ui/ShowMoreButton.js +3 -3
  17. package/dist/cjs/ui/Snippet.js +4 -4
  18. package/dist/cjs/ui/SortBy.js +4 -4
  19. package/dist/cjs/ui/Stats.js +4 -4
  20. package/dist/cjs/ui/ToggleRefinement.js +4 -4
  21. package/dist/cjs/widgets/Autocomplete.js +215 -0
  22. package/dist/cjs/widgets/Breadcrumb.js +6 -6
  23. package/dist/cjs/widgets/Chat.js +48 -94
  24. package/dist/cjs/widgets/ClearRefinements.js +6 -6
  25. package/dist/cjs/widgets/CurrentRefinements.js +4 -4
  26. package/dist/cjs/widgets/FrequentlyBoughtTogether.js +9 -8
  27. package/dist/cjs/widgets/HierarchicalMenu.js +6 -6
  28. package/dist/cjs/widgets/Highlight.js +4 -4
  29. package/dist/cjs/widgets/Hits.js +4 -5
  30. package/dist/cjs/widgets/HitsPerPage.js +4 -4
  31. package/dist/cjs/widgets/InfiniteHits.js +6 -6
  32. package/dist/cjs/widgets/LookingSimilar.js +6 -7
  33. package/dist/cjs/widgets/Menu.js +6 -6
  34. package/dist/cjs/widgets/Pagination.js +6 -6
  35. package/dist/cjs/widgets/PoweredBy.js +2 -2
  36. package/dist/cjs/widgets/RangeInput.js +6 -6
  37. package/dist/cjs/widgets/RefinementList.js +10 -11
  38. package/dist/cjs/widgets/RelatedProducts.js +6 -7
  39. package/dist/cjs/widgets/SearchBox.js +10 -11
  40. package/dist/cjs/widgets/Snippet.js +4 -4
  41. package/dist/cjs/widgets/SortBy.js +4 -4
  42. package/dist/cjs/widgets/Stats.js +6 -6
  43. package/dist/cjs/widgets/ToggleRefinement.js +4 -4
  44. package/dist/cjs/widgets/TrendingItems.js +6 -7
  45. package/dist/cjs/widgets/chat/tools/SearchIndexTool.js +4 -5
  46. package/dist/cjs/widgets/index.js +11 -0
  47. package/dist/cjs/widgets/index.umd.js +12 -0
  48. package/dist/es/components/AutocompleteSearch.d.ts +6 -0
  49. package/dist/es/components/AutocompleteSearch.js +31 -0
  50. package/dist/es/components/Carousel.js +5 -5
  51. package/dist/es/ui/Breadcrumb.js +3 -3
  52. package/dist/es/ui/ClearRefinements.js +3 -3
  53. package/dist/es/ui/CurrentRefinements.js +3 -3
  54. package/dist/es/ui/HierarchicalMenu.js +3 -3
  55. package/dist/es/ui/Highlight.js +3 -3
  56. package/dist/es/ui/HitsPerPage.js +3 -3
  57. package/dist/es/ui/InfiniteHits.js +3 -3
  58. package/dist/es/ui/Menu.js +3 -3
  59. package/dist/es/ui/Pagination.js +3 -3
  60. package/dist/es/ui/PoweredBy.js +3 -3
  61. package/dist/es/ui/RangeInput.js +7 -7
  62. package/dist/es/ui/RefinementList.js +3 -3
  63. package/dist/es/ui/SearchBox.js +3 -3
  64. package/dist/es/ui/ShowMoreButton.js +2 -2
  65. package/dist/es/ui/Snippet.js +3 -3
  66. package/dist/es/ui/SortBy.js +3 -3
  67. package/dist/es/ui/Stats.js +3 -3
  68. package/dist/es/ui/ToggleRefinement.js +3 -3
  69. package/dist/es/widgets/Autocomplete.d.ts +34 -0
  70. package/dist/es/widgets/Autocomplete.js +208 -0
  71. package/dist/es/widgets/Breadcrumb.js +5 -5
  72. package/dist/es/widgets/Chat.d.ts +10 -6
  73. package/dist/es/widgets/Chat.js +47 -92
  74. package/dist/es/widgets/ClearRefinements.js +5 -5
  75. package/dist/es/widgets/CurrentRefinements.js +3 -3
  76. package/dist/es/widgets/FrequentlyBoughtTogether.d.ts +1 -1
  77. package/dist/es/widgets/FrequentlyBoughtTogether.js +8 -6
  78. package/dist/es/widgets/HierarchicalMenu.js +5 -5
  79. package/dist/es/widgets/Highlight.js +3 -3
  80. package/dist/es/widgets/Hits.js +3 -3
  81. package/dist/es/widgets/HitsPerPage.js +3 -3
  82. package/dist/es/widgets/InfiniteHits.js +5 -5
  83. package/dist/es/widgets/LookingSimilar.js +5 -5
  84. package/dist/es/widgets/Menu.js +5 -5
  85. package/dist/es/widgets/Pagination.js +5 -5
  86. package/dist/es/widgets/PoweredBy.js +1 -1
  87. package/dist/es/widgets/RangeInput.js +5 -5
  88. package/dist/es/widgets/RefinementList.js +9 -9
  89. package/dist/es/widgets/RelatedProducts.js +5 -5
  90. package/dist/es/widgets/SearchBox.js +9 -9
  91. package/dist/es/widgets/Snippet.js +3 -3
  92. package/dist/es/widgets/SortBy.js +3 -3
  93. package/dist/es/widgets/Stats.js +5 -5
  94. package/dist/es/widgets/ToggleRefinement.js +3 -3
  95. package/dist/es/widgets/TrendingItems.js +5 -5
  96. package/dist/es/widgets/chat/tools/SearchIndexTool.js +3 -3
  97. package/dist/es/widgets/index.d.ts +1 -0
  98. package/dist/es/widgets/index.js +1 -0
  99. package/dist/es/widgets/index.umd.d.ts +1 -0
  100. package/dist/es/widgets/index.umd.js +1 -0
  101. package/dist/umd/ReactInstantSearch.js +2959 -2263
  102. package/dist/umd/ReactInstantSearch.js.map +1 -1
  103. package/dist/umd/ReactInstantSearch.min.js +1 -1
  104. package/dist/umd/ReactInstantSearch.min.js.map +1 -1
  105. package/package.json +5 -5
  106. package/dist/cjs/components/Autocomplete.js +0 -114
  107. package/dist/cjs/components/useAutocomplete.js +0 -237
  108. package/dist/es/components/Autocomplete.d.ts +0 -20
  109. package/dist/es/components/Autocomplete.js +0 -106
  110. package/dist/es/components/useAutocomplete.d.ts +0 -35
  111. package/dist/es/components/useAutocomplete.js +0 -231
@@ -0,0 +1,208 @@
1
+ var _excluded = ["indices", "showSuggestions", "showRecent"],
2
+ _excluded2 = ["indicesConfig", "refineSearchBox", "getSearchPageURL", "onSelect", "indexUiState", "isSearchPage", "showRecent"];
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
10
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
11
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
14
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
15
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
17
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
18
+ import { createAutocompleteComponent, createAutocompleteIndexComponent, createAutocompletePanelComponent, createAutocompletePropGetters, createAutocompleteSuggestionComponent, createAutocompleteRecentSearchComponent, createAutocompleteStorage, cx } from 'instantsearch-ui-components';
19
+ import React, { createElement, Fragment, useEffect, useId, useMemo, useRef, useState } from 'react';
20
+ import { Configure, Index, useAutocomplete, useInstantSearch, useSearchBox } from 'react-instantsearch-core';
21
+ import { AutocompleteSearch } from "../components/AutocompleteSearch.js";
22
+ var Autocomplete = createAutocompleteComponent({
23
+ createElement: createElement,
24
+ Fragment: Fragment
25
+ });
26
+ var AutocompletePanel = createAutocompletePanelComponent({
27
+ createElement: createElement,
28
+ Fragment: Fragment
29
+ });
30
+ var AutocompleteIndex = createAutocompleteIndexComponent({
31
+ createElement: createElement,
32
+ Fragment: Fragment
33
+ });
34
+ var AutocompleteSuggestion = createAutocompleteSuggestionComponent({
35
+ createElement: createElement,
36
+ Fragment: Fragment
37
+ });
38
+ var AutocompleteRecentSearch = createAutocompleteRecentSearchComponent({
39
+ createElement: createElement,
40
+ Fragment: Fragment
41
+ });
42
+ var usePropGetters = createAutocompletePropGetters({
43
+ useEffect: useEffect,
44
+ useId: useId,
45
+ useMemo: useMemo,
46
+ useRef: useRef,
47
+ useState: useState
48
+ });
49
+ var useStorage = createAutocompleteStorage({
50
+ useEffect: useEffect,
51
+ useMemo: useMemo,
52
+ useState: useState
53
+ });
54
+ var _ref2 = /*#__PURE__*/React.createElement(Configure, {
55
+ hitsPerPage: 5
56
+ });
57
+ export function EXPERIMENTAL_Autocomplete(_ref) {
58
+ var _ref$indices = _ref.indices,
59
+ indices = _ref$indices === void 0 ? [] : _ref$indices,
60
+ showSuggestions = _ref.showSuggestions,
61
+ showRecent = _ref.showRecent,
62
+ props = _objectWithoutProperties(_ref, _excluded);
63
+ var _useInstantSearch = useInstantSearch(),
64
+ indexUiState = _useInstantSearch.indexUiState,
65
+ indexRenderState = _useInstantSearch.indexRenderState;
66
+ var _useSearchBox = useSearchBox({}, {
67
+ $$type: 'ais.autocomplete',
68
+ $$widgetType: 'ais.autocomplete'
69
+ }),
70
+ refine = _useSearchBox.refine;
71
+ var indicesConfig = _toConsumableArray(indices);
72
+ if (showSuggestions !== null && showSuggestions !== void 0 && showSuggestions.indexName) {
73
+ var _showSuggestions$clas, _showSuggestions$clas2, _showSuggestions$clas3, _showSuggestions$clas4;
74
+ indicesConfig.unshift({
75
+ indexName: showSuggestions.indexName,
76
+ headerComponent: showSuggestions.headerComponent,
77
+ itemComponent: showSuggestions.itemComponent || AutocompleteSuggestion,
78
+ classNames: {
79
+ root: cx('ais-AutocompleteSuggestions', showSuggestions === null || showSuggestions === void 0 ? void 0 : (_showSuggestions$clas = showSuggestions.classNames) === null || _showSuggestions$clas === void 0 ? void 0 : _showSuggestions$clas.root),
80
+ list: cx('ais-AutocompleteSuggestionsList', showSuggestions === null || showSuggestions === void 0 ? void 0 : (_showSuggestions$clas2 = showSuggestions.classNames) === null || _showSuggestions$clas2 === void 0 ? void 0 : _showSuggestions$clas2.list),
81
+ header: cx('ais-AutocompleteSuggestionsHeader', showSuggestions === null || showSuggestions === void 0 ? void 0 : (_showSuggestions$clas3 = showSuggestions.classNames) === null || _showSuggestions$clas3 === void 0 ? void 0 : _showSuggestions$clas3.header),
82
+ item: cx('ais-AutocompleteSuggestionsItem', showSuggestions === null || showSuggestions === void 0 ? void 0 : (_showSuggestions$clas4 = showSuggestions.classNames) === null || _showSuggestions$clas4 === void 0 ? void 0 : _showSuggestions$clas4.item)
83
+ },
84
+ getQuery: function getQuery(item) {
85
+ return item.query;
86
+ },
87
+ getURL: showSuggestions.getURL
88
+ });
89
+ }
90
+ var isSearchPage = useMemo(function () {
91
+ return typeof indexRenderState.hits !== 'undefined' || typeof indexRenderState.infiniteHits !== 'undefined';
92
+ }, [indexRenderState]);
93
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Index, {
94
+ EXPERIMENTAL_isolated: true
95
+ }, _ref2, indicesConfig.map(function (index) {
96
+ return /*#__PURE__*/React.createElement(Index, {
97
+ key: index.indexName,
98
+ indexName: index.indexName
99
+ });
100
+ }), /*#__PURE__*/React.createElement(InnerAutocomplete, _extends({}, props, {
101
+ indicesConfig: indicesConfig,
102
+ refineSearchBox: refine,
103
+ indexUiState: indexUiState,
104
+ isSearchPage: isSearchPage,
105
+ showRecent: showRecent
106
+ }))));
107
+ }
108
+ function InnerAutocomplete(_ref3) {
109
+ var indicesConfig = _ref3.indicesConfig,
110
+ refineSearchBox = _ref3.refineSearchBox,
111
+ getSearchPageURL = _ref3.getSearchPageURL,
112
+ userOnSelect = _ref3.onSelect,
113
+ indexUiState = _ref3.indexUiState,
114
+ isSearchPage = _ref3.isSearchPage,
115
+ showRecent = _ref3.showRecent,
116
+ props = _objectWithoutProperties(_ref3, _excluded2);
117
+ var _useAutocomplete = useAutocomplete(),
118
+ indices = _useAutocomplete.indices,
119
+ refineAutocomplete = _useAutocomplete.refine,
120
+ currentRefinement = _useAutocomplete.currentRefinement;
121
+ var _useStorage = useStorage({
122
+ showRecent: showRecent,
123
+ query: currentRefinement,
124
+ indices: indices,
125
+ indicesConfig: indicesConfig
126
+ }),
127
+ storage = _useStorage.storage,
128
+ storageHits = _useStorage.storageHits,
129
+ indicesForPropGetters = _useStorage.indicesForPropGetters,
130
+ indicesConfigForPropGetters = _useStorage.indicesConfigForPropGetters;
131
+ var _usePropGetters = usePropGetters({
132
+ indices: indicesForPropGetters,
133
+ indicesConfig: indicesConfigForPropGetters,
134
+ onRefine: function onRefine(query) {
135
+ refineAutocomplete(query);
136
+ refineSearchBox(query);
137
+ storage.onAdd(query);
138
+ },
139
+ onSelect: userOnSelect !== null && userOnSelect !== void 0 ? userOnSelect : function (_ref4) {
140
+ var query = _ref4.query,
141
+ setQuery = _ref4.setQuery,
142
+ url = _ref4.url;
143
+ if (url) {
144
+ window.location.href = url;
145
+ return;
146
+ }
147
+ if (!isSearchPage && typeof getSearchPageURL !== 'undefined') {
148
+ window.location.href = getSearchPageURL(_objectSpread(_objectSpread({}, indexUiState), {}, {
149
+ query: query
150
+ }));
151
+ return;
152
+ }
153
+ setQuery(query);
154
+ }
155
+ }),
156
+ getInputProps = _usePropGetters.getInputProps,
157
+ getItemProps = _usePropGetters.getItemProps,
158
+ getPanelProps = _usePropGetters.getPanelProps,
159
+ getRootProps = _usePropGetters.getRootProps;
160
+ var AutocompleteRecentSearchComponent = _typeof(showRecent) === 'object' && showRecent.itemComponent || AutocompleteRecentSearch;
161
+ return /*#__PURE__*/React.createElement(Autocomplete, _extends({}, props, getRootProps()), /*#__PURE__*/React.createElement(AutocompleteSearch, {
162
+ inputProps: getInputProps(),
163
+ clearQuery: function clearQuery() {
164
+ refineSearchBox('');
165
+ refineAutocomplete('');
166
+ }
167
+ }), /*#__PURE__*/React.createElement(AutocompletePanel, getPanelProps(), showRecent && /*#__PURE__*/React.createElement(AutocompleteIndex
168
+ // @ts-ignore - there seems to be problems with React.ComponentType and this, but it's actually correct
169
+ , {
170
+ ItemComponent: function ItemComponent(_ref5) {
171
+ var item = _ref5.item,
172
+ onSelect = _ref5.onSelect;
173
+ return /*#__PURE__*/React.createElement(AutocompleteRecentSearchComponent, {
174
+ item: item,
175
+ onSelect: onSelect,
176
+ onRemoveRecentSearch: function onRemoveRecentSearch() {
177
+ return storage.onRemove(item.query);
178
+ }
179
+ });
180
+ },
181
+ classNames: {
182
+ root: 'ais-AutocompleteRecentSearches',
183
+ list: 'ais-AutocompleteRecentSearchesList',
184
+ item: 'ais-AutocompleteRecentSearchesItem'
185
+ },
186
+ items: storageHits,
187
+ getItemProps: getItemProps
188
+ }), indices.map(function (_ref6, index) {
189
+ var indexId = _ref6.indexId,
190
+ hits = _ref6.hits;
191
+ return /*#__PURE__*/React.createElement(AutocompleteIndex, {
192
+ key: indexId
193
+ // @ts-expect-error - there seems to be problems with React.ComponentType and this, but it's actually correct
194
+ ,
195
+ HeaderComponent: indicesConfig[index].headerComponent
196
+ // @ts-expect-error - there seems to be problems with React.ComponentType and this, but it's actually correct
197
+ ,
198
+ ItemComponent: indicesConfig[index].itemComponent,
199
+ items: hits.map(function (item) {
200
+ return _objectSpread(_objectSpread({}, item), {}, {
201
+ __indexName: indexId
202
+ });
203
+ }),
204
+ getItemProps: getItemProps,
205
+ classNames: indicesConfig[index].classNames
206
+ });
207
+ })));
208
+ }
@@ -1,13 +1,13 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _excluded = ["attributes", "rootPath", "separator", "transformItems", "translations"];
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
10
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
11
  import React from 'react';
12
12
  import { useBreadcrumb } from 'react-instantsearch-core';
13
13
  import { Breadcrumb as BreadcrumbUiComponent } from "../ui/Breadcrumb.js";
@@ -1,23 +1,22 @@
1
1
  import { SearchIndexToolType, RecommendToolType } from 'instantsearch.js/es/lib/chat';
2
2
  import React from 'react';
3
3
  export { SearchIndexToolType, RecommendToolType };
4
- import type { ChatProps as ChatUiProps, RecommendComponentProps, RecordWithObjectID, UserClientSideTool, UserClientSideTools } from 'instantsearch-ui-components';
4
+ import type { ChatProps as ChatUiProps, 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';
7
- import type { UseChatOptions } from 'react-instantsearch-core';
7
+ import type { UseChatProps } from 'react-instantsearch-core';
8
8
  export declare function createDefaultTools<TObject extends RecordWithObjectID>(itemComponent?: ItemComponent<TObject>, getSearchPageURL?: (nextUiState: IndexUiState) => string): UserClientSideTools;
9
9
  type ItemComponent<TObject> = RecommendComponentProps<TObject>['itemComponent'];
10
10
  type UiProps = Pick<ChatUiProps, 'open' | 'headerProps' | 'toggleButtonProps' | 'messagesProps' | 'promptProps' | 'headerComponent' | 'promptComponent'>;
11
11
  type UserToggleButtonProps = Omit<ChatUiProps['toggleButtonProps'], 'open' | 'onClick'>;
12
12
  type UserHeaderProps = Omit<ChatUiProps['headerProps'], 'onClose'>;
13
- type UserMessagesProps = Omit<ChatUiProps['messagesProps'], 'messages' | 'tools' | 'indexUiState' | 'setIndexUiState' | 'scrollRef' | 'contentRef'>;
13
+ type UserMessagesProps = Omit<ChatUiProps['messagesProps'], 'messages' | 'tools' | 'indexUiState' | 'setIndexUiState' | 'scrollRef' | 'contentRef' | 'messageComponent' | 'leadingComponent' | 'footerComponent' | 'translations' | 'classNames'>;
14
14
  type UserPromptProps = Omit<ChatUiProps['promptProps'], 'value' | 'onInput' | 'onSubmit' | 'headerComponent' | 'footerComponent'>;
15
15
  export type Tool = UserClientSideTool;
16
16
  export type Tools = UserClientSideTools;
17
- export type ChatProps<TObject, TUiMessage extends UIMessage = UIMessage> = Omit<ChatUiProps, keyof UiProps> & UseChatOptions<TUiMessage> & {
17
+ export type ChatProps<TObject, TUiMessage extends UIMessage = UIMessage> = Omit<ChatUiProps, keyof UiProps> & UseChatProps<TUiMessage> & {
18
18
  itemComponent?: ItemComponent<TObject>;
19
19
  tools?: UserClientSideTools;
20
- defaultOpen?: boolean;
21
20
  getSearchPageURL?: (nextUiState: IndexUiState) => string;
22
21
  toggleButtonProps?: UserToggleButtonProps;
23
22
  headerProps?: UserHeaderProps;
@@ -36,10 +35,15 @@ export type ChatProps<TObject, TUiMessage extends UIMessage = UIMessage> = Omit<
36
35
  promptHeaderComponent?: ChatUiProps['promptProps']['headerComponent'];
37
36
  promptFooterComponent?: ChatUiProps['promptProps']['footerComponent'];
38
37
  actionsComponent?: ChatUiProps['messagesProps']['actionsComponent'];
38
+ assistantMessageLeadingComponent?: ChatMessageProps['leadingComponent'];
39
+ assistantMessageFooterComponent?: ChatMessageProps['footerComponent'];
40
+ userMessageLeadingComponent?: ChatMessageProps['leadingComponent'];
41
+ userMessageFooterComponent?: ChatMessageProps['footerComponent'];
39
42
  translations?: Partial<{
40
43
  prompt: ChatUiProps['promptProps']['translations'];
41
44
  header: ChatUiProps['headerProps']['translations'];
45
+ message: ChatUiProps['messagesProps']['messageTranslations'];
42
46
  messages: ChatUiProps['messagesProps']['translations'];
43
47
  }>;
44
48
  };
45
- export declare function Chat<TObject extends RecordWithObjectID, TUiMessage extends UIMessage>({ tools: userTools, defaultOpen, toggleButtonProps, headerProps, messagesProps, promptProps, itemComponent, toggleButtonComponent, toggleButtonIconComponent, headerComponent, headerTitleIconComponent, headerCloseIconComponent, headerMinimizeIconComponent, headerMaximizeIconComponent, messagesLoaderComponent, messagesErrorComponent, promptComponent, promptHeaderComponent, promptFooterComponent, actionsComponent, classNames, translations, title, getSearchPageURL, ...props }: ChatProps<TObject, TUiMessage>): React.JSX.Element;
49
+ export declare function Chat<TObject extends RecordWithObjectID, TUiMessage extends UIMessage>({ tools: userTools, toggleButtonProps, headerProps, messagesProps, promptProps, itemComponent, toggleButtonComponent, toggleButtonIconComponent, headerComponent, headerTitleIconComponent, headerCloseIconComponent, headerMinimizeIconComponent, headerMaximizeIconComponent, messagesLoaderComponent, messagesErrorComponent, promptComponent, promptHeaderComponent, promptFooterComponent, assistantMessageLeadingComponent, assistantMessageFooterComponent, userMessageLeadingComponent, userMessageFooterComponent, actionsComponent, classNames, translations, title, getSearchPageURL, ...props }: ChatProps<TObject, TUiMessage>): React.JSX.Element;
@@ -1,19 +1,18 @@
1
- var _excluded = ["tools", "defaultOpen", "toggleButtonProps", "headerProps", "messagesProps", "promptProps", "itemComponent", "toggleButtonComponent", "toggleButtonIconComponent", "headerComponent", "headerTitleIconComponent", "headerCloseIconComponent", "headerMinimizeIconComponent", "headerMaximizeIconComponent", "messagesLoaderComponent", "messagesErrorComponent", "promptComponent", "promptHeaderComponent", "promptFooterComponent", "actionsComponent", "classNames", "translations", "title", "getSearchPageURL"];
1
+ var _excluded = ["tools", "toggleButtonProps", "headerProps", "messagesProps", "promptProps", "itemComponent", "toggleButtonComponent", "toggleButtonIconComponent", "headerComponent", "headerTitleIconComponent", "headerCloseIconComponent", "headerMinimizeIconComponent", "headerMaximizeIconComponent", "messagesLoaderComponent", "messagesErrorComponent", "promptComponent", "promptHeaderComponent", "promptFooterComponent", "assistantMessageLeadingComponent", "assistantMessageFooterComponent", "userMessageLeadingComponent", "userMessageFooterComponent", "actionsComponent", "classNames", "translations", "title", "getSearchPageURL"];
2
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
6
6
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
8
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
9
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
12
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
13
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
12
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
15
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
- import { lastAssistantMessageIsCompleteWithToolCalls } from 'ai';
17
16
  import { createChatComponent } from 'instantsearch-ui-components';
18
17
  import { SearchIndexToolType, RecommendToolType } from "instantsearch.js/es/lib/chat/index.js";
19
18
  import React, { createElement, Fragment } from 'react';
@@ -31,8 +30,6 @@ export function createDefaultTools(itemComponent, getSearchPageURL) {
31
30
  }
32
31
  export function Chat(_ref2) {
33
32
  var userTools = _ref2.tools,
34
- _ref2$defaultOpen = _ref2.defaultOpen,
35
- defaultOpen = _ref2$defaultOpen === void 0 ? false : _ref2$defaultOpen,
36
33
  toggleButtonProps = _ref2.toggleButtonProps,
37
34
  headerProps = _ref2.headerProps,
38
35
  messagesProps = _ref2.messagesProps,
@@ -50,6 +47,10 @@ export function Chat(_ref2) {
50
47
  promptComponent = _ref2.promptComponent,
51
48
  promptHeaderComponent = _ref2.promptHeaderComponent,
52
49
  promptFooterComponent = _ref2.promptFooterComponent,
50
+ assistantMessageLeadingComponent = _ref2.assistantMessageLeadingComponent,
51
+ assistantMessageFooterComponent = _ref2.assistantMessageFooterComponent,
52
+ userMessageLeadingComponent = _ref2.userMessageLeadingComponent,
53
+ userMessageFooterComponent = _ref2.userMessageFooterComponent,
53
54
  actionsComponent = _ref2.actionsComponent,
54
55
  classNames = _ref2.classNames,
55
56
  _ref2$translations = _ref2.translations,
@@ -59,26 +60,15 @@ export function Chat(_ref2) {
59
60
  props = _objectWithoutProperties(_ref2, _excluded);
60
61
  var promptTranslations = translations.prompt,
61
62
  headerTranslations = translations.header,
63
+ messageTranslations = translations.message,
62
64
  messagesTranslations = translations.messages;
63
65
  var _useInstantSearch = useInstantSearch(),
64
66
  indexUiState = _useInstantSearch.indexUiState,
65
67
  setIndexUiState = _useInstantSearch.setIndexUiState;
66
- var _React$useState = React.useState(defaultOpen),
68
+ var _React$useState = React.useState(false),
67
69
  _React$useState2 = _slicedToArray(_React$useState, 2),
68
- open = _React$useState2[0],
69
- setOpen = _React$useState2[1];
70
- var _React$useState3 = React.useState(false),
71
- _React$useState4 = _slicedToArray(_React$useState3, 2),
72
- maximized = _React$useState4[0],
73
- setMaximized = _React$useState4[1];
74
- var _React$useState5 = React.useState(''),
75
- _React$useState6 = _slicedToArray(_React$useState5, 2),
76
- input = _React$useState6[0],
77
- setInput = _React$useState6[1];
78
- var _React$useState7 = React.useState(false),
79
- _React$useState8 = _slicedToArray(_React$useState7, 2),
80
- isClearing = _React$useState8[0],
81
- setIsClearing = _React$useState8[1];
70
+ maximized = _React$useState2[0],
71
+ setMaximized = _React$useState2[1];
82
72
  var promptRef = React.useRef(null);
83
73
  var _useStickToBottom = useStickToBottom({
84
74
  initial: 'smooth',
@@ -92,67 +82,23 @@ export function Chat(_ref2) {
92
82
  var defaults = createDefaultTools(itemComponent, getSearchPageURL);
93
83
  return _objectSpread(_objectSpread({}, defaults), userTools);
94
84
  }, [getSearchPageURL, itemComponent, userTools]);
95
- var _useChat = useChat(_objectSpread(_objectSpread({}, props), {}, {
96
- sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithToolCalls,
97
- onToolCall: function onToolCall(_ref3) {
98
- var toolCall = _ref3.toolCall;
99
- var tool = tools[toolCall.toolName];
100
- if (!tool) {
101
- if (process.env.NODE_ENV === 'development') {
102
- throw new Error("No tool implementation found for \"".concat(toolCall.toolName, "\". Please provide a tool implementation in the `tools` prop."));
103
- }
104
- addToolResult({
105
- output: "No tool implemented for \"".concat(toolCall.toolName, "\"."),
106
- tool: toolCall.toolName,
107
- toolCallId: toolCall.toolCallId
108
- });
109
- return;
110
- }
111
- if (tool.onToolCall) {
112
- var scopedAddToolResult = function scopedAddToolResult(_ref4) {
113
- var output = _ref4.output;
114
- return addToolResult({
115
- output: output,
116
- tool: toolCall.toolName,
117
- toolCallId: toolCall.toolCallId
118
- });
119
- };
120
- tool.onToolCall(_objectSpread(_objectSpread({}, toolCall), {}, {
121
- addToolResult: scopedAddToolResult
122
- }));
123
- }
124
- }
125
- })),
126
- messages = _useChat.messages,
127
- sendMessage = _useChat.sendMessage,
128
- addToolResult = _useChat.addToolResult,
129
- status = _useChat.status,
130
- regenerate = _useChat.regenerate,
131
- stop = _useChat.stop,
132
- setMessages = _useChat.setMessages,
133
- clearError = _useChat.clearError,
134
- error = _useChat.error;
135
- var toolsForUi = React.useMemo(function () {
136
- var result = {};
137
- Object.entries(tools).forEach(function (_ref5) {
138
- var _ref6 = _slicedToArray(_ref5, 2),
139
- key = _ref6[0],
140
- tool = _ref6[1];
141
- result[key] = _objectSpread(_objectSpread({}, tool), {}, {
142
- addToolResult: addToolResult
143
- });
144
- });
145
- return result;
146
- }, [tools, addToolResult]);
147
- var handleClear = React.useCallback(function () {
148
- if (!messages || messages.length === 0) return;
149
- setIsClearing(true);
150
- }, [messages]);
151
- var handleClearTransitionEnd = React.useCallback(function () {
152
- setMessages([]);
153
- clearError();
154
- setIsClearing(false);
155
- }, [setMessages, clearError]);
85
+ var chatState = useChat(_objectSpread(_objectSpread({}, props), {}, {
86
+ tools: tools
87
+ }));
88
+ var messages = chatState.messages,
89
+ sendMessage = chatState.sendMessage,
90
+ status = chatState.status,
91
+ regenerate = chatState.regenerate,
92
+ stop = chatState.stop,
93
+ error = chatState.error,
94
+ input = chatState.input,
95
+ setInput = chatState.setInput,
96
+ open = chatState.open,
97
+ setOpen = chatState.setOpen,
98
+ isClearing = chatState.isClearing,
99
+ clearMessages = chatState.clearMessages,
100
+ onClearTransitionEnd = chatState.onClearTransitionEnd,
101
+ toolsFromConnector = chatState.tools;
156
102
  if (process.env.NODE_ENV === 'development' && error) {
157
103
  throw error;
158
104
  }
@@ -178,7 +124,7 @@ export function Chat(_ref2) {
178
124
  onToggleMaximize: function onToggleMaximize() {
179
125
  return setMaximized(!maximized);
180
126
  },
181
- onClear: handleClear,
127
+ onClear: clearMessages,
182
128
  canClear: Boolean(messages === null || messages === void 0 ? void 0 : messages.length) && !isClearing,
183
129
  titleIconComponent: headerTitleIconComponent,
184
130
  closeIconComponent: headerCloseIconComponent,
@@ -197,11 +143,11 @@ export function Chat(_ref2) {
197
143
  return setOpen(false);
198
144
  },
199
145
  messages: messages,
200
- tools: toolsForUi,
146
+ tools: toolsFromConnector,
201
147
  indexUiState: indexUiState,
202
148
  setIndexUiState: setIndexUiState,
203
149
  isClearing: isClearing,
204
- onClearTransitionEnd: handleClearTransitionEnd,
150
+ onClearTransitionEnd: onClearTransitionEnd,
205
151
  isScrollAtBottom: isAtBottom,
206
152
  scrollRef: scrollRef,
207
153
  contentRef: contentRef,
@@ -209,7 +155,16 @@ export function Chat(_ref2) {
209
155
  loaderComponent: messagesLoaderComponent,
210
156
  errorComponent: messagesErrorComponent,
211
157
  actionsComponent: actionsComponent,
212
- translations: messagesTranslations
158
+ assistantMessageProps: _objectSpread({
159
+ leadingComponent: assistantMessageLeadingComponent,
160
+ footerComponent: assistantMessageFooterComponent
161
+ }, messagesProps === null || messagesProps === void 0 ? void 0 : messagesProps.assistantMessageProps),
162
+ userMessageProps: _objectSpread({
163
+ leadingComponent: userMessageLeadingComponent,
164
+ footerComponent: userMessageFooterComponent
165
+ }, messagesProps === null || messagesProps === void 0 ? void 0 : messagesProps.userMessageProps),
166
+ translations: messagesTranslations,
167
+ messageTranslations: messageTranslations
213
168
  }, messagesProps),
214
169
  promptProps: _objectSpread({
215
170
  promptRef: promptRef,
@@ -1,13 +1,13 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _excluded = ["includedAttributes", "excludedAttributes", "transformItems", "translations"];
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
10
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
11
  import React from 'react';
12
12
  import { useClearRefinements } from 'react-instantsearch-core';
13
13
  import { ClearRefinements as ClearRefinementsUiComponent } from "../ui/ClearRefinements.js";
@@ -1,7 +1,7 @@
1
1
  var _excluded = ["includedAttributes", "excludedAttributes", "transformItems"];
2
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
2
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
5
5
  import React from 'react';
6
6
  import { useCurrentRefinements } from 'react-instantsearch-core';
7
7
  import { CurrentRefinements as CurrentRefinementsUiComponent } from "../ui/CurrentRefinements.js";
@@ -9,5 +9,5 @@ export type FrequentlyBoughtTogetherProps<THit extends BaseHit> = Omit<Frequentl
9
9
  emptyComponent?: FrequentlyBoughtTogetherPropsUiComponentProps<THit>['emptyComponent'];
10
10
  layoutComponent?: FrequentlyBoughtTogetherPropsUiComponentProps<THit>['layout'];
11
11
  };
12
- export declare function FrequentlyBoughtTogether<THit extends BaseHit = BaseHit>({ objectIDs, limit, threshold, queryParameters, escapeHTML, transformItems, itemComponent, headerComponent, emptyComponent, layoutComponent, ...props }: FrequentlyBoughtTogetherProps<THit>): React.JSX.Element;
12
+ export declare function FrequentlyBoughtTogether<THit extends BaseHit = BaseHit>({ objectIDs, limit, threshold, queryParameters, fallbackParameters, escapeHTML, transformItems, itemComponent, headerComponent, emptyComponent, layoutComponent, ...props }: FrequentlyBoughtTogetherProps<THit>): React.JSX.Element;
13
13
  export {};
@@ -1,13 +1,13 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["objectIDs", "limit", "threshold", "queryParameters", "escapeHTML", "transformItems", "itemComponent", "headerComponent", "emptyComponent", "layoutComponent"];
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ var _excluded = ["objectIDs", "limit", "threshold", "queryParameters", "fallbackParameters", "escapeHTML", "transformItems", "itemComponent", "headerComponent", "emptyComponent", "layoutComponent"];
3
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
10
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
11
  import { createFrequentlyBoughtTogetherComponent } from 'instantsearch-ui-components';
12
12
  import React, { createElement, Fragment, useMemo } from 'react';
13
13
  import { useFrequentlyBoughtTogether, useInstantSearch } from 'react-instantsearch-core';
@@ -20,6 +20,7 @@ export function FrequentlyBoughtTogether(_ref) {
20
20
  limit = _ref.limit,
21
21
  threshold = _ref.threshold,
22
22
  queryParameters = _ref.queryParameters,
23
+ fallbackParameters = _ref.fallbackParameters,
23
24
  escapeHTML = _ref.escapeHTML,
24
25
  transformItems = _ref.transformItems,
25
26
  itemComponent = _ref.itemComponent,
@@ -34,6 +35,7 @@ export function FrequentlyBoughtTogether(_ref) {
34
35
  limit: limit,
35
36
  threshold: threshold,
36
37
  queryParameters: queryParameters,
38
+ fallbackParameters: fallbackParameters,
37
39
  escapeHTML: escapeHTML,
38
40
  transformItems: transformItems
39
41
  }, {