ywana-core8 0.1.82 → 0.1.83

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.
package/dist/index.umd.js CHANGED
@@ -4435,8 +4435,8 @@
4435
4435
  if (onSort) onSort(newConfig);
4436
4436
  }, [sortable, sortConfig, onSort]);
4437
4437
 
4438
- // Search component
4439
- var SearchComponent = function SearchComponent() {
4438
+ // Search component JSX - memoized to prevent focus loss
4439
+ var searchComponent = React.useMemo(function () {
4440
4440
  return searchable && /*#__PURE__*/React__default["default"].createElement("div", {
4441
4441
  className: "list__search"
4442
4442
  }, /*#__PURE__*/React__default["default"].createElement(TextField, {
@@ -4448,7 +4448,7 @@
4448
4448
  outlined: true,
4449
4449
  size: "small"
4450
4450
  }));
4451
- };
4451
+ }, [searchable, searchPlaceholder, searchTerm, handleSearch]);
4452
4452
 
4453
4453
  // Generate CSS classes
4454
4454
  var cssClasses = ['list', dense && 'list--dense', outlined && 'list--outlined', disabled && 'list--disabled', animated && 'list--animated', loading && 'list--loading', className].filter(Boolean).join(' ');
@@ -4478,12 +4478,12 @@
4478
4478
  return /*#__PURE__*/React__default["default"].createElement("div", _extends({
4479
4479
  className: cssClasses,
4480
4480
  style: style
4481
- }, ariaAttributes, restProps), searchPosition === 'top' && /*#__PURE__*/React__default["default"].createElement(SearchComponent, null), /*#__PURE__*/React__default["default"].createElement("div", {
4481
+ }, ariaAttributes, restProps), searchPosition === 'top' && searchComponent, /*#__PURE__*/React__default["default"].createElement("div", {
4482
4482
  className: "list__empty"
4483
4483
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4484
4484
  icon: emptyIcon,
4485
4485
  size: "large"
4486
- }), /*#__PURE__*/React__default["default"].createElement(Text, null, emptyMessage)), searchPosition === 'bottom' && /*#__PURE__*/React__default["default"].createElement(SearchComponent, null), children);
4486
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, emptyMessage)), searchPosition === 'bottom' && searchComponent, children);
4487
4487
  }
4488
4488
 
4489
4489
  // Render grouped or normal list
@@ -4500,7 +4500,7 @@
4500
4500
  className: cssClasses,
4501
4501
  style: style,
4502
4502
  ref: listRef
4503
- }, ariaAttributes, restProps), searchPosition === 'top' && /*#__PURE__*/React__default["default"].createElement(SearchComponent, null), sortable && sortBy && /*#__PURE__*/React__default["default"].createElement("div", {
4503
+ }, ariaAttributes, restProps), searchPosition === 'top' && searchComponent, sortable && sortBy && /*#__PURE__*/React__default["default"].createElement("div", {
4504
4504
  className: "list__sort"
4505
4505
  }, /*#__PURE__*/React__default["default"].createElement("button", {
4506
4506
  className: "list__sort-button",
@@ -4529,7 +4529,7 @@
4529
4529
  disabled: disabled,
4530
4530
  animated: animated
4531
4531
  });
4532
- })), searchPosition === 'bottom' && /*#__PURE__*/React__default["default"].createElement(SearchComponent, null), children);
4532
+ })), searchPosition === 'bottom' && searchComponent, children);
4533
4533
  };
4534
4534
 
4535
4535
  /**
@@ -4598,8 +4598,8 @@
4598
4598
  });
4599
4599
  }, []);
4600
4600
 
4601
- // Search component for grouped list
4602
- var GroupedSearchComponent = function GroupedSearchComponent() {
4601
+ // Search component for grouped list - memoized to prevent focus loss
4602
+ var groupedSearchComponent = React.useMemo(function () {
4603
4603
  return searchable && /*#__PURE__*/React__default["default"].createElement("div", {
4604
4604
  className: "list__search"
4605
4605
  }, /*#__PURE__*/React__default["default"].createElement(TextField, {
@@ -4611,11 +4611,11 @@
4611
4611
  outlined: true,
4612
4612
  size: "small"
4613
4613
  }));
4614
- };
4614
+ }, [searchable, searchPlaceholder, searchTerm, onSearch]);
4615
4615
  return /*#__PURE__*/React__default["default"].createElement("div", _extends({
4616
4616
  className: cssClasses + " grouped",
4617
4617
  style: style
4618
- }, ariaAttributes, restProps), searchPosition === 'top' && /*#__PURE__*/React__default["default"].createElement(GroupedSearchComponent, null), groups.map(function (group) {
4618
+ }, ariaAttributes, restProps), searchPosition === 'top' && groupedSearchComponent, groups.map(function (group) {
4619
4619
  var isCollapsed = collapsedGroups.has(group.name);
4620
4620
  var groupTitle = groupRenderer ? groupRenderer(group) : /*#__PURE__*/React__default["default"].createElement(Text, null, group.name);
4621
4621
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
@@ -4658,7 +4658,7 @@
4658
4658
  animated: animated
4659
4659
  });
4660
4660
  })));
4661
- }), searchPosition === 'bottom' && /*#__PURE__*/React__default["default"].createElement(GroupedSearchComponent, null), children);
4661
+ }), searchPosition === 'bottom' && groupedSearchComponent, children);
4662
4662
  };
4663
4663
 
4664
4664
  /**