@forgedevstack/bear 1.3.3 → 1.3.5
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/README.md +100 -290
- package/dist/components/Alert/Alert.cjs +1 -1
- package/dist/components/Alert/Alert.const.cjs +1 -1
- package/dist/components/Alert/Alert.const.d.ts +1 -6
- package/dist/components/Alert/Alert.const.js +10 -30
- package/dist/components/Alert/Alert.js +49 -54
- package/dist/components/AlertDialog/AlertDialog.cjs +1 -1
- package/dist/components/AlertDialog/AlertDialog.js +67 -84
- package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
- package/dist/components/BottomSheet/BottomSheet.js +72 -64
- package/dist/components/Calendar/Calendar.cjs +1 -1
- package/dist/components/Calendar/Calendar.js +122 -112
- package/dist/components/Chart/BarChart.cjs +1 -1
- package/dist/components/Chart/BarChart.js +37 -36
- package/dist/components/Chart/Chart.types.d.ts +2 -0
- package/dist/components/Chart/Chart.utils.cjs +1 -1
- package/dist/components/Chart/Chart.utils.d.ts +2 -0
- package/dist/components/Chart/Chart.utils.js +32 -31
- package/dist/components/Chart/FunnelChart.cjs +1 -1
- package/dist/components/Chart/FunnelChart.js +29 -28
- package/dist/components/Chart/LineChart.cjs +1 -1
- package/dist/components/Chart/LineChart.js +45 -44
- package/dist/components/Chart/PieChart.cjs +1 -1
- package/dist/components/Chart/PieChart.js +52 -51
- package/dist/components/Chart/RadarChart.cjs +1 -1
- package/dist/components/Chart/RadarChart.js +63 -62
- package/dist/components/Chart/index.d.ts +1 -1
- package/dist/components/ChipGroup/ChipGroup.cjs +1 -1
- package/dist/components/ChipGroup/ChipGroup.const.cjs +1 -1
- package/dist/components/ChipGroup/ChipGroup.const.d.ts +2 -0
- package/dist/components/ChipGroup/ChipGroup.const.js +6 -4
- package/dist/components/ChipGroup/ChipGroup.js +52 -48
- package/dist/components/CommandPalette/CommandItem.cjs +1 -0
- package/dist/components/CommandPalette/CommandItem.d.ts +6 -0
- package/dist/components/CommandPalette/CommandItem.js +39 -0
- package/dist/components/CommandPalette/CommandPalette.cjs +1 -1
- package/dist/components/CommandPalette/CommandPalette.js +129 -144
- package/dist/components/Drawer/Drawer.cjs +1 -1
- package/dist/components/Drawer/Drawer.js +72 -66
- package/dist/components/EmptyState/EmptyState.cjs +1 -1
- package/dist/components/EmptyState/EmptyState.const.cjs +1 -1
- package/dist/components/EmptyState/EmptyState.const.d.ts +5 -0
- package/dist/components/EmptyState/EmptyState.const.js +30 -15
- package/dist/components/EmptyState/EmptyState.js +35 -35
- package/dist/components/EmptyState/EmptyState.types.d.ts +2 -2
- package/dist/components/HoverCard/HoverCard.cjs +4 -3
- package/dist/components/HoverCard/HoverCard.const.cjs +1 -0
- package/dist/components/HoverCard/HoverCard.const.d.ts +1 -0
- package/dist/components/HoverCard/HoverCard.const.js +5 -0
- package/dist/components/HoverCard/HoverCard.js +62 -56
- package/dist/components/HoverCard/HoverCard.types.d.ts +7 -0
- package/dist/components/Menu/Menu.cjs +1 -1
- package/dist/components/Menu/Menu.const.cjs +1 -0
- package/dist/components/Menu/Menu.const.d.ts +2 -0
- package/dist/components/Menu/Menu.const.js +7 -0
- package/dist/components/Menu/Menu.d.ts +3 -9
- package/dist/components/Menu/Menu.js +57 -89
- package/dist/components/Menu/Menu.types.d.ts +8 -1
- package/dist/components/Menu/MenuDivider.cjs +1 -0
- package/dist/components/Menu/MenuDivider.d.ts +6 -0
- package/dist/components/Menu/MenuDivider.js +7 -0
- package/dist/components/Menu/MenuItem.cjs +1 -0
- package/dist/components/Menu/MenuItem.d.ts +6 -0
- package/dist/components/Menu/MenuItem.js +46 -0
- package/dist/components/Modal/Modal.cjs +1 -1
- package/dist/components/Modal/Modal.const.cjs +1 -1
- package/dist/components/Modal/Modal.const.d.ts +1 -0
- package/dist/components/Modal/Modal.const.js +15 -12
- package/dist/components/Modal/Modal.js +62 -59
- package/dist/components/Modal/Modal.types.d.ts +7 -0
- package/dist/components/ModalsProvider/components/StackedModal/StackedModal.cjs +1 -1
- package/dist/components/ModalsProvider/components/StackedModal/StackedModal.js +10 -9
- package/dist/components/OverlayPortal/OverlayPortal.cjs +1 -1
- package/dist/components/OverlayPortal/OverlayPortal.const.cjs +1 -1
- package/dist/components/OverlayPortal/OverlayPortal.const.d.ts +4 -0
- package/dist/components/OverlayPortal/OverlayPortal.const.js +21 -5
- package/dist/components/OverlayPortal/OverlayPortal.js +44 -38
- package/dist/components/Popover/Popover.cjs +1 -1
- package/dist/components/Popover/Popover.const.cjs +1 -0
- package/dist/components/Popover/Popover.const.d.ts +15 -1
- package/dist/components/Popover/Popover.const.js +24 -0
- package/dist/components/Popover/Popover.js +77 -73
- package/dist/components/Popover/Popover.types.d.ts +7 -0
- package/dist/components/Select/Select.cjs +1 -1
- package/dist/components/Select/Select.const.cjs +1 -1
- package/dist/components/Select/Select.const.d.ts +1 -0
- package/dist/components/Select/Select.const.js +7 -6
- package/dist/components/Select/Select.js +101 -96
- package/dist/components/Tabs/TabList.cjs +1 -1
- package/dist/components/Tabs/TabList.js +1 -1
- package/dist/components/Toast/Toast.cjs +1 -1
- package/dist/components/Toast/Toast.const.cjs +1 -1
- package/dist/components/Toast/Toast.const.d.ts +2 -0
- package/dist/components/Toast/Toast.const.js +11 -8
- package/dist/components/Toast/Toast.context.cjs +1 -0
- package/dist/components/Toast/Toast.context.d.ts +3 -0
- package/dist/components/Toast/Toast.context.js +11 -0
- package/dist/components/Toast/Toast.d.ts +4 -3
- package/dist/components/Toast/Toast.icons.cjs +1 -0
- package/dist/components/Toast/Toast.icons.d.ts +4 -0
- package/dist/components/Toast/Toast.icons.js +29 -0
- package/dist/components/Toast/Toast.js +32 -160
- package/dist/components/Toast/ToastContainer.cjs +1 -0
- package/dist/components/Toast/ToastContainer.d.ts +3 -0
- package/dist/components/Toast/ToastContainer.js +39 -0
- package/dist/components/Toast/ToastItem.cjs +1 -0
- package/dist/components/Toast/ToastItem.d.ts +5 -0
- package/dist/components/Toast/ToastItem.js +86 -0
- package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.const.cjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.const.d.ts +15 -0
- package/dist/components/ToggleGroup/ToggleGroup.const.js +33 -0
- package/dist/components/ToggleGroup/ToggleGroup.context.cjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.context.d.ts +2 -0
- package/dist/components/ToggleGroup/ToggleGroup.context.js +5 -0
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -0
- package/dist/components/ToggleGroup/ToggleGroup.js +89 -0
- package/dist/components/ToggleGroup/ToggleGroup.types.d.ts +48 -0
- package/dist/components/ToggleGroup/ToggleGroupItem.cjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +2 -0
- package/dist/components/ToggleGroup/ToggleGroupItem.js +50 -0
- package/dist/components/ToggleGroup/hooks/useToggleGroupContext.cjs +1 -0
- package/dist/components/ToggleGroup/hooks/useToggleGroupContext.d.ts +1 -0
- package/dist/components/ToggleGroup/hooks/useToggleGroupContext.js +6 -0
- package/dist/components/ToggleGroup/index.d.ts +4 -0
- package/dist/components/Tooltip/Tooltip.cjs +1 -1
- package/dist/components/Tooltip/Tooltip.const.cjs +1 -0
- package/dist/components/Tooltip/Tooltip.const.d.ts +8 -0
- package/dist/components/Tooltip/Tooltip.const.js +13 -0
- package/dist/components/Tooltip/Tooltip.js +59 -61
- package/dist/components/Tooltip/Tooltip.types.d.ts +7 -0
- package/dist/components/Transition/Transition.cjs +1 -1
- package/dist/components/Transition/Transition.const.cjs +1 -1
- package/dist/components/Transition/Transition.const.js +26 -8
- package/dist/components/Transition/Transition.js +77 -74
- package/dist/components/Transition/Transition.types.d.ts +8 -2
- package/dist/components/Typography/Typography.const.cjs +1 -1
- package/dist/components/Typography/Typography.const.js +2 -1
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.js +429 -419
- package/dist/constants/generals.const.cjs +1 -1
- package/dist/constants/generals.const.js +85 -86
- package/dist/constants/numbers.const.cjs +1 -1
- package/dist/constants/numbers.const.d.ts +3 -0
- package/dist/constants/numbers.const.js +37 -34
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +6 -4
- package/dist/hooks/useFixedAnchorPosition/index.d.ts +1 -1
- package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs +1 -1
- package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.d.ts +3 -0
- package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js +17 -14
- package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.types.d.ts +1 -1
- package/dist/hooks/useFocusTrap/index.d.ts +2 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.cjs +1 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +3 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.js +41 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.types.d.ts +8 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.utils.cjs +1 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.utils.d.ts +1 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.utils.js +23 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +580 -568
- package/dist/styles/_alerts.css +85 -4
- package/dist/styles/_drawer.css +60 -0
- package/dist/styles/_effects.css +33 -0
- package/dist/styles.css +231 -4
- package/package.json +3 -5
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsxs as o, Fragment as g, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { cn as y } from "../../utils/cn.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { NEGATIVE_ONE as c, ZERO as x } from "../../constants/numbers.const.js";
|
|
5
|
+
import { MenuDivider as l } from "./MenuDivider.js";
|
|
6
|
+
const N = ({
|
|
7
|
+
icon: t,
|
|
8
|
+
disabled: r = !1,
|
|
9
|
+
selected: s = !1,
|
|
10
|
+
divider: n = !1,
|
|
11
|
+
children: m,
|
|
12
|
+
onClick: e,
|
|
13
|
+
className: i,
|
|
14
|
+
testId: p,
|
|
15
|
+
...f
|
|
16
|
+
}) => /* @__PURE__ */ o(g, { children: [
|
|
17
|
+
/* @__PURE__ */ o(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
role: "menuitem",
|
|
21
|
+
tabIndex: r ? c : x,
|
|
22
|
+
className: y(
|
|
23
|
+
"bear-flex bear-items-center bear-gap-3 bear-px-4 bear-py-2 bear-cursor-pointer bear-transition-colors",
|
|
24
|
+
"hover:bear-bg-gray-100 dark:hover:bear-bg-gray-700",
|
|
25
|
+
"focus:bear-outline-none focus:bear-bg-gray-100 dark:focus:bear-bg-gray-700",
|
|
26
|
+
s && "bear-bg-primary-50 dark:bear-bg-primary-900/20 bear-text-primary-600",
|
|
27
|
+
r && "bear-opacity-50 bear-cursor-not-allowed hover:bear-bg-transparent",
|
|
28
|
+
i
|
|
29
|
+
),
|
|
30
|
+
onClick: r ? void 0 : e,
|
|
31
|
+
onKeyDown: (b) => {
|
|
32
|
+
(b.key === "Enter" || b.key === " ") && !r && (e == null || e());
|
|
33
|
+
},
|
|
34
|
+
"data-testid": p,
|
|
35
|
+
...f,
|
|
36
|
+
children: [
|
|
37
|
+
t && /* @__PURE__ */ a("span", { className: "bear-flex-shrink-0 bear-text-gray-500", children: t }),
|
|
38
|
+
/* @__PURE__ */ a("span", { className: "bear-flex-1 bear-text-sm", children: m })
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
n && /* @__PURE__ */ a(l, {})
|
|
43
|
+
] });
|
|
44
|
+
export {
|
|
45
|
+
N as MenuItem
|
|
46
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),E=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),E=require("react"),j=require("react-dom"),a=require("../../utils/cn.cjs"),q=require("../../utils/generateBearId.utils.cjs"),T=require("../../utils/useBearId.cjs"),g=require("../../hooks/useFocusTrap/useFocusTrap.cjs"),F=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.cjs"),R=require("@forgedevstack/bear-icons/navigation"),P=require("../Backdrop/Backdrop.cjs"),e=require("./Modal.const.cjs"),w=t=>{const{isOpen:s,onClose:r,title:l,children:A,size:M="md",showCloseButton:n=!0,closeOnEscape:L=!0,disableEscapeKeyDown:C=!1,lockBodyScroll:O=!0,cancelPreventScroll:f=!1,closeOnBackdrop:m=!0,hideBackdrop:B=!1,keepMounted:d=!1,isCancelBackgroundClick:i,zIndex:b=e.MODAL_Z_INDEX,className:D,footer:u,testId:v,id:p}=t,y=T.useBearId("Modal"),c=q.resolveBearId(p,y),_=E.useRef(null),S=O&&!f,h=i!==void 0?i:m,I=L&&!C,{openEffect:N}=F.resolveOverlayEffects(t,"scale"),k=e.MODAL_EFFECT_CLASS_MAP[N]??e.MODAL_EFFECT_CLASS_MAP.scale;if(g.useFocusTrap(_,{enabled:s,onEscape:I?r:void 0}),E.useEffect(()=>{if(s)return S&&(document.body.style.overflow="hidden"),()=>{document.body.style.overflow=""}},[s,S]),!s&&!d)return null;const x=o.jsxs("div",{className:e.MODAL_ROOT_CLASSES,"data-testid":v,id:c,style:{zIndex:b},children:[!B&&o.jsx(P.Backdrop,{open:s,keepMounted:d,blur:!0,nested:!0,className:"Bear-Modal__backdrop",onClick:h?()=>r():void 0}),o.jsxs("div",{ref:_,role:"dialog","aria-modal":"true","aria-labelledby":l?`${c}-title`:void 0,className:a.cn("Bear-Modal__container",e.MODAL_CONTAINER_CLASSES,e.MODAL_SIZE_CLASSES[M],s&&k,D),style:{zIndex:e.MODAL_PANEL_Z_INDEX},children:[(l||n)&&o.jsxs("div",{className:a.cn("Bear-Modal__header",e.MODAL_HEADER_CLASSES),children:[l&&o.jsx("h2",{id:`${c}-title`,className:a.cn("Bear-Modal__title",e.MODAL_TITLE_CLASSES),children:l}),n&&o.jsx("button",{type:"button",onClick:r,className:a.cn("Bear-Modal__close",e.MODAL_CLOSE_CLASSES),"aria-label":"Close modal",children:o.jsx(R.CloseIcon,{className:"bear-w-5 bear-h-5"})})]}),o.jsx("div",{className:a.cn("Bear-Modal__body",e.MODAL_BODY_CLASSES),children:A}),u&&o.jsx("div",{className:a.cn("Bear-Modal__footer",e.MODAL_FOOTER_CLASSES),children:u})]})]});return j.createPortal(x,document.body)};exports.Modal=w;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../constants/numbers.const.cjs"),r=require("../OverlayPortal/OverlayPortal.const.cjs"),a=e.ELEVEN_THOUSAND,b=e.ONE,t="Bear-Modal bear-fixed bear-inset-0 bear-flex bear-items-center bear-justify-center bear-p-4",S={sm:"bear-max-w-sm",md:"bear-max-w-md",lg:"bear-max-w-lg",xl:"bear-max-w-xl",full:"bear-max-w-full bear-mx-4"},_="bear-relative bear-w-full bear-max-h-[calc(100vh-2rem)] bear-overflow-y-auto bear-bg-white dark:bear-bg-zinc-900 bear-rounded-xl bear-shadow-2xl bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-transform bear-transition-all bear-animate-in bear-fade-in bear-zoom-in-95",A="bear-flex bear-items-center bear-justify-between bear-px-6 bear-py-4 bear-border-b bear-border-gray-200 dark:bear-border-zinc-700",o="bear-text-lg bear-font-semibold bear-text-gray-900 dark:bear-text-white",L="bear-p-1 bear-rounded-lg bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-white hover:bear-bg-gray-100 dark:hover:bear-bg-zinc-700 bear-transition-colors",E="bear-px-6 bear-py-4 bear-text-gray-600 dark:bear-text-gray-300",n="bear-flex bear-items-center bear-justify-end bear-gap-3 bear-px-6 bear-py-4 bear-border-t bear-border-gray-200 dark:bear-border-zinc-700",O=r.OVERLAY_EFFECT_CLASS_MAP;exports.MODAL_BODY_CLASSES=E;exports.MODAL_CLOSE_CLASSES=L;exports.MODAL_CONTAINER_CLASSES=_;exports.MODAL_EFFECT_CLASS_MAP=O;exports.MODAL_FOOTER_CLASSES=n;exports.MODAL_HEADER_CLASSES=A;exports.MODAL_PANEL_Z_INDEX=b;exports.MODAL_ROOT_CLASSES=t;exports.MODAL_SIZE_CLASSES=S;exports.MODAL_TITLE_CLASSES=o;exports.MODAL_Z_INDEX=a;
|
|
@@ -10,3 +10,4 @@ export declare const MODAL_TITLE_CLASSES = "bear-text-lg bear-font-semibold bear
|
|
|
10
10
|
export declare const MODAL_CLOSE_CLASSES = "bear-p-1 bear-rounded-lg bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-white hover:bear-bg-gray-100 dark:hover:bear-bg-zinc-700 bear-transition-colors";
|
|
11
11
|
export declare const MODAL_BODY_CLASSES = "bear-px-6 bear-py-4 bear-text-gray-600 dark:bear-text-gray-300";
|
|
12
12
|
export declare const MODAL_FOOTER_CLASSES = "bear-flex bear-items-center bear-justify-end bear-gap-3 bear-px-6 bear-py-4 bear-border-t bear-border-gray-200 dark:bear-border-zinc-700";
|
|
13
|
+
export declare const MODAL_EFFECT_CLASS_MAP: Record<string, string>;
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { ELEVEN_THOUSAND as r, ONE as e } from "../../constants/numbers.const.js";
|
|
2
|
+
import { OVERLAY_EFFECT_CLASS_MAP as a } from "../OverlayPortal/OverlayPortal.const.js";
|
|
3
|
+
const o = r, n = e, S = "Bear-Modal bear-fixed bear-inset-0 bear-flex bear-items-center bear-justify-center bear-p-4", d = {
|
|
2
4
|
sm: "bear-max-w-sm",
|
|
3
5
|
md: "bear-max-w-md",
|
|
4
6
|
lg: "bear-max-w-lg",
|
|
5
7
|
xl: "bear-max-w-xl",
|
|
6
8
|
full: "bear-max-w-full bear-mx-4"
|
|
7
|
-
},
|
|
9
|
+
}, i = "bear-relative bear-w-full bear-max-h-[calc(100vh-2rem)] bear-overflow-y-auto bear-bg-white dark:bear-bg-zinc-900 bear-rounded-xl bear-shadow-2xl bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-transform bear-transition-all bear-animate-in bear-fade-in bear-zoom-in-95", x = "bear-flex bear-items-center bear-justify-between bear-px-6 bear-py-4 bear-border-b bear-border-gray-200 dark:bear-border-zinc-700", A = "bear-text-lg bear-font-semibold bear-text-gray-900 dark:bear-text-white", _ = "bear-p-1 bear-rounded-lg bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-white hover:bear-bg-gray-100 dark:hover:bear-bg-zinc-700 bear-transition-colors", E = "bear-px-6 bear-py-4 bear-text-gray-600 dark:bear-text-gray-300", s = "bear-flex bear-items-center bear-justify-end bear-gap-3 bear-px-6 bear-py-4 bear-border-t bear-border-gray-200 dark:bear-border-zinc-700", L = a;
|
|
8
10
|
export {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
E as MODAL_BODY_CLASSES,
|
|
12
|
+
_ as MODAL_CLOSE_CLASSES,
|
|
13
|
+
i as MODAL_CONTAINER_CLASSES,
|
|
14
|
+
L as MODAL_EFFECT_CLASS_MAP,
|
|
15
|
+
s as MODAL_FOOTER_CLASSES,
|
|
16
|
+
x as MODAL_HEADER_CLASSES,
|
|
17
|
+
n as MODAL_PANEL_Z_INDEX,
|
|
18
|
+
S as MODAL_ROOT_CLASSES,
|
|
19
|
+
d as MODAL_SIZE_CLASSES,
|
|
20
|
+
A as MODAL_TITLE_CLASSES,
|
|
21
|
+
o as MODAL_Z_INDEX
|
|
19
22
|
};
|
|
@@ -1,107 +1,110 @@
|
|
|
1
|
-
import { jsxs as s, jsx as
|
|
2
|
-
import {
|
|
1
|
+
import { jsxs as s, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as R, useEffect as w } from "react";
|
|
3
3
|
import { createPortal as x } from "react-dom";
|
|
4
|
-
import { cn as
|
|
5
|
-
import { resolveBearId as
|
|
6
|
-
import { useBearId as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
4
|
+
import { cn as l } from "../../utils/cn.js";
|
|
5
|
+
import { resolveBearId as g } from "../../utils/generateBearId.utils.js";
|
|
6
|
+
import { useBearId as F } from "../../utils/useBearId.js";
|
|
7
|
+
import { useFocusTrap as P } from "../../hooks/useFocusTrap/useFocusTrap.js";
|
|
8
|
+
import { resolveOverlayEffects as z } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.js";
|
|
9
|
+
import { CloseIcon as Z } from "@forgedevstack/bear-icons/navigation";
|
|
10
|
+
import { Backdrop as j } from "../Backdrop/Backdrop.js";
|
|
11
|
+
import { MODAL_Z_INDEX as X, MODAL_ROOT_CLASSES as $, MODAL_PANEL_Z_INDEX as H, MODAL_TITLE_CLASSES as K, MODAL_CLOSE_CLASSES as Y, MODAL_HEADER_CLASSES as q, MODAL_BODY_CLASSES as G, MODAL_FOOTER_CLASSES as J, MODAL_EFFECT_CLASS_MAP as S, MODAL_SIZE_CLASSES as Q, MODAL_CONTAINER_CLASSES as U } from "./Modal.const.js";
|
|
12
|
+
const ne = (d) => {
|
|
11
13
|
const {
|
|
12
|
-
isOpen:
|
|
13
|
-
onClose:
|
|
14
|
-
title:
|
|
15
|
-
children:
|
|
16
|
-
size:
|
|
14
|
+
isOpen: e,
|
|
15
|
+
onClose: r,
|
|
16
|
+
title: a,
|
|
17
|
+
children: u,
|
|
18
|
+
size: E = "md",
|
|
17
19
|
showCloseButton: c = !0,
|
|
18
|
-
closeOnEscape:
|
|
19
|
-
disableEscapeKeyDown:
|
|
20
|
-
lockBodyScroll:
|
|
20
|
+
closeOnEscape: p = !0,
|
|
21
|
+
disableEscapeKeyDown: A = !1,
|
|
22
|
+
lockBodyScroll: L = !0,
|
|
21
23
|
cancelPreventScroll: C = !1,
|
|
22
24
|
closeOnBackdrop: M = !0,
|
|
23
25
|
hideBackdrop: O = !1,
|
|
24
26
|
keepMounted: n = !1,
|
|
25
27
|
isCancelBackgroundClick: i,
|
|
26
|
-
zIndex: B =
|
|
27
|
-
className:
|
|
28
|
+
zIndex: B = X,
|
|
29
|
+
className: b,
|
|
28
30
|
footer: m,
|
|
29
|
-
testId:
|
|
30
|
-
id:
|
|
31
|
-
} =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return document.addEventListener("keydown", t), _ && (document.body.style.overflow = "hidden"), () => {
|
|
40
|
-
document.removeEventListener("keydown", t), document.body.style.overflow = "";
|
|
31
|
+
testId: D,
|
|
32
|
+
id: v
|
|
33
|
+
} = d, N = F("Modal"), t = g(v, N), _ = R(null), f = L && !C, h = i !== void 0 ? i : M, y = p && !A, { openEffect: k } = z(d, "scale"), I = S[k] ?? S.scale;
|
|
34
|
+
if (P(_, {
|
|
35
|
+
enabled: e,
|
|
36
|
+
onEscape: y ? r : void 0
|
|
37
|
+
}), w(() => {
|
|
38
|
+
if (e)
|
|
39
|
+
return f && (document.body.style.overflow = "hidden"), () => {
|
|
40
|
+
document.body.style.overflow = "";
|
|
41
41
|
};
|
|
42
|
-
}, [
|
|
43
|
-
const
|
|
42
|
+
}, [e, f]), !e && !n) return null;
|
|
43
|
+
const T = /* @__PURE__ */ s(
|
|
44
44
|
"div",
|
|
45
45
|
{
|
|
46
|
-
className:
|
|
47
|
-
"data-testid":
|
|
48
|
-
id:
|
|
46
|
+
className: $,
|
|
47
|
+
"data-testid": D,
|
|
48
|
+
id: t,
|
|
49
49
|
style: { zIndex: B },
|
|
50
50
|
children: [
|
|
51
|
-
!O && /* @__PURE__ */
|
|
52
|
-
|
|
51
|
+
!O && /* @__PURE__ */ o(
|
|
52
|
+
j,
|
|
53
53
|
{
|
|
54
|
-
open:
|
|
54
|
+
open: e,
|
|
55
55
|
keepMounted: n,
|
|
56
56
|
blur: !0,
|
|
57
57
|
nested: !0,
|
|
58
58
|
className: "Bear-Modal__backdrop",
|
|
59
|
-
onClick:
|
|
59
|
+
onClick: h ? () => r() : void 0
|
|
60
60
|
}
|
|
61
61
|
),
|
|
62
62
|
/* @__PURE__ */ s(
|
|
63
63
|
"div",
|
|
64
64
|
{
|
|
65
|
+
ref: _,
|
|
65
66
|
role: "dialog",
|
|
66
67
|
"aria-modal": "true",
|
|
67
|
-
"aria-labelledby":
|
|
68
|
-
className:
|
|
68
|
+
"aria-labelledby": a ? `${t}-title` : void 0,
|
|
69
|
+
className: l(
|
|
69
70
|
"Bear-Modal__container",
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
U,
|
|
72
|
+
Q[E],
|
|
73
|
+
e && I,
|
|
74
|
+
b
|
|
73
75
|
),
|
|
74
|
-
style: { zIndex:
|
|
76
|
+
style: { zIndex: H },
|
|
75
77
|
children: [
|
|
76
|
-
(
|
|
77
|
-
|
|
78
|
+
(a || c) && /* @__PURE__ */ s("div", { className: l("Bear-Modal__header", q), children: [
|
|
79
|
+
a && /* @__PURE__ */ o(
|
|
78
80
|
"h2",
|
|
79
81
|
{
|
|
80
|
-
id: `${
|
|
81
|
-
className:
|
|
82
|
-
children:
|
|
82
|
+
id: `${t}-title`,
|
|
83
|
+
className: l("Bear-Modal__title", K),
|
|
84
|
+
children: a
|
|
83
85
|
}
|
|
84
86
|
),
|
|
85
|
-
c && /* @__PURE__ */
|
|
87
|
+
c && /* @__PURE__ */ o(
|
|
86
88
|
"button",
|
|
87
89
|
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
type: "button",
|
|
91
|
+
onClick: r,
|
|
92
|
+
className: l("Bear-Modal__close", Y),
|
|
90
93
|
"aria-label": "Close modal",
|
|
91
|
-
children: /* @__PURE__ */
|
|
94
|
+
children: /* @__PURE__ */ o(Z, { className: "bear-w-5 bear-h-5" })
|
|
92
95
|
}
|
|
93
96
|
)
|
|
94
97
|
] }),
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
-
m && /* @__PURE__ */
|
|
98
|
+
/* @__PURE__ */ o("div", { className: l("Bear-Modal__body", G), children: u }),
|
|
99
|
+
m && /* @__PURE__ */ o("div", { className: l("Bear-Modal__footer", J), children: m })
|
|
97
100
|
]
|
|
98
101
|
}
|
|
99
102
|
)
|
|
100
103
|
]
|
|
101
104
|
}
|
|
102
105
|
);
|
|
103
|
-
return x(
|
|
106
|
+
return x(T, document.body);
|
|
104
107
|
};
|
|
105
108
|
export {
|
|
106
|
-
|
|
109
|
+
ne as Modal
|
|
107
110
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
import { OverlayMotionEffect, OverlayEffectConfig } from '../../hooks/useFixedAnchorPosition';
|
|
2
3
|
export type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
3
4
|
export interface ModalProps {
|
|
4
5
|
/** Whether the modal is open */
|
|
@@ -26,6 +27,12 @@ export interface ModalProps {
|
|
|
26
27
|
cancelPreventScroll?: boolean;
|
|
27
28
|
/** When provided, sets whether clicking the backdrop closes the modal (overrides closeOnBackdrop) */
|
|
28
29
|
isCancelBackgroundClick?: boolean;
|
|
30
|
+
/** Transition effect when opening */
|
|
31
|
+
openEffect?: OverlayMotionEffect;
|
|
32
|
+
/** Transition effect when closing */
|
|
33
|
+
closeEffect?: OverlayMotionEffect;
|
|
34
|
+
/** Config for open and close transition effects */
|
|
35
|
+
effect?: OverlayEffectConfig;
|
|
29
36
|
/** Additional class names for content */
|
|
30
37
|
className?: string;
|
|
31
38
|
/** Footer content */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),C=require("../../../Box/Box.cjs"),S=require("../../../Button/Button.cjs"),p=require("../../../Flex/Flex.cjs"),a=require("../../../Modal/Modal.cjs")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),C=require("../../../Box/Box.cjs"),S=require("../../../Button/Button.cjs"),p=require("../../../Flex/Flex.cjs"),a=require("../../../Modal/Modal.cjs");require("react");const M=require("../../../Typography/Typography.cjs"),e=require("../../ModalsProvider.const.cjs"),t=require("../../ModalsProvider.utils.cjs"),T=A=>{const{entry:o,index:i,isTop:r,loading:c,labels:l,onDismiss:n,onConfirm:d}=A,_=r?o.options.closeOnBackdrop??e.MODALS_DEFAULT_CLOSE_ON_BACKDROP:e.MODALS_STACKED_LAYER_CAN_CLOSE,O=r?o.options.closeOnEscape??e.MODALS_DEFAULT_CLOSE_ON_ESCAPE:e.MODALS_STACKED_LAYER_CAN_CLOSE;if(t.isConfirmEntry(o)){const L=o.options.confirmText??l.confirm,D=o.options.cancelText??l.cancel,E=o.options.confirmVariant??e.MODALS_DEFAULT_CONFIRM_VARIANT;return s.jsx(a.Modal,{isOpen:e.MODALS_ALWAYS_OPEN,id:o.id,testId:o.options.testId,title:o.options.title,size:e.MODALS_DEFAULT_SIZE,className:o.options.className,showCloseButton:e.MODALS_DEFAULT_SHOW_CLOSE,closeOnBackdrop:_,closeOnEscape:O,lockBodyScroll:e.MODALS_NESTED_LOCK_BODY_SCROLL,zIndex:t.resolveStackedZIndex(i),onClose:()=>n(o.id),footer:s.jsxs(p.Flex,{className:e.MODALS_CONFIRM_FOOTER_CLASS,justify:e.MODALS_FOOTER_JUSTIFY,gap:e.MODALS_FOOTER_GAP,children:[s.jsx(S.Button,{variant:e.MODALS_CANCEL_VARIANT,onClick:()=>n(o.id),disabled:c,children:D}),s.jsx(S.Button,{variant:E,onClick:()=>d(o.id),loading:c,children:L})]}),children:o.options.description?s.jsx(M.Typography,{variant:e.MODALS_DESCRIPTION_VARIANT,className:e.MODALS_CONFIRM_BODY_CLASS,children:o.options.description}):null})}return s.jsx(a.Modal,{isOpen:e.MODALS_ALWAYS_OPEN,id:o.id,testId:o.options.testId,title:o.options.title,size:o.options.size??e.MODALS_DEFAULT_SIZE,footer:o.options.footer,className:o.options.className,showCloseButton:o.options.showCloseButton??e.MODALS_DEFAULT_SHOW_CLOSE,closeOnBackdrop:_,closeOnEscape:O,lockBodyScroll:e.MODALS_NESTED_LOCK_BODY_SCROLL,zIndex:t.resolveStackedZIndex(i),onClose:()=>n(o.id),children:s.jsx(C.Box,{className:e.MODALS_STACK_ITEM_CLASS,children:o.options.children})})};exports.StackedModal=T;
|
|
@@ -3,10 +3,11 @@ import { Box as f } from "../../../Box/Box.js";
|
|
|
3
3
|
import { Button as O } from "../../../Button/Button.js";
|
|
4
4
|
import { Flex as N } from "../../../Flex/Flex.js";
|
|
5
5
|
import { Modal as _ } from "../../../Modal/Modal.js";
|
|
6
|
+
import "react";
|
|
6
7
|
import { Typography as I } from "../../../Typography/Typography.js";
|
|
7
|
-
import { MODALS_DEFAULT_CLOSE_ON_BACKDROP as F, MODALS_STACKED_LAYER_CAN_CLOSE as a, MODALS_DEFAULT_CLOSE_ON_ESCAPE as R, MODALS_DEFAULT_CONFIRM_VARIANT as h, MODALS_NESTED_LOCK_BODY_SCROLL as
|
|
8
|
+
import { MODALS_DEFAULT_CLOSE_ON_BACKDROP as F, MODALS_STACKED_LAYER_CAN_CLOSE as a, MODALS_DEFAULT_CLOSE_ON_ESCAPE as R, MODALS_DEFAULT_CONFIRM_VARIANT as h, MODALS_NESTED_LOCK_BODY_SCROLL as p, MODALS_DEFAULT_SHOW_CLOSE as A, MODALS_DEFAULT_SIZE as S, MODALS_ALWAYS_OPEN as d, MODALS_CONFIRM_BODY_CLASS as B, MODALS_DESCRIPTION_VARIANT as x, MODALS_FOOTER_GAP as k, MODALS_FOOTER_JUSTIFY as u, MODALS_CONFIRM_FOOTER_CLASS as y, MODALS_CANCEL_VARIANT as U, MODALS_STACK_ITEM_CLASS as z } from "../../ModalsProvider.const.js";
|
|
8
9
|
import { isConfirmEntry as P, resolveStackedZIndex as L } from "../../ModalsProvider.utils.js";
|
|
9
|
-
const
|
|
10
|
+
const Z = (m) => {
|
|
10
11
|
const { entry: o, index: n, isTop: s, loading: e, labels: r, onDismiss: t, onConfirm: C } = m, c = s ? o.options.closeOnBackdrop ?? F : a, l = s ? o.options.closeOnEscape ?? R : a;
|
|
11
12
|
if (P(o)) {
|
|
12
13
|
const D = o.options.confirmText ?? r.confirm, E = o.options.cancelText ?? r.cancel, M = o.options.confirmVariant ?? h;
|
|
@@ -17,12 +18,12 @@ const W = (m) => {
|
|
|
17
18
|
id: o.id,
|
|
18
19
|
testId: o.options.testId,
|
|
19
20
|
title: o.options.title,
|
|
20
|
-
size:
|
|
21
|
+
size: S,
|
|
21
22
|
className: o.options.className,
|
|
22
|
-
showCloseButton:
|
|
23
|
+
showCloseButton: A,
|
|
23
24
|
closeOnBackdrop: c,
|
|
24
25
|
closeOnEscape: l,
|
|
25
|
-
lockBodyScroll:
|
|
26
|
+
lockBodyScroll: p,
|
|
26
27
|
zIndex: L(n),
|
|
27
28
|
onClose: () => t(o.id),
|
|
28
29
|
footer: /* @__PURE__ */ T(N, { className: y, justify: u, gap: k, children: [
|
|
@@ -48,13 +49,13 @@ const W = (m) => {
|
|
|
48
49
|
id: o.id,
|
|
49
50
|
testId: o.options.testId,
|
|
50
51
|
title: o.options.title,
|
|
51
|
-
size: o.options.size ??
|
|
52
|
+
size: o.options.size ?? S,
|
|
52
53
|
footer: o.options.footer,
|
|
53
54
|
className: o.options.className,
|
|
54
|
-
showCloseButton: o.options.showCloseButton ??
|
|
55
|
+
showCloseButton: o.options.showCloseButton ?? A,
|
|
55
56
|
closeOnBackdrop: c,
|
|
56
57
|
closeOnEscape: l,
|
|
57
|
-
lockBodyScroll:
|
|
58
|
+
lockBodyScroll: p,
|
|
58
59
|
zIndex: L(n),
|
|
59
60
|
onClose: () => t(o.id),
|
|
60
61
|
children: /* @__PURE__ */ i(f, { className: z, children: o.options.children })
|
|
@@ -62,5 +63,5 @@ const W = (m) => {
|
|
|
62
63
|
);
|
|
63
64
|
};
|
|
64
65
|
export {
|
|
65
|
-
|
|
66
|
+
Z as StackedModal
|
|
66
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),v=require("react"),y=require("../../constants/numbers.const.cjs"),i=require("../../constants/generals.const.cjs"),q=require("../../utils/cn.cjs"),e=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs"),h=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.cjs"),p=require("../Portal/Portal.cjs"),x=require("../Transition/Transition.cjs"),R=require("../Transition/Transition.const.cjs"),E=require("./OverlayPortal.const.cjs"),D=c=>{const{open:t,ready:d,style:S,zIndex:P,className:O,testId:N,attributes:A,panelRef:l,children:L}=c,{openEffect:s,closeEffect:o}=h.resolveOverlayEffects(c,e.OVERLAY_OPEN_EFFECT_DEFAULT),[r,_]=v.useState(i.BOOLEAN_FALSE),F=s!==e.OVERLAY_OPEN_EFFECT_NONE||o!==e.OVERLAY_OPEN_EFFECT_NONE;if(t&&d&&!r&&_(i.BOOLEAN_TRUE),!t&&r&&!F&&_(i.BOOLEAN_FALSE),!r)return null;const n=t?s:o,u=(n===e.OVERLAY_OPEN_EFFECT_NONE?void 0:E.OVERLAY_EFFECT_TRANSITION[n])??(s===e.OVERLAY_OPEN_EFFECT_NONE?void 0:E.OVERLAY_EFFECT_TRANSITION[s])??(o===e.OVERLAY_OPEN_EFFECT_NONE?void 0:E.OVERLAY_EFFECT_TRANSITION[o]),f=t&&s===e.OVERLAY_OPEN_EFFECT_NONE||!t&&o===e.OVERLAY_OPEN_EFFECT_NONE,T={...S,zIndex:P,visibility:e.VISIBILITY_VISIBLE},I=()=>{t||_(i.BOOLEAN_FALSE)},V=q.cn(E.OVERLAY_PANEL_CLASS,n&&`${E.OVERLAY_PANEL_CLASS}--${n}`,O),Y=n==="expand"||n==="reveal"?E.OVERLAY_EXPAND_MS:R.DEFAULT_DURATION,C=n==="elastic"?E.OVERLAY_ELASTIC_EASING:R.DEFAULT_EASING,m=F&&u?a.jsx(x.Transition,{show:t,name:u,duration:f?y.ZERO:Y,easing:C,className:V,style:T,nodeRef:l,onLeft:I,elementProps:{...A,"data-testid":N},children:L}):a.jsx("div",{ref:l,className:O,style:T,"data-testid":N,...A,children:L});return a.jsx(p.Portal,{children:m})};exports.OverlayPortal=D;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react");const E=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs"),_={[E.OVERLAY_OPEN_EFFECT_FADE]:E.OVERLAY_OPEN_EFFECT_FADE,[E.OVERLAY_OPEN_EFFECT_SLIDE_DOWN]:E.OVERLAY_OPEN_EFFECT_SLIDE_DOWN,[E.OVERLAY_OPEN_EFFECT_SCALE]:E.OVERLAY_OPEN_EFFECT_SCALE,[E.OVERLAY_OPEN_EFFECT_FOLD]:E.OVERLAY_OPEN_EFFECT_FOLD};exports.OVERLAY_OPEN_EFFECT_NONE=E.OVERLAY_OPEN_EFFECT_NONE;exports.OVERLAY_EFFECT_TRANSITION=_;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react");const E=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs"),_={[E.OVERLAY_OPEN_EFFECT_FADE]:E.OVERLAY_OPEN_EFFECT_FADE,[E.OVERLAY_OPEN_EFFECT_SLIDE_DOWN]:E.OVERLAY_OPEN_EFFECT_SLIDE_DOWN,[E.OVERLAY_OPEN_EFFECT_SCALE]:E.OVERLAY_OPEN_EFFECT_SCALE,[E.OVERLAY_OPEN_EFFECT_FOLD]:E.OVERLAY_OPEN_EFFECT_FOLD,[E.OVERLAY_OPEN_EFFECT_ELASTIC]:E.OVERLAY_OPEN_EFFECT_ELASTIC,[E.OVERLAY_OPEN_EFFECT_REVEAL]:E.OVERLAY_OPEN_EFFECT_REVEAL,[E.OVERLAY_OPEN_EFFECT_EXPAND]:E.OVERLAY_OPEN_EFFECT_EXPAND},A="cubic-bezier(0.34, 1.56, 0.64, 1)",O=375,F="Bear-Overlay",L={scale:"animate-scale-in",fade:"animate-fade-in","slide-down":"animate-grow-up",fold:"animate-alert-dialog-in",elastic:"animate-overlay-elastic",reveal:"animate-overlay-reveal",expand:"animate-overlay-expand",none:""};exports.OVERLAY_OPEN_EFFECT_NONE=E.OVERLAY_OPEN_EFFECT_NONE;exports.OVERLAY_EFFECT_CLASS_MAP=L;exports.OVERLAY_EFFECT_TRANSITION=_;exports.OVERLAY_ELASTIC_EASING=A;exports.OVERLAY_EXPAND_MS=O;exports.OVERLAY_PANEL_CLASS=F;
|
|
@@ -2,3 +2,7 @@ import { TransitionName } from '../Transition/Transition.types';
|
|
|
2
2
|
import { OverlayOpenEffect, OVERLAY_OPEN_EFFECT_NONE } from '../../hooks/useFixedAnchorPosition';
|
|
3
3
|
export { OVERLAY_OPEN_EFFECT_NONE };
|
|
4
4
|
export declare const OVERLAY_EFFECT_TRANSITION: Record<Exclude<OverlayOpenEffect, typeof OVERLAY_OPEN_EFFECT_NONE>, TransitionName>;
|
|
5
|
+
export declare const OVERLAY_ELASTIC_EASING = "cubic-bezier(0.34, 1.56, 0.64, 1)";
|
|
6
|
+
export declare const OVERLAY_EXPAND_MS = 375;
|
|
7
|
+
export declare const OVERLAY_PANEL_CLASS = "Bear-Overlay";
|
|
8
|
+
export declare const OVERLAY_EFFECT_CLASS_MAP: Record<string, string>;
|
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
import "react";
|
|
2
|
-
import {
|
|
3
|
-
import { OVERLAY_OPEN_EFFECT_NONE as
|
|
4
|
-
const
|
|
2
|
+
import { OVERLAY_OPEN_EFFECT_EXPAND as E, OVERLAY_OPEN_EFFECT_REVEAL as _, OVERLAY_OPEN_EFFECT_ELASTIC as a, OVERLAY_OPEN_EFFECT_FOLD as e, OVERLAY_OPEN_EFFECT_SCALE as A, OVERLAY_OPEN_EFFECT_SLIDE_DOWN as O, OVERLAY_OPEN_EFFECT_FADE as F } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js";
|
|
3
|
+
import { OVERLAY_OPEN_EFFECT_NONE as l } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js";
|
|
4
|
+
const o = {
|
|
5
5
|
[F]: F,
|
|
6
6
|
[O]: O,
|
|
7
|
+
[A]: A,
|
|
8
|
+
[e]: e,
|
|
9
|
+
[a]: a,
|
|
7
10
|
[_]: _,
|
|
8
11
|
[E]: E
|
|
12
|
+
}, t = "cubic-bezier(0.34, 1.56, 0.64, 1)", i = 375, N = "Bear-Overlay", r = {
|
|
13
|
+
scale: "animate-scale-in",
|
|
14
|
+
fade: "animate-fade-in",
|
|
15
|
+
"slide-down": "animate-grow-up",
|
|
16
|
+
fold: "animate-alert-dialog-in",
|
|
17
|
+
elastic: "animate-overlay-elastic",
|
|
18
|
+
reveal: "animate-overlay-reveal",
|
|
19
|
+
expand: "animate-overlay-expand",
|
|
20
|
+
none: ""
|
|
9
21
|
};
|
|
10
22
|
export {
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
r as OVERLAY_EFFECT_CLASS_MAP,
|
|
24
|
+
o as OVERLAY_EFFECT_TRANSITION,
|
|
25
|
+
t as OVERLAY_ELASTIC_EASING,
|
|
26
|
+
i as OVERLAY_EXPAND_MS,
|
|
27
|
+
l as OVERLAY_OPEN_EFFECT_NONE,
|
|
28
|
+
N as OVERLAY_PANEL_CLASS
|
|
13
29
|
};
|
|
@@ -1,45 +1,51 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { ZERO as
|
|
4
|
-
import { BOOLEAN_FALSE as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useState as y } from "react";
|
|
3
|
+
import { ZERO as D } from "../../constants/numbers.const.js";
|
|
4
|
+
import { BOOLEAN_FALSE as m, BOOLEAN_TRUE as V } from "../../constants/generals.const.js";
|
|
5
|
+
import { cn as h } from "../../utils/cn.js";
|
|
6
|
+
import { OVERLAY_OPEN_EFFECT_DEFAULT as P, VISIBILITY_VISIBLE as Y, OVERLAY_OPEN_EFFECT_NONE as e } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js";
|
|
7
|
+
import { resolveOverlayEffects as C } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.js";
|
|
8
|
+
import { Portal as U } from "../Portal/Portal.js";
|
|
9
|
+
import { Transition as x } from "../Transition/Transition.js";
|
|
10
|
+
import { DEFAULT_EASING as B, DEFAULT_DURATION as g } from "../Transition/Transition.const.js";
|
|
11
|
+
import { OVERLAY_PANEL_CLASS as O, OVERLAY_ELASTIC_EASING as b, OVERLAY_EXPAND_MS as G, OVERLAY_EFFECT_TRANSITION as E } from "./OverlayPortal.const.js";
|
|
12
|
+
const tt = (f) => {
|
|
12
13
|
const {
|
|
13
|
-
open:
|
|
14
|
-
ready:
|
|
15
|
-
style:
|
|
16
|
-
zIndex:
|
|
17
|
-
className:
|
|
18
|
-
testId:
|
|
19
|
-
attributes:
|
|
20
|
-
panelRef:
|
|
21
|
-
children:
|
|
22
|
-
} =
|
|
23
|
-
if (
|
|
14
|
+
open: t,
|
|
15
|
+
ready: I,
|
|
16
|
+
style: R,
|
|
17
|
+
zIndex: S,
|
|
18
|
+
className: l,
|
|
19
|
+
testId: c,
|
|
20
|
+
attributes: d,
|
|
21
|
+
panelRef: A,
|
|
22
|
+
children: p
|
|
23
|
+
} = f, { openEffect: n, closeEffect: i } = C(f, P), [r, s] = y(m), L = n !== e || i !== e;
|
|
24
|
+
if (t && I && !r && s(V), !t && r && !L && s(m), !r)
|
|
24
25
|
return null;
|
|
25
|
-
const
|
|
26
|
-
...
|
|
27
|
-
zIndex:
|
|
28
|
-
visibility:
|
|
29
|
-
},
|
|
30
|
-
|
|
26
|
+
const o = t ? n : i, N = (o === e ? void 0 : E[o]) ?? (n === e ? void 0 : E[n]) ?? (i === e ? void 0 : E[i]), T = t && n === e || !t && i === e, _ = {
|
|
27
|
+
...R,
|
|
28
|
+
zIndex: S,
|
|
29
|
+
visibility: Y
|
|
30
|
+
}, u = () => {
|
|
31
|
+
t || s(m);
|
|
32
|
+
}, v = h(O, o && `${O}--${o}`, l), F = L && N ? /* @__PURE__ */ a(
|
|
33
|
+
x,
|
|
31
34
|
{
|
|
32
|
-
show:
|
|
33
|
-
name:
|
|
34
|
-
duration:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
show: t,
|
|
36
|
+
name: N,
|
|
37
|
+
duration: T ? D : o === "expand" || o === "reveal" ? G : g,
|
|
38
|
+
easing: o === "elastic" ? b : B,
|
|
39
|
+
className: v,
|
|
40
|
+
style: _,
|
|
41
|
+
nodeRef: A,
|
|
42
|
+
onLeft: u,
|
|
43
|
+
elementProps: { ...d, "data-testid": c },
|
|
44
|
+
children: p
|
|
39
45
|
}
|
|
40
|
-
) : l });
|
|
41
|
-
return /* @__PURE__ */
|
|
46
|
+
) : /* @__PURE__ */ a("div", { ref: A, className: l, style: _, "data-testid": c, ...d, children: p });
|
|
47
|
+
return /* @__PURE__ */ a(U, { children: F });
|
|
42
48
|
};
|
|
43
49
|
export {
|
|
44
|
-
|
|
50
|
+
tt as OverlayPortal
|
|
45
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("react/jsx-runtime"),c=require("react"),V=require("react-dom"),R=require("../../utils/cn.cjs"),m=require("../../constants/numbers.const.cjs"),j=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.cjs"),e=require("./Popover.const.cjs");function z(E,t,d){const n={position:"fixed",zIndex:e.POPOVER_Z_INDEX},[r]=E.split("-"),s=E.includes(e.ALIGN_START),i=E.includes(e.ALIGN_END);return r===e.PLACEMENT_BOTTOM||r===e.PLACEMENT_TOP?(n.top=r===e.PLACEMENT_BOTTOM?t.bottom+d:void 0,n.bottom=r===e.PLACEMENT_TOP?window.innerHeight-t.top+d:void 0,n.left=s?t.left:i?t.right:t.left+t.width/m.TWO,n.transform=!s&&!i?e.TRANSFORM_TRANSLATE_X_CENTER:i?e.TRANSFORM_TRANSLATE_X_END:void 0):(n.left=r===e.PLACEMENT_RIGHT?t.right+d:void 0,n.right=r===e.PLACEMENT_LEFT?window.innerWidth-t.left+d:void 0,n.bottom=i?window.innerHeight-t.bottom:void 0,n.top=i?void 0:s?t.top:t.top+t.height/m.TWO,n.transform=!s&&!i?e.TRANSFORM_TRANSLATE_Y_CENTER:i?e.TRANSFORM_TRANSLATE_Y_END:void 0),n}const B=({children:E,content:t,placement:d=e.PLACEMENT_BOTTOM,trigger:n="click",open:r,onOpenChange:s,className:i,contentClassName:b,arrow:O=!0,closeOnClickOutside:P=!0,closeOnEscape:A=!0,offset:L=e.POPOVER_DEFAULT_OFFSET,openEffect:w,closeEffect:S,effect:h})=>{const[M,p]=c.useState(!1),[C,F]=c.useState({}),f=c.useRef(null),T=c.useRef(null),a=r!==void 0?r:M,l=c.useCallback(o=>{p(o),s==null||s(o)},[s]),v=c.useCallback(()=>{if(!f.current||!T.current)return;const o=f.current.firstElementChild;if(!o)return;const u=o.getBoundingClientRect();F(z(d,u,L))},[d,L]);c.useEffect(()=>{if(a){v();const o=()=>v(),u=()=>v();return window.addEventListener("resize",o),window.addEventListener("scroll",u,!0),()=>{window.removeEventListener("resize",o),window.removeEventListener("scroll",u,!0)}}},[a,v]),c.useEffect(()=>{if(!a||!P)return;const o=u=>{const N=u.target;f.current&&!f.current.contains(N)&&T.current&&!T.current.contains(N)&&l(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[a,P,l]),c.useEffect(()=>{if(!a||!A)return;const o=u=>{u.key==="Escape"&&l(!1)};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[a,A,l]);const g=()=>{n==="click"&&l(!a)},y=()=>{n==="hover"&&l(!0)},k=()=>{n==="hover"&&l(!1)},x=d.split("-")[0],{openEffect:D}=j.resolveOverlayEffects({openEffect:w,closeEffect:S,effect:h},"fade"),q=e.POPOVER_EFFECT_CLASS_MAP[D]??e.POPOVER_EFFECT_CLASS_MAP.fade,I=a&&typeof document<"u"&&V.createPortal(_.jsxs("div",{ref:T,"data-bear-popover":!0,className:R.cn("bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3",q,b),style:C,children:[t,O&&_.jsx("div",{className:R.cn("bear-absolute bear-w-0 bear-h-0 bear-border-8",e.POPOVER_ARROW_STYLES[x])})]}),document.body);return _.jsxs("div",{ref:f,className:R.cn("bear-relative bear-inline-block",i),onMouseEnter:y,onMouseLeave:k,children:[_.jsx("div",{onClick:g,className:"bear-cursor-pointer",children:E}),I]})};exports.Popover=B;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../constants/numbers.const.cjs"),t=require("../OverlayPortal/OverlayPortal.const.cjs"),e=r.ELEVEN_THOUSAND,E=r.EIGHT,T=t.OVERLAY_EFFECT_CLASS_MAP,a="bottom",_="top",n="left",A="right",o="start",R="end",b="translateX(-50%)",N="translateX(-100%)",s="translateY(-50%)",O="translateY(-100%)",S={top:"bear-top-full bear-left-1/2 -bear-translate-x-1/2 bear-border-t-zinc-700 bear-border-x-transparent bear-border-b-transparent",bottom:"bear-bottom-full bear-left-1/2 -bear-translate-x-1/2 bear-border-b-zinc-700 bear-border-x-transparent bear-border-t-transparent",left:"bear-left-full bear-top-1/2 -bear-translate-y-1/2 bear-border-l-zinc-700 bear-border-y-transparent bear-border-r-transparent",right:"bear-right-full bear-top-1/2 -bear-translate-y-1/2 bear-border-r-zinc-700 bear-border-y-transparent bear-border-l-transparent"};exports.ALIGN_END=R;exports.ALIGN_START=o;exports.PLACEMENT_BOTTOM=a;exports.PLACEMENT_LEFT=n;exports.PLACEMENT_RIGHT=A;exports.PLACEMENT_TOP=_;exports.POPOVER_ARROW_STYLES=S;exports.POPOVER_DEFAULT_OFFSET=E;exports.POPOVER_EFFECT_CLASS_MAP=T;exports.POPOVER_Z_INDEX=e;exports.TRANSFORM_TRANSLATE_X_CENTER=b;exports.TRANSFORM_TRANSLATE_X_END=N;exports.TRANSFORM_TRANSLATE_Y_CENTER=s;exports.TRANSFORM_TRANSLATE_Y_END=O;
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const POPOVER_ROOT_CLASS = "Bear-Popover";
|
|
2
|
+
export declare const POPOVER_Z_INDEX = 11000;
|
|
3
|
+
export declare const POPOVER_DEFAULT_OFFSET = 8;
|
|
4
|
+
export declare const POPOVER_EFFECT_CLASS_MAP: Record<string, string>;
|
|
5
|
+
export declare const PLACEMENT_BOTTOM = "bottom";
|
|
6
|
+
export declare const PLACEMENT_TOP = "top";
|
|
7
|
+
export declare const PLACEMENT_LEFT = "left";
|
|
8
|
+
export declare const PLACEMENT_RIGHT = "right";
|
|
9
|
+
export declare const ALIGN_START = "start";
|
|
10
|
+
export declare const ALIGN_END = "end";
|
|
11
|
+
export declare const TRANSFORM_TRANSLATE_X_CENTER = "translateX(-50%)";
|
|
12
|
+
export declare const TRANSFORM_TRANSLATE_X_END = "translateX(-100%)";
|
|
13
|
+
export declare const TRANSFORM_TRANSLATE_Y_CENTER = "translateY(-50%)";
|
|
14
|
+
export declare const TRANSFORM_TRANSLATE_Y_END = "translateY(-100%)";
|
|
15
|
+
export declare const POPOVER_ARROW_STYLES: Record<string, string>;
|