@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.
Files changed (169) hide show
  1. package/README.md +100 -290
  2. package/dist/components/Alert/Alert.cjs +1 -1
  3. package/dist/components/Alert/Alert.const.cjs +1 -1
  4. package/dist/components/Alert/Alert.const.d.ts +1 -6
  5. package/dist/components/Alert/Alert.const.js +10 -30
  6. package/dist/components/Alert/Alert.js +49 -54
  7. package/dist/components/AlertDialog/AlertDialog.cjs +1 -1
  8. package/dist/components/AlertDialog/AlertDialog.js +67 -84
  9. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  10. package/dist/components/BottomSheet/BottomSheet.js +72 -64
  11. package/dist/components/Calendar/Calendar.cjs +1 -1
  12. package/dist/components/Calendar/Calendar.js +122 -112
  13. package/dist/components/Chart/BarChart.cjs +1 -1
  14. package/dist/components/Chart/BarChart.js +37 -36
  15. package/dist/components/Chart/Chart.types.d.ts +2 -0
  16. package/dist/components/Chart/Chart.utils.cjs +1 -1
  17. package/dist/components/Chart/Chart.utils.d.ts +2 -0
  18. package/dist/components/Chart/Chart.utils.js +32 -31
  19. package/dist/components/Chart/FunnelChart.cjs +1 -1
  20. package/dist/components/Chart/FunnelChart.js +29 -28
  21. package/dist/components/Chart/LineChart.cjs +1 -1
  22. package/dist/components/Chart/LineChart.js +45 -44
  23. package/dist/components/Chart/PieChart.cjs +1 -1
  24. package/dist/components/Chart/PieChart.js +52 -51
  25. package/dist/components/Chart/RadarChart.cjs +1 -1
  26. package/dist/components/Chart/RadarChart.js +63 -62
  27. package/dist/components/Chart/index.d.ts +1 -1
  28. package/dist/components/ChipGroup/ChipGroup.cjs +1 -1
  29. package/dist/components/ChipGroup/ChipGroup.const.cjs +1 -1
  30. package/dist/components/ChipGroup/ChipGroup.const.d.ts +2 -0
  31. package/dist/components/ChipGroup/ChipGroup.const.js +6 -4
  32. package/dist/components/ChipGroup/ChipGroup.js +52 -48
  33. package/dist/components/CommandPalette/CommandItem.cjs +1 -0
  34. package/dist/components/CommandPalette/CommandItem.d.ts +6 -0
  35. package/dist/components/CommandPalette/CommandItem.js +39 -0
  36. package/dist/components/CommandPalette/CommandPalette.cjs +1 -1
  37. package/dist/components/CommandPalette/CommandPalette.js +129 -144
  38. package/dist/components/Drawer/Drawer.cjs +1 -1
  39. package/dist/components/Drawer/Drawer.js +72 -66
  40. package/dist/components/EmptyState/EmptyState.cjs +1 -1
  41. package/dist/components/EmptyState/EmptyState.const.cjs +1 -1
  42. package/dist/components/EmptyState/EmptyState.const.d.ts +5 -0
  43. package/dist/components/EmptyState/EmptyState.const.js +30 -15
  44. package/dist/components/EmptyState/EmptyState.js +35 -35
  45. package/dist/components/EmptyState/EmptyState.types.d.ts +2 -2
  46. package/dist/components/HoverCard/HoverCard.cjs +4 -3
  47. package/dist/components/HoverCard/HoverCard.const.cjs +1 -0
  48. package/dist/components/HoverCard/HoverCard.const.d.ts +1 -0
  49. package/dist/components/HoverCard/HoverCard.const.js +5 -0
  50. package/dist/components/HoverCard/HoverCard.js +62 -56
  51. package/dist/components/HoverCard/HoverCard.types.d.ts +7 -0
  52. package/dist/components/Menu/Menu.cjs +1 -1
  53. package/dist/components/Menu/Menu.const.cjs +1 -0
  54. package/dist/components/Menu/Menu.const.d.ts +2 -0
  55. package/dist/components/Menu/Menu.const.js +7 -0
  56. package/dist/components/Menu/Menu.d.ts +3 -9
  57. package/dist/components/Menu/Menu.js +57 -89
  58. package/dist/components/Menu/Menu.types.d.ts +8 -1
  59. package/dist/components/Menu/MenuDivider.cjs +1 -0
  60. package/dist/components/Menu/MenuDivider.d.ts +6 -0
  61. package/dist/components/Menu/MenuDivider.js +7 -0
  62. package/dist/components/Menu/MenuItem.cjs +1 -0
  63. package/dist/components/Menu/MenuItem.d.ts +6 -0
  64. package/dist/components/Menu/MenuItem.js +46 -0
  65. package/dist/components/Modal/Modal.cjs +1 -1
  66. package/dist/components/Modal/Modal.const.cjs +1 -1
  67. package/dist/components/Modal/Modal.const.d.ts +1 -0
  68. package/dist/components/Modal/Modal.const.js +15 -12
  69. package/dist/components/Modal/Modal.js +62 -59
  70. package/dist/components/Modal/Modal.types.d.ts +7 -0
  71. package/dist/components/ModalsProvider/components/StackedModal/StackedModal.cjs +1 -1
  72. package/dist/components/ModalsProvider/components/StackedModal/StackedModal.js +10 -9
  73. package/dist/components/OverlayPortal/OverlayPortal.cjs +1 -1
  74. package/dist/components/OverlayPortal/OverlayPortal.const.cjs +1 -1
  75. package/dist/components/OverlayPortal/OverlayPortal.const.d.ts +4 -0
  76. package/dist/components/OverlayPortal/OverlayPortal.const.js +21 -5
  77. package/dist/components/OverlayPortal/OverlayPortal.js +44 -38
  78. package/dist/components/Popover/Popover.cjs +1 -1
  79. package/dist/components/Popover/Popover.const.cjs +1 -0
  80. package/dist/components/Popover/Popover.const.d.ts +15 -1
  81. package/dist/components/Popover/Popover.const.js +24 -0
  82. package/dist/components/Popover/Popover.js +77 -73
  83. package/dist/components/Popover/Popover.types.d.ts +7 -0
  84. package/dist/components/Select/Select.cjs +1 -1
  85. package/dist/components/Select/Select.const.cjs +1 -1
  86. package/dist/components/Select/Select.const.d.ts +1 -0
  87. package/dist/components/Select/Select.const.js +7 -6
  88. package/dist/components/Select/Select.js +101 -96
  89. package/dist/components/Tabs/TabList.cjs +1 -1
  90. package/dist/components/Tabs/TabList.js +1 -1
  91. package/dist/components/Toast/Toast.cjs +1 -1
  92. package/dist/components/Toast/Toast.const.cjs +1 -1
  93. package/dist/components/Toast/Toast.const.d.ts +2 -0
  94. package/dist/components/Toast/Toast.const.js +11 -8
  95. package/dist/components/Toast/Toast.context.cjs +1 -0
  96. package/dist/components/Toast/Toast.context.d.ts +3 -0
  97. package/dist/components/Toast/Toast.context.js +11 -0
  98. package/dist/components/Toast/Toast.d.ts +4 -3
  99. package/dist/components/Toast/Toast.icons.cjs +1 -0
  100. package/dist/components/Toast/Toast.icons.d.ts +4 -0
  101. package/dist/components/Toast/Toast.icons.js +29 -0
  102. package/dist/components/Toast/Toast.js +32 -160
  103. package/dist/components/Toast/ToastContainer.cjs +1 -0
  104. package/dist/components/Toast/ToastContainer.d.ts +3 -0
  105. package/dist/components/Toast/ToastContainer.js +39 -0
  106. package/dist/components/Toast/ToastItem.cjs +1 -0
  107. package/dist/components/Toast/ToastItem.d.ts +5 -0
  108. package/dist/components/Toast/ToastItem.js +86 -0
  109. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -0
  110. package/dist/components/ToggleGroup/ToggleGroup.const.cjs +1 -0
  111. package/dist/components/ToggleGroup/ToggleGroup.const.d.ts +15 -0
  112. package/dist/components/ToggleGroup/ToggleGroup.const.js +33 -0
  113. package/dist/components/ToggleGroup/ToggleGroup.context.cjs +1 -0
  114. package/dist/components/ToggleGroup/ToggleGroup.context.d.ts +2 -0
  115. package/dist/components/ToggleGroup/ToggleGroup.context.js +5 -0
  116. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -0
  117. package/dist/components/ToggleGroup/ToggleGroup.js +89 -0
  118. package/dist/components/ToggleGroup/ToggleGroup.types.d.ts +48 -0
  119. package/dist/components/ToggleGroup/ToggleGroupItem.cjs +1 -0
  120. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +2 -0
  121. package/dist/components/ToggleGroup/ToggleGroupItem.js +50 -0
  122. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.cjs +1 -0
  123. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.d.ts +1 -0
  124. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.js +6 -0
  125. package/dist/components/ToggleGroup/index.d.ts +4 -0
  126. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  127. package/dist/components/Tooltip/Tooltip.const.cjs +1 -0
  128. package/dist/components/Tooltip/Tooltip.const.d.ts +8 -0
  129. package/dist/components/Tooltip/Tooltip.const.js +13 -0
  130. package/dist/components/Tooltip/Tooltip.js +59 -61
  131. package/dist/components/Tooltip/Tooltip.types.d.ts +7 -0
  132. package/dist/components/Transition/Transition.cjs +1 -1
  133. package/dist/components/Transition/Transition.const.cjs +1 -1
  134. package/dist/components/Transition/Transition.const.js +26 -8
  135. package/dist/components/Transition/Transition.js +77 -74
  136. package/dist/components/Transition/Transition.types.d.ts +8 -2
  137. package/dist/components/Typography/Typography.const.cjs +1 -1
  138. package/dist/components/Typography/Typography.const.js +2 -1
  139. package/dist/components/index.cjs +1 -1
  140. package/dist/components/index.d.ts +3 -1
  141. package/dist/components/index.js +429 -419
  142. package/dist/constants/generals.const.cjs +1 -1
  143. package/dist/constants/generals.const.js +85 -86
  144. package/dist/constants/numbers.const.cjs +1 -1
  145. package/dist/constants/numbers.const.d.ts +3 -0
  146. package/dist/constants/numbers.const.js +37 -34
  147. package/dist/hooks/index.cjs +1 -1
  148. package/dist/hooks/index.d.ts +2 -0
  149. package/dist/hooks/index.js +6 -4
  150. package/dist/hooks/useFixedAnchorPosition/index.d.ts +1 -1
  151. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs +1 -1
  152. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.d.ts +3 -0
  153. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js +17 -14
  154. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.types.d.ts +1 -1
  155. package/dist/hooks/useFocusTrap/index.d.ts +2 -0
  156. package/dist/hooks/useFocusTrap/useFocusTrap.cjs +1 -0
  157. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +3 -0
  158. package/dist/hooks/useFocusTrap/useFocusTrap.js +41 -0
  159. package/dist/hooks/useFocusTrap/useFocusTrap.types.d.ts +8 -0
  160. package/dist/hooks/useFocusTrap/useFocusTrap.utils.cjs +1 -0
  161. package/dist/hooks/useFocusTrap/useFocusTrap.utils.d.ts +1 -0
  162. package/dist/hooks/useFocusTrap/useFocusTrap.utils.js +23 -0
  163. package/dist/index.cjs +1 -1
  164. package/dist/index.js +580 -568
  165. package/dist/styles/_alerts.css +85 -4
  166. package/dist/styles/_drawer.css +60 -0
  167. package/dist/styles/_effects.css +33 -0
  168. package/dist/styles.css +231 -4
  169. 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"),x=require("react-dom"),a=require("../../utils/cn.cjs"),j=require("../../utils/generateBearId.utils.cjs"),q=require("../../utils/useBearId.cjs"),g=require("@forgedevstack/bear-icons/navigation"),w=require("../Backdrop/Backdrop.cjs"),e=require("./Modal.const.cjs"),R=m=>{const{isOpen:s,onClose:l,title:r,children:L,size:M="md",showCloseButton:d=!0,closeOnEscape:A=!0,disableEscapeKeyDown:B=!1,lockBodyScroll:C=!0,cancelPreventScroll:O=!1,closeOnBackdrop:k=!0,hideBackdrop:b=!1,keepMounted:n=!1,isCancelBackgroundClick:i,zIndex:v=e.MODAL_Z_INDEX,className:y,footer:u,testId:D,id:f}=m,h=q.useBearId("Modal"),c=j.resolveBearId(f,h),_=C&&!O,p=i!==void 0?i:k,S=A&&!B,t=E.useCallback(N=>{S&&N.key==="Escape"&&l()},[S,l]);if(E.useEffect(()=>{if(s)return document.addEventListener("keydown",t),_&&(document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",t),document.body.style.overflow=""}},[s,t,_]),!s&&!n)return null;const I=o.jsxs("div",{className:e.MODAL_ROOT_CLASSES,"data-testid":D,id:c,style:{zIndex:v},children:[!b&&o.jsx(w.Backdrop,{open:s,keepMounted:n,blur:!0,nested:!0,className:"Bear-Modal__backdrop",onClick:p?()=>l():void 0}),o.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":r?`${c}-title`:void 0,className:a.cn("Bear-Modal__container",e.MODAL_CONTAINER_CLASSES,e.MODAL_SIZE_CLASSES[M],y),style:{zIndex:e.MODAL_PANEL_Z_INDEX},children:[(r||d)&&o.jsxs("div",{className:a.cn("Bear-Modal__header",e.MODAL_HEADER_CLASSES),children:[r&&o.jsx("h2",{id:`${c}-title`,className:a.cn("Bear-Modal__title",e.MODAL_TITLE_CLASSES),children:r}),d&&o.jsx("button",{onClick:l,className:a.cn("Bear-Modal__close",e.MODAL_CLOSE_CLASSES),"aria-label":"Close modal",children:o.jsx(g.CloseIcon,{className:"bear-w-5 bear-h-5"})})]}),o.jsx("div",{className:a.cn("Bear-Modal__body",e.MODAL_BODY_CLASSES),children:L}),u&&o.jsx("div",{className:a.cn("Bear-Modal__footer",e.MODAL_FOOTER_CLASSES),children:u})]})]});return x.createPortal(I,document.body)};exports.Modal=R;
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=11e3,r=1,a="Bear-Modal bear-fixed bear-inset-0 bear-flex bear-items-center bear-justify-center bear-p-4",b={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"},t="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",S="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",A="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",L="bear-px-6 bear-py-4 bear-text-gray-600 dark:bear-text-gray-300",_="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";exports.MODAL_BODY_CLASSES=L;exports.MODAL_CLOSE_CLASSES=A;exports.MODAL_CONTAINER_CLASSES=t;exports.MODAL_FOOTER_CLASSES=_;exports.MODAL_HEADER_CLASSES=S;exports.MODAL_PANEL_Z_INDEX=r;exports.MODAL_ROOT_CLASSES=a;exports.MODAL_SIZE_CLASSES=b;exports.MODAL_TITLE_CLASSES=o;exports.MODAL_Z_INDEX=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
- const e = 11e3, r = 1, a = "Bear-Modal bear-fixed bear-inset-0 bear-flex bear-items-center bear-justify-center bear-p-4", b = {
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
- }, t = "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", o = "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", n = "bear-text-lg bear-font-semibold bear-text-gray-900 dark:bear-text-white", d = "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", x = "bear-px-6 bear-py-4 bear-text-gray-600 dark:bear-text-gray-300", i = "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";
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
- x as MODAL_BODY_CLASSES,
10
- d as MODAL_CLOSE_CLASSES,
11
- t as MODAL_CONTAINER_CLASSES,
12
- i as MODAL_FOOTER_CLASSES,
13
- o as MODAL_HEADER_CLASSES,
14
- r as MODAL_PANEL_Z_INDEX,
15
- a as MODAL_ROOT_CLASSES,
16
- b as MODAL_SIZE_CLASSES,
17
- n as MODAL_TITLE_CLASSES,
18
- e as MODAL_Z_INDEX
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 e } from "react/jsx-runtime";
2
- import { useCallback as I, useEffect as w } from "react";
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 o } from "../../utils/cn.js";
5
- import { resolveBearId as T } from "../../utils/generateBearId.utils.js";
6
- import { useBearId as R } from "../../utils/useBearId.js";
7
- import { CloseIcon as g } from "@forgedevstack/bear-icons/navigation";
8
- import { Backdrop as z } from "../Backdrop/Backdrop.js";
9
- import { MODAL_Z_INDEX as P, MODAL_ROOT_CLASSES as Z, MODAL_PANEL_Z_INDEX as j, MODAL_TITLE_CLASSES as X, MODAL_CLOSE_CLASSES as $, MODAL_HEADER_CLASSES as F, MODAL_BODY_CLASSES as H, MODAL_FOOTER_CLASSES as K, MODAL_SIZE_CLASSES as Y, MODAL_CONTAINER_CLASSES as q } from "./Modal.const.js";
10
- const le = (u) => {
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: a,
13
- onClose: l,
14
- title: r,
15
- children: E,
16
- size: L = "md",
14
+ isOpen: e,
15
+ onClose: r,
16
+ title: a,
17
+ children: u,
18
+ size: E = "md",
17
19
  showCloseButton: c = !0,
18
- closeOnEscape: f = !0,
19
- disableEscapeKeyDown: p = !1,
20
- lockBodyScroll: A = !0,
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 = P,
27
- className: k,
28
+ zIndex: B = X,
29
+ className: b,
28
30
  footer: m,
29
- testId: b,
30
- id: h
31
- } = u, v = R("Modal"), d = T(h, v), _ = A && !C, y = i !== void 0 ? i : M, S = f && !p, t = I(
32
- (N) => {
33
- S && N.key === "Escape" && l();
34
- },
35
- [S, l]
36
- );
37
- if (w(() => {
38
- if (a)
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
- }, [a, t, _]), !a && !n) return null;
43
- const D = /* @__PURE__ */ s(
42
+ }, [e, f]), !e && !n) return null;
43
+ const T = /* @__PURE__ */ s(
44
44
  "div",
45
45
  {
46
- className: Z,
47
- "data-testid": b,
48
- id: d,
46
+ className: $,
47
+ "data-testid": D,
48
+ id: t,
49
49
  style: { zIndex: B },
50
50
  children: [
51
- !O && /* @__PURE__ */ e(
52
- z,
51
+ !O && /* @__PURE__ */ o(
52
+ j,
53
53
  {
54
- open: a,
54
+ open: e,
55
55
  keepMounted: n,
56
56
  blur: !0,
57
57
  nested: !0,
58
58
  className: "Bear-Modal__backdrop",
59
- onClick: y ? () => l() : void 0
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": r ? `${d}-title` : void 0,
68
- className: o(
68
+ "aria-labelledby": a ? `${t}-title` : void 0,
69
+ className: l(
69
70
  "Bear-Modal__container",
70
- q,
71
- Y[L],
72
- k
71
+ U,
72
+ Q[E],
73
+ e && I,
74
+ b
73
75
  ),
74
- style: { zIndex: j },
76
+ style: { zIndex: H },
75
77
  children: [
76
- (r || c) && /* @__PURE__ */ s("div", { className: o("Bear-Modal__header", F), children: [
77
- r && /* @__PURE__ */ e(
78
+ (a || c) && /* @__PURE__ */ s("div", { className: l("Bear-Modal__header", q), children: [
79
+ a && /* @__PURE__ */ o(
78
80
  "h2",
79
81
  {
80
- id: `${d}-title`,
81
- className: o("Bear-Modal__title", X),
82
- children: r
82
+ id: `${t}-title`,
83
+ className: l("Bear-Modal__title", K),
84
+ children: a
83
85
  }
84
86
  ),
85
- c && /* @__PURE__ */ e(
87
+ c && /* @__PURE__ */ o(
86
88
  "button",
87
89
  {
88
- onClick: l,
89
- className: o("Bear-Modal__close", $),
90
+ type: "button",
91
+ onClick: r,
92
+ className: l("Bear-Modal__close", Y),
90
93
  "aria-label": "Close modal",
91
- children: /* @__PURE__ */ e(g, { className: "bear-w-5 bear-h-5" })
94
+ children: /* @__PURE__ */ o(Z, { className: "bear-w-5 bear-h-5" })
92
95
  }
93
96
  )
94
97
  ] }),
95
- /* @__PURE__ */ e("div", { className: o("Bear-Modal__body", H), children: E }),
96
- m && /* @__PURE__ */ e("div", { className: o("Bear-Modal__footer", K), children: m })
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(D, document.body);
106
+ return x(T, document.body);
104
107
  };
105
108
  export {
106
- le as Modal
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"),M=require("../../../Typography/Typography.cjs"),e=require("../../ModalsProvider.const.cjs"),t=require("../../ModalsProvider.utils.cjs"),T=A=>{const{entry:o,index:i,isTop:c,loading:r,labels:l,onDismiss:n,onConfirm:d}=A,_=c?o.options.closeOnBackdrop??e.MODALS_DEFAULT_CLOSE_ON_BACKDROP:e.MODALS_STACKED_LAYER_CAN_CLOSE,O=c?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:r,children:D}),s.jsx(S.Button,{variant:E,onClick:()=>d(o.id),loading:r,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;
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 A, MODALS_DEFAULT_SHOW_CLOSE as S, MODALS_DEFAULT_SIZE as p, 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
+ 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 W = (m) => {
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: p,
21
+ size: S,
21
22
  className: o.options.className,
22
- showCloseButton: S,
23
+ showCloseButton: A,
23
24
  closeOnBackdrop: c,
24
25
  closeOnEscape: l,
25
- lockBodyScroll: A,
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 ?? p,
52
+ size: o.options.size ?? S,
52
53
  footer: o.options.footer,
53
54
  className: o.options.className,
54
- showCloseButton: o.options.showCloseButton ?? S,
55
+ showCloseButton: o.options.showCloseButton ?? A,
55
56
  closeOnBackdrop: c,
56
57
  closeOnEscape: l,
57
- lockBodyScroll: A,
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
- W as StackedModal
66
+ Z as StackedModal
66
67
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),V=require("react"),v=require("../../constants/numbers.const.cjs"),o=require("../../constants/generals.const.cjs"),e=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs"),Y=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.cjs"),y=require("../Portal/Portal.cjs"),C=require("../Transition/Transition.cjs"),h=require("../Transition/Transition.const.cjs"),O=require("./OverlayPortal.const.cjs"),q=c=>{const{open:t,ready:F,style:u,zIndex:A,className:T,testId:L,attributes:d,panelRef:R,children:_}=c,{openEffect:n,closeEffect:E}=Y.resolveOverlayEffects(c,e.OVERLAY_OPEN_EFFECT_NONE),[s,r]=V.useState(o.BOOLEAN_FALSE),N=n!==e.OVERLAY_OPEN_EFFECT_NONE||E!==e.OVERLAY_OPEN_EFFECT_NONE;if(t&&F&&!s&&r(o.BOOLEAN_TRUE),!t&&s&&!N&&r(o.BOOLEAN_FALSE),!s)return null;const a=t?n:E,l=(a===e.OVERLAY_OPEN_EFFECT_NONE?void 0:O.OVERLAY_EFFECT_TRANSITION[a])??(n===e.OVERLAY_OPEN_EFFECT_NONE?void 0:O.OVERLAY_EFFECT_TRANSITION[n])??(E===e.OVERLAY_OPEN_EFFECT_NONE?void 0:O.OVERLAY_EFFECT_TRANSITION[E]),f=t&&n===e.OVERLAY_OPEN_EFFECT_NONE||!t&&E===e.OVERLAY_OPEN_EFFECT_NONE,P={...u,zIndex:A,visibility:e.VISIBILITY_VISIBLE},I=()=>{t||r(o.BOOLEAN_FALSE)},S=i.jsx("div",{ref:R,className:T,style:P,"data-testid":L,...d,children:N&&l?i.jsx(C.Transition,{show:t,name:l,duration:f?v.ZERO:h.DEFAULT_DURATION,onLeft:I,children:_}):_});return i.jsx(y.Portal,{children:S})};exports.OverlayPortal=q;
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 { OVERLAY_OPEN_EFFECT_FOLD as E, OVERLAY_OPEN_EFFECT_SCALE as _, 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 C } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js";
4
- const L = {
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
- L as OVERLAY_EFFECT_TRANSITION,
12
- C as OVERLAY_OPEN_EFFECT_NONE
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 s } from "react/jsx-runtime";
2
- import { useState as _ } from "react";
3
- import { ZERO as A } from "../../constants/numbers.const.js";
4
- import { BOOLEAN_FALSE as a, BOOLEAN_TRUE as y } from "../../constants/generals.const.js";
5
- import { OVERLAY_OPEN_EFFECT_NONE as t, VISIBILITY_VISIBLE as S } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js";
6
- import { resolveOverlayEffects as F } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.js";
7
- import { Portal as B } from "../Portal/Portal.js";
8
- import { Transition as V } from "../Transition/Transition.js";
9
- import { DEFAULT_DURATION as x } from "../Transition/Transition.const.js";
10
- import { OVERLAY_EFFECT_TRANSITION as f } from "./OverlayPortal.const.js";
11
- const g = (m) => {
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: o,
14
- ready: p,
15
- style: O,
16
- zIndex: N,
17
- className: I,
18
- testId: L,
19
- attributes: h,
20
- panelRef: u,
21
- children: l
22
- } = m, { openEffect: e, closeEffect: r } = F(m, t), [n, i] = _(a), c = e !== t || r !== t;
23
- if (o && p && !n && i(y), !o && n && !c && i(a), !n)
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 d = o ? e : r, E = (d === t ? void 0 : f[d]) ?? (e === t ? void 0 : f[e]) ?? (r === t ? void 0 : f[r]), v = o && e === t || !o && r === t, R = {
26
- ...O,
27
- zIndex: N,
28
- visibility: S
29
- }, T = /* @__PURE__ */ s("div", { ref: u, className: I, style: R, "data-testid": L, ...h, children: c && E ? /* @__PURE__ */ s(
30
- V,
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: o,
33
- name: E,
34
- duration: v ? A : x,
35
- onLeft: () => {
36
- o || i(a);
37
- },
38
- children: l
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__ */ s(B, { children: T });
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
- g as OverlayPortal
50
+ tt as OverlayPortal
45
51
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),l=require("react"),D=require("react-dom"),p=require("../../utils/cn.cjs"),H=11e3;function X(d,t,s){const e={position:"fixed",zIndex:H},a=d.split("-")[0],n=d.includes("start"),o=d.includes("end");return a==="bottom"?(e.top=t.bottom+s,n?e.left=t.left:o?e.left=t.right:e.left=t.left+t.width/2):a==="top"?(e.bottom=window.innerHeight-t.top+s,n?e.left=t.left:o?e.left=t.right:e.left=t.left+t.width/2):a==="left"?(e.right=window.innerWidth-t.left+s,n?e.top=t.top:o?e.bottom=window.innerHeight-t.bottom:e.top=t.top+t.height/2):(e.left=t.right+s,n?e.top=t.top:o?e.bottom=window.innerHeight-t.bottom:e.top=t.top+t.height/2),a==="bottom"||a==="top"?!n&&!o?e.transform="translateX(-50%)":o&&(e.transform="translateX(-100%)"):!n&&!o?e.transform="translateY(-50%)":o&&(e.transform="translateY(-100%)"),e}const T=({children:d,content:t,placement:s="bottom",trigger:e="click",open:a,onOpenChange:n,className:o,contentClassName:x,arrow:L=!0,closeOnClickOutside:m=!0,closeOnEscape:v=!0,offset:w=8})=>{const[k,z]=l.useState(!1),[R,S]=l.useState({}),f=l.useRef(null),h=l.useRef(null),i=a!==void 0?a:k,b=l.useCallback(r=>{z(r),n==null||n(r)},[n]);l.useEffect(()=>{if(!i||!f.current)return;const r=()=>{if(!f.current)return;const u=f.current.getBoundingClientRect();S(X(s,u,w))};return r(),window.addEventListener("resize",r),window.addEventListener("scroll",r,!0),()=>{window.removeEventListener("resize",r),window.removeEventListener("scroll",r,!0)}},[i,s,w]),l.useEffect(()=>{if(!m)return;const r=u=>{var y,g;const E=u.target;(y=f.current)!=null&&y.contains(E)||(g=h.current)!=null&&g.contains(E)||b(!1)};return i&&document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[i,m,b]),l.useEffect(()=>{if(!v)return;const r=u=>{u.key==="Escape"&&b(!1)};return i&&document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[i,v,b]);const j=()=>{e==="click"&&b(!i)},P=()=>{e==="hover"&&b(!0)},M=()=>{e==="hover"&&b(!1)},N={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"},q=s.split("-")[0],I=i&&typeof document<"u"&&D.createPortal(c.jsxs("div",{ref:h,"data-bear-popover":!0,className:p.cn("bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3",x),style:R,children:[t,L&&c.jsx("div",{className:p.cn("bear-absolute bear-w-0 bear-h-0 bear-border-8",N[q])})]}),document.body);return c.jsxs("div",{ref:f,className:p.cn("bear-relative bear-inline-block",o),onMouseEnter:P,onMouseLeave:M,children:[c.jsx("div",{onClick:j,className:"bear-cursor-pointer",children:d}),I]})};exports.Popover=T;
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 P_O_P_O_V_E_R_ROOT_CLASS = "Bear-Popover";
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>;