instantsearch-ui-components 0.7.0 → 0.9.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 (33) hide show
  1. package/dist/cjs/components/Carousel.js +162 -0
  2. package/dist/cjs/components/FrequentlyBoughtTogether.js +5 -6
  3. package/dist/cjs/components/LookingSimilar.js +5 -6
  4. package/dist/cjs/components/RelatedProducts.js +5 -6
  5. package/dist/cjs/components/TrendingItems.js +5 -6
  6. package/dist/cjs/components/index.js +22 -11
  7. package/dist/cjs/components/recommend-shared/DefaultEmpty.js +1 -2
  8. package/dist/cjs/components/recommend-shared/{ListView.js → List.js} +3 -3
  9. package/dist/cjs/components/recommend-shared/index.js +4 -4
  10. package/dist/cjs/version.js +1 -1
  11. package/dist/es/components/Carousel.d.ts +63 -0
  12. package/dist/es/components/Carousel.js +154 -0
  13. package/dist/es/components/FrequentlyBoughtTogether.d.ts +1 -1
  14. package/dist/es/components/FrequentlyBoughtTogether.js +6 -7
  15. package/dist/es/components/LookingSimilar.d.ts +1 -1
  16. package/dist/es/components/LookingSimilar.js +6 -7
  17. package/dist/es/components/RelatedProducts.d.ts +1 -1
  18. package/dist/es/components/RelatedProducts.js +6 -7
  19. package/dist/es/components/TrendingItems.d.ts +1 -1
  20. package/dist/es/components/TrendingItems.js +6 -7
  21. package/dist/es/components/index.d.ts +2 -1
  22. package/dist/es/components/index.js +3 -2
  23. package/dist/es/components/recommend-shared/DefaultEmpty.js +1 -2
  24. package/dist/es/components/recommend-shared/List.d.ts +3 -0
  25. package/dist/es/components/recommend-shared/{ListView.js → List.js} +2 -2
  26. package/dist/es/components/recommend-shared/index.d.ts +1 -1
  27. package/dist/es/components/recommend-shared/index.js +1 -1
  28. package/dist/es/types/Recommend.d.ts +2 -5
  29. package/dist/es/types/Renderer.d.ts +3 -0
  30. package/dist/es/version.d.ts +1 -1
  31. package/dist/es/version.js +1 -1
  32. package/package.json +4 -4
  33. package/dist/es/components/recommend-shared/ListView.d.ts +0 -3
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createCarouselComponent = createCarouselComponent;
8
+ exports.generateCarouselId = generateCarouselId;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _lib = require("../lib");
13
+ var _recommendShared = require("./recommend-shared");
14
+ var _excluded = ["listRef", "nextButtonRef", "previousButtonRef", "carouselIdRef", "classNames", "itemComponent", "previousIconComponent", "nextIconComponent", "items", "translations"];
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+ var lastCarouselId = 0;
18
+ function generateCarouselId() {
19
+ return "ais-Carousel-".concat(lastCarouselId++);
20
+ }
21
+ function PreviousIconDefaultComponent(_ref) {
22
+ var createElement = _ref.createElement;
23
+ return createElement("svg", {
24
+ width: "8",
25
+ height: "16",
26
+ viewBox: "0 0 8 16",
27
+ fill: "none"
28
+ }, createElement("path", {
29
+ fillRule: "evenodd",
30
+ clipRule: "evenodd",
31
+ fill: "currentColor",
32
+ d: "M7.13809 0.744078C7.39844 1.06951 7.39844 1.59715 7.13809 1.92259L2.27616 8L7.13809 14.0774C7.39844 14.4028 7.39844 14.9305 7.13809 15.2559C6.87774 15.5814 6.45563 15.5814 6.19528 15.2559L0.861949 8.58926C0.6016 8.26382 0.6016 7.73618 0.861949 7.41074L6.19528 0.744078C6.45563 0.418641 6.87774 0.418641 7.13809 0.744078Z"
33
+ }));
34
+ }
35
+ function NextIconDefaultComponent(_ref2) {
36
+ var createElement = _ref2.createElement;
37
+ return createElement("svg", {
38
+ width: "8",
39
+ height: "16",
40
+ viewBox: "0 0 8 16",
41
+ fill: "none"
42
+ }, createElement("path", {
43
+ fillRule: "evenodd",
44
+ clipRule: "evenodd",
45
+ fill: "currentColor",
46
+ d: "M0.861908 15.2559C0.601559 14.9305 0.601559 14.4028 0.861908 14.0774L5.72384 8L0.861908 1.92259C0.601559 1.59715 0.601559 1.06952 0.861908 0.744079C1.12226 0.418642 1.54437 0.418642 1.80472 0.744079L7.13805 7.41074C7.3984 7.73618 7.3984 8.26382 7.13805 8.58926L1.80472 15.2559C1.54437 15.5814 1.12226 15.5814 0.861908 15.2559Z"
47
+ }));
48
+ }
49
+ function createCarouselComponent(_ref3) {
50
+ var createElement = _ref3.createElement,
51
+ Fragment = _ref3.Fragment;
52
+ return function Carousel(userProps) {
53
+ var listRef = userProps.listRef,
54
+ nextButtonRef = userProps.nextButtonRef,
55
+ previousButtonRef = userProps.previousButtonRef,
56
+ carouselIdRef = userProps.carouselIdRef,
57
+ _userProps$classNames = userProps.classNames,
58
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
59
+ _userProps$itemCompon = userProps.itemComponent,
60
+ ItemComponent = _userProps$itemCompon === void 0 ? (0, _recommendShared.createDefaultItemComponent)({
61
+ createElement: createElement,
62
+ Fragment: Fragment
63
+ }) : _userProps$itemCompon,
64
+ _userProps$previousIc = userProps.previousIconComponent,
65
+ PreviousIconComponent = _userProps$previousIc === void 0 ? PreviousIconDefaultComponent : _userProps$previousIc,
66
+ _userProps$nextIconCo = userProps.nextIconComponent,
67
+ NextIconComponent = _userProps$nextIconCo === void 0 ? NextIconDefaultComponent : _userProps$nextIconCo,
68
+ items = userProps.items,
69
+ userTranslations = userProps.translations,
70
+ props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
71
+ var translations = _objectSpread({
72
+ listLabel: 'Items',
73
+ nextButtonLabel: 'Next',
74
+ nextButtonTitle: 'Next',
75
+ previousButtonLabel: 'Previous',
76
+ previousButtonTitle: 'Previous'
77
+ }, userTranslations);
78
+ var cssClasses = {
79
+ root: (0, _lib.cx)('ais-Carousel', classNames.root),
80
+ list: (0, _lib.cx)('ais-Carousel-list', classNames.list),
81
+ item: (0, _lib.cx)('ais-Carousel-item', classNames.item),
82
+ navigation: (0, _lib.cx)('ais-Carousel-navigation', classNames.navigation),
83
+ navigationNext: (0, _lib.cx)('ais-Carousel-navigation--next', classNames.navigationNext),
84
+ navigationPrevious: (0, _lib.cx)('ais-Carousel-navigation--previous', classNames.navigationPrevious)
85
+ };
86
+ function scrollLeft() {
87
+ if (listRef.current) {
88
+ listRef.current.scrollLeft -= listRef.current.offsetWidth * 0.75;
89
+ }
90
+ }
91
+ function scrollRight() {
92
+ if (listRef.current) {
93
+ listRef.current.scrollLeft += listRef.current.offsetWidth * 0.75;
94
+ }
95
+ }
96
+ function updateNavigationButtonsProps() {
97
+ if (!listRef.current || !previousButtonRef.current || !nextButtonRef.current) {
98
+ return;
99
+ }
100
+ previousButtonRef.current.hidden = listRef.current.scrollLeft <= 0;
101
+ nextButtonRef.current.hidden = listRef.current.scrollLeft + listRef.current.clientWidth >= listRef.current.scrollWidth;
102
+ }
103
+ if (items.length === 0) {
104
+ return null;
105
+ }
106
+ return createElement("div", (0, _extends2.default)({}, props, {
107
+ className: (0, _lib.cx)(cssClasses.root)
108
+ }), createElement("button", {
109
+ ref: previousButtonRef,
110
+ title: translations.previousButtonTitle,
111
+ "aria-label": translations.previousButtonLabel,
112
+ hidden: true,
113
+ "aria-controls": carouselIdRef.current,
114
+ className: (0, _lib.cx)(cssClasses.navigation, cssClasses.navigationPrevious),
115
+ onClick: function onClick(event) {
116
+ event.preventDefault();
117
+ scrollLeft();
118
+ }
119
+ }, createElement(PreviousIconComponent, {
120
+ createElement: createElement
121
+ })), createElement("ol", {
122
+ className: (0, _lib.cx)(cssClasses.list),
123
+ ref: listRef,
124
+ tabIndex: 0,
125
+ id: carouselIdRef.current,
126
+ "aria-roledescription": "carousel",
127
+ "aria-label": translations.listLabel,
128
+ "aria-live": "polite",
129
+ onScroll: updateNavigationButtonsProps,
130
+ onKeyDown: function onKeyDown(event) {
131
+ if (event.key === 'ArrowLeft') {
132
+ event.preventDefault();
133
+ scrollLeft();
134
+ } else if (event.key === 'ArrowRight') {
135
+ event.preventDefault();
136
+ scrollRight();
137
+ }
138
+ }
139
+ }, items.map(function (item, index) {
140
+ return createElement("li", {
141
+ key: item.objectID,
142
+ className: (0, _lib.cx)(cssClasses.item),
143
+ "aria-roledescription": "slide",
144
+ "aria-label": "".concat(index + 1, " of ").concat(items.length)
145
+ }, createElement(ItemComponent, {
146
+ item: item
147
+ }));
148
+ })), createElement("button", {
149
+ ref: nextButtonRef,
150
+ title: translations.nextButtonTitle,
151
+ "aria-label": translations.nextButtonLabel,
152
+ "aria-controls": carouselIdRef.current,
153
+ className: (0, _lib.cx)(cssClasses.navigation, cssClasses.navigationNext),
154
+ onClick: function onClick(event) {
155
+ event.preventDefault();
156
+ scrollRight();
157
+ }
158
+ }, createElement(NextIconComponent, {
159
+ createElement: createElement
160
+ })));
161
+ };
162
+ }
@@ -10,7 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _lib = require("../lib");
12
12
  var _recommendShared = require("./recommend-shared");
13
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
14
14
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
16
  function createFrequentlyBoughtTogetherComponent(_ref) {
@@ -34,11 +34,11 @@ function createFrequentlyBoughtTogetherComponent(_ref) {
34
34
  createElement: createElement,
35
35
  Fragment: Fragment
36
36
  }) : _userProps$itemCompon,
37
- _userProps$view = userProps.view,
38
- View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
37
+ _userProps$layout = userProps.layout,
38
+ Layout = _userProps$layout === void 0 ? (0, _recommendShared.createListComponent)({
39
39
  createElement: createElement,
40
40
  Fragment: Fragment
41
- }) : _userProps$view,
41
+ }) : _userProps$layout,
42
42
  items = userProps.items,
43
43
  status = userProps.status,
44
44
  userTranslations = userProps.translations,
@@ -67,9 +67,8 @@ function createFrequentlyBoughtTogetherComponent(_ref) {
67
67
  classNames: cssClasses,
68
68
  items: items,
69
69
  translations: translations
70
- }), createElement(View, {
70
+ }), createElement(Layout, {
71
71
  classNames: cssClasses,
72
- translations: translations,
73
72
  itemComponent: ItemComponent,
74
73
  items: items,
75
74
  sendEvent: sendEvent
@@ -10,7 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _lib = require("../lib");
12
12
  var _recommendShared = require("./recommend-shared");
13
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
14
14
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
16
  function createLookingSimilarComponent(_ref) {
@@ -34,11 +34,11 @@ function createLookingSimilarComponent(_ref) {
34
34
  createElement: createElement,
35
35
  Fragment: Fragment
36
36
  }) : _userProps$itemCompon,
37
- _userProps$view = userProps.view,
38
- View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
37
+ _userProps$layout = userProps.layout,
38
+ Layout = _userProps$layout === void 0 ? (0, _recommendShared.createListComponent)({
39
39
  createElement: createElement,
40
40
  Fragment: Fragment
41
- }) : _userProps$view,
41
+ }) : _userProps$layout,
42
42
  items = userProps.items,
43
43
  status = userProps.status,
44
44
  userTranslations = userProps.translations,
@@ -67,9 +67,8 @@ function createLookingSimilarComponent(_ref) {
67
67
  classNames: cssClasses,
68
68
  items: items,
69
69
  translations: translations
70
- }), createElement(View, {
70
+ }), createElement(Layout, {
71
71
  classNames: cssClasses,
72
- translations: translations,
73
72
  itemComponent: ItemComponent,
74
73
  items: items,
75
74
  sendEvent: sendEvent
@@ -10,7 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _lib = require("../lib");
12
12
  var _recommendShared = require("./recommend-shared");
13
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
14
14
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
16
  function createRelatedProductsComponent(_ref) {
@@ -34,11 +34,11 @@ function createRelatedProductsComponent(_ref) {
34
34
  createElement: createElement,
35
35
  Fragment: Fragment
36
36
  }) : _userProps$itemCompon,
37
- _userProps$view = userProps.view,
38
- View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
37
+ _userProps$layout = userProps.layout,
38
+ Layout = _userProps$layout === void 0 ? (0, _recommendShared.createListComponent)({
39
39
  createElement: createElement,
40
40
  Fragment: Fragment
41
- }) : _userProps$view,
41
+ }) : _userProps$layout,
42
42
  items = userProps.items,
43
43
  status = userProps.status,
44
44
  userTranslations = userProps.translations,
@@ -67,9 +67,8 @@ function createRelatedProductsComponent(_ref) {
67
67
  classNames: cssClasses,
68
68
  items: items,
69
69
  translations: translations
70
- }), createElement(View, {
70
+ }), createElement(Layout, {
71
71
  classNames: cssClasses,
72
- translations: translations,
73
72
  itemComponent: ItemComponent,
74
73
  items: items,
75
74
  sendEvent: sendEvent
@@ -10,7 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _lib = require("../lib");
12
12
  var _recommendShared = require("./recommend-shared");
13
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
14
14
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
16
  function createTrendingItemsComponent(_ref) {
@@ -34,11 +34,11 @@ function createTrendingItemsComponent(_ref) {
34
34
  createElement: createElement,
35
35
  Fragment: Fragment
36
36
  }) : _userProps$itemCompon,
37
- _userProps$view = userProps.view,
38
- View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
37
+ _userProps$layout = userProps.layout,
38
+ Layout = _userProps$layout === void 0 ? (0, _recommendShared.createListComponent)({
39
39
  createElement: createElement,
40
40
  Fragment: Fragment
41
- }) : _userProps$view,
41
+ }) : _userProps$layout,
42
42
  items = userProps.items,
43
43
  status = userProps.status,
44
44
  userTranslations = userProps.translations,
@@ -67,9 +67,8 @@ function createTrendingItemsComponent(_ref) {
67
67
  classNames: cssClasses,
68
68
  items: items,
69
69
  translations: translations
70
- }), createElement(View, {
70
+ }), createElement(Layout, {
71
71
  classNames: cssClasses,
72
- translations: translations,
73
72
  itemComponent: ItemComponent,
74
73
  items: items,
75
74
  sendEvent: sendEvent
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _Carousel = require("./Carousel");
7
+ Object.keys(_Carousel).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Carousel[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _Carousel[key];
14
+ }
15
+ });
16
+ });
6
17
  var _FrequentlyBoughtTogether = require("./FrequentlyBoughtTogether");
7
18
  Object.keys(_FrequentlyBoughtTogether).forEach(function (key) {
8
19
  if (key === "default" || key === "__esModule") return;
@@ -36,6 +47,17 @@ Object.keys(_Hits).forEach(function (key) {
36
47
  }
37
48
  });
38
49
  });
50
+ var _LookingSimilar = require("./LookingSimilar");
51
+ Object.keys(_LookingSimilar).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _LookingSimilar[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _LookingSimilar[key];
58
+ }
59
+ });
60
+ });
39
61
  var _RelatedProducts = require("./RelatedProducts");
40
62
  Object.keys(_RelatedProducts).forEach(function (key) {
41
63
  if (key === "default" || key === "__esModule") return;
@@ -57,15 +79,4 @@ Object.keys(_TrendingItems).forEach(function (key) {
57
79
  return _TrendingItems[key];
58
80
  }
59
81
  });
60
- });
61
- var _LookingSimilar = require("./LookingSimilar");
62
- Object.keys(_LookingSimilar).forEach(function (key) {
63
- if (key === "default" || key === "__esModule") return;
64
- if (key in exports && exports[key] === _LookingSimilar[key]) return;
65
- Object.defineProperty(exports, key, {
66
- enumerable: true,
67
- get: function get() {
68
- return _LookingSimilar[key];
69
- }
70
- });
71
82
  });
@@ -7,8 +7,7 @@ exports.createDefaultEmptyComponent = createDefaultEmptyComponent;
7
7
  function createDefaultEmptyComponent(_ref) {
8
8
  var createElement = _ref.createElement,
9
9
  Fragment = _ref.Fragment;
10
- var _ref2 = createElement(Fragment, null, "No results");
11
10
  return function DefaultEmpty() {
12
- return _ref2;
11
+ return createElement(Fragment, null, "No results");
13
12
  };
14
13
  }
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createListViewComponent = createListViewComponent;
7
- function createListViewComponent(_ref) {
6
+ exports.createListComponent = createListComponent;
7
+ function createListComponent(_ref) {
8
8
  var createElement = _ref.createElement;
9
- return function ListView(userProps) {
9
+ return function List(userProps) {
10
10
  var _userProps$classNames = userProps.classNames,
11
11
  classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
12
12
  ItemComponent = userProps.itemComponent,
@@ -36,14 +36,14 @@ Object.keys(_DefaultItem).forEach(function (key) {
36
36
  }
37
37
  });
38
38
  });
39
- var _ListView = require("./ListView");
40
- Object.keys(_ListView).forEach(function (key) {
39
+ var _List = require("./List");
40
+ Object.keys(_List).forEach(function (key) {
41
41
  if (key === "default" || key === "__esModule") return;
42
- if (key in exports && exports[key] === _ListView[key]) return;
42
+ if (key in exports && exports[key] === _List[key]) return;
43
43
  Object.defineProperty(exports, key, {
44
44
  enumerable: true,
45
45
  get: function get() {
46
- return _ListView[key];
46
+ return _List[key];
47
47
  }
48
48
  });
49
49
  });
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '0.7.0';
7
+ var _default = '0.9.0';
8
8
  exports.default = _default;
@@ -0,0 +1,63 @@
1
+ import type { ComponentProps, MutableRef, RecommendItemComponentProps, RecordWithObjectID, Renderer } from '../types';
2
+ export type CarouselProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & {
3
+ listRef: MutableRef<HTMLOListElement | null>;
4
+ nextButtonRef: MutableRef<HTMLButtonElement | null>;
5
+ previousButtonRef: MutableRef<HTMLButtonElement | null>;
6
+ carouselIdRef: MutableRef<string>;
7
+ items: Array<RecordWithObjectID<TObject>>;
8
+ itemComponent?: (props: RecommendItemComponentProps<RecordWithObjectID<TObject>> & TComponentProps) => JSX.Element;
9
+ previousIconComponent?: () => JSX.Element;
10
+ nextIconComponent?: () => JSX.Element;
11
+ classNames?: Partial<CarouselClassNames>;
12
+ translations?: Partial<CarouselTranslations>;
13
+ };
14
+ export type CarouselClassNames = {
15
+ /**
16
+ * Class names to apply to the root element
17
+ */
18
+ root: string | string[];
19
+ /**
20
+ * Class names to apply to the list element
21
+ */
22
+ list: string | string[];
23
+ /**
24
+ * Class names to apply to each item element
25
+ */
26
+ item: string | string[];
27
+ /**
28
+ * Class names to apply to both navigation elements
29
+ */
30
+ navigation: string | string[];
31
+ /**
32
+ * Class names to apply to the next navigation element
33
+ */
34
+ navigationNext: string | string[];
35
+ /**
36
+ * Class names to apply to the previous navigation element
37
+ */
38
+ navigationPrevious: string | string[];
39
+ };
40
+ export type CarouselTranslations = {
41
+ /**
42
+ * The label of the next navigation element
43
+ */
44
+ nextButtonLabel: string;
45
+ /**
46
+ * The title of the next navigation element
47
+ */
48
+ nextButtonTitle: string;
49
+ /**
50
+ * The label of the previous navigation element
51
+ */
52
+ previousButtonLabel: string;
53
+ /**
54
+ * The title of the previous navigation element
55
+ */
56
+ previousButtonTitle: string;
57
+ /**
58
+ * The label of the carousel
59
+ */
60
+ listLabel: string;
61
+ };
62
+ export declare function generateCarouselId(): string;
63
+ export declare function createCarouselComponent({ createElement, Fragment }: Renderer): <TObject extends Record<string, unknown>>(userProps: CarouselProps<TObject>) => JSX.Element | null;
@@ -0,0 +1,154 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["listRef", "nextButtonRef", "previousButtonRef", "carouselIdRef", "classNames", "itemComponent", "previousIconComponent", "nextIconComponent", "items", "translations"];
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+ import { cx } from "../lib/index.js";
8
+ import { createDefaultItemComponent } from "./recommend-shared/index.js";
9
+ var lastCarouselId = 0;
10
+ export function generateCarouselId() {
11
+ return "ais-Carousel-".concat(lastCarouselId++);
12
+ }
13
+ function PreviousIconDefaultComponent(_ref) {
14
+ var createElement = _ref.createElement;
15
+ return createElement("svg", {
16
+ width: "8",
17
+ height: "16",
18
+ viewBox: "0 0 8 16",
19
+ fill: "none"
20
+ }, createElement("path", {
21
+ fillRule: "evenodd",
22
+ clipRule: "evenodd",
23
+ fill: "currentColor",
24
+ d: "M7.13809 0.744078C7.39844 1.06951 7.39844 1.59715 7.13809 1.92259L2.27616 8L7.13809 14.0774C7.39844 14.4028 7.39844 14.9305 7.13809 15.2559C6.87774 15.5814 6.45563 15.5814 6.19528 15.2559L0.861949 8.58926C0.6016 8.26382 0.6016 7.73618 0.861949 7.41074L6.19528 0.744078C6.45563 0.418641 6.87774 0.418641 7.13809 0.744078Z"
25
+ }));
26
+ }
27
+ function NextIconDefaultComponent(_ref2) {
28
+ var createElement = _ref2.createElement;
29
+ return createElement("svg", {
30
+ width: "8",
31
+ height: "16",
32
+ viewBox: "0 0 8 16",
33
+ fill: "none"
34
+ }, createElement("path", {
35
+ fillRule: "evenodd",
36
+ clipRule: "evenodd",
37
+ fill: "currentColor",
38
+ d: "M0.861908 15.2559C0.601559 14.9305 0.601559 14.4028 0.861908 14.0774L5.72384 8L0.861908 1.92259C0.601559 1.59715 0.601559 1.06952 0.861908 0.744079C1.12226 0.418642 1.54437 0.418642 1.80472 0.744079L7.13805 7.41074C7.3984 7.73618 7.3984 8.26382 7.13805 8.58926L1.80472 15.2559C1.54437 15.5814 1.12226 15.5814 0.861908 15.2559Z"
39
+ }));
40
+ }
41
+ export function createCarouselComponent(_ref3) {
42
+ var createElement = _ref3.createElement,
43
+ Fragment = _ref3.Fragment;
44
+ return function Carousel(userProps) {
45
+ var listRef = userProps.listRef,
46
+ nextButtonRef = userProps.nextButtonRef,
47
+ previousButtonRef = userProps.previousButtonRef,
48
+ carouselIdRef = userProps.carouselIdRef,
49
+ _userProps$classNames = userProps.classNames,
50
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
51
+ _userProps$itemCompon = userProps.itemComponent,
52
+ ItemComponent = _userProps$itemCompon === void 0 ? createDefaultItemComponent({
53
+ createElement: createElement,
54
+ Fragment: Fragment
55
+ }) : _userProps$itemCompon,
56
+ _userProps$previousIc = userProps.previousIconComponent,
57
+ PreviousIconComponent = _userProps$previousIc === void 0 ? PreviousIconDefaultComponent : _userProps$previousIc,
58
+ _userProps$nextIconCo = userProps.nextIconComponent,
59
+ NextIconComponent = _userProps$nextIconCo === void 0 ? NextIconDefaultComponent : _userProps$nextIconCo,
60
+ items = userProps.items,
61
+ userTranslations = userProps.translations,
62
+ props = _objectWithoutProperties(userProps, _excluded);
63
+ var translations = _objectSpread({
64
+ listLabel: 'Items',
65
+ nextButtonLabel: 'Next',
66
+ nextButtonTitle: 'Next',
67
+ previousButtonLabel: 'Previous',
68
+ previousButtonTitle: 'Previous'
69
+ }, userTranslations);
70
+ var cssClasses = {
71
+ root: cx('ais-Carousel', classNames.root),
72
+ list: cx('ais-Carousel-list', classNames.list),
73
+ item: cx('ais-Carousel-item', classNames.item),
74
+ navigation: cx('ais-Carousel-navigation', classNames.navigation),
75
+ navigationNext: cx('ais-Carousel-navigation--next', classNames.navigationNext),
76
+ navigationPrevious: cx('ais-Carousel-navigation--previous', classNames.navigationPrevious)
77
+ };
78
+ function scrollLeft() {
79
+ if (listRef.current) {
80
+ listRef.current.scrollLeft -= listRef.current.offsetWidth * 0.75;
81
+ }
82
+ }
83
+ function scrollRight() {
84
+ if (listRef.current) {
85
+ listRef.current.scrollLeft += listRef.current.offsetWidth * 0.75;
86
+ }
87
+ }
88
+ function updateNavigationButtonsProps() {
89
+ if (!listRef.current || !previousButtonRef.current || !nextButtonRef.current) {
90
+ return;
91
+ }
92
+ previousButtonRef.current.hidden = listRef.current.scrollLeft <= 0;
93
+ nextButtonRef.current.hidden = listRef.current.scrollLeft + listRef.current.clientWidth >= listRef.current.scrollWidth;
94
+ }
95
+ if (items.length === 0) {
96
+ return null;
97
+ }
98
+ return createElement("div", _extends({}, props, {
99
+ className: cx(cssClasses.root)
100
+ }), createElement("button", {
101
+ ref: previousButtonRef,
102
+ title: translations.previousButtonTitle,
103
+ "aria-label": translations.previousButtonLabel,
104
+ hidden: true,
105
+ "aria-controls": carouselIdRef.current,
106
+ className: cx(cssClasses.navigation, cssClasses.navigationPrevious),
107
+ onClick: function onClick(event) {
108
+ event.preventDefault();
109
+ scrollLeft();
110
+ }
111
+ }, createElement(PreviousIconComponent, {
112
+ createElement: createElement
113
+ })), createElement("ol", {
114
+ className: cx(cssClasses.list),
115
+ ref: listRef,
116
+ tabIndex: 0,
117
+ id: carouselIdRef.current,
118
+ "aria-roledescription": "carousel",
119
+ "aria-label": translations.listLabel,
120
+ "aria-live": "polite",
121
+ onScroll: updateNavigationButtonsProps,
122
+ onKeyDown: function onKeyDown(event) {
123
+ if (event.key === 'ArrowLeft') {
124
+ event.preventDefault();
125
+ scrollLeft();
126
+ } else if (event.key === 'ArrowRight') {
127
+ event.preventDefault();
128
+ scrollRight();
129
+ }
130
+ }
131
+ }, items.map(function (item, index) {
132
+ return createElement("li", {
133
+ key: item.objectID,
134
+ className: cx(cssClasses.item),
135
+ "aria-roledescription": "slide",
136
+ "aria-label": "".concat(index + 1, " of ").concat(items.length)
137
+ }, createElement(ItemComponent, {
138
+ item: item
139
+ }));
140
+ })), createElement("button", {
141
+ ref: nextButtonRef,
142
+ title: translations.nextButtonTitle,
143
+ "aria-label": translations.nextButtonLabel,
144
+ "aria-controls": carouselIdRef.current,
145
+ className: cx(cssClasses.navigation, cssClasses.navigationNext),
146
+ onClick: function onClick(event) {
147
+ event.preventDefault();
148
+ scrollRight();
149
+ }
150
+ }, createElement(NextIconComponent, {
151
+ createElement: createElement
152
+ })));
153
+ };
154
+ }
@@ -1,4 +1,4 @@
1
1
  /** @jsx createElement */
2
2
  import type { Renderer, ComponentProps, RecommendComponentProps } from '../types';
3
3
  export type FrequentlyBoughtTogetherProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
- export declare function createFrequentlyBoughtTogetherComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: FrequentlyBoughtTogetherProps<TObject, Record<string, unknown>>) => JSX.Element;
4
+ export declare function createFrequentlyBoughtTogetherComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: FrequentlyBoughtTogetherProps<TObject>) => JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  import { cx } from "../lib/index.js";
8
- import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListComponent } from "./recommend-shared/index.js";
9
9
  export function createFrequentlyBoughtTogetherComponent(_ref) {
10
10
  var createElement = _ref.createElement,
11
11
  Fragment = _ref.Fragment;
@@ -27,11 +27,11 @@ export function createFrequentlyBoughtTogetherComponent(_ref) {
27
27
  createElement: createElement,
28
28
  Fragment: Fragment
29
29
  }) : _userProps$itemCompon,
30
- _userProps$view = userProps.view,
31
- View = _userProps$view === void 0 ? createListViewComponent({
30
+ _userProps$layout = userProps.layout,
31
+ Layout = _userProps$layout === void 0 ? createListComponent({
32
32
  createElement: createElement,
33
33
  Fragment: Fragment
34
- }) : _userProps$view,
34
+ }) : _userProps$layout,
35
35
  items = userProps.items,
36
36
  status = userProps.status,
37
37
  userTranslations = userProps.translations,
@@ -60,9 +60,8 @@ export function createFrequentlyBoughtTogetherComponent(_ref) {
60
60
  classNames: cssClasses,
61
61
  items: items,
62
62
  translations: translations
63
- }), createElement(View, {
63
+ }), createElement(Layout, {
64
64
  classNames: cssClasses,
65
- translations: translations,
66
65
  itemComponent: ItemComponent,
67
66
  items: items,
68
67
  sendEvent: sendEvent
@@ -1,4 +1,4 @@
1
1
  /** @jsx createElement */
2
2
  import type { ComponentProps, RecommendComponentProps, Renderer } from '../types';
3
3
  export type LookingSimilarProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
- export declare function createLookingSimilarComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: LookingSimilarProps<TObject, Record<string, unknown>>) => JSX.Element;
4
+ export declare function createLookingSimilarComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: LookingSimilarProps<TObject>) => JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  import { cx } from "../lib/index.js";
8
- import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListComponent } from "./recommend-shared/index.js";
9
9
  export function createLookingSimilarComponent(_ref) {
10
10
  var createElement = _ref.createElement,
11
11
  Fragment = _ref.Fragment;
@@ -27,11 +27,11 @@ export function createLookingSimilarComponent(_ref) {
27
27
  createElement: createElement,
28
28
  Fragment: Fragment
29
29
  }) : _userProps$itemCompon,
30
- _userProps$view = userProps.view,
31
- View = _userProps$view === void 0 ? createListViewComponent({
30
+ _userProps$layout = userProps.layout,
31
+ Layout = _userProps$layout === void 0 ? createListComponent({
32
32
  createElement: createElement,
33
33
  Fragment: Fragment
34
- }) : _userProps$view,
34
+ }) : _userProps$layout,
35
35
  items = userProps.items,
36
36
  status = userProps.status,
37
37
  userTranslations = userProps.translations,
@@ -60,9 +60,8 @@ export function createLookingSimilarComponent(_ref) {
60
60
  classNames: cssClasses,
61
61
  items: items,
62
62
  translations: translations
63
- }), createElement(View, {
63
+ }), createElement(Layout, {
64
64
  classNames: cssClasses,
65
- translations: translations,
66
65
  itemComponent: ItemComponent,
67
66
  items: items,
68
67
  sendEvent: sendEvent
@@ -1,4 +1,4 @@
1
1
  /** @jsx createElement */
2
2
  import type { ComponentProps, RecommendComponentProps, Renderer } from '../types';
3
3
  export type RelatedProductsProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
- export declare function createRelatedProductsComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: RelatedProductsProps<TObject, Record<string, unknown>>) => JSX.Element;
4
+ export declare function createRelatedProductsComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: RelatedProductsProps<TObject>) => JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  import { cx } from "../lib/index.js";
8
- import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListComponent } from "./recommend-shared/index.js";
9
9
  export function createRelatedProductsComponent(_ref) {
10
10
  var createElement = _ref.createElement,
11
11
  Fragment = _ref.Fragment;
@@ -27,11 +27,11 @@ export function createRelatedProductsComponent(_ref) {
27
27
  createElement: createElement,
28
28
  Fragment: Fragment
29
29
  }) : _userProps$itemCompon,
30
- _userProps$view = userProps.view,
31
- View = _userProps$view === void 0 ? createListViewComponent({
30
+ _userProps$layout = userProps.layout,
31
+ Layout = _userProps$layout === void 0 ? createListComponent({
32
32
  createElement: createElement,
33
33
  Fragment: Fragment
34
- }) : _userProps$view,
34
+ }) : _userProps$layout,
35
35
  items = userProps.items,
36
36
  status = userProps.status,
37
37
  userTranslations = userProps.translations,
@@ -60,9 +60,8 @@ export function createRelatedProductsComponent(_ref) {
60
60
  classNames: cssClasses,
61
61
  items: items,
62
62
  translations: translations
63
- }), createElement(View, {
63
+ }), createElement(Layout, {
64
64
  classNames: cssClasses,
65
- translations: translations,
66
65
  itemComponent: ItemComponent,
67
66
  items: items,
68
67
  sendEvent: sendEvent
@@ -1,4 +1,4 @@
1
1
  /** @jsx createElement */
2
2
  import type { ComponentProps, RecommendComponentProps, Renderer } from '../types';
3
3
  export type TrendingItemsProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
- export declare function createTrendingItemsComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: TrendingItemsProps<TObject, Record<string, unknown>>) => JSX.Element;
4
+ export declare function createTrendingItemsComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: TrendingItemsProps<TObject>) => JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  import { cx } from "../lib/index.js";
8
- import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListComponent } from "./recommend-shared/index.js";
9
9
  export function createTrendingItemsComponent(_ref) {
10
10
  var createElement = _ref.createElement,
11
11
  Fragment = _ref.Fragment;
@@ -27,11 +27,11 @@ export function createTrendingItemsComponent(_ref) {
27
27
  createElement: createElement,
28
28
  Fragment: Fragment
29
29
  }) : _userProps$itemCompon,
30
- _userProps$view = userProps.view,
31
- View = _userProps$view === void 0 ? createListViewComponent({
30
+ _userProps$layout = userProps.layout,
31
+ Layout = _userProps$layout === void 0 ? createListComponent({
32
32
  createElement: createElement,
33
33
  Fragment: Fragment
34
- }) : _userProps$view,
34
+ }) : _userProps$layout,
35
35
  items = userProps.items,
36
36
  status = userProps.status,
37
37
  userTranslations = userProps.translations,
@@ -60,9 +60,8 @@ export function createTrendingItemsComponent(_ref) {
60
60
  classNames: cssClasses,
61
61
  items: items,
62
62
  translations: translations
63
- }), createElement(View, {
63
+ }), createElement(Layout, {
64
64
  classNames: cssClasses,
65
- translations: translations,
66
65
  itemComponent: ItemComponent,
67
66
  items: items,
68
67
  sendEvent: sendEvent
@@ -1,6 +1,7 @@
1
+ export * from './Carousel';
1
2
  export * from './FrequentlyBoughtTogether';
2
3
  export * from './Highlight';
3
4
  export * from './Hits';
5
+ export * from './LookingSimilar';
4
6
  export * from './RelatedProducts';
5
7
  export * from './TrendingItems';
6
- export * from './LookingSimilar';
@@ -1,6 +1,7 @@
1
+ export * from "./Carousel.js";
1
2
  export * from "./FrequentlyBoughtTogether.js";
2
3
  export * from "./Highlight.js";
3
4
  export * from "./Hits.js";
5
+ export * from "./LookingSimilar.js";
4
6
  export * from "./RelatedProducts.js";
5
- export * from "./TrendingItems.js";
6
- export * from "./LookingSimilar.js";
7
+ export * from "./TrendingItems.js";
@@ -1,8 +1,7 @@
1
1
  export function createDefaultEmptyComponent(_ref) {
2
2
  var createElement = _ref.createElement,
3
3
  Fragment = _ref.Fragment;
4
- var _ref2 = createElement(Fragment, null, "No results");
5
4
  return function DefaultEmpty() {
6
- return _ref2;
5
+ return createElement(Fragment, null, "No results");
7
6
  };
8
7
  }
@@ -0,0 +1,3 @@
1
+ /** @jsx createElement */
2
+ import type { RecommendClassNames, RecordWithObjectID, Renderer, RecommendLayoutProps } from '../../types';
3
+ export declare function createListComponent({ createElement }: Renderer): <TItem extends RecordWithObjectID>(userProps: RecommendLayoutProps<TItem, Partial<RecommendClassNames>>) => JSX.Element;
@@ -1,6 +1,6 @@
1
- export function createListViewComponent(_ref) {
1
+ export function createListComponent(_ref) {
2
2
  var createElement = _ref.createElement;
3
- return function ListView(userProps) {
3
+ return function List(userProps) {
4
4
  var _userProps$classNames = userProps.classNames,
5
5
  classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
6
6
  ItemComponent = userProps.itemComponent,
@@ -1,4 +1,4 @@
1
1
  export * from './DefaultEmpty';
2
2
  export * from './DefaultHeader';
3
3
  export * from './DefaultItem';
4
- export * from './ListView';
4
+ export * from './List';
@@ -1,4 +1,4 @@
1
1
  export * from "./DefaultEmpty.js";
2
2
  export * from "./DefaultHeader.js";
3
3
  export * from "./DefaultItem.js";
4
- export * from "./ListView.js";
4
+ export * from "./List.js";
@@ -35,11 +35,10 @@ export type RecommendTranslations = {
35
35
  */
36
36
  sliderLabel: string;
37
37
  };
38
- export type RecommendViewProps<TItem extends RecordWithObjectID, TTranslations extends Record<string, string>, TClassNames extends Record<string, string>> = {
38
+ export type RecommendLayoutProps<TItem extends RecordWithObjectID, TClassNames extends Record<string, string>> = {
39
39
  classNames: TClassNames;
40
40
  itemComponent: <TComponentProps extends Record<string, unknown> = Record<string, unknown>>(props: RecommendItemComponentProps<RecordWithObjectID<TItem>> & TComponentProps) => JSX.Element;
41
41
  items: TItem[];
42
- translations: TTranslations;
43
42
  sendEvent: SendEventForHits;
44
43
  };
45
44
  export type RecommendComponentProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = {
@@ -51,7 +50,7 @@ export type RecommendComponentProps<TObject, TComponentProps extends Record<stri
51
50
  status: RecommendStatus;
52
51
  translations?: Partial<RecommendTranslations>;
53
52
  sendEvent: SendEventForHits;
54
- view?: (props: RecommendViewProps<RecordWithObjectID<TObject>, Required<RecommendTranslations>, Record<string, string>> & TComponentProps) => JSX.Element;
53
+ layout?: (props: RecommendLayoutProps<RecordWithObjectID<TObject>, Record<string, string>> & TComponentProps) => JSX.Element;
55
54
  };
56
55
  export type RecommendInnerComponentProps<TObject> = {
57
56
  classNames: Partial<RecommendClassNames>;
@@ -60,8 +59,6 @@ export type RecommendInnerComponentProps<TObject> = {
60
59
  };
61
60
  export type RecordWithObjectID<TObject = Record<string, unknown>> = TObject & {
62
61
  objectID: string;
63
- __position: number;
64
- __queryID?: string;
65
62
  };
66
63
  export type RecommendItemComponentProps<TObject> = {
67
64
  item: TObject;
@@ -19,6 +19,9 @@ export type ElementType<TProps = any> = {
19
19
  [TKey in keyof IntrinsicElements]: TProps extends IntrinsicElements[TKey] ? TKey : never;
20
20
  }[keyof IntrinsicElements] | FunctionComponent<TProps>;
21
21
  export type ComponentProps<TComponent extends keyof IntrinsicElements> = IntrinsicElements[TComponent];
22
+ export type MutableRef<T> = {
23
+ current: T;
24
+ };
22
25
  export type VNode<TProps = any> = {
23
26
  type: any;
24
27
  props: TProps & {
@@ -1,2 +1,2 @@
1
- declare const _default: "0.7.0";
1
+ declare const _default: "0.9.0";
2
2
  export default _default;
@@ -1 +1 @@
1
- export default '0.7.0';
1
+ export default '0.9.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instantsearch-ui-components",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Common UI components for InstantSearch.",
5
5
  "types": "dist/es/index.d.ts",
6
6
  "main": "dist/cjs/index.js",
@@ -39,9 +39,9 @@
39
39
  "scripts": {
40
40
  "clean": "rm -rf dist",
41
41
  "build": "yarn build:cjs && yarn build:es && yarn build:types",
42
- "build:es:base": "BABEL_ENV=es babel src --root-mode upward --extensions '.js,.ts,.tsx' --out-dir dist/es --ignore '**/__tests__/**/*','**/__mocks__/**/*'",
42
+ "build:es:base": "BABEL_ENV=es,disableHoisting babel src --root-mode upward --extensions '.js,.ts,.tsx' --out-dir dist/es --ignore '**/__tests__/**/*','**/__mocks__/**/*'",
43
43
  "build:es": "yarn build:es:base --quiet",
44
- "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --extensions '.js,.ts,.tsx' --out-dir dist/cjs --ignore '**/__tests__/**/*','**/__mocks__/**/*' --quiet && ../../scripts/prepare-cjs.sh",
44
+ "build:cjs": "BABEL_ENV=cjs,disableHoisting babel src --root-mode upward --extensions '.js,.ts,.tsx' --out-dir dist/cjs --ignore '**/__tests__/**/*','**/__mocks__/**/*' --quiet && ../../scripts/prepare-cjs.sh",
45
45
  "build:types": "tsc -p ./tsconfig.declaration.json --outDir ./dist/es",
46
46
  "version": "./scripts/version.cjs",
47
47
  "watch:es": "yarn --silent build:es:base --watch"
@@ -49,5 +49,5 @@
49
49
  "dependencies": {
50
50
  "@babel/runtime": "^7.1.2"
51
51
  },
52
- "gitHead": "0b125d8a3fb2a5905aea9b6b540e07ab91649215"
52
+ "gitHead": "1583f2bc8e74ccccc59a0bd0193f69f9c77bf636"
53
53
  }
@@ -1,3 +0,0 @@
1
- /** @jsx createElement */
2
- import type { RecommendClassNames, RecommendTranslations, RecordWithObjectID, Renderer, RecommendViewProps } from '../../types';
3
- export declare function createListViewComponent({ createElement }: Renderer): <TItem extends RecordWithObjectID>(userProps: RecommendViewProps<TItem, RecommendTranslations, Partial<RecommendClassNames>>) => JSX.Element;