@mw-kit/mw-ui 1.7.101 → 1.7.103

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.
@@ -69,7 +69,7 @@ export interface TabsProps<T = {}> extends React.HTMLAttributes<HTMLDivElement>
69
69
  /**
70
70
  * callback when closing a tab
71
71
  */
72
- onClose?: (index: number, tab: TabProps<T>, event: React.MouseEvent) => void | Promise<void>;
72
+ onClose?: (index: number, tab: TabProps<T>, event: React.MouseEvent) => boolean | Promise<boolean>;
73
73
  }
74
74
  export interface StyledTabsProps {
75
75
  /**
package/dist/index.js CHANGED
@@ -19350,13 +19350,74 @@ var ProgressBar = function ProgressBar(props) {
19350
19350
  return React__default.createElement(Container$m, null, React__default.createElement(Progress, Object.assign({}, props), React__default.createElement("div", null)), React__default.createElement("span", null, " ", props.value || '0', "%"));
19351
19351
  };
19352
19352
 
19353
- var _templateObject$17, _templateObject2$Q, _templateObject3$J, _templateObject4$x, _templateObject5$t, _templateObject6$q, _templateObject7$q, _templateObject8$n, _templateObject9$k;
19354
- var Container$n = styled__default.div(_templateObject$17 || (_templateObject$17 = _taggedTemplateLiteralLoose(["\n display: block;\n"])));
19353
+ var _templateObject$17;
19354
+ var Close = styled__default.div(_templateObject$17 || (_templateObject$17 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(50% - ", " / 2);\n right: ", ";\n\n + div {\n /** icon width + tab gap + tab right padding */\n padding-right: ", ";\n }\n\n svg > * {\n transition-property: stroke;\n transition-duration: 0.25s;\n transition-timing-function: ease-in-out;\n }\n"])), function (_ref) {
19355
+ var theme = _ref.theme;
19356
+ return theme.spacings.s3;
19357
+ }, function (_ref2) {
19358
+ var theme = _ref2.theme;
19359
+ return theme.spacings.s3;
19360
+ }, function (_ref3) {
19361
+ var theme = _ref3.theme;
19362
+ return "calc(" + theme.spacings.s3 + " + " + theme.spacings.s3 + " + " + theme.spacings.s3 + ")";
19363
+ });
19364
+
19365
+ var Close$1 = function Close$1(props) {
19366
+ var index = props.index,
19367
+ _props$active = props.active,
19368
+ active = _props$active[0],
19369
+ setActive = _props$active[1],
19370
+ _props$options = props.options,
19371
+ options = _props$options[0],
19372
+ setOptions = _props$options[1];
19373
+
19374
+ var onClose = props.onClose || function () {
19375
+ return true;
19376
+ };
19377
+
19378
+ var onClickClose = React.useCallback(function (event) {
19379
+ try {
19380
+ var _exit2 = false;
19381
+ if (options.length === 1) return Promise.resolve();
19382
+ var newOptions = [].concat(options);
19383
+ newOptions.splice(index, 1);
19384
+ return Promise.resolve(onClose(index, options[index], event)).then(function (_onClose) {
19385
+ if (!_onClose) {
19386
+ _exit2 = true;
19387
+ return;
19388
+ }
19389
+
19390
+ if (index < active) {
19391
+ setActive(active - 1, newOptions[active - 1].data);
19392
+ } else if (active === index) {
19393
+ var newactive = active > 0 ? active - 1 : active;
19394
+ setActive(newactive, newOptions[newactive].data);
19395
+ }
19396
+
19397
+ setOptions(newOptions);
19398
+ });
19399
+ } catch (e) {
19400
+ return Promise.reject(e);
19401
+ }
19402
+ }, [options, active, index, onClose]);
19403
+ return React__default.createElement(Close, null, React__default.createElement(Icon, {
19404
+ type: 'feather',
19405
+ icon: 'x',
19406
+ onClick: onClickClose,
19407
+ width: '14px',
19408
+ height: '14px',
19409
+ strokeWidth: '3px',
19410
+ color: active === index ? 'white' : 'darkBlue'
19411
+ }));
19412
+ };
19413
+
19414
+ var _templateObject$18, _templateObject2$Q, _templateObject3$J, _templateObject4$x, _templateObject5$t, _templateObject6$q, _templateObject7$q, _templateObject8$n, _templateObject9$k;
19415
+ var Container$n = styled__default.div(_templateObject$18 || (_templateObject$18 = _taggedTemplateLiteralLoose(["\n display: block;\n"])));
19355
19416
  var delimiters = {
19356
19417
  blue: ['blue'],
19357
19418
  grey: ['warningGray']
19358
19419
  };
19359
- var Tabs = styled__default.ul(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n user-select: none;\n list-style: none;\n display: inline-flex;\n width: 100%;\n\n ", "\n\n ", ";\n\n gap: ", ";\n\n > li {\n position: relative;\n }\n"])), function (_ref) {
19420
+ var Tabs = styled__default.ul(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n user-select: none;\n list-style: none;\n display: inline-flex;\n width: 100%;\n\n overflow-x: auto;\n scrollbar-width: none;\n\n ", "\n\n ", ";\n\n gap: ", ";\n\n > li {\n position: relative;\n }\n"])), function (_ref) {
19360
19421
  var spacing = _ref.$spacing;
19361
19422
 
19362
19423
  var _getSpacings$split = getSpacings(spacing || {}, {
@@ -19390,14 +19451,14 @@ var Tabs = styled__default.ul(_templateObject2$Q || (_templateObject2$Q = _tagge
19390
19451
  internal = _ref3.$internal;
19391
19452
  return internal ? theme.spacings.s6 : 0;
19392
19453
  });
19393
- var Tab = styled__default.div(_templateObject5$t || (_templateObject5$t = _taggedTemplateLiteralLoose(["\n ", "\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ", "\n\n transition-property: padding-right, background-color, color;\n transition-duration: 0.25s;\n transition-timing-function: ease-in-out;\n"])), function (_ref4) {
19454
+ var Tab = styled__default.div(_templateObject5$t || (_templateObject5$t = _taggedTemplateLiteralLoose(["\n ", "\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n white-space: nowrap;\n\n ", "\n\n transition-property: padding-right, background-color, color;\n transition-duration: 0.25s;\n transition-timing-function: ease-in-out;\n"])), function (_ref4) {
19394
19455
  var onClick = _ref4.onClick;
19395
19456
  return onClick && styled.css(_templateObject6$q || (_templateObject6$q = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n "])));
19396
19457
  }, function (_ref5) {
19397
19458
  var theme = _ref5.theme,
19398
19459
  active = _ref5.$active,
19399
19460
  internal = _ref5.$internal;
19400
- return styled.css(_templateObject7$q || (_templateObject7$q = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n padding: ", ";\n gap: ", ";\n\n ", "\n\n color: ", ";\n "])), theme.colors[active ? 'blue' : 'white'], theme.spacings.s3, theme.spacings.s3, internal ? styled.css(_templateObject8$n || (_templateObject8$n = _taggedTemplateLiteralLoose(["\n border-radius: 4px 4px 0 0;\n\n ", "\n line-height: 17px;\n "])), function (_ref6) {
19461
+ return styled.css(_templateObject7$q || (_templateObject7$q = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n padding: calc(", " * 1.5) ", ";\n gap: ", ";\n\n ", "\n\n color: ", ";\n "])), theme.colors[active ? 'blue' : 'white'], theme.spacings.s1, theme.spacings.s3, theme.spacings.s3, internal ? styled.css(_templateObject8$n || (_templateObject8$n = _taggedTemplateLiteralLoose(["\n border-radius: 4px 4px 0 0;\n\n ", "\n line-height: 17px;\n "])), function (_ref6) {
19401
19462
  var theme = _ref6.theme;
19402
19463
  return theme.useTypography('h4');
19403
19464
  }) : styled.css(_templateObject9$k || (_templateObject9$k = _taggedTemplateLiteralLoose(["\n box-shadow: 0px 3px 6px ", ";\n\n ", "\n line-height: 19px;\n "])), theme.getColor('black', 15), function (_ref7) {
@@ -19406,55 +19467,6 @@ var Tab = styled__default.div(_templateObject5$t || (_templateObject5$t = _tagge
19406
19467
  }), theme.colors[active ? 'white' : 'darkBlue']);
19407
19468
  });
19408
19469
 
19409
- var _templateObject$18;
19410
- var Close = styled__default.div(_templateObject$18 || (_templateObject$18 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(50% - ", " / 2);\n right: ", ";\n\n + ", " {\n /** icon width + tab gap + tab right padding */\n padding-right: ", ";\n }\n\n svg > * {\n transition-property: stroke;\n transition-duration: 0.25s;\n transition-timing-function: ease-in-out;\n }\n"])), function (_ref) {
19411
- var theme = _ref.theme;
19412
- return theme.spacings.s3;
19413
- }, function (_ref2) {
19414
- var theme = _ref2.theme;
19415
- return theme.spacings.s3;
19416
- }, Tab, function (_ref3) {
19417
- var theme = _ref3.theme;
19418
- return "calc(" + theme.spacings.s3 + " + " + theme.spacings.s3 + " + " + theme.spacings.s3 + ")";
19419
- });
19420
-
19421
- var Close$1 = function Close$1(props) {
19422
- var index = props.index,
19423
- _props$active = props.active,
19424
- active = _props$active[0],
19425
- setActive = _props$active[1],
19426
- _props$options = props.options,
19427
- options = _props$options[0],
19428
- setOptions = _props$options[1];
19429
-
19430
- var onClose = props.onClose || function () {};
19431
-
19432
- var onClickClose = React.useCallback(function (event) {
19433
- if (options.length === 1) return;
19434
- var newOptions = [].concat(options);
19435
- newOptions.splice(index, 1);
19436
- onClose(index, options[index], event);
19437
-
19438
- if (index < active) {
19439
- setActive(active - 1, newOptions[active - 1].data);
19440
- } else if (active === index) {
19441
- var newactive = active > 0 ? active - 1 : active;
19442
- setActive(newactive, newOptions[newactive].data);
19443
- }
19444
-
19445
- setOptions(newOptions);
19446
- }, [options, active, index]);
19447
- return React__default.createElement(Close, null, React__default.createElement(Icon, {
19448
- type: 'feather',
19449
- icon: 'x',
19450
- onClick: onClickClose,
19451
- width: '14px',
19452
- height: '14px',
19453
- strokeWidth: '3px',
19454
- color: active === index ? 'white' : 'darkBlue'
19455
- }));
19456
- };
19457
-
19458
19470
  var VoidClose = function VoidClose() {
19459
19471
  return React__default.createElement(React__default.Fragment, null);
19460
19472
  };
@@ -19479,14 +19491,31 @@ var Tabs$1 = function Tabs$1(props) {
19479
19491
  return React__default.createElement(Container$n, Object.assign({}, divProps), React__default.createElement(Tabs, {
19480
19492
  "$internal": props.internal,
19481
19493
  "$delimiter": props.delimiter,
19482
- "$spacing": props.spacing
19494
+ "$spacing": props.spacing,
19495
+ onWheel: function onWheel(e) {
19496
+ var target = function () {
19497
+ var target = e.target;
19498
+
19499
+ while (target && target.tagName !== 'UL') {
19500
+ target = target.parentElement;
19501
+ }
19502
+
19503
+ return target;
19504
+ }();
19505
+
19506
+ if (!target) return;
19507
+ var x = target.offsetWidth * 100 / target.scrollWidth;
19508
+ target.scrollLeft += x * (e.deltaY > 0 ? 1 : -1) * 2;
19509
+ e.preventDefault();
19510
+ }
19483
19511
  }, options.map(function (tab, index) {
19484
19512
  return React__default.createElement("li", {
19485
19513
  key: index
19486
19514
  }, React__default.createElement(CloseComponent, {
19487
19515
  index: index,
19488
19516
  active: [active, setActive],
19489
- options: [options, setOptions]
19517
+ options: [options, setOptions],
19518
+ onClose: props.onClose
19490
19519
  }), React__default.createElement(Tab, Object.assign({}, index === active ? {
19491
19520
  $active: true
19492
19521
  } : {