react-instantsearch 7.27.0 → 7.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/cjs/widgets/Autocomplete.js +22 -4
  2. package/dist/es/components/AutocompleteSearch.js +2 -2
  3. package/dist/es/components/Carousel.js +2 -2
  4. package/dist/es/ui/Breadcrumb.js +3 -3
  5. package/dist/es/ui/ClearRefinements.js +3 -3
  6. package/dist/es/ui/CurrentRefinements.js +3 -3
  7. package/dist/es/ui/HierarchicalMenu.js +3 -3
  8. package/dist/es/ui/Highlight.js +2 -2
  9. package/dist/es/ui/HitsPerPage.js +3 -3
  10. package/dist/es/ui/InfiniteHits.js +3 -3
  11. package/dist/es/ui/Menu.js +3 -3
  12. package/dist/es/ui/Pagination.js +3 -3
  13. package/dist/es/ui/PoweredBy.js +3 -3
  14. package/dist/es/ui/RangeInput.js +4 -4
  15. package/dist/es/ui/RefinementList.js +3 -3
  16. package/dist/es/ui/ReverseHighlight.js +2 -2
  17. package/dist/es/ui/SearchBox.js +3 -3
  18. package/dist/es/ui/ShowMoreButton.js +1 -1
  19. package/dist/es/ui/Snippet.js +2 -2
  20. package/dist/es/ui/SortBy.js +3 -3
  21. package/dist/es/ui/Stats.js +3 -3
  22. package/dist/es/ui/ToggleRefinement.js +3 -3
  23. package/dist/es/widgets/Autocomplete.d.ts +8 -1
  24. package/dist/es/widgets/Autocomplete.js +28 -10
  25. package/dist/es/widgets/Breadcrumb.js +2 -2
  26. package/dist/es/widgets/Chat.js +5 -5
  27. package/dist/es/widgets/ClearRefinements.js +2 -2
  28. package/dist/es/widgets/CurrentRefinements.js +2 -2
  29. package/dist/es/widgets/FilterSuggestions.js +2 -2
  30. package/dist/es/widgets/FrequentlyBoughtTogether.js +3 -3
  31. package/dist/es/widgets/HierarchicalMenu.js +3 -3
  32. package/dist/es/widgets/Highlight.js +3 -3
  33. package/dist/es/widgets/Hits.js +2 -2
  34. package/dist/es/widgets/HitsPerPage.js +2 -2
  35. package/dist/es/widgets/InfiniteHits.js +2 -2
  36. package/dist/es/widgets/LookingSimilar.js +3 -3
  37. package/dist/es/widgets/Menu.js +3 -3
  38. package/dist/es/widgets/Pagination.js +3 -3
  39. package/dist/es/widgets/PoweredBy.js +1 -1
  40. package/dist/es/widgets/RangeInput.js +2 -2
  41. package/dist/es/widgets/RefinementList.js +4 -4
  42. package/dist/es/widgets/RelatedProducts.js +3 -3
  43. package/dist/es/widgets/ReverseHighlight.js +3 -3
  44. package/dist/es/widgets/SearchBox.js +3 -3
  45. package/dist/es/widgets/Snippet.js +3 -3
  46. package/dist/es/widgets/SortBy.js +2 -2
  47. package/dist/es/widgets/Stats.js +2 -2
  48. package/dist/es/widgets/ToggleRefinement.js +2 -2
  49. package/dist/es/widgets/TrendingItems.js +3 -3
  50. package/dist/es/widgets/chat/tools/SearchIndexTool.js +1 -1
  51. package/dist/umd/ReactInstantSearch.js +23047 -23594
  52. package/dist/umd/ReactInstantSearch.min.js +3 -3
  53. package/package.json +5 -5
@@ -319,7 +319,7 @@ function EXPERIMENTAL_Autocomplete(_0) {
319
319
  }))));
320
320
  }
321
321
  function InnerAutocomplete(_0) {
322
- var indicesConfig = _0.indicesConfig, refineSearchBox = _0.refineSearchBox, isSearchStalled = _0.isSearchStalled, getSearchPageURL = _0.getSearchPageURL, userOnSelect = _0.onSelect, indexUiState = _0.indexUiState, isSearchPage = _0.isSearchPage, PanelComponent = _0.panelComponent, showRecent = _0.showRecent, recentSearchConfig = _0.recentSearchConfig, showQuerySuggestions = _0.showQuerySuggestions, showPromptSuggestions = _0.showPromptSuggestions, chatRenderState = _0.chatRenderState, transformItems = _0.transformItems, placeholder = _0.placeholder, _0_detachedMediaQuery = _0.detachedMediaQuery, detachedMediaQuery = _0_detachedMediaQuery === void 0 ? DEFAULT_DETACHED_MEDIA_QUERY : _0_detachedMediaQuery, translations = _0.translations, classNames = _0.classNames, props = _object_without_properties._(_0, [
322
+ var indicesConfig = _0.indicesConfig, refineSearchBox = _0.refineSearchBox, isSearchStalled = _0.isSearchStalled, getSearchPageURL = _0.getSearchPageURL, userOnSelect = _0.onSelect, indexUiState = _0.indexUiState, isSearchPage = _0.isSearchPage, PanelComponent = _0.panelComponent, showRecent = _0.showRecent, recentSearchConfig = _0.recentSearchConfig, showQuerySuggestions = _0.showQuerySuggestions, showPromptSuggestions = _0.showPromptSuggestions, chatRenderState = _0.chatRenderState, transformItems = _0.transformItems, placeholder = _0.placeholder, autoFocus = _0.autoFocus, _0_detachedMediaQuery = _0.detachedMediaQuery, detachedMediaQuery = _0_detachedMediaQuery === void 0 ? DEFAULT_DETACHED_MEDIA_QUERY : _0_detachedMediaQuery, translations = _0.translations, classNames = _0.classNames, props = _object_without_properties._(_0, [
323
323
  "indicesConfig",
324
324
  "refineSearchBox",
325
325
  "isSearchStalled",
@@ -335,6 +335,7 @@ function InnerAutocomplete(_0) {
335
335
  "chatRenderState",
336
336
  "transformItems",
337
337
  "placeholder",
338
+ "autoFocus",
338
339
  "detachedMediaQuery",
339
340
  "translations",
340
341
  "classNames"
@@ -400,6 +401,15 @@ function InnerAutocomplete(_0) {
400
401
  promptSuggestionsLimit
401
402
  ]);
402
403
  (0, _react.useRef)(false);
404
+ var allIndicesEmpty = indicesForPanel.every(function(param) {
405
+ var hits = param.hits;
406
+ return hits.length === 0;
407
+ });
408
+ var recentEmpty = !storageHits || storageHits.length === 0;
409
+ var hasNoResultsTemplate = indicesConfig.some(function(c) {
410
+ return c.noResultsComponent !== undefined;
411
+ });
412
+ var shouldHideEmptyPanel = allIndicesEmpty && recentEmpty && !hasNoResultsTemplate && !PanelComponent;
403
413
  var _usePropGetters = usePropGetters({
404
414
  indices: indicesForPropGettersWithPromptSuggestions,
405
415
  indicesConfig: indicesConfigForPropGetters,
@@ -444,7 +454,9 @@ function InnerAutocomplete(_0) {
444
454
  }
445
455
  },
446
456
  placeholder: placeholder,
447
- isDetached: isDetached
457
+ isDetached: isDetached,
458
+ shouldHidePanel: shouldHideEmptyPanel,
459
+ autoFocus: autoFocus
448
460
  }), getInputProps = _usePropGetters.getInputProps, getItemProps = _usePropGetters.getItemProps, getPanelProps = _usePropGetters.getPanelProps, getRootProps = _usePropGetters.getRootProps, isOpen = _usePropGetters.isOpen, setIsOpen = _usePropGetters.setIsOpen, focusInput = _usePropGetters.focusInput;
449
461
  // Open panel and focus input when modal opens
450
462
  (0, _react.useEffect)(function() {
@@ -517,6 +529,7 @@ function InnerAutocomplete(_0) {
517
529
  HeaderComponent: currentIndexConfig.headerComponent,
518
530
  // @ts-expect-error - there seems to be problems with React.ComponentType and this, but it's actually correct
519
531
  ItemComponent: currentIndexConfig.itemComponent,
532
+ NoResultsComponent: currentIndexConfig.noResultsComponent,
520
533
  items: hits.map(function(item) {
521
534
  return _object_spread_props._(_object_spread._({}, item), {
522
535
  __indexName: indexId
@@ -548,8 +561,12 @@ function InnerAutocomplete(_0) {
548
561
  var detachedContainerClassNames = isModalDetached ? _object_spread_props._(_object_spread._({}, classNames), {
549
562
  detachedContainer: (0, _instantsearchuicomponents.cx)('ais-AutocompleteDetachedContainer--modal', classNames === null || classNames === void 0 ? void 0 : classNames.detachedContainer)
550
563
  }) : classNames;
564
+ var _getRootProps = getRootProps(), rootRef = _getRootProps.ref, rootProps = _object_without_properties._(_getRootProps, [
565
+ "ref"
566
+ ]);
551
567
  if (isDetached) {
552
- return /*#__PURE__*/ _react.default.createElement(Autocomplete, _object_spread_props._(_object_spread._({}, props, getRootProps()), {
568
+ return /*#__PURE__*/ _react.default.createElement(Autocomplete, _object_spread_props._(_object_spread._({}, props, rootProps), {
569
+ rootRef: rootRef,
553
570
  classNames: classNames
554
571
  }), /*#__PURE__*/ _react.default.createElement(AutocompleteDetachedSearchButton, {
555
572
  query: currentRefinement || indexUiState.query || '',
@@ -582,7 +599,8 @@ function InnerAutocomplete(_0) {
582
599
  }, searchBoxContent), panelContent)));
583
600
  }
584
601
  // Normal (non-detached) rendering
585
- return /*#__PURE__*/ _react.default.createElement(Autocomplete, _object_spread_props._(_object_spread._({}, props, getRootProps()), {
602
+ return /*#__PURE__*/ _react.default.createElement(Autocomplete, _object_spread_props._(_object_spread._({}, props, rootProps), {
603
+ rootRef: rootRef,
586
604
  classNames: classNames
587
605
  }), searchBoxContent, panelContent);
588
606
  }
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_spread_props.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_spread_props.js';
3
3
  import { createAutocompleteSearchComponent } from 'instantsearch-ui-components';
4
4
  import React, { createElement, Fragment } from 'react';
5
5
 
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_sliced_to_array.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_sliced_to_array.js';
3
3
  import { createCarouselComponent, generateCarouselId } from 'instantsearch-ui-components';
4
4
  import React, { createElement, Fragment, useState, useRef } from 'react';
5
5
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
  import { isModifierClick } from './lib/isModifierClick.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
  import { capitalize } from './lib/capitalize.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
  import { isModifierClick } from './lib/isModifierClick.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import { cx } from 'instantsearch-ui-components';
4
4
  import React from 'react';
5
5
  import { InternalHighlight } from './InternalHighlight.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
  import { isModifierClick } from './lib/isModifierClick.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
  import { isModifierClick } from './lib/isModifierClick.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,7 +1,7 @@
1
- import { _ as _$3 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ as _$1 } from '@swc/helpers/cjs/_object_without_properties.cjs';
4
- import { _ } from '@swc/helpers/cjs/_sliced_to_array.cjs';
1
+ import { _ as _$3 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ as _$1 } from '@swc/helpers/esm/_object_without_properties.js';
4
+ import { _ } from '@swc/helpers/esm/_sliced_to_array.js';
5
5
  import { cx } from 'instantsearch-ui-components';
6
6
  import React, { useState } from 'react';
7
7
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import { getHighlightedParts, unescape } from 'instantsearch.js/es/lib/utils/index.js';
6
6
  import React from 'react';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import { cx } from 'instantsearch-ui-components';
4
4
  import React from 'react';
5
5
  import { InternalHighlight } from './InternalHighlight.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,4 +1,4 @@
1
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
2
2
  import React from 'react';
3
3
 
4
4
  function ShowMoreButton(_0) {
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import { cx } from 'instantsearch-ui-components';
4
4
  import React from 'react';
5
5
  import { InternalHighlight } from './InternalHighlight.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { cx } from 'instantsearch-ui-components';
5
5
  import React from 'react';
6
6
 
@@ -5,10 +5,13 @@ import type { AutocompleteIndexClassNames, AutocompleteIndexConfig, Autocomplete
5
5
  import type { BaseHit, IndexUiState } from 'instantsearch.js';
6
6
  import type { TransformItemsIndicesConfig } from 'instantsearch.js/es/connectors/autocomplete/connectAutocomplete';
7
7
  import type { ComponentProps } from 'react';
8
- type AutocompleteSearchParameters = Omit<PlainSearchParameters, 'index'>;
8
+ type AutocompleteSearchParameters = Omit<PlainSearchParameters, 'index'> & {
9
+ hitsPerPage?: number;
10
+ };
9
11
  type IndexConfig<TItem extends BaseHit> = AutocompleteIndexConfig<TItem> & {
10
12
  headerComponent?: AutocompleteIndexProps<TItem>['HeaderComponent'];
11
13
  itemComponent: AutocompleteIndexProps<TItem>['ItemComponent'];
14
+ noResultsComponent?: AutocompleteIndexProps<TItem>['NoResultsComponent'];
12
15
  searchParameters?: AutocompleteSearchParameters;
13
16
  classNames?: Partial<AutocompleteIndexClassNames>;
14
17
  };
@@ -58,6 +61,10 @@ export type AutocompleteProps<TItem extends BaseHit> = ComponentProps<'div'> & {
58
61
  searchParameters?: AutocompleteSearchParameters;
59
62
  classNames?: Partial<AutocompleteClassNames>;
60
63
  placeholder?: string;
64
+ /**
65
+ * Whether the input should be focused and the panel open initially.
66
+ */
67
+ autoFocus?: boolean;
61
68
  /**
62
69
  * Media query to enable detached (mobile) mode.
63
70
  * When the media query matches, the autocomplete switches to a full-screen overlay.
@@ -1,9 +1,9 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$4 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
4
- import { _ as _$5 } from '@swc/helpers/cjs/_sliced_to_array.cjs';
5
- import { _ as _$2 } from '@swc/helpers/cjs/_to_consumable_array.cjs';
6
- import { _ as _$3 } from '@swc/helpers/cjs/_type_of.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$4 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
+ import { _ as _$5 } from '@swc/helpers/esm/_sliced_to_array.js';
5
+ import { _ as _$2 } from '@swc/helpers/esm/_to_consumable_array.js';
6
+ import { _ as _$3 } from '@swc/helpers/esm/_type_of.js';
7
7
  import { createAutocompleteComponent, createAutocompletePanelComponent, createAutocompleteIndexComponent, createAutocompleteSuggestionComponent, createAutocompletePromptSuggestionComponent, createAutocompleteRecentSearchComponent, createAutocompleteDetachedContainerComponent, createAutocompleteDetachedOverlayComponent, createAutocompleteDetachedFormContainerComponent, createAutocompleteDetachedSearchButtonComponent, createAutocompletePropGetters, createAutocompleteStorage, cx, getPromptSuggestionHits, isPromptSuggestion } from 'instantsearch-ui-components';
8
8
  import 'instantsearch.js/es/lib/utils/index.js';
9
9
  import React, { createElement, Fragment, useEffect, useMemo, useRef, useState } from 'react';
@@ -308,7 +308,7 @@ function EXPERIMENTAL_Autocomplete(_0) {
308
308
  }))));
309
309
  }
310
310
  function InnerAutocomplete(_0) {
311
- var indicesConfig = _0.indicesConfig, refineSearchBox = _0.refineSearchBox, isSearchStalled = _0.isSearchStalled, getSearchPageURL = _0.getSearchPageURL, userOnSelect = _0.onSelect, indexUiState = _0.indexUiState, isSearchPage = _0.isSearchPage, PanelComponent = _0.panelComponent, showRecent = _0.showRecent, recentSearchConfig = _0.recentSearchConfig, showQuerySuggestions = _0.showQuerySuggestions, showPromptSuggestions = _0.showPromptSuggestions, chatRenderState = _0.chatRenderState, transformItems = _0.transformItems, placeholder = _0.placeholder, _0_detachedMediaQuery = _0.detachedMediaQuery, detachedMediaQuery = _0_detachedMediaQuery === void 0 ? DEFAULT_DETACHED_MEDIA_QUERY : _0_detachedMediaQuery, translations = _0.translations, classNames = _0.classNames, props = _(_0, [
311
+ var indicesConfig = _0.indicesConfig, refineSearchBox = _0.refineSearchBox, isSearchStalled = _0.isSearchStalled, getSearchPageURL = _0.getSearchPageURL, userOnSelect = _0.onSelect, indexUiState = _0.indexUiState, isSearchPage = _0.isSearchPage, PanelComponent = _0.panelComponent, showRecent = _0.showRecent, recentSearchConfig = _0.recentSearchConfig, showQuerySuggestions = _0.showQuerySuggestions, showPromptSuggestions = _0.showPromptSuggestions, chatRenderState = _0.chatRenderState, transformItems = _0.transformItems, placeholder = _0.placeholder, autoFocus = _0.autoFocus, _0_detachedMediaQuery = _0.detachedMediaQuery, detachedMediaQuery = _0_detachedMediaQuery === void 0 ? DEFAULT_DETACHED_MEDIA_QUERY : _0_detachedMediaQuery, translations = _0.translations, classNames = _0.classNames, props = _(_0, [
312
312
  "indicesConfig",
313
313
  "refineSearchBox",
314
314
  "isSearchStalled",
@@ -324,6 +324,7 @@ function InnerAutocomplete(_0) {
324
324
  "chatRenderState",
325
325
  "transformItems",
326
326
  "placeholder",
327
+ "autoFocus",
327
328
  "detachedMediaQuery",
328
329
  "translations",
329
330
  "classNames"
@@ -389,6 +390,15 @@ function InnerAutocomplete(_0) {
389
390
  promptSuggestionsLimit
390
391
  ]);
391
392
  useRef(false);
393
+ var allIndicesEmpty = indicesForPanel.every(function(param) {
394
+ var hits = param.hits;
395
+ return hits.length === 0;
396
+ });
397
+ var recentEmpty = !storageHits || storageHits.length === 0;
398
+ var hasNoResultsTemplate = indicesConfig.some(function(c) {
399
+ return c.noResultsComponent !== undefined;
400
+ });
401
+ var shouldHideEmptyPanel = allIndicesEmpty && recentEmpty && !hasNoResultsTemplate && !PanelComponent;
392
402
  var _usePropGetters = usePropGetters({
393
403
  indices: indicesForPropGettersWithPromptSuggestions,
394
404
  indicesConfig: indicesConfigForPropGetters,
@@ -433,7 +443,9 @@ function InnerAutocomplete(_0) {
433
443
  }
434
444
  },
435
445
  placeholder: placeholder,
436
- isDetached: isDetached
446
+ isDetached: isDetached,
447
+ shouldHidePanel: shouldHideEmptyPanel,
448
+ autoFocus: autoFocus
437
449
  }), getInputProps = _usePropGetters.getInputProps, getItemProps = _usePropGetters.getItemProps, getPanelProps = _usePropGetters.getPanelProps, getRootProps = _usePropGetters.getRootProps, isOpen = _usePropGetters.isOpen, setIsOpen = _usePropGetters.setIsOpen, focusInput = _usePropGetters.focusInput;
438
450
  // Open panel and focus input when modal opens
439
451
  useEffect(function() {
@@ -506,6 +518,7 @@ function InnerAutocomplete(_0) {
506
518
  HeaderComponent: currentIndexConfig.headerComponent,
507
519
  // @ts-expect-error - there seems to be problems with React.ComponentType and this, but it's actually correct
508
520
  ItemComponent: currentIndexConfig.itemComponent,
521
+ NoResultsComponent: currentIndexConfig.noResultsComponent,
509
522
  items: hits.map(function(item) {
510
523
  return _$4(_$1({}, item), {
511
524
  __indexName: indexId
@@ -537,8 +550,12 @@ function InnerAutocomplete(_0) {
537
550
  var detachedContainerClassNames = isModalDetached ? _$4(_$1({}, classNames), {
538
551
  detachedContainer: cx('ais-AutocompleteDetachedContainer--modal', classNames === null || classNames === void 0 ? void 0 : classNames.detachedContainer)
539
552
  }) : classNames;
553
+ var _getRootProps = getRootProps(), rootRef = _getRootProps.ref, rootProps = _(_getRootProps, [
554
+ "ref"
555
+ ]);
540
556
  if (isDetached) {
541
- return /*#__PURE__*/ React.createElement(Autocomplete, _$4(_$1({}, props, getRootProps()), {
557
+ return /*#__PURE__*/ React.createElement(Autocomplete, _$4(_$1({}, props, rootProps), {
558
+ rootRef: rootRef,
542
559
  classNames: classNames
543
560
  }), /*#__PURE__*/ React.createElement(AutocompleteDetachedSearchButton, {
544
561
  query: currentRefinement || indexUiState.query || '',
@@ -571,7 +588,8 @@ function InnerAutocomplete(_0) {
571
588
  }, searchBoxContent), panelContent)));
572
589
  }
573
590
  // Normal (non-detached) rendering
574
- return /*#__PURE__*/ React.createElement(Autocomplete, _$4(_$1({}, props, getRootProps()), {
591
+ return /*#__PURE__*/ React.createElement(Autocomplete, _$4(_$1({}, props, rootProps), {
592
+ rootRef: rootRef,
575
593
  classNames: classNames
576
594
  }), searchBoxContent, panelContent);
577
595
  }
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import React from 'react';
4
4
  import { useBreadcrumb } from 'react-instantsearch-core';
5
5
  import { Breadcrumb as Breadcrumb$1 } from '../ui/Breadcrumb.js';
@@ -1,8 +1,8 @@
1
- import { _ } from '@swc/helpers/cjs/_define_property.cjs';
2
- import { _ as _$3 } from '@swc/helpers/cjs/_object_spread.cjs';
3
- import { _ as _$4 } from '@swc/helpers/cjs/_object_spread_props.cjs';
4
- import { _ as _$1 } from '@swc/helpers/cjs/_object_without_properties.cjs';
5
- import { _ as _$2 } from '@swc/helpers/cjs/_sliced_to_array.cjs';
1
+ import { _ } from '@swc/helpers/esm/_define_property.js';
2
+ import { _ as _$3 } from '@swc/helpers/esm/_object_spread.js';
3
+ import { _ as _$4 } from '@swc/helpers/esm/_object_spread_props.js';
4
+ import { _ as _$1 } from '@swc/helpers/esm/_object_without_properties.js';
5
+ import { _ as _$2 } from '@swc/helpers/esm/_sliced_to_array.js';
6
6
  import { createChatComponent } from 'instantsearch-ui-components';
7
7
  import { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType } from 'instantsearch.js/es/lib/chat/index.js';
8
8
  export { MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import React from 'react';
4
4
  import { useClearRefinements } from 'react-instantsearch-core';
5
5
  import { ClearRefinements as ClearRefinements$1 } from '../ui/ClearRefinements.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import React from 'react';
4
4
  import { useCurrentRefinements } from 'react-instantsearch-core';
5
5
  import { CurrentRefinements as CurrentRefinements$1 } from '../ui/CurrentRefinements.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import { createFilterSuggestionsComponent } from 'instantsearch-ui-components';
4
4
  import React, { createElement, Fragment } from 'react';
5
5
  import { useFilterSuggestions } from 'react-instantsearch-core';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { createFrequentlyBoughtTogetherComponent } from 'instantsearch-ui-components';
5
5
  import React, { createElement, Fragment, useMemo } from 'react';
6
6
  import { useInstantSearch, useFrequentlyBoughtTogether } from 'react-instantsearch-core';
@@ -1,6 +1,6 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import React from 'react';
5
5
  import { useHierarchicalMenu } from 'react-instantsearch-core';
6
6
  import { HierarchicalMenu as HierarchicalMenu$1 } from '../ui/HierarchicalMenu.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { getPropertyByPath, getHighlightedParts, unescape } from 'instantsearch.js/es/lib/utils/index.js';
5
5
  import React from 'react';
6
6
  import { Highlight as Highlight$1 } from '../ui/Highlight.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import { createHitsComponent } from 'instantsearch-ui-components';
4
4
  import React, { createElement, Fragment, useMemo } from 'react';
5
5
  import { useHits } from 'react-instantsearch-core';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import React from 'react';
4
4
  import { useHitsPerPage } from 'react-instantsearch-core';
5
5
  import { HitsPerPage as HitsPerPage$1 } from '../ui/HitsPerPage.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import React from 'react';
4
4
  import { useInfiniteHits } from 'react-instantsearch-core';
5
5
  import { InfiniteHits as InfiniteHits$1 } from '../ui/InfiniteHits.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import { createLookingSimilarComponent } from 'instantsearch-ui-components';
5
5
  import React, { createElement, Fragment, useMemo } from 'react';
6
6
  import { useInstantSearch, useLookingSimilar } from 'react-instantsearch-core';
@@ -1,6 +1,6 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import React from 'react';
5
5
  import { useMenu } from 'react-instantsearch-core';
6
6
  import { Menu as Menu$1 } from '../ui/Menu.js';
@@ -1,6 +1,6 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
4
  import React from 'react';
5
5
  import { usePagination } from 'react-instantsearch-core';
6
6
  import { Pagination as Pagination$1 } from '../ui/Pagination.js';
@@ -1,4 +1,4 @@
1
- import { _ } from '@swc/helpers/cjs/_object_spread.cjs';
1
+ import { _ } from '@swc/helpers/esm/_object_spread.js';
2
2
  import React from 'react';
3
3
  import { usePoweredBy } from 'react-instantsearch-core';
4
4
  import { PoweredBy as PoweredBy$1 } from '../ui/PoweredBy.js';
@@ -1,5 +1,5 @@
1
- import { _ as _$1 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
1
+ import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
3
3
  import React from 'react';
4
4
  import { useRange } from 'react-instantsearch-core';
5
5
  import { RangeInput as RangeInput$1 } from '../ui/RangeInput.js';
@@ -1,7 +1,7 @@
1
- import { _ as _$2 } from '@swc/helpers/cjs/_object_spread.cjs';
2
- import { _ as _$3 } from '@swc/helpers/cjs/_object_spread_props.cjs';
3
- import { _ } from '@swc/helpers/cjs/_object_without_properties.cjs';
4
- import { _ as _$1 } from '@swc/helpers/cjs/_sliced_to_array.cjs';
1
+ import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js';
2
+ import { _ as _$3 } from '@swc/helpers/esm/_object_spread_props.js';
3
+ import { _ } from '@swc/helpers/esm/_object_without_properties.js';
4
+ import { _ as _$1 } from '@swc/helpers/esm/_sliced_to_array.js';
5
5
  import React, { useState, useRef } from 'react';
6
6
  import { useRefinementList } from 'react-instantsearch-core';
7
7
  import { RefinementList as RefinementList$1 } from '../ui/RefinementList.js';