@algolia/autocomplete-js 1.5.7 → 1.6.2

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.
@@ -1,4 +1,4 @@
1
- /*! @algolia/autocomplete-js 1.5.7 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
1
+ /*! @algolia/autocomplete-js 1.6.2 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -110,6 +110,10 @@
110
110
  return target;
111
111
  }
112
112
 
113
+ function _slicedToArray$1(arr, i) {
114
+ return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$6(arr, i) || _nonIterableRest$1();
115
+ }
116
+
113
117
  function _toConsumableArray$5(arr) {
114
118
  return _arrayWithoutHoles$5(arr) || _iterableToArray$5(arr) || _unsupportedIterableToArray$6(arr) || _nonIterableSpread$5();
115
119
  }
@@ -118,10 +122,44 @@
118
122
  if (Array.isArray(arr)) return _arrayLikeToArray$6(arr);
119
123
  }
120
124
 
125
+ function _arrayWithHoles$1(arr) {
126
+ if (Array.isArray(arr)) return arr;
127
+ }
128
+
121
129
  function _iterableToArray$5(iter) {
122
130
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
123
131
  }
124
132
 
133
+ function _iterableToArrayLimit$1(arr, i) {
134
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
135
+
136
+ if (_i == null) return;
137
+ var _arr = [];
138
+ var _n = true;
139
+ var _d = false;
140
+
141
+ var _s, _e;
142
+
143
+ try {
144
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
145
+ _arr.push(_s.value);
146
+
147
+ if (i && _arr.length === i) break;
148
+ }
149
+ } catch (err) {
150
+ _d = true;
151
+ _e = err;
152
+ } finally {
153
+ try {
154
+ if (!_n && _i["return"] != null) _i["return"]();
155
+ } finally {
156
+ if (_d) throw _e;
157
+ }
158
+ }
159
+
160
+ return _arr;
161
+ }
162
+
125
163
  function _unsupportedIterableToArray$6(o, minLen) {
126
164
  if (!o) return;
127
165
  if (typeof o === "string") return _arrayLikeToArray$6(o, minLen);
@@ -143,6 +181,10 @@
143
181
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
144
182
  }
145
183
 
184
+ function _nonIterableRest$1() {
185
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
186
+ }
187
+
146
188
  function createRef(initialValue) {
147
189
  return {
148
190
  current: initialValue
@@ -311,7 +353,7 @@
311
353
 
312
354
  var noop = function noop() {};
313
355
 
314
- var version = '1.5.7';
356
+ var version = '1.6.2';
315
357
 
316
358
  var userAgents$1 = [{
317
359
  segment: 'autocomplete-core',
@@ -1354,7 +1396,7 @@
1354
1396
  });
1355
1397
  }
1356
1398
 
1357
- var _excluded$6 = ["event", "nextState", "props", "query", "refresh", "store"];
1399
+ var _excluded$7 = ["event", "nextState", "props", "query", "refresh", "store"];
1358
1400
 
1359
1401
  function ownKeys$8(object, enumerableOnly) {
1360
1402
  var keys = Object.keys(object);
@@ -1442,7 +1484,7 @@
1442
1484
  query = _ref.query,
1443
1485
  refresh = _ref.refresh,
1444
1486
  store = _ref.store,
1445
- setters = _objectWithoutProperties$3(_ref, _excluded$6);
1487
+ setters = _objectWithoutProperties$3(_ref, _excluded$7);
1446
1488
 
1447
1489
  if (lastStalledId) {
1448
1490
  props.environment.clearTimeout(lastStalledId);
@@ -1552,7 +1594,7 @@
1552
1594
  return store.pendingRequests.add(request);
1553
1595
  }
1554
1596
 
1555
- var _excluded$5 = ["event", "props", "refresh", "store"];
1597
+ var _excluded$6 = ["event", "props", "refresh", "store"];
1556
1598
 
1557
1599
  function ownKeys$7(object, enumerableOnly) {
1558
1600
  var keys = Object.keys(object);
@@ -1635,7 +1677,7 @@
1635
1677
  props = _ref.props,
1636
1678
  refresh = _ref.refresh,
1637
1679
  store = _ref.store,
1638
- setters = _objectWithoutProperties$2(_ref, _excluded$5);
1680
+ setters = _objectWithoutProperties$2(_ref, _excluded$6);
1639
1681
 
1640
1682
  if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
1641
1683
  // eslint-disable-next-line no-inner-declarations
@@ -1806,7 +1848,7 @@
1806
1848
  }
1807
1849
  }
1808
1850
 
1809
- var _excluded$4 = ["props", "refresh", "store"],
1851
+ var _excluded$5 = ["props", "refresh", "store"],
1810
1852
  _excluded2 = ["inputElement", "formElement", "panelElement"],
1811
1853
  _excluded3 = ["inputElement"],
1812
1854
  _excluded4 = ["inputElement", "maxLength"],
@@ -1892,7 +1934,7 @@
1892
1934
  var props = _ref.props,
1893
1935
  refresh = _ref.refresh,
1894
1936
  store = _ref.store,
1895
- setters = _objectWithoutProperties$1(_ref, _excluded$4);
1937
+ setters = _objectWithoutProperties$1(_ref, _excluded$5);
1896
1938
 
1897
1939
  var getEnvironmentProps = function getEnvironmentProps(providedProps) {
1898
1940
  var inputElement = providedProps.inputElement,
@@ -2597,6 +2639,8 @@
2597
2639
  }, propGetters), setters);
2598
2640
  }
2599
2641
 
2642
+ var n$1=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+"":p?(u=t.apply(a,n$1(t,a,r,["",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a);}return e},t$1=new Map;function htm(s){var r=t$1.get(this);return r||(r=new Map,t$1.set(this,r)),(r=n$1(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e="",u="",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&"..."===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e="";},a=0;a<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?"<"===t?(p(),h=[h],r=3):e+=t:4===r?"--"===e&&">"===t?(r=1,e=""):e=t+e[0]:u?t===u?u="":e+=t:'"'===t||"'"===t?u=t:">"===t?(p(),r=1):r&&("="===t?(r=5,s=e,e=""):"/"===t&&(r<5||">"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(p(),r=2):e+=t),3===r&&"!--"===e&&(r=4,h=h[0]);}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}
2643
+
2600
2644
  var ClearIcon = function ClearIcon(_ref) {
2601
2645
  var environment = _ref.environment;
2602
2646
  var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');
@@ -2665,6 +2709,23 @@
2665
2709
  }, {});
2666
2710
  }
2667
2711
 
2712
+ function pickBy(obj, predicate) {
2713
+ return Object.entries(obj).reduce(function (acc, _ref) {
2714
+ var _ref2 = _slicedToArray$1(_ref, 2),
2715
+ key = _ref2[0],
2716
+ value = _ref2[1];
2717
+
2718
+ if (predicate({
2719
+ key: key,
2720
+ value: value
2721
+ })) {
2722
+ return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty$g({}, key, value));
2723
+ }
2724
+
2725
+ return acc;
2726
+ }, {});
2727
+ }
2728
+
2668
2729
  /* eslint-disable */
2669
2730
 
2670
2731
  /**
@@ -2776,12 +2837,12 @@
2776
2837
  }
2777
2838
  }
2778
2839
 
2779
- var _excluded$3 = ["children"];
2840
+ var _excluded$4 = ["children"];
2780
2841
  function getCreateDomElement(environment) {
2781
2842
  return function createDomElement(tagName, _ref) {
2782
2843
  var _ref$children = _ref.children,
2783
2844
  children = _ref$children === void 0 ? [] : _ref$children,
2784
- props = _objectWithoutProperties$4(_ref, _excluded$3);
2845
+ props = _objectWithoutProperties$4(_ref, _excluded$4);
2785
2846
 
2786
2847
  var element = environment.document.createElement(tagName);
2787
2848
  setProperties(element, props);
@@ -2790,7 +2851,7 @@
2790
2851
  };
2791
2852
  }
2792
2853
 
2793
- var _excluded$2 = ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "onDetachedEscape", "state"];
2854
+ var _excluded$3 = ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "onDetachedEscape", "state"];
2794
2855
  var Input = function Input(_ref) {
2795
2856
  var autocompleteScopeApi = _ref.autocompleteScopeApi,
2796
2857
  environment = _ref.environment;
@@ -2799,7 +2860,7 @@
2799
2860
  getInputPropsCore = _ref.getInputPropsCore,
2800
2861
  onDetachedEscape = _ref.onDetachedEscape,
2801
2862
  state = _ref.state,
2802
- props = _objectWithoutProperties$4(_ref, _excluded$2);
2863
+ props = _objectWithoutProperties$4(_ref, _excluded$3);
2803
2864
 
2804
2865
  var createDomElement = getCreateDomElement(environment);
2805
2866
  var element = createDomElement('input', props);
@@ -3406,7 +3467,7 @@
3406
3467
  };
3407
3468
  }
3408
3469
 
3409
- var _excluded$1 = ["params"];
3470
+ var _excluded$2 = ["params"];
3410
3471
 
3411
3472
  function ownKeys(object, enumerableOnly) {
3412
3473
  var keys = Object.keys(object);
@@ -3536,7 +3597,7 @@
3536
3597
 
3537
3598
  return searchClient.search(queries.map(function (searchParameters) {
3538
3599
  var params = searchParameters.params,
3539
- headers = _objectWithoutProperties(searchParameters, _excluded$1);
3600
+ headers = _objectWithoutProperties(searchParameters, _excluded$2);
3540
3601
 
3541
3602
  return _objectSpread(_objectSpread({}, headers), {}, {
3542
3603
  params: _objectSpread({
@@ -3553,7 +3614,8 @@
3553
3614
  function createHighlightComponent(_ref) {
3554
3615
  var createElement = _ref.createElement,
3555
3616
  Fragment = _ref.Fragment;
3556
- return function Highlight(_ref2) {
3617
+
3618
+ function Highlight(_ref2) {
3557
3619
  var hit = _ref2.hit,
3558
3620
  attribute = _ref2.attribute,
3559
3621
  _ref2$tagName = _ref2.tagName,
@@ -3566,13 +3628,17 @@
3566
3628
  key: index
3567
3629
  }, x.value) : x.value;
3568
3630
  }));
3569
- };
3631
+ }
3632
+
3633
+ Highlight.__autocomplete_componentName = 'Highlight';
3634
+ return Highlight;
3570
3635
  }
3571
3636
 
3572
3637
  function createReverseHighlightComponent(_ref) {
3573
3638
  var createElement = _ref.createElement,
3574
3639
  Fragment = _ref.Fragment;
3575
- return function ReverseHighlight(_ref2) {
3640
+
3641
+ function ReverseHighlight(_ref2) {
3576
3642
  var hit = _ref2.hit,
3577
3643
  attribute = _ref2.attribute,
3578
3644
  _ref2$tagName = _ref2.tagName,
@@ -3585,13 +3651,17 @@
3585
3651
  key: index
3586
3652
  }, x.value) : x.value;
3587
3653
  }));
3588
- };
3654
+ }
3655
+
3656
+ ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';
3657
+ return ReverseHighlight;
3589
3658
  }
3590
3659
 
3591
3660
  function createReverseSnippetComponent(_ref) {
3592
3661
  var createElement = _ref.createElement,
3593
3662
  Fragment = _ref.Fragment;
3594
- return function ReverseSnippet(_ref2) {
3663
+
3664
+ function ReverseSnippet(_ref2) {
3595
3665
  var hit = _ref2.hit,
3596
3666
  attribute = _ref2.attribute,
3597
3667
  _ref2$tagName = _ref2.tagName,
@@ -3604,13 +3674,17 @@
3604
3674
  key: index
3605
3675
  }, x.value) : x.value;
3606
3676
  }));
3607
- };
3677
+ }
3678
+
3679
+ ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';
3680
+ return ReverseSnippet;
3608
3681
  }
3609
3682
 
3610
3683
  function createSnippetComponent(_ref) {
3611
3684
  var createElement = _ref.createElement,
3612
3685
  Fragment = _ref.Fragment;
3613
- return function Snippet(_ref2) {
3686
+
3687
+ function Snippet(_ref2) {
3614
3688
  var hit = _ref2.hit,
3615
3689
  attribute = _ref2.attribute,
3616
3690
  _ref2$tagName = _ref2.tagName,
@@ -3623,10 +3697,13 @@
3623
3697
  key: index
3624
3698
  }, x.value) : x.value;
3625
3699
  }));
3626
- };
3700
+ }
3701
+
3702
+ Snippet.__autocomplete_componentName = 'Snippet';
3703
+ return Snippet;
3627
3704
  }
3628
3705
 
3629
- var _excluded = ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"];
3706
+ var _excluded$1 = ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"];
3630
3707
  var defaultClassNames = {
3631
3708
  clearButton: 'aa-ClearButton',
3632
3709
  detachedCancelButton: 'aa-DetachedCancelButton',
@@ -3656,13 +3733,15 @@
3656
3733
  };
3657
3734
 
3658
3735
  var defaultRender = function defaultRender(_ref, root) {
3659
- var children = _ref.children;
3660
- S(children, root);
3736
+ var children = _ref.children,
3737
+ render = _ref.render;
3738
+ render(children, root);
3661
3739
  };
3662
3740
 
3663
3741
  var defaultRenderer = {
3664
3742
  createElement: v,
3665
- Fragment: d
3743
+ Fragment: d,
3744
+ render: S
3666
3745
  };
3667
3746
  function getDefaultOptions(options) {
3668
3747
  var _core$id;
@@ -3685,7 +3764,7 @@
3685
3764
  detachedMediaQuery = options.detachedMediaQuery,
3686
3765
  components = options.components,
3687
3766
  translations = options.translations,
3688
- core = _objectWithoutProperties$4(options, _excluded);
3767
+ core = _objectWithoutProperties$4(options, _excluded$1);
3689
3768
  /* eslint-disable no-restricted-globals */
3690
3769
 
3691
3770
 
@@ -3694,7 +3773,11 @@
3694
3773
 
3695
3774
  var containerElement = getHTMLElement(environment, container);
3696
3775
  invariant(containerElement.tagName !== 'INPUT', 'The `container` option does not support `input` elements. You need to change the container to a `div`.');
3697
- var defaultedRenderer = renderer !== null && renderer !== void 0 ? renderer : defaultRenderer;
3776
+ "development" !== 'production' ? warn(!(render && renderer && !(renderer !== null && renderer !== void 0 && renderer.render)), "You provided the `render` option but did not provide a `renderer.render`. Since v1.6.0, you can provide a `render` function directly in `renderer`." + "\nTo get rid of this warning, do any of the following depending on your use case." + "\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option." + '\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' + '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render') : void 0;
3777
+ "development" !== 'production' ? warn(!renderer || render || renderer.Fragment && renderer.createElement && renderer.render, "You provided an incomplete `renderer` (missing: ".concat([!(renderer !== null && renderer !== void 0 && renderer.createElement) && '`renderer.createElement`', !(renderer !== null && renderer !== void 0 && renderer.Fragment) && '`renderer.Fragment`', !(renderer !== null && renderer !== void 0 && renderer.render) && '`renderer.render`'].filter(Boolean).join(', '), "). This can cause rendering issues.") + '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer') : void 0;
3778
+
3779
+ var defaultedRenderer = _objectSpread2(_objectSpread2({}, defaultRenderer), renderer);
3780
+
3698
3781
  var defaultComponents = {
3699
3782
  Highlight: createHighlightComponent(defaultedRenderer),
3700
3783
  ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),
@@ -3847,13 +3930,13 @@
3847
3930
  var autocomplete = _ref2.autocomplete,
3848
3931
  autocompleteScopeApi = _ref2.autocompleteScopeApi,
3849
3932
  classNames = _ref2.classNames,
3850
- createElement = _ref2.createElement,
3933
+ html = _ref2.html,
3851
3934
  dom = _ref2.dom,
3852
- Fragment = _ref2.Fragment,
3853
3935
  panelContainer = _ref2.panelContainer,
3854
3936
  propGetters = _ref2.propGetters,
3855
3937
  state = _ref2.state,
3856
- components = _ref2.components;
3938
+ components = _ref2.components,
3939
+ renderer = _ref2.renderer;
3857
3940
 
3858
3941
  if (!state.isOpen) {
3859
3942
  if (panelContainer.contains(dom.panel)) {
@@ -3877,28 +3960,30 @@
3877
3960
  }).map(function (_ref4, sourceIndex) {
3878
3961
  var source = _ref4.source,
3879
3962
  items = _ref4.items;
3880
- return createElement("section", {
3963
+ return renderer.createElement("section", {
3881
3964
  key: sourceIndex,
3882
3965
  className: classNames.source,
3883
3966
  "data-autocomplete-source-id": source.sourceId
3884
- }, source.templates.header && createElement("div", {
3967
+ }, source.templates.header && renderer.createElement("div", {
3885
3968
  className: classNames.sourceHeader
3886
3969
  }, source.templates.header({
3887
3970
  components: components,
3888
- createElement: createElement,
3889
- Fragment: Fragment,
3971
+ createElement: renderer.createElement,
3972
+ Fragment: renderer.Fragment,
3890
3973
  items: items,
3891
3974
  source: source,
3892
- state: state
3893
- })), source.templates.noResults && items.length === 0 ? createElement("div", {
3975
+ state: state,
3976
+ html: html
3977
+ })), source.templates.noResults && items.length === 0 ? renderer.createElement("div", {
3894
3978
  className: classNames.sourceNoResults
3895
3979
  }, source.templates.noResults({
3896
3980
  components: components,
3897
- createElement: createElement,
3898
- Fragment: Fragment,
3981
+ createElement: renderer.createElement,
3982
+ Fragment: renderer.Fragment,
3899
3983
  source: source,
3900
- state: state
3901
- })) : createElement("ul", _extends({
3984
+ state: state,
3985
+ html: html
3986
+ })) : renderer.createElement("ul", _extends({
3902
3987
  className: classNames.list
3903
3988
  }, propGetters.getListProps(_objectSpread2({
3904
3989
  state: state,
@@ -3908,7 +3993,7 @@
3908
3993
  item: item,
3909
3994
  source: source
3910
3995
  });
3911
- return createElement("li", _extends({
3996
+ return renderer.createElement("li", _extends({
3912
3997
  key: itemProps.id,
3913
3998
  className: classNames.item
3914
3999
  }, propGetters.getItemProps(_objectSpread2({
@@ -3916,39 +4001,41 @@
3916
4001
  props: itemProps
3917
4002
  }, autocompleteScopeApi))), source.templates.item({
3918
4003
  components: components,
3919
- createElement: createElement,
3920
- Fragment: Fragment,
4004
+ createElement: renderer.createElement,
4005
+ Fragment: renderer.Fragment,
3921
4006
  item: item,
3922
- state: state
4007
+ state: state,
4008
+ html: html
3923
4009
  }));
3924
- })), source.templates.footer && createElement("div", {
4010
+ })), source.templates.footer && renderer.createElement("div", {
3925
4011
  className: classNames.sourceFooter
3926
4012
  }, source.templates.footer({
3927
4013
  components: components,
3928
- createElement: createElement,
3929
- Fragment: Fragment,
4014
+ createElement: renderer.createElement,
4015
+ Fragment: renderer.Fragment,
3930
4016
  items: items,
3931
4017
  source: source,
3932
- state: state
4018
+ state: state,
4019
+ html: html
3933
4020
  })));
3934
4021
  });
3935
- var children = createElement(Fragment, null, createElement("div", {
4022
+ var children = renderer.createElement(renderer.Fragment, null, renderer.createElement("div", {
3936
4023
  className: classNames.panelLayout
3937
- }, sections), createElement("div", {
4024
+ }, sections), renderer.createElement("div", {
3938
4025
  className: "aa-GradientBottom"
3939
4026
  }));
3940
4027
  var elements = sections.reduce(function (acc, current) {
3941
4028
  acc[current.props['data-autocomplete-source-id']] = current;
3942
4029
  return acc;
3943
4030
  }, {});
3944
- render(_objectSpread2({
4031
+ render(_objectSpread2(_objectSpread2({
3945
4032
  children: children,
3946
4033
  state: state,
3947
4034
  sections: sections,
3948
- elements: elements,
3949
- createElement: createElement,
3950
- Fragment: Fragment,
3951
- components: components
4035
+ elements: elements
4036
+ }, renderer), {}, {
4037
+ components: components,
4038
+ html: html
3952
4039
  }, autocompleteScopeApi), dom.panel);
3953
4040
  }
3954
4041
 
@@ -3957,6 +4044,7 @@
3957
4044
  version: version
3958
4045
  }];
3959
4046
 
4047
+ var _excluded = ["components"];
3960
4048
  function autocomplete(options) {
3961
4049
  var _createEffectWrapper = createEffectWrapper(),
3962
4050
  runEffect = _createEffectWrapper.runEffect,
@@ -4037,6 +4125,9 @@
4037
4125
  setContext: autocomplete.value.setContext,
4038
4126
  refresh: autocomplete.value.refresh
4039
4127
  };
4128
+ var html = reactive(function () {
4129
+ return htm.bind(props.value.renderer.renderer.createElement);
4130
+ });
4040
4131
  var dom = reactive(function () {
4041
4132
  return createAutocompleteDom({
4042
4133
  autocomplete: autocomplete.value,
@@ -4071,12 +4162,12 @@
4071
4162
  classNames: props.value.renderer.classNames,
4072
4163
  components: props.value.renderer.components,
4073
4164
  container: props.value.renderer.container,
4074
- createElement: props.value.renderer.renderer.createElement,
4165
+ html: html.value,
4075
4166
  dom: dom.value,
4076
- Fragment: props.value.renderer.renderer.Fragment,
4077
4167
  panelContainer: isDetached.value ? dom.value.detachedContainer : props.value.renderer.panelContainer,
4078
4168
  propGetters: propGetters,
4079
- state: lastStateRef.current
4169
+ state: lastStateRef.current,
4170
+ renderer: props.value.renderer.renderer
4080
4171
  };
4081
4172
  var render = !getItemsCount(state) && !hasNoResultsSourceTemplateRef.current && props.value.renderer.renderNoResults || props.value.renderer.render;
4082
4173
  renderSearchBox(renderProps);
@@ -4212,7 +4303,21 @@
4212
4303
  function update() {
4213
4304
  var updatedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4214
4305
  cleanupEffects();
4215
- optionsRef.current = mergeDeep(props.value.renderer, props.value.core, {
4306
+
4307
+ var _props$value$renderer = props.value.renderer,
4308
+ components = _props$value$renderer.components,
4309
+ rendererProps = _objectWithoutProperties$4(_props$value$renderer, _excluded);
4310
+
4311
+ optionsRef.current = mergeDeep(rendererProps, props.value.core, {
4312
+ // We need to filter out default components so they can be replaced with
4313
+ // a new `renderer`, without getting rid of user components.
4314
+ // @MAJOR Deal with registering components with the same name as the
4315
+ // default ones. If we disallow overriding default components, we'd just
4316
+ // need to pass all `components` here.
4317
+ components: pickBy(components, function (_ref4) {
4318
+ var value = _ref4.value;
4319
+ return !value.hasOwnProperty('__autocomplete_componentName');
4320
+ }),
4216
4321
  initialState: lastStateRef.current
4217
4322
  }, updatedOptions);
4218
4323
  runReactives();