instantsearch.js 4.51.1 → 4.53.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 (225) hide show
  1. package/README.md +1 -16
  2. package/cjs/components/Answers/Answers.js +7 -3
  3. package/cjs/components/Breadcrumb/Breadcrumb.js +1 -1
  4. package/cjs/components/ClearRefinements/ClearRefinements.js +1 -1
  5. package/cjs/components/CurrentRefinements/CurrentRefinements.js +1 -1
  6. package/cjs/components/GeoSearchControls/GeoSearchControls.js +1 -1
  7. package/cjs/components/Hits/Hits.js +6 -2
  8. package/cjs/components/InfiniteHits/InfiniteHits.js +7 -3
  9. package/cjs/components/MenuSelect/MenuSelect.js +1 -1
  10. package/cjs/components/Pagination/Pagination.js +1 -1
  11. package/cjs/components/Panel/Panel.js +1 -1
  12. package/cjs/components/RangeInput/RangeInput.js +1 -1
  13. package/cjs/components/RefinementList/RefinementList.js +2 -2
  14. package/cjs/components/Selector/Selector.js +1 -1
  15. package/cjs/components/Slider/Pit.js +1 -1
  16. package/cjs/components/Slider/Slider.js +2 -2
  17. package/cjs/components/Stats/Stats.js +1 -1
  18. package/cjs/components/Template/Template.js +1 -1
  19. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +4 -0
  20. package/cjs/connectors/index.js +4 -3
  21. package/cjs/helpers/reverseHighlight.js +1 -1
  22. package/cjs/helpers/reverseSnippet.js +1 -1
  23. package/cjs/index.js +7 -7
  24. package/cjs/lib/InstantSearch.js +7 -5
  25. package/cjs/lib/insights/listener.js +1 -1
  26. package/cjs/lib/routers/history.js +5 -0
  27. package/cjs/lib/utils/createSendEventForHits.js +1 -5
  28. package/cjs/lib/utils/getRefinements.js +1 -1
  29. package/cjs/lib/utils/index.js +11 -0
  30. package/cjs/lib/utils/omit.js +25 -0
  31. package/cjs/lib/utils/setIndexHelperState.js +1 -1
  32. package/cjs/lib/version.js +1 -1
  33. package/cjs/middlewares/createRouterMiddleware.js +5 -2
  34. package/cjs/widgets/answers/answers.js +5 -5
  35. package/cjs/widgets/breadcrumb/breadcrumb.js +4 -4
  36. package/cjs/widgets/clear-refinements/clear-refinements.js +4 -4
  37. package/cjs/widgets/configure-related-items/configure-related-items.js +1 -1
  38. package/cjs/widgets/current-refinements/current-refinements.js +2 -2
  39. package/cjs/widgets/geo-search/GeoSearchRenderer.js +1 -1
  40. package/cjs/widgets/geo-search/geo-search.js +5 -5
  41. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +1 -1
  42. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +4 -4
  43. package/cjs/widgets/hits/defaultTemplates.js +2 -1
  44. package/cjs/widgets/hits/hits.js +6 -6
  45. package/cjs/widgets/hits-per-page/hits-per-page.js +2 -2
  46. package/cjs/widgets/index/index.js +11 -3
  47. package/cjs/widgets/index.js +4 -3
  48. package/cjs/widgets/infinite-hits/defaultTemplates.js +2 -1
  49. package/cjs/widgets/infinite-hits/infinite-hits.js +4 -4
  50. package/cjs/widgets/menu/defaultTemplates.js +1 -1
  51. package/cjs/widgets/menu/menu.js +4 -4
  52. package/cjs/widgets/menu-select/menu-select.js +5 -5
  53. package/cjs/widgets/numeric-menu/numeric-menu.js +3 -3
  54. package/cjs/widgets/pagination/pagination.js +2 -2
  55. package/cjs/widgets/panel/panel.js +4 -4
  56. package/cjs/widgets/powered-by/powered-by.js +2 -2
  57. package/cjs/widgets/query-rule-context/query-rule-context.js +1 -1
  58. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +4 -4
  59. package/cjs/widgets/range-input/range-input.js +3 -3
  60. package/cjs/widgets/range-slider/range-slider.js +2 -2
  61. package/cjs/widgets/rating-menu/defaultTemplates.js +1 -1
  62. package/cjs/widgets/rating-menu/rating-menu.js +4 -4
  63. package/cjs/widgets/refinement-list/defaultTemplates.js +1 -1
  64. package/cjs/widgets/refinement-list/refinement-list.js +3 -3
  65. package/cjs/widgets/relevant-sort/relevant-sort.js +4 -4
  66. package/cjs/widgets/search-box/defaultTemplates.js +6 -3
  67. package/cjs/widgets/search-box/search-box.js +4 -4
  68. package/cjs/widgets/sort-by/sort-by.js +2 -2
  69. package/cjs/widgets/stats/stats.js +4 -4
  70. package/cjs/widgets/toggle-refinement/toggle-refinement.js +4 -4
  71. package/cjs/widgets/voice-search/voice-search.js +4 -4
  72. package/dist/instantsearch.development.d.ts +31 -9
  73. package/dist/instantsearch.development.js +13605 -13563
  74. package/dist/instantsearch.development.js.map +1 -1
  75. package/dist/instantsearch.production.d.ts +31 -9
  76. package/dist/instantsearch.production.min.d.ts +31 -9
  77. package/dist/instantsearch.production.min.js +2 -2
  78. package/dist/instantsearch.production.min.js.map +1 -1
  79. package/es/components/Answers/Answers.d.ts +1 -1
  80. package/es/components/Answers/Answers.js +7 -3
  81. package/es/components/Breadcrumb/Breadcrumb.d.ts +3 -3
  82. package/es/components/Breadcrumb/Breadcrumb.js +1 -1
  83. package/es/components/ClearRefinements/ClearRefinements.d.ts +2 -2
  84. package/es/components/ClearRefinements/ClearRefinements.js +1 -1
  85. package/es/components/CurrentRefinements/CurrentRefinements.d.ts +1 -1
  86. package/es/components/CurrentRefinements/CurrentRefinements.js +1 -1
  87. package/es/components/GeoSearchControls/GeoSearchButton.d.ts +1 -1
  88. package/es/components/GeoSearchControls/GeoSearchControls.d.ts +2 -2
  89. package/es/components/GeoSearchControls/GeoSearchControls.js +1 -1
  90. package/es/components/GeoSearchControls/GeoSearchToggle.d.ts +1 -1
  91. package/es/components/Hits/Hits.d.ts +2 -2
  92. package/es/components/Hits/Hits.js +6 -2
  93. package/es/components/InfiniteHits/InfiniteHits.d.ts +2 -2
  94. package/es/components/InfiniteHits/InfiniteHits.js +7 -3
  95. package/es/components/MenuSelect/MenuSelect.d.ts +1 -1
  96. package/es/components/MenuSelect/MenuSelect.js +1 -1
  97. package/es/components/Pagination/Pagination.d.ts +1 -1
  98. package/es/components/Pagination/Pagination.js +1 -1
  99. package/es/components/Panel/Panel.d.ts +1 -1
  100. package/es/components/Panel/Panel.js +1 -1
  101. package/es/components/RangeInput/RangeInput.d.ts +1 -1
  102. package/es/components/RangeInput/RangeInput.js +1 -1
  103. package/es/components/RefinementList/RefinementList.d.ts +7 -7
  104. package/es/components/RefinementList/RefinementList.js +2 -2
  105. package/es/components/RefinementList/RefinementListItem.d.ts +2 -1
  106. package/es/components/RelevantSort/RelevantSort.d.ts +1 -1
  107. package/es/components/SearchBox/SearchBox.d.ts +1 -1
  108. package/es/components/Selector/Selector.js +1 -1
  109. package/es/components/Slider/Pit.js +1 -1
  110. package/es/components/Slider/Rheostat.d.ts +3 -3
  111. package/es/components/Slider/Slider.d.ts +1 -1
  112. package/es/components/Slider/Slider.js +2 -2
  113. package/es/components/Stats/Stats.d.ts +1 -1
  114. package/es/components/Stats/Stats.js +1 -1
  115. package/es/components/Template/Template.d.ts +4 -4
  116. package/es/components/Template/Template.js +1 -1
  117. package/es/components/VoiceSearch/VoiceSearch.d.ts +1 -1
  118. package/es/connectors/autocomplete/connectAutocomplete.d.ts +1 -1
  119. package/es/connectors/configure/connectConfigure.d.ts +1 -1
  120. package/es/connectors/configure/connectConfigure.js +0 -5
  121. package/es/connectors/configure-related-items/connectConfigureRelatedItems.d.ts +1 -1
  122. package/es/connectors/current-refinements/connectCurrentRefinements.d.ts +4 -0
  123. package/es/connectors/current-refinements/connectCurrentRefinements.js +4 -0
  124. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.d.ts +1 -1
  125. package/es/connectors/index.d.ts +6 -6
  126. package/es/connectors/index.js +10 -10
  127. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +2 -2
  128. package/es/connectors/menu/connectMenu.d.ts +1 -1
  129. package/es/connectors/rating-menu/connectRatingMenu.d.ts +1 -1
  130. package/es/connectors/refinement-list/connectRefinementList.d.ts +1 -1
  131. package/es/connectors/voice-search/connectVoiceSearch.d.ts +2 -2
  132. package/es/helpers/components/Highlight.d.ts +1 -1
  133. package/es/helpers/components/ReverseHighlight.d.ts +1 -1
  134. package/es/helpers/components/ReverseSnippet.d.ts +1 -1
  135. package/es/helpers/components/Snippet.d.ts +1 -1
  136. package/es/helpers/reverseHighlight.js +1 -1
  137. package/es/helpers/reverseSnippet.js +1 -1
  138. package/es/index.d.ts +3 -3
  139. package/es/index.js +2 -2
  140. package/es/lib/InstantSearch.d.ts +5 -4
  141. package/es/lib/InstantSearch.js +7 -5
  142. package/es/lib/insights/client.d.ts +1 -1
  143. package/es/lib/insights/listener.d.ts +1 -1
  144. package/es/lib/insights/listener.js +1 -1
  145. package/es/lib/routers/history.d.ts +1 -0
  146. package/es/lib/routers/history.js +5 -0
  147. package/es/lib/templating/renderTemplate.d.ts +1 -1
  148. package/es/lib/utils/checkIndexUiState.d.ts +1 -1
  149. package/es/lib/utils/checkIndexUiState.js +0 -1
  150. package/es/lib/utils/createSendEventForFacet.d.ts +1 -1
  151. package/es/lib/utils/createSendEventForHits.js +1 -5
  152. package/es/lib/utils/getRefinements.js +1 -1
  153. package/es/lib/utils/index.d.ts +1 -0
  154. package/es/lib/utils/index.js +1 -0
  155. package/es/lib/utils/omit.d.ts +7 -0
  156. package/es/lib/utils/omit.js +19 -0
  157. package/es/lib/utils/render-args.d.ts +2 -2
  158. package/es/lib/utils/resolveSearchParameters.d.ts +1 -1
  159. package/es/lib/utils/setIndexHelperState.js +1 -1
  160. package/es/lib/version.d.ts +1 -1
  161. package/es/lib/version.js +1 -1
  162. package/es/middlewares/createRouterMiddleware.js +5 -2
  163. package/es/types/connector.d.ts +2 -2
  164. package/es/types/index.d.ts +1 -0
  165. package/es/types/index.js +4 -1
  166. package/es/types/router.d.ts +4 -0
  167. package/es/types/templates.d.ts +2 -2
  168. package/es/types/widget.d.ts +2 -2
  169. package/es/widgets/analytics/analytics.d.ts +1 -1
  170. package/es/widgets/answers/answers.d.ts +1 -1
  171. package/es/widgets/answers/answers.js +5 -5
  172. package/es/widgets/breadcrumb/breadcrumb.js +4 -4
  173. package/es/widgets/clear-refinements/clear-refinements.js +4 -4
  174. package/es/widgets/configure/configure.js +0 -6
  175. package/es/widgets/configure-related-items/configure-related-items.d.ts +1 -1
  176. package/es/widgets/configure-related-items/configure-related-items.js +1 -1
  177. package/es/widgets/current-refinements/current-refinements.js +2 -2
  178. package/es/widgets/geo-search/GeoSearchRenderer.js +1 -1
  179. package/es/widgets/geo-search/geo-search.d.ts +1 -1
  180. package/es/widgets/geo-search/geo-search.js +5 -5
  181. package/es/widgets/hierarchical-menu/defaultTemplates.js +1 -1
  182. package/es/widgets/hierarchical-menu/hierarchical-menu.js +4 -4
  183. package/es/widgets/hits/defaultTemplates.js +2 -1
  184. package/es/widgets/hits/hits.d.ts +1 -0
  185. package/es/widgets/hits/hits.js +6 -6
  186. package/es/widgets/hits-per-page/hits-per-page.js +2 -2
  187. package/es/widgets/index/index.d.ts +13 -3
  188. package/es/widgets/index/index.js +11 -3
  189. package/es/widgets/index.d.ts +6 -6
  190. package/es/widgets/index.js +9 -7
  191. package/es/widgets/infinite-hits/defaultTemplates.js +2 -1
  192. package/es/widgets/infinite-hits/infinite-hits.d.ts +2 -1
  193. package/es/widgets/infinite-hits/infinite-hits.js +4 -4
  194. package/es/widgets/menu/defaultTemplates.js +1 -1
  195. package/es/widgets/menu/menu.js +4 -4
  196. package/es/widgets/menu-select/menu-select.js +5 -5
  197. package/es/widgets/numeric-menu/numeric-menu.js +3 -3
  198. package/es/widgets/pagination/pagination.js +2 -2
  199. package/es/widgets/panel/panel.js +4 -4
  200. package/es/widgets/places/places.d.ts +1 -1
  201. package/es/widgets/powered-by/powered-by.js +2 -2
  202. package/es/widgets/query-rule-context/query-rule-context.d.ts +1 -1
  203. package/es/widgets/query-rule-context/query-rule-context.js +1 -1
  204. package/es/widgets/query-rule-custom-data/query-rule-custom-data.d.ts +2 -2
  205. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +4 -4
  206. package/es/widgets/range-input/range-input.js +3 -3
  207. package/es/widgets/range-slider/range-slider.js +2 -2
  208. package/es/widgets/rating-menu/defaultTemplates.js +1 -1
  209. package/es/widgets/rating-menu/rating-menu.js +4 -4
  210. package/es/widgets/refinement-list/defaultTemplates.js +1 -1
  211. package/es/widgets/refinement-list/refinement-list.js +3 -3
  212. package/es/widgets/relevant-sort/relevant-sort.d.ts +1 -1
  213. package/es/widgets/relevant-sort/relevant-sort.js +4 -4
  214. package/es/widgets/search-box/defaultTemplates.js +6 -3
  215. package/es/widgets/search-box/search-box.d.ts +2 -2
  216. package/es/widgets/search-box/search-box.js +4 -4
  217. package/es/widgets/sort-by/sort-by.js +2 -2
  218. package/es/widgets/stats/stats.js +4 -4
  219. package/es/widgets/toggle-refinement/toggle-refinement.js +4 -4
  220. package/es/widgets/voice-search/voice-search.d.ts +2 -2
  221. package/es/widgets/voice-search/voice-search.js +4 -4
  222. package/package.json +5 -5
  223. package/cjs/lib/utils/detect-insights-client.js +0 -17
  224. package/es/lib/utils/detect-insights-client.d.ts +0 -1
  225. package/es/lib/utils/detect-insights-client.js +0 -11
@@ -515,6 +515,7 @@ declare class BrowserHistory<TRouteState> implements Router<TRouteState> {
515
515
  * Removes the event listener and cleans up the URL.
516
516
  */
517
517
  dispose(): void;
518
+ start(): void;
518
519
  private shouldWrite;
519
520
  }
520
521
 
@@ -785,6 +786,9 @@ declare type ConnectorRenderStates = AnswersWidgetDescription['indexRenderState'
785
786
 
786
787
  declare namespace connectors {
787
788
  export {
789
+ EXPERIMENTAL_connectAnswers,
790
+ EXPERIMENTAL_connectDynamicWidgets,
791
+ connectDynamicWidgets,
788
792
  connectClearRefinements,
789
793
  connectCurrentRefinements,
790
794
  connectHierarchicalMenu,
@@ -811,10 +815,7 @@ declare namespace connectors {
811
815
  connectAutocomplete,
812
816
  connectQueryRules,
813
817
  connectVoiceSearch,
814
- EXPERIMENTAL_connectAnswers,
815
- connectRelevantSort,
816
- connectDynamicWidgets,
817
- EXPERIMENTAL_connectDynamicWidgets
818
+ connectRelevantSort
818
819
  }
819
820
  }
820
821
 
@@ -956,6 +957,10 @@ declare type CurrentRefinementsConnectorParamsItem = {
956
957
  * The index name.
957
958
  */
958
959
  indexName: string;
960
+ /**
961
+ * The index id as provided to the index widget.
962
+ */
963
+ indexId: string;
959
964
  /**
960
965
  * The attribute on which the refinement is applied.
961
966
  */
@@ -1992,6 +1997,7 @@ declare type HitsTemplates = Partial<{
1992
1997
  * @default ''
1993
1998
  */
1994
1999
  item: TemplateWithBindEvent<Hit & {
2000
+ /** @deprecated the index in the hits array, use __position instead, which is the absolute position */
1995
2001
  __hitIndex: number;
1996
2002
  }>;
1997
2003
  }>;
@@ -2054,7 +2060,7 @@ declare type IndexRenderState = Partial<ConnectorRenderStates & WidgetRenderStat
2054
2060
 
2055
2061
  declare type IndexUiState = Partial<ConnectorUiStates & WidgetUiStates>;
2056
2062
 
2057
- declare type IndexWidget = Omit<Widget<IndexWidgetDescription & {
2063
+ declare type IndexWidget<TUiState extends UiState = UiState> = Omit<Widget<IndexWidgetDescription & {
2058
2064
  widgetParams: IndexWidgetParams;
2059
2065
  }>, 'getWidgetUiState' | 'getWidgetState'> & {
2060
2066
  getIndexName(): string;
@@ -2075,11 +2081,21 @@ declare type IndexWidget = Omit<Widget<IndexWidgetDescription & {
2075
2081
  * @deprecated
2076
2082
  */
2077
2083
  getWidgetState(uiState: UiState): UiState;
2078
- getWidgetUiState<TUiState extends UiState = UiState>(uiState: TUiState): TUiState;
2084
+ getWidgetUiState<TSpecificUiState extends UiState = TUiState>(uiState: TSpecificUiState): TSpecificUiState;
2079
2085
  getWidgetSearchParameters(searchParameters: SearchParameters, searchParametersOptions: {
2080
2086
  uiState: IndexUiState;
2081
2087
  }): SearchParameters;
2088
+ /**
2089
+ * Set this index' UI state back to the state defined by the widgets.
2090
+ * Can only be called after `init`.
2091
+ */
2082
2092
  refreshUiState(): void;
2093
+ /**
2094
+ * Set this index' UI state and search. This is the equivalent of calling
2095
+ * a spread `setUiState` on the InstantSearch instance.
2096
+ * Can only be called after `init`.
2097
+ */
2098
+ setIndexUiState(indexUiState: TUiState[string] | ((previousIndexUiState: TUiState[string]) => TUiState[string])): void;
2083
2099
  };
2084
2100
 
2085
2101
  declare type IndexWidgetDescription = {
@@ -2222,6 +2238,7 @@ declare type InfiniteHitsTemplates = Partial<{
2222
2238
  * The template to use for each result.
2223
2239
  */
2224
2240
  item: TemplateWithBindEvent<Hit & {
2241
+ /** @deprecated the index in the hits array, use __position instead, which is the absolute position */
2225
2242
  __hitIndex: number;
2226
2243
  }>;
2227
2244
  }>;
@@ -2514,6 +2531,7 @@ declare type InstantSearchOptions<TUiState extends UiState = UiState, TRouteStat
2514
2531
  * A hook that will be called each time a search needs to be done, with the
2515
2532
  * helper as a parameter. It's your responsibility to call `helper.search()`.
2516
2533
  * This option allows you to avoid doing searches at page load for example.
2534
+ * @deprecated use onStateChange instead
2517
2535
  */
2518
2536
  searchFunction?: (helper: AlgoliaSearchHelper) => void;
2519
2537
  /**
@@ -4520,6 +4538,10 @@ declare type Router<TRouteState = UiState> = {
4520
4538
  * Called when InstantSearch is disposed. Used to remove subscriptions.
4521
4539
  */
4522
4540
  dispose(): void;
4541
+ /**
4542
+ * Called when InstantSearch is started.
4543
+ */
4544
+ start?: () => void;
4523
4545
  };
4524
4546
 
4525
4547
  declare type RouterProps<TUiState extends UiState = UiState, TRouteState = TUiState> = {
@@ -5393,15 +5415,15 @@ declare type WidgetRenderStates = AnalyticsWidgetDescription['indexRenderState']
5393
5415
 
5394
5416
  declare namespace widgets {
5395
5417
  export {
5418
+ EXPERIMENTAL_answers,
5419
+ EXPERIMENTAL_dynamicWidgets,
5420
+ dynamicWidgets,
5396
5421
  analytics,
5397
5422
  breadcrumb,
5398
5423
  clearRefinements,
5399
5424
  configure,
5400
5425
  currentRefinements,
5401
- EXPERIMENTAL_answers,
5402
5426
  configureRelatedItems as EXPERIMENTAL_configureRelatedItems,
5403
- dynamicWidgets,
5404
- EXPERIMENTAL_dynamicWidgets,
5405
5427
  geoSearch,
5406
5428
  hierarchicalMenu,
5407
5429
  hits,
@@ -515,6 +515,7 @@ declare class BrowserHistory<TRouteState> implements Router<TRouteState> {
515
515
  * Removes the event listener and cleans up the URL.
516
516
  */
517
517
  dispose(): void;
518
+ start(): void;
518
519
  private shouldWrite;
519
520
  }
520
521
 
@@ -785,6 +786,9 @@ declare type ConnectorRenderStates = AnswersWidgetDescription['indexRenderState'
785
786
 
786
787
  declare namespace connectors {
787
788
  export {
789
+ EXPERIMENTAL_connectAnswers,
790
+ EXPERIMENTAL_connectDynamicWidgets,
791
+ connectDynamicWidgets,
788
792
  connectClearRefinements,
789
793
  connectCurrentRefinements,
790
794
  connectHierarchicalMenu,
@@ -811,10 +815,7 @@ declare namespace connectors {
811
815
  connectAutocomplete,
812
816
  connectQueryRules,
813
817
  connectVoiceSearch,
814
- EXPERIMENTAL_connectAnswers,
815
- connectRelevantSort,
816
- connectDynamicWidgets,
817
- EXPERIMENTAL_connectDynamicWidgets
818
+ connectRelevantSort
818
819
  }
819
820
  }
820
821
 
@@ -956,6 +957,10 @@ declare type CurrentRefinementsConnectorParamsItem = {
956
957
  * The index name.
957
958
  */
958
959
  indexName: string;
960
+ /**
961
+ * The index id as provided to the index widget.
962
+ */
963
+ indexId: string;
959
964
  /**
960
965
  * The attribute on which the refinement is applied.
961
966
  */
@@ -1992,6 +1997,7 @@ declare type HitsTemplates = Partial<{
1992
1997
  * @default ''
1993
1998
  */
1994
1999
  item: TemplateWithBindEvent<Hit & {
2000
+ /** @deprecated the index in the hits array, use __position instead, which is the absolute position */
1995
2001
  __hitIndex: number;
1996
2002
  }>;
1997
2003
  }>;
@@ -2054,7 +2060,7 @@ declare type IndexRenderState = Partial<ConnectorRenderStates & WidgetRenderStat
2054
2060
 
2055
2061
  declare type IndexUiState = Partial<ConnectorUiStates & WidgetUiStates>;
2056
2062
 
2057
- declare type IndexWidget = Omit<Widget<IndexWidgetDescription & {
2063
+ declare type IndexWidget<TUiState extends UiState = UiState> = Omit<Widget<IndexWidgetDescription & {
2058
2064
  widgetParams: IndexWidgetParams;
2059
2065
  }>, 'getWidgetUiState' | 'getWidgetState'> & {
2060
2066
  getIndexName(): string;
@@ -2075,11 +2081,21 @@ declare type IndexWidget = Omit<Widget<IndexWidgetDescription & {
2075
2081
  * @deprecated
2076
2082
  */
2077
2083
  getWidgetState(uiState: UiState): UiState;
2078
- getWidgetUiState<TUiState extends UiState = UiState>(uiState: TUiState): TUiState;
2084
+ getWidgetUiState<TSpecificUiState extends UiState = TUiState>(uiState: TSpecificUiState): TSpecificUiState;
2079
2085
  getWidgetSearchParameters(searchParameters: SearchParameters, searchParametersOptions: {
2080
2086
  uiState: IndexUiState;
2081
2087
  }): SearchParameters;
2088
+ /**
2089
+ * Set this index' UI state back to the state defined by the widgets.
2090
+ * Can only be called after `init`.
2091
+ */
2082
2092
  refreshUiState(): void;
2093
+ /**
2094
+ * Set this index' UI state and search. This is the equivalent of calling
2095
+ * a spread `setUiState` on the InstantSearch instance.
2096
+ * Can only be called after `init`.
2097
+ */
2098
+ setIndexUiState(indexUiState: TUiState[string] | ((previousIndexUiState: TUiState[string]) => TUiState[string])): void;
2083
2099
  };
2084
2100
 
2085
2101
  declare type IndexWidgetDescription = {
@@ -2222,6 +2238,7 @@ declare type InfiniteHitsTemplates = Partial<{
2222
2238
  * The template to use for each result.
2223
2239
  */
2224
2240
  item: TemplateWithBindEvent<Hit & {
2241
+ /** @deprecated the index in the hits array, use __position instead, which is the absolute position */
2225
2242
  __hitIndex: number;
2226
2243
  }>;
2227
2244
  }>;
@@ -2514,6 +2531,7 @@ declare type InstantSearchOptions<TUiState extends UiState = UiState, TRouteStat
2514
2531
  * A hook that will be called each time a search needs to be done, with the
2515
2532
  * helper as a parameter. It's your responsibility to call `helper.search()`.
2516
2533
  * This option allows you to avoid doing searches at page load for example.
2534
+ * @deprecated use onStateChange instead
2517
2535
  */
2518
2536
  searchFunction?: (helper: AlgoliaSearchHelper) => void;
2519
2537
  /**
@@ -4520,6 +4538,10 @@ declare type Router<TRouteState = UiState> = {
4520
4538
  * Called when InstantSearch is disposed. Used to remove subscriptions.
4521
4539
  */
4522
4540
  dispose(): void;
4541
+ /**
4542
+ * Called when InstantSearch is started.
4543
+ */
4544
+ start?: () => void;
4523
4545
  };
4524
4546
 
4525
4547
  declare type RouterProps<TUiState extends UiState = UiState, TRouteState = TUiState> = {
@@ -5393,15 +5415,15 @@ declare type WidgetRenderStates = AnalyticsWidgetDescription['indexRenderState']
5393
5415
 
5394
5416
  declare namespace widgets {
5395
5417
  export {
5418
+ EXPERIMENTAL_answers,
5419
+ EXPERIMENTAL_dynamicWidgets,
5420
+ dynamicWidgets,
5396
5421
  analytics,
5397
5422
  breadcrumb,
5398
5423
  clearRefinements,
5399
5424
  configure,
5400
5425
  currentRefinements,
5401
- EXPERIMENTAL_answers,
5402
5426
  configureRelatedItems as EXPERIMENTAL_configureRelatedItems,
5403
- dynamicWidgets,
5404
- EXPERIMENTAL_dynamicWidgets,
5405
5427
  geoSearch,
5406
5428
  hierarchicalMenu,
5407
5429
  hits,