@dnb/eufemia 9.23.0-beta.4 → 9.23.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.
- package/CHANGELOG.md +8 -31
- package/cjs/components/tabs/Tabs.js +104 -69
- package/cjs/components/tabs/style/_tabs.scss +10 -35
- package/cjs/components/tabs/style/dnb-tabs.css +13 -25
- package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
- package/cjs/components/tag/style/_tag.scss +10 -6
- package/cjs/components/tag/style/dnb-tag.css +13 -5
- package/cjs/components/tag/style/dnb-tag.min.css +1 -1
- package/cjs/shared/Eufemia.js +1 -1
- package/cjs/style/dnb-ui-components.css +26 -30
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/components/tabs/Tabs.js +104 -69
- package/components/tabs/style/_tabs.scss +10 -35
- package/components/tabs/style/dnb-tabs.css +13 -25
- package/components/tabs/style/dnb-tabs.min.css +1 -1
- package/components/tag/style/_tag.scss +10 -6
- package/components/tag/style/dnb-tag.css +13 -5
- package/components/tag/style/dnb-tag.min.css +1 -1
- package/es/components/tabs/Tabs.js +53 -23
- package/es/components/tabs/style/_tabs.scss +10 -35
- package/es/components/tabs/style/dnb-tabs.css +13 -25
- package/es/components/tabs/style/dnb-tabs.min.css +1 -1
- package/es/components/tag/style/_tag.scss +10 -6
- package/es/components/tag/style/dnb-tag.css +13 -5
- package/es/components/tag/style/dnb-tag.min.css +1 -1
- package/es/shared/Eufemia.js +1 -1
- package/es/style/dnb-ui-components.css +26 -30
- package/es/style/dnb-ui-components.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +3 -3
- package/esm/dnb-ui-web-components.min.mjs +2 -2
- package/package.json +1 -1
- package/shared/Eufemia.js +1 -1
- package/style/dnb-ui-components.css +26 -30
- package/style/dnb-ui-components.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +3 -3
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +3 -3
- package/umd/dnb-ui-web-components.min.js +4 -4
package/components/tabs/Tabs.js
CHANGED
|
@@ -68,18 +68,25 @@ var Tabs = function (_React$PureComponent) {
|
|
|
68
68
|
if (_this._isMounted) {
|
|
69
69
|
_this.addScrollBehaviour();
|
|
70
70
|
|
|
71
|
-
_this.
|
|
71
|
+
var hasScrollbar = _this.hasScrollbar();
|
|
72
72
|
|
|
73
|
-
_this.
|
|
74
|
-
type: 'focus',
|
|
75
|
-
behavior: 'auto'
|
|
76
|
-
});
|
|
73
|
+
var hasLastPosition = _this.hasLastPosition();
|
|
77
74
|
|
|
78
|
-
_this.
|
|
79
|
-
|
|
80
|
-
behavior: 'auto'
|
|
75
|
+
_this.setScrollbarState({
|
|
76
|
+
hasScrollbar: hasScrollbar
|
|
81
77
|
});
|
|
82
78
|
|
|
79
|
+
if (hasLastPosition) {
|
|
80
|
+
_this.setLeftPosition(_this.state.lastPosition);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (hasScrollbar) {
|
|
84
|
+
_this.scrollToTab({
|
|
85
|
+
type: 'selected',
|
|
86
|
+
behavior: hasLastPosition ? 'smooth' : 'auto'
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
83
90
|
if (_this.hasLastUsedTab() !== null) {
|
|
84
91
|
_this.setState(null, _this.setFocusOnTabButton);
|
|
85
92
|
}
|
|
@@ -87,19 +94,25 @@ var Tabs = function (_React$PureComponent) {
|
|
|
87
94
|
});
|
|
88
95
|
|
|
89
96
|
_defineProperty(_assertThisInitialized(_this), "setScrollbarState", function () {
|
|
90
|
-
var
|
|
97
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
98
|
+
_ref$hasScrollbar = _ref.hasScrollbar,
|
|
99
|
+
hasScrollbar = _ref$hasScrollbar === void 0 ? _this.hasScrollbar() : _ref$hasScrollbar;
|
|
91
100
|
|
|
92
101
|
if (hasScrollbar !== _this.state.hasScrollbar) {
|
|
93
102
|
_this.setState({
|
|
94
103
|
hasScrollbar: hasScrollbar
|
|
95
104
|
});
|
|
96
105
|
}
|
|
97
|
-
|
|
98
|
-
return hasScrollbar;
|
|
99
106
|
});
|
|
100
107
|
|
|
101
108
|
_defineProperty(_assertThisInitialized(_this), "onResizeHandler", function () {
|
|
102
|
-
|
|
109
|
+
var hasScrollbar = _this.hasScrollbar();
|
|
110
|
+
|
|
111
|
+
_this.setScrollbarState({
|
|
112
|
+
hasScrollbar: hasScrollbar
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (hasScrollbar) {
|
|
103
116
|
_this.scrollToTab({
|
|
104
117
|
type: 'selected'
|
|
105
118
|
});
|
|
@@ -272,8 +285,8 @@ var Tabs = function (_React$PureComponent) {
|
|
|
272
285
|
_defineProperty(_assertThisInitialized(_this), "getCurrentTitle", function () {
|
|
273
286
|
var selected_key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.state.selected_key;
|
|
274
287
|
|
|
275
|
-
var current = _this.state.data.filter(function (
|
|
276
|
-
var key =
|
|
288
|
+
var current = _this.state.data.filter(function (_ref2) {
|
|
289
|
+
var key = _ref2.key;
|
|
277
290
|
return key == selected_key;
|
|
278
291
|
})[0];
|
|
279
292
|
|
|
@@ -387,11 +400,11 @@ var Tabs = function (_React$PureComponent) {
|
|
|
387
400
|
}
|
|
388
401
|
|
|
389
402
|
if (items) {
|
|
390
|
-
content = items.filter(function (
|
|
391
|
-
var key =
|
|
403
|
+
content = items.filter(function (_ref3) {
|
|
404
|
+
var key = _ref3.key;
|
|
392
405
|
return key && selected_key && key == selected_key;
|
|
393
|
-
}).reduce(function (acc,
|
|
394
|
-
var content =
|
|
406
|
+
}).reduce(function (acc, _ref4) {
|
|
407
|
+
var content = _ref4.content;
|
|
395
408
|
return content || acc;
|
|
396
409
|
}, null);
|
|
397
410
|
}
|
|
@@ -405,9 +418,9 @@ var Tabs = function (_React$PureComponent) {
|
|
|
405
418
|
return content;
|
|
406
419
|
});
|
|
407
420
|
|
|
408
|
-
_defineProperty(_assertThisInitialized(_this), "TabsWrapperHandler", function (
|
|
409
|
-
var children =
|
|
410
|
-
rest = _objectWithoutProperties(
|
|
421
|
+
_defineProperty(_assertThisInitialized(_this), "TabsWrapperHandler", function (_ref5) {
|
|
422
|
+
var children = _ref5.children,
|
|
423
|
+
rest = _objectWithoutProperties(_ref5, _excluded);
|
|
411
424
|
|
|
412
425
|
var _this$props2 = _this.props,
|
|
413
426
|
className = _this$props2.className,
|
|
@@ -424,10 +437,10 @@ var Tabs = function (_React$PureComponent) {
|
|
|
424
437
|
return React.createElement("div", _extends({}, params, rest), children);
|
|
425
438
|
});
|
|
426
439
|
|
|
427
|
-
_defineProperty(_assertThisInitialized(_this), "TabsListHandler", function (
|
|
428
|
-
var children =
|
|
429
|
-
className =
|
|
430
|
-
rest = _objectWithoutProperties(
|
|
440
|
+
_defineProperty(_assertThisInitialized(_this), "TabsListHandler", function (_ref6) {
|
|
441
|
+
var children = _ref6.children,
|
|
442
|
+
className = _ref6.className,
|
|
443
|
+
rest = _objectWithoutProperties(_ref6, _excluded2);
|
|
431
444
|
|
|
432
445
|
var _this$props3 = _this.props,
|
|
433
446
|
align = _this$props3.align,
|
|
@@ -442,11 +455,11 @@ var Tabs = function (_React$PureComponent) {
|
|
|
442
455
|
}, rest), React.createElement(ScrollNavButton, {
|
|
443
456
|
onMouseDown: _this.openPrevTab,
|
|
444
457
|
icon: "chevron_left",
|
|
445
|
-
className: classnames(hasScrollbar && typeof _this.state.isFirst !== 'undefined' && 'dnb-tabs__scroll-nav-button--visible', _this.state.isFirst && 'dnb-tabs__scroll-nav-button--hide')
|
|
458
|
+
className: classnames(hasScrollbar && (typeof _this.state.isFirst !== 'undefined' || _this.hasLastPosition()) && 'dnb-tabs__scroll-nav-button--visible', _this.state.isFirst && 'dnb-tabs__scroll-nav-button--hide')
|
|
446
459
|
}), children, React.createElement(ScrollNavButton, {
|
|
447
460
|
onMouseDown: _this.openNextTab,
|
|
448
461
|
icon: "chevron_right",
|
|
449
|
-
className: classnames(hasScrollbar && typeof _this.state.isLast !== 'undefined' && 'dnb-tabs__scroll-nav-button--visible', _this.state.isLast && 'dnb-tabs__scroll-nav-button--hide')
|
|
462
|
+
className: classnames(hasScrollbar && (typeof _this.state.isLast !== 'undefined' || _this.hasLastPosition()) && 'dnb-tabs__scroll-nav-button--visible', _this.state.isLast && 'dnb-tabs__scroll-nav-button--hide')
|
|
450
463
|
}));
|
|
451
464
|
});
|
|
452
465
|
|
|
@@ -476,13 +489,13 @@ var Tabs = function (_React$PureComponent) {
|
|
|
476
489
|
var selected_key = _this.state.selected_key;
|
|
477
490
|
var TabElement = tab_element || 'button';
|
|
478
491
|
|
|
479
|
-
var tabs = _this.state.data.map(function (
|
|
480
|
-
var title =
|
|
481
|
-
key =
|
|
482
|
-
|
|
483
|
-
disabled =
|
|
484
|
-
to =
|
|
485
|
-
href =
|
|
492
|
+
var tabs = _this.state.data.map(function (_ref7) {
|
|
493
|
+
var title = _ref7.title,
|
|
494
|
+
key = _ref7.key,
|
|
495
|
+
_ref7$disabled = _ref7.disabled,
|
|
496
|
+
disabled = _ref7$disabled === void 0 ? false : _ref7$disabled,
|
|
497
|
+
to = _ref7.to,
|
|
498
|
+
href = _ref7.href;
|
|
486
499
|
var itemParams = {
|
|
487
500
|
to: to,
|
|
488
501
|
href: href
|
|
@@ -566,6 +579,7 @@ var Tabs = function (_React$PureComponent) {
|
|
|
566
579
|
selected_key: _selected_key,
|
|
567
580
|
focus_key: _selected_key,
|
|
568
581
|
atEdge: false,
|
|
582
|
+
lastPosition: lastPosition,
|
|
569
583
|
hasScrollbar: lastPosition > -1,
|
|
570
584
|
_selected_key: _selected_key,
|
|
571
585
|
_data: _props.data || _props.children,
|
|
@@ -628,14 +642,19 @@ var Tabs = function (_React$PureComponent) {
|
|
|
628
642
|
}
|
|
629
643
|
}
|
|
630
644
|
}
|
|
645
|
+
}, {
|
|
646
|
+
key: "hasLastPosition",
|
|
647
|
+
value: function hasLastPosition() {
|
|
648
|
+
return this.state.lastPosition > -1;
|
|
649
|
+
}
|
|
631
650
|
}, {
|
|
632
651
|
key: "getLastPosition",
|
|
633
652
|
value: function getLastPosition() {
|
|
634
653
|
if (typeof window !== 'undefined') {
|
|
635
654
|
try {
|
|
636
|
-
var pos = parseFloat(window.localStorage.getItem("tabs-pos-".concat(this._id)))
|
|
655
|
+
var pos = parseFloat(window.localStorage.getItem("tabs-pos-".concat(this._id)));
|
|
637
656
|
window.localStorage.removeItem("tabs-pos-".concat(this._id));
|
|
638
|
-
return pos;
|
|
657
|
+
return isNaN(pos) ? -1 : pos;
|
|
639
658
|
} catch (e) {
|
|
640
659
|
warn(e);
|
|
641
660
|
}
|
|
@@ -672,11 +691,11 @@ var Tabs = function (_React$PureComponent) {
|
|
|
672
691
|
}, {
|
|
673
692
|
key: "saveLastPosition",
|
|
674
693
|
value: function saveLastPosition() {
|
|
675
|
-
var
|
|
694
|
+
var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._tablistRef.current.scrollLeft;
|
|
676
695
|
|
|
677
696
|
if (typeof window !== 'undefined') {
|
|
678
697
|
try {
|
|
679
|
-
window.localStorage.setItem("tabs-pos-".concat(this._id),
|
|
698
|
+
window.localStorage.setItem("tabs-pos-".concat(this._id), position);
|
|
680
699
|
} catch (e) {
|
|
681
700
|
warn(e);
|
|
682
701
|
}
|
|
@@ -694,14 +713,23 @@ var Tabs = function (_React$PureComponent) {
|
|
|
694
713
|
window.addEventListener('resize', this.onResizeHandler);
|
|
695
714
|
}
|
|
696
715
|
}
|
|
716
|
+
}, {
|
|
717
|
+
key: "setLeftPosition",
|
|
718
|
+
value: function setLeftPosition(scrollLeft) {
|
|
719
|
+
try {
|
|
720
|
+
this._tablistRef.current.style.scrollBehavior = 'auto';
|
|
721
|
+
this._tablistRef.current.scrollLeft = scrollLeft;
|
|
722
|
+
this._tablistRef.current.style.scrollBehavior = 'smooth';
|
|
723
|
+
} catch (e) {}
|
|
724
|
+
}
|
|
697
725
|
}, {
|
|
698
726
|
key: "scrollToTab",
|
|
699
|
-
value: function scrollToTab(
|
|
727
|
+
value: function scrollToTab(_ref8) {
|
|
700
728
|
var _this2 = this;
|
|
701
729
|
|
|
702
|
-
var type =
|
|
703
|
-
|
|
704
|
-
behavior =
|
|
730
|
+
var type = _ref8.type,
|
|
731
|
+
_ref8$behavior = _ref8.behavior,
|
|
732
|
+
behavior = _ref8$behavior === void 0 ? 'smooth' : _ref8$behavior;
|
|
705
733
|
|
|
706
734
|
if (typeof window === 'undefined') {
|
|
707
735
|
return;
|
|
@@ -727,6 +755,14 @@ var Tabs = function (_React$PureComponent) {
|
|
|
727
755
|
var style = window.getComputedStyle(_this2._tabsRef.current);
|
|
728
756
|
var margin = parseFloat(style.marginLeft);
|
|
729
757
|
var padding = margin < 0 ? parseFloat(style.paddingLeft) : 0;
|
|
758
|
+
|
|
759
|
+
if (!isFirst && !isLast && parseFloat(style.paddingLeft) < 16) {
|
|
760
|
+
var navButton = _this2._tabsRef.current.querySelector('.dnb-tabs__scroll-nav-button:first-of-type');
|
|
761
|
+
|
|
762
|
+
var additionalSpace = parseFloat(window.getComputedStyle(navButton).width) * 1.5;
|
|
763
|
+
padding += additionalSpace;
|
|
764
|
+
}
|
|
765
|
+
|
|
730
766
|
var leftPadding = (margin < 0 ? Math.abs(margin) : 0) + padding + parseFloat(window.getComputedStyle(first).paddingLeft);
|
|
731
767
|
var offsetLeft = elem.offsetLeft;
|
|
732
768
|
var left = elem && !isFirst ? offsetLeft - leftPadding : 0;
|
|
@@ -763,12 +799,12 @@ var Tabs = function (_React$PureComponent) {
|
|
|
763
799
|
}, {
|
|
764
800
|
key: "getStepKey",
|
|
765
801
|
value: function getStepKey(useKey, stateKey) {
|
|
766
|
-
var currentData = this.state.data.filter(function (
|
|
767
|
-
var disabled =
|
|
802
|
+
var currentData = this.state.data.filter(function (_ref9) {
|
|
803
|
+
var disabled = _ref9.disabled;
|
|
768
804
|
return !disabled;
|
|
769
805
|
});
|
|
770
|
-
var currentIndex = currentData.reduce(function (acc,
|
|
771
|
-
var key =
|
|
806
|
+
var currentIndex = currentData.reduce(function (acc, _ref10, i) {
|
|
807
|
+
var key = _ref10.key;
|
|
772
808
|
return key == stateKey ? i : acc;
|
|
773
809
|
}, -1);
|
|
774
810
|
var nextIndex = currentIndex + useKey;
|
|
@@ -781,8 +817,8 @@ var Tabs = function (_React$PureComponent) {
|
|
|
781
817
|
nextIndex = 0;
|
|
782
818
|
}
|
|
783
819
|
|
|
784
|
-
return currentData.reduce(function (acc,
|
|
785
|
-
var key =
|
|
820
|
+
return currentData.reduce(function (acc, _ref11, i) {
|
|
821
|
+
var key = _ref11.key;
|
|
786
822
|
return i === nextIndex ? key : acc;
|
|
787
823
|
}, null);
|
|
788
824
|
}
|
|
@@ -838,10 +874,10 @@ var Tabs = function (_React$PureComponent) {
|
|
|
838
874
|
prerender = _this$props4.prerender;
|
|
839
875
|
|
|
840
876
|
if (isTrue(prerender)) {
|
|
841
|
-
this._cache = Object.entries(data).reduce(function (acc,
|
|
842
|
-
var
|
|
843
|
-
idx =
|
|
844
|
-
cur =
|
|
877
|
+
this._cache = Object.entries(data).reduce(function (acc, _ref12) {
|
|
878
|
+
var _ref13 = _slicedToArray(_ref12, 2),
|
|
879
|
+
idx = _ref13[0],
|
|
880
|
+
cur = _ref13[1];
|
|
845
881
|
|
|
846
882
|
acc[cur.key] = _objectSpread(_objectSpread({}, cur), {}, {
|
|
847
883
|
content: _this3.getContent(cur.key)
|
|
@@ -854,10 +890,10 @@ var Tabs = function (_React$PureComponent) {
|
|
|
854
890
|
}));
|
|
855
891
|
}
|
|
856
892
|
|
|
857
|
-
var cachedContent = Object.entries(this._cache).map(function (
|
|
858
|
-
var
|
|
859
|
-
key =
|
|
860
|
-
content =
|
|
893
|
+
var cachedContent = Object.entries(this._cache).map(function (_ref14) {
|
|
894
|
+
var _ref15 = _slicedToArray(_ref14, 2),
|
|
895
|
+
key = _ref15[0],
|
|
896
|
+
content = _ref15[1].content;
|
|
861
897
|
|
|
862
898
|
var params = {};
|
|
863
899
|
|
|
@@ -926,14 +962,14 @@ var Tabs = function (_React$PureComponent) {
|
|
|
926
962
|
var useKey = selected_key;
|
|
927
963
|
|
|
928
964
|
if (!useKey) {
|
|
929
|
-
useKey = data.reduce(function (acc,
|
|
930
|
-
var selected =
|
|
931
|
-
key =
|
|
965
|
+
useKey = data.reduce(function (acc, _ref16) {
|
|
966
|
+
var selected = _ref16.selected,
|
|
967
|
+
key = _ref16.key;
|
|
932
968
|
return selected ? key : acc;
|
|
933
969
|
}, null) || data[0] && data[0].key;
|
|
934
970
|
} else {
|
|
935
|
-
var keyExists = data.findIndex(function (
|
|
936
|
-
var key =
|
|
971
|
+
var keyExists = data.findIndex(function (_ref17) {
|
|
972
|
+
var key = _ref17.key;
|
|
937
973
|
return key == selected_key;
|
|
938
974
|
});
|
|
939
975
|
|
|
@@ -1010,10 +1046,10 @@ var Tabs = function (_React$PureComponent) {
|
|
|
1010
1046
|
} else if (typeof data === 'string') {
|
|
1011
1047
|
res = data[0] === '[' ? JSON.parse(data) : [];
|
|
1012
1048
|
} else if (data && _typeof(data) === 'object') {
|
|
1013
|
-
res = Object.entries(data).reduce(function (acc,
|
|
1014
|
-
var
|
|
1015
|
-
key =
|
|
1016
|
-
obj =
|
|
1049
|
+
res = Object.entries(data).reduce(function (acc, _ref18) {
|
|
1050
|
+
var _ref19 = _slicedToArray(_ref18, 2),
|
|
1051
|
+
key = _ref19[0],
|
|
1052
|
+
obj = _ref19[1];
|
|
1017
1053
|
|
|
1018
1054
|
if (obj) {
|
|
1019
1055
|
acc.push(_objectSpread({
|
|
@@ -1109,8 +1145,8 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes = _objectSpread(_objectSp
|
|
|
1109
1145
|
on_click: PropTypes.func,
|
|
1110
1146
|
on_focus: PropTypes.func
|
|
1111
1147
|
}) : void 0;
|
|
1112
|
-
export var Dummy = function Dummy(
|
|
1113
|
-
var children =
|
|
1148
|
+
export var Dummy = function Dummy(_ref20) {
|
|
1149
|
+
var children = _ref20.children;
|
|
1114
1150
|
return React.createElement("span", {
|
|
1115
1151
|
"aria-hidden": true,
|
|
1116
1152
|
hidden: true,
|
|
@@ -1127,8 +1163,7 @@ var ScrollNavButton = function ScrollNavButton(props) {
|
|
|
1127
1163
|
variant: "primary",
|
|
1128
1164
|
tabIndex: "-1",
|
|
1129
1165
|
bounding: true,
|
|
1130
|
-
"aria-hidden": true
|
|
1131
|
-
icon_size: "medium"
|
|
1166
|
+
"aria-hidden": true
|
|
1132
1167
|
}, props, {
|
|
1133
1168
|
className: classnames('dnb-tabs__scroll-nav-button', props.className)
|
|
1134
1169
|
}));
|
|
@@ -58,11 +58,13 @@
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
&__scroll-nav-button {
|
|
61
|
-
position:
|
|
61
|
+
position: absolute;
|
|
62
62
|
z-index: 2;
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
right: -2px;
|
|
65
|
+
&:first-of-type {
|
|
66
|
+
left: -2px;
|
|
67
|
+
right: auto;
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
display: none; // use "none" to remove it from markup by default
|
|
@@ -155,39 +157,19 @@
|
|
|
155
157
|
padding-right: 0.5rem;
|
|
156
158
|
}
|
|
157
159
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
&:first-of-type.selected.focus,
|
|
161
|
-
&:last-of-type.focus,
|
|
162
|
-
&:last-of-type.selected {
|
|
163
|
-
transition: padding 1s #{$defaultEasing} 10ms;
|
|
164
|
-
}
|
|
160
|
+
will-change: padding;
|
|
161
|
+
transition: padding 1s #{$defaultEasing};
|
|
165
162
|
}
|
|
166
163
|
|
|
167
|
-
|
|
168
|
-
&:first-of-type {
|
|
169
|
-
margin-left: -3rem;
|
|
170
|
-
padding-left: 3rem;
|
|
171
|
-
}
|
|
172
|
-
&:last-of-type {
|
|
173
|
-
margin-right: -3rem;
|
|
174
|
-
padding-right: 3rem;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
&:first-of-type.focus,
|
|
178
|
-
&:first-of-type.selected.focus {
|
|
179
|
-
padding-left: 0;
|
|
180
|
-
|
|
164
|
+
html[data-whatinput='keyboard'] &__button__snap {
|
|
165
|
+
&:first-of-type.focus {
|
|
181
166
|
// add space so the focus ring is visible within our overflow
|
|
182
167
|
.dnb-tabs__button:focus {
|
|
183
168
|
margin-left: 0.5rem;
|
|
184
169
|
}
|
|
185
170
|
}
|
|
186
171
|
|
|
187
|
-
&:last-of-type.focus
|
|
188
|
-
&:last-of-type.selected.focus {
|
|
189
|
-
padding-right: 0;
|
|
190
|
-
|
|
172
|
+
&:last-of-type.focus {
|
|
191
173
|
// add space so the focus ring is visible within our overflow
|
|
192
174
|
/* stylelint-disable */
|
|
193
175
|
.dnb-tabs__button:focus {
|
|
@@ -197,13 +179,6 @@
|
|
|
197
179
|
}
|
|
198
180
|
}
|
|
199
181
|
|
|
200
|
-
// Do this in order to have the selected tab to be nice aligned during scrollTo
|
|
201
|
-
&--has-scrollbar &__tabs__tablist {
|
|
202
|
-
margin: 0 -2rem; // The width of the nav-button
|
|
203
|
-
padding-left: 3rem;
|
|
204
|
-
padding-right: 3rem;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
182
|
/* stylelint-disable */
|
|
208
183
|
html[data-visual-test] & &__button,
|
|
209
184
|
html[data-visual-test] & &__button__snap,
|
|
@@ -152,16 +152,17 @@
|
|
|
152
152
|
.dnb-tabs__tabs--no-border::before {
|
|
153
153
|
content: none; }
|
|
154
154
|
.dnb-tabs__scroll-nav-button {
|
|
155
|
-
position:
|
|
155
|
+
position: absolute;
|
|
156
156
|
z-index: 2;
|
|
157
|
+
right: -2px;
|
|
157
158
|
display: none;
|
|
158
159
|
opacity: 0;
|
|
159
160
|
pointer-events: none;
|
|
160
161
|
-webkit-transition: opacity 600ms ease-out;
|
|
161
162
|
transition: opacity 600ms ease-out; }
|
|
162
|
-
.dnb-tabs__scroll-nav-button
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
.dnb-tabs__scroll-nav-button:first-of-type {
|
|
164
|
+
left: -2px;
|
|
165
|
+
right: auto; }
|
|
165
166
|
.dnb-tabs__scroll-nav-button--visible {
|
|
166
167
|
display: -webkit-box;
|
|
167
168
|
display: -ms-flexbox;
|
|
@@ -230,7 +231,10 @@
|
|
|
230
231
|
display: -webkit-box;
|
|
231
232
|
display: -ms-flexbox;
|
|
232
233
|
display: flex;
|
|
233
|
-
padding: 0 1rem 0 1.5rem;
|
|
234
|
+
padding: 0 1rem 0 1.5rem;
|
|
235
|
+
will-change: padding;
|
|
236
|
+
-webkit-transition: padding 1s cubic-bezier(0.42, 0, 0, 1);
|
|
237
|
+
transition: padding 1s cubic-bezier(0.42, 0, 0, 1); }
|
|
234
238
|
@media screen and (max-width: 40em) {
|
|
235
239
|
.dnb-tabs__button__snap {
|
|
236
240
|
padding: 0 1rem; } }
|
|
@@ -238,29 +242,13 @@
|
|
|
238
242
|
padding-left: 0; }
|
|
239
243
|
.dnb-tabs__button__snap:last-of-type {
|
|
240
244
|
padding-right: 0.5rem; }
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
.dnb-tabs--has-scrollbar .dnb-tabs__button__snap:first-of-type {
|
|
245
|
-
margin-left: -3rem;
|
|
246
|
-
padding-left: 3rem; }
|
|
247
|
-
.dnb-tabs--has-scrollbar .dnb-tabs__button__snap:last-of-type {
|
|
248
|
-
margin-right: -3rem;
|
|
249
|
-
padding-right: 3rem; }
|
|
250
|
-
.dnb-tabs--has-scrollbar .dnb-tabs__button__snap:first-of-type.focus, .dnb-tabs--has-scrollbar .dnb-tabs__button__snap:first-of-type.selected.focus {
|
|
251
|
-
padding-left: 0; }
|
|
252
|
-
.dnb-tabs--has-scrollbar .dnb-tabs__button__snap:first-of-type.focus .dnb-tabs__button:focus, .dnb-tabs--has-scrollbar .dnb-tabs__button__snap:first-of-type.selected.focus .dnb-tabs__button:focus {
|
|
253
|
-
margin-left: 0.5rem; }
|
|
254
|
-
.dnb-tabs--has-scrollbar .dnb-tabs__button__snap:last-of-type.focus, .dnb-tabs--has-scrollbar .dnb-tabs__button__snap:last-of-type.selected.focus {
|
|
255
|
-
padding-right: 0;
|
|
245
|
+
html[data-whatinput='keyboard'] .dnb-tabs__button__snap:first-of-type.focus .dnb-tabs__button:focus {
|
|
246
|
+
margin-left: 0.5rem; }
|
|
247
|
+
html[data-whatinput='keyboard'] .dnb-tabs__button__snap:last-of-type.focus {
|
|
256
248
|
/* stylelint-disable */
|
|
257
249
|
/* stylelint-enable */ }
|
|
258
|
-
|
|
250
|
+
html[data-whatinput='keyboard'] .dnb-tabs__button__snap:last-of-type.focus .dnb-tabs__button:focus {
|
|
259
251
|
margin-right: 0.5rem; }
|
|
260
|
-
.dnb-tabs--has-scrollbar .dnb-tabs__tabs__tablist {
|
|
261
|
-
margin: 0 -2rem;
|
|
262
|
-
padding-left: 3rem;
|
|
263
|
-
padding-right: 3rem; }
|
|
264
252
|
html[data-visual-test] .dnb-tabs .dnb-tabs__button,
|
|
265
253
|
html[data-visual-test] .dnb-tabs .dnb-tabs__button__snap,
|
|
266
254
|
html[data-visual-test] .dnb-tabs .dnb-tabs__scroll-nav-button {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-tabs{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-tabs *,.dnb-tabs :after,.dnb-tabs :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-tabs :after,.dnb-tabs :before{text-decoration:inherit;vertical-align:inherit}.dnb-tabs__tabs{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;z-index:1}.dnb-tabs__tabs,.dnb-tabs__tabs.dnb-section--spacing{padding-bottom:0}.dnb-tabs__tabs__tablist{-webkit-box-flex:0;-ms-scroll-chaining:none;-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;-ms-overflow-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex:0 1 auto;flex:0 1 auto;overflow-x:auto;overscroll-behavior:contain;scrollbar-color:#14555a transparent;scrollbar-color:var(--color-emerald-green) transparent;scrollbar-width:thin;scrollbar-width:none}.dnb-tabs__tabs__tablist:focus{outline:none}html[data-whatinput=keyboard] .dnb-tabs__tabs__tablist:focus{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-tabs__tabs__tablist:focus{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}html:not([data-visual-test]) .dnb-tabs__tabs__tablist{scroll-behavior:smooth}html[data-visual-test] .dnb-tabs__tabs__tablist{scroll-behavior:auto!important}.dnb-tabs__tabs__tablist::-webkit-scrollbar{display:none}.dnb-tabs__tabs--left .dnb-tabs__tabs__tablist{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.dnb-tabs__tabs--right .dnb-tabs__tabs__tablist{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;-ms-flex:1;flex:1;justify-content:flex-end}.dnb-tabs__tabs--center .dnb-tabs__tabs__tablist{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.dnb-tabs__tabs:before{bottom:0;content:"";height:1px;left:-100vw;position:absolute;width:100vw;z-index:-1}.dnb-tabs__tabs--no-border:before{content:none}.dnb-tabs__scroll-nav-button{display:none;opacity:0;pointer-events:none;position:
|
|
1
|
+
.dnb-tabs{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-tabs *,.dnb-tabs :after,.dnb-tabs :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-tabs :after,.dnb-tabs :before{text-decoration:inherit;vertical-align:inherit}.dnb-tabs__tabs{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;z-index:1}.dnb-tabs__tabs,.dnb-tabs__tabs.dnb-section--spacing{padding-bottom:0}.dnb-tabs__tabs__tablist{-webkit-box-flex:0;-ms-scroll-chaining:none;-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;-ms-overflow-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex:0 1 auto;flex:0 1 auto;overflow-x:auto;overscroll-behavior:contain;scrollbar-color:#14555a transparent;scrollbar-color:var(--color-emerald-green) transparent;scrollbar-width:thin;scrollbar-width:none}.dnb-tabs__tabs__tablist:focus{outline:none}html[data-whatinput=keyboard] .dnb-tabs__tabs__tablist:focus{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-tabs__tabs__tablist:focus{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}html:not([data-visual-test]) .dnb-tabs__tabs__tablist{scroll-behavior:smooth}html[data-visual-test] .dnb-tabs__tabs__tablist{scroll-behavior:auto!important}.dnb-tabs__tabs__tablist::-webkit-scrollbar{display:none}.dnb-tabs__tabs--left .dnb-tabs__tabs__tablist{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.dnb-tabs__tabs--right .dnb-tabs__tabs__tablist{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;-ms-flex:1;flex:1;justify-content:flex-end}.dnb-tabs__tabs--center .dnb-tabs__tabs__tablist{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.dnb-tabs__tabs:before{bottom:0;content:"";height:1px;left:-100vw;position:absolute;width:100vw;z-index:-1}.dnb-tabs__tabs--no-border:before{content:none}.dnb-tabs__scroll-nav-button{display:none;opacity:0;pointer-events:none;position:absolute;right:-2px;-webkit-transition:opacity .6s ease-out;transition:opacity .6s ease-out;z-index:2}.dnb-tabs__scroll-nav-button:first-of-type{left:-2px;right:auto}.dnb-tabs__scroll-nav-button--visible{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1;pointer-events:auto}.dnb-tabs__scroll-nav-button--hide{opacity:0!important;pointer-events:none}.dnb-core-style .dnb-tabs .dnb-tabs__button,.dnb-tabs__button{background-color:transparent;border:none;cursor:pointer;font-size:1.125rem;font-size:var(--font-size-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;outline:none;padding:0 .125rem;position:relative;text-decoration:none;-webkit-transition:margin .4s ease-out;transition:margin .4s ease-out;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:1}.dnb-core-style .dnb-tabs .dnb-tabs__button__title .dnb-icon,.dnb-tabs__button__title .dnb-icon{font-size:1rem;font-size:var(--font-size-small);-webkit-transform:translateY(-.125rem);transform:translateY(-.125rem)}.dnb-core-style .dnb-tabs .dnb-tabs__button .dnb-dummy,.dnb-tabs__button .dnb-dummy{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:0;margin-top:.25rem;overflow:hidden;visibility:hidden}.dnb-core-style .dnb-tabs .dnb-tabs__button:after,.dnb-tabs__button:after{bottom:0;content:"";height:1px;left:0;position:absolute;right:0;width:100%;z-index:-1}.dnb-tabs__button__snap{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 1rem 0 1.5rem;-webkit-transition:padding 1s cubic-bezier(.42,0,0,1);transition:padding 1s cubic-bezier(.42,0,0,1);will-change:padding}@media screen and (max-width:40em){.dnb-tabs__button__snap{padding:0 1rem}}.dnb-tabs__button__snap:first-of-type{padding-left:0}.dnb-tabs__button__snap:last-of-type{padding-right:.5rem}html[data-whatinput=keyboard] .dnb-tabs__button__snap:first-of-type.focus .dnb-tabs__button:focus{margin-left:.5rem}html[data-whatinput=keyboard] .dnb-tabs__button__snap:last-of-type.focus .dnb-tabs__button:focus{margin-right:.5rem}html[data-visual-test] .dnb-tabs .dnb-tabs__button,html[data-visual-test] .dnb-tabs .dnb-tabs__button__snap,html[data-visual-test] .dnb-tabs .dnb-tabs__scroll-nav-button{-webkit-transition:none!important;transition:none!important}.dnb-tabs__content--spacing{padding-top:2rem}
|
|
@@ -90,12 +90,16 @@
|
|
|
90
90
|
|
|
91
91
|
// Default space between tags
|
|
92
92
|
&__group {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
flex-wrap: wrap;
|
|
95
|
+
gap: 0.5rem;
|
|
96
|
+
|
|
97
|
+
@include IS_IE {
|
|
98
|
+
.dnb-button:not([class*='dnb-space']) {
|
|
99
|
+
margin-bottom: 0.5rem;
|
|
100
|
+
&:not(:last-of-type) {
|
|
101
|
+
margin-right: 0.5rem;
|
|
102
|
+
}
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
105
|
}
|
|
@@ -1116,8 +1116,16 @@ button.dnb-button::-moz-focus-inner {
|
|
|
1116
1116
|
.dnb-tag--removable.dnb-button--size-small.dnb-button--has-icon {
|
|
1117
1117
|
padding-right: 0; }
|
|
1118
1118
|
|
|
1119
|
-
.dnb-tag__group
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1119
|
+
.dnb-tag__group {
|
|
1120
|
+
display: -webkit-inline-box;
|
|
1121
|
+
display: -ms-inline-flexbox;
|
|
1122
|
+
display: inline-flex;
|
|
1123
|
+
-ms-flex-wrap: wrap;
|
|
1124
|
+
flex-wrap: wrap;
|
|
1125
|
+
grid-gap: 0.5rem;
|
|
1126
|
+
gap: 0.5rem; }
|
|
1127
|
+
@media screen and (-ms-high-contrast: none) {
|
|
1128
|
+
.dnb-tag__group .dnb-button:not([class*='dnb-space']) {
|
|
1129
|
+
margin-bottom: 0.5rem; }
|
|
1130
|
+
.dnb-tag__group .dnb-button:not([class*='dnb-space']):not(:last-of-type) {
|
|
1131
|
+
margin-right: 0.5rem; } }
|