@shoplflow/base 0.32.19 → 0.32.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +243 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +31 -1
- package/dist/index.d.ts +31 -1
- package/dist/index.js +244 -25
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -11,8 +11,8 @@ var Scrollbars = require('react-custom-scrollbars-2');
|
|
|
11
11
|
var react = require('@floating-ui/react');
|
|
12
12
|
var reactDom = require('@floating-ui/react-dom');
|
|
13
13
|
var ShoplAssets = require('@shoplflow/shopl-assets');
|
|
14
|
-
var HadaAssets = require('@shoplflow/hada-assets');
|
|
15
14
|
var core = require('@floating-ui/core');
|
|
15
|
+
var HadaAssets = require('@shoplflow/hada-assets');
|
|
16
16
|
var DatePicker2 = require('react-datepicker');
|
|
17
17
|
require('react-datepicker/dist/react-datepicker.css');
|
|
18
18
|
var SimpleBarReact = require('simplebar-react');
|
|
@@ -1811,12 +1811,19 @@ exports.IconButtonStyleVariants = {
|
|
|
1811
1811
|
SOLID: "SOLID",
|
|
1812
1812
|
GHOST: "GHOST"
|
|
1813
1813
|
};
|
|
1814
|
+
var getPopoverContentStyle = () => {
|
|
1815
|
+
return react$1.css`
|
|
1816
|
+
min-width: 112px;
|
|
1817
|
+
padding: 4px;
|
|
1818
|
+
box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.12);
|
|
1819
|
+
border-radius: 8px;
|
|
1820
|
+
background-color: ${exports.colorTokens.neutral0};
|
|
1821
|
+
`;
|
|
1822
|
+
};
|
|
1823
|
+
|
|
1824
|
+
// src/components/Buttons/DropdownButton/DropdownButton.styled.ts
|
|
1814
1825
|
var StyledPopoverContentWrapper = styled6__default.default.div`
|
|
1815
|
-
|
|
1816
|
-
padding: 4px;
|
|
1817
|
-
box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.12);
|
|
1818
|
-
border-radius: 8px;
|
|
1819
|
-
background-color: ${exports.colorTokens.neutral0};
|
|
1826
|
+
${getPopoverContentStyle()}
|
|
1820
1827
|
`;
|
|
1821
1828
|
var StyledArrowIcon = styled6__default.default(framerMotion.motion.div)`
|
|
1822
1829
|
display: flex;
|
|
@@ -2425,11 +2432,10 @@ var DropdownButton = (_a) => {
|
|
|
2425
2432
|
_styleVar = "SOLID";
|
|
2426
2433
|
color = "coolgray50";
|
|
2427
2434
|
}
|
|
2428
|
-
return /* @__PURE__ */ jsxRuntime.jsx(exports.DropdownButtonContext.Provider, { value: { isOpen, setIsOpen }, children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Popper, { placement, offset: 4, children: [
|
|
2435
|
+
return /* @__PURE__ */ jsxRuntime.jsx(exports.DropdownButtonContext.Provider, { value: { isOpen, setIsOpen }, "data-shoplflow": "DropdownButton", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Popper, { placement, offset: 4, middlewares: [core.shift({ crossAxis: true, padding: 4 })], children: [
|
|
2429
2436
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Popper.Trigger, { isOpen, className: _className, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2430
2437
|
exports.Button,
|
|
2431
2438
|
__spreadProps(__spreadValues({
|
|
2432
|
-
"data-shoplflow": "DropdownButton",
|
|
2433
2439
|
className: _className,
|
|
2434
2440
|
sizeVar,
|
|
2435
2441
|
styleVar: _styleVar,
|
|
@@ -2479,6 +2485,209 @@ exports.DropdownButtonStyleVariants = {
|
|
|
2479
2485
|
PRIMARY: "PRIMARY",
|
|
2480
2486
|
SECONDARY: "SECONDARY"
|
|
2481
2487
|
};
|
|
2488
|
+
var getStyleByStyleVar3 = (styleVar, color, disabled) => {
|
|
2489
|
+
switch (styleVar) {
|
|
2490
|
+
case "PRIMARY":
|
|
2491
|
+
return react$1.css`
|
|
2492
|
+
border: 1px solid ${exports.colorTokens.primary400};
|
|
2493
|
+
background-color: ${exports.colorTokens.primary300};
|
|
2494
|
+
:hover {
|
|
2495
|
+
background-color: ${!disabled && exports.colorTokens.primary400};
|
|
2496
|
+
}
|
|
2497
|
+
`;
|
|
2498
|
+
case "SECONDARY":
|
|
2499
|
+
return react$1.css`
|
|
2500
|
+
border: 1px solid ${exports.colorTokens.neutral350};
|
|
2501
|
+
background-color: ${exports.colorTokens.neutral0};
|
|
2502
|
+
:hover {
|
|
2503
|
+
background-color: ${!disabled && exports.colorTokens.neutral100};
|
|
2504
|
+
}
|
|
2505
|
+
`;
|
|
2506
|
+
default:
|
|
2507
|
+
return react$1.css`
|
|
2508
|
+
border: 1px solid ${exports.colorTokens.primary400};
|
|
2509
|
+
background-color: ${exports.colorTokens.primary300};
|
|
2510
|
+
`;
|
|
2511
|
+
}
|
|
2512
|
+
};
|
|
2513
|
+
var getStyleBySizeVar3 = (sizeVar) => {
|
|
2514
|
+
switch (sizeVar) {
|
|
2515
|
+
case "M":
|
|
2516
|
+
return react$1.css`
|
|
2517
|
+
min-width: 72px;
|
|
2518
|
+
min-height: 40px;
|
|
2519
|
+
`;
|
|
2520
|
+
case "S":
|
|
2521
|
+
return react$1.css`
|
|
2522
|
+
min-width: 54px;
|
|
2523
|
+
min-height: 32px;
|
|
2524
|
+
`;
|
|
2525
|
+
default:
|
|
2526
|
+
return react$1.css`
|
|
2527
|
+
min-width: 72px;
|
|
2528
|
+
min-height: 40px;
|
|
2529
|
+
`;
|
|
2530
|
+
}
|
|
2531
|
+
};
|
|
2532
|
+
var StyledPopoverContentWrapper2 = styled6__default.default.div`
|
|
2533
|
+
${getPopoverContentStyle()}
|
|
2534
|
+
`;
|
|
2535
|
+
var StyledArrowIcon2 = styled6__default.default(framerMotion.motion.div)`
|
|
2536
|
+
display: flex;
|
|
2537
|
+
justify-content: center;
|
|
2538
|
+
align-items: center;
|
|
2539
|
+
flex-shrink: 0;
|
|
2540
|
+
`;
|
|
2541
|
+
var SplitButtonDivider = styled6__default.default.div`
|
|
2542
|
+
height: ${({ sizeVar }) => sizeVar === "M" ? "38px" : "30px"};
|
|
2543
|
+
width: 1px;
|
|
2544
|
+
background-color: ${({ styleVar }) => styleVar === "PRIMARY" ? exports.colorTokens.shopl400 : exports.colorTokens.neutral350};
|
|
2545
|
+
`;
|
|
2546
|
+
var StyledSplitButton = styled6__default.default.button`
|
|
2547
|
+
display: flex;
|
|
2548
|
+
align-items: center;
|
|
2549
|
+
justify-content: center;
|
|
2550
|
+
height: fit-content;
|
|
2551
|
+
width: fit-content;
|
|
2552
|
+
gap: 8px;
|
|
2553
|
+
padding: 0 12px;
|
|
2554
|
+
border-radius: 6px;
|
|
2555
|
+
cursor: pointer;
|
|
2556
|
+
${({ styleVar, color, disabled }) => getStyleByStyleVar3(styleVar, color, disabled)};
|
|
2557
|
+
${({ sizeVar }) => getStyleBySizeVar3(sizeVar)};
|
|
2558
|
+
${({ disabled }) => getDisabledStyle(disabled)}
|
|
2559
|
+
`;
|
|
2560
|
+
exports.SplitButtonContext = React3.createContext(null);
|
|
2561
|
+
exports.useSplitButtonContext = () => {
|
|
2562
|
+
const context = React3.useContext(exports.SplitButtonContext);
|
|
2563
|
+
if (!context) {
|
|
2564
|
+
throw new Error("SplitButtonContext must be used within a SplitButton component");
|
|
2565
|
+
}
|
|
2566
|
+
return context;
|
|
2567
|
+
};
|
|
2568
|
+
var SplitButtonMenu = (_a) => {
|
|
2569
|
+
var _b = _a, { onClick, children } = _b, rest = __objRest(_b, ["onClick", "children"]);
|
|
2570
|
+
const { setIsOpen } = exports.useSplitButtonContext();
|
|
2571
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2572
|
+
exports.Menu,
|
|
2573
|
+
__spreadProps(__spreadValues({
|
|
2574
|
+
onClick: (event) => {
|
|
2575
|
+
event.stopPropagation();
|
|
2576
|
+
event.preventDefault();
|
|
2577
|
+
onClick == null ? void 0 : onClick(event);
|
|
2578
|
+
setIsOpen(false);
|
|
2579
|
+
}
|
|
2580
|
+
}, rest), {
|
|
2581
|
+
children
|
|
2582
|
+
})
|
|
2583
|
+
);
|
|
2584
|
+
};
|
|
2585
|
+
var SplitButton = (_a) => {
|
|
2586
|
+
var _b = _a, {
|
|
2587
|
+
children,
|
|
2588
|
+
color,
|
|
2589
|
+
onClick,
|
|
2590
|
+
disabled,
|
|
2591
|
+
placement = "bottom-start",
|
|
2592
|
+
floatingZIndex,
|
|
2593
|
+
leftSource,
|
|
2594
|
+
rightSource,
|
|
2595
|
+
styleVar = "PRIMARY",
|
|
2596
|
+
sizeVar = "M",
|
|
2597
|
+
lineClamp = 1,
|
|
2598
|
+
text
|
|
2599
|
+
} = _b, rest = __objRest(_b, [
|
|
2600
|
+
"children",
|
|
2601
|
+
"color",
|
|
2602
|
+
"onClick",
|
|
2603
|
+
"disabled",
|
|
2604
|
+
"placement",
|
|
2605
|
+
"floatingZIndex",
|
|
2606
|
+
"leftSource",
|
|
2607
|
+
"rightSource",
|
|
2608
|
+
"styleVar",
|
|
2609
|
+
"sizeVar",
|
|
2610
|
+
"lineClamp",
|
|
2611
|
+
"text"
|
|
2612
|
+
]);
|
|
2613
|
+
const selector = React3.useRef(`shoplflow-${crypto.randomUUID()}-split-button`).current;
|
|
2614
|
+
const [isOpen, setIsOpen] = utils.useOutsideClick({
|
|
2615
|
+
selector: `.${selector}`,
|
|
2616
|
+
useOutsideScroll: true
|
|
2617
|
+
});
|
|
2618
|
+
return /* @__PURE__ */ jsxRuntime.jsx(exports.SplitButtonContext.Provider, { value: { isOpen, setIsOpen }, children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Popper, { placement, offset: 4, middlewares: [core.shift({ crossAxis: true, padding: 4 })], children: [
|
|
2619
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Popper.Trigger, { isOpen, className: selector, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2620
|
+
StyledSplitButton,
|
|
2621
|
+
__spreadProps(__spreadValues({
|
|
2622
|
+
"data-shoplflow": "SplitButton",
|
|
2623
|
+
color,
|
|
2624
|
+
styleVar,
|
|
2625
|
+
sizeVar,
|
|
2626
|
+
disabled
|
|
2627
|
+
}, rest), {
|
|
2628
|
+
onClick: (event) => {
|
|
2629
|
+
event.stopPropagation();
|
|
2630
|
+
event.preventDefault();
|
|
2631
|
+
if (disabled) {
|
|
2632
|
+
return;
|
|
2633
|
+
}
|
|
2634
|
+
onClick == null ? void 0 : onClick(event);
|
|
2635
|
+
setIsOpen((prev) => !prev);
|
|
2636
|
+
},
|
|
2637
|
+
children: [
|
|
2638
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Stack.Horizontal, { spacing: "spacing04", align: "center", children: [
|
|
2639
|
+
leftSource,
|
|
2640
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2641
|
+
exports.Text,
|
|
2642
|
+
{
|
|
2643
|
+
lineClamp,
|
|
2644
|
+
whiteSpace: "nowrap",
|
|
2645
|
+
wordBreak: "keep-all",
|
|
2646
|
+
color: styleVar === "PRIMARY" ? "neutral0" : "neutral700",
|
|
2647
|
+
typography: sizeVar === "M" ? "body1_400" : "body2_400",
|
|
2648
|
+
children: text
|
|
2649
|
+
}
|
|
2650
|
+
),
|
|
2651
|
+
rightSource
|
|
2652
|
+
] }),
|
|
2653
|
+
/* @__PURE__ */ jsxRuntime.jsx(SplitButtonDivider, { sizeVar, styleVar }),
|
|
2654
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2655
|
+
StyledArrowIcon2,
|
|
2656
|
+
{
|
|
2657
|
+
animate: {
|
|
2658
|
+
rotate: isOpen ? 180 : 0
|
|
2659
|
+
},
|
|
2660
|
+
transition: {
|
|
2661
|
+
duration: 0.2
|
|
2662
|
+
},
|
|
2663
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2664
|
+
exports.Icon,
|
|
2665
|
+
{
|
|
2666
|
+
iconSource: ShoplAssets.DownArrowSolidXsmallIcon,
|
|
2667
|
+
color: styleVar === "PRIMARY" ? "neutral0" : "neutral600",
|
|
2668
|
+
sizeVar: "XS"
|
|
2669
|
+
}
|
|
2670
|
+
)
|
|
2671
|
+
}
|
|
2672
|
+
)
|
|
2673
|
+
]
|
|
2674
|
+
})
|
|
2675
|
+
) }),
|
|
2676
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Popper.Portal, { zIndex: floatingZIndex, children: /* @__PURE__ */ jsxRuntime.jsx(StyledPopoverContentWrapper2, { children }) })
|
|
2677
|
+
] }) });
|
|
2678
|
+
};
|
|
2679
|
+
SplitButton.Menu = SplitButtonMenu;
|
|
2680
|
+
exports.SplitButton = SplitButton;
|
|
2681
|
+
|
|
2682
|
+
// src/components/Buttons/SplitButton/SplitButton.types.ts
|
|
2683
|
+
exports.SplitButtonSizeVariants = {
|
|
2684
|
+
S: "S",
|
|
2685
|
+
M: "M"
|
|
2686
|
+
};
|
|
2687
|
+
exports.SplitButtonStyleVariants = {
|
|
2688
|
+
PRIMARY: "PRIMARY",
|
|
2689
|
+
SECONDARY: "SECONDARY"
|
|
2690
|
+
};
|
|
2482
2691
|
var informationStyle = react$1.css`
|
|
2483
2692
|
background: ${exports.colorTokens.neutral100};
|
|
2484
2693
|
& > span {
|
|
@@ -3839,22 +4048,32 @@ var Tooltip = (_a) => {
|
|
|
3839
4048
|
}
|
|
3840
4049
|
onOpenChange == null ? void 0 : onOpenChange(false);
|
|
3841
4050
|
}, [open, onOpenChange]);
|
|
3842
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
4051
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4052
|
+
exports.Popper,
|
|
4053
|
+
__spreadProps(__spreadValues({
|
|
4054
|
+
offset: offset4,
|
|
4055
|
+
placement,
|
|
4056
|
+
middlewares: [core.flip(), core.shift({ padding: 5 })],
|
|
4057
|
+
"data-shoplflow": "Tooltip"
|
|
4058
|
+
}, popperProps), {
|
|
4059
|
+
children: [
|
|
4060
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4061
|
+
exports.Popper.Trigger,
|
|
4062
|
+
{
|
|
4063
|
+
ref: triggerRef,
|
|
4064
|
+
isOpen: isOpen || open,
|
|
4065
|
+
onMouseOver: showHandler,
|
|
4066
|
+
onMouseLeave: hideHandler,
|
|
4067
|
+
onFocus: showHandler,
|
|
4068
|
+
onBlur: hideHandler,
|
|
4069
|
+
style: { display: "flex", alignItems: "center", justifyContent: "center" },
|
|
4070
|
+
children: trigger
|
|
4071
|
+
}
|
|
4072
|
+
),
|
|
4073
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Popper.Portal, { ref: portalRef, children: popper })
|
|
4074
|
+
]
|
|
4075
|
+
})
|
|
4076
|
+
);
|
|
3858
4077
|
};
|
|
3859
4078
|
Tooltip.Content = TooltipContent;
|
|
3860
4079
|
exports.Tooltip = Tooltip;
|