@handsontable/react-wrapper 0.0.0-next-0e9b178-20260922 → 0.0.0-next-e344f62-20260922

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.
@@ -25,7 +25,7 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-0e9b178-20260922 (built at Tue Sep 22 2026 09:07:34 GMT+0000 (Coordinated Universal Time))
28
+ * Version: 0.0.0-next-e344f62-20260922 (built at Tue Sep 22 2026 11:19:11 GMT+0000 (Coordinated Universal Time))
29
29
  */
30
30
  (function (global, factory) {
31
31
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom'), require('handsontable/base'), require('handsontable/renderers/registry'), require('handsontable/editors/registry')) :
@@ -239,17 +239,17 @@ var bulkComponentContainer = null;
239
239
  /**
240
240
  * Warning message for the `autoRowSize`/`autoColumnSize` compatibility check.
241
241
  */
242
- var AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, which are not compatible with ' + ' the component-based renderers`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.';
242
+ var AUTOSIZE_WARNING = 'Your `HotTable` configuration includes `autoRowSize`/`autoColumnSize` options, ' + 'which are not compatible with the component-based renderers. Disable `autoRowSize` and `autoColumnSize` to ' + 'prevent row and column misalignment.';
243
243
 
244
244
  /**
245
245
  * Warning message for the `hot-renderer` obsolete renderer passing method.
246
246
  */
247
- var OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated component is no longer supported. ' + 'Pass your component using `renderer` prop of the `HotTable` or `HotColumn` component instead.';
247
+ var OBSOLETE_HOTRENDERER_WARNING = 'Providing a component-based renderer using `hot-renderer`-annotated ' + 'component is no longer supported. Pass your component using `renderer` prop of the `HotTable` or `HotColumn` ' + 'component instead.';
248
248
 
249
249
  /**
250
250
  * Warning message for the `hot-editor` obsolete editor passing method.
251
251
  */
252
- var OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated component is no longer supported. ' + 'Pass your component using `editor` prop of the `HotTable` or `HotColumn` component instead.';
252
+ var OBSOLETE_HOTEDITOR_WARNING = 'Providing a component-based editor using `hot-editor`-annotated ' + 'component is no longer supported. Pass your component using `editor` prop of the `HotTable` or `HotColumn` ' + 'component instead.';
253
253
 
254
254
  /**
255
255
  * Warning message for the unexpected children of HotTable component.
@@ -280,7 +280,7 @@ var EDITOR_PORTAL_HOST_CLASSNAME = 'hot-wrapper-editor-portal-host';
280
280
  /**
281
281
  * Warning when the editor portal host cannot be moved into `rootPortalElement`.
282
282
  */
283
- var MISSING_ROOT_PORTAL_WARNING = 'The React editor portal host could not be attached to `rootPortalElement`. The editor stays on `document.body` and clicks on it may fail to commit.';
283
+ var MISSING_ROOT_PORTAL_WARNING = 'The React editor portal host could not be attached to ' + '`rootPortalElement`. The editor stays on `document.body` and clicks on it may fail to commit.';
284
284
 
285
285
  /**
286
286
  * Logs warn to the console if the `console` object is exposed.
@@ -297,6 +297,7 @@ function warn() {
297
297
  /**
298
298
  * Detect if `hot-renderer` or `hot-editor` is defined, and if so, throw an incompatibility warning.
299
299
  *
300
+ * @param {ReactNode} children Component children nodes.
300
301
  * @returns {boolean} 'true' if the warning was issued
301
302
  */
302
303
  function displayObsoleteRenderersEditorsWarning(children) {
@@ -348,7 +349,7 @@ function displayAnyChildrenWarning(children) {
348
349
  * Check the existence of elements of the provided `type` from the `HotColumn` component's children.
349
350
  *
350
351
  * @param {ReactNode} children HotTable children array.
351
- * @param {String} type Either `'hot-renderer'` or `'hot-editor'`.
352
+ * @param {string} type Either `'hot-renderer'` or `'hot-editor'`.
352
353
  * @returns {boolean} `true` if the child of that type was found, `false` otherwise.
353
354
  */
354
355
  function hasChildElementOfType(children, type) {
@@ -428,9 +429,10 @@ function createEditorPortal(doc, Editor, portalHost) {
428
429
  *
429
430
  * @param {React.ReactElement} rElement React element to be used as a base for the component.
430
431
  * @param {Document} [ownerDocument] The owner document to set the portal up into.
431
- * @param {String} portalKey The key to be used for the portal.
432
+ * @param {string} portalKey The key to be used for the portal.
432
433
  * @param {HTMLElement} [cachedContainer] The cached container to be used for the portal.
433
- * @returns {{portal: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its container.
434
+ * @returns {{portal: ReactPortal, portalContainer: HTMLElement}} An object containing the portal and its
435
+ * container.
434
436
  */
435
437
  function createPortal(rElement) {
436
438
  var ownerDocument = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
@@ -462,14 +464,15 @@ function createPortal(rElement) {
462
464
  * component.
463
465
  *
464
466
  * @param {HotTableProps} props Object containing the React element props.
465
- * @param {Boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was present in the `prop` object.
466
- * @returns An object containing the `id`, `className` and `style` keys, representing the corresponding props passed to the
467
- * component.
467
+ * @param {boolean} randomizeId If set to `true`, the function will randomize the `id` property when no `id` was
468
+ * present in the `prop` object.
469
+ * @returns {{id?: string, className: string, style: CSSProperties}} An object containing the `id`, `className`
470
+ * and `style` keys, representing the corresponding props passed to the component.
468
471
  */
469
472
  function getContainerAttributesProps(props) {
470
473
  var randomizeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
471
474
  return {
472
- id: props.id || (randomizeId ? 'hot-' + Math.random().toString(36).substring(5) : undefined),
475
+ id: props.id || (randomizeId ? "hot-".concat(Math.random().toString(36).substring(5)) : undefined),
473
476
  className: props.className || '',
474
477
  style: props.style || {}
475
478
  };
@@ -478,14 +481,28 @@ function getContainerAttributesProps(props) {
478
481
  /**
479
482
  * Checks if the environment that the code runs in is a browser.
480
483
  *
481
- * @returns {boolean}
484
+ * @returns {boolean} `true` when running in a browser environment.
482
485
  */
483
486
  function isCSR() {
484
487
  return typeof window !== 'undefined';
485
488
  }
489
+
490
+ /**
491
+ * Checks whether the value is an object or `null`.
492
+ *
493
+ * @param {unknown} value Value to check.
494
+ * @returns {boolean} `true` when the value is an object.
495
+ */
486
496
  function isObjectLike(value) {
487
497
  return _typeof(value) === 'object' && value !== null;
488
498
  }
499
+
500
+ /**
501
+ * Checks whether the value is a plain object (an object literal or one created with `Object.create(null)`).
502
+ *
503
+ * @param {unknown} value Value to check.
504
+ * @returns {boolean} `true` when the value is a plain object.
505
+ */
489
506
  function isPlainObject(value) {
490
507
  if (!isObjectLike(value)) {
491
508
  return false;
@@ -493,6 +510,13 @@ function isPlainObject(value) {
493
510
  var prototype = Object.getPrototypeOf(value);
494
511
  return prototype === Object.prototype || prototype === null;
495
512
  }
513
+
514
+ /**
515
+ * Checks whether the value is an array.
516
+ *
517
+ * @param {unknown} value Value to check.
518
+ * @returns {boolean} `true` when the value is an array.
519
+ */
496
520
  function isArray(value) {
497
521
  return Array.isArray(value);
498
522
  }
@@ -539,23 +563,16 @@ function areEquivalentSettingsValue(previousValue, currentValue) {
539
563
  if (previousKeys.length !== currentKeys.length) {
540
564
  return false;
541
565
  }
542
- for (var _i = 0, _previousKeys = previousKeys; _i < _previousKeys.length; _i++) {
543
- var key = _previousKeys[_i];
544
- if (!Object.prototype.hasOwnProperty.call(currentValue, key)) {
545
- return false;
546
- }
547
- if (!areEquivalentSettingsValue(previousValue[key], currentValue[key])) {
548
- return false;
549
- }
550
- }
551
- return true;
566
+ return previousKeys.every(function (key) {
567
+ return Object.prototype.hasOwnProperty.call(currentValue, key) && areEquivalentSettingsValue(previousValue[key], currentValue[key]);
568
+ });
552
569
  }
553
570
 
554
571
  /**
555
572
  * A variant of useEffect hook that does not trigger on initial mount, only updates
556
573
  *
557
- * @param effect Effect function
558
- * @param deps Effect dependencies
574
+ * @param {EffectCallback} effect Effect function
575
+ * @param {DependencyList} [deps] Effect dependencies
559
576
  */
560
577
  function useUpdateEffect(effect, deps) {
561
578
  var notInitialRender = React__default["default"].useRef(false);
@@ -599,11 +616,13 @@ var SettingsMapper = /*#__PURE__*/function () {
599
616
  /**
600
617
  * Parse component settings into Handsontable-compatible settings.
601
618
  *
602
- * @param {Object} properties Object containing properties from the HotTable object.
603
- * @param {Object} additionalSettings Additional settings.
619
+ * @param {object} properties Object containing properties from the HotTable object.
620
+ * @param {object} additionalSettings Additional settings.
604
621
  * @param {boolean} additionalSettings.isInit Flag determining whether the settings are being set during initialization.
605
622
  * @param {string[]} additionalSettings.initOnlySettingKeys Array of keys that can be set only during initialization.
606
- * @returns {Object} Handsontable-compatible settings object.
623
+ * @param {HotTableProps} additionalSettings.prevProps The component's props before the current update.
624
+ * @param {Handsontable.GridSettings} additionalSettings.currentSettings The grid's current live settings.
625
+ * @returns {object} Handsontable-compatible settings object.
607
626
  */
608
627
  function getSettings(properties) {
609
628
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
@@ -632,11 +651,11 @@ var SettingsMapper = /*#__PURE__*/function () {
632
651
  return false;
633
652
  };
634
653
  var newSettings = {};
635
- for (var key in properties) {
636
- if (key !== 'children' && !shouldSkipProp(key) && properties.hasOwnProperty(key)) {
654
+ Object.keys(properties).forEach(function (key) {
655
+ if (key !== 'children' && !shouldSkipProp(key)) {
637
656
  newSettings[key] = properties[key];
638
657
  }
639
- }
658
+ });
640
659
  return newSettings;
641
660
  }
642
661
  }]);
@@ -682,7 +701,7 @@ var HotTableContextProvider = function HotTableContextProvider(_ref) {
682
701
  * overlay tables get separate portal containers for the same cell.
683
702
  *
684
703
  * @param {HTMLTableCellElement} TD The cell being rendered.
685
- * @returns {Number} The id of the table the cell belongs to.
704
+ * @returns {number} The id of the table the cell belongs to.
686
705
  */
687
706
  var getTableId = React.useCallback(function (TD) {
688
707
  var _TD$parentElement$par, _TD$parentElement;
@@ -793,7 +812,7 @@ var HotTableContextProvider = function HotTableContextProvider(_ref) {
793
812
  /**
794
813
  * Exposes the table context object to components
795
814
  *
796
- * @returns HotTableContext
815
+ * @returns {HotTableContextImpl} HotTableContext
797
816
  */
798
817
  function useHotTableContext() {
799
818
  return React.useContext(HotTableContext);
@@ -898,8 +917,11 @@ var EditorContext = /*#__PURE__*/React.createContext(undefined);
898
917
  * Provider of the context that exposes Handsontable-native editor instance and passes hooks object
899
918
  * for custom editor components.
900
919
  *
901
- * @param {Ref} hooksRef Reference for component-based editor overridden hooks object.
902
- * @param {RefObject} hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.
920
+ * @param {object} root0 The provider props.
921
+ * @param {Ref} root0.hooksRef Reference for component-based editor overridden hooks object.
922
+ * @param {RefObject} root0.hotCustomEditorInstanceRef Reference to Handsontable-native editor instance.
923
+ * @param {ReactNode} root0.children The provider's children.
924
+ * @returns {ReactElement} The provider component.
903
925
  */
904
926
  var EditorContextProvider = function EditorContextProvider(_ref3) {
905
927
  var hooksRef = _ref3.hooksRef,
@@ -914,7 +936,13 @@ var EditorContextProvider = function EditorContextProvider(_ref3) {
914
936
  };
915
937
  /**
916
938
  * Applies editor overlay position/dimensions to an element.
917
- * @returns true if position was applied, false if editor should close (e.g. cell no longer available).
939
+ *
940
+ * @param {HTMLElement} el The editor's main element.
941
+ * @param {EditorWithPosition} editor The editor instance.
942
+ * @param {Handsontable.Core} hot The Handsontable instance.
943
+ * @param {Element | null | undefined} td The edited cell's TD element.
944
+ * @returns {boolean} `true` if position was applied, `false` if editor should close (e.g. cell no longer
945
+ * available).
918
946
  */
919
947
  function applyEditorPosition(el, editor, hot, td) {
920
948
  var _rootWindow$pageXOffs, _rootWindow$pageYOffs;
@@ -1032,6 +1060,20 @@ function useHotEditor(overriddenHooks, deps) {
1032
1060
 
1033
1061
  // EditorComponent props - children typed to work with JSX syntax
1034
1062
 
1063
+ /**
1064
+ * Component-based editor. Renders the `children` render prop inside the editor's positioned overlay
1065
+ * and wires up its shortcuts and scroll-repositioning.
1066
+ *
1067
+ * @param {object} root0 The component props.
1068
+ * @param {Function} [root0.onPrepare] Called when the editor is prepared for a cell.
1069
+ * @param {Function} [root0.onClose] Called when the editor closes.
1070
+ * @param {Function} [root0.onOpen] Called when the editor opens.
1071
+ * @param {Function} [root0.onFocus] Called when the editor is focused.
1072
+ * @param {EditorRenderProp} [root0.children] Render prop returning the editor's UI.
1073
+ * @param {string} [root0.shortcutsGroup] The shortcuts group name to register under.
1074
+ * @param {Array} [root0.shortcuts] The editor's keyboard shortcuts.
1075
+ * @returns {React.ReactElement} The editor overlay element.
1076
+ */
1035
1077
  function EditorComponent(_ref5) {
1036
1078
  var _onPrepare = _ref5.onPrepare,
1037
1079
  _onClose = _ref5.onClose,
@@ -1039,7 +1081,7 @@ function EditorComponent(_ref5) {
1039
1081
  _onFocus = _ref5.onFocus,
1040
1082
  children = _ref5.children,
1041
1083
  _ref5$shortcutsGroup = _ref5.shortcutsGroup,
1042
- shortcutsGroup = _ref5$shortcutsGroup === void 0 ? "custom-editor" : _ref5$shortcutsGroup,
1084
+ shortcutsGroup = _ref5$shortcutsGroup === void 0 ? 'custom-editor' : _ref5$shortcutsGroup,
1043
1085
  shortcuts = _ref5.shortcuts;
1044
1086
  var mainElementRef = React.useRef(null);
1045
1087
  var currentValue = React.useRef(undefined);
@@ -1051,8 +1093,10 @@ function EditorComponent(_ref5) {
1051
1093
  hotCustomEditorInstanceRef = _ref6.hotCustomEditorInstanceRef;
1052
1094
  var registerShortcuts = React.useCallback(function () {
1053
1095
  var _hotCustomEditorInsta8, _hotCustomEditorInsta9, _hotCustomEditorInsta0;
1054
- if (!((_hotCustomEditorInsta8 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta8 !== void 0 && _hotCustomEditorInsta8.hot)) return;
1055
- (_hotCustomEditorInsta9 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta9 === void 0 || (_hotCustomEditorInsta9 = _hotCustomEditorInsta9.hot) === null || _hotCustomEditorInsta9 === void 0 || _hotCustomEditorInsta9.getShortcutManager().setActiveContextName("editor");
1096
+ if (!((_hotCustomEditorInsta8 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta8 !== void 0 && _hotCustomEditorInsta8.hot)) {
1097
+ return;
1098
+ }
1099
+ (_hotCustomEditorInsta9 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta9 === void 0 || (_hotCustomEditorInsta9 = _hotCustomEditorInsta9.hot) === null || _hotCustomEditorInsta9 === void 0 || _hotCustomEditorInsta9.getShortcutManager().setActiveContextName('editor');
1056
1100
  var shortcutManager = (_hotCustomEditorInsta0 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta0 === void 0 || (_hotCustomEditorInsta0 = _hotCustomEditorInsta0.hot) === null || _hotCustomEditorInsta0 === void 0 ? void 0 : _hotCustomEditorInsta0.getShortcutManager();
1057
1101
  var editorContext = shortcutManager.getContext('editor');
1058
1102
  var contextConfig = {
@@ -1072,25 +1116,31 @@ function EditorComponent(_ref5) {
1072
1116
  }, event);
1073
1117
  }
1074
1118
  });
1075
- }),
1076
- //@ts-ignore
1077
- contextConfig);
1119
+ }), contextConfig);
1078
1120
  }
1079
1121
  }, [shortcuts]);
1080
1122
  var unRegisterShortcuts = React.useCallback(function () {
1081
1123
  var _hotCustomEditorInsta1, _hotCustomEditorInsta10;
1082
- if (!((_hotCustomEditorInsta1 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta1 !== void 0 && _hotCustomEditorInsta1.hot)) return;
1124
+ if (!((_hotCustomEditorInsta1 = hotCustomEditorInstanceRef.current) !== null && _hotCustomEditorInsta1 !== void 0 && _hotCustomEditorInsta1.hot)) {
1125
+ return;
1126
+ }
1083
1127
  var shortcutManager = (_hotCustomEditorInsta10 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta10 === void 0 || (_hotCustomEditorInsta10 = _hotCustomEditorInsta10.hot) === null || _hotCustomEditorInsta10 === void 0 ? void 0 : _hotCustomEditorInsta10.getShortcutManager();
1084
- var editorContext = shortcutManager.getContext("editor");
1128
+ var editorContext = shortcutManager.getContext('editor');
1085
1129
  editorContext.removeShortcutsByGroup(shortcutsGroup);
1086
1130
  }, [shortcuts]);
1087
1131
  var refreshDimensions = React.useCallback(function () {
1088
1132
  var editor = hotCustomEditorInstanceRef.current;
1089
1133
  var el = mainElementRef.current;
1090
- if (!editor || !el) return;
1134
+ if (!editor || !el) {
1135
+ return;
1136
+ }
1091
1137
  var hot = editor.hot;
1092
- if (!hot) return;
1093
- if (typeof editor.isOpened !== 'function' || !editor.isOpened()) return;
1138
+ if (!hot) {
1139
+ return;
1140
+ }
1141
+ if (typeof editor.isOpened !== 'function' || !editor.isOpened()) {
1142
+ return;
1143
+ }
1094
1144
  if (!applyEditorPosition(el, editor, hot) && typeof editor.close === 'function') {
1095
1145
  editor.close();
1096
1146
  }
@@ -1098,23 +1148,31 @@ function EditorComponent(_ref5) {
1098
1148
  var unRegisterScrollHooks = React.useCallback(function () {
1099
1149
  var editor = hotCustomEditorInstanceRef.current;
1100
1150
  var hot = editor === null || editor === void 0 ? void 0 : editor.hot;
1101
- if (!hot || typeof hot.removeHook !== 'function') return;
1151
+ if (!hot || typeof hot.removeHook !== 'function') {
1152
+ return;
1153
+ }
1102
1154
  hot.removeHook('afterScrollHorizontally', refreshDimensions);
1103
1155
  hot.removeHook('afterScrollVertically', refreshDimensions);
1104
1156
  }, [refreshDimensions]);
1105
1157
  var registerScrollHooks = React.useCallback(function () {
1106
1158
  var editor = hotCustomEditorInstanceRef.current;
1107
1159
  var hot = editor === null || editor === void 0 ? void 0 : editor.hot;
1108
- if (!hot || typeof hot.addHook !== 'function') return;
1160
+ if (!hot || typeof hot.addHook !== 'function') {
1161
+ return;
1162
+ }
1109
1163
  hot.addHook('afterScrollHorizontally', refreshDimensions);
1110
1164
  hot.addHook('afterScrollVertically', refreshDimensions);
1111
1165
  }, [refreshDimensions]);
1112
1166
  var _useHotEditor = useHotEditor({
1113
1167
  onOpen: function onOpen() {
1114
1168
  var _hotCustomEditorInsta11;
1115
- if (!mainElementRef.current) return;
1169
+ if (!mainElementRef.current) {
1170
+ return;
1171
+ }
1116
1172
  var themeName = (_hotCustomEditorInsta11 = hotCustomEditorInstanceRef.current) === null || _hotCustomEditorInsta11 === void 0 ? void 0 : _hotCustomEditorInsta11.hot.getCurrentThemeName();
1117
- if (themeName) setThemeClassName(themeName);
1173
+ if (themeName) {
1174
+ setThemeClassName(themeName);
1175
+ }
1118
1176
  mainElementRef.current.style.display = 'block';
1119
1177
  _onOpen === null || _onOpen === void 0 || _onOpen();
1120
1178
  var el = mainElementRef.current;
@@ -1126,7 +1184,9 @@ function EditorComponent(_ref5) {
1126
1184
  registerScrollHooks();
1127
1185
  },
1128
1186
  onClose: function onClose() {
1129
- if (!mainElementRef.current) return;
1187
+ if (!mainElementRef.current) {
1188
+ return;
1189
+ }
1130
1190
  mainElementRef.current.style.display = 'none';
1131
1191
  _onClose === null || _onClose === void 0 || _onClose();
1132
1192
  unRegisterShortcuts();
@@ -1205,7 +1265,7 @@ var HotColumn = function HotColumn(props) {
1205
1265
  /**
1206
1266
  * Filter out all the internal properties and return an object with just the Handsontable-related props.
1207
1267
  *
1208
- * @returns {Object}
1268
+ * @returns {object}
1209
1269
  */
1210
1270
  var getSettingsProps = function getSettingsProps() {
1211
1271
  return Object.keys(props).filter(function (key) {
@@ -1218,6 +1278,8 @@ var HotColumn = function HotColumn(props) {
1218
1278
 
1219
1279
  /**
1220
1280
  * Create the column settings based on the data provided to the `HotColumn` component and its child components.
1281
+ *
1282
+ * @returns {object} The column settings object.
1221
1283
  */
1222
1284
  var createColumnSettings = function createColumnSettings() {
1223
1285
  var columnSettings = SettingsMapper.getSettings(getSettingsProps());
@@ -1260,21 +1322,7 @@ var HotColumn = function HotColumn(props) {
1260
1322
  }, editorPortal);
1261
1323
  };
1262
1324
 
1263
- var version="0.0.0-next-0e9b178-20260922";
1264
-
1265
- /**
1266
- * Component used to manage the renderer component portals.
1267
- */
1268
- var RenderersPortalManager = /*#__PURE__*/React.forwardRef(function (_, ref) {
1269
- var _useState = React.useState([]),
1270
- _useState2 = _slicedToArray(_useState, 2),
1271
- portals = _useState2[0],
1272
- setPortals = _useState2[1];
1273
- React.useImperativeHandle(ref, function () {
1274
- return setPortals;
1275
- });
1276
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, portals);
1277
- });
1325
+ var version="0.0.0-next-e344f62-20260922";
1278
1326
 
1279
1327
  function getDefaultExportFromCjs (x) {
1280
1328
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -1372,6 +1420,20 @@ function requireFactoryWithThrowingShims() {
1372
1420
  var propTypesExports = propTypes.exports;
1373
1421
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
1374
1422
 
1423
+ /**
1424
+ * Component used to manage the renderer component portals.
1425
+ */
1426
+ var RenderersPortalManager = /*#__PURE__*/React.forwardRef(function (_, ref) {
1427
+ var _useState = React.useState([]),
1428
+ _useState2 = _slicedToArray(_useState, 2),
1429
+ portals = _useState2[0],
1430
+ setPortals = _useState2[1];
1431
+ React.useImperativeHandle(ref, function () {
1432
+ return setPortals;
1433
+ });
1434
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, portals);
1435
+ });
1436
+
1375
1437
  var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
1376
1438
  /**
1377
1439
  * Reference to the Handsontable instance.
@@ -1469,16 +1531,18 @@ var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
1469
1531
  /**
1470
1532
  * Create a new settings object containing the column settings and global editors and renderers.
1471
1533
  *
1534
+ * @param {boolean} init `true` when called during the initial mount.
1535
+ * @param {HotTableProps} previousProps The component's props before the current update.
1472
1536
  * @returns {Handsontable.GridSettings} New global set of settings for Handsontable.
1473
1537
  */
1474
1538
  var createNewGlobalSettings = function createNewGlobalSettings() {
1475
1539
  var _getHotInstance;
1476
1540
  var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1477
- var prevProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1541
+ var previousProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1478
1542
  var liveSettings = !isHotInstanceDestroyed() ? (_getHotInstance = getHotInstance()) === null || _getHotInstance === void 0 ? void 0 : _getHotInstance.getSettings() : undefined;
1479
1543
  var initOnlySettingKeys = (liveSettings === null || liveSettings === void 0 ? void 0 : liveSettings._initOnlySettings) || [];
1480
1544
  var newSettings = SettingsMapper.getSettings(props, {
1481
- prevProps: prevProps,
1545
+ prevProps: previousProps,
1482
1546
  isInit: init,
1483
1547
  initOnlySettingKeys: initOnlySettingKeys,
1484
1548
  currentSettings: liveSettings
@@ -1505,6 +1569,8 @@ var HotTableInner = /*#__PURE__*/React.forwardRef(function (props, ref) {
1505
1569
 
1506
1570
  /**
1507
1571
  * Detect if `autoRowSize` or `autoColumnSize` is defined, and if so, throw an incompatibility warning.
1572
+ *
1573
+ * @param {Handsontable | null} hotInstance The Handsontable instance to check.
1508
1574
  */
1509
1575
  var displayAutoSizeWarning = function displayAutoSizeWarning(hotInstance) {
1510
1576
  var _hotInstance$getPlugi, _hotInstance$getPlugi2;