@primereact/headless 11.0.0-alpha.1 → 11.0.0-alpha.3

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 (91) hide show
  1. package/animateonscroll/index.d.ts +2 -0
  2. package/animateonscroll/index.mjs +2 -0
  3. package/animateonscroll/index.mjs.map +1 -0
  4. package/animateonscroll/useAnimateOnScroll.d.ts +3 -0
  5. package/animateonscroll/useAnimateOnScroll.props.d.ts +2 -0
  6. package/animateonscroll/useAnimateOnScroll.test.d.ts +0 -0
  7. package/confirmdialog/index.d.ts +2 -0
  8. package/confirmdialog/index.mjs +2 -0
  9. package/confirmdialog/index.mjs.map +1 -0
  10. package/confirmdialog/useConfirmDialog.d.ts +1 -0
  11. package/confirmdialog/useConfirmDialog.props.d.ts +2 -0
  12. package/confirmdialog/useConfirmDialog.test.d.ts +0 -0
  13. package/confirmpopup/index.d.ts +2 -0
  14. package/confirmpopup/index.mjs +2 -0
  15. package/confirmpopup/index.mjs.map +1 -0
  16. package/confirmpopup/useConfirmPopup.d.ts +25 -0
  17. package/confirmpopup/useConfirmPopup.props.d.ts +2 -0
  18. package/confirmpopup/useConfirmPopup.test.d.ts +0 -0
  19. package/dialog/index.d.ts +2 -0
  20. package/dialog/index.mjs +2 -0
  21. package/dialog/index.mjs.map +1 -0
  22. package/dialog/useDialog.d.ts +30 -0
  23. package/dialog/useDialog.props.d.ts +2 -0
  24. package/dialog/useDialog.test.d.ts +0 -0
  25. package/drawer/index.d.ts +2 -0
  26. package/drawer/index.mjs +2 -0
  27. package/drawer/index.mjs.map +1 -0
  28. package/drawer/useDrawer.d.ts +22 -0
  29. package/drawer/useDrawer.props.d.ts +2 -0
  30. package/drawer/useDrawer.test.d.ts +0 -0
  31. package/focustrap/index.d.ts +2 -0
  32. package/focustrap/index.mjs +2 -0
  33. package/focustrap/index.mjs.map +1 -0
  34. package/focustrap/useFocusTrap.d.ts +5 -0
  35. package/focustrap/useFocusTrap.props.d.ts +2 -0
  36. package/focustrap/useFocusTrap.test.d.ts +0 -0
  37. package/imagecompare/index.d.ts +2 -0
  38. package/imagecompare/index.mjs +2 -0
  39. package/imagecompare/index.mjs.map +1 -0
  40. package/imagecompare/useImageCompare.d.ts +8 -0
  41. package/imagecompare/useImageCompare.props.d.ts +2 -0
  42. package/imagecompare/useImageCompare.test.d.ts +0 -0
  43. package/message/index.d.ts +2 -0
  44. package/message/index.mjs +2 -0
  45. package/message/index.mjs.map +1 -0
  46. package/message/useMessage.d.ts +6 -0
  47. package/message/useMessage.props.d.ts +2 -0
  48. package/message/useMessage.test.d.ts +0 -0
  49. package/package.json +5 -5
  50. package/placer/index.d.ts +2 -0
  51. package/placer/index.mjs +2 -0
  52. package/placer/index.mjs.map +1 -0
  53. package/placer/usePlacer.d.ts +12 -0
  54. package/placer/usePlacer.props.d.ts +2 -0
  55. package/placer/usePlacer.test.d.ts +0 -0
  56. package/popover/index.d.ts +2 -0
  57. package/popover/index.mjs +8 -0
  58. package/popover/index.mjs.map +1 -0
  59. package/popover/usePopover.d.ts +15 -0
  60. package/popover/usePopover.props.d.ts +2 -0
  61. package/popover/usePopover.test.d.ts +0 -0
  62. package/portal/index.d.ts +2 -0
  63. package/portal/index.mjs +2 -0
  64. package/portal/index.mjs.map +1 -0
  65. package/portal/usePortal.d.ts +3 -0
  66. package/portal/usePortal.props.d.ts +2 -0
  67. package/portal/usePortal.test.d.ts +0 -0
  68. package/rating/index.d.ts +2 -0
  69. package/rating/index.mjs +2 -0
  70. package/rating/index.mjs.map +1 -0
  71. package/rating/useRating.d.ts +12 -0
  72. package/rating/useRating.props.d.ts +2 -0
  73. package/rating/useRating.test.d.ts +0 -0
  74. package/slider/index.d.ts +2 -0
  75. package/slider/index.mjs +2 -0
  76. package/slider/index.mjs.map +1 -0
  77. package/slider/useSlider.d.ts +58 -0
  78. package/slider/useSlider.props.d.ts +2 -0
  79. package/slider/useSlider.test.d.ts +0 -0
  80. package/tooltip/group/index.d.ts +2 -0
  81. package/tooltip/group/index.mjs +2 -0
  82. package/tooltip/group/index.mjs.map +1 -0
  83. package/tooltip/group/useTooltipGroup.d.ts +9 -0
  84. package/tooltip/group/useTooltipGroup.props.d.ts +2 -0
  85. package/tooltip/group/useTooltipGroup.test.d.ts +0 -0
  86. package/tooltip/index.d.ts +2 -0
  87. package/tooltip/index.mjs +2 -0
  88. package/tooltip/index.mjs.map +1 -0
  89. package/tooltip/useTooltip.d.ts +28 -0
  90. package/tooltip/useTooltip.props.d.ts +2 -0
  91. package/tooltip/useTooltip.test.d.ts +0 -0
@@ -0,0 +1,2 @@
1
+ export * from './useAnimateOnScroll';
2
+ export * from './useAnimateOnScroll.props';
@@ -0,0 +1,2 @@
1
+ var H=Object.defineProperty,U=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var C=(o,e,r)=>e in o?H(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,I=(o,e)=>{for(var r in e||(e={}))O.call(e,r)&&C(o,r,e[r]);if(f)for(var r of f(e))h.call(e,r)&&C(o,r,e[r]);return o},L=(o,e)=>U(o,j(e));var k=(o,e)=>{var r={};for(var n in o)O.call(o,n)&&e.indexOf(n)<0&&(r[n]=o[n]);if(o!=null&&f)for(var n of f(o))e.indexOf(n)<0&&h.call(o,n)&&(r[n]=o[n]);return r};import{withHeadless as q}from"@primereact/core/headless";import{useIntersectionObserver as g}from"@primereact/hooks/use-intersection-observer";import{useMountEffect as z}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as B}from"@primereact/hooks/use-unmount-effect";import{addClass as x,removeClass as u}from"@primeuix/utils/dom";import*as i from"react";var S={enterClassName:"",leaveClassName:"",once:!1,root:void 0,rootMargin:void 0,threshold:.5};var X=q({name:"useAnimateOnScroll",defaultProps:S,setup({props:o,elementRef:e}){let E=o,{enterClassName:r,leaveClassName:n,once:l}=E,P=k(E,["enterClassName","leaveClassName","once"]),m=i.useRef(!1),c=i.useRef(null),s=i.useRef(void 0),{observe:M,unobserve:p}=g(L(I({},P),{onIntersect:([t])=>{t.isIntersecting?T():w(),m.current=!0}})),{observe:v,unobserve:d}=g({threshold:0,onIntersect:([t])=>{let a=e.current;a&&(t==null?void 0:t.boundingClientRect.top)>0&&!t.isIntersecting&&(a.style.opacity=r?"0":"",r&&u(a,r),n&&u(a,n),d(a),a.removeAttribute("data-pd-animateonscroll-state"),s.current=void 0)}}),b=i.useCallback(()=>{let t=e.current;t&&(p(t),d(t),m.current=!1)},[p,d,e]),T=i.useCallback(()=>{let t=e.current;!t||s.current!==void 0||s.current!=="enter"&&(t.style.opacity="",r&&(n&&u(t,n),x(t,r!=null?r:""),t.setAttribute("data-pd-animateonscroll-state","enter"),s.current="enter",A(),l&&setTimeout(()=>{b()},0)))},[s,r,n,l,b]),w=i.useCallback(()=>{let t=e.current;!t||s.current!==void 0||s.current!=="leave"&&(n?(r&&u(t,r),x(t,n!=null?n:""),A(),s.current="leave",t.setAttribute("data-pd-animateonscroll-state","leave")):t.style.opacity="0")},[s,r,n]),A=i.useCallback(()=>{let t=e.current;t&&(c.current||(c.current=()=>{t&&(r&&u(t,r),n&&u(t,n),l||v(t),y(),s.current==="leave"&&(t.style.opacity="0"),s.current==="enter"&&(t.style.opacity=""),t.removeAttribute("data-pd-animateonscroll-state"),s.current=void 0)},t.addEventListener("animationend",c.current),t.addEventListener("transitionend",c.current)))},[r,n,l,v]),y=i.useCallback(()=>{let t=e.current;t&&c.current&&(t.removeEventListener("animationend",c.current),t.removeEventListener("transitionend",c.current),c.current=null)},[]);return i.useLayoutEffect(()=>{e.current&&r&&(e.current.style.opacity="0")},[e,r]),z(()=>{e.current&&(e.current.setAttribute("data-pd-animateonscroll","true"),setTimeout(()=>e.current&&M(e.current),0))}),B(()=>{e.current&&(e.current.removeAttribute("data-pd-animateonscroll"),e.current.removeAttribute("data-pd-animateonscroll-state"),p(e.current),d(e.current),y())}),{state:{}}}});export{S as defaultProps,X as useAnimateOnScroll};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/animateonscroll/useAnimateOnScroll.ts","../../src/animateonscroll/useAnimateOnScroll.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useIntersectionObserver } from '@primereact/hooks/use-intersection-observer';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useAnimateOnScroll.props';\n\nexport const useAnimateOnScroll = withHeadless({\n name: 'useAnimateOnScroll',\n defaultProps,\n setup({ props, elementRef }) {\n const { enterClassName, leaveClassName, once, ...rest } = props;\n const isObserverActiveRef = React.useRef(false);\n const animationEndListener = React.useRef<(() => void) | null>(null);\n const animationState = React.useRef<'enter' | 'leave' | undefined>(undefined);\n const { observe, unobserve } = useIntersectionObserver({\n ...rest,\n onIntersect: ([entry]) => {\n if (entry.isIntersecting) {\n enter();\n } else {\n leave();\n }\n\n isObserverActiveRef.current = true;\n }\n });\n\n const { observe: observeReset, unobserve: unobserveReset } = useIntersectionObserver({\n threshold: 0,\n onIntersect: ([entry]) => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (entry?.boundingClientRect.top > 0 && !entry.isIntersecting) {\n el.style.opacity = enterClassName ? '0' : '';\n\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n unobserveReset(el);\n el.removeAttribute('data-pd-animateonscroll-state');\n animationState.current = undefined;\n }\n }\n });\n const unbindIntersectionObserver = React.useCallback(() => {\n const el = elementRef.current;\n\n if (el) {\n unobserve(el);\n unobserveReset(el);\n isObserverActiveRef.current = false;\n }\n }, [unobserve, unobserveReset, elementRef]);\n\n const enter = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'enter') return;\n\n el.style.opacity = '';\n\n if (enterClassName) {\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n addClass(el, enterClassName ?? '');\n el.setAttribute('data-pd-animateonscroll-state', 'enter');\n animationState.current = 'enter';\n\n bindAnimationEvents();\n\n if (once) {\n setTimeout(() => {\n unbindIntersectionObserver();\n }, 0);\n }\n }\n }, [animationState, enterClassName, leaveClassName, once, unbindIntersectionObserver]);\n\n const leave = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'leave') return;\n\n if (leaveClassName) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n addClass(el, leaveClassName ?? '');\n bindAnimationEvents();\n animationState.current = 'leave';\n el.setAttribute('data-pd-animateonscroll-state', 'leave');\n } else {\n el.style.opacity = '0';\n }\n }, [animationState, enterClassName, leaveClassName]);\n\n const bindAnimationEvents = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (!animationEndListener.current) {\n animationEndListener.current = () => {\n if (el) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n if (!once) {\n observeReset(el);\n }\n\n unbindAnimationEvents();\n\n if (animationState.current === 'leave') {\n el.style.opacity = '0';\n }\n\n if (animationState.current === 'enter') {\n el.style.opacity = '';\n }\n\n el.removeAttribute('data-pd-animateonscroll-state');\n animationState.current = undefined;\n }\n };\n\n el.addEventListener('animationend', animationEndListener.current);\n el.addEventListener('transitionend', animationEndListener.current);\n }\n }, [enterClassName, leaveClassName, once, observeReset]);\n\n const unbindAnimationEvents = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (animationEndListener.current) {\n el.removeEventListener('animationend', animationEndListener.current);\n el.removeEventListener('transitionend', animationEndListener.current);\n animationEndListener.current = null;\n }\n }, []);\n\n // Effects\n React.useLayoutEffect(() => {\n if (elementRef.current && enterClassName) {\n elementRef.current.style.opacity = '0';\n }\n }, [elementRef, enterClassName]);\n\n useMountEffect(() => {\n if (elementRef.current) {\n elementRef.current.setAttribute('data-pd-animateonscroll', 'true');\n setTimeout(() => elementRef.current && observe(elementRef.current), 0);\n }\n });\n\n useUnmountEffect(() => {\n if (elementRef.current) {\n elementRef.current.removeAttribute('data-pd-animateonscroll');\n elementRef.current.removeAttribute('data-pd-animateonscroll-state');\n unobserve(elementRef.current);\n unobserveReset(elementRef.current);\n unbindAnimationEvents();\n }\n });\n\n const state = {};\n\n return {\n state\n };\n }\n});\n","import type { useAnimateOnScrollProps } from '@primereact/types/shared/animateonscroll';\n\nexport const defaultProps: useAnimateOnScrollProps = {\n enterClassName: '',\n leaveClassName: '',\n once: false,\n root: undefined,\n rootMargin: undefined,\n threshold: 0.5\n};\n"],"mappings":"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","names":["withHeadless","useIntersectionObserver","useMountEffect","useUnmountEffect","addClass","removeClass","React","defaultProps","useAnimateOnScroll","withHeadless","defaultProps","props","elementRef","_a","enterClassName","leaveClassName","once","rest","__objRest","isObserverActiveRef","animationEndListener","animationState","observe","unobserve","useIntersectionObserver","__spreadProps","__spreadValues","entry","enter","leave","observeReset","unobserveReset","el","removeClass","unbindIntersectionObserver","addClass","bindAnimationEvents","unbindAnimationEvents","useMountEffect","useUnmountEffect"]}
@@ -0,0 +1,3 @@
1
+ export declare const useAnimateOnScroll: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/animateonscroll").useAnimateOnScrollProps, unknown, {
2
+ state: {};
3
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useAnimateOnScrollProps } from '@primereact/types/shared/animateonscroll';
2
+ export declare const defaultProps: useAnimateOnScrollProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useConfirmDialog';
2
+ export * from './useConfirmDialog.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as o}from"@primereact/core/headless";var e={open:!1,defaultOpen:!1,draggable:!0,keepInViewport:!0,modal:!0,dismissableMask:!1,closeOnEscape:!0,blockScroll:!1,baseZIndex:0,autoZIndex:!0,appendTo:"body",onOpenChange:void 0};var t=o({name:"useConfirmDialog",defaultProps:e});export{e as defaultProps,t as useConfirmDialog};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/confirmdialog/useConfirmDialog.ts","../../src/confirmdialog/useConfirmDialog.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useConfirmDialog.props';\n\nexport const useConfirmDialog = withHeadless({\n name: 'useConfirmDialog',\n defaultProps\n});\n","import type { useConfirmDialogProps } from '@primereact/types/shared/confirmdialog';\n\nexport const defaultProps: useConfirmDialogProps = {\n open: false,\n defaultOpen: false,\n draggable: true,\n keepInViewport: true,\n modal: true,\n dismissableMask: false,\n closeOnEscape: true,\n blockScroll: false,\n baseZIndex: 0,\n autoZIndex: true,\n appendTo: 'body',\n onOpenChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAAsC,CAC/C,KAAM,GACN,YAAa,GACb,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,gBAAiB,GACjB,cAAe,GACf,YAAa,GACb,WAAY,EACZ,WAAY,GACZ,SAAU,OACV,aAAc,MAClB,EDZO,IAAMC,EAAmBC,EAAa,CACzC,KAAM,mBACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useConfirmDialog","withHeadless","defaultProps"]}
@@ -0,0 +1 @@
1
+ export declare const useConfirmDialog: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/confirmdialog").useConfirmDialogProps, unknown, Record<PropertyKey, unknown>>;
@@ -0,0 +1,2 @@
1
+ import type { useConfirmDialogProps } from '@primereact/types/shared/confirmdialog';
2
+ export declare const defaultProps: useConfirmDialogProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useConfirmPopup';
2
+ export * from './useConfirmPopup.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as Z}from"@primereact/core/headless";import{ConnectedOverlayScrollHandler as G}from"@primereact/core/utils";import{useEventListener as m,useUnmountEffect as J}from"@primereact/hooks";import{$dt as K}from"@primeuix/styled";import{absolutePosition as Q,addClass as V,focus as d,getOffset as T,isTouchDevice as W,ZIndex as R}from"@primeuix/utils";import*as r from"react";var v={open:!1,defaultOpen:!1,defaultFocus:void 0,onOpenChange:void 0};var le=Z({name:"useConfirmPopup",defaultProps:v,setup:({props:t,$primereact:y})=>{var b,C;let[a,o]=r.useState((C=(b=t.open)!=null?b:t.defaultOpen)!=null?C:!1),u=r.useRef(null),f=r.useRef(null),E=r.useRef(null),O=r.useRef(null),s=r.useRef(null),L={opened:a};r.useEffect(()=>{t.defaultOpen&&S()},[t.defaultOpen]),J(()=>{var e;R.clear((e=u.current)==null?void 0:e.elementRef.current)});let S=()=>{var e;o(!0),(e=t==null?void 0:t.onOpenChange)==null||e.call(t,{value:!0})},h=()=>{var e,n;o(!1),(e=t==null?void 0:t.onOpenChange)==null||e.call(t,{value:!1}),d((n=f.current)==null?void 0:n.elementRef.current)},P=()=>{var n;let e=!a;o(e),(n=t==null?void 0:t.onOpenChange)==null||n.call(t,{value:e})},x=()=>{var e;(e=t==null?void 0:t.onOpenChange)==null||e.call(t,{value:L.opened})},B=()=>{var e,n,l,c;D(),z(),I(),R.set("overlay",(e=u.current)==null?void 0:e.elementRef.current,(c=(l=(n=y.config)==null?void 0:n.zIndex)==null?void 0:l.modal)!=null?c:1100)},j=()=>{g(),$()},F=()=>{var e;d((e=f.current)==null?void 0:e.elementRef.current),k(),A(),N()},w=()=>{var e;R.clear((e=u.current)==null?void 0:e.elementRef.current)},g=()=>{var H,M;let e=(H=u.current)==null?void 0:H.elementRef.current,n=(M=f.current)==null?void 0:M.elementRef.current;if(!e||!n)return;Q(e,n,!1);let l=T(e),c=T(n),i=0;l.left<c.left&&(i=c.left-l.left),e.style.setProperty(K("confirmpopup.arrow.left").name,`${i}px`),l.top<c.top&&(e.setAttribute("data-p-confirmpopup-flipped","true"),V(e,"p-confirmpopup-flipped"))},[D,k]=m({type:"click",listener:e=>{var l;let n=(l=u.current)==null?void 0:l.elementRef.current;a&&n&&!n.contains(e.target)&&!U(e)?o(!1):g()}}),[z,A]=m({type:"scroll",listener:()=>{var e;s.current||(s.current=new G((e=f.current)==null?void 0:e.elementRef.current,()=>{a&&o(!1)})),s.current.bindScrollListener()}}),[I,N]=m({type:"resize",listener:()=>{a&&!W()&&o(!1)}}),$=()=>{var n,l,c,i;let e;t.defaultFocus===void 0||t.defaultFocus==="accept"?e=(n=E.current)==null?void 0:n.elementRef.current:t.defaultFocus==="reject"&&(e=(l=O.current)==null?void 0:l.elementRef.current),e||(e=q((i=(c=u.current)==null?void 0:c.elementRef.current)!=null?i:null)),e&&d(e)},q=e=>e&&e.querySelector("[autoFocus]"),U=e=>{var l;if(!f.current)return!1;let n=(l=f.current)==null?void 0:l.elementRef.current;return n===e.target||n.contains(e.target)};return{state:L,motionRef:u,triggerRef:f,acceptRef:E,rejectRef:O,close:h,onOpenStateChange:P,onOpenChange:x,onMotionEnter:B,onMotionAfterEnter:j,onMotionLeave:F,onMotionAfterLeave:w}}});export{v as defaultProps,le as useConfirmPopup};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/confirmpopup/useConfirmPopup.ts","../../src/confirmpopup/useConfirmPopup.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { ConnectedOverlayScrollHandler } from '@primereact/core/utils';\nimport { useEventListener, useUnmountEffect } from '@primereact/hooks';\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, focus, getOffset, isTouchDevice, ZIndex } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useConfirmPopup.props';\n\nexport const useConfirmPopup = withHeadless({\n name: 'useConfirmPopup',\n defaultProps,\n setup: ({ props, $primereact }) => {\n const [openState, setOpenState] = React.useState<boolean>(props.open ?? props.defaultOpen ?? false);\n const motionRef = React.useRef<{ elementRef: React.RefObject<HTMLDivElement> } | null>(null);\n const triggerRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n const acceptRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n const rejectRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n const scrollHandler = React.useRef<ConnectedOverlayScrollHandler | null>(null);\n\n const state = {\n opened: openState\n };\n\n React.useEffect(() => {\n if (props.defaultOpen) {\n open();\n }\n }, [props.defaultOpen]);\n\n useUnmountEffect(() => {\n ZIndex.clear(motionRef.current?.elementRef.current as HTMLDivElement);\n });\n\n //methods\n const open = () => {\n setOpenState(true);\n\n props?.onOpenChange?.({\n value: true\n });\n };\n\n const close = () => {\n setOpenState(false);\n\n props?.onOpenChange?.({\n value: false\n });\n\n focus(triggerRef.current?.elementRef.current as HTMLButtonElement);\n };\n\n const onOpenStateChange = () => {\n const newOpenState = !openState;\n\n setOpenState(newOpenState);\n\n props?.onOpenChange?.({\n value: newOpenState\n });\n };\n\n const onOpenChange = () => {\n props?.onOpenChange?.({\n value: state.opened\n });\n };\n\n const onMotionEnter = () => {\n bindOutsideClickListener();\n bindScrollListener();\n bindResizeListener();\n\n ZIndex.set('overlay', motionRef.current?.elementRef.current as HTMLDivElement, $primereact.config?.zIndex?.modal ?? 1100);\n };\n\n const onMotionAfterEnter = () => {\n alignOverlay();\n focusElement();\n };\n\n const onMotionLeave = () => {\n focus(triggerRef.current?.elementRef.current as HTMLButtonElement);\n\n unbindOutsideClickListener();\n unbindScrollListener();\n unbindResizeListener();\n };\n\n const onMotionAfterLeave = () => {\n ZIndex.clear(motionRef.current?.elementRef.current as HTMLDivElement);\n };\n\n const alignOverlay = () => {\n const motionElement = motionRef.current?.elementRef.current;\n const triggerElement = triggerRef.current?.elementRef.current;\n\n if (!motionElement || !triggerElement) return;\n\n absolutePosition(motionElement, triggerElement, false);\n\n const containerOffset = getOffset(motionElement);\n const targetOffset = getOffset(triggerElement);\n let arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = (targetOffset.left as number) - (containerOffset.left as number);\n }\n\n motionElement.style.setProperty($dt('confirmpopup.arrow.left').name, `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n motionElement.setAttribute('data-p-confirmpopup-flipped', 'true');\n // !isUnstyled &&\n addClass(motionElement, 'p-confirmpopup-flipped');\n }\n };\n\n const [bindOutsideClickListener, unbindOutsideClickListener] = useEventListener({\n type: 'click',\n listener: (event: Event) => {\n const motionElement = motionRef.current?.elementRef.current;\n\n if (openState && motionElement && !motionElement.contains(event.target as Node) && !isTargetClicked(event)) {\n setOpenState(false);\n } else {\n alignOverlay();\n }\n }\n });\n\n const [bindScrollListener, unbindScrollListener] = useEventListener({\n type: 'scroll',\n listener: () => {\n if (!scrollHandler.current) {\n scrollHandler.current = new ConnectedOverlayScrollHandler(triggerRef.current?.elementRef.current as HTMLButtonElement, () => {\n if (openState) {\n setOpenState(false);\n }\n });\n }\n\n scrollHandler.current.bindScrollListener();\n }\n });\n\n const [bindResizeListener, unbindResizeListener] = useEventListener({\n type: 'resize',\n listener: () => {\n if (openState && !isTouchDevice()) {\n setOpenState(false);\n }\n }\n });\n\n const focusElement = () => {\n let focusTarget;\n\n if (props.defaultFocus === undefined || props.defaultFocus === 'accept') {\n focusTarget = acceptRef.current?.elementRef.current;\n } else if (props.defaultFocus === 'reject') {\n focusTarget = rejectRef.current?.elementRef.current;\n }\n\n if (!focusTarget) {\n focusTarget = findFocusableElement(motionRef.current?.elementRef.current ?? null);\n }\n\n if (focusTarget) {\n focus(focusTarget as HTMLElement);\n }\n };\n\n const findFocusableElement = (container: HTMLElement | null) => {\n return container && container.querySelector('[autoFocus]');\n };\n\n const isTargetClicked = (event: Event) => {\n if (!triggerRef.current) return false;\n\n const triggerElement = triggerRef.current?.elementRef.current as HTMLButtonElement;\n\n return triggerElement === event.target || triggerElement.contains(event.target as Node);\n };\n\n return {\n state,\n // refs\n motionRef,\n triggerRef,\n acceptRef,\n rejectRef,\n // methods\n close,\n onOpenStateChange,\n onOpenChange,\n onMotionEnter,\n onMotionAfterEnter,\n onMotionLeave,\n onMotionAfterLeave\n };\n }\n});\n","import type { useConfirmPopupProps } from '@primereact/types/shared/confirmpopup';\n\nexport const defaultProps: useConfirmPopupProps = {\n open: false,\n defaultOpen: false,\n defaultFocus: undefined,\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","ConnectedOverlayScrollHandler","useEventListener","useUnmountEffect","$dt","absolutePosition","addClass","focus","getOffset","isTouchDevice","ZIndex","React","defaultProps","useConfirmPopup","withHeadless","defaultProps","props","$primereact","_a","_b","openState","setOpenState","motionRef","triggerRef","acceptRef","rejectRef","scrollHandler","state","open","useUnmountEffect","ZIndex","close","focus","onOpenStateChange","newOpenState","onOpenChange","onMotionEnter","_c","_d","bindOutsideClickListener","bindScrollListener","bindResizeListener","onMotionAfterEnter","alignOverlay","focusElement","onMotionLeave","unbindOutsideClickListener","unbindScrollListener","unbindResizeListener","onMotionAfterLeave","motionElement","triggerElement","absolutePosition","containerOffset","getOffset","targetOffset","arrowLeft","$dt","addClass","useEventListener","event","isTargetClicked","ConnectedOverlayScrollHandler","isTouchDevice","focusTarget","findFocusableElement","container"]}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ export declare const useConfirmPopup: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/confirmpopup").useConfirmPopupProps, unknown, {
3
+ state: {
4
+ opened: boolean;
5
+ };
6
+ motionRef: React.RefObject<{
7
+ elementRef: React.RefObject<HTMLDivElement>;
8
+ } | null>;
9
+ triggerRef: React.RefObject<{
10
+ elementRef: React.RefObject<HTMLButtonElement>;
11
+ } | null>;
12
+ acceptRef: React.RefObject<{
13
+ elementRef: React.RefObject<HTMLButtonElement>;
14
+ } | null>;
15
+ rejectRef: React.RefObject<{
16
+ elementRef: React.RefObject<HTMLButtonElement>;
17
+ } | null>;
18
+ close: () => void;
19
+ onOpenStateChange: () => void;
20
+ onOpenChange: () => void;
21
+ onMotionEnter: () => void;
22
+ onMotionAfterEnter: () => void;
23
+ onMotionLeave: () => void;
24
+ onMotionAfterLeave: () => void;
25
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useConfirmPopupProps } from '@primereact/types/shared/confirmpopup';
2
+ export declare const defaultProps: useConfirmPopupProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useDialog';
2
+ export * from './useDialog.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as ke}from"@primereact/core/headless";import{useEventListener as y,useMountEffect as he,useUnmountEffect as Te,useUpdateEffect as j}from"@primereact/hooks";import{$dt as U}from"@primeuix/styled";import{addClass as we,addStyle as G,blockBodyScroll as He,focus as N,getOuterHeight as Ce,getOuterWidth as Ie,getViewport as Be,unblockBodyScroll as Pe,ZIndex as L}from"@primeuix/utils";import*as a from"react";var F={open:!1,defaultOpen:!1,draggable:!0,keepInViewport:!0,minX:0,minY:0,modal:void 0,dismissableMask:!1,closeOnEscape:!0,blockScroll:!1,baseZIndex:0,autoZIndex:!0,appendTo:"body",onOpenChange:void 0};var Ke=ke({name:"useDialog",defaultProps:F,setup:({props:e,$primereact:q})=>{var O,k,h,T;let[R,v]=a.useState((k=(O=e.open)!=null?O:e.defaultOpen)!=null?k:!1),[W,$]=a.useState(!1),[u,o]=a.useState((T=(h=e.open)!=null?h:e.defaultOpen)!=null?T:!1),l=a.useRef(null),n=a.useRef(null),b=a.useRef(null),E=a.useRef(null),x=a.useRef(null),M=a.useRef(null),s=a.useRef(null),i=a.useRef(null),m=a.useRef(!1),S={opened:R,maximized:W,maskVisible:u};he(()=>{(e.open||e.defaultOpen)&&o(!0)}),j(()=>{(e.open||e.defaultOpen&&!u)&&o(!0)},[e.open,e.defaultOpen]),j(()=>{u&&!R&&v(!0)},[u]),Te(()=>{o(!1),e.autoZIndex&&L.clear(l.current)});let D=()=>{var t;v(!1),(t=e==null?void 0:e.onOpenChange)==null||t.call(e,{value:!1})},J=()=>$(t=>!t),Q=()=>{var r;let t=!R;t&&!u&&o(!0),(r=e==null?void 0:e.onOpenChange)==null||r.call(e,{value:t})},_=()=>{var t;(t=e==null?void 0:e.onOpenChange)==null||t.call(e,{value:S.opened})},p=()=>{var t,r,c;M.current=document.activeElement,oe(),be(),e.autoZIndex&&L.set("modal",l.current,e.baseZIndex+((c=(r=(t=q.config)==null?void 0:t.zIndex)==null?void 0:r.modal)!=null?c:1100))},ee=()=>{ae()},te=()=>{e.modal&&we(l.current,"p-overlay-mask-leave")},ne=()=>{N(M.current),M.current=null},re=()=>{e.autoZIndex&&L.clear(l.current),se(),Ee(),o(!1)},ae=()=>{var r,c;let t=ce((c=(r=n.current)==null?void 0:r.elementRef.current)!=null?c:null);t||(b.current?t=b.current.elementRef.current:E.current&&(t=E.current.elementRef.current)),t&&N(t)},ce=t=>t&&t.querySelector("[autoFocus]"),le=t=>{x.current=t.target},ue=()=>{e.dismissableMask&&e.modal&&l.current===x.current&&D()},oe=()=>{e.blockScroll&&He({variableName:U("scrollbar.width").name})},se=()=>{e.blockScroll&&Pe({variableName:U("scrollbar.width").name})},[ie,fe]=y({type:"mousemove",listener:t=>De(t)}),[me,de]=y({type:"mouseup",listener:()=>ye()}),[ge,Re]=y({type:"keydown",listener:t=>Le(t)}),be=()=>{e.draggable&&(ie(),me()),e.closeOnEscape&&ge()},Ee=()=>{fe(),de(),Re()},Me=t=>{var r,c,f;(r=n.current)!=null&&r.elementRef.current&&((c=t.target.closest("div"))==null?void 0:c.getAttribute("data-pc-section"))!=="headeractions"&&e.draggable&&(m.current=!0,s.current=t.pageX,i.current=t.pageY,(f=n.current)!=null&&f.elementRef.current&&(n.current.elementRef.current.style.margin="0"),document.body.setAttribute("data-p-unselectable-text","true"),G(document.body,{"user-select":"none"}))},De=t=>{var r,c,f,w,H,C,I,B,P,X,Y;if(m.current){if(!((r=n.current)!=null&&r.elementRef.current)||s.current===null||i.current===null)return;let ve=Ie((c=n.current)==null?void 0:c.elementRef.current),xe=Ce((f=n.current)==null?void 0:f.elementRef.current),Se=t.pageX-s.current,Oe=t.pageY-i.current,Z=(w=n.current)==null?void 0:w.elementRef.current.getBoundingClientRect(),d=Z.left+Se,g=Z.top+Oe,z=Be(),V=getComputedStyle((H=n.current)==null?void 0:H.elementRef.current),A=parseFloat(V.marginLeft),K=parseFloat(V.marginTop);n.current&&n.current.elementRef.current&&(n.current.elementRef.current.style.position="fixed"),e.keepInViewport?(d>=((C=e.minX)!=null?C:0)&&d+ve<z.width&&(s.current=t.pageX,(I=n.current)!=null&&I.elementRef.current&&(n.current.elementRef.current.style.left=d-A+"px")),g>=((B=e.minY)!=null?B:0)&&g+xe<z.height&&(i.current=t.pageY,(P=n.current)!=null&&P.elementRef.current&&(n.current.elementRef.current.style.top=g-K+"px"))):(s.current=t.pageX,(X=n.current)!=null&&X.elementRef.current&&(n.current.elementRef.current.style.left=d-A+"px"),i.current=t.pageY,(Y=n.current)!=null&&Y.elementRef.current&&(n.current.elementRef.current.style.top=g-K+"px"))}},ye=()=>{m.current&&(m.current=!1,document.body.removeAttribute("data-p-unselectable-text"),G(document.body,{"user-select":""}))},Le=t=>{t.code==="Escape"&&e.closeOnEscape&&D()};return{state:S,maskRef:l,motionRef:n,maximizableButtonRef:b,closeButtonRef:E,onOpenStateChange:Q,onOpenChange:_,close:D,toggleMaximized:J,onMaskMouseDown:le,onMaskMouseUp:ue,onDragStart:Me,onMotionEnter:p,onMotionAfterEnter:ee,onMotionBeforeLeave:te,onMotionLeave:ne,onMotionAfterLeave:re}}});export{F as defaultProps,Ke as useDialog};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dialog/useDialog.ts","../../src/dialog/useDialog.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener, useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport { $dt } from '@primeuix/styled';\nimport { addClass, addStyle, blockBodyScroll, focus, getOuterHeight, getOuterWidth, getViewport, unblockBodyScroll, ZIndex } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useDialog.props';\n\nexport const useDialog = withHeadless({\n name: 'useDialog',\n defaultProps,\n setup: ({ props, $primereact }) => {\n const [openState, setOpenState] = React.useState<boolean>(props.open ?? props.defaultOpen ?? false);\n const [maximizedState, setMaximizedState] = React.useState<boolean>(false);\n const [maskVisibleState, setMaskVisibleState] = React.useState<boolean>(props.open ?? props.defaultOpen ?? false);\n const maskRef = React.useRef<HTMLDivElement | null>(null);\n const motionRef = React.useRef<{ elementRef: React.RefObject<HTMLDivElement> } | null>(null);\n const maximizableButtonRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n const closeButtonRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n const maskMouseDownTarget = React.useRef<EventTarget | null>(null);\n const target = React.useRef<HTMLElement | null>(null);\n const lastPageX = React.useRef<number | null>(null);\n const lastPageY = React.useRef<number | null>(null);\n const dragging = React.useRef(false);\n\n const state = {\n opened: openState,\n maximized: maximizedState,\n maskVisible: maskVisibleState\n };\n\n useMountEffect(() => {\n if (props.open || props.defaultOpen) {\n setMaskVisibleState(true);\n }\n });\n\n useUpdateEffect(() => {\n if (props.open || (props.defaultOpen && !maskVisibleState)) {\n setMaskVisibleState(true);\n }\n }, [props.open, props.defaultOpen]);\n\n useUpdateEffect(() => {\n if (maskVisibleState && !openState) {\n setOpenState(true);\n }\n }, [maskVisibleState]);\n\n useUnmountEffect(() => {\n setMaskVisibleState(false);\n\n if (props.autoZIndex) {\n ZIndex.clear(maskRef.current as HTMLDivElement);\n }\n });\n\n // methods\n const close = () => {\n setOpenState(false);\n props?.onOpenChange?.({\n value: false\n });\n };\n\n const toggleMaximized = () => setMaximizedState((prev) => !prev);\n\n const onOpenStateChange = () => {\n const newOpenState = !openState;\n\n if (newOpenState && !maskVisibleState) {\n setMaskVisibleState(true);\n }\n\n props?.onOpenChange?.({\n value: newOpenState\n });\n };\n\n const onOpenChange = () => {\n props?.onOpenChange?.({\n value: state.opened\n });\n };\n\n const onMotionEnter = () => {\n target.current = document.activeElement as HTMLElement;\n enableDocumentSettings();\n bindGlobalListeners();\n\n if (props.autoZIndex) {\n ZIndex.set('modal', maskRef.current as HTMLDivElement, (props.baseZIndex as number) + ($primereact.config?.zIndex?.modal ?? 1100));\n }\n };\n\n const onMotionAfterEnter = () => {\n focusElement();\n };\n\n const onMotionBeforeLeave = () => {\n if (props.modal) {\n // && !isUnstyled\n addClass(maskRef.current as HTMLDivElement, 'p-overlay-mask-leave');\n }\n };\n\n const onMotionLeave = () => {\n focus(target.current as HTMLElement);\n target.current = null;\n };\n\n const onMotionAfterLeave = () => {\n if (props.autoZIndex) {\n ZIndex.clear(maskRef.current as HTMLDivElement);\n }\n\n disableDocumentSettings();\n unbindGlobalListeners();\n setMaskVisibleState(false);\n };\n\n const focusElement = () => {\n let focusTarget = findFocusableElement(motionRef.current?.elementRef.current ?? null);\n\n if (!focusTarget) {\n if (maximizableButtonRef.current) {\n focusTarget = maximizableButtonRef.current.elementRef.current;\n } else if (closeButtonRef.current) {\n focusTarget = closeButtonRef.current.elementRef.current;\n }\n }\n\n if (focusTarget) {\n focus(focusTarget as HTMLElement);\n }\n };\n\n const findFocusableElement = (container: HTMLElement | null) => {\n return container && container.querySelector('[autoFocus]');\n };\n\n const onMaskMouseDown = (event: React.MouseEvent) => {\n maskMouseDownTarget.current = event.target;\n };\n\n const onMaskMouseUp = () => {\n if (props.dismissableMask && props.modal && maskRef.current === maskMouseDownTarget.current) {\n close();\n }\n };\n\n const enableDocumentSettings = () => {\n if (props.blockScroll) {\n blockBodyScroll({ variableName: $dt('scrollbar.width').name });\n }\n };\n\n const disableDocumentSettings = () => {\n if (props.blockScroll) {\n unblockBodyScroll({ variableName: $dt('scrollbar.width').name });\n }\n };\n\n const [bindDocumentDragListener, unbindDocumentDragListener] = useEventListener({\n type: 'mousemove',\n listener: (event: Event) => onDrag(event as unknown as React.MouseEvent)\n });\n\n const [bindDocumentDragEndListener, unbindDocumentDragEndListener] = useEventListener({\n type: 'mouseup',\n listener: () => onDragEnd()\n });\n\n const [bindDocumentKeyDownListener, unbindDocumentKeyDownListener] = useEventListener({\n type: 'keydown',\n listener: (event: Event) => onKeyDown(event as unknown as React.KeyboardEvent)\n });\n\n const bindGlobalListeners = () => {\n if (props.draggable) {\n bindDocumentDragListener();\n bindDocumentDragEndListener();\n }\n\n if (props.closeOnEscape) {\n bindDocumentKeyDownListener();\n }\n };\n\n const unbindGlobalListeners = () => {\n unbindDocumentDragListener();\n unbindDocumentDragEndListener();\n unbindDocumentKeyDownListener();\n };\n\n const onDragStart = (event: React.MouseEvent) => {\n if (!motionRef.current?.elementRef.current) return;\n\n if ((event.target as Element).closest('div')?.getAttribute('data-pc-section') === 'headeractions') {\n return;\n }\n\n if (props.draggable) {\n dragging.current = true;\n lastPageX.current = event.pageX;\n lastPageY.current = event.pageY;\n\n if (motionRef.current?.elementRef.current) {\n motionRef.current.elementRef.current.style.margin = '0';\n }\n\n document.body.setAttribute('data-p-unselectable-text', 'true');\n // isUnstyled\n addStyle(document.body, { 'user-select': 'none' });\n }\n };\n\n const onDrag = (event: React.MouseEvent) => {\n if (dragging.current) {\n if (!motionRef.current?.elementRef.current) return;\n\n if (lastPageX.current === null || lastPageY.current === null) return;\n\n const width = getOuterWidth(motionRef.current?.elementRef.current);\n const height = getOuterHeight(motionRef.current?.elementRef.current);\n const deltaX = event.pageX - lastPageX.current;\n const deltaY = event.pageY - lastPageY.current;\n const offset = motionRef.current?.elementRef.current.getBoundingClientRect();\n const leftPos = offset.left + deltaX;\n const topPos = offset.top + deltaY;\n const viewport = getViewport();\n const containerComputedStyle = getComputedStyle(motionRef.current?.elementRef.current);\n const marginLeft = parseFloat(containerComputedStyle.marginLeft);\n const marginTop = parseFloat(containerComputedStyle.marginTop);\n\n if (motionRef.current && motionRef.current.elementRef.current) {\n motionRef.current.elementRef.current.style.position = 'fixed';\n }\n\n if (props.keepInViewport) {\n if (leftPos >= (props.minX ?? 0) && leftPos + width < viewport.width) {\n lastPageX.current = event.pageX;\n\n if (motionRef.current?.elementRef.current) {\n motionRef.current.elementRef.current.style.left = leftPos - marginLeft + 'px';\n }\n }\n\n if (topPos >= (props.minY ?? 0) && topPos + height < viewport.height) {\n lastPageY.current = event.pageY;\n\n if (motionRef.current?.elementRef.current) {\n motionRef.current.elementRef.current.style.top = topPos - marginTop + 'px';\n }\n }\n } else {\n lastPageX.current = event.pageX;\n\n if (motionRef.current?.elementRef.current) {\n motionRef.current.elementRef.current.style.left = leftPos - marginLeft + 'px';\n }\n\n lastPageY.current = event.pageY;\n\n if (motionRef.current?.elementRef.current) {\n motionRef.current.elementRef.current.style.top = topPos - marginTop + 'px';\n }\n }\n }\n };\n\n const onDragEnd = () => {\n if (dragging.current) {\n dragging.current = false;\n document.body.removeAttribute('data-p-unselectable-text');\n // isUnstyled\n addStyle(document.body, { 'user-select': '' });\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.code === 'Escape' && props.closeOnEscape) {\n close();\n }\n };\n\n return {\n state,\n // refs\n maskRef,\n motionRef,\n maximizableButtonRef,\n closeButtonRef,\n // methods\n onOpenStateChange,\n onOpenChange,\n close,\n toggleMaximized,\n onMaskMouseDown,\n onMaskMouseUp,\n onDragStart,\n onMotionEnter,\n onMotionAfterEnter,\n onMotionBeforeLeave,\n onMotionLeave,\n onMotionAfterLeave\n };\n }\n});\n","import type { useDialogProps } from '@primereact/types/shared/dialog';\n\nexport const defaultProps: useDialogProps = {\n open: false,\n defaultOpen: false,\n draggable: true,\n keepInViewport: true,\n minX: 0,\n minY: 0,\n modal: undefined,\n dismissableMask: false,\n closeOnEscape: true,\n blockScroll: false,\n baseZIndex: 0,\n autoZIndex: true,\n appendTo: 'body',\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useMountEffect","useUnmountEffect","useUpdateEffect","$dt","addClass","addStyle","blockBodyScroll","focus","getOuterHeight","getOuterWidth","getViewport","unblockBodyScroll","ZIndex","React","defaultProps","useDialog","withHeadless","defaultProps","props","$primereact","_a","_b","_c","_d","openState","setOpenState","maximizedState","setMaximizedState","maskVisibleState","setMaskVisibleState","maskRef","motionRef","maximizableButtonRef","closeButtonRef","maskMouseDownTarget","target","lastPageX","lastPageY","dragging","state","useMountEffect","useUpdateEffect","useUnmountEffect","ZIndex","close","toggleMaximized","prev","onOpenStateChange","newOpenState","onOpenChange","onMotionEnter","enableDocumentSettings","bindGlobalListeners","onMotionAfterEnter","focusElement","onMotionBeforeLeave","addClass","onMotionLeave","focus","onMotionAfterLeave","disableDocumentSettings","unbindGlobalListeners","focusTarget","findFocusableElement","container","onMaskMouseDown","event","onMaskMouseUp","blockBodyScroll","$dt","unblockBodyScroll","bindDocumentDragListener","unbindDocumentDragListener","useEventListener","onDrag","bindDocumentDragEndListener","unbindDocumentDragEndListener","onDragEnd","bindDocumentKeyDownListener","unbindDocumentKeyDownListener","onKeyDown","onDragStart","addStyle","_e","_f","_g","_h","_i","_j","_k","width","getOuterWidth","height","getOuterHeight","deltaX","deltaY","offset","leftPos","topPos","viewport","getViewport","containerComputedStyle","marginLeft","marginTop"]}
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ export declare const useDialog: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/dialog").useDialogProps, unknown, {
3
+ state: {
4
+ opened: boolean;
5
+ maximized: boolean;
6
+ maskVisible: boolean;
7
+ };
8
+ maskRef: React.RefObject<HTMLDivElement | null>;
9
+ motionRef: React.RefObject<{
10
+ elementRef: React.RefObject<HTMLDivElement>;
11
+ } | null>;
12
+ maximizableButtonRef: React.RefObject<{
13
+ elementRef: React.RefObject<HTMLButtonElement>;
14
+ } | null>;
15
+ closeButtonRef: React.RefObject<{
16
+ elementRef: React.RefObject<HTMLButtonElement>;
17
+ } | null>;
18
+ onOpenStateChange: () => void;
19
+ onOpenChange: () => void;
20
+ close: () => void;
21
+ toggleMaximized: () => void;
22
+ onMaskMouseDown: (event: React.MouseEvent) => void;
23
+ onMaskMouseUp: () => void;
24
+ onDragStart: (event: React.MouseEvent) => void;
25
+ onMotionEnter: () => void;
26
+ onMotionAfterEnter: () => void;
27
+ onMotionBeforeLeave: () => void;
28
+ onMotionLeave: () => void;
29
+ onMotionAfterLeave: () => void;
30
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useDialogProps } from '@primereact/types/shared/dialog';
2
+ export declare const defaultProps: useDialogProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useDrawer';
2
+ export * from './useDrawer.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as F}from"@primereact/core/headless";import{useEventListener as D,useMountEffect as U,useUnmountEffect as q,useUpdateEffect as L}from"@primereact/hooks";import{$dt as S}from"@primeuix/styled";import{addClass as z,blockBodyScroll as $,focus as G,unblockBodyScroll as J,ZIndex as r}from"@primeuix/utils";import*as a from"react";var O={open:!1,defaultOpen:!1,modal:!0,blockScroll:!1,dismissable:!0,baseZIndex:0,autoZIndex:!0,onOpenChange:void 0};var te=F({name:"useDrawer",defaultProps:O,setup:({props:e,elementRef:d,$primereact:w})=>{var R,v,k,M;let[s,m]=a.useState((v=(R=e.open)!=null?R:e.defaultOpen)!=null?v:!1),[o,c]=a.useState((M=(k=e.open)!=null?k:e.defaultOpen)!=null?M:!1),l=a.useRef(null),b=a.useRef(null),f=a.useRef(null),E={opened:s,maskVisible:o};U(()=>{(e.open||e.defaultOpen)&&c(!0)}),L(()=>{(e.open||e.defaultOpen&&!o)&&c(!0)},[e.open,e.defaultOpen]),L(()=>{o&&!s&&m(!0)},[o]),q(()=>{c(!1),e.autoZIndex&&r.clear(l.current)});let i=()=>{var t;m(!1),(t=e==null?void 0:e.onOpenChange)==null||t.call(e,{value:!1})},y=()=>{var n;let t=!s;t&&!o&&c(!0),(n=e==null?void 0:e.onOpenChange)==null||n.call(e,{value:t})},g=()=>{var t;(t=e==null?void 0:e.onOpenChange)==null||t.call(e,{value:E.opened})},x=()=>{var t,n,u;V(),Z(),e.autoZIndex&&r.set("modal",l.current,e.baseZIndex+((u=(n=(t=w.config)==null?void 0:t.zIndex)==null?void 0:n.modal)!=null?u:1100))},C=()=>{T()},h=()=>{e.modal&&z(l.current,"p-overlay-mask-leave")},H=()=>{e.autoZIndex&&r.clear(l.current),B(),j(),c(!1)},T=()=>{var n,u;let t=I((u=(n=b.current)==null?void 0:n.elementRef.current)!=null?u:null);t||f.current&&(t=f.current.elementRef.current),t&&G(t)},I=t=>t&&t.querySelector("[autoFocus]"),[Z,B]=D({type:"keydown",listener:t=>A(t)}),[K,P]=D({type:"click",listener:t=>{N(t)&&i()}}),N=t=>d.current&&!d.current.contains(t.target),V=()=>{e.dismissable&&!e.modal&&K(),e.blockScroll&&$({variableName:S("scrollbar.width").name})},j=()=>{P(),e.blockScroll&&J({variableName:S("scrollbar.width").name})},A=t=>{t.code==="Escape"&&i()};return{state:E,maskRef:l,motionRef:b,closeButtonRef:f,close:i,onOpenStateChange:y,onOpenChange:g,onMotionEnter:x,onMotionAfterEnter:C,onMotionBeforeLeave:h,onMotionAfterLeave:H,onMaskClick:t=>{e.dismissable&&e.modal&&l.current===t.target&&i()}}}});export{O as defaultProps,te as useDrawer};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/drawer/useDrawer.ts","../../src/drawer/useDrawer.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener, useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport { $dt } from '@primeuix/styled';\nimport { addClass, blockBodyScroll, focus, unblockBodyScroll, ZIndex } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useDrawer.props';\n\nexport const useDrawer = withHeadless({\n name: 'useDrawer',\n defaultProps,\n setup: ({ props, elementRef, $primereact }) => {\n const [openState, setOpenState] = React.useState<boolean>(props.open ?? props.defaultOpen ?? false);\n const [maskVisibleState, setMaskVisibleState] = React.useState<boolean>(props.open ?? props.defaultOpen ?? false);\n const maskRef = React.useRef<HTMLDivElement | null>(null);\n const motionRef = React.useRef<{ elementRef: React.RefObject<HTMLDivElement> } | null>(null);\n const closeButtonRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n\n const state = {\n opened: openState,\n maskVisible: maskVisibleState\n };\n\n useMountEffect(() => {\n if (props.open || props.defaultOpen) {\n setMaskVisibleState(true);\n }\n });\n\n useUpdateEffect(() => {\n if (props.open || (props.defaultOpen && !maskVisibleState)) {\n setMaskVisibleState(true);\n }\n }, [props.open, props.defaultOpen]);\n\n useUpdateEffect(() => {\n if (maskVisibleState && !openState) {\n setOpenState(true);\n }\n }, [maskVisibleState]);\n\n useUnmountEffect(() => {\n setMaskVisibleState(false);\n\n if (props.autoZIndex) {\n ZIndex.clear(maskRef.current as HTMLDivElement);\n }\n });\n\n //methods\n const close = () => {\n setOpenState(false);\n\n props?.onOpenChange?.({\n value: false\n });\n };\n\n const onOpenStateChange = () => {\n const newOpenState = !openState;\n\n if (newOpenState && !maskVisibleState) {\n setMaskVisibleState(true);\n }\n\n //setOpenState(newOpenState);\n\n props?.onOpenChange?.({\n value: newOpenState\n });\n };\n\n const onOpenChange = () => {\n props?.onOpenChange?.({\n value: state.opened\n });\n };\n\n const onMotionEnter = () => {\n enableDocumentSettings();\n bindDocumentKeyDownListener();\n\n if (props.autoZIndex) {\n ZIndex.set('modal', maskRef.current as HTMLDivElement, (props.baseZIndex as number) + ($primereact.config?.zIndex?.modal ?? 1100));\n }\n };\n\n const onMotionAfterEnter = () => {\n focusElement();\n };\n\n const onMotionBeforeLeave = () => {\n if (props.modal) {\n // && !isUnstyled\n addClass(maskRef.current as HTMLDivElement, 'p-overlay-mask-leave');\n }\n };\n\n const onMotionAfterLeave = () => {\n if (props.autoZIndex) {\n ZIndex.clear(maskRef.current as HTMLDivElement);\n }\n\n unbindDocumentKeyDownListener();\n disableDocumentSettings();\n setMaskVisibleState(false);\n };\n\n const focusElement = () => {\n let focusTarget = findFocusableElement(motionRef.current?.elementRef.current ?? null);\n\n if (!focusTarget) {\n if (closeButtonRef.current) {\n focusTarget = closeButtonRef.current.elementRef.current;\n }\n }\n\n if (focusTarget) {\n focus(focusTarget as HTMLElement);\n }\n };\n\n const findFocusableElement = (container: HTMLElement | null) => {\n return container && container.querySelector('[autoFocus]');\n };\n\n const [bindDocumentKeyDownListener, unbindDocumentKeyDownListener] = useEventListener({\n type: 'keydown',\n listener: (event: Event) => onKeyDown(event as unknown as React.KeyboardEvent)\n });\n\n const [bindOutsideClickListener, unbindOutsideClickListener] = useEventListener({\n type: 'click',\n listener: (event) => {\n if (isOutsideClicked(event as unknown as React.MouseEvent)) {\n close();\n }\n }\n });\n\n const isOutsideClicked = (event: React.MouseEvent) => {\n return elementRef.current && !elementRef.current.contains(event.target as Node);\n };\n\n const enableDocumentSettings = () => {\n if (props.dismissable && !props.modal) {\n bindOutsideClickListener();\n }\n\n if (props.blockScroll) {\n blockBodyScroll({ variableName: $dt('scrollbar.width').name });\n }\n };\n\n const disableDocumentSettings = () => {\n unbindOutsideClickListener();\n\n if (props.blockScroll) {\n unblockBodyScroll({ variableName: $dt('scrollbar.width').name });\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent): void => {\n if (event.code === 'Escape') {\n close();\n }\n };\n\n const onMaskClick = (event: React.MouseEvent) => {\n if (props.dismissable && props.modal && maskRef.current === event.target) {\n close();\n }\n };\n\n return {\n state,\n // refs\n maskRef,\n motionRef,\n closeButtonRef,\n // methods\n close,\n onOpenStateChange,\n onOpenChange,\n onMotionEnter,\n onMotionAfterEnter,\n onMotionBeforeLeave,\n onMotionAfterLeave,\n onMaskClick\n };\n }\n});\n","import type { useDrawerProps } from '@primereact/types/shared/drawer';\n\nexport const defaultProps: useDrawerProps = {\n open: false,\n defaultOpen: false,\n modal: true,\n blockScroll: false,\n dismissable: true,\n baseZIndex: 0,\n autoZIndex: true,\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useMountEffect","useUnmountEffect","useUpdateEffect","$dt","addClass","blockBodyScroll","focus","unblockBodyScroll","ZIndex","React","defaultProps","useDrawer","withHeadless","defaultProps","props","elementRef","$primereact","_a","_b","_c","_d","openState","setOpenState","maskVisibleState","setMaskVisibleState","maskRef","motionRef","closeButtonRef","state","useMountEffect","useUpdateEffect","useUnmountEffect","ZIndex","close","onOpenStateChange","newOpenState","onOpenChange","onMotionEnter","enableDocumentSettings","bindDocumentKeyDownListener","onMotionAfterEnter","focusElement","onMotionBeforeLeave","addClass","onMotionAfterLeave","unbindDocumentKeyDownListener","disableDocumentSettings","focusTarget","findFocusableElement","focus","container","useEventListener","event","onKeyDown","bindOutsideClickListener","unbindOutsideClickListener","isOutsideClicked","blockBodyScroll","$dt","unblockBodyScroll"]}
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ export declare const useDrawer: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/drawer").useDrawerProps, unknown, {
3
+ state: {
4
+ opened: boolean;
5
+ maskVisible: boolean;
6
+ };
7
+ maskRef: React.RefObject<HTMLDivElement | null>;
8
+ motionRef: React.RefObject<{
9
+ elementRef: React.RefObject<HTMLDivElement>;
10
+ } | null>;
11
+ closeButtonRef: React.RefObject<{
12
+ elementRef: React.RefObject<HTMLButtonElement>;
13
+ } | null>;
14
+ close: () => void;
15
+ onOpenStateChange: () => void;
16
+ onOpenChange: () => void;
17
+ onMotionEnter: () => void;
18
+ onMotionAfterEnter: () => void;
19
+ onMotionBeforeLeave: () => void;
20
+ onMotionAfterLeave: () => void;
21
+ onMaskClick: (event: React.MouseEvent) => void;
22
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useDrawerProps } from '@primereact/types/shared/drawer';
2
+ export declare const defaultProps: useDrawerProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useFocusTrap';
2
+ export * from './useFocusTrap.props';
@@ -0,0 +1,2 @@
1
+ var w=Object.defineProperty;var h=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var g=(o,r,n)=>r in o?w(o,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[r]=n,f=(o,r)=>{for(var n in r||(r={}))A.call(r,n)&&g(o,n,r[n]);if(h)for(var n of h(r))O.call(r,n)&&g(o,n,r[n]);return o};import{withHeadless as $}from"@primereact/core/headless";import{useUnmountEffect as I}from"@primereact/hooks/use-unmount-effect";import{mergeProps as v}from"@primeuix/utils";import{focus as E,getFirstFocusableElement as p,getLastFocusableElement as U,isFocusableElement as S}from"@primeuix/utils/dom";import{isNotEmpty as j}from"@primeuix/utils/object";import*as s from"react";var x={disabled:!1,autoFocus:!0,container:null};var V=$({name:"useFocusTrap",defaultProps:x,setup:({props:o,elementRef:r})=>{let{disabled:n,autoFocus:b,container:R}=o,T=s.useRef(null),H=s.useRef(null),d=s.useRef(null),a=s.useRef(null),P={};s.useEffect(()=>{a.current=R||r.current},[R,r]);let m=e=>`:not(.p-hidden-focusable):not([data-p-hidden-focusable="true"])${e!=null?e:""}`,y=e=>{let t=a.current,l=e.relatedTarget,c=H.current;if(!t||!c)return;let u=l===c||!(t!=null&&t.contains(l))?p(t,m()):c;u&&E(u)},k=e=>{let t=a.current,l=e.relatedTarget,c=T.current;if(!t||!c)return;let u=l===c||!(t!=null&&t.contains(l))?U(t,m()):c;u&&E(u)},L=s.useCallback(()=>{if(!b)return;let e=a.current;if(!e)return;let t=p(e,`[autofocus]${m()}`);t||(t=p(e,m())),t&&E(t)},[b,a]),F=s.useCallback(()=>{let e=a.current;!e||n||!(e instanceof Element)||(e.setAttribute("data-p-focus-trap","true"),d.current=new MutationObserver(t=>{for(let l of t)if(l.type==="childList"&&!e.contains(document.activeElement)){let c=i=>{if(!i||!("nodeType"in i))return null;let M=S(i)?S(i,m(""))?i:p(e,m("")):p(i);return j(M)?M:i.nextSibling?c(i.nextSibling):null},u=c(l.nextSibling);u&&E(u)}}),d.current.observe(e,{childList:!0}))},[n,a]),N=()=>{let e=a.current;e&&(e.removeAttribute("data-p-focus-trap"),d.current&&(d.current.disconnect(),d.current=null))},C=()=>{let e={className:"p-hidden-accessible p-hidden-focusable",tabIndex:0,role:"presentation","aria-hidden":!0,"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0};return[s.createElement("span",f({},v(f({ref:T,onFocus:y},e)))),s.createElement("span",f({},v(f({ref:H,onFocus:k},e))))]};return s.useEffect(()=>{a.current&&(n||(F(),L()))},[n,F,L,a]),I(()=>{N()}),{state:P,hiddenElements:n?[null,null]:C()}}});export{x as defaultProps,V as useFocusTrap};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/focustrap/useFocusTrap.tsx","../../src/focustrap/useFocusTrap.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { mergeProps } from '@primeuix/utils';\nimport { focus, getFirstFocusableElement, getLastFocusableElement, isFocusableElement } from '@primeuix/utils/dom';\nimport { isNotEmpty } from '@primeuix/utils/object';\nimport * as React from 'react';\nimport { defaultProps } from './useFocusTrap.props';\n\nexport const useFocusTrap = withHeadless({\n name: 'useFocusTrap',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const { disabled, autoFocus, container } = props;\n const firstHiddenElementRef = React.useRef<HTMLSpanElement>(null);\n const lastHiddenElementRef = React.useRef<HTMLSpanElement>(null);\n const observerRef = React.useRef<MutationObserver | null>(null);\n const containerRef = React.useRef<HTMLElement | null>(null);\n const state = {};\n\n React.useEffect(() => {\n containerRef.current = container || elementRef.current;\n }, [container, elementRef]);\n\n // methods\n const getComputedSelector = (selector?: string) => `:not(.p-hidden-focusable):not([data-p-hidden-focusable=\"true\"])${selector ?? ''}`;\n\n const handleFirstHiddenFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n const containerElement = containerRef.current;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const lastHiddenElement = lastHiddenElementRef.current;\n\n if (!containerElement || !lastHiddenElement) return;\n\n const fallback = relatedTarget === lastHiddenElement || !containerElement?.contains(relatedTarget) ? getFirstFocusableElement(containerElement, getComputedSelector()) : lastHiddenElement;\n\n if (fallback) {\n focus(fallback as HTMLElement);\n }\n };\n\n const handleLastHiddenFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n const containerElement = containerRef.current;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const firstHiddenElement = firstHiddenElementRef.current;\n\n if (!containerElement || !firstHiddenElement) return;\n\n const fallback = relatedTarget === firstHiddenElement || !containerElement?.contains(relatedTarget) ? getLastFocusableElement(containerElement, getComputedSelector()) : firstHiddenElement;\n\n if (fallback) {\n focus(fallback as HTMLElement);\n }\n };\n\n const autoElementFocus = React.useCallback(() => {\n if (!autoFocus) return;\n\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n let focusableElement = getFirstFocusableElement(containerElement, `[autofocus]${getComputedSelector()}`);\n\n if (!focusableElement) {\n focusableElement = getFirstFocusableElement(containerElement, getComputedSelector());\n }\n\n if (focusableElement) {\n focus(focusableElement as HTMLElement);\n }\n }, [autoFocus, containerRef]);\n\n const bind = React.useCallback(() => {\n const containerElement = containerRef.current;\n\n if (!containerElement || disabled || !(containerElement instanceof Element)) return;\n\n containerElement.setAttribute('data-p-focus-trap', 'true');\n observerRef.current = new MutationObserver((mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList' && !containerElement.contains(document.activeElement)) {\n const findNextFocusableElement = (_el: Node | null): HTMLElement | null => {\n if (!_el || !('nodeType' in _el)) return null;\n\n const focusableElement = isFocusableElement(_el as HTMLElement)\n ? isFocusableElement(_el as HTMLElement, getComputedSelector(''))\n ? (_el as HTMLElement)\n : getFirstFocusableElement(containerElement, getComputedSelector(''))\n : getFirstFocusableElement(_el as HTMLElement);\n\n return isNotEmpty(focusableElement) ? (focusableElement as HTMLElement) : _el.nextSibling ? findNextFocusableElement(_el.nextSibling) : null;\n };\n\n const nextElement = findNextFocusableElement(mutation.nextSibling);\n\n if (nextElement) {\n focus(nextElement);\n }\n }\n }\n });\n\n observerRef.current.observe(containerElement, { childList: true });\n }, [disabled, containerRef]);\n\n const unbind = () => {\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n containerElement.removeAttribute('data-p-focus-trap');\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n };\n\n const createHiddenElements = (): [React.ReactElement | null, React.ReactElement | null] => {\n const hiddenElementProps = {\n className: 'p-hidden-accessible p-hidden-focusable',\n tabIndex: 0,\n role: 'presentation',\n 'aria-hidden': true,\n 'data-p-hidden-accessible': true,\n 'data-p-hidden-focusable': true\n };\n\n const hiddenElements: [React.ReactElement | null, React.ReactElement | null] = [\n <span\n {...mergeProps({\n ref: firstHiddenElementRef,\n onFocus: handleFirstHiddenFocus,\n ...hiddenElementProps\n })}\n />,\n <span\n {...mergeProps({\n ref: lastHiddenElementRef,\n onFocus: handleLastHiddenFocus,\n ...hiddenElementProps\n })}\n />\n ];\n\n return hiddenElements;\n };\n // effects\n\n React.useEffect(() => {\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n if (!disabled) {\n bind();\n autoElementFocus();\n }\n }, [disabled, bind, autoElementFocus, containerRef]);\n\n useUnmountEffect(() => {\n unbind();\n });\n\n return {\n state,\n hiddenElements: !disabled ? createHiddenElements() : ([null, null] as [null, null])\n };\n }\n});\n","import type { useFocusTrapProps } from '@primereact/types/shared/focustrap';\n\nexport const defaultProps: useFocusTrapProps = {\n disabled: false,\n autoFocus: true,\n container: null\n};\n"],"mappings":"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","names":["withHeadless","useUnmountEffect","mergeProps","focus","getFirstFocusableElement","getLastFocusableElement","isFocusableElement","isNotEmpty","React","defaultProps","useFocusTrap","withHeadless","defaultProps","props","elementRef","disabled","autoFocus","container","firstHiddenElementRef","lastHiddenElementRef","observerRef","containerRef","state","getComputedSelector","selector","handleFirstHiddenFocus","event","containerElement","relatedTarget","lastHiddenElement","fallback","getFirstFocusableElement","focus","handleLastHiddenFocus","firstHiddenElement","getLastFocusableElement","autoElementFocus","focusableElement","bind","mutationList","mutation","findNextFocusableElement","_el","isFocusableElement","isNotEmpty","nextElement","unbind","createHiddenElements","hiddenElementProps","__spreadValues","mergeProps","useUnmountEffect"]}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export declare const useFocusTrap: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/focustrap").useFocusTrapProps, unknown, {
3
+ state: {};
4
+ hiddenElements: [React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null, React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null];
5
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useFocusTrapProps } from '@primereact/types/shared/focustrap';
2
+ export declare const defaultProps: useFocusTrapProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useImageCompare';
2
+ export * from './useImageCompare.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as n}from"@primereact/core/headless";import{$dt as p}from"@primeuix/styled";import{setCSSProperty as i}from"@primeuix/utils";import*as e from"react";var o={};var C=n({name:"useImageCompare",defaultProps:o,setup:()=>{let[m,s]=e.useState("50"),t=e.useRef(null);return{state:{slideValue:m},onSlideChange:r=>{if(!t.current)return;let a=r.target.value;s(a),i(t.current,p("imagecompare.scope.x").name,`${a}%`)},registerRightImage:r=>{t.current=r}}}});export{o as defaultProps,C as useImageCompare};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/imagecompare/useImageCompare.ts","../../src/imagecompare/useImageCompare.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { $dt } from '@primeuix/styled';\nimport { setCSSProperty } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useImageCompare.props';\n\nexport const useImageCompare = withHeadless({\n name: 'useImageCompare',\n defaultProps,\n setup: () => {\n const [slideValueState, setSlideValueState] = React.useState<string | undefined>('50');\n const rightImageRef = React.useRef<HTMLImageElement>(null);\n\n const state = {\n slideValue: slideValueState\n };\n\n // methods\n const onSlideChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!rightImageRef.current) return;\n\n const value = event.target.value;\n\n setSlideValueState(value);\n setCSSProperty(rightImageRef.current, $dt('imagecompare.scope.x').name, `${value}%`);\n };\n\n const registerRightImage = (element: HTMLImageElement) => {\n rightImageRef.current = element;\n };\n\n return {\n state,\n onSlideChange,\n registerRightImage\n };\n }\n});\n","import type { useImageCompareProps } from '@primereact/types/shared/imagecompare';\n\nexport const defaultProps: useImageCompareProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,OAAAC,MAAW,mBACpB,OAAS,kBAAAC,MAAsB,kBAC/B,UAAYC,MAAW,QCDhB,IAAMC,EAAqC,CAAC,EDI5C,IAAMC,EAAkBC,EAAa,CACxC,KAAM,kBACN,aAAAC,EACA,MAAO,IAAM,CACT,GAAM,CAACC,EAAiBC,CAAkB,EAAU,WAA6B,IAAI,EAC/EC,EAAsB,SAAyB,IAAI,EAoBzD,MAAO,CACH,MAnBU,CACV,WAAYF,CAChB,EAkBI,cAfmBG,GAA+C,CAClE,GAAI,CAACD,EAAc,QAAS,OAE5B,IAAME,EAAQD,EAAM,OAAO,MAE3BF,EAAmBG,CAAK,EACxBC,EAAeH,EAAc,QAASI,EAAI,sBAAsB,EAAE,KAAM,GAAGF,CAAK,GAAG,CACvF,EASI,mBAPwBG,GAA8B,CACtDL,EAAc,QAAUK,CAC5B,CAMA,CACJ,CACJ,CAAC","names":["withHeadless","$dt","setCSSProperty","React","defaultProps","useImageCompare","withHeadless","defaultProps","slideValueState","setSlideValueState","rightImageRef","event","value","setCSSProperty","$dt","element"]}
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export declare const useImageCompare: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/imagecompare").useImageCompareProps, unknown, {
3
+ state: {
4
+ slideValue: string | undefined;
5
+ };
6
+ onSlideChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
7
+ registerRightImage: (element: HTMLImageElement) => void;
8
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useImageCompareProps } from '@primereact/types/shared/imagecompare';
2
+ export declare const defaultProps: useImageCompareProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useMessage';
2
+ export * from './useMessage.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as i}from"@primereact/core/headless";import*as r from"react";var n={life:null,onClose:void 0};var d=i({name:"useMessage",defaultProps:n,setup:({props:t})=>{let[u,o]=r.useState(!0),e=r.useRef(null),a={visible:u},s=r.useCallback(()=>{var l;o(!1),e.current&&(clearTimeout(e.current),e.current=null),(l=t.onClose)==null||l.call(t)},[t.onClose]);return r.useEffect(()=>(e.current&&(clearTimeout(e.current),e.current=null),typeof t.life=="number"&&t.life>0&&u&&(e.current=setTimeout(()=>{s()},t.life)),()=>{e.current&&(clearTimeout(e.current),e.current=null)}),[t.life,u,s]),{state:a,handleClose:s}}});export{n as defaultProps,d as useMessage};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/message/useMessage.ts","../../src/message/useMessage.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport * as React from 'react';\nimport { defaultProps } from './useMessage.props';\n\nexport const useMessage = withHeadless({\n name: 'useMessage',\n defaultProps,\n setup: ({ props }) => {\n const [visibleState, setVisibleState] = React.useState<boolean>(true);\n const timerRef = React.useRef<NodeJS.Timeout | null>(null);\n\n const state = {\n visible: visibleState\n };\n\n // methods\n const handleClose = React.useCallback(() => {\n setVisibleState(false);\n\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n props.onClose?.();\n }, [props.onClose]);\n\n // effects\n React.useEffect(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (typeof props.life === 'number' && props.life > 0 && visibleState) {\n timerRef.current = setTimeout(() => {\n handleClose();\n }, props.life);\n }\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [props.life, visibleState, handleClose]);\n\n return {\n state,\n handleClose\n };\n }\n});\n","import type { useMessageProps } from '@primereact/types/shared/message';\n\nexport const defaultProps: useMessageProps = {\n life: null,\n onClose: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,UAAYC,MAAW,QCChB,IAAMC,EAAgC,CACzC,KAAM,KACN,QAAS,MACb,EDDO,IAAMC,EAAaC,EAAa,CACnC,KAAM,aACN,aAAAC,EACA,MAAO,CAAC,CAAE,MAAAC,CAAM,IAAM,CAClB,GAAM,CAACC,EAAcC,CAAe,EAAU,WAAkB,EAAI,EAC9DC,EAAiB,SAA8B,IAAI,EAEnDC,EAAQ,CACV,QAASH,CACb,EAGMI,EAAoB,cAAY,IAAM,CAhBpD,IAAAC,EAiBYJ,EAAgB,EAAK,EAEjBC,EAAS,UACT,aAAaA,EAAS,OAAO,EAC7BA,EAAS,QAAU,OAGvBG,EAAAN,EAAM,UAAN,MAAAM,EAAA,KAAAN,EACJ,EAAG,CAACA,EAAM,OAAO,CAAC,EAGlB,OAAM,YAAU,KACRG,EAAS,UACT,aAAaA,EAAS,OAAO,EAC7BA,EAAS,QAAU,MAGnB,OAAOH,EAAM,MAAS,UAAYA,EAAM,KAAO,GAAKC,IACpDE,EAAS,QAAU,WAAW,IAAM,CAChCE,EAAY,CAChB,EAAGL,EAAM,IAAI,GAGV,IAAM,CACLG,EAAS,UACT,aAAaA,EAAS,OAAO,EAC7BA,EAAS,QAAU,KAE3B,GACD,CAACH,EAAM,KAAMC,EAAcI,CAAW,CAAC,EAEnC,CACH,MAAAD,EACA,YAAAC,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","React","defaultProps","useMessage","withHeadless","defaultProps","props","visibleState","setVisibleState","timerRef","state","handleClose","_a"]}
@@ -0,0 +1,6 @@
1
+ export declare const useMessage: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/message").useMessageProps, unknown, {
2
+ state: {
3
+ visible: boolean;
4
+ };
5
+ handleClose: () => void;
6
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useMessageProps } from '@primereact/types/shared/message';
2
+ export declare const defaultProps: useMessageProps;
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primereact/headless",
3
- "version": "11.0.0-alpha.1",
3
+ "version": "11.0.0-alpha.3",
4
4
  "author": "PrimeTek Informatics",
5
5
  "description": "",
6
6
  "homepage": "https://primereact.org/",
@@ -32,9 +32,9 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@primeuix/styled": "^0.7.0-beta.2",
36
- "@primeuix/utils": "^0.6.0-beta.2",
37
- "@primereact/core": "11.0.0-alpha.1",
38
- "@primereact/hooks": "11.0.0-alpha.1"
35
+ "@primeuix/styled": "^0.7.0",
36
+ "@primeuix/utils": "^0.6.0",
37
+ "@primereact/core": "11.0.0-alpha.3",
38
+ "@primereact/hooks": "11.0.0-alpha.3"
39
39
  }
40
40
  }
@@ -0,0 +1,2 @@
1
+ export * from './usePlacer';
2
+ export * from './usePlacer.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as J}from"@primereact/core/headless";import{addStyle as C,getOffset as x,getOuterHeight as T,getOuterWidth as w,getViewport as K}from"@primeuix/utils/dom";import*as A from"react";var k={align:"center",alignOffset:0,side:"top",sideOffset:0};var R=J({name:"usePlacer",defaultProps:k,setup:({props:f})=>{let[P,S]=A.useState(f.side),[$,E]=A.useState(f.align),p=A.useRef(null),d=A.useRef(null),m=A.useRef(null),M={effectiveSide:P,effectiveAlign:$},O=()=>{var n,t;return d!=null&&d.current&&(d==null?void 0:d.current)instanceof HTMLElement?d==null?void 0:d.current:(t=(n=d==null?void 0:d.current)==null?void 0:n.elementRef)==null?void 0:t.current},y=()=>{var n,t;return m!=null&&m.current&&(m==null?void 0:m.current)instanceof HTMLElement?m==null?void 0:m.current:(t=(n=m==null?void 0:m.current)==null?void 0:n.elementRef)==null?void 0:t.current},b=()=>{var n,t;return p!=null&&p.current&&(p==null?void 0:p.current)instanceof HTMLElement?p==null?void 0:p.current:(t=(n=p==null?void 0:p.current)==null?void 0:n.elementRef)==null?void 0:t.current},B=n=>{var h;let t=y(),o=O();if(!t||!o)return;let r=x(o),e=w(t),s=w(o),c=T(t),i=T(b()),l=window.scrollY||document.documentElement.scrollTop,a=window.scrollX||document.documentElement.scrollLeft,u=H(n,Number(r.left),s,e),g=Number(r.top)-c-((h=f.sideOffset)!=null?h:0)-i;t.style.transform=`translate(${u+a}px, ${g-l}px)`},N=n=>{var h;let t=y(),o=O();if(!t||!o)return;let r=x(o),e=w(t),s=w(o),c=T(o),i=T(b()),l=window.scrollY||document.documentElement.scrollTop,a=window.scrollX||document.documentElement.scrollLeft,u=H(n,Number(r.left),s,e),g=Number(r.top)+c+((h=f.sideOffset)!=null?h:0)+i;t.style.transform=`translate(${u+a}px, ${g-l}px)`},W=n=>{var h;let t=y(),o=O();if(!t||!o)return;let r=x(o),e=w(t),s=T(t),c=T(o),i=w(b()),l=window.scrollY||document.documentElement.scrollTop,a=window.scrollX||document.documentElement.scrollLeft,u=L(n,Number(r.top),c,s),g=Number(r.left)-e-((h=f.sideOffset)!=null?h:0)-i;t.style.transform=`translate(${g+a}px, ${u-l}px)`},X=n=>{var h;let t=y(),o=O();if(!t||!o)return;let r=x(o),e=T(t),s=T(o),c=w(o),i=w(b()),l=window.scrollY||document.documentElement.scrollTop,a=window.scrollX||document.documentElement.scrollLeft,u=L(n,Number(r.top),s,e),g=Number(r.left)+c+((h=f.sideOffset)!=null?h:0)+i;t.style.transform=`translate(${g+a}px, ${u-l}px)`},H=(n,t,o,r)=>{var e,s;switch(n){case"start":return t+((e=f.alignOffset)!=null?e:0);case"end":return t+o-r-((s=f.alignOffset)!=null?s:0);case"center":default:return t+(o-r)/2}},L=(n,t,o,r)=>{var e,s;switch(n){case"start":return t+((e=f.alignOffset)!=null?e:0);case"end":return t+o-r-((s=f.alignOffset)!=null?s:0);case"center":default:return t+(o-r)/2}},Y=()=>{var c,i;let n=y();if(!n)return;C(n,{position:"fixed",left:"0",top:"0",willChange:"transform"});let t=b();t&&C(t,{position:"absolute"});let o=q((c=f.side)!=null?c:"top"),r=j((i=f.align)!=null?i:"center"),{side:e,align:s}=V(o,r);S(e),E(s),n.style.setProperty("--placer-transform-origin",G(e!=null?e:"top",s!=null?s:"center"))},v=(n,t)=>{let o=y();o&&(o==null||o.setAttribute("data-side",n),o==null||o.setAttribute("data-align",t));let r=O();r&&(r==null||r.setAttribute("data-side",n),r==null||r.setAttribute("data-align",t));let e=b();e&&(e==null||e.setAttribute("data-side",n),e==null||e.setAttribute("data-align",t))},V=(n,t)=>{for(let o of n)for(let r of t)if(v(o,r),D(o,r),I(o),!F())return{side:o,align:r};return{side:f.side,align:f.align}},j=n=>{switch(n){case"start":return["start","center","end"];case"end":return["end","center","start"];case"center":return["center","start","end"];default:return["center","start","end"]}},q=n=>{let t=["top","right","bottom","left"],o=z(n),r=t.filter(e=>e!==n&&e!==o);return[n,o,...r]},z=n=>{switch(n){case"top":return"bottom";case"bottom":return"top";case"left":return"right";case"right":return"left";default:return n}},D=(n,t)=>{switch(n){case"top":B(t);break;case"bottom":N(t);break;case"left":W(t);break;case"right":X(t);break}S(n),E(t)},F=()=>{var c,i,l,a;let n=y(),t=b();if(!n)return!1;let o=K(),r=n.getBoundingClientRect(),e=t==null?void 0:t.getBoundingClientRect(),s={top:Math.min(r.top,(c=e==null?void 0:e.top)!=null?c:r.top),left:Math.min(r.left,(i=e==null?void 0:e.left)!=null?i:r.left),right:Math.max(r.right,(l=e==null?void 0:e.right)!=null?l:r.right),bottom:Math.max(r.bottom,(a=e==null?void 0:e.bottom)!=null?a:r.bottom)};return s.left<0||s.top<0||s.right>o.width||s.bottom>o.height},G=(n,t)=>{let o=y(),r=b();if(!o)return"center center";let e=o.getBoundingClientRect(),s=r?r.getBoundingClientRect():null,c=e.width/2,i=e.height/2;if(s){let l=s.height,a=s.width,u=s.left+a/2-e.left,g=s.top+l/2-e.top;switch(n){case"top":c=u,i=e.height+l;break;case"bottom":c=u,i=0;break;case"left":c=e.width+a,i=g;break;case"right":c=e.left-s.left,i=g;break}}else{let l=(a,u)=>{let g=a==="x"?e.width:e.height;switch(u){case"start":return 0;case"end":return g;case"center":return g/2}};switch(n){case"top":i=e.height,c=l("x",t);break;case"bottom":i=0,c=l("x",t);break;case"left":c=e.width,i=l("y",t);break;case"right":c=0,i=l("y",t);break}}return`${c}px ${i}px`},I=n=>{let t=b(),o=y(),r=O();if(!o||!t)return;let e=o.getBoundingClientRect(),s=r.getBoundingClientRect(),c=s.left+s.width/2,i=s.top+s.height/2,l=c-e.left,a=i-e.top,u=8;(n==="top"||n==="bottom")&&((l<u||l>e.width-u)&&(t.style.opacity="0"),t.style.left=`${l}px`,t.style.top=n==="top"?"100%":"auto",t.style.bottom=n==="bottom"?"100%":"auto",t.style.transform="translateX(-50%)"),(n==="left"||n==="right")&&((a<u||a>e.height-u)&&(t.style.opacity="0"),t.style.top=`${a}px`,t.style.left=n==="left"?"100%":"auto",t.style.right=n==="right"?"100%":"auto",t.style.transform="translateY(-50%)")};return{state:M,containerRef:m,anchorRef:d,arrowRef:p,applyPlacement:Y}}});export{k as defaultProps,R as usePlacer};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/placer/usePlacer.ts","../../src/placer/usePlacer.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { AlignType, SideType } from '@primereact/types/shared/placer';\nimport { addStyle, getOffset, getOuterHeight, getOuterWidth, getViewport } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './usePlacer.props';\n\nexport const usePlacer = withHeadless({\n name: 'usePlacer',\n defaultProps,\n setup: ({ props }) => {\n const [effectiveSide, setEffectiveSide] = React.useState<SideType | null | undefined>(props.side);\n const [effectiveAlign, setEffectiveAlign] = React.useState<AlignType | null | undefined>(props.align);\n const arrowRef = React.useRef<HTMLElement | null | unknown>(null);\n const anchorRef = React.useRef<HTMLElement | null | unknown>(null);\n const containerRef = React.useRef<HTMLElement | null | unknown>(null);\n\n const state = {\n effectiveSide,\n effectiveAlign\n };\n\n const getAnchor = () => {\n if (anchorRef?.current && anchorRef?.current instanceof HTMLElement) {\n return anchorRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return anchorRef?.current?.elementRef?.current;\n };\n\n const getContainer = () => {\n if (containerRef?.current && containerRef?.current instanceof HTMLElement) {\n return containerRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return containerRef?.current?.elementRef?.current;\n };\n\n const getArrow = () => {\n if (arrowRef?.current && arrowRef?.current instanceof HTMLElement) {\n return arrowRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return arrowRef?.current?.elementRef?.current;\n };\n\n const placeTop = (align: AlignType) => {\n const container = getContainer();\n const anchor = getAnchor();\n\n if (!container || !anchor) return;\n\n const anchorOffset = getOffset(anchor);\n const tooltipWidth = getOuterWidth(container);\n const anchorWidth = getOuterWidth(anchor);\n const tooltipHeight = getOuterHeight(container);\n const arrowHeight = getOuterHeight(getArrow());\n\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\n const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\n\n const left = getLeftByAlign(align, Number(anchorOffset.left), anchorWidth, tooltipWidth);\n\n const top = Number(anchorOffset.top) - tooltipHeight - (props.sideOffset ?? 0) - arrowHeight;\n\n container.style.transform = `translate(${left + scrollLeft}px, ${top - scrollTop}px)`;\n };\n\n const placeBottom = (align: AlignType) => {\n const container = getContainer();\n const anchor = getAnchor();\n\n if (!container || !anchor) return;\n\n const anchorOffset = getOffset(anchor);\n const tooltipWidth = getOuterWidth(container);\n const anchorWidth = getOuterWidth(anchor);\n const anchorHeight = getOuterHeight(anchor);\n const arrowHeight = getOuterHeight(getArrow());\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\n const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\n const left = getLeftByAlign(align, Number(anchorOffset.left), anchorWidth, tooltipWidth);\n\n const top = Number(anchorOffset.top) + anchorHeight + (props.sideOffset ?? 0) + arrowHeight;\n\n container.style.transform = `translate(${left + scrollLeft}px, ${top - scrollTop}px)`;\n };\n\n const placeLeft = (align: AlignType) => {\n const container = getContainer();\n const anchor = getAnchor();\n\n if (!container || !anchor) return;\n\n const anchorOffset = getOffset(anchor);\n const tooltipWidth = getOuterWidth(container);\n const tooltipHeight = getOuterHeight(container);\n const anchorHeight = getOuterHeight(anchor);\n const arrowWidth = getOuterWidth(getArrow());\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\n const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\n const top = getTopByAlign(align, Number(anchorOffset.top), anchorHeight, tooltipHeight);\n\n const left = Number(anchorOffset.left) - tooltipWidth - (props.sideOffset ?? 0) - arrowWidth;\n\n container.style.transform = `translate(${left + scrollLeft}px, ${top - scrollTop}px)`;\n };\n\n const placeRight = (align: AlignType) => {\n const container = getContainer();\n const anchor = getAnchor();\n\n if (!container || !anchor) return;\n\n const anchorOffset = getOffset(anchor);\n const tooltipHeight = getOuterHeight(container);\n const anchorHeight = getOuterHeight(anchor);\n const anchorWidth = getOuterWidth(anchor);\n const arrowWidth = getOuterWidth(getArrow());\n\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\n const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\n const top = getTopByAlign(align, Number(anchorOffset.top), anchorHeight, tooltipHeight);\n\n const left = Number(anchorOffset.left) + anchorWidth + (props.sideOffset ?? 0) + arrowWidth;\n\n container.style.transform = `translate(${left + scrollLeft}px, ${top - scrollTop}px)`;\n };\n\n const getLeftByAlign = (align: AlignType, anchorLeft: number, anchorWidth: number, tooltipWidth: number): number => {\n switch (align) {\n case 'start':\n return anchorLeft + (props.alignOffset ?? 0);\n case 'end':\n return anchorLeft + anchorWidth - tooltipWidth - (props.alignOffset ?? 0);\n case 'center':\n default:\n return anchorLeft + (anchorWidth - tooltipWidth) / 2;\n }\n };\n\n const getTopByAlign = (align: AlignType, anchorTop: number, anchorHeight: number, tooltipHeight: number): number => {\n switch (align) {\n case 'start':\n return anchorTop + (props.alignOffset ?? 0);\n case 'end':\n return anchorTop + anchorHeight - tooltipHeight - (props.alignOffset ?? 0);\n case 'center':\n default:\n return anchorTop + (anchorHeight - tooltipHeight) / 2;\n }\n };\n\n const applyPlacement = () => {\n const container = getContainer();\n\n if (!container) return;\n\n addStyle(container, {\n position: 'fixed',\n left: '0',\n top: '0',\n willChange: 'transform'\n });\n\n const arrow = getArrow();\n\n if (arrow) {\n addStyle(arrow, {\n position: 'absolute'\n });\n }\n\n const sideOptions = getSideOptions(props.side ?? 'top');\n const alignOptions = getAlignOptions(props.align ?? 'center');\n\n const { side, align } = tryPlacement(sideOptions, alignOptions);\n\n setEffectiveSide(side);\n setEffectiveAlign(align);\n\n container.style.setProperty('--placer-transform-origin', getTransformOrigin(side ?? 'top', align ?? 'center'));\n };\n\n const updateAttributes = (side: SideType, align: AlignType) => {\n const container = getContainer();\n\n if (container) {\n container?.setAttribute('data-side', side);\n container?.setAttribute('data-align', align);\n }\n\n const anchor = getAnchor();\n\n if (anchor) {\n anchor?.setAttribute('data-side', side);\n anchor?.setAttribute('data-align', align);\n }\n\n const arrow = getArrow();\n\n if (arrow) {\n arrow?.setAttribute('data-side', side);\n arrow?.setAttribute('data-align', align);\n }\n };\n\n const tryPlacement = (sideOptions: SideType[], alignOptions: AlignType[]) => {\n for (const side of sideOptions) {\n for (const align of alignOptions) {\n updateAttributes(side, align);\n placeContainer(side, align);\n updateArrowPosition(side);\n\n if (!isOutOfBounds()) {\n return { side, align };\n }\n }\n }\n\n return { side: props.side, align: props.align };\n };\n\n const getAlignOptions = (align: AlignType): AlignType[] => {\n switch (align) {\n case 'start':\n return ['start', 'center', 'end'];\n case 'end':\n return ['end', 'center', 'start'];\n case 'center':\n return ['center', 'start', 'end'];\n default:\n return ['center', 'start', 'end'];\n }\n };\n\n const getSideOptions = (side: SideType): SideType[] => {\n const allSides: SideType[] = ['top', 'right', 'bottom', 'left'];\n const flipped = flipSide(side);\n const remaining = allSides.filter((s) => s !== side && s !== flipped);\n\n return [side, flipped, ...remaining];\n };\n\n const flipSide = (side: SideType): SideType => {\n switch (side) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n return side;\n }\n };\n\n const placeContainer = (side: SideType, align: AlignType) => {\n switch (side) {\n case 'top':\n placeTop(align);\n break;\n case 'bottom':\n placeBottom(align);\n break;\n case 'left':\n placeLeft(align);\n break;\n case 'right':\n placeRight(align);\n break;\n }\n\n setEffectiveSide(side);\n setEffectiveAlign(align);\n };\n\n const isOutOfBounds = () => {\n const container = getContainer();\n const arrow = getArrow();\n\n if (!container) return false;\n\n const viewport = getViewport();\n const containerRect = container.getBoundingClientRect();\n const arrowRect = arrow?.getBoundingClientRect();\n\n const combinedRect = {\n top: Math.min(containerRect.top, arrowRect?.top ?? containerRect.top),\n left: Math.min(containerRect.left, arrowRect?.left ?? containerRect.left),\n right: Math.max(containerRect.right, arrowRect?.right ?? containerRect.right),\n bottom: Math.max(containerRect.bottom, arrowRect?.bottom ?? containerRect.bottom)\n };\n\n return combinedRect.left < 0 || combinedRect.top < 0 || combinedRect.right > viewport.width || combinedRect.bottom > viewport.height;\n };\n\n const getTransformOrigin = (side: SideType, align: AlignType): string => {\n const container = getContainer();\n const arrow = getArrow();\n\n if (!container) return 'center center';\n\n const containerRect = container.getBoundingClientRect();\n const arrowRect = arrow ? (arrow as HTMLElement).getBoundingClientRect() : null;\n\n let originX = containerRect.width / 2;\n let originY = containerRect.height / 2;\n\n if (arrowRect) {\n const arrowHeight = arrowRect.height;\n const arrowWidth = arrowRect.width;\n const arrowCenterX = arrowRect.left + arrowWidth / 2 - containerRect.left;\n const arrowCenterY = arrowRect.top + arrowHeight / 2 - containerRect.top;\n\n switch (side) {\n case 'top':\n originX = arrowCenterX;\n originY = containerRect.height + arrowHeight;\n break;\n case 'bottom':\n originX = arrowCenterX;\n originY = 0;\n break;\n case 'left':\n originX = containerRect.width + arrowWidth;\n originY = arrowCenterY;\n break;\n case 'right':\n originX = containerRect.left - arrowRect.left;\n originY = arrowCenterY;\n break;\n }\n } else {\n const alignTo = (type: 'x' | 'y', align: AlignType) => {\n const dim = type === 'x' ? containerRect.width : containerRect.height;\n\n switch (align) {\n case 'start':\n return 0;\n case 'end':\n return dim;\n case 'center':\n return dim / 2;\n }\n };\n\n switch (side) {\n case 'top':\n originY = containerRect.height;\n originX = alignTo('x', align);\n break;\n case 'bottom':\n originY = 0;\n originX = alignTo('x', align);\n\n break;\n case 'left':\n originX = containerRect.width;\n originY = alignTo('y', align);\n\n break;\n case 'right':\n originX = 0;\n originY = alignTo('y', align);\n\n break;\n }\n }\n\n return `${originX}px ${originY}px`;\n };\n\n const updateArrowPosition = (side: SideType) => {\n const arrow = getArrow();\n const container = getContainer();\n const anchor = getAnchor();\n\n if (!container || !arrow) return;\n\n const tooltipRect = container.getBoundingClientRect();\n const anchorRect = anchor.getBoundingClientRect();\n const anchorCenterX = anchorRect.left + anchorRect.width / 2;\n const anchorCenterY = anchorRect.top + anchorRect.height / 2;\n\n const arrowLeft = anchorCenterX - tooltipRect.left;\n const arrowTop = anchorCenterY - tooltipRect.top;\n const padding = 8;\n\n if (side === 'top' || side === 'bottom') {\n if (arrowLeft < padding || arrowLeft > tooltipRect.width - padding) {\n arrow.style.opacity = '0';\n }\n\n arrow.style.left = `${arrowLeft}px`;\n arrow.style.top = side === 'top' ? '100%' : 'auto';\n arrow.style.bottom = side === 'bottom' ? '100%' : 'auto';\n arrow.style.transform = 'translateX(-50%)';\n }\n\n if (side === 'left' || side === 'right') {\n if (arrowTop < padding || arrowTop > tooltipRect.height - padding) {\n arrow.style.opacity = '0';\n }\n\n arrow.style.top = `${arrowTop}px`;\n arrow.style.left = side === 'left' ? '100%' : 'auto';\n arrow.style.right = side === 'right' ? '100%' : 'auto';\n arrow.style.transform = 'translateY(-50%)';\n }\n };\n\n // effects\n\n return {\n state,\n containerRef,\n anchorRef,\n arrowRef,\n applyPlacement\n };\n }\n});\n","import type { usePlacerProps } from '@primereact/types/shared/placer';\n\nexport const defaultProps: usePlacerProps = {\n align: 'center',\n alignOffset: 0,\n side: 'top',\n sideOffset: 0\n};\n"],"mappings":"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","names":["withHeadless","addStyle","getOffset","getOuterHeight","getOuterWidth","getViewport","React","defaultProps","usePlacer","withHeadless","defaultProps","props","effectiveSide","setEffectiveSide","effectiveAlign","setEffectiveAlign","arrowRef","anchorRef","containerRef","state","getAnchor","_a","_b","getContainer","getArrow","placeTop","align","container","anchor","anchorOffset","getOffset","tooltipWidth","getOuterWidth","anchorWidth","tooltipHeight","getOuterHeight","arrowHeight","scrollTop","scrollLeft","left","getLeftByAlign","top","placeBottom","anchorHeight","placeLeft","arrowWidth","getTopByAlign","placeRight","anchorLeft","anchorTop","applyPlacement","addStyle","arrow","sideOptions","getSideOptions","alignOptions","getAlignOptions","side","tryPlacement","getTransformOrigin","updateAttributes","placeContainer","updateArrowPosition","isOutOfBounds","allSides","flipped","flipSide","remaining","s","_c","_d","viewport","getViewport","containerRect","arrowRect","combinedRect","originX","originY","arrowCenterX","arrowCenterY","alignTo","type","dim","tooltipRect","anchorRect","anchorCenterX","anchorCenterY","arrowLeft","arrowTop","padding"]}