@speakapbv/dough-component-library 9.28.2 → 9.30.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/dist/components/drop-menu/drop-menu.d.ts +1 -0
- package/dist/components/tabs/tabs.d.ts +4 -0
- package/dist/index.es.js +59 -32
- package/dist/index.js +59 -32
- package/dist/src/components/containers/drop-area/drop-area.d.ts +1 -0
- package/dist/src/components/tabs/tabs.stories.d.ts +4 -0
- package/package.json +2 -2
|
@@ -39,5 +39,6 @@ export interface DropMenuProps {
|
|
|
39
39
|
overlaySelector?: string;
|
|
40
40
|
customClickHandler?: (e: MouseEvent) => void;
|
|
41
41
|
alwaysTop?: boolean;
|
|
42
|
+
desktopOnly?: boolean;
|
|
42
43
|
}
|
|
43
44
|
export declare const DropMenu: React.ForwardRefExoticComponent<DropMenuProps & React.RefAttributes<DoughDropMenuRef>>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
2
|
import { Colors, DoughDataAttributes } from "../../utils/constants";
|
|
3
3
|
import "./tabs.scss";
|
|
4
|
+
import { BoxProps } from "../containers/box/box";
|
|
4
5
|
export interface TabsContainerProps {
|
|
5
6
|
className?: string;
|
|
6
7
|
children?: ReactNode;
|
|
@@ -8,8 +9,11 @@ export interface TabsContainerProps {
|
|
|
8
9
|
borderOnTop?: boolean;
|
|
9
10
|
showDivider?: boolean;
|
|
10
11
|
color?: Colors;
|
|
12
|
+
padding?: BoxProps["padding"];
|
|
13
|
+
withBorderOnHover?: boolean;
|
|
11
14
|
stretchTabs?: boolean;
|
|
12
15
|
small?: boolean;
|
|
16
|
+
compact?: boolean;
|
|
13
17
|
iconOnly?: boolean;
|
|
14
18
|
onChange(selectedTabId: string): void;
|
|
15
19
|
value?: string;
|
package/dist/index.es.js
CHANGED
|
@@ -1326,16 +1326,17 @@ var generateUID = function () {
|
|
|
1326
1326
|
("000" + secondPart.toString(36)).slice(-3));
|
|
1327
1327
|
};
|
|
1328
1328
|
|
|
1329
|
-
var css_248z$b = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-drop-area-wrapper {\n position: fixed;\n background-color: rgba(0, 0, 0, 0);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n width: auto;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n opacity: 0;\n transform-origin: center center;\n font-family: \"Roboto\", sans-serif;\n}\nbody:not(.no-transition) .dough-drop-area-wrapper {\n transition: opacity 350ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-container {\n pointer-events: fill;\n max-height: calc(80vh - 16px);\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n box-sizing: border-box;\n border-radius: 12px;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.1), 0px 1px 4px 0px rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow {\n pointer-events: none;\n position: absolute;\n z-index: 50;\n width: 32px !important;\n height: 16px !important;\n margin-top: -16px;\n overflow: hidden;\n min-width: initial !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow:before {\n content: \"\";\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n position: absolute;\n top: 8px;\n left: 4px;\n z-index: 10;\n width: 16px;\n height: 16px;\n transform: translate3d(0, 0, 0) rotateZ(45deg);\n box-shadow: 0 24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up {\n margin-top: initial;\n margin-bottom: -16px;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up:before {\n top: -8px;\n box-shadow: 0 -24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow,\n.dough-drop-area-wrapper > .dough-drop-area-container {\n transform: translate3d(0, -4px, 0);\n}\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: transform 250ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper.visible {\n opacity: 1;\n}\n.dough-drop-area-wrapper.visible > .dough-drop-area-arrow,\n.dough-drop-area-wrapper.visible > .dough-drop-area-container {\n transform: translate3d(0, 0, 0) !important;\n}\n\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper.visible {\n pointer-events: all;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper > .dough-drop-area-arrow {\n display: none !important;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper.visible {\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n@media only screen and (max-width: 576px) {\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper.visible {\n pointer-events: all;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper > .dough-drop-area-arrow {\n display: none !important;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper.visible {\n background-color: rgba(0, 0, 0, 0.4);\n }\n}";
|
|
1329
|
+
var css_248z$b = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-drop-area-wrapper {\n position: fixed;\n background-color: rgba(0, 0, 0, 0);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n width: auto;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n opacity: 0;\n transform-origin: center center;\n font-family: \"Roboto\", sans-serif;\n}\nbody:not(.no-transition) .dough-drop-area-wrapper {\n transition: opacity 350ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-container {\n pointer-events: fill;\n max-height: calc(80vh - 16px);\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n box-sizing: border-box;\n border-radius: 12px;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.1), 0px 1px 4px 0px rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow {\n pointer-events: none;\n position: absolute;\n z-index: 50;\n width: 32px !important;\n height: 16px !important;\n margin-top: -16px;\n overflow: hidden;\n min-width: initial !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow:before {\n content: \"\";\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n position: absolute;\n top: 8px;\n left: 4px;\n z-index: 10;\n width: 16px;\n height: 16px;\n transform: translate3d(0, 0, 0) rotateZ(45deg);\n box-shadow: 0 24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up {\n margin-top: initial;\n margin-bottom: -16px;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up:before {\n top: -8px;\n box-shadow: 0 -24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow,\n.dough-drop-area-wrapper > .dough-drop-area-container {\n transform: translate3d(0, -4px, 0);\n}\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: transform 250ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper.visible {\n opacity: 1;\n}\n.dough-drop-area-wrapper.visible > .dough-drop-area-arrow,\n.dough-drop-area-wrapper.visible > .dough-drop-area-container {\n transform: translate3d(0, 0, 0) !important;\n}\n\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only).visible {\n pointer-events: all;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-arrow {\n display: none !important;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only).visible {\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n@media only screen and (max-width: 576px) {\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only).visible {\n pointer-events: all;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-arrow {\n display: none !important;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only).visible {\n background-color: rgba(0, 0, 0, 0.4);\n }\n}";
|
|
1330
1330
|
styleInject(css_248z$b);
|
|
1331
1331
|
|
|
1332
1332
|
var TOP_MARGIN = 4;
|
|
1333
1333
|
var TOUP = "to-up";
|
|
1334
1334
|
var TODOWN = "to-down";
|
|
1335
1335
|
var DropArea = function (props) {
|
|
1336
|
-
var _a
|
|
1336
|
+
var _a;
|
|
1337
|
+
var _b = props.rightShift, rightShift = _b === void 0 ? 0 : _b, _c = props.topShift, topShift = _c === void 0 ? 0 : _c, _d = props.closeOnClickOutside, closeOnClickOutside = _d === void 0 ? true : _d, _e = props.closeOnEscape, closeOnEscape = _e === void 0 ? true : _e, _f = props.desktopOnly, desktopOnly = _f === void 0 ? false : _f;
|
|
1337
1338
|
var scrollLockId = useState(generateUID)[0];
|
|
1338
|
-
var
|
|
1339
|
+
var _g = useState(null), showDropArea = _g[0], setShowDropArea = _g[1];
|
|
1339
1340
|
var dropAreaWrapperRef = useRef(null);
|
|
1340
1341
|
var dropAreaArrowRef = useRef(null);
|
|
1341
1342
|
var dropAreaContainerRef = useRef(null);
|
|
@@ -1521,7 +1522,9 @@ var DropArea = function (props) {
|
|
|
1521
1522
|
};
|
|
1522
1523
|
}, [props.show]);
|
|
1523
1524
|
return (React.createElement(React.Fragment, null, showDropArea &&
|
|
1524
|
-
createPortal(React.createElement("div", { ref: dropAreaWrapperRef, className: cn("dough-drop-area-wrapper"
|
|
1525
|
+
createPortal(React.createElement("div", { ref: dropAreaWrapperRef, className: cn("dough-drop-area-wrapper", (_a = {},
|
|
1526
|
+
_a["desktop-only"] = desktopOnly,
|
|
1527
|
+
_a)), onClick: function (e) {
|
|
1525
1528
|
if (e.target &&
|
|
1526
1529
|
e.target.classList.contains("dough-drop-area-wrapper")) {
|
|
1527
1530
|
cancelEvent(e);
|
|
@@ -1539,7 +1542,7 @@ var css_248z$c = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium
|
|
|
1539
1542
|
styleInject(css_248z$c);
|
|
1540
1543
|
|
|
1541
1544
|
var DropMenu = forwardRef(function (_a, ref) {
|
|
1542
|
-
var _b = _a.alignIconRight, alignIconRight = _b === void 0 ? false : _b, _c = _a.color, color = _c === void 0 ? Colors.TRANSPARENT : _c, _d = _a.closeOnClickOutside, closeOnClickOutside = _d === void 0 ? true : _d, _e = _a.closeOnEscape, closeOnEscape = _e === void 0 ? true : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.showCaret, showCaret = _g === void 0 ? true : _g, _h = _a.rightShift, rightShift = _h === void 0 ? 0 : _h, _j = _a.topShift, topShift = _j === void 0 ? 0 : _j, _k = _a.shadow, shadow = _k === void 0 ? false : _k, _l = _a.show, show = _l === void 0 ? false : _l, _m = _a.rounded, rounded = _m === void 0 ? true : _m, _o = _a.icon, icon = _o === void 0 ? React.createElement(EllipsisVIcon, null) : _o, _p = _a.size, size = _p === void 0 ? Sizes.SMALL : _p, _q = _a.innerButtonSize, innerButtonSize = _q === void 0 ? Sizes.NORMAL : _q, ButtonComponent = _a.ButtonComponent, className = _a.className, onOpen = _a.onOpen, onClose = _a.onClose, children = _a.children, asInvisibleLine = _a.asInvisibleLine, alignFromRight = _a.alignFromRight, alignToCenter = _a.alignToCenter, dataAttributes = _a.dataAttributes, padding = _a.padding, label = _a.label, fullWidth = _a.fullWidth, strictToReferenceWidth = _a.strictToReferenceWidth, buttonClassName = _a.buttonClassName, overlaySelector = _a.overlaySelector, overlayWidth = _a.overlayWidth, customClickHandler = _a.customClickHandler, alwaysTop = _a.alwaysTop;
|
|
1545
|
+
var _b = _a.alignIconRight, alignIconRight = _b === void 0 ? false : _b, _c = _a.color, color = _c === void 0 ? Colors.TRANSPARENT : _c, _d = _a.closeOnClickOutside, closeOnClickOutside = _d === void 0 ? true : _d, _e = _a.closeOnEscape, closeOnEscape = _e === void 0 ? true : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.showCaret, showCaret = _g === void 0 ? true : _g, _h = _a.rightShift, rightShift = _h === void 0 ? 0 : _h, _j = _a.topShift, topShift = _j === void 0 ? 0 : _j, _k = _a.shadow, shadow = _k === void 0 ? false : _k, _l = _a.show, show = _l === void 0 ? false : _l, _m = _a.rounded, rounded = _m === void 0 ? true : _m, _o = _a.icon, icon = _o === void 0 ? React.createElement(EllipsisVIcon, null) : _o, _p = _a.size, size = _p === void 0 ? Sizes.SMALL : _p, _q = _a.innerButtonSize, innerButtonSize = _q === void 0 ? Sizes.NORMAL : _q, ButtonComponent = _a.ButtonComponent, className = _a.className, onOpen = _a.onOpen, onClose = _a.onClose, children = _a.children, asInvisibleLine = _a.asInvisibleLine, alignFromRight = _a.alignFromRight, alignToCenter = _a.alignToCenter, dataAttributes = _a.dataAttributes, padding = _a.padding, label = _a.label, fullWidth = _a.fullWidth, strictToReferenceWidth = _a.strictToReferenceWidth, buttonClassName = _a.buttonClassName, overlaySelector = _a.overlaySelector, overlayWidth = _a.overlayWidth, customClickHandler = _a.customClickHandler, alwaysTop = _a.alwaysTop, desktopOnly = _a.desktopOnly;
|
|
1543
1546
|
var componentRef = useRef(null);
|
|
1544
1547
|
var _r = useState(false), showDropArea = _r[0], setShowDropArea = _r[1];
|
|
1545
1548
|
var openDropArea = function (e) {
|
|
@@ -1637,7 +1640,7 @@ var DropMenu = forwardRef(function (_a, ref) {
|
|
|
1637
1640
|
"dough-dropmenu-full-width": fullWidth,
|
|
1638
1641
|
}), ref: componentRef }, dataAttributes),
|
|
1639
1642
|
asInvisibleLine !== true && renderButtonComponent(),
|
|
1640
|
-
React.createElement(DropArea, { overlaySelector: overlaySelector, rightShift: rightShift, topShift: topShift, alignFromRight: alignFromRight, alignToCenter: alignToCenter, closeOnClickOutside: closeOnClickOutside, closeOnEscape: closeOnEscape, onHide: closeDropArea, referenceElement: componentRef, show: showDropArea, showCaret: showCaret, strictToReferenceWidth: strictToReferenceWidth, alwaysTop: alwaysTop, width: overlayWidth || "auto" },
|
|
1643
|
+
React.createElement(DropArea, { overlaySelector: overlaySelector, rightShift: rightShift, topShift: topShift, alignFromRight: alignFromRight, alignToCenter: alignToCenter, closeOnClickOutside: closeOnClickOutside, closeOnEscape: closeOnEscape, onHide: closeDropArea, referenceElement: componentRef, show: showDropArea, showCaret: showCaret, strictToReferenceWidth: strictToReferenceWidth, alwaysTop: alwaysTop, desktopOnly: desktopOnly, width: overlayWidth || "auto" },
|
|
1641
1644
|
React.createElement(LayoutContainer, { className: cn("dough-drop-menu-buttons-container", className), layoutType: Direction.VERTICAL, dataAttributes: dataAttributes }, getButtons()))));
|
|
1642
1645
|
});
|
|
1643
1646
|
DropMenu.displayName = "DropMenu";
|
|
@@ -4611,14 +4614,20 @@ var Notification = function (props) {
|
|
|
4611
4614
|
};
|
|
4612
4615
|
Notification.displayName = "Notification";
|
|
4613
4616
|
|
|
4614
|
-
var css_248z$z = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-
|
|
4617
|
+
var css_248z$z = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-tab-item-selection-border {\n position: absolute;\n right: 0;\n left: 0;\n z-index: 5;\n width: auto;\n height: 4px;\n border-radius: 12px;\n transform: translate3d(0, 0, 0);\n opacity: 1;\n}\n.dough-tab-item-selection-border.dough-tabs-container-top-border {\n top: 0;\n}\n.dough-tab-item-selection-border:not(.dough-tabs-container-top-border) {\n bottom: 0;\n}\nbody:not(.no-transition) .dough-tab-item-selection-border {\n transition: all 750ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-tab-item-selection-border {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n\n.dough-tab-item-button {\n width: 100% !important;\n height: 100% !important;\n min-width: 40px;\n color: rgb(158, 158, 158);\n color: var(--dough-color-text-light);\n cursor: pointer;\n font-size: 0.75rem;\n font-weight: 700;\n font-family: \"Roboto\", sans-serif;\n line-height: 1.5;\n}\n.dough-tab-item-button .dough-box {\n max-height: 60px;\n min-height: 60px;\n}\n.dough-tab-item-button.dough-item-small .dough-box {\n max-height: 40px;\n min-height: 40px;\n}\n\n.dough-tab-item {\n padding: 0 !important;\n overflow: hidden;\n position: relative;\n height: 100%;\n}\nbody:not(.no-transition) .dough-tab-item {\n transition: all 750ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-tab-item {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-tab-item.dough-tab-item-stretch-tabs {\n flex-grow: 1;\n}\n.dough-tab-item .dough-tab-item-selection-border {\n opacity: 0;\n}\n.dough-tab-item:hover .dough-tab-item-button {\n color: rgb(68, 68, 68);\n color: var(--dough-color-text-dark);\n}\n.dough-tab-item:hover .dough-tab-item-selection-border.dough-tab-item-selection-border-hover {\n opacity: 0.25;\n}\n.dough-tab-item.active .dough-tab-item-button {\n color: rgb(68, 68, 68);\n color: var(--dough-color-text-dark);\n}\n\n.dough-tabs-container {\n position: relative;\n flex-flow: row nowrap !important;\n align-items: stretch !important;\n width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n margin-bottom: -1px;\n}\n.dough-tabs-container.dough-tabs-container-divider {\n border-top: 1px solid rgb(230, 230, 230);\n}\n.dough-tabs-container.dough-tabs-container-divider.dough-tabs-container-top-border {\n border-top: 1px solid var(--dough-color-gray-5);\n}\n.dough-tabs-container.dough-tabs-container-divider.dough-tabs-container-bottom-border {\n border-bottom: 1px solid var(--dough-color-gray-5);\n}\n.dough-tabs-container.dough-tabs-container-compact .dough-tab-item + .dough-tab-item {\n margin-left: 16px;\n}\n.dough-tabs-container.dough-tabs-container-compact .dough-tab-item-button {\n padding-bottom: 16px;\n}\n.dough-tabs-container.dough-tabs-container-compact .dough-tab-item-button .dough-box {\n max-height: unset;\n min-height: 0;\n}\n.dough-tabs-container.dough-tabs-container-compact.dough-tabs-container-top-border .dough-tab-item.dough-tab-item-compact .dough-tab-item-button {\n padding-bottom: 0;\n padding-top: 16px;\n}";
|
|
4615
4618
|
styleInject(css_248z$z);
|
|
4616
4619
|
|
|
4617
4620
|
var simplifyKey = function (key) {
|
|
4618
4621
|
return key ? key.slice(key.indexOf("$") + 1) : key;
|
|
4619
4622
|
};
|
|
4620
4623
|
|
|
4624
|
+
var Border = function (props) { return (React.createElement("span", { className: cn("dough-tab-item-selection-border", props.color ? props.color : Colors.HEADER, {
|
|
4625
|
+
"dough-tab-item-selection-border-hover": props.withBorderOnHover,
|
|
4626
|
+
"dough-tabs-container-top-border": props.borderOnTop,
|
|
4627
|
+
}), style: props.style })); };
|
|
4621
4628
|
var TabsContainer = function (props) {
|
|
4629
|
+
var tabRefs = useRef({});
|
|
4630
|
+
var _a = useState(undefined), selectedIndex = _a[0], setSelectedIndex = _a[1];
|
|
4622
4631
|
var handleChange = function (val) {
|
|
4623
4632
|
if (val && val !== props.value) {
|
|
4624
4633
|
if (props.onChange) {
|
|
@@ -4626,34 +4635,52 @@ var TabsContainer = function (props) {
|
|
|
4626
4635
|
}
|
|
4627
4636
|
}
|
|
4628
4637
|
};
|
|
4638
|
+
var currentTab = selectedIndex === undefined
|
|
4639
|
+
? undefined
|
|
4640
|
+
: tabRefs.current[selectedIndex];
|
|
4641
|
+
var underlineWidth = currentTab === null || currentTab === void 0 ? void 0 : currentTab.clientWidth;
|
|
4642
|
+
var underlineLeftPosition = currentTab === null || currentTab === void 0 ? void 0 : currentTab.offsetLeft;
|
|
4629
4643
|
return (React.createElement(Box, { display: BoxDisplay.FLEX, direction: BoxDirection.ROW, className: cn("dough-tabs-container", props.className, {
|
|
4630
4644
|
"dough-tabs-container-divider": props.showDivider !== false,
|
|
4631
4645
|
"dough-tabs-container-top-border": props.borderOnTop,
|
|
4632
|
-
"dough-tabs-container-bottom-border": props.borderOnTop !==
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
"dough-
|
|
4643
|
-
})
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4646
|
+
"dough-tabs-container-bottom-border": props.borderOnTop !== true,
|
|
4647
|
+
"dough-tabs-container-compact": props.compact,
|
|
4648
|
+
}), padding: props.padding, dataAttributes: props.dataAttributes },
|
|
4649
|
+
props.children &&
|
|
4650
|
+
Children.toArray(props.children).map(function (child, index) {
|
|
4651
|
+
var simplifiedKey = simplifyKey(child.key);
|
|
4652
|
+
var isActive = props.value === simplifiedKey;
|
|
4653
|
+
return (React.createElement(Box, { className: cn("dough-tab-item", {
|
|
4654
|
+
active: props.value === simplifiedKey,
|
|
4655
|
+
"dough-tab-item-small": props.small || props.iconOnly,
|
|
4656
|
+
"dough-tab-item-stretch-tabs": props.stretchTabs,
|
|
4657
|
+
}), ref: function (ref) {
|
|
4658
|
+
tabRefs.current[index] = ref;
|
|
4659
|
+
if (isActive) {
|
|
4660
|
+
setSelectedIndex(index);
|
|
4661
|
+
}
|
|
4662
|
+
}, key: "tab-" + simplifiedKey + "-wrapper" },
|
|
4663
|
+
React.createElement(Border, { borderOnTop: props.borderOnTop, color: props.color, withBorderOnHover: props.withBorderOnHover }),
|
|
4664
|
+
React.createElement("div", { className: cn("dough-tab-item-button", {
|
|
4665
|
+
"dough-tab-item-button-disabled": child.props.disabled,
|
|
4666
|
+
}), onClick: function (e) {
|
|
4667
|
+
cancelEvent(e);
|
|
4668
|
+
hideLastDoughTooltip();
|
|
4669
|
+
setSelectedIndex(index);
|
|
4670
|
+
handleChange(simplifiedKey);
|
|
4671
|
+
} },
|
|
4672
|
+
React.createElement(Box, { height: "100%", display: BoxDisplay.FLEX, justifyContent: BoxJustifyContent.CENTER, alignItems: BoxAlign.CENTER, padding: props.iconOnly
|
|
4673
|
+
? Sizes.XS
|
|
4674
|
+
: props.small
|
|
4675
|
+
? Sizes.SMALL
|
|
4676
|
+
: props.compact
|
|
4677
|
+
? undefined
|
|
4678
|
+
: Sizes.NORMAL }, child))));
|
|
4679
|
+
}),
|
|
4680
|
+
selectedIndex !== undefined && (React.createElement(Border, { borderOnTop: props.borderOnTop, color: props.color, withBorderOnHover: props.withBorderOnHover, style: {
|
|
4681
|
+
width: underlineWidth || 0,
|
|
4682
|
+
left: underlineLeftPosition,
|
|
4683
|
+
} }))));
|
|
4657
4684
|
};
|
|
4658
4685
|
TabsContainer.displayName = "TabsContainer";
|
|
4659
4686
|
|
package/dist/index.js
CHANGED
|
@@ -1311,16 +1311,17 @@ var generateUID = function () {
|
|
|
1311
1311
|
("000" + secondPart.toString(36)).slice(-3));
|
|
1312
1312
|
};
|
|
1313
1313
|
|
|
1314
|
-
var css_248z$b = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-drop-area-wrapper {\n position: fixed;\n background-color: rgba(0, 0, 0, 0);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n width: auto;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n opacity: 0;\n transform-origin: center center;\n font-family: \"Roboto\", sans-serif;\n}\nbody:not(.no-transition) .dough-drop-area-wrapper {\n transition: opacity 350ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-container {\n pointer-events: fill;\n max-height: calc(80vh - 16px);\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n box-sizing: border-box;\n border-radius: 12px;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.1), 0px 1px 4px 0px rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow {\n pointer-events: none;\n position: absolute;\n z-index: 50;\n width: 32px !important;\n height: 16px !important;\n margin-top: -16px;\n overflow: hidden;\n min-width: initial !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow:before {\n content: \"\";\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n position: absolute;\n top: 8px;\n left: 4px;\n z-index: 10;\n width: 16px;\n height: 16px;\n transform: translate3d(0, 0, 0) rotateZ(45deg);\n box-shadow: 0 24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up {\n margin-top: initial;\n margin-bottom: -16px;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up:before {\n top: -8px;\n box-shadow: 0 -24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow,\n.dough-drop-area-wrapper > .dough-drop-area-container {\n transform: translate3d(0, -4px, 0);\n}\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: transform 250ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper.visible {\n opacity: 1;\n}\n.dough-drop-area-wrapper.visible > .dough-drop-area-arrow,\n.dough-drop-area-wrapper.visible > .dough-drop-area-container {\n transform: translate3d(0, 0, 0) !important;\n}\n\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper.visible {\n pointer-events: all;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper > .dough-drop-area-arrow {\n display: none !important;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper.visible {\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n@media only screen and (max-width: 576px) {\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper.visible {\n pointer-events: all;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper > .dough-drop-area-arrow {\n display: none !important;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper.visible {\n background-color: rgba(0, 0, 0, 0.4);\n }\n}";
|
|
1314
|
+
var css_248z$b = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-drop-area-wrapper {\n position: fixed;\n background-color: rgba(0, 0, 0, 0);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n width: auto;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n opacity: 0;\n transform-origin: center center;\n font-family: \"Roboto\", sans-serif;\n}\nbody:not(.no-transition) .dough-drop-area-wrapper {\n transition: opacity 350ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-container {\n pointer-events: fill;\n max-height: calc(80vh - 16px);\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n box-sizing: border-box;\n border-radius: 12px;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.1), 0px 1px 4px 0px rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow {\n pointer-events: none;\n position: absolute;\n z-index: 50;\n width: 32px !important;\n height: 16px !important;\n margin-top: -16px;\n overflow: hidden;\n min-width: initial !important;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow:before {\n content: \"\";\n background-color: rgb(255, 255, 255);\n background-color: var(--dough-color-theme);\n position: absolute;\n top: 8px;\n left: 4px;\n z-index: 10;\n width: 16px;\n height: 16px;\n transform: translate3d(0, 0, 0) rotateZ(45deg);\n box-shadow: 0 24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up {\n margin-top: initial;\n margin-bottom: -16px;\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow.to-up:before {\n top: -8px;\n box-shadow: 0 -24px 10px 0 rgba(0, 0, 0, 0.07), 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n}\n.dough-drop-area-wrapper > .dough-drop-area-arrow,\n.dough-drop-area-wrapper > .dough-drop-area-container {\n transform: translate3d(0, -4px, 0);\n}\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody:not(.no-transition) .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: transform 250ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-arrow,\nbody.no-transition .dough-drop-area-wrapper > .dough-drop-area-container {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-drop-area-wrapper.visible {\n opacity: 1;\n}\n.dough-drop-area-wrapper.visible > .dough-drop-area-arrow,\n.dough-drop-area-wrapper.visible > .dough-drop-area-container {\n transform: translate3d(0, 0, 0) !important;\n}\n\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only).visible {\n pointer-events: all;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-arrow {\n display: none !important;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n}\nbody:not(.dough-no-viewport-control) .dough-max-viewport-size-small .dough-drop-area-wrapper:not(.desktop-only).visible {\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n@media only screen and (max-width: 576px) {\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only).visible {\n pointer-events: all;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-arrow {\n display: none !important;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only) > .dough-drop-area-container {\n position: absolute;\n top: initial !important;\n bottom: 0 !important;\n left: 0 !important;\n z-index: 2;\n width: 100% !important;\n height: auto !important;\n min-height: 1vh !important;\n max-height: 85vh !important;\n box-shadow: 0 -2px 20px 0 rgba(0, 0, 0, 0.1);\n transform: translate3d(0, 20vh, 0);\n border-radius: 0;\n }\n body:not(.dough-no-viewport-control) .dough-drop-area-wrapper:not(.desktop-only).visible {\n background-color: rgba(0, 0, 0, 0.4);\n }\n}";
|
|
1315
1315
|
styleInject(css_248z$b);
|
|
1316
1316
|
|
|
1317
1317
|
var TOP_MARGIN = 4;
|
|
1318
1318
|
var TOUP = "to-up";
|
|
1319
1319
|
var TODOWN = "to-down";
|
|
1320
1320
|
var DropArea = function (props) {
|
|
1321
|
-
var _a
|
|
1321
|
+
var _a;
|
|
1322
|
+
var _b = props.rightShift, rightShift = _b === void 0 ? 0 : _b, _c = props.topShift, topShift = _c === void 0 ? 0 : _c, _d = props.closeOnClickOutside, closeOnClickOutside = _d === void 0 ? true : _d, _e = props.closeOnEscape, closeOnEscape = _e === void 0 ? true : _e, _f = props.desktopOnly, desktopOnly = _f === void 0 ? false : _f;
|
|
1322
1323
|
var scrollLockId = React.useState(generateUID)[0];
|
|
1323
|
-
var
|
|
1324
|
+
var _g = React.useState(null), showDropArea = _g[0], setShowDropArea = _g[1];
|
|
1324
1325
|
var dropAreaWrapperRef = React.useRef(null);
|
|
1325
1326
|
var dropAreaArrowRef = React.useRef(null);
|
|
1326
1327
|
var dropAreaContainerRef = React.useRef(null);
|
|
@@ -1506,7 +1507,9 @@ var DropArea = function (props) {
|
|
|
1506
1507
|
};
|
|
1507
1508
|
}, [props.show]);
|
|
1508
1509
|
return (React__default.createElement(React__default.Fragment, null, showDropArea &&
|
|
1509
|
-
reactDom.createPortal(React__default.createElement("div", { ref: dropAreaWrapperRef, className: cn("dough-drop-area-wrapper"
|
|
1510
|
+
reactDom.createPortal(React__default.createElement("div", { ref: dropAreaWrapperRef, className: cn("dough-drop-area-wrapper", (_a = {},
|
|
1511
|
+
_a["desktop-only"] = desktopOnly,
|
|
1512
|
+
_a)), onClick: function (e) {
|
|
1510
1513
|
if (e.target &&
|
|
1511
1514
|
e.target.classList.contains("dough-drop-area-wrapper")) {
|
|
1512
1515
|
cancelEvent(e);
|
|
@@ -1524,7 +1527,7 @@ var css_248z$c = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium
|
|
|
1524
1527
|
styleInject(css_248z$c);
|
|
1525
1528
|
|
|
1526
1529
|
var DropMenu = React.forwardRef(function (_a, ref) {
|
|
1527
|
-
var _b = _a.alignIconRight, alignIconRight = _b === void 0 ? false : _b, _c = _a.color, color = _c === void 0 ? exports.Colors.TRANSPARENT : _c, _d = _a.closeOnClickOutside, closeOnClickOutside = _d === void 0 ? true : _d, _e = _a.closeOnEscape, closeOnEscape = _e === void 0 ? true : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.showCaret, showCaret = _g === void 0 ? true : _g, _h = _a.rightShift, rightShift = _h === void 0 ? 0 : _h, _j = _a.topShift, topShift = _j === void 0 ? 0 : _j, _k = _a.shadow, shadow = _k === void 0 ? false : _k, _l = _a.show, show = _l === void 0 ? false : _l, _m = _a.rounded, rounded = _m === void 0 ? true : _m, _o = _a.icon, icon = _o === void 0 ? React__default.createElement(EllipsisVIcon, null) : _o, _p = _a.size, size = _p === void 0 ? exports.Sizes.SMALL : _p, _q = _a.innerButtonSize, innerButtonSize = _q === void 0 ? exports.Sizes.NORMAL : _q, ButtonComponent = _a.ButtonComponent, className = _a.className, onOpen = _a.onOpen, onClose = _a.onClose, children = _a.children, asInvisibleLine = _a.asInvisibleLine, alignFromRight = _a.alignFromRight, alignToCenter = _a.alignToCenter, dataAttributes = _a.dataAttributes, padding = _a.padding, label = _a.label, fullWidth = _a.fullWidth, strictToReferenceWidth = _a.strictToReferenceWidth, buttonClassName = _a.buttonClassName, overlaySelector = _a.overlaySelector, overlayWidth = _a.overlayWidth, customClickHandler = _a.customClickHandler, alwaysTop = _a.alwaysTop;
|
|
1530
|
+
var _b = _a.alignIconRight, alignIconRight = _b === void 0 ? false : _b, _c = _a.color, color = _c === void 0 ? exports.Colors.TRANSPARENT : _c, _d = _a.closeOnClickOutside, closeOnClickOutside = _d === void 0 ? true : _d, _e = _a.closeOnEscape, closeOnEscape = _e === void 0 ? true : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.showCaret, showCaret = _g === void 0 ? true : _g, _h = _a.rightShift, rightShift = _h === void 0 ? 0 : _h, _j = _a.topShift, topShift = _j === void 0 ? 0 : _j, _k = _a.shadow, shadow = _k === void 0 ? false : _k, _l = _a.show, show = _l === void 0 ? false : _l, _m = _a.rounded, rounded = _m === void 0 ? true : _m, _o = _a.icon, icon = _o === void 0 ? React__default.createElement(EllipsisVIcon, null) : _o, _p = _a.size, size = _p === void 0 ? exports.Sizes.SMALL : _p, _q = _a.innerButtonSize, innerButtonSize = _q === void 0 ? exports.Sizes.NORMAL : _q, ButtonComponent = _a.ButtonComponent, className = _a.className, onOpen = _a.onOpen, onClose = _a.onClose, children = _a.children, asInvisibleLine = _a.asInvisibleLine, alignFromRight = _a.alignFromRight, alignToCenter = _a.alignToCenter, dataAttributes = _a.dataAttributes, padding = _a.padding, label = _a.label, fullWidth = _a.fullWidth, strictToReferenceWidth = _a.strictToReferenceWidth, buttonClassName = _a.buttonClassName, overlaySelector = _a.overlaySelector, overlayWidth = _a.overlayWidth, customClickHandler = _a.customClickHandler, alwaysTop = _a.alwaysTop, desktopOnly = _a.desktopOnly;
|
|
1528
1531
|
var componentRef = React.useRef(null);
|
|
1529
1532
|
var _r = React.useState(false), showDropArea = _r[0], setShowDropArea = _r[1];
|
|
1530
1533
|
var openDropArea = function (e) {
|
|
@@ -1622,7 +1625,7 @@ var DropMenu = React.forwardRef(function (_a, ref) {
|
|
|
1622
1625
|
"dough-dropmenu-full-width": fullWidth,
|
|
1623
1626
|
}), ref: componentRef }, dataAttributes),
|
|
1624
1627
|
asInvisibleLine !== true && renderButtonComponent(),
|
|
1625
|
-
React__default.createElement(DropArea, { overlaySelector: overlaySelector, rightShift: rightShift, topShift: topShift, alignFromRight: alignFromRight, alignToCenter: alignToCenter, closeOnClickOutside: closeOnClickOutside, closeOnEscape: closeOnEscape, onHide: closeDropArea, referenceElement: componentRef, show: showDropArea, showCaret: showCaret, strictToReferenceWidth: strictToReferenceWidth, alwaysTop: alwaysTop, width: overlayWidth || "auto" },
|
|
1628
|
+
React__default.createElement(DropArea, { overlaySelector: overlaySelector, rightShift: rightShift, topShift: topShift, alignFromRight: alignFromRight, alignToCenter: alignToCenter, closeOnClickOutside: closeOnClickOutside, closeOnEscape: closeOnEscape, onHide: closeDropArea, referenceElement: componentRef, show: showDropArea, showCaret: showCaret, strictToReferenceWidth: strictToReferenceWidth, alwaysTop: alwaysTop, desktopOnly: desktopOnly, width: overlayWidth || "auto" },
|
|
1626
1629
|
React__default.createElement(LayoutContainer, { className: cn("dough-drop-menu-buttons-container", className), layoutType: exports.Direction.VERTICAL, dataAttributes: dataAttributes }, getButtons()))));
|
|
1627
1630
|
});
|
|
1628
1631
|
DropMenu.displayName = "DropMenu";
|
|
@@ -4594,14 +4597,20 @@ var Notification = function (props) {
|
|
|
4594
4597
|
};
|
|
4595
4598
|
Notification.displayName = "Notification";
|
|
4596
4599
|
|
|
4597
|
-
var css_248z$z = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-
|
|
4600
|
+
var css_248z$z = "/* COLORS */\n/* Typography*/\n/*Dennis should provide medium font size*/\n.dough-tab-item-selection-border {\n position: absolute;\n right: 0;\n left: 0;\n z-index: 5;\n width: auto;\n height: 4px;\n border-radius: 12px;\n transform: translate3d(0, 0, 0);\n opacity: 1;\n}\n.dough-tab-item-selection-border.dough-tabs-container-top-border {\n top: 0;\n}\n.dough-tab-item-selection-border:not(.dough-tabs-container-top-border) {\n bottom: 0;\n}\nbody:not(.no-transition) .dough-tab-item-selection-border {\n transition: all 750ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-tab-item-selection-border {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n\n.dough-tab-item-button {\n width: 100% !important;\n height: 100% !important;\n min-width: 40px;\n color: rgb(158, 158, 158);\n color: var(--dough-color-text-light);\n cursor: pointer;\n font-size: 0.75rem;\n font-weight: 700;\n font-family: \"Roboto\", sans-serif;\n line-height: 1.5;\n}\n.dough-tab-item-button .dough-box {\n max-height: 60px;\n min-height: 60px;\n}\n.dough-tab-item-button.dough-item-small .dough-box {\n max-height: 40px;\n min-height: 40px;\n}\n\n.dough-tab-item {\n padding: 0 !important;\n overflow: hidden;\n position: relative;\n height: 100%;\n}\nbody:not(.no-transition) .dough-tab-item {\n transition: all 750ms cubic-bezier(0.25, 1, 0, 1);\n}\nbody.no-transition .dough-tab-item {\n transition: none 0ms linear !important;\n transition-delay: 0ms !important;\n}\n.dough-tab-item.dough-tab-item-stretch-tabs {\n flex-grow: 1;\n}\n.dough-tab-item .dough-tab-item-selection-border {\n opacity: 0;\n}\n.dough-tab-item:hover .dough-tab-item-button {\n color: rgb(68, 68, 68);\n color: var(--dough-color-text-dark);\n}\n.dough-tab-item:hover .dough-tab-item-selection-border.dough-tab-item-selection-border-hover {\n opacity: 0.25;\n}\n.dough-tab-item.active .dough-tab-item-button {\n color: rgb(68, 68, 68);\n color: var(--dough-color-text-dark);\n}\n\n.dough-tabs-container {\n position: relative;\n flex-flow: row nowrap !important;\n align-items: stretch !important;\n width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n margin-bottom: -1px;\n}\n.dough-tabs-container.dough-tabs-container-divider {\n border-top: 1px solid rgb(230, 230, 230);\n}\n.dough-tabs-container.dough-tabs-container-divider.dough-tabs-container-top-border {\n border-top: 1px solid var(--dough-color-gray-5);\n}\n.dough-tabs-container.dough-tabs-container-divider.dough-tabs-container-bottom-border {\n border-bottom: 1px solid var(--dough-color-gray-5);\n}\n.dough-tabs-container.dough-tabs-container-compact .dough-tab-item + .dough-tab-item {\n margin-left: 16px;\n}\n.dough-tabs-container.dough-tabs-container-compact .dough-tab-item-button {\n padding-bottom: 16px;\n}\n.dough-tabs-container.dough-tabs-container-compact .dough-tab-item-button .dough-box {\n max-height: unset;\n min-height: 0;\n}\n.dough-tabs-container.dough-tabs-container-compact.dough-tabs-container-top-border .dough-tab-item.dough-tab-item-compact .dough-tab-item-button {\n padding-bottom: 0;\n padding-top: 16px;\n}";
|
|
4598
4601
|
styleInject(css_248z$z);
|
|
4599
4602
|
|
|
4600
4603
|
var simplifyKey = function (key) {
|
|
4601
4604
|
return key ? key.slice(key.indexOf("$") + 1) : key;
|
|
4602
4605
|
};
|
|
4603
4606
|
|
|
4607
|
+
var Border = function (props) { return (React__default.createElement("span", { className: cn("dough-tab-item-selection-border", props.color ? props.color : exports.Colors.HEADER, {
|
|
4608
|
+
"dough-tab-item-selection-border-hover": props.withBorderOnHover,
|
|
4609
|
+
"dough-tabs-container-top-border": props.borderOnTop,
|
|
4610
|
+
}), style: props.style })); };
|
|
4604
4611
|
var TabsContainer = function (props) {
|
|
4612
|
+
var tabRefs = React.useRef({});
|
|
4613
|
+
var _a = React.useState(undefined), selectedIndex = _a[0], setSelectedIndex = _a[1];
|
|
4605
4614
|
var handleChange = function (val) {
|
|
4606
4615
|
if (val && val !== props.value) {
|
|
4607
4616
|
if (props.onChange) {
|
|
@@ -4609,34 +4618,52 @@ var TabsContainer = function (props) {
|
|
|
4609
4618
|
}
|
|
4610
4619
|
}
|
|
4611
4620
|
};
|
|
4621
|
+
var currentTab = selectedIndex === undefined
|
|
4622
|
+
? undefined
|
|
4623
|
+
: tabRefs.current[selectedIndex];
|
|
4624
|
+
var underlineWidth = currentTab === null || currentTab === void 0 ? void 0 : currentTab.clientWidth;
|
|
4625
|
+
var underlineLeftPosition = currentTab === null || currentTab === void 0 ? void 0 : currentTab.offsetLeft;
|
|
4612
4626
|
return (React__default.createElement(Box, { display: exports.BoxDisplay.FLEX, direction: exports.BoxDirection.ROW, className: cn("dough-tabs-container", props.className, {
|
|
4613
4627
|
"dough-tabs-container-divider": props.showDivider !== false,
|
|
4614
4628
|
"dough-tabs-container-top-border": props.borderOnTop,
|
|
4615
|
-
"dough-tabs-container-bottom-border": props.borderOnTop !==
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
"dough-
|
|
4626
|
-
})
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4629
|
+
"dough-tabs-container-bottom-border": props.borderOnTop !== true,
|
|
4630
|
+
"dough-tabs-container-compact": props.compact,
|
|
4631
|
+
}), padding: props.padding, dataAttributes: props.dataAttributes },
|
|
4632
|
+
props.children &&
|
|
4633
|
+
React.Children.toArray(props.children).map(function (child, index) {
|
|
4634
|
+
var simplifiedKey = simplifyKey(child.key);
|
|
4635
|
+
var isActive = props.value === simplifiedKey;
|
|
4636
|
+
return (React__default.createElement(Box, { className: cn("dough-tab-item", {
|
|
4637
|
+
active: props.value === simplifiedKey,
|
|
4638
|
+
"dough-tab-item-small": props.small || props.iconOnly,
|
|
4639
|
+
"dough-tab-item-stretch-tabs": props.stretchTabs,
|
|
4640
|
+
}), ref: function (ref) {
|
|
4641
|
+
tabRefs.current[index] = ref;
|
|
4642
|
+
if (isActive) {
|
|
4643
|
+
setSelectedIndex(index);
|
|
4644
|
+
}
|
|
4645
|
+
}, key: "tab-" + simplifiedKey + "-wrapper" },
|
|
4646
|
+
React__default.createElement(Border, { borderOnTop: props.borderOnTop, color: props.color, withBorderOnHover: props.withBorderOnHover }),
|
|
4647
|
+
React__default.createElement("div", { className: cn("dough-tab-item-button", {
|
|
4648
|
+
"dough-tab-item-button-disabled": child.props.disabled,
|
|
4649
|
+
}), onClick: function (e) {
|
|
4650
|
+
cancelEvent(e);
|
|
4651
|
+
hideLastDoughTooltip();
|
|
4652
|
+
setSelectedIndex(index);
|
|
4653
|
+
handleChange(simplifiedKey);
|
|
4654
|
+
} },
|
|
4655
|
+
React__default.createElement(Box, { height: "100%", display: exports.BoxDisplay.FLEX, justifyContent: exports.BoxJustifyContent.CENTER, alignItems: exports.BoxAlign.CENTER, padding: props.iconOnly
|
|
4656
|
+
? exports.Sizes.XS
|
|
4657
|
+
: props.small
|
|
4658
|
+
? exports.Sizes.SMALL
|
|
4659
|
+
: props.compact
|
|
4660
|
+
? undefined
|
|
4661
|
+
: exports.Sizes.NORMAL }, child))));
|
|
4662
|
+
}),
|
|
4663
|
+
selectedIndex !== undefined && (React__default.createElement(Border, { borderOnTop: props.borderOnTop, color: props.color, withBorderOnHover: props.withBorderOnHover, style: {
|
|
4664
|
+
width: underlineWidth || 0,
|
|
4665
|
+
left: underlineLeftPosition,
|
|
4666
|
+
} }))));
|
|
4640
4667
|
};
|
|
4641
4668
|
TabsContainer.displayName = "TabsContainer";
|
|
4642
4669
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
declare const _default: import("@storybook/csf").ComponentAnnotations<import("@storybook/react").ReactFramework, import("./tabs").TabsContainerProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const Default: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, import("./tabs").TabsContainerProps>;
|
|
4
|
+
export declare const Compact: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, import("./tabs").TabsContainerProps>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speakapbv/dough-component-library",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.30.0",
|
|
4
4
|
"description": "DOUGH: Speakap React Component Library",
|
|
5
5
|
"author": "Speakap",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"module": "dist/index.es.js",
|
|
11
11
|
"jsnext:main": "dist/index.es.js",
|
|
12
12
|
"engines": {
|
|
13
|
-
"node": ">=
|
|
13
|
+
"node": ">=16.17.1",
|
|
14
14
|
"npm": ">=5"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|