ywana-core8 0.0.732 → 0.0.734

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.cjs CHANGED
@@ -756,7 +756,8 @@ var ListItem = function ListItem(_ref) {
756
756
  if (onSelect) onSelect(id);
757
757
  }
758
758
 
759
- var style = selected === id ? "selected" : "";
759
+ var isSelected = Array.isArray(selected) ? selected.includes(id) : selected === id;
760
+ var style = isSelected ? "selected" : "";
760
761
  return /*#__PURE__*/React__default["default"].createElement("li", {
761
762
  className: "" + style,
762
763
  onClick: select
@@ -2479,6 +2480,71 @@ var ColorField = function ColorField(props) {
2479
2480
  }));
2480
2481
  };
2481
2482
 
2483
+ /**
2484
+ * Multi Selector
2485
+ */
2486
+
2487
+ var MultiSelector = function MultiSelector(props) {
2488
+ var _props$options = props.options,
2489
+ options = _props$options === void 0 ? [] : _props$options,
2490
+ className = props.className;
2491
+
2492
+ var _useState = React.useState([]),
2493
+ selections = _useState[0],
2494
+ setSelections = _useState[1];
2495
+
2496
+ React.useEffect(function () {
2497
+ var initialSelections = options.filter(function (option) {
2498
+ return option.selected === true;
2499
+ }).map(function (option) {
2500
+ return option.value;
2501
+ });
2502
+ setSelections(initialSelections);
2503
+ }, []);
2504
+
2505
+ function toggleSelection(value) {
2506
+ var onChange = props.onChange;
2507
+ var next = selections.includes(value) ? selections.filter(function (item) {
2508
+ return item != value;
2509
+ }) : selections.concat([value]);
2510
+ setSelections(next);
2511
+ if (onChange) onChange(next);
2512
+ }
2513
+
2514
+ var items = options.map(function (option) {
2515
+ return _extends({}, option, {
2516
+ selected: selections.includes(option.value),
2517
+ onToggle: toggleSelection
2518
+ });
2519
+ });
2520
+ return /*#__PURE__*/React__default["default"].createElement("ul", {
2521
+ className: "multiselector " + className
2522
+ }, items.map(function (option) {
2523
+ return /*#__PURE__*/React__default["default"].createElement(ToggleButton, option);
2524
+ }));
2525
+ };
2526
+ /**
2527
+ * Toggle Button
2528
+ */
2529
+
2530
+ var ToggleButton = function ToggleButton(props) {
2531
+ var label = props.label,
2532
+ value = props.value,
2533
+ _props$selected = props.selected,
2534
+ selected = _props$selected === void 0 ? false : _props$selected,
2535
+ onToggle = props.onToggle;
2536
+
2537
+ function toggle() {
2538
+ if (onToggle) onToggle(value);
2539
+ }
2540
+
2541
+ var selectedStyle = selected ? 'selected' : '';
2542
+ return /*#__PURE__*/React__default["default"].createElement("li", {
2543
+ className: selectedStyle + " " + value,
2544
+ onClick: toggle
2545
+ }, label);
2546
+ };
2547
+
2482
2548
  /**
2483
2549
  * Login Box
2484
2550
  */
@@ -10898,6 +10964,7 @@ exports.Menu = Menu;
10898
10964
  exports.MenuIcon = MenuIcon;
10899
10965
  exports.MenuItem = MenuItem;
10900
10966
  exports.MenuSeparator = MenuSeparator;
10967
+ exports.MultiSelector = MultiSelector;
10901
10968
  exports.Page = Page;
10902
10969
  exports.PageContext = PageContext;
10903
10970
  exports.PageProvider = PageProvider;
@@ -10930,6 +10997,7 @@ exports.Text = Text;
10930
10997
  exports.TextArea = TextArea;
10931
10998
  exports.TextField = TextField;
10932
10999
  exports.Thumbnail = Thumbnail;
11000
+ exports.ToggleButton = ToggleButton;
10933
11001
  exports.TokenField = TokenField;
10934
11002
  exports.Tooltip = Tooltip;
10935
11003
  exports.Tree = Tree;