@primereact/headless 11.0.0-alpha.2 → 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 (57) hide show
  1. package/confirmdialog/index.d.ts +2 -0
  2. package/confirmdialog/index.mjs +2 -0
  3. package/confirmdialog/index.mjs.map +1 -0
  4. package/confirmdialog/useConfirmDialog.d.ts +1 -0
  5. package/confirmdialog/useConfirmDialog.props.d.ts +2 -0
  6. package/confirmdialog/useConfirmDialog.test.d.ts +0 -0
  7. package/confirmpopup/index.d.ts +2 -0
  8. package/confirmpopup/index.mjs +2 -0
  9. package/confirmpopup/index.mjs.map +1 -0
  10. package/confirmpopup/useConfirmPopup.d.ts +25 -0
  11. package/confirmpopup/useConfirmPopup.props.d.ts +2 -0
  12. package/confirmpopup/useConfirmPopup.test.d.ts +0 -0
  13. package/dialog/index.d.ts +2 -0
  14. package/dialog/index.mjs +2 -0
  15. package/dialog/index.mjs.map +1 -0
  16. package/dialog/useDialog.d.ts +30 -0
  17. package/dialog/useDialog.props.d.ts +2 -0
  18. package/dialog/useDialog.test.d.ts +0 -0
  19. package/drawer/index.mjs +1 -1
  20. package/drawer/index.mjs.map +1 -1
  21. package/package.json +3 -3
  22. package/placer/index.d.ts +2 -0
  23. package/placer/index.mjs +2 -0
  24. package/placer/index.mjs.map +1 -0
  25. package/placer/usePlacer.d.ts +12 -0
  26. package/placer/usePlacer.props.d.ts +2 -0
  27. package/placer/usePlacer.test.d.ts +0 -0
  28. package/popover/index.d.ts +2 -0
  29. package/popover/index.mjs +8 -0
  30. package/popover/index.mjs.map +1 -0
  31. package/popover/usePopover.d.ts +15 -0
  32. package/popover/usePopover.props.d.ts +2 -0
  33. package/popover/usePopover.test.d.ts +0 -0
  34. package/rating/index.d.ts +2 -0
  35. package/rating/index.mjs +2 -0
  36. package/rating/index.mjs.map +1 -0
  37. package/rating/useRating.d.ts +12 -0
  38. package/rating/useRating.props.d.ts +2 -0
  39. package/rating/useRating.test.d.ts +0 -0
  40. package/slider/index.d.ts +2 -0
  41. package/slider/index.mjs +2 -0
  42. package/slider/index.mjs.map +1 -0
  43. package/slider/useSlider.d.ts +58 -0
  44. package/slider/useSlider.props.d.ts +2 -0
  45. package/slider/useSlider.test.d.ts +0 -0
  46. package/tooltip/group/index.d.ts +2 -0
  47. package/tooltip/group/index.mjs +2 -0
  48. package/tooltip/group/index.mjs.map +1 -0
  49. package/tooltip/group/useTooltipGroup.d.ts +9 -0
  50. package/tooltip/group/useTooltipGroup.props.d.ts +2 -0
  51. package/tooltip/group/useTooltipGroup.test.d.ts +0 -0
  52. package/tooltip/index.d.ts +2 -0
  53. package/tooltip/index.mjs +2 -0
  54. package/tooltip/index.mjs.map +1 -0
  55. package/tooltip/useTooltip.d.ts +28 -0
  56. package/tooltip/useTooltip.props.d.ts +2 -0
  57. package/tooltip/useTooltip.test.d.ts +0 -0
@@ -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
package/drawer/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{withHeadless as j}from"@primereact/core/headless";import{useEventListener as k,useMountEffect as A,useUnmountEffect as F,useUpdateEffect as D}from"@primereact/hooks";import{$dt as L}from"@primeuix/styled";import{addClass as U,blockBodyScroll as q,focus as z,unblockBodyScroll as $,ZIndex as f}from"@primeuix/utils";import*as o from"react";var M={open:!1,modal:!0,blockScroll:!1,dismissable:!0,baseZIndex:0,autoZIndex:!0,onOpenChange:void 0};var p=j({name:"useDrawer",defaultProps:M,setup:({props:e,elementRef:m,$primereact:S})=>{var v,R;let[s,d]=o.useState((v=e.open)!=null?v:!1),[l,c]=o.useState((R=e.open)!=null?R:!1),n=o.useRef(null),b=o.useRef(null),r=o.useRef(null),E={opened:s,maskVisible:l};A(()=>{e.open&&c(!0)}),D(()=>{e.open&&!l&&c(!0)},[e.open]),D(()=>{l&&!s&&d(!0)},[l]),F(()=>{c(!1),e.autoZIndex&&f.clear(n==null?void 0:n.current)});let u=()=>{var t;d(!1),(t=e==null?void 0:e.onOpenChange)==null||t.call(e,{value:!1})},w=()=>{var a;let t=!s;t&&!l&&c(!0),(a=e==null?void 0:e.onOpenChange)==null||a.call(e,{value:t})},y=()=>{var t;(t=e==null?void 0:e.onOpenChange)==null||t.call(e,{value:E.opened})},O=()=>{var t,a,i;h(),T(),e.autoZIndex&&f.set("modal",n.current,e.baseZIndex+((i=(a=(t=S.config)==null?void 0:t.zIndex)==null?void 0:a.modal)!=null?i:1100))},g=()=>{P()},x=()=>{e.modal&&U(n.current,"p-overlay-mask-leave")},C=()=>{e.autoZIndex&&f.clear(n.current),I(),N(),c(!1)},h=()=>{var a,i;let t=H((i=(a=b.current)==null?void 0:a.elementRef.current)!=null?i:null);t||r.current&&(t=r.current.elementRef.current),t&&z(t)},H=t=>t&&t.querySelector("[autoFocus]"),[T,I]=k({type:"keydown",listener:t=>V(t)}),[Z,B]=k({type:"click",listener:t=>{K(t)&&u()}}),K=t=>m.current&&!m.current.contains(t.target),P=()=>{e.dismissable&&!e.modal&&Z(),e.blockScroll&&q({variableName:L("scrollbar.width").name})},N=()=>{B(),e.blockScroll&&$({variableName:L("scrollbar.width").name})},V=t=>{t.code==="Escape"&&u()};return{state:E,maskRef:n,motionRef:b,closeButtonRef:r,close:u,onOpenStateChange:w,onOpenChange:y,onMotionEnter:O,onMotionAfterEnter:g,onMotionBeforeLeave:x,onMotionAfterLeave:C,onMaskClick:t=>{e.dismissable&&e.modal&&n.current===t.target&&u()}}}});export{M as defaultProps,p as useDrawer};
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
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +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 ?? false);\n const [maskVisibleState, setMaskVisibleState] = React.useState<boolean>(props.open ?? 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) {\n setMaskVisibleState(true);\n }\n });\n\n useUpdateEffect(() => {\n if (props.open && !maskVisibleState) {\n setMaskVisibleState(true);\n }\n }, [props.open]);\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 focusElement();\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 enableDocumentSettings();\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\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 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","openState","setOpenState","maskVisibleState","setMaskVisibleState","maskRef","motionRef","closeButtonRef","state","useMountEffect","useUpdateEffect","useUnmountEffect","ZIndex","close","onOpenStateChange","newOpenState","onOpenChange","onMotionEnter","_c","focusElement","bindDocumentKeyDownListener","onMotionAfterEnter","enableDocumentSettings","onMotionBeforeLeave","addClass","onMotionAfterLeave","unbindDocumentKeyDownListener","disableDocumentSettings","focusTarget","findFocusableElement","focus","container","useEventListener","event","onKeyDown","bindOutsideClickListener","unbindOutsideClickListener","isOutsideClicked","blockBodyScroll","$dt","unblockBodyScroll"]}
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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primereact/headless",
3
- "version": "11.0.0-alpha.2",
3
+ "version": "11.0.0-alpha.3",
4
4
  "author": "PrimeTek Informatics",
5
5
  "description": "",
6
6
  "homepage": "https://primereact.org/",
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "@primeuix/styled": "^0.7.0",
36
36
  "@primeuix/utils": "^0.6.0",
37
- "@primereact/core": "11.0.0-alpha.2",
38
- "@primereact/hooks": "11.0.0-alpha.2"
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"]}
@@ -0,0 +1,12 @@
1
+ import { AlignType, SideType } from '@primereact/types/shared/placer';
2
+ import * as React from 'react';
3
+ export declare const usePlacer: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/placer").usePlacerProps, unknown, {
4
+ state: {
5
+ effectiveSide: SideType | null | undefined;
6
+ effectiveAlign: AlignType | null | undefined;
7
+ };
8
+ containerRef: React.RefObject<unknown>;
9
+ anchorRef: React.RefObject<unknown>;
10
+ arrowRef: React.RefObject<unknown>;
11
+ applyPlacement: () => void;
12
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { usePlacerProps } from '@primereact/types/shared/placer';
2
+ export declare const defaultProps: usePlacerProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './usePopover';
2
+ export * from './usePopover.props';
@@ -0,0 +1,8 @@
1
+ import{withHeadless as _}from"@primereact/core/headless";import{ConnectedOverlayScrollHandler as ee}from"@primereact/core/utils";import{useMountEffect as te}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as ne}from"@primereact/hooks/use-unmount-effect";import{$dt as re}from"@primeuix/styled";import{absolutePosition as oe,addClass as ce,addStyle as se,focus as ue,getOffset as N,isClient as le,isTouchDevice as ie,setAttribute as ae}from"@primeuix/utils/dom";import{ZIndex as T}from"@primeuix/utils/zindex";import{EventBus as Y}from"@primeuix/utils/eventbus";var v=Y();import*as n from"react";var K={dismissable:!0,appendTo:"body",baseZIndex:0,autoZIndex:!0,breakpoints:{},closeOnEscape:!0,defaultOpen:void 0,open:void 0,onOpenChange:void 0};var Ce=_({name:"usePopover",defaultProps:K,setup:({props:z,$attrSelector:I})=>{let{dismissable:C,baseZIndex:Z=0,autoZIndex:L,closeOnEscape:k,defaultOpen:O,open:S,onOpenChange:a,breakpoints:E}=z,[f,H]=n.useState(!1),w=n.useRef(!1),u=n.useRef(null),l=n.useRef(null),d=n.useRef(null),m=n.useRef(null),s=n.useRef(null),p=n.useRef(null),r=n.useRef(null),o=n.useRef(null),$={visible:f},b=n.useCallback(()=>{var e,t;return r!=null&&r.current&&(r==null?void 0:r.current)instanceof HTMLElement?r==null?void 0:r.current:(t=(e=r==null?void 0:r.current)==null?void 0:e.elementRef.current)!=null?t:null},[r]),y=n.useCallback(()=>{var e,t;return o!=null&&o.current&&(o==null?void 0:o.current)instanceof HTMLElement?o==null?void 0:o.current:(t=(e=o==null?void 0:o.current)==null?void 0:e.elementRef.current)!=null?t:null},[o]),R=()=>{f||(H(!0),a==null||a({value:!0}))},i=()=>{f&&(H(!1),a==null||a({value:!1}),setTimeout(()=>{let e=b();e&&ue(e)},10))},B=()=>{let e=y();e&&(se(e,{position:"absolute",top:"0"}),M(),C&&g(),F(),J(),L&&T.set("overlay",e,Z+10),u.current=t=>{let c=t;e.contains(c.target)&&(w.current=!0)},v.on("overlay-click",u.current),k&&j())},A=()=>{P(),G(),h(),q(),u.current&&(v.off("overlay-click",u.current),u.current=null),i()},U=()=>{let e=y();L&&e&&T.clear(e)},M=()=>{let e=y(),t=b();if(!t||!e)return;oe(e,t,!1);let c=N(e),x=N(t),D=0;Number(c.left)<Number(x.left)&&(D=Number(x.left)-Number(c.left)),e.style.setProperty(re("popover.arrow.left").name,`${D}px`),c.top<x.top&&(ce(e,"p-popover-flipped"),e.setAttribute("data-p-popover-flipped","true"))},V=e=>{e.code==="Escape"&&k&&i()},g=()=>{!m.current&&le()&&(m.current=e=>{let t=e,c=y();f&&!(t.target===c||c!=null&&c.contains(t.target))&&i(),w.current=!1},document.addEventListener("click",m.current))},P=()=>{m.current&&(document.removeEventListener("click",m.current),m.current=null,w.current=!1)},j=()=>{p.current||(p.current=e=>{e.code==="Escape"&&k&&i()},window.document.addEventListener("keydown",p.current))},q=()=>{p.current&&(window.document.removeEventListener("keydown",p.current),p.current=null)},F=()=>{var e;l.current||(l.current=new ee((e=b())!=null?e:null,()=>{f&&i()})),l.current.bindScrollListener()},G=()=>{l.current&&l.current.unbindScrollListener()},J=()=>{d.current||(d.current=()=>{f&&!ie()&&M()},window.addEventListener("resize",d.current))},h=()=>{d.current&&(window.removeEventListener("resize",d.current),d.current=null)},Q=e=>{v.emit("overlay-click",{originalEvent:e,target:b()})},W=()=>{if(!E||!s.current){s.current=document.createElement("style"),s.current.type="text/css",ae(s.current,"nonce","nonce"),document.head.appendChild(s.current);let e="";for(let t in E)e+=`
2
+ @media screen and (max-width: ${t}) {
3
+ .p-popover[${I}] {
4
+ width: ${E[t]} !important;
5
+ }
6
+ }
7
+ `;s.current.innerHTML=e}},X=()=>{s.current&&(document.head.removeChild(s.current),s.current=null)};return n.useEffect(()=>{S?setTimeout(()=>{R()},0):i()},[S]),n.useEffect(()=>{O?setTimeout(()=>{R()},0):i()},[O]),te(()=>{E&&W()}),ne(()=>{C&&P(),l.current&&(l.current.destroy(),l.current=null),X(),h();let e=y();e&&L&&T.clear(e),u.current&&(v.off("overlay-click",u.current),u.current=null)}),{state:$,show:R,hide:i,onBeforeEnter:B,onAfterLeave:U,onOverlayClick:Q,onLeave:A,onContentKeydown:V,triggerRef:r,containerRef:o}}});export{K as defaultProps,Ce as usePopover};
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/popover/usePopover.ts","../../../primereact/src/overlayeventbus/OverlayEventBus.ts","../../src/popover/usePopover.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { ConnectedOverlayScrollHandler } from '@primereact/core/utils';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, addStyle, focus, getOffset, isClient, isTouchDevice, setAttribute } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { OverlayEventBus } from 'primereact/overlayeventbus';\nimport * as React from 'react';\nimport { defaultProps } from './usePopover.props';\n\nexport const usePopover = withHeadless({\n name: 'usePopover',\n defaultProps,\n setup: ({ props, $attrSelector }) => {\n const { dismissable, baseZIndex = 0, autoZIndex, closeOnEscape, defaultOpen, open, onOpenChange, breakpoints } = props;\n const [visibleState, setVisibleState] = React.useState(false);\n const selfClick = React.useRef(false);\n const overlayEventListeners = React.useRef<((e: unknown) => void) | null>(null);\n const scrollHandler = React.useRef<ConnectedOverlayScrollHandler | null>(null);\n const resizeListener = React.useRef<() => void | null>(null);\n const outsideClickListener = React.useRef<((e: unknown) => void) | null>(null);\n const styleElement = React.useRef<HTMLStyleElement | null>(null);\n const documentKeydownListener = React.useRef<((e: unknown) => void) | null>(null);\n const triggerRef = React.useRef<HTMLElement | null>(null);\n const containerRef = React.useRef<HTMLElement | null>(null);\n\n const state = {\n visible: visibleState\n };\n\n const getTrigger = React.useCallback(() => {\n if (triggerRef?.current && triggerRef?.current instanceof HTMLElement) {\n return triggerRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return triggerRef?.current?.elementRef.current ?? null;\n }, [triggerRef]);\n\n const getContainer = React.useCallback(() => {\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 ?? null;\n }, [containerRef]);\n\n const show = () => {\n if (visibleState) return;\n\n setVisibleState(true);\n onOpenChange?.({\n value: true\n });\n };\n\n const hide = () => {\n if (!visibleState) return;\n\n setVisibleState(false);\n onOpenChange?.({\n value: false\n });\n\n setTimeout(() => {\n const trigger = getTrigger();\n\n if (trigger) {\n focus(trigger);\n }\n }, 10);\n };\n\n const onBeforeEnter = () => {\n const container = getContainer();\n\n if (!container) return;\n\n addStyle(container, { position: 'absolute', top: '0' });\n alignOverlay();\n\n if (dismissable) {\n bindOutsideClickListener();\n }\n\n bindScrollListener();\n bindResizeListener();\n\n if (autoZIndex) {\n // Fix\n ZIndex.set('overlay', container, baseZIndex + 10);\n }\n\n overlayEventListeners.current = (e: unknown) => {\n const event = e as Event;\n\n if (container.contains(event.target as Node)) {\n selfClick.current = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', overlayEventListeners.current);\n\n if (closeOnEscape) {\n bindDocumentKeyDownListener();\n }\n };\n\n const onLeave = () => {\n unbindOutsideClickListener();\n unbindScrollListener();\n unbindResizeListener();\n unbindDocumentKeyDownListener();\n\n if (overlayEventListeners.current) {\n OverlayEventBus.off('overlay-click', overlayEventListeners.current);\n overlayEventListeners.current = null;\n }\n\n hide();\n };\n\n const onAfterLeave = () => {\n const container = getContainer();\n\n if (autoZIndex && container) {\n ZIndex.clear(container);\n }\n };\n\n const alignOverlay = () => {\n const container = getContainer();\n\n const trigger = getTrigger();\n\n if (!trigger || !container) return;\n\n absolutePosition(container, trigger, false);\n\n const containerOffset = getOffset(container);\n const targetOffset = getOffset(trigger);\n let arrowLeft = 0;\n\n if (Number(containerOffset.left) < Number(targetOffset.left)) {\n arrowLeft = Number(targetOffset.left) - Number(containerOffset.left);\n }\n\n container.style.setProperty($dt('popover.arrow.left').name, `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n addClass(container, 'p-popover-flipped');\n container.setAttribute('data-p-popover-flipped', 'true');\n }\n };\n\n const onContentKeydown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.code === 'Escape' && closeOnEscape) {\n hide();\n }\n };\n\n const bindOutsideClickListener = () => {\n if (!outsideClickListener.current && isClient()) {\n outsideClickListener.current = (event: unknown) => {\n const clickEvent = event as MouseEvent;\n\n const container = getContainer();\n\n if (visibleState && !(clickEvent.target === container || container?.contains(clickEvent.target as Node))) {\n hide();\n }\n\n selfClick.current = false;\n };\n\n document.addEventListener('click', outsideClickListener.current);\n }\n };\n\n const unbindOutsideClickListener = () => {\n if (outsideClickListener.current) {\n document.removeEventListener('click', outsideClickListener.current);\n outsideClickListener.current = null;\n selfClick.current = false;\n }\n };\n\n const bindDocumentKeyDownListener = () => {\n if (!documentKeydownListener.current) {\n documentKeydownListener.current = (event: unknown) => {\n const keyboardEvent = event as KeyboardEvent;\n\n if (keyboardEvent.code === 'Escape' && closeOnEscape) {\n hide();\n }\n };\n\n window.document.addEventListener('keydown', documentKeydownListener.current);\n }\n };\n\n const unbindDocumentKeyDownListener = () => {\n if (documentKeydownListener.current) {\n window.document.removeEventListener('keydown', documentKeydownListener.current);\n documentKeydownListener.current = null;\n }\n };\n\n const bindScrollListener = () => {\n if (!scrollHandler.current) {\n scrollHandler.current = new ConnectedOverlayScrollHandler(getTrigger() ?? null, () => {\n if (visibleState) {\n hide();\n }\n });\n }\n\n scrollHandler.current.bindScrollListener();\n };\n\n const unbindScrollListener = () => {\n if (scrollHandler.current) {\n scrollHandler.current.unbindScrollListener();\n }\n };\n\n const bindResizeListener = () => {\n if (!resizeListener.current) {\n resizeListener.current = () => {\n if (visibleState && !isTouchDevice()) {\n alignOverlay();\n }\n };\n\n window.addEventListener('resize', resizeListener.current);\n }\n };\n\n const unbindResizeListener = () => {\n if (resizeListener.current) {\n window.removeEventListener('resize', resizeListener.current);\n resizeListener.current = null;\n }\n };\n\n const onOverlayClick = (event: Event) => {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: getTrigger()\n });\n };\n\n const createStyle = () => {\n if (!breakpoints || !styleElement.current) {\n styleElement.current = document.createElement('style');\n styleElement.current.type = 'text/css';\n setAttribute(styleElement.current, 'nonce', 'nonce');\n document.head.appendChild(styleElement.current);\n\n let innerHTML = '';\n\n for (const breakpoint in breakpoints) {\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n .p-popover[${$attrSelector}] {\n width: ${breakpoints[breakpoint]} !important;\n }\n }\n `;\n }\n\n styleElement.current.innerHTML = innerHTML;\n }\n };\n\n const destroyStyle = () => {\n if (styleElement.current) {\n document.head.removeChild(styleElement.current);\n styleElement.current = null;\n }\n };\n\n React.useEffect(() => {\n if (open) {\n setTimeout(() => {\n show();\n }, 0);\n } else {\n hide();\n }\n }, [open]);\n\n React.useEffect(() => {\n if (defaultOpen) {\n setTimeout(() => {\n show();\n }, 0);\n } else {\n hide();\n }\n }, [defaultOpen]);\n\n useMountEffect(() => {\n if (breakpoints) {\n createStyle();\n }\n });\n\n useUnmountEffect(() => {\n if (dismissable) {\n unbindOutsideClickListener();\n }\n\n if (scrollHandler.current) {\n scrollHandler.current.destroy();\n scrollHandler.current = null;\n }\n\n destroyStyle();\n unbindResizeListener();\n\n const container = getContainer();\n\n if (container && autoZIndex) {\n ZIndex.clear(container);\n }\n\n if (overlayEventListeners.current) {\n OverlayEventBus.off('overlay-click', overlayEventListeners.current);\n overlayEventListeners.current = null;\n }\n });\n\n return {\n state,\n show,\n hide,\n onBeforeEnter,\n onAfterLeave,\n onOverlayClick,\n onLeave,\n onContentKeydown,\n triggerRef,\n containerRef\n };\n }\n});\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nexport default EventBus();\n","import type { usePopoverProps } from '@primereact/types/shared/popover';\n\nexport const defaultProps: usePopoverProps = {\n dismissable: true,\n appendTo: 'body',\n baseZIndex: 0,\n autoZIndex: true,\n breakpoints: {},\n closeOnEscape: true,\n defaultOpen: undefined,\n open: undefined,\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","ConnectedOverlayScrollHandler","useMountEffect","useUnmountEffect","$dt","absolutePosition","addClass","addStyle","focus","getOffset","isClient","isTouchDevice","setAttribute","ZIndex","EventBus","OverlayEventBus_default","React","defaultProps","usePopover","withHeadless","defaultProps","props","$attrSelector","dismissable","baseZIndex","autoZIndex","closeOnEscape","defaultOpen","open","onOpenChange","breakpoints","visibleState","setVisibleState","selfClick","overlayEventListeners","scrollHandler","resizeListener","outsideClickListener","styleElement","documentKeydownListener","triggerRef","containerRef","state","getTrigger","_a","_b","getContainer","show","hide","trigger","focus","onBeforeEnter","container","addStyle","alignOverlay","bindOutsideClickListener","bindScrollListener","bindResizeListener","ZIndex","e","event","OverlayEventBus_default","bindDocumentKeyDownListener","onLeave","unbindOutsideClickListener","unbindScrollListener","unbindResizeListener","unbindDocumentKeyDownListener","onAfterLeave","absolutePosition","containerOffset","getOffset","targetOffset","arrowLeft","$dt","addClass","onContentKeydown","isClient","clickEvent","ConnectedOverlayScrollHandler","isTouchDevice","onOverlayClick","createStyle","setAttribute","innerHTML","breakpoint","destroyStyle","useMountEffect","useUnmountEffect"]}
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ export declare const usePopover: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/popover").usePopoverProps, unknown, {
3
+ state: {
4
+ visible: boolean;
5
+ };
6
+ show: () => void;
7
+ hide: () => void;
8
+ onBeforeEnter: () => void;
9
+ onAfterLeave: () => void;
10
+ onOverlayClick: (event: Event) => void;
11
+ onLeave: () => void;
12
+ onContentKeydown: (event: React.KeyboardEvent<HTMLDivElement>) => void;
13
+ triggerRef: React.RefObject<HTMLElement | null>;
14
+ containerRef: React.RefObject<HTMLElement | null>;
15
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { usePopoverProps } from '@primereact/types/shared/popover';
2
+ export declare const defaultProps: usePopoverProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useRating';
2
+ export * from './useRating.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as V}from"@primereact/core/headless";import{focus as x,getFirstFocusableElement as C}from"@primeuix/utils";import*as n from"react";var d={modelValue:void 0,defaultValue:void 0,stars:5,disabled:!1,readOnly:!1,onChange:void 0};var y=V({name:"useRating",defaultProps:d,setup:({props:o,elementRef:R})=>{let{readOnly:u,disabled:c}=o,[i,l]=n.useState(o.modelValue),f=n.useRef(-1),E=n.useRef(!1),[b,g]=n.useState(-1),[F,I]=n.useState(!1),T={value:i,focusedOptionIndex:b,isFocusVisibleItem:F},r=e=>{f.current=e,g(e)},a=e=>{E.current=e,I(e)},v=(e,s)=>{if(!u&&!c){m(s),a(!1);let t=C(e.currentTarget);t&&t instanceof HTMLElement&&x(t)}},m=e=>{u||c||(f.current===e||i===e?(r(-1),a(!1),l(void 0)):(r(e),a(!0),l(e)))},h=(e,s)=>{var t;u||c||(r(s),a(((t=e.nativeEvent.sourceCapabilities)==null?void 0:t.firesTouchEvents)===!1))},p=e=>{var t;if(u||c)return;let s=e.relatedTarget;s&&((t=R.current)!=null&&t.contains(s))||(r(-1),a(!1))},O=(e,s)=>{u||c||(m(s),a(!0))};return n.useEffect(()=>{var e;(e=o==null?void 0:o.onChange)==null||e.call(o,{value:i,originalEvent:null})},[i]),{state:T,onOptionClick:v,onFocus:h,onBlur:p,onChange:O}}});export{d as defaultProps,y as useRating};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rating/useRating.ts","../../src/rating/useRating.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { focus, getFirstFocusableElement } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useRating.props';\n\nexport const useRating = withHeadless({\n name: 'useRating',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const { readOnly, disabled } = props;\n const [valueState, setValueState] = React.useState(props.modelValue);\n const focusedOptionIndexRef = React.useRef(-1);\n const isFocusVisibleItemRef = React.useRef(false);\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState(-1);\n const [isFocusVisibleItem, setIsFocusVisibleItem] = React.useState(false);\n\n const state = {\n value: valueState,\n focusedOptionIndex,\n isFocusVisibleItem\n };\n\n // methods\n const setFocusedOption = (val: number) => {\n focusedOptionIndexRef.current = val;\n setFocusedOptionIndex(val);\n };\n\n const setIsFocusVisible = (val: boolean) => {\n isFocusVisibleItemRef.current = val;\n setIsFocusVisibleItem(val);\n };\n\n const onOptionClick = (event: React.MouseEvent<HTMLDivElement>, value: number) => {\n if (!readOnly && !disabled) {\n onOptionSelect(value);\n setIsFocusVisible(false);\n\n const firstFocusableEl = getFirstFocusableElement(event.currentTarget);\n\n if (firstFocusableEl && firstFocusableEl instanceof HTMLElement) {\n focus(firstFocusableEl);\n }\n }\n };\n\n const onOptionSelect = (value: number) => {\n if (readOnly || disabled) return;\n\n if (focusedOptionIndexRef.current === value || valueState === value) {\n setFocusedOption(-1);\n setIsFocusVisible(false);\n setValueState(undefined);\n } else {\n setFocusedOption(value);\n setIsFocusVisible(true);\n setValueState(value);\n }\n };\n\n const onFocus = (event: React.FocusEvent<HTMLInputElement>, value: number) => {\n if (readOnly || disabled) return;\n\n setFocusedOption(value);\n setIsFocusVisible((event.nativeEvent as FocusEvent & { sourceCapabilities?: { firesTouchEvents: boolean } | null }).sourceCapabilities?.firesTouchEvents === false);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (readOnly || disabled) return;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n if (relatedTarget && elementRef.current?.contains(relatedTarget)) {\n return;\n }\n\n setFocusedOption(-1);\n setIsFocusVisible(false);\n // formField.onBlur?.();\n };\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>, value: number) => {\n if (readOnly || disabled) return;\n\n onOptionSelect(value);\n setIsFocusVisible(true);\n };\n\n // effects\n\n React.useEffect(() => {\n props?.onChange?.({ value: valueState, originalEvent: null });\n }, [valueState]);\n\n return {\n state,\n // methods\n onOptionClick,\n onFocus,\n onBlur,\n onChange\n };\n }\n});\n","import type { useRatingProps } from '@primereact/types/shared/rating';\n\nexport const defaultProps: useRatingProps = {\n modelValue: undefined,\n defaultValue: undefined,\n stars: 5,\n disabled: false,\n readOnly: false,\n onChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,SAAAC,EAAO,4BAAAC,MAAgC,kBAChD,UAAYC,MAAW,QCAhB,IAAMC,EAA+B,CACxC,WAAY,OACZ,aAAc,OACd,MAAO,EACP,SAAU,GACV,SAAU,GACV,SAAU,MACd,EDJO,IAAMC,EAAYC,EAAa,CAClC,KAAM,YACN,aAAAC,EACA,MAAO,CAAC,CAAE,MAAAC,EAAO,WAAAC,CAAW,IAAM,CAC9B,GAAM,CAAE,SAAAC,EAAU,SAAAC,CAAS,EAAIH,EACzB,CAACI,EAAYC,CAAa,EAAU,WAASL,EAAM,UAAU,EAC7DM,EAA8B,SAAO,EAAE,EACvCC,EAA8B,SAAO,EAAK,EAC1C,CAACC,EAAoBC,CAAqB,EAAU,WAAS,EAAE,EAC/D,CAACC,EAAoBC,CAAqB,EAAU,WAAS,EAAK,EAElEC,EAAQ,CACV,MAAOR,EACP,mBAAAI,EACA,mBAAAE,CACJ,EAGMG,EAAoBC,GAAgB,CACtCR,EAAsB,QAAUQ,EAChCL,EAAsBK,CAAG,CAC7B,EAEMC,EAAqBD,GAAiB,CACxCP,EAAsB,QAAUO,EAChCH,EAAsBG,CAAG,CAC7B,EAEME,EAAgB,CAACC,EAAyCC,IAAkB,CAC9E,GAAI,CAAChB,GAAY,CAACC,EAAU,CACxBgB,EAAeD,CAAK,EACpBH,EAAkB,EAAK,EAEvB,IAAMK,EAAmBC,EAAyBJ,EAAM,aAAa,EAEjEG,GAAoBA,aAA4B,aAChDE,EAAMF,CAAgB,CAE9B,CACJ,EAEMD,EAAkBD,GAAkB,CAClChB,GAAYC,IAEZG,EAAsB,UAAYY,GAASd,IAAec,GAC1DL,EAAiB,EAAE,EACnBE,EAAkB,EAAK,EACvBV,EAAc,MAAS,IAEvBQ,EAAiBK,CAAK,EACtBH,EAAkB,EAAI,EACtBV,EAAca,CAAK,GAE3B,EAEMK,EAAU,CAACN,EAA2CC,IAAkB,CA5DtF,IAAAM,EA6DgBtB,GAAYC,IAEhBU,EAAiBK,CAAK,EACtBH,IAAmBS,EAAAP,EAAM,YAA2F,qBAAjG,YAAAO,EAAqH,oBAAqB,EAAK,EACtK,EAEMC,EAAUR,GAA8C,CAnEtE,IAAAO,EAoEY,GAAItB,GAAYC,EAAU,OAE1B,IAAMuB,EAAgBT,EAAM,cAExBS,KAAiBF,EAAAvB,EAAW,UAAX,MAAAuB,EAAoB,SAASE,MAIlDb,EAAiB,EAAE,EACnBE,EAAkB,EAAK,EAE3B,EAEMY,EAAW,CAACV,EAA4CC,IAAkB,CACxEhB,GAAYC,IAEhBgB,EAAeD,CAAK,EACpBH,EAAkB,EAAI,EAC1B,EAIA,OAAM,YAAU,IAAM,CA1F9B,IAAAS,GA2FYA,EAAAxB,GAAA,YAAAA,EAAO,WAAP,MAAAwB,EAAA,KAAAxB,EAAkB,CAAE,MAAOI,EAAY,cAAe,IAAK,EAC/D,EAAG,CAACA,CAAU,CAAC,EAER,CACH,MAAAQ,EAEA,cAAAI,EACA,QAAAO,EACA,OAAAE,EACA,SAAAE,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","focus","getFirstFocusableElement","React","defaultProps","useRating","withHeadless","defaultProps","props","elementRef","readOnly","disabled","valueState","setValueState","focusedOptionIndexRef","isFocusVisibleItemRef","focusedOptionIndex","setFocusedOptionIndex","isFocusVisibleItem","setIsFocusVisibleItem","state","setFocusedOption","val","setIsFocusVisible","onOptionClick","event","value","onOptionSelect","firstFocusableEl","getFirstFocusableElement","focus","onFocus","_a","onBlur","relatedTarget","onChange"]}
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export declare const useRating: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/rating").useRatingProps, unknown, {
3
+ state: {
4
+ value: number | undefined;
5
+ focusedOptionIndex: number;
6
+ isFocusVisibleItem: boolean;
7
+ };
8
+ onOptionClick: (event: React.MouseEvent<HTMLDivElement>, value: number) => void;
9
+ onFocus: (event: React.FocusEvent<HTMLInputElement>, value: number) => void;
10
+ onBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
11
+ onChange: (event: React.ChangeEvent<HTMLInputElement>, value: number) => void;
12
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useRatingProps } from '@primereact/types/shared/rating';
2
+ export declare const defaultProps: useRatingProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useSlider';
2
+ export * from './useSlider.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as ae}from"@primereact/core/headless";import{useEventListener as S}from"@primereact/hooks";import{focus as ue,getAttribute as re,getWindowScrollLeft as le,getWindowScrollTop as se,isRTL as ie}from"@primeuix/utils";import*as s from"react";var X={value:void 0,defaultValue:void 0,orientation:"horizontal",min:0,max:100,step:void 0,onValueChange:void 0};var be=ae({name:"useSlider",defaultProps:X,setup({props:t,elementRef:f}){var W,U;let[Y,L]=s.useState((U=(W=t.value)!=null?W:t.defaultValue)!=null?U:void 0),g=s.useRef(0),E=s.useRef(!1),M=s.useRef(0),w=s.useRef(0),k=s.useRef(0),A=s.useRef(null),D=s.useRef(null);s.useEffect(()=>{t.value!==void 0&&L(t.value)},[t.value]);let r={value:Y},z=s.useCallback(()=>{let e=M.current;return M.current+=1,e},[]),d=s.useCallback(()=>Array.isArray(r.value)||M.current>1,[r.value]),C=()=>{var n,a,u,l,c,i,o;let e=(n=f.current)==null?void 0:n.getBoundingClientRect();w.current=((a=e==null?void 0:e.left)!=null?a:0)+le(),k.current=((u=e==null?void 0:e.top)!=null?u:0)+se(),A.current=(c=(l=f.current)==null?void 0:l.offsetWidth)!=null?c:null,D.current=(o=(i=f.current)==null?void 0:i.offsetHeight)!=null?o:null},P=e=>{var o;let n,a=e,u=e,l=a.touches?a.touches[0].pageX:u.pageX,c=a.touches?a.touches[0].pageY:u.pageY;if(h()){if(!f.current)return;ie(f.current)?n=(w.current+A.current-l)*100/A.current:n=(l-w.current)*100/A.current}else n=(k.current+D.current-c)*100/D.current;let i=(t.max-t.min)*(n/100)+t.min;if(t.step){let m=d()?Array.isArray(r.value)&&(o=r.value[g.current])!=null?o:0:typeof r.value=="number"?r.value:0,y=i-m;y<0?i=m+Math.ceil(i/t.step-m/t.step)*t.step:y>0&&(i=m+Math.floor(i/t.step-m/t.step)*t.step)}else i=Math.floor(i);R(e,i)},R=(e,n)=>{var l,c,i,o,m,y;let a=Math.round(n*100)/100,u;d()?(u=Array.isArray(r.value)?[...r.value]:[0,0],g.current==0?(a<((l=t.min)!=null?l:0)?a=t.min:a>=((c=t.max)!=null?c:100)&&(a=t.max),u[0]=a):(a>((i=t.max)!=null?i:100)?a=t.max:a<=((o=t.min)!=null?o:0)&&(a=t.min),u[1]=a)):(a<((m=t.min)!=null?m:0)?a=t.min:a>((y=t.max)!=null?y:100)&&(a=t.max),u=a),L(u),t.onValueChange&&t.onValueChange({originalEvent:e,value:u})},H=(e,n=0)=>{var a;t.disabled||((a=f.current)==null||a.setAttribute("data-p-sliding","true"),E.current=!0,C(),d()&&Array.isArray(r.value)&&r.value[0]===t.max?g.current=0:g.current=n,ue(e.currentTarget))},x=e=>{E.current&&P(e)},V=()=>{var e;E.current&&(E.current=!1,(e=f.current)==null||e.removeAttribute("data-p-sliding"),J(),O(),Z(),$())},B=(e,n)=>{Q(),_(),H(e,n)},j=(e,n)=>{G(),N(),H(e,n)},q=(e,n)=>{var a,u;switch(g.current=n,e.code){case"ArrowDown":case"ArrowLeft":I(e,n),e.preventDefault();break;case"ArrowUp":case"ArrowRight":K(e,n),e.preventDefault();break;case"PageDown":I(e,n,!0),e.preventDefault();break;case"PageUp":K(e,n,!0),e.preventDefault();break;case"Home":R(e,(a=t.min)!=null?a:0),e.preventDefault();break;case"End":R(e,(u=t.max)!=null?u:100),e.preventDefault();break;default:break}},F=e=>{t.disabled||re(e.target,"data-pc-name")!=="sliderthumb"&&(C(),P(e))},[G,J]=S({type:"mousemove",listener:e=>x(e)}),[N,O]=S({type:"mouseup",listener:()=>V()}),[Q,Z]=S({type:"touchmove",listener:e=>x(e)}),[_,$]=S({type:"touchend",listener:()=>V()}),I=(e,n,a=!1)=>{var l,c;let u;d()?Array.isArray(r.value)?t.step?u=((l=r.value[n])!=null?l:0)-t.step:u=((c=r.value[n])!=null?c:0)-1:u=0:typeof r.value=="number"?t.step?u=r.value-t.step:!t.step&&a?u=r.value-10:u=r.value-1:u=0,R(e,u),e.preventDefault()},K=(e,n,a=!1)=>{var l,c;let u;d()?Array.isArray(r.value)?t.step?u=((l=r.value[n])!=null?l:0)+t.step:u=((c=r.value[n])!=null?c:0)+1:u=0:t.step?u=(typeof r.value=="number"?r.value:0)+t.step:!t.step&&a?u=(typeof r.value=="number"?r.value:0)+10:u=(typeof r.value=="number"?r.value:0)+1,R(e,u),e.preventDefault()},T=s.useCallback(()=>{var u,l;let e=r.value,n=(u=t.min)!=null?u:0,a=(l=t.max)!=null?l:100;return e===void 0||Array.isArray(e)||e<n?0:e>a?100:(e-n)*100/(a-n)},[r.value,t.min,t.max]),b=s.useCallback(()=>{var u,l;let e=r.value,n=(u=t.min)!=null?u:0,a=(l=t.max)!=null?l:100;return Array.isArray(e)&&e[0]!==void 0?e[0]<n?0:(e[0]-n)*100/(a-n):0},[r.value,t.min,t.max]),v=s.useCallback(()=>{var u,l;let e=r.value,n=(u=t.min)!=null?u:0,a=(l=t.max)!=null?l:100;return Array.isArray(e)&&e.length===2&&e[1]!==void 0?e[1]>a?100:(e[1]-n)*100/(a-n):100},[r.value,t.min,t.max]),p=()=>{if(d()){let e=v()>b()?v()-b():b()-v(),n=v()>b()?b():v();return h()?{insetInlineStart:n+"%",width:e+"%"}:{bottom:n+"%",height:e+"%"}}else return h()?{width:T()+"%"}:{height:T()+"%"}},ee=()=>h()?{insetInlineStart:T()+"%"}:{bottom:T()+"%"},te=()=>h()?{insetInlineStart:b()+"%"}:{bottom:b()+"%"},ne=()=>h()?{insetInlineStart:v()+"%"}:{bottom:v()+"%"},h=s.useCallback(()=>t.orientation==="horizontal",[]);return{state:r,registerThumb:z,thumbCounter:M,range:d,onTouchStart:B,onDrag:x,onDragEnd:V,onMouseDown:j,onKeyDown:q,onBarClick:F,rangeStyle:p,handleThumbStyle:ee,rangeStartHandleStyle:te,rangeEndHandleStyle:ne}}});export{X as defaultProps,be as useSlider};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/slider/useSlider.ts","../../src/slider/useSlider.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener } from '@primereact/hooks';\nimport { useSliderProps } from '@primereact/types/shared/slider';\nimport { focus, getAttribute, getWindowScrollLeft, getWindowScrollTop, isRTL } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useSlider.props';\n\nexport const useSlider = withHeadless({\n name: 'useSlider',\n defaultProps,\n setup({ props, elementRef }) {\n const [activeValue, setActiveValue] = React.useState<useSliderProps['value']>(props.value ?? props.defaultValue ?? undefined);\n const handleIndex = React.useRef(0);\n const dragging = React.useRef(false);\n const thumbCounter = React.useRef(0);\n const initX = React.useRef(0);\n const initY = React.useRef(0);\n const barWidth = React.useRef<number | null>(null);\n const barHeight = React.useRef<number | null>(null);\n\n React.useEffect(() => {\n if (props.value !== undefined) {\n setActiveValue(props.value);\n }\n }, [props.value]);\n\n const state = {\n value: activeValue\n };\n\n const registerThumb = React.useCallback(() => {\n const index = thumbCounter.current;\n\n thumbCounter.current += 1;\n\n return index;\n }, []);\n\n const range = React.useCallback(() => {\n return Array.isArray(state.value) || thumbCounter.current > 1;\n }, [state.value]);\n\n const updateDomData = () => {\n const rect = elementRef.current?.getBoundingClientRect();\n\n initX.current = (rect?.left ?? 0) + getWindowScrollLeft();\n initY.current = (rect?.top ?? 0) + getWindowScrollTop();\n barWidth.current = elementRef.current?.offsetWidth ?? null;\n barHeight.current = elementRef.current?.offsetHeight ?? null;\n };\n\n const handleValue = (event: React.MouseEvent | React.TouchEvent) => {\n let rawValue;\n const touchEvent = event as React.TouchEvent;\n const mouseEvent = event as React.MouseEvent;\n const pageX = touchEvent.touches ? touchEvent.touches[0].pageX : mouseEvent.pageX;\n const pageY = touchEvent.touches ? touchEvent.touches[0].pageY : mouseEvent.pageY;\n\n if (horizontal()) {\n if (!elementRef.current) return;\n\n if (isRTL(elementRef.current)) {\n rawValue = ((initX.current + (barWidth.current as number) - pageX) * 100) / (barWidth.current as number);\n } else {\n rawValue = ((pageX - initX.current) * 100) / (barWidth.current as number);\n }\n } else {\n rawValue = ((initY.current + (barHeight.current as number) - pageY) * 100) / (barHeight.current as number);\n }\n\n let newValue = ((props.max as number) - (props.min as number)) * (rawValue / 100) + (props.min as number);\n\n if (props.step) {\n const oldValue: number = range() ? (Array.isArray(state.value) ? (state.value[handleIndex.current] ?? 0) : 0) : typeof state.value === 'number' ? state.value : 0;\n const diff = newValue - oldValue;\n\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / props.step - oldValue / props.step) * props.step;\n else if (diff > 0) newValue = oldValue + Math.floor(newValue / props.step - oldValue / props.step) * props.step;\n } else {\n newValue = Math.floor(newValue);\n }\n\n updateValue(event, newValue);\n };\n\n const updateValue = (event: React.MouseEvent | React.TouchEvent | React.KeyboardEvent, value: number) => {\n let newValue = Math.round(value * 100) / 100;\n let updatedValue;\n\n if (range()) {\n updatedValue = Array.isArray(state.value) ? [...state.value] : [0, 0];\n\n if (handleIndex.current == 0) {\n if (newValue < (props.min ?? 0)) {\n newValue = props.min as number;\n } else if (newValue >= (props.max ?? 100)) {\n newValue = props.max as number;\n }\n\n updatedValue[0] = newValue;\n } else {\n if (newValue > (props.max ?? 100)) {\n newValue = props.max as number;\n } else if (newValue <= (props.min ?? 0)) {\n newValue = props.min as number;\n }\n\n updatedValue[1] = newValue;\n }\n } else {\n if (newValue < (props.min ?? 0)) {\n newValue = props.min as number;\n } else if (newValue > (props.max ?? 100)) {\n newValue = props.max as number;\n }\n\n updatedValue = newValue;\n }\n\n setActiveValue(updatedValue);\n\n if (props.onValueChange) {\n props.onValueChange({\n originalEvent: event,\n value: updatedValue\n });\n }\n };\n\n const onDragStart = (event: React.MouseEvent<HTMLElement> | React.TouchEvent<HTMLElement>, index: number = 0) => {\n if (props.disabled) {\n return;\n }\n\n elementRef.current?.setAttribute('data-p-sliding', 'true');\n dragging.current = true;\n updateDomData();\n\n if (range() && Array.isArray(state.value) && state.value[0] === props.max) {\n handleIndex.current = 0;\n } else {\n handleIndex.current = index;\n }\n\n focus(event.currentTarget as HTMLElement);\n };\n\n const onDrag = (event: React.MouseEvent | React.TouchEvent) => {\n if (dragging.current) {\n handleValue(event);\n }\n };\n\n const onDragEnd = () => {\n if (dragging.current) {\n dragging.current = false;\n elementRef.current?.removeAttribute('data-p-sliding');\n\n unbindThumbMouseMoveListener();\n unbindThumbMouseUpListener();\n unbindDocumentTouchMoveListener();\n unbindDocumentTouchEndListener();\n }\n };\n\n const onTouchStart = (event: React.TouchEvent<HTMLElement>, index: number) => {\n bindDocumentTouchMoveListener();\n bindDocumentTouchEndListener();\n onDragStart(event, index);\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLElement>, index: number) => {\n bindThumbMouseMoveListener();\n bindThumbMouseUpListener();\n onDragStart(event, index);\n };\n\n const onKeyDown = (event: React.KeyboardEvent, index: number) => {\n handleIndex.current = index;\n\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n decrementValue(event, index);\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n case 'ArrowRight':\n incrementValue(event, index);\n event.preventDefault();\n break;\n\n case 'PageDown':\n decrementValue(event, index, true);\n event.preventDefault();\n break;\n\n case 'PageUp':\n incrementValue(event, index, true);\n event.preventDefault();\n break;\n\n case 'Home':\n updateValue(event, props.min ?? 0);\n event.preventDefault();\n break;\n\n case 'End':\n updateValue(event, props.max ?? 100);\n event.preventDefault();\n break;\n\n default:\n break;\n }\n };\n\n const onBarClick = (event: React.MouseEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (getAttribute(event.target as Element, 'data-pc-name') !== 'sliderthumb') {\n updateDomData();\n handleValue(event);\n }\n };\n\n const [bindThumbMouseMoveListener, unbindThumbMouseMoveListener] = useEventListener({\n type: 'mousemove',\n listener: (event: Event) => onDrag(event as unknown as React.MouseEvent)\n });\n\n const [bindThumbMouseUpListener, unbindThumbMouseUpListener] = useEventListener({\n type: 'mouseup',\n listener: () => onDragEnd()\n });\n\n const [bindDocumentTouchMoveListener, unbindDocumentTouchMoveListener] = useEventListener({\n type: 'touchmove',\n listener: (event: Event) => onDrag(event as unknown as React.MouseEvent)\n });\n\n const [bindDocumentTouchEndListener, unbindDocumentTouchEndListener] = useEventListener({\n type: 'touchend',\n listener: () => onDragEnd()\n });\n\n const decrementValue = (event: React.KeyboardEvent, index: number, pageKey = false) => {\n let newValue;\n\n if (range()) {\n if (Array.isArray(state.value)) {\n if (props.step) newValue = (state.value[index] ?? 0) - props.step;\n else newValue = (state.value[index] ?? 0) - 1;\n } else {\n newValue = 0;\n }\n } else {\n if (typeof state.value === 'number') {\n if (props.step) newValue = state.value - props.step;\n else if (!props.step && pageKey) newValue = state.value - 10;\n else newValue = state.value - 1;\n } else {\n newValue = 0;\n }\n }\n\n updateValue(event, newValue);\n event.preventDefault();\n };\n\n const incrementValue = (event: React.KeyboardEvent, index: number, pageKey = false) => {\n let newValue;\n\n if (range()) {\n if (Array.isArray(state.value)) {\n if (props.step) newValue = (state.value[index] ?? 0) + props.step;\n else newValue = (state.value[index] ?? 0) + 1;\n } else {\n newValue = 0;\n }\n } else {\n if (props.step) newValue = (typeof state.value === 'number' ? state.value : 0) + props.step;\n else if (!props.step && pageKey) newValue = (typeof state.value === 'number' ? state.value : 0) + 10;\n else newValue = (typeof state.value === 'number' ? state.value : 0) + 1;\n }\n\n updateValue(event, newValue);\n event.preventDefault();\n };\n\n const handlePosition = React.useCallback(() => {\n const value = state.value;\n const min = props.min ?? 0;\n const max = props.max ?? 100;\n\n if (value === undefined || Array.isArray(value)) return 0;\n\n if (value < min) return 0;\n else if (value > max) return 100;\n else return ((value - min) * 100) / (max - min);\n }, [state.value, props.min, props.max]);\n\n const rangeStartPosition = React.useCallback(() => {\n const value = state.value;\n const min = props.min ?? 0;\n const max = props.max ?? 100;\n\n if (Array.isArray(value) && value[0] !== undefined) {\n if (value[0] < min) return 0;\n else return ((value[0] - min) * 100) / (max - min);\n } else return 0;\n }, [state.value, props.min, props.max]);\n\n const rangeEndPosition = React.useCallback(() => {\n const value = state.value;\n const min = props.min ?? 0;\n const max = props.max ?? 100;\n\n if (Array.isArray(value) && value.length === 2 && value[1] !== undefined) {\n if (value[1] > max) return 100;\n else return ((value[1] - min) * 100) / (max - min);\n } else return 100;\n }, [state.value, props.min, props.max]);\n\n const rangeStyle = () => {\n if (range()) {\n const rangeSliderWidth = rangeEndPosition() > rangeStartPosition() ? rangeEndPosition() - rangeStartPosition() : rangeStartPosition() - rangeEndPosition();\n const rangeSliderPosition = rangeEndPosition() > rangeStartPosition() ? rangeStartPosition() : rangeEndPosition();\n\n if (horizontal()) {\n return { insetInlineStart: rangeSliderPosition + '%', width: rangeSliderWidth + '%' };\n } else {\n return { bottom: rangeSliderPosition + '%', height: rangeSliderWidth + '%' };\n }\n } else {\n if (horizontal()) {\n return { width: handlePosition() + '%' };\n } else {\n return { height: handlePosition() + '%' };\n }\n }\n };\n\n const handleThumbStyle = () => {\n if (horizontal()) {\n return { insetInlineStart: handlePosition() + '%' };\n } else {\n return { bottom: handlePosition() + '%' };\n }\n };\n\n const rangeStartHandleStyle = () => {\n if (horizontal()) {\n return { insetInlineStart: rangeStartPosition() + '%' };\n } else {\n return { bottom: rangeStartPosition() + '%' };\n }\n };\n\n const rangeEndHandleStyle = () => {\n if (horizontal()) {\n return { insetInlineStart: rangeEndPosition() + '%' };\n } else {\n return { bottom: rangeEndPosition() + '%' };\n }\n };\n\n const horizontal = React.useCallback(() => {\n return props.orientation === 'horizontal';\n }, []);\n\n return {\n state,\n registerThumb,\n thumbCounter,\n //methods\n range,\n onTouchStart,\n onDrag,\n onDragEnd,\n onMouseDown,\n onKeyDown,\n onBarClick,\n rangeStyle,\n handleThumbStyle,\n rangeStartHandleStyle,\n rangeEndHandleStyle\n };\n }\n});\n","import type { useSliderProps } from '@primereact/types/shared/slider';\n\nexport const defaultProps: useSliderProps = {\n value: undefined,\n defaultValue: undefined,\n orientation: 'horizontal',\n min: 0,\n max: 100,\n step: undefined,\n onValueChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","focus","getAttribute","getWindowScrollLeft","getWindowScrollTop","isRTL","React","defaultProps","useSlider","withHeadless","defaultProps","props","elementRef","_a","_b","activeValue","setActiveValue","handleIndex","dragging","thumbCounter","initX","initY","barWidth","barHeight","state","registerThumb","index","range","updateDomData","_c","_d","_e","_f","_g","rect","getWindowScrollLeft","getWindowScrollTop","handleValue","event","rawValue","touchEvent","mouseEvent","pageX","pageY","horizontal","isRTL","newValue","oldValue","diff","updateValue","value","updatedValue","onDragStart","focus","onDrag","onDragEnd","unbindThumbMouseMoveListener","unbindThumbMouseUpListener","unbindDocumentTouchMoveListener","unbindDocumentTouchEndListener","onTouchStart","bindDocumentTouchMoveListener","bindDocumentTouchEndListener","onMouseDown","bindThumbMouseMoveListener","bindThumbMouseUpListener","onKeyDown","decrementValue","incrementValue","onBarClick","getAttribute","useEventListener","pageKey","handlePosition","min","max","rangeStartPosition","rangeEndPosition","rangeStyle","rangeSliderWidth","rangeSliderPosition","handleThumbStyle","rangeStartHandleStyle","rangeEndHandleStyle"]}
@@ -0,0 +1,58 @@
1
+ import { useSliderProps } from '@primereact/types/shared/slider';
2
+ import * as React from 'react';
3
+ export declare const useSlider: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<useSliderProps, unknown, {
4
+ state: {
5
+ value: number | number[] | undefined;
6
+ };
7
+ registerThumb: () => number;
8
+ thumbCounter: React.RefObject<number>;
9
+ range: () => boolean;
10
+ onTouchStart: (event: React.TouchEvent<HTMLElement>, index: number) => void;
11
+ onDrag: (event: React.MouseEvent | React.TouchEvent) => void;
12
+ onDragEnd: () => void;
13
+ onMouseDown: (event: React.MouseEvent<HTMLElement>, index: number) => void;
14
+ onKeyDown: (event: React.KeyboardEvent, index: number) => void;
15
+ onBarClick: (event: React.MouseEvent) => void;
16
+ rangeStyle: () => {
17
+ insetInlineStart: string;
18
+ width: string;
19
+ bottom?: undefined;
20
+ height?: undefined;
21
+ } | {
22
+ bottom: string;
23
+ height: string;
24
+ insetInlineStart?: undefined;
25
+ width?: undefined;
26
+ } | {
27
+ width: string;
28
+ insetInlineStart?: undefined;
29
+ bottom?: undefined;
30
+ height?: undefined;
31
+ } | {
32
+ height: string;
33
+ insetInlineStart?: undefined;
34
+ width?: undefined;
35
+ bottom?: undefined;
36
+ };
37
+ handleThumbStyle: () => {
38
+ insetInlineStart: string;
39
+ bottom?: undefined;
40
+ } | {
41
+ bottom: string;
42
+ insetInlineStart?: undefined;
43
+ };
44
+ rangeStartHandleStyle: () => {
45
+ insetInlineStart: string;
46
+ bottom?: undefined;
47
+ } | {
48
+ bottom: string;
49
+ insetInlineStart?: undefined;
50
+ };
51
+ rangeEndHandleStyle: () => {
52
+ insetInlineStart: string;
53
+ bottom?: undefined;
54
+ } | {
55
+ bottom: string;
56
+ insetInlineStart?: undefined;
57
+ };
58
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useSliderProps } from '@primereact/types/shared/slider';
2
+ export declare const defaultProps: useSliderProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useTooltipGroup';
2
+ export * from './useTooltipGroup.props';
@@ -0,0 +1,2 @@
1
+ import{withHeadless as a}from"@primereact/core/headless";import{useUnmountEffect as T}from"@primereact/hooks/use-unmount-effect";import*as o from"react";var s={timeout:700,skipTimeout:300};var G=a({name:"useTooltipGroup",defaultProps:s,setup:({props:m})=>{let{timeout:c,skipTimeout:p}=m,e=o.useRef(null),u=o.useRef(null),t=o.useRef(null),r=o.useRef("delayed"),n=()=>{u.current&&(clearTimeout(u.current),u.current=null)},f=(i,l)=>{n(),e.current===null?r.current=t.current?"instant":"delayed":e.current===l?r.current="normal":r.current="instant",e.current=l,t.current===null&&(t.current=window.setTimeout(()=>{r.current="normal",t.current=null},p||300)),u.current=window.setTimeout(()=>{u.current=null,e.current=null,r.current="delayed",i==null||i()},c||700)};return T(()=>{n(),e.current&&(e.current=null),t.current&&(clearTimeout(t.current),t.current=null)}),{state:{get timeoutState(){return r.current},get prevTooltip(){return e.current}},scheduleTimeout:f,clearTimers:n}}});export{s as defaultProps,G as useTooltipGroup};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tooltip/group/useTooltipGroup.ts","../../../src/tooltip/group/useTooltipGroup.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { TimeoutState } from '@primereact/types/shared/tooltip';\nimport * as React from 'react';\nimport { defaultProps } from './useTooltipGroup.props';\n\nexport const useTooltipGroup = withHeadless({\n name: 'useTooltipGroup',\n defaultProps,\n setup: ({ props }) => {\n const { timeout, skipTimeout } = props;\n const prevTooltip = React.useRef<null | HTMLElement | undefined>(null);\n const timeoutRef = React.useRef<number | null>(null);\n const skipTimeoutRef = React.useRef<number | null>(null);\n const timeoutStateRef = React.useRef<TimeoutState>('delayed');\n\n const clearTimers = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n\n const scheduleTimeout = (callback?: () => void, currentTooltip?: HTMLElement) => {\n clearTimers();\n\n if (prevTooltip.current === null) {\n timeoutStateRef.current = skipTimeoutRef.current ? 'instant' : 'delayed';\n } else if (prevTooltip.current === currentTooltip) {\n timeoutStateRef.current = 'normal';\n } else {\n timeoutStateRef.current = 'instant';\n }\n\n prevTooltip.current = currentTooltip;\n\n if (skipTimeoutRef.current === null) {\n skipTimeoutRef.current = window.setTimeout(() => {\n timeoutStateRef.current = 'normal';\n skipTimeoutRef.current = null;\n }, skipTimeout || 300);\n }\n\n timeoutRef.current = window.setTimeout(() => {\n timeoutRef.current = null;\n prevTooltip.current = null;\n timeoutStateRef.current = 'delayed';\n callback?.();\n }, timeout || 700);\n };\n\n useUnmountEffect(() => {\n clearTimers();\n\n if (prevTooltip.current) {\n prevTooltip.current = null;\n }\n\n if (skipTimeoutRef.current) {\n clearTimeout(skipTimeoutRef.current);\n skipTimeoutRef.current = null;\n }\n });\n\n const state = {\n get timeoutState() {\n return timeoutStateRef.current;\n },\n get prevTooltip() {\n return prevTooltip.current;\n }\n };\n\n return {\n state,\n scheduleTimeout,\n clearTimers\n };\n }\n});\n","import type { useTooltipGroupProps } from '@primereact/types/shared/tooltip';\n\nexport const defaultProps: useTooltipGroupProps = {\n timeout: 700,\n skipTimeout: 300\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,oBAAAC,MAAwB,uCAEjC,UAAYC,MAAW,QCDhB,IAAMC,EAAqC,CAC9C,QAAS,IACT,YAAa,GACjB,EDCO,IAAMC,EAAkBC,EAAa,CACxC,KAAM,kBACN,aAAAC,EACA,MAAO,CAAC,CAAE,MAAAC,CAAM,IAAM,CAClB,GAAM,CAAE,QAAAC,EAAS,YAAAC,CAAY,EAAIF,EAC3BG,EAAoB,SAAuC,IAAI,EAC/DC,EAAmB,SAAsB,IAAI,EAC7CC,EAAuB,SAAsB,IAAI,EACjDC,EAAwB,SAAqB,SAAS,EAEtDC,EAAc,IAAM,CAClBH,EAAW,UACX,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KAE7B,EAEMI,EAAkB,CAACC,EAAuBC,IAAiC,CAC7EH,EAAY,EAERJ,EAAY,UAAY,KACxBG,EAAgB,QAAUD,EAAe,QAAU,UAAY,UACxDF,EAAY,UAAYO,EAC/BJ,EAAgB,QAAU,SAE1BA,EAAgB,QAAU,UAG9BH,EAAY,QAAUO,EAElBL,EAAe,UAAY,OAC3BA,EAAe,QAAU,OAAO,WAAW,IAAM,CAC7CC,EAAgB,QAAU,SAC1BD,EAAe,QAAU,IAC7B,EAAGH,GAAe,GAAG,GAGzBE,EAAW,QAAU,OAAO,WAAW,IAAM,CACzCA,EAAW,QAAU,KACrBD,EAAY,QAAU,KACtBG,EAAgB,QAAU,UAC1BG,GAAA,MAAAA,GACJ,EAAGR,GAAW,GAAG,CACrB,EAEA,OAAAU,EAAiB,IAAM,CACnBJ,EAAY,EAERJ,EAAY,UACZA,EAAY,QAAU,MAGtBE,EAAe,UACf,aAAaA,EAAe,OAAO,EACnCA,EAAe,QAAU,KAEjC,CAAC,EAWM,CACH,MAVU,CACV,IAAI,cAAe,CACf,OAAOC,EAAgB,OAC3B,EACA,IAAI,aAAc,CACd,OAAOH,EAAY,OACvB,CACJ,EAII,gBAAAK,EACA,YAAAD,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","useUnmountEffect","React","defaultProps","useTooltipGroup","withHeadless","defaultProps","props","timeout","skipTimeout","prevTooltip","timeoutRef","skipTimeoutRef","timeoutStateRef","clearTimers","scheduleTimeout","callback","currentTooltip","useUnmountEffect"]}
@@ -0,0 +1,9 @@
1
+ import { TimeoutState } from '@primereact/types/shared/tooltip';
2
+ export declare const useTooltipGroup: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/tooltip").useTooltipGroupProps, unknown, {
3
+ state: {
4
+ readonly timeoutState: TimeoutState;
5
+ readonly prevTooltip: HTMLElement | null | undefined;
6
+ };
7
+ scheduleTimeout: (callback?: () => void, currentTooltip?: HTMLElement) => void;
8
+ clearTimers: () => void;
9
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useTooltipGroupProps } from '@primereact/types/shared/tooltip';
2
+ export declare const defaultProps: useTooltipGroupProps;
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './useTooltip';
2
+ export * from './useTooltip.props';
@@ -0,0 +1,2 @@
1
+ var _e=Object.defineProperty,$e=Object.defineProperties;var et=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var tt=Object.prototype.hasOwnProperty,nt=Object.prototype.propertyIsEnumerable;var fe=(c,u,l)=>u in c?_e(c,u,{enumerable:!0,configurable:!0,writable:!0,value:l}):c[u]=l,O=(c,u)=>{for(var l in u||(u={}))tt.call(u,l)&&fe(c,l,u[l]);if(le)for(var l of le(u))nt.call(u,l)&&fe(c,l,u[l]);return c},H=(c,u)=>$e(c,et(u));import{withHeadless as at}from"@primereact/core/headless";import{usePlacer as lt}from"@primereact/headless/placer";import{useUnmountEffect as ft}from"@primereact/hooks/use-unmount-effect";import{addStyle as j,isClient as T}from"@primeuix/utils/dom";import{ZIndex as Re}from"@primeuix/utils/zindex";import{Component as it}from"@primereact/core/component";import{useTooltipGroup as ct}from"@primereact/headless/tooltip/group";import{mergeProps as ut}from"@primeuix/utils";import{withComponent as rt}from"@primereact/core/component";import{styles as ot}from"@primereact/styles/base";var me=({name:c="UnknownComponent",defaultProps:u,styles:l=H(O({},ot),{name:"global"}),components:b,setup:v,render:C})=>rt({name:c,defaultProps:u,styles:l,components:b,setup:v,render:C});import*as B from"react";import{createOptionalContext as st}from"@primereact/core/utils";var[de,pe]=st();import*as ve from"@primereact/headless/tooltip/group";import*as ye from"react";var Le=H(O({},ve.defaultProps),{as:ye.Fragment});var St=me({name:"TooltipGroup",defaultProps:Le,setup(c){return ct(c.inProps)},render(c){let{props:u,ptmi:l}=c,b=ut(l("root"));return B.createElement(de,{value:c},B.createElement(it,{instance:c,attrs:b,children:u.children}))}});import*as a from"react";var Ee={showDelayDuration:700,hideDelayDuration:0,autoZIndex:!0,baseZIndex:0,containerRef:void 0,triggerRef:void 0,open:!1,onOpenChange:void 0,defaultOpen:!1,closeOnEscape:!0,side:"top",sideOffset:0,align:"center",alignOffset:0,autoHide:!1,disabled:!1};var Zt=at({name:"useTooltip",defaultProps:Ee,setup:({props:c,$primereact:u})=>{var ce;let{showDelayDuration:l,hideDelayDuration:b,autoHide:v,autoZIndex:C,baseZIndex:M,disabled:w,defaultOpen:F,open:Z,onOpenChange:m,closeOnEscape:U,side:xe,align:ge,sideOffset:be,alignOffset:we}=c,r=lt({side:xe,align:ge,sideOffset:be,alignOffset:we}),f=pe(),[S,D]=a.useState(!1),[he,I]=a.useState(!1),[Pe,N]=a.useState(!1),[Te,V]=a.useState(!1),k=a.useRef(null),G=a.useRef(null),y=a.useRef(null),X=a.useRef(!1),L=a.useRef(null),E=a.useRef(null),R=a.useRef(null),h=a.useRef(null),x=a.useRef(null),Ce={visible:S,life:he,shouldAnimateOnEnter:Pe,shouldAnimateOnLeave:Te},P=()=>{var e,o,t,n,s,i;return(e=r==null?void 0:r.anchorRef)!=null&&e.current&&((o=r==null?void 0:r.anchorRef)==null?void 0:o.current)instanceof HTMLElement?(t=r==null?void 0:r.anchorRef)==null?void 0:t.current:(i=(s=(n=r==null?void 0:r.anchorRef)==null?void 0:n.current)==null?void 0:s.elementRef)==null?void 0:i.current},p=()=>{var e,o,t,n,s,i;return(e=r==null?void 0:r.containerRef)!=null&&e.current&&((o=r==null?void 0:r.containerRef)==null?void 0:o.current)instanceof HTMLElement?(t=r==null?void 0:r.containerRef)==null?void 0:t.current:(i=(s=(n=r==null?void 0:r.containerRef)==null?void 0:n.current)==null?void 0:s.elementRef)==null?void 0:i.current},Se=()=>{var e,o,t,n,s,i;return(e=r==null?void 0:r.arrowRef)!=null&&e.current&&((o=r==null?void 0:r.arrowRef)==null?void 0:o.current)instanceof HTMLElement?(t=r==null?void 0:r.arrowRef)==null?void 0:t.current:(i=(s=(n=r==null?void 0:r.arrowRef)==null?void 0:n.current)==null?void 0:s.elementRef)==null?void 0:i.current},Y=()=>{var e,o;return h.current&&h.current instanceof HTMLElement?h.current:(o=(e=h.current)==null?void 0:e.elementRef)==null?void 0:o.current},A=()=>{k.current&&(clearTimeout(k.current),k.current=null),G.current&&(clearTimeout(G.current),G.current=null)},g=(e=!1)=>{var n,s;if(w)return;A(),(n=f==null?void 0:f.clearTimers)==null||n.call(f);let o=(s=f==null?void 0:f.state)==null?void 0:s.timeoutState;V(!1),N(!e&&o!=="instant");let t=o==="instant"||o==="normal"?0:l||400;e||t===0?(D(!0),I(!0),m==null||m({value:!0})):k.current=window.setTimeout(()=>{D(!0),I(!0),m==null||m({value:!0})},t)},d=(e=!1)=>{var n;A();let o=(n=f==null?void 0:f.state)==null?void 0:n.timeoutState;N(!1),V(!e&&o!=="instant"),f==null||f.scheduleTimeout(()=>{},P()||void 0);let t=o==="instant"||o==="normal"?0:b||0;e||t===0?(D(!1),m==null||m({value:!1})):G.current=window.setTimeout(()=>{D(!1),m==null||m({value:!1})},t)},q=()=>d(!0),J=()=>d(!0),Q=()=>{g(),x.current=null},W=()=>g(!0),_=()=>d(),$=()=>{v?d():se()},De=()=>{let e=P();!e||!T()||(e.addEventListener("click",q),e.addEventListener("pointerdown",J),e.addEventListener("pointerenter",Q),e.addEventListener("focus",W),e.addEventListener("blur",_),e.addEventListener("pointerleave",$))},ke=()=>{let e=P();!e||!T()||(e.removeEventListener("click",q),e.removeEventListener("pointerdown",J),e.removeEventListener("pointerenter",Q),e.removeEventListener("focus",W),e.removeEventListener("blur",_),e.removeEventListener("pointerleave",$))},ee=()=>{v||(g(!0),x.current=null)},te=()=>g(!0),ne=()=>d(),re=()=>{v||se()},Ge=()=>{let e=p();!e||!T()||(e.addEventListener("pointerenter",ee),e.addEventListener("focus",te),e.addEventListener("blur",ne),e.addEventListener("pointerleave",re))},oe=()=>{let e=p();!e||!T()||(e.removeEventListener("pointerenter",ee),e.removeEventListener("focus",te),e.removeEventListener("blur",ne),e.removeEventListener("pointerleave",re))},Oe=e=>{let o={x:e.reduce((t,n)=>t+n.x,0)/e.length,y:e.reduce((t,n)=>t+n.y,0)/e.length};return[...e].sort((t,n)=>{let s=Math.atan2(t.y-o.y,t.x-o.x),i=Math.atan2(n.y-o.y,n.x-o.x);return s-i})},He=()=>{var i;let e=P(),o=p();if(!e||!o)return;let t=e.getBoundingClientRect(),n=o.getBoundingClientRect(),s=[];switch((i=r==null?void 0:r.state)==null?void 0:i.effectiveSide){case"top":s.push({x:t.left,y:t.top},{x:t.right,y:t.top},{x:n.left,y:n.bottom},{x:n.right,y:n.bottom});break;case"bottom":s.push({x:t.left,y:t.bottom},{x:t.right,y:t.bottom},{x:n.left,y:n.top},{x:n.right,y:n.top});break;case"left":s.push({x:t.left,y:t.top},{x:t.left,y:t.bottom},{x:n.right,y:n.top},{x:n.right,y:n.bottom});break;case"right":s.push({x:t.right,y:t.top},{x:t.right,y:t.bottom},{x:n.left,y:n.top},{x:n.left,y:n.bottom});break}return Oe(s)},Me=(e,o)=>{if(!o)return!1;let{x:t,y:n}=e,s=!1;for(let i=0,K=o.length-1;i<o.length;K=i++){let ue=o[i].x,z=o[i].y,We=o[K].x,ae=o[K].y;z>n!=ae>n&&t<(We-ue)*(n-z)/(ae-z+1e-7)+ue&&(s=!s)}return s},se=()=>{p()?x.current=He()||null:(x.current=null,d(!0))},ie=e=>{if(v)return;let o={x:e.clientX,y:e.clientY},t=e.target,n=P(),s=p(),i=Se();!n||!s||Me(o,x.current)||n.contains(t)||s.contains(t)||i&&i.contains(t)||(d(),x.current=null)},Ie=()=>{document.addEventListener("pointermove",ie)},Ae=()=>{document.removeEventListener("pointermove",ie)},Ke=()=>{let e=p();e&&j(e,{opacity:""})},ze=()=>{var o,t,n;let e=p();e&&(r==null||r.applyPlacement(),Ge(),Ue(),Ye(),Je(),Ie(),C&&Re.set("tooltip",e,(M!=null?M:0)+((n=(t=(o=u.config)==null?void 0:o.zIndex)==null?void 0:t.tooltip)!=null?n:1100)),U&&Ve())},Be=()=>{oe(),Ne(),qe(),Qe(),Xe(),Ae()},je=()=>{I(!1)},Fe=()=>{let e=Y();e&&j(e,{opacity:"1",transform:"scale(1)"})},Ze=()=>{let e=Y();e&&j(e,{opacity:"0",transform:"scale(0.95)"})},Ue=()=>{!y.current&&T()&&(y.current=e=>{let o=e,t=p();S&&!(o.target===t||t!=null&&t.contains(o.target))&&d(!0),X.current=!1},document.addEventListener("click",y.current))},Ne=()=>{y.current&&(document.removeEventListener("click",y.current),y.current=null,X.current=!1)},Ve=()=>{L.current||(L.current=e=>{e.code==="Escape"&&U&&d(!0)},window.document.addEventListener("keydown",L.current))},Xe=()=>{L.current&&(window.document.removeEventListener("keydown",L.current),L.current=null)},Ye=()=>{E.current||(E.current=()=>{S&&d(!0)},window.document.addEventListener("scroll",E.current))},qe=()=>{E.current&&(window.document.removeEventListener("scroll",E.current),E.current=null)},Je=()=>{R.current||(R.current=()=>{S&&d(!0)},window.document.addEventListener("resize",R.current))},Qe=()=>{R.current&&(window.document.removeEventListener("resize",R.current),R.current=null)};return a.useEffect(()=>{w||(F||Z)&&setTimeout(()=>{g()},0)},[F,Z,w]),a.useEffect(()=>{w||De()},[(ce=r==null?void 0:r.anchorRef)==null?void 0:ce.current,w]),ft(()=>{A(),ke(),oe();let e=p();C&&e&&Re.clear(e)}),{state:Ce,placer:r,show:g,hide:d,onEnter:Ke,onBeforeEnter:ze,onLeave:Be,onContentAfterLeave:je,onContentEnter:Fe,onContentLeave:Ze,contentRef:h}}});export{Ee as defaultProps,Zt as useTooltip};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tooltip/useTooltip.ts","../../../primereact/src/tooltip/group/TooltipGroup.tsx","../../../primereact/src/base/index.ts","../../../primereact/src/tooltip/group/TooltipGroup.context.ts","../../../primereact/src/tooltip/group/TooltipGroup.props.ts","../../src/tooltip/useTooltip.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { usePlacer } from '@primereact/headless/placer';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { addStyle, isClient } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { useTooltipGroupContext } from 'primereact/tooltip/group';\nimport * as React from 'react';\nimport { defaultProps } from './useTooltip.props';\n\ntype Point = { x: number; y: number };\n\nexport const useTooltip = withHeadless({\n name: 'useTooltip',\n defaultProps,\n setup: ({ props, $primereact }) => {\n const { showDelayDuration, hideDelayDuration, autoHide, autoZIndex, baseZIndex, disabled, defaultOpen, open, onOpenChange, closeOnEscape, side, align, sideOffset, alignOffset } = props;\n const placer = usePlacer({ side, align, sideOffset, alignOffset });\n const tooltipgroup = useTooltipGroupContext();\n const [visibleState, setVisibleState] = React.useState<boolean>(false);\n const [lifeState, setLifeState] = React.useState<boolean>(false);\n const [shouldAnimateOnEnter, setShouldAnimateOnEnter] = React.useState<boolean>(false);\n const [shouldAnimateOnLeave, setShouldAnimateOnLeave] = React.useState<boolean>(false);\n const showTimeout = React.useRef<number | null>(null);\n const hideTimeout = React.useRef<number | null>(null);\n const outsideClickListener = React.useRef<((event: Event) => void) | null>(null);\n const selfClick = React.useRef<boolean>(false);\n const documentKeydownListener = React.useRef<((event: KeyboardEvent) => void) | null>(null);\n const documentScrollListener = React.useRef<((event: Event) => void) | null>(null);\n const documentResizeListener = React.useRef<((event: Event) => void) | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n const safePolygonRef = React.useRef<Point[] | null>(null);\n\n const state = {\n visible: visibleState,\n life: lifeState,\n shouldAnimateOnEnter,\n shouldAnimateOnLeave\n };\n\n const getTrigger = () => {\n if (placer?.anchorRef?.current && placer?.anchorRef?.current instanceof HTMLElement) {\n return placer?.anchorRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return placer?.anchorRef?.current?.elementRef?.current;\n };\n\n const getContainer = () => {\n if (placer?.containerRef?.current && placer?.containerRef?.current instanceof HTMLElement) {\n return placer?.containerRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return placer?.containerRef?.current?.elementRef?.current;\n };\n\n const getArrow = () => {\n if (placer?.arrowRef?.current && placer?.arrowRef?.current instanceof HTMLElement) {\n return placer?.arrowRef?.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return placer?.arrowRef?.current?.elementRef?.current;\n };\n\n const getContent = () => {\n if (contentRef.current && contentRef.current instanceof HTMLElement) {\n return contentRef.current;\n }\n\n // @ts-expect-error - Temporary fix for elementRef property access\n return contentRef.current?.elementRef?.current;\n };\n\n const clearTimers = () => {\n if (showTimeout.current) {\n clearTimeout(showTimeout.current);\n showTimeout.current = null;\n }\n\n if (hideTimeout.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n };\n\n const show = (forceInstant = false) => {\n if (disabled) return;\n\n clearTimers();\n\n tooltipgroup?.clearTimers?.();\n const timeoutState = tooltipgroup?.state?.timeoutState;\n\n setShouldAnimateOnLeave(false);\n setShouldAnimateOnEnter(!forceInstant && timeoutState !== 'instant');\n\n const showDelay = timeoutState === 'instant' || timeoutState === 'normal' ? 0 : showDelayDuration || 400;\n\n if (forceInstant || showDelay === 0) {\n setVisibleState(true);\n setLifeState(true);\n onOpenChange?.({ value: true });\n } else {\n showTimeout.current = window.setTimeout(() => {\n setVisibleState(true);\n setLifeState(true);\n onOpenChange?.({ value: true });\n }, showDelay);\n }\n };\n\n const hide = (forceInstant = false) => {\n clearTimers();\n const timeoutState = tooltipgroup?.state?.timeoutState;\n\n setShouldAnimateOnEnter(false);\n setShouldAnimateOnLeave(!forceInstant && timeoutState !== 'instant');\n\n tooltipgroup?.scheduleTimeout(() => {}, getTrigger() || undefined);\n\n const hideDelay = timeoutState === 'instant' || timeoutState === 'normal' ? 0 : hideDelayDuration || 0;\n\n if (forceInstant || hideDelay === 0) {\n setVisibleState(false);\n onOpenChange?.({ value: false });\n } else {\n hideTimeout.current = window.setTimeout(() => {\n setVisibleState(false);\n onOpenChange?.({ value: false });\n }, hideDelay);\n }\n };\n\n const onTriggerClick = () => hide(true);\n const onTriggerPointerDown = () => hide(true);\n\n const onTriggerPointerEnter = () => {\n show();\n safePolygonRef.current = null;\n };\n\n const onTriggerFocus = () => show(true);\n const onTriggerBlur = () => hide();\n\n const onTriggerPointerLeave = () => {\n if (autoHide) {\n hide();\n } else {\n onPointerLeave();\n }\n };\n\n const bindTriggerListeners = () => {\n const trigger = getTrigger();\n\n if (!trigger || !isClient()) return;\n\n trigger.addEventListener('click', onTriggerClick);\n trigger.addEventListener('pointerdown', onTriggerPointerDown);\n trigger.addEventListener('pointerenter', onTriggerPointerEnter);\n trigger.addEventListener('focus', onTriggerFocus);\n trigger.addEventListener('blur', onTriggerBlur);\n trigger.addEventListener('pointerleave', onTriggerPointerLeave);\n };\n\n const unbindTriggerListeners = () => {\n const trigger = getTrigger();\n\n if (!trigger || !isClient()) return;\n\n trigger.removeEventListener('click', onTriggerClick);\n trigger.removeEventListener('pointerdown', onTriggerPointerDown);\n trigger.removeEventListener('pointerenter', onTriggerPointerEnter);\n trigger.removeEventListener('focus', onTriggerFocus);\n trigger.removeEventListener('blur', onTriggerBlur);\n trigger.removeEventListener('pointerleave', onTriggerPointerLeave);\n };\n\n const onContainerPointerEnter = () => {\n if (autoHide) return;\n\n show(true);\n safePolygonRef.current = null;\n };\n\n const onContainerFocus = () => show(true);\n const onContainerBlur = () => hide();\n\n const onContainerPointerLeave = () => {\n if (autoHide) return;\n\n onPointerLeave();\n };\n\n const bindContainerListeners = () => {\n const container = getContainer();\n\n if (!container || !isClient()) return;\n\n container.addEventListener('pointerenter', onContainerPointerEnter);\n container.addEventListener('focus', onContainerFocus);\n container.addEventListener('blur', onContainerBlur);\n container.addEventListener('pointerleave', onContainerPointerLeave);\n };\n\n const unbindContainerListeners = () => {\n const container = getContainer();\n\n if (!container || !isClient()) return;\n\n container.removeEventListener('pointerenter', onContainerPointerEnter);\n container.removeEventListener('focus', onContainerFocus);\n container.removeEventListener('blur', onContainerBlur);\n container.removeEventListener('pointerleave', onContainerPointerLeave);\n };\n\n const sortPointsClockwise = (points: Point[]): Point[] => {\n const center = {\n x: points.reduce((sum, p) => sum + p.x, 0) / points.length,\n y: points.reduce((sum, p) => sum + p.y, 0) / points.length\n };\n\n return [...points].sort((a, b) => {\n const angleA = Math.atan2(a.y - center.y, a.x - center.x);\n const angleB = Math.atan2(b.y - center.y, b.x - center.x);\n\n return angleA - angleB;\n });\n };\n\n const createSafePolygon = (): Point[] | undefined => {\n const trigger = getTrigger();\n const container = getContainer();\n\n if (!trigger || !container) return;\n\n const triggerRect = trigger.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n const points = [];\n\n switch (placer?.state?.effectiveSide) {\n case 'top':\n points.push({ x: triggerRect.left, y: triggerRect.top }, { x: triggerRect.right, y: triggerRect.top }, { x: containerRect.left, y: containerRect.bottom }, { x: containerRect.right, y: containerRect.bottom });\n break;\n case 'bottom':\n points.push({ x: triggerRect.left, y: triggerRect.bottom }, { x: triggerRect.right, y: triggerRect.bottom }, { x: containerRect.left, y: containerRect.top }, { x: containerRect.right, y: containerRect.top });\n break;\n case 'left':\n points.push({ x: triggerRect.left, y: triggerRect.top }, { x: triggerRect.left, y: triggerRect.bottom }, { x: containerRect.right, y: containerRect.top }, { x: containerRect.right, y: containerRect.bottom });\n break;\n case 'right':\n points.push({ x: triggerRect.right, y: triggerRect.top }, { x: triggerRect.right, y: triggerRect.bottom }, { x: containerRect.left, y: containerRect.top }, { x: containerRect.left, y: containerRect.bottom });\n break;\n }\n\n return sortPointsClockwise(points);\n };\n\n const isPointInPolygon = (point: Point, polygon: Point[] | null) => {\n if (!polygon) return false;\n\n const { x, y } = point;\n let inside = false;\n\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x,\n yi = polygon[i].y;\n const xj = polygon[j].x,\n yj = polygon[j].y;\n\n const intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi + 0.0000001) + xi;\n\n if (intersect) inside = !inside;\n }\n\n return inside;\n };\n\n const onPointerLeave = () => {\n const container = getContainer();\n\n if (!container) {\n safePolygonRef.current = null;\n hide(true);\n } else {\n safePolygonRef.current = createSafePolygon() || null;\n }\n };\n\n const onPointerMove = (event: PointerEvent) => {\n if (autoHide) return;\n\n const point = { x: event.clientX, y: event.clientY };\n const currentTarget = event.target as HTMLElement;\n const trigger = getTrigger();\n const container = getContainer();\n const arrow = getArrow();\n\n if (!trigger || !container) return;\n\n if (isPointInPolygon(point, safePolygonRef.current) || trigger.contains(currentTarget) || container.contains(currentTarget) || (arrow && arrow.contains(currentTarget))) return;\n else {\n hide();\n safePolygonRef.current = null;\n }\n };\n\n const bindDocumentListeners = () => {\n document.addEventListener('pointermove', onPointerMove);\n };\n\n const unbindDocumentListeners = () => {\n document.removeEventListener('pointermove', onPointerMove);\n };\n\n const onEnter = () => {\n const container = getContainer();\n\n if (!container) return;\n\n addStyle(container, { opacity: '' });\n };\n\n const onBeforeEnter = () => {\n const container = getContainer();\n\n if (!container) return;\n\n placer?.applyPlacement();\n bindContainerListeners();\n bindOutsideClickListener();\n bindScrollListener();\n bindResizeListener();\n bindDocumentListeners();\n\n if (autoZIndex) {\n ZIndex.set('tooltip', container, (baseZIndex ?? 0) + ($primereact.config?.zIndex?.tooltip ?? 1100));\n }\n\n if (closeOnEscape) {\n bindDocumentKeyDownListener();\n }\n };\n\n const onLeave = () => {\n unbindContainerListeners();\n unbindOutsideClickListener();\n unbindScrollListener();\n unbindResizeListener();\n unbindDocumentKeyDownListener();\n unbindDocumentListeners();\n //hide(true);\n };\n\n const onContentAfterLeave = () => {\n setLifeState(false);\n };\n\n const onContentEnter = () => {\n const content = getContent();\n\n if (!content) return;\n\n addStyle(content, { opacity: '1', transform: 'scale(1)' });\n };\n\n const onContentLeave = () => {\n const content = getContent();\n\n if (!content) return;\n\n addStyle(content, { opacity: '0', transform: 'scale(0.95)' });\n };\n\n const bindOutsideClickListener = () => {\n if (!outsideClickListener.current && isClient()) {\n outsideClickListener.current = (event: Event) => {\n const clickEvent = event as MouseEvent;\n const container = getContainer();\n\n if (visibleState && !(clickEvent.target === container || container?.contains(clickEvent.target as Node))) {\n hide(true);\n }\n\n selfClick.current = false;\n };\n\n document.addEventListener('click', outsideClickListener.current);\n }\n };\n\n const unbindOutsideClickListener = () => {\n if (outsideClickListener.current) {\n document.removeEventListener('click', outsideClickListener.current);\n outsideClickListener.current = null;\n selfClick.current = false;\n }\n };\n\n const bindDocumentKeyDownListener = () => {\n if (!documentKeydownListener.current) {\n documentKeydownListener.current = (event: KeyboardEvent) => {\n if (event.code === 'Escape' && closeOnEscape) {\n hide(true);\n }\n };\n\n window.document.addEventListener('keydown', documentKeydownListener.current);\n }\n };\n\n const unbindDocumentKeyDownListener = () => {\n if (documentKeydownListener.current) {\n window.document.removeEventListener('keydown', documentKeydownListener.current);\n documentKeydownListener.current = null;\n }\n };\n\n const bindScrollListener = () => {\n if (!documentScrollListener.current) {\n documentScrollListener.current = () => {\n if (!visibleState) return;\n\n hide(true);\n };\n\n window.document.addEventListener('scroll', documentScrollListener.current);\n }\n };\n\n const unbindScrollListener = () => {\n if (documentScrollListener.current) {\n window.document.removeEventListener('scroll', documentScrollListener.current);\n documentScrollListener.current = null;\n }\n };\n\n const bindResizeListener = () => {\n if (!documentResizeListener.current) {\n documentResizeListener.current = () => {\n if (!visibleState) return;\n\n hide(true);\n };\n\n window.document.addEventListener('resize', documentResizeListener.current);\n }\n };\n\n const unbindResizeListener = () => {\n if (documentResizeListener.current) {\n window.document.removeEventListener('resize', documentResizeListener.current);\n documentResizeListener.current = null;\n }\n };\n\n // Effects\n React.useEffect(() => {\n if (disabled) return;\n\n if (defaultOpen || open) {\n setTimeout(() => {\n show();\n }, 0);\n }\n }, [defaultOpen, open, disabled]);\n\n React.useEffect(() => {\n if (!disabled) {\n bindTriggerListeners();\n }\n }, [placer?.anchorRef?.current, disabled]);\n\n useUnmountEffect(() => {\n clearTimers();\n unbindTriggerListeners();\n unbindContainerListeners();\n\n const container = getContainer();\n\n if (autoZIndex && container) {\n ZIndex.clear(container);\n }\n });\n\n return {\n state,\n placer,\n show,\n hide,\n onEnter,\n onBeforeEnter,\n onLeave,\n onContentAfterLeave,\n onContentEnter,\n onContentLeave,\n contentRef\n };\n }\n});\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useTooltipGroup } from '@primereact/headless/tooltip/group';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { TooltipGroupProvider } from './TooltipGroup.context';\nimport { defaultGroupProps } from './TooltipGroup.props';\n\nexport const TooltipGroup = withComponent({\n name: 'TooltipGroup',\n defaultProps: defaultGroupProps,\n setup(instance) {\n const tooltipgroup = useTooltipGroup(instance.inProps);\n\n return tooltipgroup;\n },\n render(instance) {\n const { props, ptmi } = instance;\n\n const rootProps = mergeProps(ptmi('root'));\n\n return (\n <TooltipGroupProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </TooltipGroupProvider>\n );\n }\n});\n","import { withComponent as withComponentInCore } from '@primereact/core/component';\nimport { styles as baseStyles } from '@primereact/styles/base';\nimport type { withComponentOptions } from '@primereact/types/core';\nimport type { StylesOptions } from '@primereact/types/styles';\n\nexport const withComponent = <IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name = 'UnknownComponent',\n defaultProps,\n styles = {\n ...baseStyles,\n name: 'global'\n } as Styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes, Styles, CData>) => {\n return withComponentInCore<IProps, DProps, Exposes, Styles, CData>({\n name,\n defaultProps,\n styles,\n components,\n setup,\n render\n });\n};\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { TooltipGroupInstance } from '@primereact/types/shared/tooltip';\n\nexport const [TooltipGroupProvider, useTooltipGroupContext] = createOptionalContext<TooltipGroupInstance>();\n","import * as HeadlessTooltipGroup from '@primereact/headless/tooltip/group';\nimport type { TooltipGroupProps } from '@primereact/types/shared/tooltip';\nimport * as React from 'react';\n\nexport const defaultGroupProps: TooltipGroupProps = {\n ...HeadlessTooltipGroup.defaultProps,\n as: React.Fragment\n};\n","import type { useTooltipProps } from '@primereact/types/shared/tooltip';\n\nexport const defaultProps: useTooltipProps = {\n showDelayDuration: 700,\n hideDelayDuration: 0,\n autoZIndex: true,\n baseZIndex: 0,\n containerRef: undefined,\n triggerRef: undefined,\n open: false,\n onOpenChange: undefined,\n defaultOpen: false,\n closeOnEscape: true,\n side: 'top',\n sideOffset: 0,\n align: 'center',\n alignOffset: 0,\n autoHide: false,\n disabled: false\n};\n"],"mappings":"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","names":["withHeadless","usePlacer","useUnmountEffect","addStyle","isClient","ZIndex","Component","useTooltipGroup","mergeProps","withComponentInCore","baseStyles","withComponent","name","defaultProps","styles","__spreadProps","__spreadValues","baseStyles","components","setup","render","withComponentInCore","React","createOptionalContext","TooltipGroupProvider","useTooltipGroupContext","HeadlessTooltipGroup","React","defaultGroupProps","__spreadProps","__spreadValues","TooltipGroup","withComponent","defaultGroupProps","instance","useTooltipGroup","props","ptmi","rootProps","mergeProps","TooltipGroupProvider","Component","React","defaultProps","useTooltip","withHeadless","defaultProps","props","$primereact","_a","showDelayDuration","hideDelayDuration","autoHide","autoZIndex","baseZIndex","disabled","defaultOpen","open","onOpenChange","closeOnEscape","side","align","sideOffset","alignOffset","placer","usePlacer","tooltipgroup","useTooltipGroupContext","visibleState","setVisibleState","lifeState","setLifeState","shouldAnimateOnEnter","setShouldAnimateOnEnter","shouldAnimateOnLeave","setShouldAnimateOnLeave","showTimeout","hideTimeout","outsideClickListener","selfClick","documentKeydownListener","documentScrollListener","documentResizeListener","contentRef","safePolygonRef","state","getTrigger","_b","_c","_d","_e","_f","getContainer","getArrow","getContent","clearTimers","show","forceInstant","timeoutState","showDelay","hide","hideDelay","onTriggerClick","onTriggerPointerDown","onTriggerPointerEnter","onTriggerFocus","onTriggerBlur","onTriggerPointerLeave","onPointerLeave","bindTriggerListeners","trigger","isClient","unbindTriggerListeners","onContainerPointerEnter","onContainerFocus","onContainerBlur","onContainerPointerLeave","bindContainerListeners","container","unbindContainerListeners","sortPointsClockwise","points","center","sum","p","a","b","angleA","angleB","createSafePolygon","triggerRect","containerRect","isPointInPolygon","point","polygon","x","y","inside","j","xi","yi","xj","yj","onPointerMove","event","currentTarget","arrow","bindDocumentListeners","unbindDocumentListeners","onEnter","addStyle","onBeforeEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","ZIndex","bindDocumentKeyDownListener","onLeave","unbindOutsideClickListener","unbindScrollListener","unbindResizeListener","unbindDocumentKeyDownListener","onContentAfterLeave","onContentEnter","content","onContentLeave","clickEvent","useUnmountEffect"]}
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ export declare const useTooltip: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/tooltip").useTooltipProps, unknown, {
3
+ state: {
4
+ visible: boolean;
5
+ life: boolean;
6
+ shouldAnimateOnEnter: boolean;
7
+ shouldAnimateOnLeave: boolean;
8
+ };
9
+ placer: import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/placer").usePlacerProps, unknown, {
10
+ state: {
11
+ effectiveSide: import("@primereact/types/shared/placer").SideType | null | undefined;
12
+ effectiveAlign: import("@primereact/types/shared/placer").AlignType | null | undefined;
13
+ };
14
+ containerRef: React.RefObject<unknown>;
15
+ anchorRef: React.RefObject<unknown>;
16
+ arrowRef: React.RefObject<unknown>;
17
+ applyPlacement: () => void;
18
+ }>;
19
+ show: (forceInstant?: boolean) => void;
20
+ hide: (forceInstant?: boolean) => void;
21
+ onEnter: () => void;
22
+ onBeforeEnter: () => void;
23
+ onLeave: () => void;
24
+ onContentAfterLeave: () => void;
25
+ onContentEnter: () => void;
26
+ onContentLeave: () => void;
27
+ contentRef: React.RefObject<HTMLDivElement | null>;
28
+ }>;
@@ -0,0 +1,2 @@
1
+ import type { useTooltipProps } from '@primereact/types/shared/tooltip';
2
+ export declare const defaultProps: useTooltipProps;
File without changes