bianic-ui 1.3.0-beta → 1.4.0-beta
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/cjs/index.js +177 -46
- package/dist/cjs/lib.css +1 -1
- package/dist/cjs/types/components/FileTree/index.d.ts +12 -0
- package/dist/cjs/types/components/Forms/SegmentButton/SegmentButtonItem.d.ts +2 -1
- package/dist/cjs/types/components/Forms/SegmentButton/config.d.ts +7 -1
- package/dist/cjs/types/components/Forms/TextInput/Simulation.d.ts +4 -7
- package/dist/cjs/types/components/Forms/TextInput/configs.d.ts +4 -0
- package/dist/cjs/types/components/Forms/TextInput/index.d.ts +6 -2
- package/dist/cjs/types/components/Menu/Example/BasicExample.d.ts +3 -0
- package/dist/cjs/types/components/Menu/Example/FilterExample.d.ts +9 -0
- package/dist/cjs/types/components/Menu/Example/NestedExample.d.ts +14 -0
- package/dist/cjs/types/components/Menu/MenuContainer.d.ts +15 -0
- package/dist/cjs/types/components/Menu/MenuItem.d.ts +18 -0
- package/dist/cjs/types/components/Menu/index.d.ts +3 -0
- package/dist/cjs/types/components/Modal/Modal.d.ts +1 -1
- package/dist/cjs/types/components/Tab/CardTab.d.ts +13 -0
- package/dist/cjs/types/components/Tab/CardTabConfig.d.ts +26 -0
- package/dist/cjs/types/components/Tab/CardTabDemo.d.ts +3 -0
- package/dist/cjs/types/components/Tab/Tab.d.ts +1 -13
- package/dist/cjs/types/components/Tab/index.d.ts +1 -0
- package/dist/cjs/types/components/Tooltip/PropsInterface.d.ts +9 -0
- package/dist/cjs/types/components/Tooltip/Simulation.d.ts +15 -0
- package/dist/cjs/types/components/Tooltip/index.d.ts +1 -7
- package/dist/cjs/types/components/index.d.ts +2 -0
- package/dist/cjs/types/stories/FileTree/FileTree.stories.d.ts +15 -0
- package/dist/cjs/types/stories/Form/TextInput/TextInput.stories.d.ts +6 -3
- package/dist/cjs/types/stories/{Form/TextInput/TextInputSimulation.stories.d.ts → Menu/BasicExample.stories.d.ts} +3 -4
- package/dist/{esm/types/stories/Form/TextInput/TextInputSimulation.stories.d.ts → cjs/types/stories/Menu/FilterExample.stories.d.ts} +3 -4
- package/dist/cjs/types/stories/Menu/MenuContainer.stories.d.ts +13 -0
- package/dist/cjs/types/stories/Menu/MenuItem.stories.d.ts +13 -0
- package/dist/cjs/types/stories/Menu/NestedExample.stories.d.ts +13 -0
- package/dist/cjs/types/stories/Modal/Modal.stories.d.ts +0 -1
- package/dist/cjs/types/stories/Modal/ModalDemo.stories.d.ts +0 -1
- package/dist/cjs/types/stories/Tab/CardTab.stories.d.ts +18 -0
- package/dist/cjs/types/stories/Tab/CardTabDemo.stories.d.ts +13 -0
- package/dist/cjs/types/stories/Tab/TabHead.stories.d.ts +0 -1
- package/dist/cjs/types/stories/Tooltip/Tooltip.stories.d.ts +2 -2
- package/dist/esm/index.js +176 -48
- package/dist/esm/lib.css +1 -1
- package/dist/esm/types/components/FileTree/index.d.ts +12 -0
- package/dist/esm/types/components/Forms/SegmentButton/SegmentButtonItem.d.ts +2 -1
- package/dist/esm/types/components/Forms/SegmentButton/config.d.ts +7 -1
- package/dist/esm/types/components/Forms/TextInput/Simulation.d.ts +4 -7
- package/dist/esm/types/components/Forms/TextInput/configs.d.ts +4 -0
- package/dist/esm/types/components/Forms/TextInput/index.d.ts +6 -2
- package/dist/esm/types/components/Menu/Example/BasicExample.d.ts +3 -0
- package/dist/esm/types/components/Menu/Example/FilterExample.d.ts +9 -0
- package/dist/esm/types/components/Menu/Example/NestedExample.d.ts +14 -0
- package/dist/esm/types/components/Menu/MenuContainer.d.ts +15 -0
- package/dist/esm/types/components/Menu/MenuItem.d.ts +18 -0
- package/dist/esm/types/components/Menu/index.d.ts +3 -0
- package/dist/esm/types/components/Modal/Modal.d.ts +1 -1
- package/dist/esm/types/components/Tab/CardTab.d.ts +13 -0
- package/dist/esm/types/components/Tab/CardTabConfig.d.ts +26 -0
- package/dist/esm/types/components/Tab/CardTabDemo.d.ts +3 -0
- package/dist/esm/types/components/Tab/Tab.d.ts +1 -13
- package/dist/esm/types/components/Tab/index.d.ts +1 -0
- package/dist/esm/types/components/Tooltip/PropsInterface.d.ts +9 -0
- package/dist/esm/types/components/Tooltip/Simulation.d.ts +15 -0
- package/dist/esm/types/components/Tooltip/index.d.ts +1 -7
- package/dist/esm/types/components/index.d.ts +2 -0
- package/dist/esm/types/stories/FileTree/FileTree.stories.d.ts +15 -0
- package/dist/esm/types/stories/Form/TextInput/TextInput.stories.d.ts +6 -3
- package/dist/esm/types/stories/Menu/BasicExample.stories.d.ts +13 -0
- package/dist/esm/types/stories/Menu/FilterExample.stories.d.ts +13 -0
- package/dist/esm/types/stories/Menu/MenuContainer.stories.d.ts +13 -0
- package/dist/esm/types/stories/Menu/MenuItem.stories.d.ts +13 -0
- package/dist/esm/types/stories/Menu/NestedExample.stories.d.ts +13 -0
- package/dist/esm/types/stories/Modal/Modal.stories.d.ts +0 -1
- package/dist/esm/types/stories/Modal/ModalDemo.stories.d.ts +0 -1
- package/dist/esm/types/stories/Tab/CardTab.stories.d.ts +18 -0
- package/dist/esm/types/stories/Tab/CardTabDemo.stories.d.ts +13 -0
- package/dist/esm/types/stories/Tab/TabHead.stories.d.ts +0 -1
- package/dist/esm/types/stories/Tooltip/Tooltip.stories.d.ts +2 -2
- package/dist/index.d.ts +125 -87
- package/package.json +1 -1
- package/src/font/Arial/arial.ttf +0 -0
- package/src/font/Arial/arialblack.ttf +0 -0
- package/src/font/Arial/arialbold.ttf +0 -0
- package/src/font/Arial/arialbolditalic.ttf +0 -0
- package/src/font/Arial/arialitalic.ttf +0 -0
- package/tailwind.config.js +1 -0
package/dist/cjs/index.js
CHANGED
|
@@ -1498,6 +1498,82 @@ Divider.defaultProps = {
|
|
|
1498
1498
|
classname: '',
|
|
1499
1499
|
};
|
|
1500
1500
|
|
|
1501
|
+
var FileTree = function (_a) {
|
|
1502
|
+
var data = _a.data, color = _a.color;
|
|
1503
|
+
return (React.createElement("div", { className: "file-tree" }, data.map(function (_a, index) {
|
|
1504
|
+
var label = _a.label, nodes = _a.nodes, props = __rest(_a, ["label", "nodes"]);
|
|
1505
|
+
return (React.createElement(TreeItem, __assign({ label: label, nodes: nodes, key: index, color: color }, props)));
|
|
1506
|
+
})));
|
|
1507
|
+
};
|
|
1508
|
+
var TreeItem = function (_a) {
|
|
1509
|
+
var label = _a.label, nodes = _a.nodes, color = _a.color, props = __rest(_a, ["label", "nodes", "color"]);
|
|
1510
|
+
var _b = React.useState(false), isExpand = _b[0], setIsExpand = _b[1];
|
|
1511
|
+
var _c = React.useState(false), isFocused = _c[0], setIsFocused = _c[1];
|
|
1512
|
+
var focusedIconColor = color
|
|
1513
|
+
? "text-bia-".concat(color)
|
|
1514
|
+
: 'text-bia-coolgrey-light-50';
|
|
1515
|
+
var foucusedBgColor = color ? "bg-bia-".concat(color) : 'bg-bia-coolgrey-light-50';
|
|
1516
|
+
var textClass = "flex items-center rounded-radius-sm px-[2px] cursor-pointer hover:bg-bia-coolgrey-light-90 focus:pointer-events-none ".concat(isFocused && foucusedBgColor);
|
|
1517
|
+
return (React.createElement("div", { className: "bianic-tree-item" },
|
|
1518
|
+
React.createElement("div", { className: "justify-left group flex items-center" },
|
|
1519
|
+
nodes && nodes.length > 0 ? (React.createElement("button", { className: "cursor-pointer", onClick: function (e) {
|
|
1520
|
+
setIsExpand(function (prev) { return !prev; });
|
|
1521
|
+
} },
|
|
1522
|
+
React.createElement(TbChevronRight, { className: "text-bia-coolgrey-light-50 ".concat(isFocused && focusedIconColor, " ").concat(isExpand && 'rotate-90'), size: 18 }))) : (React.createElement("div", { className: "aspect-square w-[18px]" })),
|
|
1523
|
+
React.createElement("button", __assign({ onFocus: function (e) {
|
|
1524
|
+
var _a;
|
|
1525
|
+
setIsFocused(true);
|
|
1526
|
+
(_a = props === null || props === void 0 ? void 0 : props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
1527
|
+
}, onBlur: function (e) {
|
|
1528
|
+
var _a;
|
|
1529
|
+
setIsFocused(false);
|
|
1530
|
+
(_a = props === null || props === void 0 ? void 0 : props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
1531
|
+
}, className: textClass }, props),
|
|
1532
|
+
React.createElement(Text, { variant: "small-text" },
|
|
1533
|
+
" ",
|
|
1534
|
+
label,
|
|
1535
|
+
" "))),
|
|
1536
|
+
isExpand && nodes && nodes.length > 0 && (React.createElement("div", { className: "ml-4" }, nodes.map(function (_a, index) {
|
|
1537
|
+
var label = _a.label, nodes = _a.nodes;
|
|
1538
|
+
return (React.createElement(TreeItem, { label: label, nodes: nodes, key: index, color: color }));
|
|
1539
|
+
})))));
|
|
1540
|
+
};
|
|
1541
|
+
|
|
1542
|
+
function MenuContainer(_a) {
|
|
1543
|
+
var _b = _a.isTopFlat, isTopFlat = _b === void 0 ? false : _b, children = _a.children, open = _a.open, _c = _a.onClose, onClose = _c === void 0 ? function () { } : _c, _d = _a.className, className = _d === void 0 ? '' : _d;
|
|
1544
|
+
var radiusClass = "rounded-b-radius-sm ".concat(!isTopFlat && 'rounded-t-radius-sm');
|
|
1545
|
+
return (open && (React.createElement(React.Fragment, null,
|
|
1546
|
+
React.createElement("div", { className: "fixed left-0 top-0 z-0 h-screen w-screen", onClick: function () { return onClose(); } }),
|
|
1547
|
+
React.createElement("div", { className: "w-fit shadow-[0px_3px_20px_0px_rgba(0,0,0,0.20)] ".concat(radiusClass, " ").concat(className) }, React.Children.map(children, function (child) {
|
|
1548
|
+
return React.isValidElement(child)
|
|
1549
|
+
? // Kirimkan handleItemClick sebagai props onClick ke setiap MenuItem
|
|
1550
|
+
React.cloneElement(child, { onClose: function () { return onClose(); } })
|
|
1551
|
+
: child;
|
|
1552
|
+
})))));
|
|
1553
|
+
}
|
|
1554
|
+
MenuContainer.defaultProps = {
|
|
1555
|
+
isTopFlat: false,
|
|
1556
|
+
};
|
|
1557
|
+
|
|
1558
|
+
function MenuItem(_a) {
|
|
1559
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, label = _a.label, _c = _a.onClick, onClick = _c === void 0 ? function () { } : _c, _d = _a.caption, caption = _d === void 0 ? undefined : _d, _e = _a.isChecked, isChecked = _e === void 0 ? undefined : _e, _f = _a.onClose, onClose = _f === void 0 ? function () { } : _f, children = _a.children, props = __rest(_a, ["className", "label", "onClick", "caption", "isChecked", "onClose", "children"]);
|
|
1560
|
+
var _g = React.useState(false), isHovered = _g[0], setIsHovered = _g[1];
|
|
1561
|
+
return (React.createElement("div", { className: "group/main relative cursor-pointer first:rounded-t-radius-sm first:pt-[6px] last:rounded-b-radius-sm last:pb-[6px] ".concat(!isHovered && 'z-10'), onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); } },
|
|
1562
|
+
React.createElement("div", __assign({ className: "relative z-10 flex items-center p-[5px] font-arial hover:bg-bia-blue-pastel ".concat(className, "}"), role: "button", tabIndex: 0, onClick: function (e) {
|
|
1563
|
+
onClick(e);
|
|
1564
|
+
}, onKeyDown: function () { } }, props),
|
|
1565
|
+
React.createElement("div", { className: "mr-[5px] aspect-square w-[14px]" }, isChecked !== undefined && isChecked && (React.createElement(TbCheck, { className: "text-primary-black", size: 14 }))),
|
|
1566
|
+
React.createElement("span", { className: "whitespace-nowrap text-[11px]" }, label),
|
|
1567
|
+
React.createElement("div", { className: "ml-auto flex items-center" },
|
|
1568
|
+
children && React.createElement(TbChevronRight, { className: "ml-[10px] text-bia-grey" }),
|
|
1569
|
+
children === undefined && caption && (React.createElement("span", { className: "ml-[30px] whitespace-nowrap text-[11px] text-bia-coolgrey" }, caption)))),
|
|
1570
|
+
children && (React.createElement(MenuContainer, { open: isHovered, onClose: onClose, className: "absolute right-0 top-0 translate-x-full bg-primary-white shadow-[0px_3px_20px_0px_rgba(0,0,0,0.20)] group-first/main:top-[6px]" }, children))));
|
|
1571
|
+
}
|
|
1572
|
+
MenuItem.defaultProps = {
|
|
1573
|
+
className: '',
|
|
1574
|
+
onClick: function () { },
|
|
1575
|
+
};
|
|
1576
|
+
|
|
1501
1577
|
var sizeConfig$a = {
|
|
1502
1578
|
md: {
|
|
1503
1579
|
fieldSize: 'text-size-base p-2.5 font-[350] h-10',
|
|
@@ -1527,6 +1603,10 @@ var styleConfig = {
|
|
|
1527
1603
|
fieldStyle: '',
|
|
1528
1604
|
iconStyle: 'pointer-events-none',
|
|
1529
1605
|
},
|
|
1606
|
+
'text-transparent': {
|
|
1607
|
+
fieldStyle: 'px-0 ',
|
|
1608
|
+
iconStyle: '',
|
|
1609
|
+
},
|
|
1530
1610
|
};
|
|
1531
1611
|
|
|
1532
1612
|
function ValidationIcon(_a) {
|
|
@@ -1550,15 +1630,22 @@ function PasswordIcon(_a) {
|
|
|
1550
1630
|
}
|
|
1551
1631
|
|
|
1552
1632
|
function TextInput(_a) {
|
|
1553
|
-
var descText = _a.descText, _b = _a.disabled, disabled = _b === void 0 ? false : _b, icon = _a.icon, _c = _a.id, id = _c === void 0 ? '' : _c, _d = _a.size, size = _d === void 0 ? 'md' : _d, _e = _a.isValid, isValid = _e === void 0 ? false : _e, label = _a.label, _f = _a.placeholder, placeholder = _f === void 0 ? '' : _f, _g = _a.readOnly, readOnly = _g === void 0 ? false : _g, _h = _a.required, required = _h === void 0 ? false : _h, _j = _a.variant, variant = _j === void 0 ? 'text' : _j, _k = _a.value, value = _k === void 0 ? '' : _k, _l = _a.onChange, onChange = _l === void 0 ? function () { } : _l, _m = _a.maxLength, maxLength = _m === void 0 ? undefined : _m, props = __rest(_a, ["descText", "disabled", "icon", "id", "size", "isValid", "label", "placeholder", "readOnly", "required", "variant", "value", "onChange", "maxLength"]);
|
|
1554
|
-
var
|
|
1555
|
-
var
|
|
1556
|
-
var
|
|
1633
|
+
var descText = _a.descText, _b = _a.disabled, disabled = _b === void 0 ? false : _b, icon = _a.icon, _c = _a.id, id = _c === void 0 ? '' : _c, _d = _a.size, size = _d === void 0 ? 'md' : _d, _e = _a.isValid, isValid = _e === void 0 ? false : _e, label = _a.label, _f = _a.placeholder, placeholder = _f === void 0 ? '' : _f, _g = _a.readOnly, readOnly = _g === void 0 ? false : _g, _h = _a.required, required = _h === void 0 ? false : _h, _j = _a.variant, variant = _j === void 0 ? 'text' : _j, _k = _a.value, value = _k === void 0 ? '' : _k, _l = _a.onChange, onChange = _l === void 0 ? function () { } : _l, _m = _a.maxLength, maxLength = _m === void 0 ? undefined : _m, _o = _a.inputClassName, inputClassName = _o === void 0 ? '' : _o, _p = _a.isFlatRight, isFlatRight = _p === void 0 ? false : _p, props = __rest(_a, ["descText", "disabled", "icon", "id", "size", "isValid", "label", "placeholder", "readOnly", "required", "variant", "value", "onChange", "maxLength", "inputClassName", "isFlatRight"]);
|
|
1634
|
+
var isTransparent = variant.includes('transparent');
|
|
1635
|
+
var _q = React.useState(false), isShow = _q[0], setIsShow = _q[1];
|
|
1636
|
+
var _r = styleConfig[variant], fieldStyle = _r.fieldStyle, iconStyle = _r.iconStyle;
|
|
1637
|
+
var _s = isTransparent
|
|
1638
|
+
? __assign(__assign({}, sizeConfig$a[size]), { iconPosition: "right-0 ", fieldSize: sizeConfig$a[size].fieldSize +
|
|
1639
|
+
" pe-[".concat(9 + sizeConfig$a[size].iconSize, "px]") }) : sizeConfig$a[size], iconSize = _s.iconSize, fieldSize = _s.fieldSize, iconPosition = _s.iconPosition;
|
|
1640
|
+
var borderStyle = isTransparent
|
|
1641
|
+
? 'border-transparent bg-transparent' // customize border rule for transparent variant
|
|
1642
|
+
: 'border border-bia-grey-dark-10 bg-primary-white';
|
|
1643
|
+
var iconSizing = iconSize ? "text-[".concat(iconSize, "px]") : 'text-[18px]';
|
|
1644
|
+
var remainWords = maxLength ? maxLength - (value ? value.length : 0) : 0;
|
|
1645
|
+
var isExistValidation = isValid !== null;
|
|
1557
1646
|
var typeVariant = variant;
|
|
1558
1647
|
if (variant === 'password')
|
|
1559
1648
|
typeVariant = isShow ? 'text' : 'password';
|
|
1560
|
-
var remainWords = maxLength ? maxLength - (value ? value.length : 0) : 0;
|
|
1561
|
-
var isExistValidation = isValid !== null;
|
|
1562
1649
|
var descColor = 'text-primary-cool';
|
|
1563
1650
|
if (!disabled && isExistValidation && isValid)
|
|
1564
1651
|
descColor = 'text-bia-green';
|
|
@@ -1577,13 +1664,14 @@ function TextInput(_a) {
|
|
|
1577
1664
|
if (variant === 'password') {
|
|
1578
1665
|
iconElement = (React.createElement(PasswordIcon, { isShow: isShow, showHandler: setIsShow, iconSize: iconSize, disabled: disabled }));
|
|
1579
1666
|
}
|
|
1667
|
+
var extendedInputClassName = "".concat(fieldStyle, " ").concat(fieldSize, " ").concat(bottomBorderColor, " ").concat(inputClassName, " ").concat(borderStyle, " ").concat(isFlatRight && 'rounded-r-none');
|
|
1580
1668
|
return (React.createElement("div", { className: "field-group flex w-full flex-col gap-y-2 text-bia-black" },
|
|
1581
1669
|
React.createElement("label", { htmlFor: id, className: "label text-xs font-semibold" },
|
|
1582
1670
|
label,
|
|
1583
1671
|
required && React.createElement("span", { className: "p-1 text-bia-red" }, "*")),
|
|
1584
1672
|
React.createElement("div", { className: "relative w-full" },
|
|
1585
|
-
React.createElement("input", __assign({ className: "field w-full rounded
|
|
1586
|
-
React.createElement("div", { className: "absolute inset-y-0 flex items-center pl-3 ".concat(iconStyle, " ").concat(iconPosition) }, iconElement)),
|
|
1673
|
+
React.createElement("input", __assign({ className: "field w-full rounded read-only:pointer-events-none read-only:border-bia-grey-light-50 hover:rounded-b-none focus:rounded-b-none focus-visible:outline-none disabled:border-bia-grey-dark-10 disabled:bg-bia-grey-light-80 disabled:text-bia-grey-active ".concat(extendedInputClassName), disabled: disabled, id: id, placeholder: placeholder || label, readOnly: readOnly, required: required, type: typeVariant, value: value, onChange: function (e) { return onChange(e); }, maxLength: maxLength }, props)),
|
|
1674
|
+
React.createElement("div", { className: "absolute inset-y-0 flex items-center pl-3 ".concat(iconStyle, " ").concat(iconPosition, " ").concat(iconSizing) }, iconElement)),
|
|
1587
1675
|
React.createElement("div", { className: "desc flex justify-between gap-1 text-xs ".concat(descColor) },
|
|
1588
1676
|
descText && React.createElement("span", null, descText),
|
|
1589
1677
|
maxLength && (React.createElement("span", null,
|
|
@@ -1605,6 +1693,8 @@ TextInput.defaultProps = {
|
|
|
1605
1693
|
variant: 'text',
|
|
1606
1694
|
value: '',
|
|
1607
1695
|
onChange: function () { },
|
|
1696
|
+
inputClassName: '',
|
|
1697
|
+
isFlatRight: false,
|
|
1608
1698
|
};
|
|
1609
1699
|
|
|
1610
1700
|
// Desc: Radio button size configuration
|
|
@@ -1815,7 +1905,7 @@ function SelectInput(_a) {
|
|
|
1815
1905
|
setIsOpen(false);
|
|
1816
1906
|
} }));
|
|
1817
1907
|
})))),
|
|
1818
|
-
React.createElement("span", { className: "desc mt-2 text-xs text-primary-cool" }, descText)));
|
|
1908
|
+
descText && (React.createElement("span", { className: "desc mt-2 text-xs text-primary-cool" }, descText))));
|
|
1819
1909
|
}
|
|
1820
1910
|
SelectInput.defaultProps = {
|
|
1821
1911
|
descText: '',
|
|
@@ -1935,16 +2025,27 @@ var roundedConfig = {
|
|
|
1935
2025
|
tn: 'first:rounded-l-radius-tn last:rounded-r-radius-tn',
|
|
1936
2026
|
};
|
|
1937
2027
|
var sizeConfig$2 = {
|
|
1938
|
-
lg: 'text-size-md leading-[23.94px] px-[13px] py-[10.5px]
|
|
1939
|
-
md: 'text-size-base leading-[21px] px-[11px] py-[9px]
|
|
1940
|
-
sm: 'text-size-sm leading-[15.96px] px-[7px] py-[5px]
|
|
1941
|
-
tn: 'text-size-sm leading-[15.96px] px-[4px] py-[2px]
|
|
2028
|
+
lg: 'text-size-md leading-[23.94px] px-[13px] py-[10.5px] ',
|
|
2029
|
+
md: 'text-size-base leading-[21px] px-[11px] py-[9px] ',
|
|
2030
|
+
sm: 'text-size-sm leading-[15.96px] px-[7px] py-[5px] ',
|
|
2031
|
+
tn: 'text-size-sm leading-[15.96px] px-[4px] py-[2px] ',
|
|
2032
|
+
};
|
|
2033
|
+
var minWidthConfig = {
|
|
2034
|
+
lg: 'min-w-[112px]',
|
|
2035
|
+
md: 'min-w-[96px]',
|
|
2036
|
+
sm: 'min-w-[72px]',
|
|
2037
|
+
tn: 'min-w-[64px]',
|
|
1942
2038
|
};
|
|
1943
2039
|
|
|
1944
2040
|
function SegmentButtonItem(_a) {
|
|
1945
|
-
var _b = _a.selected, selected = _b === void 0 ? false : _b, size = _a.size, children = _a.children, disabled = _a.disabled, onClick = _a.onClick;
|
|
2041
|
+
var _b = _a.selected, selected = _b === void 0 ? false : _b, size = _a.size, children = _a.children, disabled = _a.disabled, _c = _a.isfitContent, isfitContent = _c === void 0 ? false : _c, onClick = _a.onClick;
|
|
1946
2042
|
var isSelected = selected ? 'selected' : 'notSelected';
|
|
1947
|
-
|
|
2043
|
+
var sizingStyle = isfitContent
|
|
2044
|
+
? "".concat(sizeConfig$2[size])
|
|
2045
|
+
: "".concat(sizeConfig$2[size], " ").concat(minWidthConfig[size]);
|
|
2046
|
+
var radiusStyle = "".concat(roundedConfig[size]);
|
|
2047
|
+
var selectedStyle = "".concat(isSelectedConfig[isSelected]);
|
|
2048
|
+
return (React.createElement("button", { type: "button", onClick: onClick, disabled: disabled, className: "group:last:border-l-0 border-[1px] border-l-0 border-bia-grey-dark-10 first:border-l-[1px] focus-visible:z-50 focus-visible:outline focus-visible:outline-[3px] focus-visible:-outline-offset-1 focus-visible:outline-bia-blue-light-50 disabled:cursor-not-allowed disabled:bg-bia-grey-light-80 disabled:text-bia-grey-dark-10 ".concat(selectedStyle, " ").concat(radiusStyle, " ").concat(sizingStyle) }, children));
|
|
1948
2049
|
}
|
|
1949
2050
|
|
|
1950
2051
|
function SegmentButtonGroup(_a) {
|
|
@@ -1953,7 +2054,7 @@ function SegmentButtonGroup(_a) {
|
|
|
1953
2054
|
}
|
|
1954
2055
|
|
|
1955
2056
|
function Modal(_a) {
|
|
1956
|
-
var
|
|
2057
|
+
var _b = _a.size, size = _b === void 0 ? 'sm' : _b, title = _a.title, open = _a.open, _c = _a.zIndex, zIndex = _c === void 0 ? 100 : _c, onClose = _a.onClose, rest = __rest(_a, ["size", "title", "open", "zIndex", "onClose"]);
|
|
1957
2058
|
var modalSize;
|
|
1958
2059
|
if (size === 'sm') {
|
|
1959
2060
|
modalSize = 'w-[300px]';
|
|
@@ -1975,12 +2076,12 @@ function Modal(_a) {
|
|
|
1975
2076
|
if (open) {
|
|
1976
2077
|
return (
|
|
1977
2078
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
|
|
1978
|
-
React.createElement("div", { className: "fixed inset-0 flex items-center justify-center bg-bia-black-transparent-75", style: { zIndex: !zIndex && isNaN(zIndex) ? 'auto' : zIndex }, id: "
|
|
1979
|
-
React.createElement("div", { className: "modal flex flex-col gap-[20px] rounded-[5px] bg-white p-[20px] ".concat(modalSize) },
|
|
1980
|
-
React.createElement("div", { className: "flex justify-between" },
|
|
1981
|
-
React.createElement("div", { className: "
|
|
2079
|
+
React.createElement("div", { className: "bianic-modal-wrapper fixed inset-0 flex items-center justify-center bg-bia-black-transparent-75", style: { zIndex: !zIndex && isNaN(zIndex) ? 'auto' : zIndex }, id: "", onClick: handleClose },
|
|
2080
|
+
React.createElement("div", { className: "bianic-modal flex flex-col gap-[20px] rounded-[5px] bg-white p-[20px] ".concat(modalSize) },
|
|
2081
|
+
React.createElement("div", { className: "bianic-modal-header flex justify-between" },
|
|
2082
|
+
React.createElement("div", { className: " text-wrap text-left font-humnst777 text-[18px] font-bold leading-[21.85px] text-primary-black" }, title),
|
|
1982
2083
|
React.createElement(Button, { variant: "subtle", radius: "full-rounded", iconLeft: React.createElement(TbX, null), size: "tn", onClick: function () { return onClose(); } })),
|
|
1983
|
-
React.createElement("div", { className: "flex flex-col gap-[20px]" }, rest.children))));
|
|
2084
|
+
React.createElement("div", { className: "bianic-modal-content flex w-full flex-col items-start gap-[20px]" }, rest.children))));
|
|
1984
2085
|
}
|
|
1985
2086
|
return null;
|
|
1986
2087
|
}
|
|
@@ -2262,17 +2363,9 @@ var configTab = {
|
|
|
2262
2363
|
};
|
|
2263
2364
|
|
|
2264
2365
|
function Tab(_a) {
|
|
2265
|
-
var children = _a.children, active = _a.active, icon = _a.icon, disabled = _a.disabled, _b = _a.mode, mode = _b === void 0 ? 'horizontal' : _b, _c = _a.fit, fit = _c === void 0 ? 'fit-content' : _c, _d = _a.size, size = _d === void 0 ? 'md' : _d,
|
|
2366
|
+
var children = _a.children, active = _a.active, icon = _a.icon, disabled = _a.disabled, _b = _a.mode, mode = _b === void 0 ? 'horizontal' : _b, _c = _a.fit, fit = _c === void 0 ? 'fit-content' : _c, _d = _a.size, size = _d === void 0 ? 'md' : _d, rest = __rest(_a, ["children", "active", "icon", "disabled", "mode", "fit", "size"]);
|
|
2266
2367
|
var disabledKeyTab = disabled || active ? ' pointer-events-none' : '';
|
|
2267
2368
|
var cursor;
|
|
2268
|
-
var cardColor;
|
|
2269
|
-
if (active) {
|
|
2270
|
-
cardColor = 'bg-white';
|
|
2271
|
-
}
|
|
2272
|
-
else {
|
|
2273
|
-
cardColor =
|
|
2274
|
-
'bg-bia-grey-light-50 hover:bg-bia-grey-light-20 active:bg-bia-grey';
|
|
2275
|
-
}
|
|
2276
2369
|
if (disabled) {
|
|
2277
2370
|
cursor = 'cursor-not-allowed';
|
|
2278
2371
|
}
|
|
@@ -2282,26 +2375,25 @@ function Tab(_a) {
|
|
|
2282
2375
|
else {
|
|
2283
2376
|
cursor = 'cursor-auto';
|
|
2284
2377
|
}
|
|
2378
|
+
var horizontalButtonStyle = mode === 'horizontal' ? '-mb-[1px] flex-col' : 'w-full flex-row';
|
|
2379
|
+
var indicatorStyle = configTab[active ? 'true' : 'false'][mode];
|
|
2380
|
+
var indicatorContainerStyle = mode === 'vertical' ? 'w-[3px] justify-end' : 'h-[3px] w-full';
|
|
2381
|
+
var buttonContentStyle = size === 'sm'
|
|
2382
|
+
? " pt-[10px] ".concat(mode === 'vertical' ? 'pb-[10px] pe-[30px]' : 'px-[30px] pb-[8px]')
|
|
2383
|
+
: "px-[30px] pt-[13px] ".concat(mode === 'vertical' ? 'pb-[13px]' : 'pb-[10px]', " ");
|
|
2285
2384
|
var activeKeyTab = active
|
|
2286
2385
|
? 'group-disabled:text-bia-coolgrey-disabled text-primary-black'
|
|
2287
2386
|
: 'text-bia-coolgrey group-hover:text-bia-coolgrey-hover group-active:text-bia-coolgrey-active group-disabled:text-bia-coolgrey-disabled';
|
|
2288
2387
|
return (React.createElement("div", { className: "".concat(mode === 'horizontal' ? 'h-full' : 'w-full', " ").concat(cursor) },
|
|
2289
|
-
React.createElement("button", __assign({ type: "button", disabled: disabled }, rest, { className: "
|
|
2290
|
-
React.createElement("div", { className: "flex items-center justify-center ".concat(
|
|
2388
|
+
React.createElement("button", __assign({ type: "button", disabled: disabled }, rest, { className: "flex items-stretch justify-between ".concat(horizontalButtonStyle, " group relative outline-none ").concat(disabledKeyTab, " ").concat(fit) }),
|
|
2389
|
+
React.createElement("div", { className: "flex items-center justify-center ".concat(buttonContentStyle) },
|
|
2291
2390
|
React.createElement("div", { className: "flex items-center justify-center " },
|
|
2292
2391
|
React.createElement("div", { className: "flex items-center space-x-1 text-nowrap ".concat(activeKeyTab, " ").concat(configTab[size].text) },
|
|
2293
2392
|
icon && React.createElement("div", { className: "mr-[5px]" }, icon),
|
|
2294
2393
|
children))),
|
|
2295
|
-
React.createElement("div", { className: "flex flex-row ".concat(
|
|
2394
|
+
React.createElement("div", { className: "flex flex-row ".concat(indicatorContainerStyle, " items-end") },
|
|
2395
|
+
React.createElement("div", { className: "shadow-lg shadow-bia-blue ".concat(indicatorStyle) })))));
|
|
2296
2396
|
}
|
|
2297
|
-
Tab.defaultProps = {
|
|
2298
|
-
children: null,
|
|
2299
|
-
mode: 'horizontal',
|
|
2300
|
-
fit: 'size-base',
|
|
2301
|
-
size: 'md',
|
|
2302
|
-
icon: null,
|
|
2303
|
-
card: false,
|
|
2304
|
-
};
|
|
2305
2397
|
|
|
2306
2398
|
var radiusConfig = {
|
|
2307
2399
|
none: '',
|
|
@@ -2620,7 +2712,7 @@ var classConfig = {
|
|
|
2620
2712
|
};
|
|
2621
2713
|
|
|
2622
2714
|
function Tooltip(props) {
|
|
2623
|
-
var children = props.children, content = props.content, delay = props.delay, _a = props.direction, direction = _a === void 0 ? 'top' : _a, _b = props.maxWidth, maxWidth = _b === void 0 ?
|
|
2715
|
+
var children = props.children, content = props.content, delay = props.delay, _a = props.direction, direction = _a === void 0 ? 'top' : _a, _b = props.maxWidth, maxWidth = _b === void 0 ? undefined : _b;
|
|
2624
2716
|
var timeout;
|
|
2625
2717
|
var _c = React.useState(false), active = _c[0], setActive = _c[1];
|
|
2626
2718
|
var showTip = function () {
|
|
@@ -2633,15 +2725,51 @@ function Tooltip(props) {
|
|
|
2633
2725
|
setActive(false);
|
|
2634
2726
|
};
|
|
2635
2727
|
var _d = classConfig[direction], tooltipContainer = _d.tooltipContainer; _d.triangleContainer; _d.triangleShape;
|
|
2636
|
-
|
|
2728
|
+
var tooltipContainerRef = React.useRef(null);
|
|
2729
|
+
var _e = React.useState({
|
|
2730
|
+
maxWidth: maxWidth + 'px',
|
|
2731
|
+
whiteSpace: 'nowrap',
|
|
2732
|
+
}), tooltipContainerStyle = _e[0], setTooltipContainerStyle = _e[1];
|
|
2733
|
+
var tooltipContainerElement = tooltipContainerRef === null || tooltipContainerRef === void 0 ? void 0 : tooltipContainerRef.current;
|
|
2734
|
+
var scrollWidth = tooltipContainerElement === null || tooltipContainerElement === void 0 ? void 0 : tooltipContainerElement.scrollWidth; // Mendapatkan lebar konten aktual
|
|
2735
|
+
var offsetWidth = tooltipContainerElement === null || tooltipContainerElement === void 0 ? void 0 : tooltipContainerElement.offsetWidth;
|
|
2736
|
+
var offsetHeight = tooltipContainerElement === null || tooltipContainerElement === void 0 ? void 0 : tooltipContainerElement.offsetHeight;
|
|
2737
|
+
React.useEffect(function () {
|
|
2738
|
+
if (scrollWidth && offsetWidth) {
|
|
2739
|
+
var maxWidthNumber = Number(maxWidth);
|
|
2740
|
+
var isMultiLine = offsetHeight > 23; // 23 pixels is the approximate height of one line of text
|
|
2741
|
+
// Tooltip Width and Whitespace Determination Rules:
|
|
2742
|
+
// 1. Default Condition:
|
|
2743
|
+
// - width: fit-content
|
|
2744
|
+
// - whiteSpace: nowrap
|
|
2745
|
+
// 2. When maxWidth is Set:
|
|
2746
|
+
// * Text Exceeds maxWidth:
|
|
2747
|
+
// - width: maxWidth
|
|
2748
|
+
// - whiteSpace: normal
|
|
2749
|
+
// * Text Equals maxWidth (Multi-line):
|
|
2750
|
+
// - width: maxWidth
|
|
2751
|
+
// - whiteSpace: normal
|
|
2752
|
+
// * Text Less Than maxWidth:
|
|
2753
|
+
// - width: fit-content
|
|
2754
|
+
// - whiteSpace: nowrap
|
|
2755
|
+
var newWidth_1 = 'fit-content';
|
|
2756
|
+
var newWhiteSpace_1 = 'nowrap';
|
|
2757
|
+
if (scrollWidth > maxWidthNumber ||
|
|
2758
|
+
(offsetWidth === maxWidthNumber && isMultiLine)) {
|
|
2759
|
+
newWidth_1 = maxWidthNumber + 'px';
|
|
2760
|
+
newWhiteSpace_1 = 'normal';
|
|
2761
|
+
}
|
|
2762
|
+
setTooltipContainerStyle(function (prev) { return (__assign(__assign({}, prev), { width: newWidth_1, whiteSpace: newWhiteSpace_1 })); });
|
|
2763
|
+
}
|
|
2764
|
+
}, [content, maxWidth, scrollWidth, offsetHeight]);
|
|
2765
|
+
return (React.createElement("div", { className: "tooltip-wrapper relative inline-flex h-fit w-fit flex-col", onMouseEnter: showTip, onMouseLeave: hideTip },
|
|
2637
2766
|
children,
|
|
2638
|
-
active && (React.createElement("div", { className: "
|
|
2639
|
-
React.createElement("p", { className: " whitespace-pre-wrap break-words" }, content)))));
|
|
2767
|
+
active && (React.createElement("div", { className: "tooltip-container break-word absolute z-50 inline-block break-all rounded-[4px] bg-primary-black px-[7px] py-[4px] text-size-sm text-primary-white ".concat(tooltipContainer), style: tooltipContainerStyle, ref: tooltipContainerRef }, content))));
|
|
2640
2768
|
}
|
|
2641
2769
|
Tooltip.defaultProps = {
|
|
2642
2770
|
delay: 400,
|
|
2643
2771
|
direction: 'top',
|
|
2644
|
-
maxWidth: '
|
|
2772
|
+
maxWidth: '300',
|
|
2645
2773
|
};
|
|
2646
2774
|
Tooltip.defaultProps = {};
|
|
2647
2775
|
|
|
@@ -2658,8 +2786,11 @@ exports.Checkbox = Checkbox;
|
|
|
2658
2786
|
exports.Color = Color;
|
|
2659
2787
|
exports.Display = Display;
|
|
2660
2788
|
exports.Divider = Divider;
|
|
2789
|
+
exports.FileTree = FileTree;
|
|
2661
2790
|
exports.Heading = Heading;
|
|
2662
2791
|
exports.LiveSearch = LiveSearch;
|
|
2792
|
+
exports.MenuContainer = MenuContainer;
|
|
2793
|
+
exports.MenuItem = MenuItem;
|
|
2663
2794
|
exports.Modal = Modal;
|
|
2664
2795
|
exports.P = P;
|
|
2665
2796
|
exports.PaginationBar = PaginationBar;
|